
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Enum "STB": Some values do not have unique names */
/* WARNING: Enum "STT": Some values do not have unique names */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original name: resolve<64, false>
   DWARF original prototype: void resolve<64,_false>(Symbol_table * this, Sized_symbol<64> * to,
   Sym<64,_false> * sym, uint st_shndx, bool is_ordinary, uint orig_st_shndx, Object * object, char
   * version, bool is_default_version) */

void __thiscall
gold::Symbol_table::resolve<64,_false>
          (Symbol_table *this,Sized_symbol<64> *to,Sym<64,_false> *sym,uint st_shndx,
          bool is_ordinary,uint orig_st_shndx,Object *object,char *version,bool is_default_version)

{
  undefined1 *puVar1;
  byte bVar2;
  uint uVar3;
  Target *pTVar4;
  Object *pOVar5;
  uint uVar6;
  Sym_data<64> *pSVar7;
  uint uVar8;
  uint uVar9;
  Output_segment *pOVar10;
  int iVar11;
  int iVar12;
  int iVar13;
  _Hash_node_base *p_Var14;
  pointer ppOVar15;
  anon_union_4_3_b0f6f408_for_u1_ aVar16;
  char cVar17;
  bool bVar18;
  byte bVar19;
  int iVar20;
  General_options *pGVar21;
  STT SVar22;
  uint uVar23;
  char *pcVar24;
  STT SVar25;
  Symbol_table *pSVar26;
  Symbol_table *pSVar27;
  bool *local_74;
  bool *local_70;
  byte local_64;
  undefined1 local_54 [12];
  __node_gen_type __node_gen;
  bool adjust_common_sizes;
  uint local_40;
  __bucket_type local_3c;
  undefined4 local_38;
  bool adjust_dyndef;
  uint local_30;
  _func_int_varargs **local_2c;
  _Alloc_hider local_28;
  
  if (((to->super_Symbol).field_0x2a & 7) != 0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");
  }
  local_64 = (byte)(to->super_Symbol).field_0x2b >> 5 & 1;
  uVar3 = (to->super_Symbol).u2_.shndx;
  if (object == (to->super_Symbol).u1_.object) {
    if (local_64 == 0) {
      bVar18 = Symbol::is_common_shndx(uVar3);
      if ((bVar18) || (!is_ordinary)) goto LAB_001cc88e;
    }
    else if ((uVar3 != 0) && ((is_ordinary && (st_shndx == uVar3)))) goto LAB_001ccb65;
  }
  else {
LAB_001cc88e:
    if ((st_shndx == 0xfff1 && !is_ordinary) && ((local_64 == 0 && (uVar3 == 0xfff1)))) {
LAB_001ccb65:
      if (*(int *)((int)&to->value_ + 4) == *(int *)((int)&sym->p_->st_value + 4) &&
          (int)to->value_ == (int)sym->p_->st_value) {
        return;
      }
    }
  }
  pTVar4 = parameters->target_;
  if (pTVar4 == (Target *)0x0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/parameters.h",0x69,"target");
  }
  if ((*(char *)(*(int *)(pTVar4 + 4) + 0xd) == '\0') ||
     (cVar17 = (**(code **)(*(int *)pTVar4 + 0xac))(pTVar4,to,sym,object,version), cVar17 == '\0'))
  {
    if ((object->field_0x2c & 1) == 0) {
      if (((sym->p_->st_info & 0xf) == 5) &&
         ((is_ordinary || (bVar18 = Symbol::is_common_shndx(st_shndx), !bVar18)))) {
        if (((to->super_Symbol).field_0x2a & 7) == 0) {
          ppOVar15 = ((to->super_Symbol).u1_.output_segment)->output_lists_[0].
                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                     _M_impl._M_finish;
          Symbol::demangled_name(&to->super_Symbol);
          aVar16 = _adjust_dyndef;
          pcVar24 = (char *)gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");
                    /* try { // try from 001ccf2f to 001ccf33 has its CatchHandler @ 001cd081 */
          gold_warning(pcVar24,aVar16.object,ppOVar15);
          if (_adjust_dyndef == (Object *)&local_2c) {
            return;
          }
          operator_delete(_adjust_dyndef);
          return;
        }
        goto LAB_001cd065;
      }
      puVar1 = &(to->super_Symbol).field_0x2a;
      *puVar1 = *puVar1 | 0x80;
      iVar20 = (*object->_vptr_Object[5])(object);
    }
    else {
      if ((st_shndx == 0) && (((byte)(to->super_Symbol).field_0x29 & 3) - 1 < 2)) {
        return;
      }
      puVar1 = &(to->super_Symbol).field_0x2b;
      *puVar1 = *puVar1 | 1;
      iVar20 = (*object->_vptr_Object[5])(object);
    }
    if ((iVar20 == 0) && ((object->field_0x2c & 1) == 0)) {
      puVar1 = &(to->super_Symbol).field_0x2b;
      *puVar1 = *puVar1 | 0x40;
    }
    if ((((to->super_Symbol).field_0x2a & 7) == 0) &&
       (pOVar5 = (to->super_Symbol).u1_.object, iVar20 = (*pOVar5->_vptr_Object[5])(pOVar5),
       iVar20 != 0)) {
      pGVar21 = parameters->options_;
      if (pGVar21 == (General_options *)0x0) goto LAB_001ccb98;
      if (pGVar21->plugins_->in_replacement_phase_ != false) {
        if ((((((to->super_Symbol).field_0x2a & 7) != 0) ||
             (((to->super_Symbol).field_0x2b & 0x20) != 0)) ||
            (bVar18 = Symbol::is_common_shndx((to->super_Symbol).u2_.shndx), !bVar18)) ||
           ((is_ordinary || (bVar18 = Symbol::is_common_shndx(st_shndx), !bVar18)))) {
          override<64,_false>(this,to,sym,st_shndx,is_ordinary,object,version);
          return;
        }
        uVar3 = *(uint *)((int)&to->symsize_ + 4);
        uVar6 = (uint)to->symsize_;
        uVar23 = *(uint *)((int)&to->value_ + 4);
        uVar8 = (uint)to->value_;
        override<64,_false>(this,to,sym,st_shndx,false,object,version);
        uVar9 = *(uint *)((int)&to->symsize_ + 4);
        if (uVar9 < uVar3 || uVar9 - uVar3 < (uint)((uint)to->symsize_ < uVar6)) {
          *(uint *)&to->symsize_ = uVar6;
          *(uint *)((int)&to->symsize_ + 4) = uVar3;
        }
        uVar3 = *(uint *)((int)&to->value_ + 4);
        if (uVar23 <= uVar3 && (uint)((uint)to->value_ < uVar8) <= uVar3 - uVar23) {
          return;
        }
        *(uint *)&to->value_ = uVar8;
        *(uint *)((int)&to->value_ + 4) = uVar23;
        return;
      }
    }
    else {
      pGVar21 = parameters->options_;
      if (pGVar21 == (General_options *)0x0) goto LAB_001ccb98;
    }
    if ((pGVar21->detect_odr_violations_).value != false) {
      pSVar7 = sym->p_;
      if ((((int)(uint)pSVar7->st_info >> 4 == 2) || ((byte)(to->super_Symbol).field_0x28 >> 4 == 2)
          ) && (((local_64 & orig_st_shndx != 0) != 0 && (uVar3 != 0)))) {
        iVar20 = (int)pSVar7->st_size;
        iVar11 = *(int *)((int)&pSVar7->st_size + 4);
        if (iVar11 != 0 || iVar20 != 0) {
          iVar12 = (int)to->symsize_;
          iVar13 = *(int *)((int)&to->symsize_ + 4);
          if ((iVar13 != 0 || iVar12 != 0) &&
             (((pSVar7->st_info & 0xf) != ((to->super_Symbol).field_0x28 & 0xf) ||
              (iVar20 != iVar12 || iVar11 != iVar13)))) {
            p_Var14 = (_Hash_node_base *)(to->super_Symbol).name_;
            if ((*(char *)&p_Var14->_M_nxt == '_') && (*(char *)((int)&p_Var14->_M_nxt + 1) == 'Z'))
            {
              local_3c = *(__bucket_type *)&pSVar7->st_value;
              _adjust_common_sizes = object;
              local_40 = orig_st_shndx;
              local_38 = *(undefined4 *)((int)&pSVar7->st_value + 4);
              if (((to->super_Symbol).field_0x2a & 7) != 0) {
LAB_001cd065:
                    /* WARNING: Subroutine does not return */
                do_gold_unreachable("../../gold/symtab.h",0xa1,"object");
              }
              _adjust_dyndef = (to->super_Symbol).u1_;
              local_2c = *(_func_int_varargs ***)&to->value_;
              local_28._M_p = *(pointer *)((int)&to->value_ + 4);
              pSVar26 = this;
              pSVar27 = this;
              local_54._8_4_ = p_Var14;
              local_30 = uVar3;
              __node_gen._M_h =
                   (__hashtable_alloc *)
                   std::__detail::
                   _Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>
                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>
                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8));
              std::
              _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
              ::
              _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>
                        ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
                          *)local_54,__node_gen._M_h,&adjust_common_sizes,&__node_gen,0,1,pSVar26,
                         pSVar27);
              local_54._8_4_ = (to->super_Symbol).name_;
              __node_gen._M_h =
                   (__hashtable_alloc *)
                   std::__detail::
                   _Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>
                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>
                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8));
              std::
              _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
              ::
              _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>
                        ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
                          *)local_54,__node_gen._M_h,&adjust_dyndef,&__node_gen,0,1);
            }
          }
        }
      }
    }
    local_70 = &adjust_common_sizes;
    local_74 = &adjust_dyndef;
    iVar20 = (*object->_vptr_Object[5])(object);
    if (iVar20 == 0) {
      SVar22 = (STT)sym->p_->st_info;
      SVar25 = SVar22;
    }
    else {
      SVar22 = (STT)sym->p_->st_info;
      SVar25 = (uint)(byte)(to->super_Symbol).field_0x28;
    }
    uVar23 = symbol_to_bits((int)SVar22 >> 4,(bool)(object->field_0x2c & 1),st_shndx,is_ordinary);
    uVar3 = (uint)to->symsize_;
    uVar6 = *(uint *)((int)&to->symsize_ + 4);
    bVar18 = should_override(&to->super_Symbol,uVar23,SVar25 & STT_HIPROC,OBJECT,object,local_70,
                             local_74,is_default_version);
    if (bVar18) {
      bVar19 = (to->super_Symbol).field_0x28;
      uVar23 = (uint)to->value_;
      uVar8 = *(uint *)((int)&to->value_ + 4);
      override<64,_false>(this,to,sym,st_shndx,is_ordinary,object,version);
      if (adjust_common_sizes != false) {
        uVar9 = *(uint *)((int)&to->symsize_ + 4);
        if (uVar9 < uVar6 || uVar9 - uVar6 < (uint)((uint)to->symsize_ < uVar3)) {
          *(uint *)((int)&to->symsize_ + 4) = uVar6;
          *(uint *)&to->symsize_ = uVar3;
        }
        uVar9 = *(uint *)((int)&to->value_ + 4);
        if (uVar9 < uVar8 || uVar9 - uVar8 < (uint)((uint)to->value_ < uVar23)) {
          *(uint *)&to->value_ = uVar23;
          *(uint *)((int)&to->value_ + 4) = uVar8;
        }
      }
      if ((adjust_dyndef != false) &&
         ((bVar2 = (to->super_Symbol).field_0x2c, (bVar2 & 1) == 0 || ((bVar2 & 2) != 0)))) {
        (to->super_Symbol).field_0x2c =
             (to->super_Symbol).field_0x2c & 0xfd | (bVar19 >> 4 == 2) * '\x02' | 1;
      }
    }
    else {
      pSVar7 = sym->p_;
      if (adjust_common_sizes != false) {
        uVar23 = (uint)pSVar7->st_size;
        uVar8 = *(uint *)((int)&pSVar7->st_size + 4);
        if (uVar6 < uVar8 || uVar6 - uVar8 < (uint)(uVar3 < uVar23)) {
          *(uint *)((int)&to->symsize_ + 4) = uVar8;
          *(uint *)&to->symsize_ = uVar23;
        }
        uVar23 = (uint)pSVar7->st_value;
        uVar8 = *(uint *)((int)&pSVar7->st_value + 4);
        uVar9 = *(uint *)((int)&to->value_ + 4);
        if (uVar9 < uVar8 || uVar9 - uVar8 < (uint)((uint)to->value_ < uVar23)) {
          *(uint *)((int)&to->value_ + 4) = uVar8;
          *(uint *)&to->value_ = uVar23;
        }
      }
      if (adjust_dyndef != false) {
        bVar19 = (to->super_Symbol).field_0x2c;
        if (((bVar19 & 1) == 0) || ((bVar19 & 2) != 0)) {
          (to->super_Symbol).field_0x2c =
               (to->super_Symbol).field_0x2c & 0xfd |
               ((int)(uint)pSVar7->st_info >> 4 == 2) * '\x02' | 1;
        }
      }
      bVar19 = pSVar7->st_other & 3;
      if ((pSVar7->st_other & 3) != 0) {
        bVar2 = (to->super_Symbol).field_0x29;
        if (((bVar2 & 3) == 0) || (bVar19 < (bVar2 & 3))) {
          (to->super_Symbol).field_0x29 = bVar19 | bVar2 & 0xfc;
        }
      }
    }
    bVar19 = (to->super_Symbol).field_0x2a;
    if ((bVar19 & 7) == 0) {
      pOVar10 = (to->super_Symbol).u1_.output_segment;
      bVar2 = *(byte *)&pOVar10->output_lists_[3].
                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                        _M_impl._M_end_of_storage;
      if ((((bVar2 & 1) != 0) && ((char)bVar19 < '\0')) &&
         (((to->super_Symbol).field_0x2c & 2) == 0)) {
        *(byte *)&pOVar10->output_lists_[3].
                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                  _M_impl._M_end_of_storage = bVar2 | 2;
      }
    }
    if (adjust_common_sizes != false) {
      if (parameters->options_ == (General_options *)0x0) {
LAB_001ccb98:
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
      }
      if ((parameters->options_->warn_common_).value != false) {
        uVar23 = (uint)sym->p_->st_size;
        uVar8 = *(uint *)((int)&sym->p_->st_size + 4);
        if (uVar8 < uVar6 || uVar8 - uVar6 < (uint)(uVar23 < uVar3)) {
          pcVar24 = "common of \'%s\' overriding smaller common";
        }
        else if (uVar6 < uVar8 || uVar6 - uVar8 < (uint)(uVar3 < uVar23)) {
          pcVar24 = "common of \'%s\' overidden by larger common";
        }
        else {
          pcVar24 = "multiple common of \'%s\'";
        }
        pcVar24 = (char *)gettext(pcVar24);
        report_resolve_problem(false,pcVar24,&to->super_Symbol,OBJECT,object);
      }
    }
  }
  return;
}



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

undefined4 * __regparm2
FUN_001cc840(undefined4 param_1,undefined4 param_2,undefined **param_3,undefined4 *param_4,
            int *param_5,undefined1 *param_6,uint param_7,int param_8,int *param_9,
            undefined **param_10,uint param_11)

{
  byte bVar1;
  int *piVar2;
  code *pcVar3;
  uint uVar4;
  char **ppcVar5;
  uint uVar6;
  char cVar7;
  byte bVar8;
  undefined4 *puVar9;
  char *pcVar10;
  int iVar11;
  undefined4 uVar12;
  undefined **ppuVar13;
  undefined4 uVar14;
  undefined ***pppuVar15;
  bool bVar16;
  undefined **ppuStack_94;
  undefined **ppuStack_90;
  undefined1 auStack_8c [12];
  undefined4 *local_80;
  char **local_7c;
  undefined4 *local_78;
  undefined4 **local_74;
  int **local_70;
  undefined1 *local_6c;
  uint local_68;
  char **local_64;
  undefined **local_60;
  undefined **local_5c;
  uint local_58;
  undefined1 local_54 [8];
  char *local_4c;
  undefined4 local_48;
  int *local_44;
  int local_40;
  undefined4 local_3c;
  undefined4 local_38;
  undefined4 *local_34;
  undefined1 *local_30;
  undefined4 local_2c;
  undefined4 local_28;
  
  local_5c = &__DT_PLTGOT;
  local_58 = param_7;
  local_68 = param_11;
  if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {
    ppuStack_94 = (undefined **)0x2a09d4;
    ppuStack_90 = (undefined **)param_2;
    local_5c = &__DT_PLTGOT;
                    /* WARNING: Subroutine does not return */
    FUN_00069d00("../../gold/symtab.h",0xaa);
  }
  local_64 = (char **)(CONCAT31(local_64._1_3_,*(byte *)((int)param_4 + 0x2b) >> 5) & 0xffffff01);
  local_6c = (undefined1 *)param_4[3];
  ppuVar13 = &__DT_PLTGOT;
  if (param_9 == (int *)param_4[2]) {
    if ((byte)local_64 == '\0') {
      local_5c = &__DT_PLTGOT;
      cVar7 = FUN_00177470(local_6c);
      ppuVar13 = local_5c;
      if ((cVar7 == '\x01') || ((char)local_58 == '\0')) goto LAB_001cc88e;
    }
    else if ((local_6c != (undefined1 *)0x0) &&
            ((local_58._0_1_ = (char)param_7, bVar16 = (char)local_58 != '\0', ppuVar13 = local_5c,
             bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c)))) goto LAB_001ccb65;
  }
  else {
LAB_001cc88e:
    local_5c = ppuVar13;
    bVar16 = (char)local_58 == '\0';
    ppuVar13 = local_5c;
    if ((param_6 == (undefined1 *)0xfff1 && bVar16) &&
       (((byte)local_64 == '\0' && (local_6c == (undefined1 *)0xfff1)))) {
LAB_001ccb65:
      puVar9 = (undefined4 *)(param_4[0xc] ^ *(uint *)(*param_5 + 8));
      ppuVar13 = local_5c;
      if (param_4[0xd] == *(int *)(*param_5 + 0xc) && puVar9 == (undefined4 *)0x0) {
        return puVar9;
      }
    }
  }
  local_5c = ppuVar13;
  pppuVar15 = (undefined ***)auStack_8c;
  local_60 = local_5c + 0xde;
  piVar2 = *(int **)(*local_60 + 0xc);
  if (piVar2 == (int *)0x0) {
    ppuStack_94 = local_5c + -0x3b9ab;
    ppuStack_90 = (undefined **)piVar2;
                    /* WARNING: Subroutine does not return */
    FUN_00069d00(local_5c + -0x41f7c,0x69);
  }
  if ((*(char *)(piVar2[1] + 0xd) != '\0') &&
     (puVar9 = (undefined4 *)(**(code **)(*piVar2 + 0xac))(piVar2,param_4,param_5,param_9,param_10),
     (char)puVar9 != '\0')) {
    return puVar9;
  }
  if ((*(byte *)(param_9 + 0xb) & 1) == 0) {
    pcVar10 = (char *)(*(byte *)(*param_5 + 4) & 0xf);
    if (((char)pcVar10 == '\x05') &&
       (((char)local_58 != '\0' || (pcVar10 = (char *)FUN_00177470(param_6), (char)pcVar10 == '\0'))
       )) {
      if ((*(byte *)((int)param_4 + 0x2a) & 7) == 0) {
        uVar12 = *(undefined4 *)(param_4[2] + 4);
        FUN_00178890(&local_34,param_4);
        puVar9 = local_34;
        uVar14 = gettext(local_5c + -0x3b985);
                    /* try { // try from 001ccf2f to 001ccf33 has its CatchHandler @ 001cd081 */
        FUN_000654e0(uVar14,puVar9,uVar12);
        if (local_34 == &local_2c) {
          return local_34;
        }
        puVar9 = (undefined4 *)FUN_001e6db0(local_34);
        return puVar9;
      }
      goto LAB_001cd065;
    }
    *(byte *)((int)param_4 + 0x2a) = *(byte *)((int)param_4 + 0x2a) | 0x80;
    iVar11 = (**(code **)(*param_9 + 0x14))(param_9);
  }
  else {
    if ((param_6 == (undefined1 *)0x0) &&
       (puVar9 = (undefined4 *)((*(byte *)((int)param_4 + 0x29) & 3) - 1),
       puVar9 < (undefined4 *)0x2)) {
      return puVar9;
    }
    *(byte *)((int)param_4 + 0x2b) = *(byte *)((int)param_4 + 0x2b) | 1;
    iVar11 = (**(code **)(*param_9 + 0x14))(param_9);
  }
  if ((iVar11 == 0) && ((*(byte *)(param_9 + 0xb) & 1) == 0)) {
    *(byte *)((int)param_4 + 0x2b) = *(byte *)((int)param_4 + 0x2b) | 0x40;
  }
  if (((*(byte *)((int)param_4 + 0x2a) & 7) == 0) &&
     (iVar11 = (**(code **)(*(int *)param_4[2] + 0x14))((int *)param_4[2]), iVar11 != 0)) {
    puVar9 = *(undefined4 **)(*local_60 + 8);
    pppuVar15 = (undefined ***)auStack_8c;
    if (puVar9 == (undefined4 *)0x0) goto LAB_001ccb98;
    if (*(char *)(puVar9[0x164f] + 0x61) != '\0') {
      if (((((*(byte *)((int)param_4 + 0x2a) & 7) != 0) ||
           ((*(byte *)((int)param_4 + 0x2b) & 0x20) != 0)) ||
          (cVar7 = FUN_00177470(param_4[3]), cVar7 != '\x01')) ||
         (((char)local_58 != '\0' || (cVar7 = FUN_00177470(param_6), cVar7 == '\0')))) {
        ppuStack_94 = param_10;
        puVar9 = (undefined4 *)FUN_001cb040(param_3,param_4,param_5,param_6,local_58 & 0xff,param_9)
        ;
        return puVar9;
      }
      local_5c = (undefined **)param_4[0xf];
      local_60 = (undefined **)param_4[0xe];
      uVar4 = param_4[0xd];
      local_58 = param_4[0xc];
      ppuStack_94 = param_10;
      FUN_001cb040(param_3,param_4,param_5,param_6,0,param_9);
      if ((uint)param_4[0xf] < local_5c ||
          (uint)(param_4[0xf] - (int)local_5c) < (uint)((uint)param_4[0xe] < local_60)) {
        param_4[0xe] = local_60;
        param_4[0xf] = local_5c;
      }
      uVar6 = param_4[0xd] - uVar4;
      puVar9 = (undefined4 *)(uVar6 - ((uint)param_4[0xc] < local_58));
      if (uVar4 <= (uint)param_4[0xd] && ((uint)param_4[0xc] < local_58) <= uVar6) {
        return puVar9;
      }
      param_4[0xc] = local_58;
      param_4[0xd] = uVar4;
      return puVar9;
    }
  }
  else {
    puVar9 = *(undefined4 **)(*local_60 + 8);
    if (puVar9 == (undefined4 *)0x0) goto LAB_001ccb98;
  }
  if (*(char *)((int)puVar9 + 0xe0d) == '\0') {
    local_74 = &local_34;
    local_70 = &local_44;
    pppuVar15 = (undefined ***)auStack_8c;
  }
  else {
    iVar11 = *param_5;
    if ((int)(uint)*(byte *)(iVar11 + 4) >> 4 != 2) {
      local_74 = &local_34;
      local_70 = &local_44;
      pppuVar15 = (undefined ***)auStack_8c;
      if (*(byte *)(param_4 + 10) >> 4 != 2) goto LAB_001cc978;
    }
    local_74 = &local_34;
    local_70 = &local_44;
    pppuVar15 = (undefined ***)auStack_8c;
    if ((((byte)local_64 & param_8 != 0) != 0) &&
       (pppuVar15 = (undefined ***)auStack_8c, local_6c != (undefined1 *)0x0)) {
      local_64 = *(char ***)(iVar11 + 0x10);
      local_78 = *(undefined4 **)(iVar11 + 0x14);
      pppuVar15 = (undefined ***)auStack_8c;
      if (local_78 != (undefined4 *)0x0 || local_64 != (char **)0x0) {
        local_7c = (char **)param_4[0xe];
        local_80 = (undefined4 *)param_4[0xf];
        pppuVar15 = (undefined ***)auStack_8c;
        if ((local_80 != (undefined4 *)0x0 || local_7c != (char **)0x0) &&
           (((*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||
            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80))))
        {
          pcVar10 = (char *)*param_4;
          local_74 = &local_34;
          local_70 = &local_44;
          pppuVar15 = (undefined ***)auStack_8c;
          if ((*pcVar10 == '_') && (pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z')) {
            local_3c = *(undefined4 *)(iVar11 + 8);
            local_44 = param_9;
            local_40 = param_8;
            local_38 = *(undefined4 *)(iVar11 + 0xc);
            if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {
LAB_001cd065:
              ppuStack_94 = local_5c + -0x3b990;
              ppuStack_90 = (undefined **)pcVar10;
                    /* WARNING: Subroutine does not return */
              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);
            }
            local_34 = (undefined4 *)param_4[2];
            local_2c = param_4[0xc];
            local_30 = local_6c;
            local_28 = param_4[0xd];
            ppuStack_90 = param_3;
            ppuStack_94 = param_3;
            local_64 = &local_4c;
            local_4c = pcVar10;
            local_48 = FUN_001cace0(param_3 + 0x47,local_64);
            local_6c = local_54;
            local_78 = &local_48;
            FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1);
            local_4c = (char *)*param_4;
            local_48 = FUN_001cace0(param_3 + 0x47,local_64);
            FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1);
            pppuVar15 = &ppuStack_94;
          }
        }
      }
    }
  }
LAB_001cc978:
  iVar11 = *param_9;
  *(int **)((int)pppuVar15 + -0x10) = param_9;
  pcVar3 = *(code **)(iVar11 + 0x14);
  *(undefined4 *)((int)pppuVar15 + -0x14) = 0x1cc981;
  iVar11 = (*pcVar3)();
  if (iVar11 == 0) {
    bVar8 = *(byte *)(*param_5 + 4);
  }
  else {
    bVar8 = *(byte *)(param_4 + 10);
  }
  local_6c = (undefined1 *)(local_58 & 0xff);
  *(undefined1 **)((int)pppuVar15 + -0x10) = local_6c;
  *(undefined4 *)((int)pppuVar15 + -0x14) = 0x1cc9b9;
  uVar12 = FUN_001c9700();
  local_58 = param_4[0xe];
  local_64 = (char **)param_4[0xf];
  *(uint *)((int)pppuVar15 + -4) = local_68 & 0xff;
  *(undefined4 ***)((int)pppuVar15 + -8) = local_74;
  *(int ***)((int)pppuVar15 + -0xc) = local_70;
  *(int **)((int)pppuVar15 + -0x10) = param_9;
  *(undefined4 *)((int)pppuVar15 + -0x14) = 0;
  *(uint *)((int)pppuVar15 + -0x18) = bVar8 & 0xf;
  *(undefined4 *)((int)pppuVar15 + -0x1c) = uVar12;
  *(undefined4 **)((int)pppuVar15 + -0x20) = param_4;
  *(undefined4 *)((int)pppuVar15 + -0x24) = 0x1cc9de;
  cVar7 = FUN_001c9b30();
  if (cVar7 == '\0') {
    iVar11 = *param_5;
    if ((char)local_44 != '\0') {
      uVar4 = *(uint *)(iVar11 + 0x10);
      ppcVar5 = *(char ***)(iVar11 + 0x14);
      if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)) {
        param_4[0xf] = ppcVar5;
        param_4[0xe] = uVar4;
      }
      local_68 = *(uint *)(iVar11 + 8);
      uVar4 = *(uint *)(iVar11 + 0xc);
      if ((uint)param_4[0xd] < uVar4 || param_4[0xd] - uVar4 < (uint)((uint)param_4[0xc] < local_68)
         ) {
        param_4[0xd] = uVar4;
        param_4[0xc] = local_68;
      }
    }
    if ((char)local_34 != '\0') {
      if (((*(byte *)(param_4 + 0xb) & 1) == 0) || ((*(byte *)(param_4 + 0xb) & 2) != 0)) {
        *(byte *)(param_4 + 0xb) =
             *(byte *)(param_4 + 0xb) & 0xfd | ((int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2) * '\x02'
             | 1;
      }
    }
    bVar8 = *(byte *)(iVar11 + 5) & 3;
    if ((*(byte *)(iVar11 + 5) & 3) != 0) {
      bVar1 = *(byte *)((int)param_4 + 0x29);
      if (((bVar1 & 3) == 0) || (bVar8 < (bVar1 & 3))) {
        *(byte *)((int)param_4 + 0x29) = bVar8 | bVar1 & 0xfc;
      }
    }
  }
  else {
    uVar4 = param_4[0xc];
    local_70 = (int **)CONCAT31(local_70._1_3_,*(byte *)(param_4 + 10) >> 4);
    local_68 = param_4[0xd];
    *(undefined ***)((int)pppuVar15 + -8) = param_10;
    *(int **)((int)pppuVar15 + -0xc) = param_9;
    *(undefined1 **)((int)pppuVar15 + -0x10) = local_6c;
    *(undefined1 **)((int)pppuVar15 + -0x14) = param_6;
    *(int **)((int)pppuVar15 + -0x18) = param_5;
    *(undefined4 **)((int)pppuVar15 + -0x1c) = param_4;
    *(undefined ***)((int)pppuVar15 + -0x20) = param_3;
    *(undefined4 *)((int)pppuVar15 + -0x24) = 0x1cce64;
    FUN_001cb040();
    if ((char)local_44 != '\0') {
      if ((char **)param_4[0xf] < local_64 ||
          (uint)((int)param_4[0xf] - (int)local_64) < (uint)((uint)param_4[0xe] < local_58)) {
        param_4[0xf] = local_64;
        param_4[0xe] = local_58;
      }
      if ((uint)param_4[0xd] < local_68 ||
          param_4[0xd] - local_68 < (uint)((uint)param_4[0xc] < uVar4)) {
        param_4[0xc] = uVar4;
        param_4[0xd] = local_68;
      }
    }
    if (((char)local_34 != '\0') &&
       (((*(byte *)(param_4 + 0xb) & 1) == 0 || ((*(byte *)(param_4 + 0xb) & 2) != 0)))) {
      *(byte *)(param_4 + 0xb) =
           *(byte *)(param_4 + 0xb) & 0xfd | ((char)local_70 == '\x02') * '\x02' | 1;
    }
  }
  bVar8 = *(byte *)((int)param_4 + 0x2a);
  puVar9 = (undefined4 *)(uint)bVar8;
  if ((bVar8 & 7) == 0) {
    bVar1 = *(byte *)(param_4[2] + 0x2c);
    if ((((bVar1 & 1) != 0) && ((char)bVar8 < '\0')) && ((*(byte *)(param_4 + 0xb) & 2) == 0)) {
      *(byte *)(param_4[2] + 0x2c) = bVar1 | 2;
    }
  }
  if ((char)local_44 != '\0') {
    puVar9 = *(undefined4 **)(*local_60 + 8);
    if (puVar9 == (undefined4 *)0x0) {
LAB_001ccb98:
      *(undefined4 **)((int)pppuVar15 + -4) = puVar9;
      *(undefined ***)((int)pppuVar15 + -8) = local_5c + -0x3b992;
      *(undefined4 *)((int)pppuVar15 + -0xc) = 0x5c;
      *(undefined ***)((int)pppuVar15 + -0x10) = local_5c + -0x41f7c;
                    /* WARNING: Subroutine does not return */
      *(undefined **)((int)pppuVar15 + -0x14) = &UNK_001ccbb1;
      FUN_00069d00();
    }
    if (*(char *)((int)puVar9 + 0x43e5) != '\0') {
      uVar4 = *(uint *)(*param_5 + 0x10);
      ppcVar5 = *(char ***)(*param_5 + 0x14);
      if (ppcVar5 < local_64 || (uint)((int)ppcVar5 - (int)local_64) < (uint)(uVar4 < local_58)) {
        ppuVar13 = local_5c + -0x3b977;
      }
      else if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)
              ) {
        ppuVar13 = local_5c + -0x3b96c;
      }
      else {
        ppuVar13 = (undefined **)((int)local_5c + -0xee586);
      }
      *(undefined ***)((int)pppuVar15 + -0x10) = ppuVar13;
      *(undefined4 *)((int)pppuVar15 + -0x14) = 0x1ccaee;
      uVar12 = gettext();
      *(int **)((int)pppuVar15 + -0x10) = param_9;
      *(undefined4 *)((int)pppuVar15 + -0x14) = 0;
      *(undefined4 **)((int)pppuVar15 + -0x18) = param_4;
      *(undefined4 *)((int)pppuVar15 + -0x1c) = uVar12;
      *(undefined4 *)((int)pppuVar15 + -0x20) = 0;
      *(undefined4 *)((int)pppuVar15 + -0x24) = 0x1ccafc;
      puVar9 = (undefined4 *)FUN_001c9960();
    }
  }
  return puVar9;
}


CALL 0x000559e6
ADD EAX,0x1c27bb
PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x7c
MOV ESI,dword ptr [EBP + 0xc]
MOV EDI,dword ptr [EBP + 0x20]
MOV dword ptr [EBP + -0x58],EAX
MOV EAX,dword ptr [EBP + 0x18]
MOV dword ptr [EBP + -0x54],EAX
MOV EAX,dword ptr [EBP + 0x28]
MOV dword ptr [EBP + -0x64],EAX
TEST byte ptr [ESI + 0x2a],0x7
JNZ 0x001cd049
MOVZX EAX,byte ptr [ESI + 0x2b]
SHR AL,0x5
AND EAX,0x1
MOV byte ptr [EBP + -0x60],AL
MOV EAX,dword ptr [ESI + 0xc]
MOV dword ptr [EBP + -0x68],EAX
CMP EDI,dword ptr [ESI + 0x8]
JZ 0x001ccf60
CMP dword ptr [EBP + 0x14],0xfff1
SETNZ AL
OR AL,byte ptr [EBP + -0x54]
JNZ 0x001cc8a7
CMP byte ptr [EBP + -0x60],0x0
JZ 0x001ccb58
MOV EAX,dword ptr [EBP + -0x58]
LEA EAX,[EAX + 0x378]
MOV dword ptr [EBP + -0x5c],EAX
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JZ 0x001cd030
MOV EDX,dword ptr [EAX + 0x4]
CMP byte ptr [EDX + 0xd],0x0
JZ 0x001cc8e8
SUB ESP,0xc
MOV EDX,dword ptr [EAX]
PUSH dword ptr [EBP + 0x24]
PUSH EDI
PUSH dword ptr [EBP + 0x10]
PUSH ESI
PUSH EAX
CALL dword ptr [EDX + 0xac]
ADD ESP,0x20
TEST AL,AL
JNZ 0x001ccaff
TEST byte ptr [EDI + 0x2c],0x1
JNZ 0x001ccb10
MOV EAX,dword ptr [EBP + 0x10]
MOV EAX,dword ptr [EAX]
MOVZX EAX,byte ptr [EAX + 0x4]
AND EAX,0xf
CMP AL,0x5
JZ 0x001ccee8
SUB ESP,0xc
OR byte ptr [ESI + 0x2a],0x80
MOV EAX,dword ptr [EDI]
PUSH EDI
CALL dword ptr [EAX + 0x14]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x001ccb3e
TEST byte ptr [ESI + 0x2a],0x7
JNZ 0x001ccb88
MOV EAX,dword ptr [ESI + 0x8]
SUB ESP,0xc
MOV EDX,dword ptr [EAX]
PUSH EAX
CALL dword ptr [EDX + 0x14]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x001ccb88
MOV EAX,dword ptr [EBP + -0x5c]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x001ccb98
MOV EDX,dword ptr [EAX + 0x593c]
CMP byte ptr [EDX + 0x61],0x0
JNZ 0x001ccd48
CMP byte ptr [EAX + 0xe0d],0x0
JNZ 0x001ccbb8
LEA EAX,[EBP + -0x30]
MOV dword ptr [EBP + -0x70],EAX
LEA EAX,[EBP + -0x40]
MOV dword ptr [EBP + -0x6c],EAX
SUB ESP,0xc
MOV EAX,dword ptr [EDI]
PUSH EDI
CALL dword ptr [EAX + 0x14]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x001cced0
MOV EAX,dword ptr [EBP + 0x10]
MOVZX EBX,byte ptr [ESI + 0x28]
MOV EAX,dword ptr [EAX]
AND EBX,0xf
MOVZX EAX,byte ptr [EAX + 0x4]
MOVZX ECX,byte ptr [EBP + -0x54]
SUB ESP,0xc
MOVZX EDX,byte ptr [EDI + 0x2c]
SAR EAX,0x4
PUSH ECX
AND EDX,0x1
MOV dword ptr [EBP + -0x68],ECX
MOV ECX,dword ptr [EBP + 0x14]
CALL 0x001c9700
MOV ECX,dword ptr [ESI + 0x38]
MOVZX EDX,byte ptr [EBP + -0x64]
ADD ESP,0x10
MOV dword ptr [EBP + -0x54],ECX
MOV ECX,dword ptr [ESI + 0x3c]
PUSH EDX
PUSH dword ptr [EBP + -0x70]
PUSH dword ptr [EBP + -0x6c]
PUSH EDI
PUSH 0x0
PUSH EBX
PUSH EAX
PUSH ESI
MOV dword ptr [EBP + -0x60],ECX
CALL 0x001c9b30
ADD ESP,0x20
TEST AL,AL
JNZ 0x001cce38
MOV EAX,dword ptr [EBP + 0x10]
MOVZX EDX,byte ptr [EBP + -0x40]
MOV EAX,dword ptr [EAX]
TEST DL,DL
JZ 0x001cca2e
MOV EBX,dword ptr [EAX + 0x10]
MOV ECX,dword ptr [EAX + 0x14]
CMP dword ptr [EBP + -0x54],EBX
MOV dword ptr [EBP + -0x64],EBX
MOV EBX,dword ptr [EBP + -0x60]
SBB EBX,ECX
JNC 0x001cca12
MOV EBX,dword ptr [EBP + -0x64]
MOV dword ptr [ESI + 0x3c],ECX
MOV dword ptr [ESI + 0x38],EBX
MOV EBX,dword ptr [EAX + 0x8]
MOV ECX,dword ptr [EAX + 0xc]
CMP dword ptr [ESI + 0x30],EBX
MOV dword ptr [EBP + -0x64],EBX
MOV EBX,dword ptr [ESI + 0x34]
SBB EBX,ECX
JNC 0x001cca2e
MOV EBX,dword ptr [EBP + -0x64]
MOV dword ptr [ESI + 0x34],ECX
MOV dword ptr [ESI + 0x30],EBX
CMP byte ptr [EBP + -0x30],0x0
JZ 0x001cca60
MOVZX ECX,byte ptr [EAX + 0x4]
MOVZX EBX,byte ptr [ESI + 0x2c]
SAR ECX,0x4
TEST BL,0x1
JZ 0x001cca49
AND EBX,0x2
JZ 0x001cca60
CMP ECX,0x2
MOVZX ECX,byte ptr [ESI + 0x2c]
SETZ BL
ADD EBX,EBX
AND ECX,0xfffffffd
OR ECX,EBX
OR ECX,0x1
MOV byte ptr [ESI + 0x2c],CL
MOVZX EAX,byte ptr [EAX + 0x5]
AND EAX,0x3
JZ 0x001cca80
MOVZX ECX,byte ptr [ESI + 0x29]
MOV EBX,ECX
AND EBX,0x3
JZ 0x001cce00
CMP AL,BL
JC 0x001cce00
MOVZX EAX,byte ptr [ESI + 0x2a]
TEST AL,0x7
JNZ 0x001cca98
MOV EBX,dword ptr [ESI + 0x8]
MOVZX ECX,byte ptr [EBX + 0x2c]
TEST CL,0x1
JNZ 0x001ccd28
TEST DL,DL
JZ 0x001ccaff
MOV EAX,dword ptr [EBP + -0x5c]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x001ccb98
CMP byte ptr [EAX + 0x43e5],0x0
JZ 0x001ccaff
MOV EAX,dword ptr [EBP + 0x10]
MOV EAX,dword ptr [EAX]
MOV EDX,dword ptr [EAX + 0x10]
MOV EAX,dword ptr [EAX + 0x14]
CMP EDX,dword ptr [EBP + -0x54]
MOV EBX,EAX
SBB EBX,dword ptr [EBP + -0x60]
JC 0x001ccff0
MOV EBX,dword ptr [EBP + -0x60]
CMP dword ptr [EBP + -0x54],EDX
SBB EBX,EAX
JC 0x001ccf90
MOV EBX,dword ptr [EBP + -0x58]
SUB ESP,0xc
LEA EAX,[EBX + 0xfff11a7a]
PUSH EAX
CALL 0x000293b0
MOV dword ptr [ESP],EDI
PUSH 0x0
PUSH ESI
PUSH EAX
PUSH 0x0
CALL 0x001c9960
ADD ESP,0x20
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [EBP + 0x14]
TEST EAX,EAX
JNZ 0x001ccb26
MOVZX EAX,byte ptr [ESI + 0x29]
AND EAX,0x3
SUB EAX,0x1
CMP EAX,0x1
JBE 0x001ccaff
SUB ESP,0xc
OR byte ptr [ESI + 0x2b],0x1
MOV EAX,dword ptr [EDI]
PUSH EDI
CALL dword ptr [EAX + 0x14]
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x001cc91e
TEST byte ptr [EDI + 0x2c],0x1
JNZ 0x001cc91e
OR byte ptr [ESI + 0x2b],0x40
JMP 0x001cc91e
CMP dword ptr [EBP + -0x68],0xfff1
JNZ 0x001cc8a7
MOV EAX,dword ptr [EBP + 0x10]
MOV EDX,dword ptr [ESI + 0x34]
MOV ECX,dword ptr [EAX]
MOV EAX,dword ptr [ESI + 0x30]
XOR EDX,dword ptr [ECX + 0xc]
XOR EAX,dword ptr [ECX + 0x8]
OR EDX,EAX
JNZ 0x001cc8a7
JMP 0x001ccaff
MOV EAX,dword ptr [EBP + -0x5c]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JNZ 0x001cc95f
MOV EBX,dword ptr [EBP + -0x58]
PUSH EAX
LEA EAX,[EBX + 0xfff119b8]
PUSH EAX
LEA EAX,[EBX + 0xffef8210]
PUSH 0x5c
PUSH EAX
CALL 0x00069d00
MOV EAX,dword ptr [EBP + 0x10]
MOV EDX,dword ptr [EAX]
MOVZX EAX,byte ptr [EDX + 0x4]
MOV ECX,EAX
SAR EAX,0x4
CMP EAX,0x2
JZ 0x001ccbe6
MOVZX EAX,byte ptr [ESI + 0x28]
LEA EBX,[EBP + -0x30]
MOV dword ptr [EBP + -0x70],EBX
LEA EBX,[EBP + -0x40]
SHR AL,0x4
MOV dword ptr [EBP + -0x6c],EBX
CMP AL,0x2
JNZ 0x001cc978
MOV EAX,dword ptr [EBP + 0x1c]
TEST EAX,EAX
SETNZ AL
TEST byte ptr [EBP + -0x60],AL
LEA EAX,[EBP + -0x30]
MOV dword ptr [EBP + -0x70],EAX
LEA EAX,[EBP + -0x40]
MOV dword ptr [EBP + -0x6c],EAX
JZ 0x001cc978
MOV EAX,dword ptr [EBP + -0x68]
TEST EAX,EAX
JZ 0x001cc978
MOV EAX,dword ptr [EDX + 0x10]
MOV EBX,dword ptr [EDX + 0x14]
MOV dword ptr [EBP + -0x60],EAX
MOV EAX,EBX
OR EAX,dword ptr [EBP + -0x60]
MOV dword ptr [EBP + -0x74],EBX
JZ 0x001cc978
MOV EAX,dword ptr [ESI + 0x38]
MOV EBX,dword ptr [ESI + 0x3c]
MOV dword ptr [EBP + -0x7c],EBX
OR EBX,EAX
MOV dword ptr [EBP + -0x78],EAX
JZ 0x001cc978
MOVZX EAX,byte ptr [ESI + 0x28]
AND ECX,0xf
AND EAX,0xf
CMP CL,AL
JNZ 0x001ccc5b
MOV EAX,dword ptr [EBP + -0x60]
MOV EBX,dword ptr [EBP + -0x74]
XOR EAX,dword ptr [EBP + -0x78]
XOR EBX,dword ptr [EBP + -0x7c]
OR EAX,EBX
JZ 0x001cc978
MOV EAX,dword ptr [ESI]
LEA EBX,[EBP + -0x30]
MOV dword ptr [EBP + -0x70],EBX
LEA EBX,[EBP + -0x40]
CMP byte ptr [EAX],0x5f
MOV dword ptr [EBP + -0x6c],EBX
JNZ 0x001cc978
CMP byte ptr [EAX + 0x1],0x5a
JNZ 0x001cc978
MOV EBX,dword ptr [EBP + 0x1c]
MOV ECX,dword ptr [EDX + 0x8]
MOV dword ptr [EBP + -0x40],EDI
MOV dword ptr [EBP + -0x3c],EBX
MOV EBX,dword ptr [EDX + 0xc]
MOV dword ptr [EBP + -0x38],ECX
MOV dword ptr [EBP + -0x34],EBX
TEST byte ptr [ESI + 0x2a],0x7
JNZ 0x001cd065
MOV EBX,dword ptr [EBP + -0x68]
MOV EDX,dword ptr [ESI + 0x8]
MOV dword ptr [EBP + -0x48],EAX
MOV EAX,dword ptr [EBP + 0x8]
MOV ECX,dword ptr [ESI + 0x30]
MOV dword ptr [EBP + -0x2c],EBX
MOV EBX,dword ptr [ESI + 0x34]
MOV dword ptr [EBP + -0x30],EDX
MOV dword ptr [EBP + -0x24],EBX
LEA EBX,[EAX + 0x11c]
PUSH EAX
PUSH EAX
LEA EAX,[EBP + -0x48]
PUSH EAX
PUSH EBX
MOV dword ptr [EBP + -0x28],ECX
MOV dword ptr [EBP + -0x60],EAX
CALL 0x001cace0
POP EDX
LEA ECX,[EBP + -0x50]
POP EDX
LEA EDX,[EBP + -0x44]
PUSH 0x1
PUSH 0x0
PUSH EDX
PUSH dword ptr [EBP + -0x6c]
PUSH EAX
PUSH ECX
MOV dword ptr [EBP + -0x74],EDX
MOV dword ptr [EBP + -0x68],ECX
MOV dword ptr [EBP + -0x44],EAX
CALL 0x001cb6d0
MOV EAX,dword ptr [ESI]
ADD ESP,0x14
PUSH dword ptr [EBP + -0x60]
PUSH EBX
MOV dword ptr [EBP + -0x48],EAX
CALL 0x001cace0
POP ECX
MOV EDX,dword ptr [EBP + -0x74]
MOV ECX,dword ptr [EBP + -0x68]
POP EBX
PUSH 0x1
PUSH 0x0
PUSH EDX
PUSH dword ptr [EBP + -0x70]
PUSH EAX
PUSH ECX
MOV dword ptr [EBP + -0x44],EAX
CALL 0x001cb6d0
ADD ESP,0x1c
JMP 0x001cc978
TEST AL,AL
JNS 0x001cca98
TEST byte ptr [ESI + 0x2c],0x2
JNZ 0x001cca98
OR ECX,0x2
MOV byte ptr [EBX + 0x2c],CL
JMP 0x001cca98
TEST byte ptr [ESI + 0x2a],0x7
JNZ 0x001cce10
TEST byte ptr [ESI + 0x2b],0x20
JNZ 0x001cce10
SUB ESP,0xc
PUSH dword ptr [ESI + 0xc]
MOV EBX,dword ptr [EBP + -0x58]
CALL 0x00177470
ADD ESP,0x10
CMP AL,0x1
JNZ 0x001cce10
CMP byte ptr [EBP + -0x54],0x0
JNZ 0x001cce10
SUB ESP,0xc
PUSH dword ptr [EBP + 0x14]
MOV EBX,dword ptr [EBP + -0x58]
CALL 0x00177470
ADD ESP,0x10
TEST AL,AL
JZ 0x001cce10
MOV EAX,dword ptr [ESI + 0x3c]
SUB ESP,0x4
MOV EDX,dword ptr [ESI + 0x38]
MOV EBX,dword ptr [ESI + 0x34]
MOV dword ptr [EBP + -0x58],EAX
MOV EAX,dword ptr [ESI + 0x30]
PUSH dword ptr [EBP + 0x24]
PUSH EDI
PUSH 0x0
PUSH dword ptr [EBP + 0x14]
PUSH dword ptr [EBP + 0x10]
PUSH ESI
PUSH dword ptr [EBP + 0x8]
MOV dword ptr [EBP + -0x5c],EDX
MOV dword ptr [EBP + -0x54],EAX
CALL 0x001cb040
MOV ECX,dword ptr [ESI + 0x3c]
MOV EAX,dword ptr [EBP + -0x58]
ADD ESP,0x20
MOV EDX,dword ptr [EBP + -0x5c]
CMP dword ptr [ESI + 0x38],EDX
SBB ECX,EAX
JNC 0x001ccdda
MOV dword ptr [ESI + 0x38],EDX
MOV dword ptr [ESI + 0x3c],EAX
MOV EAX,dword ptr [ESI + 0x34]
MOV EDI,dword ptr [EBP + -0x54]
CMP dword ptr [ESI + 0x30],EDI
SBB EAX,EBX
JNC 0x001ccaff
MOV dword ptr [ESI + 0x30],EDI
MOV dword ptr [ESI + 0x34],EBX
JMP 0x001ccaff
AND ECX,0xfffffffc
OR EAX,ECX
MOV byte ptr [ESI + 0x29],AL
JMP 0x001cca80
MOVZX EAX,byte ptr [EBP + -0x54]
SUB ESP,0x4
PUSH dword ptr [EBP + 0x24]
PUSH EDI
PUSH EAX
PUSH dword ptr [EBP + 0x14]
PUSH dword ptr [EBP + 0x10]
PUSH ESI
PUSH dword ptr [EBP + 0x8]
CALL 0x001cb040
ADD ESP,0x20
JMP 0x001ccaff
MOVZX EAX,byte ptr [ESI + 0x28]
SUB ESP,0x4
MOV EBX,dword ptr [ESI + 0x30]
SHR AL,0x4
MOV byte ptr [EBP + -0x6c],AL
MOV EAX,dword ptr [ESI + 0x34]
PUSH dword ptr [EBP + 0x24]
PUSH EDI
PUSH dword ptr [EBP + -0x68]
PUSH dword ptr [EBP + 0x14]
PUSH dword ptr [EBP + 0x10]
PUSH ESI
PUSH dword ptr [EBP + 0x8]
MOV dword ptr [EBP + -0x64],EAX
CALL 0x001cb040
MOVZX EDX,byte ptr [EBP + -0x40]
ADD ESP,0x20
TEST DL,DL
JZ 0x001cce9b
MOV EAX,dword ptr [ESI + 0x3c]
MOV ECX,dword ptr [EBP + -0x54]
CMP dword ptr [ESI + 0x38],ECX
MOV ECX,EAX
MOV EAX,dword ptr [EBP + -0x60]
SBB ECX,EAX
JNC 0x001cce8a
MOV ECX,dword ptr [EBP + -0x54]
MOV dword ptr [ESI + 0x3c],EAX
MOV dword ptr [ESI + 0x38],ECX
MOV EAX,dword ptr [ESI + 0x34]
MOV ECX,dword ptr [EBP + -0x64]
CMP dword ptr [ESI + 0x30],EBX
SBB EAX,ECX
JC 0x001ccfb8
CMP byte ptr [EBP + -0x30],0x0
JZ 0x001cca80
MOVZX EAX,byte ptr [ESI + 0x2c]
TEST AL,0x1
JNZ 0x001ccfa8
CMP byte ptr [EBP + -0x6c],0x2
MOVZX EAX,byte ptr [ESI + 0x2c]
SETZ CL
ADD ECX,ECX
AND EAX,0xfffffffd
OR EAX,ECX
OR EAX,0x1
MOV byte ptr [ESI + 0x2c],AL
JMP 0x001cca80
MOV EAX,dword ptr [EBP + 0x10]
MOV EAX,dword ptr [EAX]
MOVZX EAX,byte ptr [EAX + 0x4]
MOV EBX,EAX
AND EBX,0xf
JMP 0x001cc99c
CMP byte ptr [EBP + -0x54],0x0
JZ 0x001ccfc8
TEST byte ptr [ESI + 0x2a],0x7
JNZ 0x001cd065
MOV EAX,dword ptr [ESI + 0x8]
SUB ESP,0x8
MOV EBX,dword ptr [EBP + -0x58]
MOV EDI,dword ptr [EAX + 0x4]
LEA EAX,[EBP + -0x30]
PUSH ESI
PUSH EAX
CALL 0x00178890
MOV EBX,dword ptr [EBP + -0x58]
MOV ESI,dword ptr [EBP + -0x30]
LEA EAX,[EBX + 0xfff119ec]
PUSH EAX
CALL 0x000293b0
ADD ESP,0xc
PUSH EDI
MOV EDI,dword ptr [EBP + -0x58]
PUSH ESI
PUSH EAX
MOV EBX,EDI
CALL 0x000654e0
MOV EAX,dword ptr [EBP + -0x30]
LEA EDX,[EBP + -0x28]
ADD ESP,0x10
CMP EAX,EDX
JZ 0x001ccaff
SUB ESP,0xc
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
JMP 0x001ccaff
CMP byte ptr [EBP + -0x60],0x0
JZ 0x001cd008
TEST EAX,EAX
JZ 0x001cc8a7
CMP byte ptr [EBP + -0x54],0x0
JZ 0x001cc8a7
MOV EAX,dword ptr [EBP + -0x68]
CMP dword ptr [EBP + 0x14],EAX
JNZ 0x001cc8a7
JMP 0x001ccb65
MOV EBX,dword ptr [EBP + -0x58]
SUB ESP,0xc
LEA EAX,[EBX + 0xfff11a50]
JMP 0x001ccae8
TEST AL,0x2
JZ 0x001cca80
JMP 0x001cceb1
MOV dword ptr [ESI + 0x30],EBX
MOV dword ptr [ESI + 0x34],ECX
JMP 0x001cce9b
SUB ESP,0xc
PUSH dword ptr [EBP + 0x14]
MOV EBX,dword ptr [EBP + -0x58]
CALL 0x00177470
ADD ESP,0x10
TEST AL,AL
JZ 0x001ccef2
JMP 0x001cc906
MOV EBX,dword ptr [EBP + -0x58]
SUB ESP,0xc
LEA EAX,[EBX + 0xfff11a24]
JMP 0x001ccae8
SUB ESP,0xc
PUSH dword ptr [EBP + -0x68]
MOV EBX,dword ptr [EBP + -0x58]
CALL 0x00177470
ADD ESP,0x10
CMP AL,0x1
JZ 0x001cc88e
CMP byte ptr [EBP + -0x54],0x0
JNZ 0x001cc8a7
JMP 0x001cc88e
MOV EBX,dword ptr [EBP + -0x58]
PUSH EAX
LEA EAX,[EBX + 0xfff11954]
PUSH EAX
LEA EAX,[EBX + 0xffef8210]
PUSH 0x69
PUSH EAX
CALL 0x00069d00
MOV EBX,dword ptr [EBP + -0x58]
PUSH EDX
LEA EAX,[EBX + 0xfff119d4]
PUSH EAX
LEA EAX,[EBX + 0xffef822d]
PUSH 0xaa
PUSH EAX
CALL 0x00069d00
MOV EBX,dword ptr [EBP + -0x58]
PUSH EAX
LEA EAX,[EBX + 0xfff119c0]
PUSH EAX
LEA EAX,[EBX + 0xffef822d]
PUSH 0xa1
PUSH EAX
CALL 0x00069d00
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nundefined4 * __regparm2\nFUN_001cc840(undefined4 param_1,undefined4 param_2,undefined **param_3,undefined4 *param_4,\n            int *param_5,undefined1 *param_6,uint param_7,int param_8,int *param_9,\n            undefined **param_10,uint param_11)\n\n{\n  byte bVar1;\n  int *piVar2;\n  code *pcVar3;\n  uint uVar4;\n  char **ppcVar5;\n  uint uVar6;\n  char cVar7;\n  byte bVar8;\n  undefined4 *puVar9;\n  char *pcVar10;\n  int iVar11;\n  undefined4 uVar12;\n  undefined **ppuVar13;\n  undefined4 uVar14;\n  undefined ***pppuVar15;\n  bool bVar16;\n  undefined **ppuStack_94;\n  undefined **ppuStack_90;\n  undefined1 auStack_8c [12];\n  undefined4 *local_80;\n  char **local_7c;\n  undefined4 *local_78;\n  undefined4 **local_74;\n  int **local_70;\n  undefined1 *local_6c;\n  uint local_68;\n  char **local_64;\n  undefined **local_60;\n  undefined **local_5c;\n  uint local_58;\n  undefined1 local_54 [8];\n  char *local_4c;\n  undefined4 local_48;\n  int *local_44;\n  int local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 *local_34;\n  undefined1 *local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  \n  local_5c = &__DT_PLTGOT;\n  local_58 = param_7;\n  local_68 = param_11;\n  if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\n    ppuStack_94 = (undefined **)0x2a09d4;\n    ppuStack_90 = (undefined **)param_2;\n    local_5c = &__DT_PLTGOT;\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00("../../gold/symtab.h",0xaa);\n  }\n  local_64 = (char **)(CONCAT31(local_64._1_3_,*(byte *)((int)param_4 + 0x2b) >> 5) & 0xffffff01);\n  local_6c = (undefined1 *)param_4[3];\n  ppuVar13 = &__DT_PLTGOT;\n  if (param_9 == (int *)param_4[2]) {\n    if ((byte)local_64 == '\0') {\n      local_5c = &__DT_PLTGOT;\n      cVar7 = FUN_00177470(local_6c);\n      ppuVar13 = local_5c;\n      if ((cVar7 == '\x01') || ((char)local_58 == '\0')) goto LAB_001cc88e;\n    }\n    else if ((local_6c != (undefined1 *)0x0) &&\n            ((local_58._0_1_ = (char)param_7, bVar16 = (char)local_58 != '\0', ppuVar13 = local_5c,\n             bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c)))) goto LAB_001ccb65;\n  }\n  else {\nLAB_001cc88e:\n    local_5c = ppuVar13;\n    bVar16 = (char)local_58 == '\0';\n    ppuVar13 = local_5c;\n    if ((param_6 == (undefined1 *)0xfff1 && bVar16) &&\n       (((byte)local_64 == '\0' && (local_6c == (undefined1 *)0xfff1)))) {\nLAB_001ccb65:\n      puVar9 = (undefined4 *)(param_4[0xc] ^ *(uint *)(*param_5 + 8));\n      ppuVar13 = local_5c;\n      if (param_4[0xd] == *(int *)(*param_5 + 0xc) && puVar9 == (undefined4 *)0x0) {\n        return puVar9;\n      }\n    }\n  }\n  local_5c = ppuVar13;\n  pppuVar15 = (undefined ***)auStack_8c;\n  local_60 = local_5c + 0xde;\n  piVar2 = *(int **)(*local_60 + 0xc);\n  if (piVar2 == (int *)0x0) {\n    ppuStack_94 = local_5c + -0x3b9ab;\n    ppuStack_90 = (undefined **)piVar2;\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00(local_5c + -0x41f7c,0x69);\n  }\n  if ((*(char *)(piVar2[1] + 0xd) != '\0') &&\n     (puVar9 = (undefined4 *)(**(code **)(*piVar2 + 0xac))(piVar2,param_4,param_5,param_9,param_10),\n     (char)puVar9 != '\0')) {\n    return puVar9;\n  }\n  if ((*(byte *)(param_9 + 0xb) & 1) == 0) {\n    pcVar10 = (char *)(*(byte *)(*param_5 + 4) & 0xf);\n    if (((char)pcVar10 == '\x05') &&\n       (((char)local_58 != '\0' || (pcVar10 = (char *)FUN_00177470(param_6), (char)pcVar10 == '\0'))\n       )) {\n      if ((*(byte *)((int)param_4 + 0x2a) & 7) == 0) {\n        uVar12 = *(undefined4 *)(param_4[2] + 4);\n        FUN_00178890(&local_34,param_4);\n        puVar9 = local_34;\n        uVar14 = gettext(local_5c + -0x3b985);\n                    /* try { // try from 001ccf2f to 001ccf33 has its CatchHandler @ 001cd081 */\n        FUN_000654e0(uVar14,puVar9,uVar12);\n        if (local_34 == &local_2c) {\n          return local_34;\n        }\n        puVar9 = (undefined4 *)FUN_001e6db0(local_34);\n        return puVar9;\n      }\n      goto LAB_001cd065;\n    }\n    *(byte *)((int)param_4 + 0x2a) = *(byte *)((int)param_4 + 0x2a) | 0x80;\n    iVar11 = (**(code **)(*param_9 + 0x14))(param_9);\n  }\n  else {\n    if ((param_6 == (undefined1 *)0x0) &&\n       (puVar9 = (undefined4 *)((*(byte *)((int)param_4 + 0x29) & 3) - 1),\n       puVar9 < (undefined4 *)0x2)) {\n      return puVar9;\n    }\n    *(byte *)((int)param_4 + 0x2b) = *(byte *)((int)param_4 + 0x2b) | 1;\n    iVar11 = (**(code **)(*param_9 + 0x14))(param_9);\n  }\n  if ((iVar11 == 0) && ((*(byte *)(param_9 + 0xb) & 1) == 0)) {\n    *(byte *)((int)param_4 + 0x2b) = *(byte *)((int)param_4 + 0x2b) | 0x40;\n  }\n  if (((*(byte *)((int)param_4 + 0x2a) & 7) == 0) &&\n     (iVar11 = (**(code **)(*(int *)param_4[2] + 0x14))((int *)param_4[2]), iVar11 != 0)) {\n    puVar9 = *(undefined4 **)(*local_60 + 8);\n    pppuVar15 = (undefined ***)auStack_8c;\n    if (puVar9 == (undefined4 *)0x0) goto LAB_001ccb98;\n    if (*(char *)(puVar9[0x164f] + 0x61) != '\0') {\n      if (((((*(byte *)((int)param_4 + 0x2a) & 7) != 0) ||\n           ((*(byte *)((int)param_4 + 0x2b) & 0x20) != 0)) ||\n          (cVar7 = FUN_00177470(param_4[3]), cVar7 != '\x01')) ||\n         (((char)local_58 != '\0' || (cVar7 = FUN_00177470(param_6), cVar7 == '\0')))) {\n        ppuStack_94 = param_10;\n        puVar9 = (undefined4 *)FUN_001cb040(param_3,param_4,param_5,param_6,local_58 & 0xff,param_9)\n        ;\n        return puVar9;\n      }\n      local_5c = (undefined **)param_4[0xf];\n      local_60 = (undefined **)param_4[0xe];\n      uVar4 = param_4[0xd];\n      local_58 = param_4[0xc];\n      ppuStack_94 = param_10;\n      FUN_001cb040(param_3,param_4,param_5,param_6,0,param_9);\n      if ((uint)param_4[0xf] < local_5c ||\n          (uint)(param_4[0xf] - (int)local_5c) < (uint)((uint)param_4[0xe] < local_60)) {\n        param_4[0xe] = local_60;\n        param_4[0xf] = local_5c;\n      }\n      uVar6 = param_4[0xd] - uVar4;\n      puVar9 = (undefined4 *)(uVar6 - ((uint)param_4[0xc] < local_58));\n      if (uVar4 <= (uint)param_4[0xd] && ((uint)param_4[0xc] < local_58) <= uVar6) {\n        return puVar9;\n      }\n      param_4[0xc] = local_58;\n      param_4[0xd] = uVar4;\n      return puVar9;\n    }\n  }\n  else {\n    puVar9 = *(undefined4 **)(*local_60 + 8);\n    if (puVar9 == (undefined4 *)0x0) goto LAB_001ccb98;\n  }\n  if (*(char *)((int)puVar9 + 0xe0d) == '\0') {\n    local_74 = &local_34;\n    local_70 = &local_44;\n    pppuVar15 = (undefined ***)auStack_8c;\n  }\n  else {\n    iVar11 = *param_5;\n    if ((int)(uint)*(byte *)(iVar11 + 4) >> 4 != 2) {\n      local_74 = &local_34;\n      local_70 = &local_44;\n      pppuVar15 = (undefined ***)auStack_8c;\n      if (*(byte *)(param_4 + 10) >> 4 != 2) goto LAB_001cc978;\n    }\n    local_74 = &local_34;\n    local_70 = &local_44;\n    pppuVar15 = (undefined ***)auStack_8c;\n    if ((((byte)local_64 & param_8 != 0) != 0) &&\n       (pppuVar15 = (undefined ***)auStack_8c, local_6c != (undefined1 *)0x0)) {\n      local_64 = *(char ***)(iVar11 + 0x10);\n      local_78 = *(undefined4 **)(iVar11 + 0x14);\n      pppuVar15 = (undefined ***)auStack_8c;\n      if (local_78 != (undefined4 *)0x0 || local_64 != (char **)0x0) {\n        local_7c = (char **)param_4[0xe];\n        local_80 = (undefined4 *)param_4[0xf];\n        pppuVar15 = (undefined ***)auStack_8c;\n        if ((local_80 != (undefined4 *)0x0 || local_7c != (char **)0x0) &&\n           (((*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||\n            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80))))\n        {\n          pcVar10 = (char *)*param_4;\n          local_74 = &local_34;\n          local_70 = &local_44;\n          pppuVar15 = (undefined ***)auStack_8c;\n          if ((*pcVar10 == '_') && (pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z')) {\n            local_3c = *(undefined4 *)(iVar11 + 8);\n            local_44 = param_9;\n            local_40 = param_8;\n            local_38 = *(undefined4 *)(iVar11 + 0xc);\n            if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\nLAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;\n              ppuStack_90 = (undefined **)pcVar10;\n                    /* WARNING: Subroutine does not return */\n              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);\n            }\n            local_34 = (undefined4 *)param_4[2];\n            local_2c = param_4[0xc];\n            local_30 = local_6c;\n            local_28 = param_4[0xd];\n            ppuStack_90 = param_3;\n            ppuStack_94 = param_3;\n            local_64 = &local_4c;\n            local_4c = pcVar10;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            local_6c = local_54;\n            local_78 = &local_48;\n            FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1);\n            local_4c = (char *)*param_4;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1);\n            pppuVar15 = &ppuStack_94;\n          }\n        }\n      }\n    }\n  }\nLAB_001cc978:\n  iVar11 = *param_9;\n  *(int **)((int)pppuVar15 + -0x10) = param_9;\n  pcVar3 = *(code **)(iVar11 + 0x14);\n  *(undefined4 *)((int)pppuVar15 + -0x14) = 0x1cc981;\n  iVar11 = (*pcVar3)();\n  if (iVar11 == 0) {\n    bVar8 = *(byte *)(*param_5 + 4);\n  }\n  else {\n    bVar8 = *(byte *)(param_4 + 10);\n  }\n  local_6c = (undefined1 *)(local_58 & 0xff);\n  *(undefined1 **)((int)pppuVar15 + -0x10) = local_6c;\n  *(undefined4 *)((int)pppuVar15 + -0x14) = 0x1cc9b9;\n  uVar12 = FUN_001c9700();\n  local_58 = param_4[0xe];\n  local_64 = (char **)param_4[0xf];\n  *(uint *)((int)pppuVar15 + -4) = local_68 & 0xff;\n  *(undefined4 ***)((int)pppuVar15 + -8) = local_74;\n  *(int ***)((int)pppuVar15 + -0xc) = local_70;\n  *(int **)((int)pppuVar15 + -0x10) = param_9;\n  *(undefined4 *)((int)pppuVar15 + -0x14) = 0;\n  *(uint *)((int)pppuVar15 + -0x18) = bVar8 & 0xf;\n  *(undefined4 *)((int)pppuVar15 + -0x1c) = uVar12;\n  *(undefined4 **)((int)pppuVar15 + -0x20) = param_4;\n  *(undefined4 *)((int)pppuVar15 + -0x24) = 0x1cc9de;\n  cVar7 = FUN_001c9b30();\n  if (cVar7 == '\0') {\n    iVar11 = *param_5;\n    if ((char)local_44 != '\0') {\n      uVar4 = *(uint *)(iVar11 + 0x10);\n      ppcVar5 = *(char ***)(iVar11 + 0x14);\n      if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)) {\n        param_4[0xf] = ppcVar5;\n        param_4[0xe] = uVar4;\n      }\n      local_68 = *(uint *)(iVar11 + 8);\n      uVar4 = *(uint *)(iVar11 + 0xc);\n      if ((uint)param_4[0xd] < uVar4 || param_4[0xd] - uVar4 < (uint)((uint)param_4[0xc] < local_68)\n         ) {\n        param_4[0xd] = uVar4;\n        param_4[0xc] = local_68;\n      }\n    }\n    if ((char)local_34 != '\0') {\n      if (((*(byte *)(param_4 + 0xb) & 1) == 0) || ((*(byte *)(param_4 + 0xb) & 2) != 0)) {\n        *(byte *)(param_4 + 0xb) =\n             *(byte *)(param_4 + 0xb) & 0xfd | ((int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2) * '\x02'\n             | 1;\n      }\n    }\n    bVar8 = *(byte *)(iVar11 + 5) & 3;\n    if ((*(byte *)(iVar11 + 5) & 3) != 0) {\n      bVar1 = *(byte *)((int)param_4 + 0x29);\n      if (((bVar1 & 3) == 0) || (bVar8 < (bVar1 & 3))) {\n        *(byte *)((int)param_4 + 0x29) = bVar8 | bVar1 & 0xfc;\n      }\n    }\n  }\n  else {\n    uVar4 = param_4[0xc];\n    local_70 = (int **)CONCAT31(local_70._1_3_,*(byte *)(param_4 + 10) >> 4);\n    local_68 = param_4[0xd];\n    *(undefined ***)((int)pppuVar15 + -8) = param_10;\n    *(int **)((int)pppuVar15 + -0xc) = param_9;\n    *(undefined1 **)((int)pppuVar15 + -0x10) = local_6c;\n    *(undefined1 **)((int)pppuVar15 + -0x14) = param_6;\n    *(int **)((int)pppuVar15 + -0x18) = param_5;\n    *(undefined4 **)((int)pppuVar15 + -0x1c) = param_4;\n    *(undefined ***)((int)pppuVar15 + -0x20) = param_3;\n    *(undefined4 *)((int)pppuVar15 + -0x24) = 0x1cce64;\n    FUN_001cb040();\n    if ((char)local_44 != '\0') {\n      if ((char **)param_4[0xf] < local_64 ||\n          (uint)((int)param_4[0xf] - (int)local_64) < (uint)((uint)param_4[0xe] < local_58)) {\n        param_4[0xf] = local_64;\n        param_4[0xe] = local_58;\n      }\n      if ((uint)param_4[0xd] < local_68 ||\n          param_4[0xd] - local_68 < (uint)((uint)param_4[0xc] < uVar4)) {\n        param_4[0xc] = uVar4;\n        param_4[0xd] = local_68;\n      }\n    }\n    if (((char)local_34 != '\0') &&\n       (((*(byte *)(param_4 + 0xb) & 1) == 0 || ((*(byte *)(param_4 + 0xb) & 2) != 0)))) {\n      *(byte *)(param_4 + 0xb) =\n           *(byte *)(param_4 + 0xb) & 0xfd | ((char)local_70 == '\x02') * '\x02' | 1;\n    }\n  }\n  bVar8 = *(byte *)((int)param_4 + 0x2a);\n  puVar9 = (undefined4 *)(uint)bVar8;\n  if ((bVar8 & 7) == 0) {\n    bVar1 = *(byte *)(param_4[2] + 0x2c);\n    if ((((bVar1 & 1) != 0) && ((char)bVar8 < '\0')) && ((*(byte *)(param_4 + 0xb) & 2) == 0)) {\n      *(byte *)(param_4[2] + 0x2c) = bVar1 | 2;\n    }\n  }\n  if ((char)local_44 != '\0') {\n    puVar9 = *(undefined4 **)(*local_60 + 8);\n    if (puVar9 == (undefined4 *)0x0) {\nLAB_001ccb98:\n      *(undefined4 **)((int)pppuVar15 + -4) = puVar9;\n      *(undefined ***)((int)pppuVar15 + -8) = local_5c + -0x3b992;\n      *(undefined4 *)((int)pppuVar15 + -0xc) = 0x5c;\n      *(undefined ***)((int)pppuVar15 + -0x10) = local_5c + -0x41f7c;\n                    /* WARNING: Subroutine does not return */\n      *(undefined **)((int)pppuVar15 + -0x14) = &UNK_001ccbb1;\n      FUN_00069d00();\n    }\n    if (*(char *)((int)puVar9 + 0x43e5) != '\0') {\n      uVar4 = *(uint *)(*param_5 + 0x10);\n      ppcVar5 = *(char ***)(*param_5 + 0x14);\n      if (ppcVar5 < local_64 || (uint)((int)ppcVar5 - (int)local_64) < (uint)(uVar4 < local_58)) {\n        ppuVar13 = local_5c + -0x3b977;\n      }\n      else if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)\n              ) {\n        ppuVar13 = local_5c + -0x3b96c;\n      }\n      else {\n        ppuVar13 = (undefined **)((int)local_5c + -0xee586);\n      }\n      *(undefined ***)((int)pppuVar15 + -0x10) = ppuVar13;\n      *(undefined4 *)((int)pppuVar15 + -0x14) = 0x1ccaee;\n      uVar12 = gettext();\n      *(int **)((int)pppuVar15 + -0x10) = param_9;\n      *(undefined4 *)((int)pppuVar15 + -0x14) = 0;\n      *(undefined4 **)((int)pppuVar15 + -0x18) = param_4;\n      *(undefined4 *)((int)pppuVar15 + -0x1c) = uVar12;\n      *(undefined4 *)((int)pppuVar15 + -0x20) = 0;\n      *(undefined4 *)((int)pppuVar15 + -0x24) = 0x1ccafc;\n      puVar9 = (undefined4 *)FUN_001c9960();\n    }\n  }\n  return puVar9;\n}\n\n" comment (ERROR "undefined4 * __regparm2\nFUN_001cc840(undefined4 param_1,undefined4 param_2,undefined **param_3,undefined4 *param_4,\n            int *param_5,undefined1 *param_6,uint param_7,int param_8,int *param_9,\n            undefined **param_10,uint param_11)" (binary_expression "undefined4 * __regparm2\nFUN_001cc840(undefined4 param_1,undefined4 param_2,undefined **param_3,undefined4 *param_4,\n            int *param_5,undefined1 *param_6,uint param_7,int param_8,int *param_9,\n            undefined **param_10,uint param_11)" identifier * (ERROR "__regparm2" identifier) (call_expression "FUN_001cc840(undefined4 param_1,undefined4 param_2,undefined **param_3,undefined4 *param_4,\n            int *param_5,undefined1 *param_6,uint param_7,int param_8,int *param_9,\n            undefined **param_10,uint param_11)" identifier (argument_list "(undefined4 param_1,undefined4 param_2,undefined **param_3,undefined4 *param_4,\n            int *param_5,undefined1 *param_6,uint param_7,int param_8,int *param_9,\n            undefined **param_10,uint param_11)" ( identifier (ERROR "param_1" identifier) , identifier (ERROR "param_2" identifier) , (binary_expression "undefined **param_3" identifier * (pointer_expression "*param_3" * identifier)) , (binary_expression "undefined4 *param_4" identifier * identifier) , (binary_expression "int *param_5" identifier * identifier) , (binary_expression "undefined1 *param_6" identifier * identifier) , (ERROR "uint" identifier) identifier , (ERROR "int" identifier) identifier , (binary_expression "int *param_9" identifier * identifier) , (binary_expression "undefined **param_10" identifier * (pointer_expression "*param_10" * identifier)) , (ERROR "uint" identifier) identifier ))))) (compound_statement "{\n  byte bVar1;\n  int *piVar2;\n  code *pcVar3;\n  uint uVar4;\n  char **ppcVar5;\n  uint uVar6;\n  char cVar7;\n  byte bVar8;\n  undefined4 *puVar9;\n  char *pcVar10;\n  int iVar11;\n  undefined4 uVar12;\n  undefined **ppuVar13;\n  undefined4 uVar14;\n  undefined ***pppuVar15;\n  bool bVar16;\n  undefined **ppuStack_94;\n  undefined **ppuStack_90;\n  undefined1 auStack_8c [12];\n  undefined4 *local_80;\n  char **local_7c;\n  undefined4 *local_78;\n  undefined4 **local_74;\n  int **local_70;\n  undefined1 *local_6c;\n  uint local_68;\n  char **local_64;\n  undefined **local_60;\n  undefined **local_5c;\n  uint local_58;\n  undefined1 local_54 [8];\n  char *local_4c;\n  undefined4 local_48;\n  int *local_44;\n  int local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 *local_34;\n  undefined1 *local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  \n  local_5c = &__DT_PLTGOT;\n  local_58 = param_7;\n  local_68 = param_11;\n  if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\n    ppuStack_94 = (undefined **)0x2a09d4;\n    ppuStack_90 = (undefined **)param_2;\n    local_5c = &__DT_PLTGOT;\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00("../../gold/symtab.h",0xaa);\n  }\n  local_64 = (char **)(CONCAT31(local_64._1_3_,*(byte *)((int)param_4 + 0x2b) >> 5) & 0xffffff01);\n  local_6c = (undefined1 *)param_4[3];\n  ppuVar13 = &__DT_PLTGOT;\n  if (param_9 == (int *)param_4[2]) {\n    if ((byte)local_64 == '\0') {\n      local_5c = &__DT_PLTGOT;\n      cVar7 = FUN_00177470(local_6c);\n      ppuVar13 = local_5c;\n      if ((cVar7 == '\x01') || ((char)local_58 == '\0')) goto LAB_001cc88e;\n    }\n    else if ((local_6c != (undefined1 *)0x0) &&\n            ((local_58._0_1_ = (char)param_7, bVar16 = (char)local_58 != '\0', ppuVar13 = local_5c,\n             bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c)))) goto LAB_001ccb65;\n  }\n  else {\nLAB_001cc88e:\n    local_5c = ppuVar13;\n    bVar16 = (char)local_58 == '\0';\n    ppuVar13 = local_5c;\n    if ((param_6 == (undefined1 *)0xfff1 && bVar16) &&\n       (((byte)local_64 == '\0' && (local_6c == (undefined1 *)0xfff1)))) {\nLAB_001ccb65:\n      puVar9 = (undefined4 *)(param_4[0xc] ^ *(uint *)(*param_5 + 8));\n      ppuVar13 = local_5c;\n      if (param_4[0xd] == *(int *)(*param_5 + 0xc) && puVar9 == (undefined4 *)0x0) {\n        return puVar9;\n      }\n    }\n  }\n  local_5c = ppuVar13;\n  pppuVar15 = (undefined ***)auStack_8c;\n  local_60 = local_5c + 0xde;\n  piVar2 = *(int **)(*local_60 + 0xc);\n  if (piVar2 == (int *)0x0) {\n    ppuStack_94 = local_5c + -0x3b9ab;\n    ppuStack_90 = (undefined **)piVar2;\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00(local_5c + -0x41f7c,0x69);\n  }\n  if ((*(char *)(piVar2[1] + 0xd) != '\0') &&\n     (puVar9 = (undefined4 *)(**(code **)(*piVar2 + 0xac))(piVar2,param_4,param_5,param_9,param_10),\n     (char)puVar9 != '\0')) {\n    return puVar9;\n  }\n  if ((*(byte *)(param_9 + 0xb) & 1) == 0) {\n    pcVar10 = (char *)(*(byte *)(*param_5 + 4) & 0xf);\n    if (((char)pcVar10 == '\x05') &&\n       (((char)local_58 != '\0' || (pcVar10 = (char *)FUN_00177470(param_6), (char)pcVar10 == '\0'))\n       )) {\n      if ((*(byte *)((int)param_4 + 0x2a) & 7) == 0) {\n        uVar12 = *(undefined4 *)(param_4[2] + 4);\n        FUN_00178890(&local_34,param_4);\n        puVar9 = local_34;\n        uVar14 = gettext(local_5c + -0x3b985);\n                    /* try { // try from 001ccf2f to 001ccf33 has its CatchHandler @ 001cd081 */\n        FUN_000654e0(uVar14,puVar9,uVar12);\n        if (local_34 == &local_2c) {\n          return local_34;\n        }\n        puVar9 = (undefined4 *)FUN_001e6db0(local_34);\n        return puVar9;\n      }\n      goto LAB_001cd065;\n    }\n    *(byte *)((int)param_4 + 0x2a) = *(byte *)((int)param_4 + 0x2a) | 0x80;\n    iVar11 = (**(code **)(*param_9 + 0x14))(param_9);\n  }\n  else {\n    if ((param_6 == (undefined1 *)0x0) &&\n       (puVar9 = (undefined4 *)((*(byte *)((int)param_4 + 0x29) & 3) - 1),\n       puVar9 < (undefined4 *)0x2)) {\n      return puVar9;\n    }\n    *(byte *)((int)param_4 + 0x2b) = *(byte *)((int)param_4 + 0x2b) | 1;\n    iVar11 = (**(code **)(*param_9 + 0x14))(param_9);\n  }\n  if ((iVar11 == 0) && ((*(byte *)(param_9 + 0xb) & 1) == 0)) {\n    *(byte *)((int)param_4 + 0x2b) = *(byte *)((int)param_4 + 0x2b) | 0x40;\n  }\n  if (((*(byte *)((int)param_4 + 0x2a) & 7) == 0) &&\n     (iVar11 = (**(code **)(*(int *)param_4[2] + 0x14))((int *)param_4[2]), iVar11 != 0)) {\n    puVar9 = *(undefined4 **)(*local_60 + 8);\n    pppuVar15 = (undefined ***)auStack_8c;\n    if (puVar9 == (undefined4 *)0x0) goto LAB_001ccb98;\n    if (*(char *)(puVar9[0x164f] + 0x61) != '\0') {\n      if (((((*(byte *)((int)param_4 + 0x2a) & 7) != 0) ||\n           ((*(byte *)((int)param_4 + 0x2b) & 0x20) != 0)) ||\n          (cVar7 = FUN_00177470(param_4[3]), cVar7 != '\x01')) ||\n         (((char)local_58 != '\0' || (cVar7 = FUN_00177470(param_6), cVar7 == '\0')))) {\n        ppuStack_94 = param_10;\n        puVar9 = (undefined4 *)FUN_001cb040(param_3,param_4,param_5,param_6,local_58 & 0xff,param_9)\n        ;\n        return puVar9;\n      }\n      local_5c = (undefined **)param_4[0xf];\n      local_60 = (undefined **)param_4[0xe];\n      uVar4 = param_4[0xd];\n      local_58 = param_4[0xc];\n      ppuStack_94 = param_10;\n      FUN_001cb040(param_3,param_4,param_5,param_6,0,param_9);\n      if ((uint)param_4[0xf] < local_5c ||\n          (uint)(param_4[0xf] - (int)local_5c) < (uint)((uint)param_4[0xe] < local_60)) {\n        param_4[0xe] = local_60;\n        param_4[0xf] = local_5c;\n      }\n      uVar6 = param_4[0xd] - uVar4;\n      puVar9 = (undefined4 *)(uVar6 - ((uint)param_4[0xc] < local_58));\n      if (uVar4 <= (uint)param_4[0xd] && ((uint)param_4[0xc] < local_58) <= uVar6) {\n        return puVar9;\n      }\n      param_4[0xc] = local_58;\n      param_4[0xd] = uVar4;\n      return puVar9;\n    }\n  }\n  else {\n    puVar9 = *(undefined4 **)(*local_60 + 8);\n    if (puVar9 == (undefined4 *)0x0) goto LAB_001ccb98;\n  }\n  if (*(char *)((int)puVar9 + 0xe0d) == '\0') {\n    local_74 = &local_34;\n    local_70 = &local_44;\n    pppuVar15 = (undefined ***)auStack_8c;\n  }\n  else {\n    iVar11 = *param_5;\n    if ((int)(uint)*(byte *)(iVar11 + 4) >> 4 != 2) {\n      local_74 = &local_34;\n      local_70 = &local_44;\n      pppuVar15 = (undefined ***)auStack_8c;\n      if (*(byte *)(param_4 + 10) >> 4 != 2) goto LAB_001cc978;\n    }\n    local_74 = &local_34;\n    local_70 = &local_44;\n    pppuVar15 = (undefined ***)auStack_8c;\n    if ((((byte)local_64 & param_8 != 0) != 0) &&\n       (pppuVar15 = (undefined ***)auStack_8c, local_6c != (undefined1 *)0x0)) {\n      local_64 = *(char ***)(iVar11 + 0x10);\n      local_78 = *(undefined4 **)(iVar11 + 0x14);\n      pppuVar15 = (undefined ***)auStack_8c;\n      if (local_78 != (undefined4 *)0x0 || local_64 != (char **)0x0) {\n        local_7c = (char **)param_4[0xe];\n        local_80 = (undefined4 *)param_4[0xf];\n        pppuVar15 = (undefined ***)auStack_8c;\n        if ((local_80 != (undefined4 *)0x0 || local_7c != (char **)0x0) &&\n           (((*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||\n            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80))))\n        {\n          pcVar10 = (char *)*param_4;\n          local_74 = &local_34;\n          local_70 = &local_44;\n          pppuVar15 = (undefined ***)auStack_8c;\n          if ((*pcVar10 == '_') && (pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z')) {\n            local_3c = *(undefined4 *)(iVar11 + 8);\n            local_44 = param_9;\n            local_40 = param_8;\n            local_38 = *(undefined4 *)(iVar11 + 0xc);\n            if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\nLAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;\n              ppuStack_90 = (undefined **)pcVar10;\n                    /* WARNING: Subroutine does not return */\n              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);\n            }\n            local_34 = (undefined4 *)param_4[2];\n            local_2c = param_4[0xc];\n            local_30 = local_6c;\n            local_28 = param_4[0xd];\n            ppuStack_90 = param_3;\n            ppuStack_94 = param_3;\n            local_64 = &local_4c;\n            local_4c = pcVar10;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            local_6c = local_54;\n            local_78 = &local_48;\n            FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1);\n            local_4c = (char *)*param_4;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1);\n            pppuVar15 = &ppuStack_94;\n          }\n        }\n      }\n    }\n  }\nLAB_001cc978:\n  iVar11 = *param_9;\n  *(int **)((int)pppuVar15 + -0x10) = param_9;\n  pcVar3 = *(code **)(iVar11 + 0x14);\n  *(undefined4 *)((int)pppuVar15 + -0x14) = 0x1cc981;\n  iVar11 = (*pcVar3)();\n  if (iVar11 == 0) {\n    bVar8 = *(byte *)(*param_5 + 4);\n  }\n  else {\n    bVar8 = *(byte *)(param_4 + 10);\n  }\n  local_6c = (undefined1 *)(local_58 & 0xff);\n  *(undefined1 **)((int)pppuVar15 + -0x10) = local_6c;\n  *(undefined4 *)((int)pppuVar15 + -0x14) = 0x1cc9b9;\n  uVar12 = FUN_001c9700();\n  local_58 = param_4[0xe];\n  local_64 = (char **)param_4[0xf];\n  *(uint *)((int)pppuVar15 + -4) = local_68 & 0xff;\n  *(undefined4 ***)((int)pppuVar15 + -8) = local_74;\n  *(int ***)((int)pppuVar15 + -0xc) = local_70;\n  *(int **)((int)pppuVar15 + -0x10) = param_9;\n  *(undefined4 *)((int)pppuVar15 + -0x14) = 0;\n  *(uint *)((int)pppuVar15 + -0x18) = bVar8 & 0xf;\n  *(undefined4 *)((int)pppuVar15 + -0x1c) = uVar12;\n  *(undefined4 **)((int)pppuVar15 + -0x20) = param_4;\n  *(undefined4 *)((int)pppuVar15 + -0x24) = 0x1cc9de;\n  cVar7 = FUN_001c9b30();\n  if (cVar7 == '\0') {\n    iVar11 = *param_5;\n    if ((char)local_44 != '\0') {\n      uVar4 = *(uint *)(iVar11 + 0x10);\n      ppcVar5 = *(char ***)(iVar11 + 0x14);\n      if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)) {\n        param_4[0xf] = ppcVar5;\n        param_4[0xe] = uVar4;\n      }\n      local_68 = *(uint *)(iVar11 + 8);\n      uVar4 = *(uint *)(iVar11 + 0xc);\n      if ((uint)param_4[0xd] < uVar4 || param_4[0xd] - uVar4 < (uint)((uint)param_4[0xc] < local_68)\n         ) {\n        param_4[0xd] = uVar4;\n        param_4[0xc] = local_68;\n      }\n    }\n    if ((char)local_34 != '\0') {\n      if (((*(byte *)(param_4 + 0xb) & 1) == 0) || ((*(byte *)(param_4 + 0xb) & 2) != 0)) {\n        *(byte *)(param_4 + 0xb) =\n             *(byte *)(param_4 + 0xb) & 0xfd | ((int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2) * '\x02'\n             | 1;\n      }\n    }\n    bVar8 = *(byte *)(iVar11 + 5) & 3;\n    if ((*(byte *)(iVar11 + 5) & 3) != 0) {\n      bVar1 = *(byte *)((int)param_4 + 0x29);\n      if (((bVar1 & 3) == 0) || (bVar8 < (bVar1 & 3))) {\n        *(byte *)((int)param_4 + 0x29) = bVar8 | bVar1 & 0xfc;\n      }\n    }\n  }\n  else {\n    uVar4 = param_4[0xc];\n    local_70 = (int **)CONCAT31(local_70._1_3_,*(byte *)(param_4 + 10) >> 4);\n    local_68 = param_4[0xd];\n    *(undefined ***)((int)pppuVar15 + -8) = param_10;\n    *(int **)((int)pppuVar15 + -0xc) = param_9;\n    *(undefined1 **)((int)pppuVar15 + -0x10) = local_6c;\n    *(undefined1 **)((int)pppuVar15 + -0x14) = param_6;\n    *(int **)((int)pppuVar15 + -0x18) = param_5;\n    *(undefined4 **)((int)pppuVar15 + -0x1c) = param_4;\n    *(undefined ***)((int)pppuVar15 + -0x20) = param_3;\n    *(undefined4 *)((int)pppuVar15 + -0x24) = 0x1cce64;\n    FUN_001cb040();\n    if ((char)local_44 != '\0') {\n      if ((char **)param_4[0xf] < local_64 ||\n          (uint)((int)param_4[0xf] - (int)local_64) < (uint)((uint)param_4[0xe] < local_58)) {\n        param_4[0xf] = local_64;\n        param_4[0xe] = local_58;\n      }\n      if ((uint)param_4[0xd] < local_68 ||\n          param_4[0xd] - local_68 < (uint)((uint)param_4[0xc] < uVar4)) {\n        param_4[0xc] = uVar4;\n        param_4[0xd] = local_68;\n      }\n    }\n    if (((char)local_34 != '\0') &&\n       (((*(byte *)(param_4 + 0xb) & 1) == 0 || ((*(byte *)(param_4 + 0xb) & 2) != 0)))) {\n      *(byte *)(param_4 + 0xb) =\n           *(byte *)(param_4 + 0xb) & 0xfd | ((char)local_70 == '\x02') * '\x02' | 1;\n    }\n  }\n  bVar8 = *(byte *)((int)param_4 + 0x2a);\n  puVar9 = (undefined4 *)(uint)bVar8;\n  if ((bVar8 & 7) == 0) {\n    bVar1 = *(byte *)(param_4[2] + 0x2c);\n    if ((((bVar1 & 1) != 0) && ((char)bVar8 < '\0')) && ((*(byte *)(param_4 + 0xb) & 2) == 0)) {\n      *(byte *)(param_4[2] + 0x2c) = bVar1 | 2;\n    }\n  }\n  if ((char)local_44 != '\0') {\n    puVar9 = *(undefined4 **)(*local_60 + 8);\n    if (puVar9 == (undefined4 *)0x0) {\nLAB_001ccb98:\n      *(undefined4 **)((int)pppuVar15 + -4) = puVar9;\n      *(undefined ***)((int)pppuVar15 + -8) = local_5c + -0x3b992;\n      *(undefined4 *)((int)pppuVar15 + -0xc) = 0x5c;\n      *(undefined ***)((int)pppuVar15 + -0x10) = local_5c + -0x41f7c;\n                    /* WARNING: Subroutine does not return */\n      *(undefined **)((int)pppuVar15 + -0x14) = &UNK_001ccbb1;\n      FUN_00069d00();\n    }\n    if (*(char *)((int)puVar9 + 0x43e5) != '\0') {\n      uVar4 = *(uint *)(*param_5 + 0x10);\n      ppcVar5 = *(char ***)(*param_5 + 0x14);\n      if (ppcVar5 < local_64 || (uint)((int)ppcVar5 - (int)local_64) < (uint)(uVar4 < local_58)) {\n        ppuVar13 = local_5c + -0x3b977;\n      }\n      else if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)\n              ) {\n        ppuVar13 = local_5c + -0x3b96c;\n      }\n      else {\n        ppuVar13 = (undefined **)((int)local_5c + -0xee586);\n      }\n      *(undefined ***)((int)pppuVar15 + -0x10) = ppuVar13;\n      *(undefined4 *)((int)pppuVar15 + -0x14) = 0x1ccaee;\n      uVar12 = gettext();\n      *(int **)((int)pppuVar15 + -0x10) = param_9;\n      *(undefined4 *)((int)pppuVar15 + -0x14) = 0;\n      *(undefined4 **)((int)pppuVar15 + -0x18) = param_4;\n      *(undefined4 *)((int)pppuVar15 + -0x1c) = uVar12;\n      *(undefined4 *)((int)pppuVar15 + -0x20) = 0;\n      *(undefined4 *)((int)pppuVar15 + -0x24) = 0x1ccafc;\n      puVar9 = (undefined4 *)FUN_001c9960();\n    }\n  }\n  return puVar9;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "code *pcVar3;" type_identifier (pointer_declarator "*pcVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "char **ppcVar5;" primitive_type (pointer_declarator "**ppcVar5" * (pointer_declarator "*ppcVar5" * identifier)) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "char cVar7;" primitive_type identifier ;) (declaration "byte bVar8;" type_identifier identifier ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "undefined **ppuVar13;" type_identifier (pointer_declarator "**ppuVar13" * (pointer_declarator "*ppuVar13" * identifier)) ;) (declaration "undefined4 uVar14;" type_identifier identifier ;) (declaration "undefined ***pppuVar15;" type_identifier (pointer_declarator "***pppuVar15" * (pointer_declarator "**pppuVar15" * (pointer_declarator "*pppuVar15" * identifier))) ;) (declaration "bool bVar16;" primitive_type identifier ;) (declaration "undefined **ppuStack_94;" type_identifier (pointer_declarator "**ppuStack_94" * (pointer_declarator "*ppuStack_94" * identifier)) ;) (declaration "undefined **ppuStack_90;" type_identifier (pointer_declarator "**ppuStack_90" * (pointer_declarator "*ppuStack_90" * identifier)) ;) (declaration "undefined1 auStack_8c [12];" type_identifier (array_declarator "auStack_8c [12]" identifier [ number_literal ]) ;) (declaration "undefined4 *local_80;" type_identifier (pointer_declarator "*local_80" * identifier) ;) (declaration "char **local_7c;" primitive_type (pointer_declarator "**local_7c" * (pointer_declarator "*local_7c" * identifier)) ;) (declaration "undefined4 *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "undefined4 **local_74;" type_identifier (pointer_declarator "**local_74" * (pointer_declarator "*local_74" * identifier)) ;) (declaration "int **local_70;" primitive_type (pointer_declarator "**local_70" * (pointer_declarator "*local_70" * identifier)) ;) (declaration "undefined1 *local_6c;" type_identifier (pointer_declarator "*local_6c" * identifier) ;) (declaration "uint local_68;" type_identifier identifier ;) (declaration "char **local_64;" primitive_type (pointer_declarator "**local_64" * (pointer_declarator "*local_64" * identifier)) ;) (declaration "undefined **local_60;" type_identifier (pointer_declarator "**local_60" * (pointer_declarator "*local_60" * identifier)) ;) (declaration "undefined **local_5c;" type_identifier (pointer_declarator "**local_5c" * (pointer_declarator "*local_5c" * identifier)) ;) (declaration "uint local_58;" type_identifier identifier ;) (declaration "undefined1 local_54 [8];" type_identifier (array_declarator "local_54 [8]" identifier [ number_literal ]) ;) (declaration "char *local_4c;" primitive_type (pointer_declarator "*local_4c" * identifier) ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "int *local_44;" primitive_type (pointer_declarator "*local_44" * identifier) ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined4 *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "undefined1 *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (expression_statement "local_5c = &__DT_PLTGOT;" (assignment_expression "local_5c = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "local_58 = param_7;" (assignment_expression "local_58 = param_7" identifier = identifier) ;) (expression_statement "local_68 = param_11;" (assignment_expression "local_68 = param_11" identifier = identifier) ;) (if_statement "if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\n    ppuStack_94 = (undefined **)0x2a09d4;\n    ppuStack_90 = (undefined **)param_2;\n    local_5c = &__DT_PLTGOT;\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00("../../gold/symtab.h",0xaa);\n  }" if (parenthesized_expression "((*(byte *)((int)param_4 + 0x2a) & 7) != 0)" ( (binary_expression "(*(byte *)((int)param_4 + 0x2a) & 7) != 0" (parenthesized_expression "(*(byte *)((int)param_4 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)param_4 + 0x2a) & 7" (pointer_expression "*(byte *)((int)param_4 + 0x2a)" * (cast_expression "(byte *)((int)param_4 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 + 0x2a)" ( (binary_expression "(int)param_4 + 0x2a" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n    ppuStack_94 = (undefined **)0x2a09d4;\n    ppuStack_90 = (undefined **)param_2;\n    local_5c = &__DT_PLTGOT;\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00("../../gold/symtab.h",0xaa);\n  }" { (expression_statement "ppuStack_94 = (undefined **)0x2a09d4;" (assignment_expression "ppuStack_94 = (undefined **)0x2a09d4" identifier = (cast_expression "(undefined **)0x2a09d4" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "ppuStack_90 = (undefined **)param_2;" (assignment_expression "ppuStack_90 = (undefined **)param_2" identifier = (cast_expression "(undefined **)param_2" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "local_5c = &__DT_PLTGOT;" (assignment_expression "local_5c = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) comment (expression_statement "FUN_00069d00("../../gold/symtab.h",0xaa);" (call_expression "FUN_00069d00("../../gold/symtab.h",0xaa)" identifier (argument_list "("../../gold/symtab.h",0xaa)" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal ))) ;) })) (expression_statement "local_64 = (char **)(CONCAT31(local_64._1_3_,*(byte *)((int)param_4 + 0x2b) >> 5) & 0xffffff01);" (assignment_expression "local_64 = (char **)(CONCAT31(local_64._1_3_,*(byte *)((int)param_4 + 0x2b) >> 5) & 0xffffff01)" identifier = (cast_expression "(char **)(CONCAT31(local_64._1_3_,*(byte *)((int)param_4 + 0x2b) >> 5) & 0xffffff01)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(CONCAT31(local_64._1_3_,*(byte *)((int)param_4 + 0x2b) >> 5) & 0xffffff01)" ( (binary_expression "CONCAT31(local_64._1_3_,*(byte *)((int)param_4 + 0x2b) >> 5) & 0xffffff01" (call_expression "CONCAT31(local_64._1_3_,*(byte *)((int)param_4 + 0x2b) >> 5)" identifier (argument_list "(local_64._1_3_,*(byte *)((int)param_4 + 0x2b) >> 5)" ( (field_expression "local_64._1_3_" identifier . field_identifier) , (binary_expression "*(byte *)((int)param_4 + 0x2b) >> 5" (pointer_expression "*(byte *)((int)param_4 + 0x2b)" * (cast_expression "(byte *)((int)param_4 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 + 0x2b)" ( (binary_expression "(int)param_4 + 0x2b" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) >> number_literal) ))) & number_literal) )))) ;) (expression_statement "local_6c = (undefined1 *)param_4[3];" (assignment_expression "local_6c = (undefined1 *)param_4[3]" identifier = (cast_expression "(undefined1 *)param_4[3]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[3]" identifier [ number_literal ]))) ;) (expression_statement "ppuVar13 = &__DT_PLTGOT;" (assignment_expression "ppuVar13 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (if_statement "if (param_9 == (int *)param_4[2]) {\n    if ((byte)local_64 == '\0') {\n      local_5c = &__DT_PLTGOT;\n      cVar7 = FUN_00177470(local_6c);\n      ppuVar13 = local_5c;\n      if ((cVar7 == '\x01') || ((char)local_58 == '\0')) goto LAB_001cc88e;\n    }\n    else if ((local_6c != (undefined1 *)0x0) &&\n            ((local_58._0_1_ = (char)param_7, bVar16 = (char)local_58 != '\0', ppuVar13 = local_5c,\n             bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c)))) goto LAB_001ccb65;\n  }\n  else {\nLAB_001cc88e:\n    local_5c = ppuVar13;\n    bVar16 = (char)local_58 == '\0';\n    ppuVar13 = local_5c;\n    if ((param_6 == (undefined1 *)0xfff1 && bVar16) &&\n       (((byte)local_64 == '\0' && (local_6c == (undefined1 *)0xfff1)))) {\nLAB_001ccb65:\n      puVar9 = (undefined4 *)(param_4[0xc] ^ *(uint *)(*param_5 + 8));\n      ppuVar13 = local_5c;\n      if (param_4[0xd] == *(int *)(*param_5 + 0xc) && puVar9 == (undefined4 *)0x0) {\n        return puVar9;\n      }\n    }\n  }" if (parenthesized_expression "(param_9 == (int *)param_4[2])" ( (binary_expression "param_9 == (int *)param_4[2]" identifier == (cast_expression "(int *)param_4[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[2]" identifier [ number_literal ]))) )) (compound_statement "{\n    if ((byte)local_64 == '\0') {\n      local_5c = &__DT_PLTGOT;\n      cVar7 = FUN_00177470(local_6c);\n      ppuVar13 = local_5c;\n      if ((cVar7 == '\x01') || ((char)local_58 == '\0')) goto LAB_001cc88e;\n    }\n    else if ((local_6c != (undefined1 *)0x0) &&\n            ((local_58._0_1_ = (char)param_7, bVar16 = (char)local_58 != '\0', ppuVar13 = local_5c,\n             bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c)))) goto LAB_001ccb65;\n  }" { (if_statement "if ((byte)local_64 == '\0') {\n      local_5c = &__DT_PLTGOT;\n      cVar7 = FUN_00177470(local_6c);\n      ppuVar13 = local_5c;\n      if ((cVar7 == '\x01') || ((char)local_58 == '\0')) goto LAB_001cc88e;\n    }\n    else if ((local_6c != (undefined1 *)0x0) &&\n            ((local_58._0_1_ = (char)param_7, bVar16 = (char)local_58 != '\0', ppuVar13 = local_5c,\n             bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c)))) goto LAB_001ccb65;" if (parenthesized_expression "((byte)local_64 == '\0')" ( (binary_expression "(byte)local_64 == '\0'" (cast_expression "(byte)local_64" ( (type_descriptor "byte" type_identifier) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      local_5c = &__DT_PLTGOT;\n      cVar7 = FUN_00177470(local_6c);\n      ppuVar13 = local_5c;\n      if ((cVar7 == '\x01') || ((char)local_58 == '\0')) goto LAB_001cc88e;\n    }" { (expression_statement "local_5c = &__DT_PLTGOT;" (assignment_expression "local_5c = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "cVar7 = FUN_00177470(local_6c);" (assignment_expression "cVar7 = FUN_00177470(local_6c)" identifier = (call_expression "FUN_00177470(local_6c)" identifier (argument_list "(local_6c)" ( identifier )))) ;) (expression_statement "ppuVar13 = local_5c;" (assignment_expression "ppuVar13 = local_5c" identifier = identifier) ;) (if_statement "if ((cVar7 == '\x01') || ((char)local_58 == '\0')) goto LAB_001cc88e;" if (parenthesized_expression "((cVar7 == '\x01') || ((char)local_58 == '\0'))" ( (binary_expression "(cVar7 == '\x01') || ((char)local_58 == '\0')" (parenthesized_expression "(cVar7 == '\x01')" ( (binary_expression "cVar7 == '\x01'" identifier == (char_literal "'\x01'" ' escape_sequence ')) )) || (parenthesized_expression "((char)local_58 == '\0')" ( (binary_expression "(char)local_58 == '\0'" (cast_expression "(char)local_58" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_001cc88e;" goto statement_identifier ;)) }) (else_clause "else if ((local_6c != (undefined1 *)0x0) &&\n            ((local_58._0_1_ = (char)param_7, bVar16 = (char)local_58 != '\0', ppuVar13 = local_5c,\n             bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c)))) goto LAB_001ccb65;" else (if_statement "if ((local_6c != (undefined1 *)0x0) &&\n            ((local_58._0_1_ = (char)param_7, bVar16 = (char)local_58 != '\0', ppuVar13 = local_5c,\n             bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c)))) goto LAB_001ccb65;" if (parenthesized_expression "((local_6c != (undefined1 *)0x0) &&\n            ((local_58._0_1_ = (char)param_7, bVar16 = (char)local_58 != '\0', ppuVar13 = local_5c,\n             bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c))))" ( (binary_expression "(local_6c != (undefined1 *)0x0) &&\n            ((local_58._0_1_ = (char)param_7, bVar16 = (char)local_58 != '\0', ppuVar13 = local_5c,\n             bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c)))" (parenthesized_expression "(local_6c != (undefined1 *)0x0)" ( (binary_expression "local_6c != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((local_58._0_1_ = (char)param_7, bVar16 = (char)local_58 != '\0', ppuVar13 = local_5c,\n             bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c)))" ( (parenthesized_expression "(local_58._0_1_ = (char)param_7, bVar16 = (char)local_58 != '\0', ppuVar13 = local_5c,\n             bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c))" ( (comma_expression "local_58._0_1_ = (char)param_7, bVar16 = (char)local_58 != '\0', ppuVar13 = local_5c,\n             bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c)" (assignment_expression "local_58._0_1_ = (char)param_7" (field_expression "local_58._0_1_" identifier . field_identifier) = (cast_expression "(char)param_7" ( (type_descriptor "char" primitive_type) ) identifier)) , (comma_expression "bVar16 = (char)local_58 != '\0', ppuVar13 = local_5c,\n             bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c)" (assignment_expression "bVar16 = (char)local_58 != '\0'" identifier = (binary_expression "(char)local_58 != '\0'" (cast_expression "(char)local_58" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence '))) , (comma_expression "ppuVar13 = local_5c,\n             bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c)" (assignment_expression "ppuVar13 = local_5c" identifier = identifier) , (binary_expression "bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c)" identifier && (parenthesized_expression "(local_5c = &__DT_PLTGOT, param_6 == local_6c)" ( (comma_expression "local_5c = &__DT_PLTGOT, param_6 == local_6c" (assignment_expression "local_5c = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) , (binary_expression "param_6 == local_6c" identifier == identifier)) )))))) )) ))) )) (goto_statement "goto LAB_001ccb65;" goto statement_identifier ;)))) }) (else_clause "else {\nLAB_001cc88e:\n    local_5c = ppuVar13;\n    bVar16 = (char)local_58 == '\0';\n    ppuVar13 = local_5c;\n    if ((param_6 == (undefined1 *)0xfff1 && bVar16) &&\n       (((byte)local_64 == '\0' && (local_6c == (undefined1 *)0xfff1)))) {\nLAB_001ccb65:\n      puVar9 = (undefined4 *)(param_4[0xc] ^ *(uint *)(*param_5 + 8));\n      ppuVar13 = local_5c;\n      if (param_4[0xd] == *(int *)(*param_5 + 0xc) && puVar9 == (undefined4 *)0x0) {\n        return puVar9;\n      }\n    }\n  }" else (compound_statement "{\nLAB_001cc88e:\n    local_5c = ppuVar13;\n    bVar16 = (char)local_58 == '\0';\n    ppuVar13 = local_5c;\n    if ((param_6 == (undefined1 *)0xfff1 && bVar16) &&\n       (((byte)local_64 == '\0' && (local_6c == (undefined1 *)0xfff1)))) {\nLAB_001ccb65:\n      puVar9 = (undefined4 *)(param_4[0xc] ^ *(uint *)(*param_5 + 8));\n      ppuVar13 = local_5c;\n      if (param_4[0xd] == *(int *)(*param_5 + 0xc) && puVar9 == (undefined4 *)0x0) {\n        return puVar9;\n      }\n    }\n  }" { (labeled_statement "LAB_001cc88e:\n    local_5c = ppuVar13;" statement_identifier : (expression_statement "local_5c = ppuVar13;" (assignment_expression "local_5c = ppuVar13" identifier = identifier) ;)) (expression_statement "bVar16 = (char)local_58 == '\0';" (assignment_expression "bVar16 = (char)local_58 == '\0'" identifier = (binary_expression "(char)local_58 == '\0'" (cast_expression "(char)local_58" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence '))) ;) (expression_statement "ppuVar13 = local_5c;" (assignment_expression "ppuVar13 = local_5c" identifier = identifier) ;) (if_statement "if ((param_6 == (undefined1 *)0xfff1 && bVar16) &&\n       (((byte)local_64 == '\0' && (local_6c == (undefined1 *)0xfff1)))) {\nLAB_001ccb65:\n      puVar9 = (undefined4 *)(param_4[0xc] ^ *(uint *)(*param_5 + 8));\n      ppuVar13 = local_5c;\n      if (param_4[0xd] == *(int *)(*param_5 + 0xc) && puVar9 == (undefined4 *)0x0) {\n        return puVar9;\n      }\n    }" if (parenthesized_expression "((param_6 == (undefined1 *)0xfff1 && bVar16) &&\n       (((byte)local_64 == '\0' && (local_6c == (undefined1 *)0xfff1))))" ( (binary_expression "(param_6 == (undefined1 *)0xfff1 && bVar16) &&\n       (((byte)local_64 == '\0' && (local_6c == (undefined1 *)0xfff1)))" (parenthesized_expression "(param_6 == (undefined1 *)0xfff1 && bVar16)" ( (binary_expression "param_6 == (undefined1 *)0xfff1 && bVar16" (binary_expression "param_6 == (undefined1 *)0xfff1" identifier == (cast_expression "(undefined1 *)0xfff1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && identifier) )) && (parenthesized_expression "(((byte)local_64 == '\0' && (local_6c == (undefined1 *)0xfff1)))" ( (parenthesized_expression "((byte)local_64 == '\0' && (local_6c == (undefined1 *)0xfff1))" ( (binary_expression "(byte)local_64 == '\0' && (local_6c == (undefined1 *)0xfff1)" (binary_expression "(byte)local_64 == '\0'" (cast_expression "(byte)local_64" ( (type_descriptor "byte" type_identifier) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) && (parenthesized_expression "(local_6c == (undefined1 *)0xfff1)" ( (binary_expression "local_6c == (undefined1 *)0xfff1" identifier == (cast_expression "(undefined1 *)0xfff1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) ))) )) (compound_statement "{\nLAB_001ccb65:\n      puVar9 = (undefined4 *)(param_4[0xc] ^ *(uint *)(*param_5 + 8));\n      ppuVar13 = local_5c;\n      if (param_4[0xd] == *(int *)(*param_5 + 0xc) && puVar9 == (undefined4 *)0x0) {\n        return puVar9;\n      }\n    }" { (labeled_statement "LAB_001ccb65:\n      puVar9 = (undefined4 *)(param_4[0xc] ^ *(uint *)(*param_5 + 8));" statement_identifier : (expression_statement "puVar9 = (undefined4 *)(param_4[0xc] ^ *(uint *)(*param_5 + 8));" (assignment_expression "puVar9 = (undefined4 *)(param_4[0xc] ^ *(uint *)(*param_5 + 8))" identifier = (cast_expression "(undefined4 *)(param_4[0xc] ^ *(uint *)(*param_5 + 8))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4[0xc] ^ *(uint *)(*param_5 + 8))" ( (binary_expression "param_4[0xc] ^ *(uint *)(*param_5 + 8)" (subscript_expression "param_4[0xc]" identifier [ number_literal ]) ^ (pointer_expression "*(uint *)(*param_5 + 8)" * (cast_expression "(uint *)(*param_5 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_5 + 8)" ( (binary_expression "*param_5 + 8" (pointer_expression "*param_5" * identifier) + number_literal) ))))) )))) ;)) (expression_statement "ppuVar13 = local_5c;" (assignment_expression "ppuVar13 = local_5c" identifier = identifier) ;) (if_statement "if (param_4[0xd] == *(int *)(*param_5 + 0xc) && puVar9 == (undefined4 *)0x0) {\n        return puVar9;\n      }" if (parenthesized_expression "(param_4[0xd] == *(int *)(*param_5 + 0xc) && puVar9 == (undefined4 *)0x0)" ( (binary_expression "param_4[0xd] == *(int *)(*param_5 + 0xc) && puVar9 == (undefined4 *)0x0" (binary_expression "param_4[0xd] == *(int *)(*param_5 + 0xc)" (subscript_expression "param_4[0xd]" identifier [ number_literal ]) == (pointer_expression "*(int *)(*param_5 + 0xc)" * (cast_expression "(int *)(*param_5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_5 + 0xc)" ( (binary_expression "*param_5 + 0xc" (pointer_expression "*param_5" * identifier) + number_literal) ))))) && (binary_expression "puVar9 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n        return puVar9;\n      }" { (return_statement "return puVar9;" return identifier ;) })) })) }))) (expression_statement "local_5c = ppuVar13;" (assignment_expression "local_5c = ppuVar13" identifier = identifier) ;) (expression_statement "pppuVar15 = (undefined ***)auStack_8c;" (assignment_expression "pppuVar15 = (undefined ***)auStack_8c" identifier = (cast_expression "(undefined ***)auStack_8c" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (expression_statement "local_60 = local_5c + 0xde;" (assignment_expression "local_60 = local_5c + 0xde" identifier = (binary_expression "local_5c + 0xde" identifier + number_literal)) ;) (expression_statement "piVar2 = *(int **)(*local_60 + 0xc);" (assignment_expression "piVar2 = *(int **)(*local_60 + 0xc)" identifier = (pointer_expression "*(int **)(*local_60 + 0xc)" * (cast_expression "(int **)(*local_60 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_60 + 0xc)" ( (binary_expression "*local_60 + 0xc" (pointer_expression "*local_60" * identifier) + number_literal) ))))) ;) (if_statement "if (piVar2 == (int *)0x0) {\n    ppuStack_94 = local_5c + -0x3b9ab;\n    ppuStack_90 = (undefined **)piVar2;\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00(local_5c + -0x41f7c,0x69);\n  }" if (parenthesized_expression "(piVar2 == (int *)0x0)" ( (binary_expression "piVar2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    ppuStack_94 = local_5c + -0x3b9ab;\n    ppuStack_90 = (undefined **)piVar2;\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00(local_5c + -0x41f7c,0x69);\n  }" { (expression_statement "ppuStack_94 = local_5c + -0x3b9ab;" (assignment_expression "ppuStack_94 = local_5c + -0x3b9ab" identifier = (binary_expression "local_5c + -0x3b9ab" identifier + number_literal)) ;) (expression_statement "ppuStack_90 = (undefined **)piVar2;" (assignment_expression "ppuStack_90 = (undefined **)piVar2" identifier = (cast_expression "(undefined **)piVar2" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) comment (expression_statement "FUN_00069d00(local_5c + -0x41f7c,0x69);" (call_expression "FUN_00069d00(local_5c + -0x41f7c,0x69)" identifier (argument_list "(local_5c + -0x41f7c,0x69)" ( (binary_expression "local_5c + -0x41f7c" identifier + number_literal) , number_literal ))) ;) })) (if_statement "if ((*(char *)(piVar2[1] + 0xd) != '\0') &&\n     (puVar9 = (undefined4 *)(**(code **)(*piVar2 + 0xac))(piVar2,param_4,param_5,param_9,param_10),\n     (char)puVar9 != '\0')) {\n    return puVar9;\n  }" if (parenthesized_expression "((*(char *)(piVar2[1] + 0xd) != '\0') &&\n     (puVar9 = (undefined4 *)(**(code **)(*piVar2 + 0xac))(piVar2,param_4,param_5,param_9,param_10),\n     (char)puVar9 != '\0'))" ( (binary_expression "(*(char *)(piVar2[1] + 0xd) != '\0') &&\n     (puVar9 = (undefined4 *)(**(code **)(*piVar2 + 0xac))(piVar2,param_4,param_5,param_9,param_10),\n     (char)puVar9 != '\0')" (parenthesized_expression "(*(char *)(piVar2[1] + 0xd) != '\0')" ( (binary_expression "*(char *)(piVar2[1] + 0xd) != '\0'" (pointer_expression "*(char *)(piVar2[1] + 0xd)" * (cast_expression "(char *)(piVar2[1] + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar2[1] + 0xd)" ( (binary_expression "piVar2[1] + 0xd" (subscript_expression "piVar2[1]" identifier [ number_literal ]) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(puVar9 = (undefined4 *)(**(code **)(*piVar2 + 0xac))(piVar2,param_4,param_5,param_9,param_10),\n     (char)puVar9 != '\0')" ( (comma_expression "puVar9 = (undefined4 *)(**(code **)(*piVar2 + 0xac))(piVar2,param_4,param_5,param_9,param_10),\n     (char)puVar9 != '\0'" (assignment_expression "puVar9 = (undefined4 *)(**(code **)(*piVar2 + 0xac))(piVar2,param_4,param_5,param_9,param_10)" identifier = (cast_expression "(undefined4 *)(**(code **)(*piVar2 + 0xac))(piVar2,param_4,param_5,param_9,param_10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*piVar2 + 0xac))(piVar2,param_4,param_5,param_9,param_10)" (parenthesized_expression "(**(code **)(*piVar2 + 0xac))" ( (pointer_expression "**(code **)(*piVar2 + 0xac)" * (pointer_expression "*(code **)(*piVar2 + 0xac)" * (cast_expression "(code **)(*piVar2 + 0xac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar2 + 0xac)" ( (binary_expression "*piVar2 + 0xac" (pointer_expression "*piVar2" * identifier) + number_literal) ))))) )) (argument_list "(piVar2,param_4,param_5,param_9,param_10)" ( identifier , identifier , identifier , identifier , identifier ))))) , (binary_expression "(char)puVar9 != '\0'" (cast_expression "(char)puVar9" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n    return puVar9;\n  }" { (return_statement "return puVar9;" return identifier ;) })) (if_statement "if ((*(byte *)(param_9 + 0xb) & 1) == 0) {\n    pcVar10 = (char *)(*(byte *)(*param_5 + 4) & 0xf);\n    if (((char)pcVar10 == '\x05') &&\n       (((char)local_58 != '\0' || (pcVar10 = (char *)FUN_00177470(param_6), (char)pcVar10 == '\0'))\n       )) {\n      if ((*(byte *)((int)param_4 + 0x2a) & 7) == 0) {\n        uVar12 = *(undefined4 *)(param_4[2] + 4);\n        FUN_00178890(&local_34,param_4);\n        puVar9 = local_34;\n        uVar14 = gettext(local_5c + -0x3b985);\n                    /* try { // try from 001ccf2f to 001ccf33 has its CatchHandler @ 001cd081 */\n        FUN_000654e0(uVar14,puVar9,uVar12);\n        if (local_34 == &local_2c) {\n          return local_34;\n        }\n        puVar9 = (undefined4 *)FUN_001e6db0(local_34);\n        return puVar9;\n      }\n      goto LAB_001cd065;\n    }\n    *(byte *)((int)param_4 + 0x2a) = *(byte *)((int)param_4 + 0x2a) | 0x80;\n    iVar11 = (**(code **)(*param_9 + 0x14))(param_9);\n  }\n  else {\n    if ((param_6 == (undefined1 *)0x0) &&\n       (puVar9 = (undefined4 *)((*(byte *)((int)param_4 + 0x29) & 3) - 1),\n       puVar9 < (undefined4 *)0x2)) {\n      return puVar9;\n    }\n    *(byte *)((int)param_4 + 0x2b) = *(byte *)((int)param_4 + 0x2b) | 1;\n    iVar11 = (**(code **)(*param_9 + 0x14))(param_9);\n  }" if (parenthesized_expression "((*(byte *)(param_9 + 0xb) & 1) == 0)" ( (binary_expression "(*(byte *)(param_9 + 0xb) & 1) == 0" (parenthesized_expression "(*(byte *)(param_9 + 0xb) & 1)" ( (binary_expression "*(byte *)(param_9 + 0xb) & 1" (pointer_expression "*(byte *)(param_9 + 0xb)" * (cast_expression "(byte *)(param_9 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_9 + 0xb)" ( (binary_expression "param_9 + 0xb" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    pcVar10 = (char *)(*(byte *)(*param_5 + 4) & 0xf);\n    if (((char)pcVar10 == '\x05') &&\n       (((char)local_58 != '\0' || (pcVar10 = (char *)FUN_00177470(param_6), (char)pcVar10 == '\0'))\n       )) {\n      if ((*(byte *)((int)param_4 + 0x2a) & 7) == 0) {\n        uVar12 = *(undefined4 *)(param_4[2] + 4);\n        FUN_00178890(&local_34,param_4);\n        puVar9 = local_34;\n        uVar14 = gettext(local_5c + -0x3b985);\n                    /* try { // try from 001ccf2f to 001ccf33 has its CatchHandler @ 001cd081 */\n        FUN_000654e0(uVar14,puVar9,uVar12);\n        if (local_34 == &local_2c) {\n          return local_34;\n        }\n        puVar9 = (undefined4 *)FUN_001e6db0(local_34);\n        return puVar9;\n      }\n      goto LAB_001cd065;\n    }\n    *(byte *)((int)param_4 + 0x2a) = *(byte *)((int)param_4 + 0x2a) | 0x80;\n    iVar11 = (**(code **)(*param_9 + 0x14))(param_9);\n  }" { (expression_statement "pcVar10 = (char *)(*(byte *)(*param_5 + 4) & 0xf);" (assignment_expression "pcVar10 = (char *)(*(byte *)(*param_5 + 4) & 0xf)" identifier = (cast_expression "(char *)(*(byte *)(*param_5 + 4) & 0xf)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(byte *)(*param_5 + 4) & 0xf)" ( (binary_expression "*(byte *)(*param_5 + 4) & 0xf" (pointer_expression "*(byte *)(*param_5 + 4)" * (cast_expression "(byte *)(*param_5 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_5 + 4)" ( (binary_expression "*param_5 + 4" (pointer_expression "*param_5" * identifier) + number_literal) )))) & number_literal) )))) ;) (if_statement "if (((char)pcVar10 == '\x05') &&\n       (((char)local_58 != '\0' || (pcVar10 = (char *)FUN_00177470(param_6), (char)pcVar10 == '\0'))\n       )) {\n      if ((*(byte *)((int)param_4 + 0x2a) & 7) == 0) {\n        uVar12 = *(undefined4 *)(param_4[2] + 4);\n        FUN_00178890(&local_34,param_4);\n        puVar9 = local_34;\n        uVar14 = gettext(local_5c + -0x3b985);\n                    /* try { // try from 001ccf2f to 001ccf33 has its CatchHandler @ 001cd081 */\n        FUN_000654e0(uVar14,puVar9,uVar12);\n        if (local_34 == &local_2c) {\n          return local_34;\n        }\n        puVar9 = (undefined4 *)FUN_001e6db0(local_34);\n        return puVar9;\n      }\n      goto LAB_001cd065;\n    }" if (parenthesized_expression "(((char)pcVar10 == '\x05') &&\n       (((char)local_58 != '\0' || (pcVar10 = (char *)FUN_00177470(param_6), (char)pcVar10 == '\0'))\n       ))" ( (binary_expression "((char)pcVar10 == '\x05') &&\n       (((char)local_58 != '\0' || (pcVar10 = (char *)FUN_00177470(param_6), (char)pcVar10 == '\0'))\n       )" (parenthesized_expression "((char)pcVar10 == '\x05')" ( (binary_expression "(char)pcVar10 == '\x05'" (cast_expression "(char)pcVar10" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\x05'" ' escape_sequence ')) )) && (parenthesized_expression "(((char)local_58 != '\0' || (pcVar10 = (char *)FUN_00177470(param_6), (char)pcVar10 == '\0'))\n       )" ( (parenthesized_expression "((char)local_58 != '\0' || (pcVar10 = (char *)FUN_00177470(param_6), (char)pcVar10 == '\0'))" ( (binary_expression "(char)local_58 != '\0' || (pcVar10 = (char *)FUN_00177470(param_6), (char)pcVar10 == '\0')" (binary_expression "(char)local_58 != '\0'" (cast_expression "(char)local_58" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(pcVar10 = (char *)FUN_00177470(param_6), (char)pcVar10 == '\0')" ( (comma_expression "pcVar10 = (char *)FUN_00177470(param_6), (char)pcVar10 == '\0'" (assignment_expression "pcVar10 = (char *)FUN_00177470(param_6)" identifier = (cast_expression "(char *)FUN_00177470(param_6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00177470(param_6)" identifier (argument_list "(param_6)" ( identifier ))))) , (binary_expression "(char)pcVar10 == '\0'" (cast_expression "(char)pcVar10" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence '))) ))) )) ))) )) (compound_statement "{\n      if ((*(byte *)((int)param_4 + 0x2a) & 7) == 0) {\n        uVar12 = *(undefined4 *)(param_4[2] + 4);\n        FUN_00178890(&local_34,param_4);\n        puVar9 = local_34;\n        uVar14 = gettext(local_5c + -0x3b985);\n                    /* try { // try from 001ccf2f to 001ccf33 has its CatchHandler @ 001cd081 */\n        FUN_000654e0(uVar14,puVar9,uVar12);\n        if (local_34 == &local_2c) {\n          return local_34;\n        }\n        puVar9 = (undefined4 *)FUN_001e6db0(local_34);\n        return puVar9;\n      }\n      goto LAB_001cd065;\n    }" { (if_statement "if ((*(byte *)((int)param_4 + 0x2a) & 7) == 0) {\n        uVar12 = *(undefined4 *)(param_4[2] + 4);\n        FUN_00178890(&local_34,param_4);\n        puVar9 = local_34;\n        uVar14 = gettext(local_5c + -0x3b985);\n                    /* try { // try from 001ccf2f to 001ccf33 has its CatchHandler @ 001cd081 */\n        FUN_000654e0(uVar14,puVar9,uVar12);\n        if (local_34 == &local_2c) {\n          return local_34;\n        }\n        puVar9 = (undefined4 *)FUN_001e6db0(local_34);\n        return puVar9;\n      }" if (parenthesized_expression "((*(byte *)((int)param_4 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)((int)param_4 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)((int)param_4 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)param_4 + 0x2a) & 7" (pointer_expression "*(byte *)((int)param_4 + 0x2a)" * (cast_expression "(byte *)((int)param_4 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 + 0x2a)" ( (binary_expression "(int)param_4 + 0x2a" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        uVar12 = *(undefined4 *)(param_4[2] + 4);\n        FUN_00178890(&local_34,param_4);\n        puVar9 = local_34;\n        uVar14 = gettext(local_5c + -0x3b985);\n                    /* try { // try from 001ccf2f to 001ccf33 has its CatchHandler @ 001cd081 */\n        FUN_000654e0(uVar14,puVar9,uVar12);\n        if (local_34 == &local_2c) {\n          return local_34;\n        }\n        puVar9 = (undefined4 *)FUN_001e6db0(local_34);\n        return puVar9;\n      }" { (expression_statement "uVar12 = *(undefined4 *)(param_4[2] + 4);" (assignment_expression "uVar12 = *(undefined4 *)(param_4[2] + 4)" identifier = (pointer_expression "*(undefined4 *)(param_4[2] + 4)" * (cast_expression "(undefined4 *)(param_4[2] + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4[2] + 4)" ( (binary_expression "param_4[2] + 4" (subscript_expression "param_4[2]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "FUN_00178890(&local_34,param_4);" (call_expression "FUN_00178890(&local_34,param_4)" identifier (argument_list "(&local_34,param_4)" ( (pointer_expression "&local_34" & identifier) , identifier ))) ;) (expression_statement "puVar9 = local_34;" (assignment_expression "puVar9 = local_34" identifier = identifier) ;) (expression_statement "uVar14 = gettext(local_5c + -0x3b985);" (assignment_expression "uVar14 = gettext(local_5c + -0x3b985)" identifier = (call_expression "gettext(local_5c + -0x3b985)" identifier (argument_list "(local_5c + -0x3b985)" ( (binary_expression "local_5c + -0x3b985" identifier + number_literal) )))) ;) comment (expression_statement "FUN_000654e0(uVar14,puVar9,uVar12);" (call_expression "FUN_000654e0(uVar14,puVar9,uVar12)" identifier (argument_list "(uVar14,puVar9,uVar12)" ( identifier , identifier , identifier ))) ;) (if_statement "if (local_34 == &local_2c) {\n          return local_34;\n        }" if (parenthesized_expression "(local_34 == &local_2c)" ( (binary_expression "local_34 == &local_2c" identifier == (pointer_expression "&local_2c" & identifier)) )) (compound_statement "{\n          return local_34;\n        }" { (return_statement "return local_34;" return identifier ;) })) (expression_statement "puVar9 = (undefined4 *)FUN_001e6db0(local_34);" (assignment_expression "puVar9 = (undefined4 *)FUN_001e6db0(local_34)" identifier = (cast_expression "(undefined4 *)FUN_001e6db0(local_34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e6db0(local_34)" identifier (argument_list "(local_34)" ( identifier ))))) ;) (return_statement "return puVar9;" return identifier ;) })) (goto_statement "goto LAB_001cd065;" goto statement_identifier ;) })) (expression_statement "*(byte *)((int)param_4 + 0x2a) = *(byte *)((int)param_4 + 0x2a) | 0x80;" (assignment_expression "*(byte *)((int)param_4 + 0x2a) = *(byte *)((int)param_4 + 0x2a) | 0x80" (pointer_expression "*(byte *)((int)param_4 + 0x2a)" * (cast_expression "(byte *)((int)param_4 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 + 0x2a)" ( (binary_expression "(int)param_4 + 0x2a" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((int)param_4 + 0x2a) | 0x80" (pointer_expression "*(byte *)((int)param_4 + 0x2a)" * (cast_expression "(byte *)((int)param_4 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 + 0x2a)" ( (binary_expression "(int)param_4 + 0x2a" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) | number_literal)) ;) (expression_statement "iVar11 = (**(code **)(*param_9 + 0x14))(param_9);" (assignment_expression "iVar11 = (**(code **)(*param_9 + 0x14))(param_9)" identifier = (call_expression "(**(code **)(*param_9 + 0x14))(param_9)" (parenthesized_expression "(**(code **)(*param_9 + 0x14))" ( (pointer_expression "**(code **)(*param_9 + 0x14)" * (pointer_expression "*(code **)(*param_9 + 0x14)" * (cast_expression "(code **)(*param_9 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_9 + 0x14)" ( (binary_expression "*param_9 + 0x14" (pointer_expression "*param_9" * identifier) + number_literal) ))))) )) (argument_list "(param_9)" ( identifier )))) ;) }) (else_clause "else {\n    if ((param_6 == (undefined1 *)0x0) &&\n       (puVar9 = (undefined4 *)((*(byte *)((int)param_4 + 0x29) & 3) - 1),\n       puVar9 < (undefined4 *)0x2)) {\n      return puVar9;\n    }\n    *(byte *)((int)param_4 + 0x2b) = *(byte *)((int)param_4 + 0x2b) | 1;\n    iVar11 = (**(code **)(*param_9 + 0x14))(param_9);\n  }" else (compound_statement "{\n    if ((param_6 == (undefined1 *)0x0) &&\n       (puVar9 = (undefined4 *)((*(byte *)((int)param_4 + 0x29) & 3) - 1),\n       puVar9 < (undefined4 *)0x2)) {\n      return puVar9;\n    }\n    *(byte *)((int)param_4 + 0x2b) = *(byte *)((int)param_4 + 0x2b) | 1;\n    iVar11 = (**(code **)(*param_9 + 0x14))(param_9);\n  }" { (if_statement "if ((param_6 == (undefined1 *)0x0) &&\n       (puVar9 = (undefined4 *)((*(byte *)((int)param_4 + 0x29) & 3) - 1),\n       puVar9 < (undefined4 *)0x2)) {\n      return puVar9;\n    }" if (parenthesized_expression "((param_6 == (undefined1 *)0x0) &&\n       (puVar9 = (undefined4 *)((*(byte *)((int)param_4 + 0x29) & 3) - 1),\n       puVar9 < (undefined4 *)0x2))" ( (binary_expression "(param_6 == (undefined1 *)0x0) &&\n       (puVar9 = (undefined4 *)((*(byte *)((int)param_4 + 0x29) & 3) - 1),\n       puVar9 < (undefined4 *)0x2)" (parenthesized_expression "(param_6 == (undefined1 *)0x0)" ( (binary_expression "param_6 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(puVar9 = (undefined4 *)((*(byte *)((int)param_4 + 0x29) & 3) - 1),\n       puVar9 < (undefined4 *)0x2)" ( (comma_expression "puVar9 = (undefined4 *)((*(byte *)((int)param_4 + 0x29) & 3) - 1),\n       puVar9 < (undefined4 *)0x2" (assignment_expression "puVar9 = (undefined4 *)((*(byte *)((int)param_4 + 0x29) & 3) - 1)" identifier = (cast_expression "(undefined4 *)((*(byte *)((int)param_4 + 0x29) & 3) - 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((*(byte *)((int)param_4 + 0x29) & 3) - 1)" ( (binary_expression "(*(byte *)((int)param_4 + 0x29) & 3) - 1" (parenthesized_expression "(*(byte *)((int)param_4 + 0x29) & 3)" ( (binary_expression "*(byte *)((int)param_4 + 0x29) & 3" (pointer_expression "*(byte *)((int)param_4 + 0x29)" * (cast_expression "(byte *)((int)param_4 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 + 0x29)" ( (binary_expression "(int)param_4 + 0x29" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) - number_literal) )))) , (binary_expression "puVar9 < (undefined4 *)0x2" identifier < (cast_expression "(undefined4 *)0x2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n      return puVar9;\n    }" { (return_statement "return puVar9;" return identifier ;) })) (expression_statement "*(byte *)((int)param_4 + 0x2b) = *(byte *)((int)param_4 + 0x2b) | 1;" (assignment_expression "*(byte *)((int)param_4 + 0x2b) = *(byte *)((int)param_4 + 0x2b) | 1" (pointer_expression "*(byte *)((int)param_4 + 0x2b)" * (cast_expression "(byte *)((int)param_4 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 + 0x2b)" ( (binary_expression "(int)param_4 + 0x2b" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((int)param_4 + 0x2b) | 1" (pointer_expression "*(byte *)((int)param_4 + 0x2b)" * (cast_expression "(byte *)((int)param_4 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 + 0x2b)" ( (binary_expression "(int)param_4 + 0x2b" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) | number_literal)) ;) (expression_statement "iVar11 = (**(code **)(*param_9 + 0x14))(param_9);" (assignment_expression "iVar11 = (**(code **)(*param_9 + 0x14))(param_9)" identifier = (call_expression "(**(code **)(*param_9 + 0x14))(param_9)" (parenthesized_expression "(**(code **)(*param_9 + 0x14))" ( (pointer_expression "**(code **)(*param_9 + 0x14)" * (pointer_expression "*(code **)(*param_9 + 0x14)" * (cast_expression "(code **)(*param_9 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_9 + 0x14)" ( (binary_expression "*param_9 + 0x14" (pointer_expression "*param_9" * identifier) + number_literal) ))))) )) (argument_list "(param_9)" ( identifier )))) ;) }))) (if_statement "if ((iVar11 == 0) && ((*(byte *)(param_9 + 0xb) & 1) == 0)) {\n    *(byte *)((int)param_4 + 0x2b) = *(byte *)((int)param_4 + 0x2b) | 0x40;\n  }" if (parenthesized_expression "((iVar11 == 0) && ((*(byte *)(param_9 + 0xb) & 1) == 0))" ( (binary_expression "(iVar11 == 0) && ((*(byte *)(param_9 + 0xb) & 1) == 0)" (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) && (parenthesized_expression "((*(byte *)(param_9 + 0xb) & 1) == 0)" ( (binary_expression "(*(byte *)(param_9 + 0xb) & 1) == 0" (parenthesized_expression "(*(byte *)(param_9 + 0xb) & 1)" ( (binary_expression "*(byte *)(param_9 + 0xb) & 1" (pointer_expression "*(byte *)(param_9 + 0xb)" * (cast_expression "(byte *)(param_9 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_9 + 0xb)" ( (binary_expression "param_9 + 0xb" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n    *(byte *)((int)param_4 + 0x2b) = *(byte *)((int)param_4 + 0x2b) | 0x40;\n  }" { (expression_statement "*(byte *)((int)param_4 + 0x2b) = *(byte *)((int)param_4 + 0x2b) | 0x40;" (assignment_expression "*(byte *)((int)param_4 + 0x2b) = *(byte *)((int)param_4 + 0x2b) | 0x40" (pointer_expression "*(byte *)((int)param_4 + 0x2b)" * (cast_expression "(byte *)((int)param_4 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 + 0x2b)" ( (binary_expression "(int)param_4 + 0x2b" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((int)param_4 + 0x2b) | 0x40" (pointer_expression "*(byte *)((int)param_4 + 0x2b)" * (cast_expression "(byte *)((int)param_4 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 + 0x2b)" ( (binary_expression "(int)param_4 + 0x2b" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) | number_literal)) ;) })) (if_statement "if (((*(byte *)((int)param_4 + 0x2a) & 7) == 0) &&\n     (iVar11 = (**(code **)(*(int *)param_4[2] + 0x14))((int *)param_4[2]), iVar11 != 0)) {\n    puVar9 = *(undefined4 **)(*local_60 + 8);\n    pppuVar15 = (undefined ***)auStack_8c;\n    if (puVar9 == (undefined4 *)0x0) goto LAB_001ccb98;\n    if (*(char *)(puVar9[0x164f] + 0x61) != '\0') {\n      if (((((*(byte *)((int)param_4 + 0x2a) & 7) != 0) ||\n           ((*(byte *)((int)param_4 + 0x2b) & 0x20) != 0)) ||\n          (cVar7 = FUN_00177470(param_4[3]), cVar7 != '\x01')) ||\n         (((char)local_58 != '\0' || (cVar7 = FUN_00177470(param_6), cVar7 == '\0')))) {\n        ppuStack_94 = param_10;\n        puVar9 = (undefined4 *)FUN_001cb040(param_3,param_4,param_5,param_6,local_58 & 0xff,param_9)\n        ;\n        return puVar9;\n      }\n      local_5c = (undefined **)param_4[0xf];\n      local_60 = (undefined **)param_4[0xe];\n      uVar4 = param_4[0xd];\n      local_58 = param_4[0xc];\n      ppuStack_94 = param_10;\n      FUN_001cb040(param_3,param_4,param_5,param_6,0,param_9);\n      if ((uint)param_4[0xf] < local_5c ||\n          (uint)(param_4[0xf] - (int)local_5c) < (uint)((uint)param_4[0xe] < local_60)) {\n        param_4[0xe] = local_60;\n        param_4[0xf] = local_5c;\n      }\n      uVar6 = param_4[0xd] - uVar4;\n      puVar9 = (undefined4 *)(uVar6 - ((uint)param_4[0xc] < local_58));\n      if (uVar4 <= (uint)param_4[0xd] && ((uint)param_4[0xc] < local_58) <= uVar6) {\n        return puVar9;\n      }\n      param_4[0xc] = local_58;\n      param_4[0xd] = uVar4;\n      return puVar9;\n    }\n  }\n  else {\n    puVar9 = *(undefined4 **)(*local_60 + 8);\n    if (puVar9 == (undefined4 *)0x0) goto LAB_001ccb98;\n  }" if (parenthesized_expression "(((*(byte *)((int)param_4 + 0x2a) & 7) == 0) &&\n     (iVar11 = (**(code **)(*(int *)param_4[2] + 0x14))((int *)param_4[2]), iVar11 != 0))" ( (binary_expression "((*(byte *)((int)param_4 + 0x2a) & 7) == 0) &&\n     (iVar11 = (**(code **)(*(int *)param_4[2] + 0x14))((int *)param_4[2]), iVar11 != 0)" (parenthesized_expression "((*(byte *)((int)param_4 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)((int)param_4 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)((int)param_4 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)param_4 + 0x2a) & 7" (pointer_expression "*(byte *)((int)param_4 + 0x2a)" * (cast_expression "(byte *)((int)param_4 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 + 0x2a)" ( (binary_expression "(int)param_4 + 0x2a" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(iVar11 = (**(code **)(*(int *)param_4[2] + 0x14))((int *)param_4[2]), iVar11 != 0)" ( (comma_expression "iVar11 = (**(code **)(*(int *)param_4[2] + 0x14))((int *)param_4[2]), iVar11 != 0" (assignment_expression "iVar11 = (**(code **)(*(int *)param_4[2] + 0x14))((int *)param_4[2])" identifier = (call_expression "(**(code **)(*(int *)param_4[2] + 0x14))((int *)param_4[2])" (parenthesized_expression "(**(code **)(*(int *)param_4[2] + 0x14))" ( (pointer_expression "**(code **)(*(int *)param_4[2] + 0x14)" * (pointer_expression "*(code **)(*(int *)param_4[2] + 0x14)" * (cast_expression "(code **)(*(int *)param_4[2] + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)param_4[2] + 0x14)" ( (binary_expression "*(int *)param_4[2] + 0x14" (pointer_expression "*(int *)param_4[2]" * (cast_expression "(int *)param_4[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[2]" identifier [ number_literal ]))) + number_literal) ))))) )) (argument_list "((int *)param_4[2])" ( (cast_expression "(int *)param_4[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[2]" identifier [ number_literal ])) )))) , (binary_expression "iVar11 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    puVar9 = *(undefined4 **)(*local_60 + 8);\n    pppuVar15 = (undefined ***)auStack_8c;\n    if (puVar9 == (undefined4 *)0x0) goto LAB_001ccb98;\n    if (*(char *)(puVar9[0x164f] + 0x61) != '\0') {\n      if (((((*(byte *)((int)param_4 + 0x2a) & 7) != 0) ||\n           ((*(byte *)((int)param_4 + 0x2b) & 0x20) != 0)) ||\n          (cVar7 = FUN_00177470(param_4[3]), cVar7 != '\x01')) ||\n         (((char)local_58 != '\0' || (cVar7 = FUN_00177470(param_6), cVar7 == '\0')))) {\n        ppuStack_94 = param_10;\n        puVar9 = (undefined4 *)FUN_001cb040(param_3,param_4,param_5,param_6,local_58 & 0xff,param_9)\n        ;\n        return puVar9;\n      }\n      local_5c = (undefined **)param_4[0xf];\n      local_60 = (undefined **)param_4[0xe];\n      uVar4 = param_4[0xd];\n      local_58 = param_4[0xc];\n      ppuStack_94 = param_10;\n      FUN_001cb040(param_3,param_4,param_5,param_6,0,param_9);\n      if ((uint)param_4[0xf] < local_5c ||\n          (uint)(param_4[0xf] - (int)local_5c) < (uint)((uint)param_4[0xe] < local_60)) {\n        param_4[0xe] = local_60;\n        param_4[0xf] = local_5c;\n      }\n      uVar6 = param_4[0xd] - uVar4;\n      puVar9 = (undefined4 *)(uVar6 - ((uint)param_4[0xc] < local_58));\n      if (uVar4 <= (uint)param_4[0xd] && ((uint)param_4[0xc] < local_58) <= uVar6) {\n        return puVar9;\n      }\n      param_4[0xc] = local_58;\n      param_4[0xd] = uVar4;\n      return puVar9;\n    }\n  }" { (expression_statement "puVar9 = *(undefined4 **)(*local_60 + 8);" (assignment_expression "puVar9 = *(undefined4 **)(*local_60 + 8)" identifier = (pointer_expression "*(undefined4 **)(*local_60 + 8)" * (cast_expression "(undefined4 **)(*local_60 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_60 + 8)" ( (binary_expression "*local_60 + 8" (pointer_expression "*local_60" * identifier) + number_literal) ))))) ;) (expression_statement "pppuVar15 = (undefined ***)auStack_8c;" (assignment_expression "pppuVar15 = (undefined ***)auStack_8c" identifier = (cast_expression "(undefined ***)auStack_8c" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (if_statement "if (puVar9 == (undefined4 *)0x0) goto LAB_001ccb98;" if (parenthesized_expression "(puVar9 == (undefined4 *)0x0)" ( (binary_expression "puVar9 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001ccb98;" goto statement_identifier ;)) (if_statement "if (*(char *)(puVar9[0x164f] + 0x61) != '\0') {\n      if (((((*(byte *)((int)param_4 + 0x2a) & 7) != 0) ||\n           ((*(byte *)((int)param_4 + 0x2b) & 0x20) != 0)) ||\n          (cVar7 = FUN_00177470(param_4[3]), cVar7 != '\x01')) ||\n         (((char)local_58 != '\0' || (cVar7 = FUN_00177470(param_6), cVar7 == '\0')))) {\n        ppuStack_94 = param_10;\n        puVar9 = (undefined4 *)FUN_001cb040(param_3,param_4,param_5,param_6,local_58 & 0xff,param_9)\n        ;\n        return puVar9;\n      }\n      local_5c = (undefined **)param_4[0xf];\n      local_60 = (undefined **)param_4[0xe];\n      uVar4 = param_4[0xd];\n      local_58 = param_4[0xc];\n      ppuStack_94 = param_10;\n      FUN_001cb040(param_3,param_4,param_5,param_6,0,param_9);\n      if ((uint)param_4[0xf] < local_5c ||\n          (uint)(param_4[0xf] - (int)local_5c) < (uint)((uint)param_4[0xe] < local_60)) {\n        param_4[0xe] = local_60;\n        param_4[0xf] = local_5c;\n      }\n      uVar6 = param_4[0xd] - uVar4;\n      puVar9 = (undefined4 *)(uVar6 - ((uint)param_4[0xc] < local_58));\n      if (uVar4 <= (uint)param_4[0xd] && ((uint)param_4[0xc] < local_58) <= uVar6) {\n        return puVar9;\n      }\n      param_4[0xc] = local_58;\n      param_4[0xd] = uVar4;\n      return puVar9;\n    }" if (parenthesized_expression "(*(char *)(puVar9[0x164f] + 0x61) != '\0')" ( (binary_expression "*(char *)(puVar9[0x164f] + 0x61) != '\0'" (pointer_expression "*(char *)(puVar9[0x164f] + 0x61)" * (cast_expression "(char *)(puVar9[0x164f] + 0x61)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9[0x164f] + 0x61)" ( (binary_expression "puVar9[0x164f] + 0x61" (subscript_expression "puVar9[0x164f]" identifier [ number_literal ]) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if (((((*(byte *)((int)param_4 + 0x2a) & 7) != 0) ||\n           ((*(byte *)((int)param_4 + 0x2b) & 0x20) != 0)) ||\n          (cVar7 = FUN_00177470(param_4[3]), cVar7 != '\x01')) ||\n         (((char)local_58 != '\0' || (cVar7 = FUN_00177470(param_6), cVar7 == '\0')))) {\n        ppuStack_94 = param_10;\n        puVar9 = (undefined4 *)FUN_001cb040(param_3,param_4,param_5,param_6,local_58 & 0xff,param_9)\n        ;\n        return puVar9;\n      }\n      local_5c = (undefined **)param_4[0xf];\n      local_60 = (undefined **)param_4[0xe];\n      uVar4 = param_4[0xd];\n      local_58 = param_4[0xc];\n      ppuStack_94 = param_10;\n      FUN_001cb040(param_3,param_4,param_5,param_6,0,param_9);\n      if ((uint)param_4[0xf] < local_5c ||\n          (uint)(param_4[0xf] - (int)local_5c) < (uint)((uint)param_4[0xe] < local_60)) {\n        param_4[0xe] = local_60;\n        param_4[0xf] = local_5c;\n      }\n      uVar6 = param_4[0xd] - uVar4;\n      puVar9 = (undefined4 *)(uVar6 - ((uint)param_4[0xc] < local_58));\n      if (uVar4 <= (uint)param_4[0xd] && ((uint)param_4[0xc] < local_58) <= uVar6) {\n        return puVar9;\n      }\n      param_4[0xc] = local_58;\n      param_4[0xd] = uVar4;\n      return puVar9;\n    }" { (if_statement "if (((((*(byte *)((int)param_4 + 0x2a) & 7) != 0) ||\n           ((*(byte *)((int)param_4 + 0x2b) & 0x20) != 0)) ||\n          (cVar7 = FUN_00177470(param_4[3]), cVar7 != '\x01')) ||\n         (((char)local_58 != '\0' || (cVar7 = FUN_00177470(param_6), cVar7 == '\0')))) {\n        ppuStack_94 = param_10;\n        puVar9 = (undefined4 *)FUN_001cb040(param_3,param_4,param_5,param_6,local_58 & 0xff,param_9)\n        ;\n        return puVar9;\n      }" if (parenthesized_expression "(((((*(byte *)((int)param_4 + 0x2a) & 7) != 0) ||\n           ((*(byte *)((int)param_4 + 0x2b) & 0x20) != 0)) ||\n          (cVar7 = FUN_00177470(param_4[3]), cVar7 != '\x01')) ||\n         (((char)local_58 != '\0' || (cVar7 = FUN_00177470(param_6), cVar7 == '\0'))))" ( (binary_expression "((((*(byte *)((int)param_4 + 0x2a) & 7) != 0) ||\n           ((*(byte *)((int)param_4 + 0x2b) & 0x20) != 0)) ||\n          (cVar7 = FUN_00177470(param_4[3]), cVar7 != '\x01')) ||\n         (((char)local_58 != '\0' || (cVar7 = FUN_00177470(param_6), cVar7 == '\0')))" (parenthesized_expression "((((*(byte *)((int)param_4 + 0x2a) & 7) != 0) ||\n           ((*(byte *)((int)param_4 + 0x2b) & 0x20) != 0)) ||\n          (cVar7 = FUN_00177470(param_4[3]), cVar7 != '\x01'))" ( (binary_expression "(((*(byte *)((int)param_4 + 0x2a) & 7) != 0) ||\n           ((*(byte *)((int)param_4 + 0x2b) & 0x20) != 0)) ||\n          (cVar7 = FUN_00177470(param_4[3]), cVar7 != '\x01')" (parenthesized_expression "(((*(byte *)((int)param_4 + 0x2a) & 7) != 0) ||\n           ((*(byte *)((int)param_4 + 0x2b) & 0x20) != 0))" ( (binary_expression "((*(byte *)((int)param_4 + 0x2a) & 7) != 0) ||\n           ((*(byte *)((int)param_4 + 0x2b) & 0x20) != 0)" (parenthesized_expression "((*(byte *)((int)param_4 + 0x2a) & 7) != 0)" ( (binary_expression "(*(byte *)((int)param_4 + 0x2a) & 7) != 0" (parenthesized_expression "(*(byte *)((int)param_4 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)param_4 + 0x2a) & 7" (pointer_expression "*(byte *)((int)param_4 + 0x2a)" * (cast_expression "(byte *)((int)param_4 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 + 0x2a)" ( (binary_expression "(int)param_4 + 0x2a" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "((*(byte *)((int)param_4 + 0x2b) & 0x20) != 0)" ( (binary_expression "(*(byte *)((int)param_4 + 0x2b) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)param_4 + 0x2b) & 0x20)" ( (binary_expression "*(byte *)((int)param_4 + 0x2b) & 0x20" (pointer_expression "*(byte *)((int)param_4 + 0x2b)" * (cast_expression "(byte *)((int)param_4 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 + 0x2b)" ( (binary_expression "(int)param_4 + 0x2b" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "(cVar7 = FUN_00177470(param_4[3]), cVar7 != '\x01')" ( (comma_expression "cVar7 = FUN_00177470(param_4[3]), cVar7 != '\x01'" (assignment_expression "cVar7 = FUN_00177470(param_4[3])" identifier = (call_expression "FUN_00177470(param_4[3])" identifier (argument_list "(param_4[3])" ( (subscript_expression "param_4[3]" identifier [ number_literal ]) )))) , (binary_expression "cVar7 != '\x01'" identifier != (char_literal "'\x01'" ' escape_sequence '))) ))) )) || (parenthesized_expression "(((char)local_58 != '\0' || (cVar7 = FUN_00177470(param_6), cVar7 == '\0')))" ( (parenthesized_expression "((char)local_58 != '\0' || (cVar7 = FUN_00177470(param_6), cVar7 == '\0'))" ( (binary_expression "(char)local_58 != '\0' || (cVar7 = FUN_00177470(param_6), cVar7 == '\0')" (binary_expression "(char)local_58 != '\0'" (cast_expression "(char)local_58" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(cVar7 = FUN_00177470(param_6), cVar7 == '\0')" ( (comma_expression "cVar7 = FUN_00177470(param_6), cVar7 == '\0'" (assignment_expression "cVar7 = FUN_00177470(param_6)" identifier = (call_expression "FUN_00177470(param_6)" identifier (argument_list "(param_6)" ( identifier )))) , (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ))) )) ))) )) (compound_statement "{\n        ppuStack_94 = param_10;\n        puVar9 = (undefined4 *)FUN_001cb040(param_3,param_4,param_5,param_6,local_58 & 0xff,param_9)\n        ;\n        return puVar9;\n      }" { (expression_statement "ppuStack_94 = param_10;" (assignment_expression "ppuStack_94 = param_10" identifier = identifier) ;) (expression_statement "puVar9 = (undefined4 *)FUN_001cb040(param_3,param_4,param_5,param_6,local_58 & 0xff,param_9)\n        ;" (assignment_expression "puVar9 = (undefined4 *)FUN_001cb040(param_3,param_4,param_5,param_6,local_58 & 0xff,param_9)" identifier = (cast_expression "(undefined4 *)FUN_001cb040(param_3,param_4,param_5,param_6,local_58 & 0xff,param_9)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001cb040(param_3,param_4,param_5,param_6,local_58 & 0xff,param_9)" identifier (argument_list "(param_3,param_4,param_5,param_6,local_58 & 0xff,param_9)" ( identifier , identifier , identifier , identifier , (binary_expression "local_58 & 0xff" identifier & number_literal) , identifier ))))) ;) (return_statement "return puVar9;" return identifier ;) })) (expression_statement "local_5c = (undefined **)param_4[0xf];" (assignment_expression "local_5c = (undefined **)param_4[0xf]" identifier = (cast_expression "(undefined **)param_4[0xf]" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "param_4[0xf]" identifier [ number_literal ]))) ;) (expression_statement "local_60 = (undefined **)param_4[0xe];" (assignment_expression "local_60 = (undefined **)param_4[0xe]" identifier = (cast_expression "(undefined **)param_4[0xe]" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "param_4[0xe]" identifier [ number_literal ]))) ;) (expression_statement "uVar4 = param_4[0xd];" (assignment_expression "uVar4 = param_4[0xd]" identifier = (subscript_expression "param_4[0xd]" identifier [ number_literal ])) ;) (expression_statement "local_58 = param_4[0xc];" (assignment_expression "local_58 = param_4[0xc]" identifier = (subscript_expression "param_4[0xc]" identifier [ number_literal ])) ;) (expression_statement "ppuStack_94 = param_10;" (assignment_expression "ppuStack_94 = param_10" identifier = identifier) ;) (expression_statement "FUN_001cb040(param_3,param_4,param_5,param_6,0,param_9);" (call_expression "FUN_001cb040(param_3,param_4,param_5,param_6,0,param_9)" identifier (argument_list "(param_3,param_4,param_5,param_6,0,param_9)" ( identifier , identifier , identifier , identifier , number_literal , identifier ))) ;) (if_statement "if ((uint)param_4[0xf] < local_5c ||\n          (uint)(param_4[0xf] - (int)local_5c) < (uint)((uint)param_4[0xe] < local_60)) {\n        param_4[0xe] = local_60;\n        param_4[0xf] = local_5c;\n      }" if (parenthesized_expression "((uint)param_4[0xf] < local_5c ||\n          (uint)(param_4[0xf] - (int)local_5c) < (uint)((uint)param_4[0xe] < local_60))" ( (binary_expression "(uint)param_4[0xf] < local_5c ||\n          (uint)(param_4[0xf] - (int)local_5c) < (uint)((uint)param_4[0xe] < local_60)" (binary_expression "(uint)param_4[0xf] < local_5c" (cast_expression "(uint)param_4[0xf]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_4[0xf]" identifier [ number_literal ])) < identifier) || (binary_expression "(uint)(param_4[0xf] - (int)local_5c) < (uint)((uint)param_4[0xe] < local_60)" (call_expression "(uint)(param_4[0xf] - (int)local_5c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_4[0xf] - (int)local_5c)" ( (binary_expression "param_4[0xf] - (int)local_5c" (subscript_expression "param_4[0xf]" identifier [ number_literal ]) - (cast_expression "(int)local_5c" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < (call_expression "(uint)((uint)param_4[0xe] < local_60)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)param_4[0xe] < local_60)" ( (binary_expression "(uint)param_4[0xe] < local_60" (cast_expression "(uint)param_4[0xe]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_4[0xe]" identifier [ number_literal ])) < identifier) ))))) )) (compound_statement "{\n        param_4[0xe] = local_60;\n        param_4[0xf] = local_5c;\n      }" { (expression_statement "param_4[0xe] = local_60;" (assignment_expression "param_4[0xe] = local_60" (subscript_expression "param_4[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_4[0xf] = local_5c;" (assignment_expression "param_4[0xf] = local_5c" (subscript_expression "param_4[0xf]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "uVar6 = param_4[0xd] - uVar4;" (assignment_expression "uVar6 = param_4[0xd] - uVar4" identifier = (binary_expression "param_4[0xd] - uVar4" (subscript_expression "param_4[0xd]" identifier [ number_literal ]) - identifier)) ;) (expression_statement "puVar9 = (undefined4 *)(uVar6 - ((uint)param_4[0xc] < local_58));" (assignment_expression "puVar9 = (undefined4 *)(uVar6 - ((uint)param_4[0xc] < local_58))" identifier = (cast_expression "(undefined4 *)(uVar6 - ((uint)param_4[0xc] < local_58))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar6 - ((uint)param_4[0xc] < local_58))" ( (binary_expression "uVar6 - ((uint)param_4[0xc] < local_58)" identifier - (parenthesized_expression "((uint)param_4[0xc] < local_58)" ( (binary_expression "(uint)param_4[0xc] < local_58" (cast_expression "(uint)param_4[0xc]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_4[0xc]" identifier [ number_literal ])) < identifier) ))) )))) ;) (if_statement "if (uVar4 <= (uint)param_4[0xd] && ((uint)param_4[0xc] < local_58) <= uVar6) {\n        return puVar9;\n      }" if (parenthesized_expression "(uVar4 <= (uint)param_4[0xd] && ((uint)param_4[0xc] < local_58) <= uVar6)" ( (binary_expression "uVar4 <= (uint)param_4[0xd] && ((uint)param_4[0xc] < local_58) <= uVar6" (binary_expression "uVar4 <= (uint)param_4[0xd]" identifier <= (cast_expression "(uint)param_4[0xd]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_4[0xd]" identifier [ number_literal ]))) && (binary_expression "((uint)param_4[0xc] < local_58) <= uVar6" (parenthesized_expression "((uint)param_4[0xc] < local_58)" ( (binary_expression "(uint)param_4[0xc] < local_58" (cast_expression "(uint)param_4[0xc]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_4[0xc]" identifier [ number_literal ])) < identifier) )) <= identifier)) )) (compound_statement "{\n        return puVar9;\n      }" { (return_statement "return puVar9;" return identifier ;) })) (expression_statement "param_4[0xc] = local_58;" (assignment_expression "param_4[0xc] = local_58" (subscript_expression "param_4[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_4[0xd] = uVar4;" (assignment_expression "param_4[0xd] = uVar4" (subscript_expression "param_4[0xd]" identifier [ number_literal ]) = identifier) ;) (return_statement "return puVar9;" return identifier ;) })) }) (else_clause "else {\n    puVar9 = *(undefined4 **)(*local_60 + 8);\n    if (puVar9 == (undefined4 *)0x0) goto LAB_001ccb98;\n  }" else (compound_statement "{\n    puVar9 = *(undefined4 **)(*local_60 + 8);\n    if (puVar9 == (undefined4 *)0x0) goto LAB_001ccb98;\n  }" { (expression_statement "puVar9 = *(undefined4 **)(*local_60 + 8);" (assignment_expression "puVar9 = *(undefined4 **)(*local_60 + 8)" identifier = (pointer_expression "*(undefined4 **)(*local_60 + 8)" * (cast_expression "(undefined4 **)(*local_60 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_60 + 8)" ( (binary_expression "*local_60 + 8" (pointer_expression "*local_60" * identifier) + number_literal) ))))) ;) (if_statement "if (puVar9 == (undefined4 *)0x0) goto LAB_001ccb98;" if (parenthesized_expression "(puVar9 == (undefined4 *)0x0)" ( (binary_expression "puVar9 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001ccb98;" goto statement_identifier ;)) }))) (if_statement "if (*(char *)((int)puVar9 + 0xe0d) == '\0') {\n    local_74 = &local_34;\n    local_70 = &local_44;\n    pppuVar15 = (undefined ***)auStack_8c;\n  }\n  else {\n    iVar11 = *param_5;\n    if ((int)(uint)*(byte *)(iVar11 + 4) >> 4 != 2) {\n      local_74 = &local_34;\n      local_70 = &local_44;\n      pppuVar15 = (undefined ***)auStack_8c;\n      if (*(byte *)(param_4 + 10) >> 4 != 2) goto LAB_001cc978;\n    }\n    local_74 = &local_34;\n    local_70 = &local_44;\n    pppuVar15 = (undefined ***)auStack_8c;\n    if ((((byte)local_64 & param_8 != 0) != 0) &&\n       (pppuVar15 = (undefined ***)auStack_8c, local_6c != (undefined1 *)0x0)) {\n      local_64 = *(char ***)(iVar11 + 0x10);\n      local_78 = *(undefined4 **)(iVar11 + 0x14);\n      pppuVar15 = (undefined ***)auStack_8c;\n      if (local_78 != (undefined4 *)0x0 || local_64 != (char **)0x0) {\n        local_7c = (char **)param_4[0xe];\n        local_80 = (undefined4 *)param_4[0xf];\n        pppuVar15 = (undefined ***)auStack_8c;\n        if ((local_80 != (undefined4 *)0x0 || local_7c != (char **)0x0) &&\n           (((*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||\n            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80))))\n        {\n          pcVar10 = (char *)*param_4;\n          local_74 = &local_34;\n          local_70 = &local_44;\n          pppuVar15 = (undefined ***)auStack_8c;\n          if ((*pcVar10 == '_') && (pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z')) {\n            local_3c = *(undefined4 *)(iVar11 + 8);\n            local_44 = param_9;\n            local_40 = param_8;\n            local_38 = *(undefined4 *)(iVar11 + 0xc);\n            if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\nLAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;\n              ppuStack_90 = (undefined **)pcVar10;\n                    /* WARNING: Subroutine does not return */\n              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);\n            }\n            local_34 = (undefined4 *)param_4[2];\n            local_2c = param_4[0xc];\n            local_30 = local_6c;\n            local_28 = param_4[0xd];\n            ppuStack_90 = param_3;\n            ppuStack_94 = param_3;\n            local_64 = &local_4c;\n            local_4c = pcVar10;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            local_6c = local_54;\n            local_78 = &local_48;\n            FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1);\n            local_4c = (char *)*param_4;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1);\n            pppuVar15 = &ppuStack_94;\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "(*(char *)((int)puVar9 + 0xe0d) == '\0')" ( (binary_expression "*(char *)((int)puVar9 + 0xe0d) == '\0'" (pointer_expression "*(char *)((int)puVar9 + 0xe0d)" * (cast_expression "(char *)((int)puVar9 + 0xe0d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + 0xe0d)" ( (binary_expression "(int)puVar9 + 0xe0d" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    local_74 = &local_34;\n    local_70 = &local_44;\n    pppuVar15 = (undefined ***)auStack_8c;\n  }" { (expression_statement "local_74 = &local_34;" (assignment_expression "local_74 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "local_70 = &local_44;" (assignment_expression "local_70 = &local_44" identifier = (pointer_expression "&local_44" & identifier)) ;) (expression_statement "pppuVar15 = (undefined ***)auStack_8c;" (assignment_expression "pppuVar15 = (undefined ***)auStack_8c" identifier = (cast_expression "(undefined ***)auStack_8c" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) }) (else_clause "else {\n    iVar11 = *param_5;\n    if ((int)(uint)*(byte *)(iVar11 + 4) >> 4 != 2) {\n      local_74 = &local_34;\n      local_70 = &local_44;\n      pppuVar15 = (undefined ***)auStack_8c;\n      if (*(byte *)(param_4 + 10) >> 4 != 2) goto LAB_001cc978;\n    }\n    local_74 = &local_34;\n    local_70 = &local_44;\n    pppuVar15 = (undefined ***)auStack_8c;\n    if ((((byte)local_64 & param_8 != 0) != 0) &&\n       (pppuVar15 = (undefined ***)auStack_8c, local_6c != (undefined1 *)0x0)) {\n      local_64 = *(char ***)(iVar11 + 0x10);\n      local_78 = *(undefined4 **)(iVar11 + 0x14);\n      pppuVar15 = (undefined ***)auStack_8c;\n      if (local_78 != (undefined4 *)0x0 || local_64 != (char **)0x0) {\n        local_7c = (char **)param_4[0xe];\n        local_80 = (undefined4 *)param_4[0xf];\n        pppuVar15 = (undefined ***)auStack_8c;\n        if ((local_80 != (undefined4 *)0x0 || local_7c != (char **)0x0) &&\n           (((*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||\n            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80))))\n        {\n          pcVar10 = (char *)*param_4;\n          local_74 = &local_34;\n          local_70 = &local_44;\n          pppuVar15 = (undefined ***)auStack_8c;\n          if ((*pcVar10 == '_') && (pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z')) {\n            local_3c = *(undefined4 *)(iVar11 + 8);\n            local_44 = param_9;\n            local_40 = param_8;\n            local_38 = *(undefined4 *)(iVar11 + 0xc);\n            if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\nLAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;\n              ppuStack_90 = (undefined **)pcVar10;\n                    /* WARNING: Subroutine does not return */\n              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);\n            }\n            local_34 = (undefined4 *)param_4[2];\n            local_2c = param_4[0xc];\n            local_30 = local_6c;\n            local_28 = param_4[0xd];\n            ppuStack_90 = param_3;\n            ppuStack_94 = param_3;\n            local_64 = &local_4c;\n            local_4c = pcVar10;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            local_6c = local_54;\n            local_78 = &local_48;\n            FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1);\n            local_4c = (char *)*param_4;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1);\n            pppuVar15 = &ppuStack_94;\n          }\n        }\n      }\n    }\n  }" else (compound_statement "{\n    iVar11 = *param_5;\n    if ((int)(uint)*(byte *)(iVar11 + 4) >> 4 != 2) {\n      local_74 = &local_34;\n      local_70 = &local_44;\n      pppuVar15 = (undefined ***)auStack_8c;\n      if (*(byte *)(param_4 + 10) >> 4 != 2) goto LAB_001cc978;\n    }\n    local_74 = &local_34;\n    local_70 = &local_44;\n    pppuVar15 = (undefined ***)auStack_8c;\n    if ((((byte)local_64 & param_8 != 0) != 0) &&\n       (pppuVar15 = (undefined ***)auStack_8c, local_6c != (undefined1 *)0x0)) {\n      local_64 = *(char ***)(iVar11 + 0x10);\n      local_78 = *(undefined4 **)(iVar11 + 0x14);\n      pppuVar15 = (undefined ***)auStack_8c;\n      if (local_78 != (undefined4 *)0x0 || local_64 != (char **)0x0) {\n        local_7c = (char **)param_4[0xe];\n        local_80 = (undefined4 *)param_4[0xf];\n        pppuVar15 = (undefined ***)auStack_8c;\n        if ((local_80 != (undefined4 *)0x0 || local_7c != (char **)0x0) &&\n           (((*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||\n            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80))))\n        {\n          pcVar10 = (char *)*param_4;\n          local_74 = &local_34;\n          local_70 = &local_44;\n          pppuVar15 = (undefined ***)auStack_8c;\n          if ((*pcVar10 == '_') && (pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z')) {\n            local_3c = *(undefined4 *)(iVar11 + 8);\n            local_44 = param_9;\n            local_40 = param_8;\n            local_38 = *(undefined4 *)(iVar11 + 0xc);\n            if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\nLAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;\n              ppuStack_90 = (undefined **)pcVar10;\n                    /* WARNING: Subroutine does not return */\n              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);\n            }\n            local_34 = (undefined4 *)param_4[2];\n            local_2c = param_4[0xc];\n            local_30 = local_6c;\n            local_28 = param_4[0xd];\n            ppuStack_90 = param_3;\n            ppuStack_94 = param_3;\n            local_64 = &local_4c;\n            local_4c = pcVar10;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            local_6c = local_54;\n            local_78 = &local_48;\n            FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1);\n            local_4c = (char *)*param_4;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1);\n            pppuVar15 = &ppuStack_94;\n          }\n        }\n      }\n    }\n  }" { (expression_statement "iVar11 = *param_5;" (assignment_expression "iVar11 = *param_5" identifier = (pointer_expression "*param_5" * identifier)) ;) (if_statement "if ((int)(uint)*(byte *)(iVar11 + 4) >> 4 != 2) {\n      local_74 = &local_34;\n      local_70 = &local_44;\n      pppuVar15 = (undefined ***)auStack_8c;\n      if (*(byte *)(param_4 + 10) >> 4 != 2) goto LAB_001cc978;\n    }" if (parenthesized_expression "((int)(uint)*(byte *)(iVar11 + 4) >> 4 != 2)" ( (binary_expression "(int)(uint)*(byte *)(iVar11 + 4) >> 4 != 2" (binary_expression "(int)(uint)*(byte *)(iVar11 + 4) >> 4" (binary_expression "(int)(uint)*(byte *)(iVar11 + 4)" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)(iVar11 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) )))) >> number_literal) != number_literal) )) (compound_statement "{\n      local_74 = &local_34;\n      local_70 = &local_44;\n      pppuVar15 = (undefined ***)auStack_8c;\n      if (*(byte *)(param_4 + 10) >> 4 != 2) goto LAB_001cc978;\n    }" { (expression_statement "local_74 = &local_34;" (assignment_expression "local_74 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "local_70 = &local_44;" (assignment_expression "local_70 = &local_44" identifier = (pointer_expression "&local_44" & identifier)) ;) (expression_statement "pppuVar15 = (undefined ***)auStack_8c;" (assignment_expression "pppuVar15 = (undefined ***)auStack_8c" identifier = (cast_expression "(undefined ***)auStack_8c" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (if_statement "if (*(byte *)(param_4 + 10) >> 4 != 2) goto LAB_001cc978;" if (parenthesized_expression "(*(byte *)(param_4 + 10) >> 4 != 2)" ( (binary_expression "*(byte *)(param_4 + 10) >> 4 != 2" (binary_expression "*(byte *)(param_4 + 10) >> 4" (pointer_expression "*(byte *)(param_4 + 10)" * (cast_expression "(byte *)(param_4 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 10)" ( (binary_expression "param_4 + 10" identifier + number_literal) )))) >> number_literal) != number_literal) )) (goto_statement "goto LAB_001cc978;" goto statement_identifier ;)) })) (expression_statement "local_74 = &local_34;" (assignment_expression "local_74 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "local_70 = &local_44;" (assignment_expression "local_70 = &local_44" identifier = (pointer_expression "&local_44" & identifier)) ;) (expression_statement "pppuVar15 = (undefined ***)auStack_8c;" (assignment_expression "pppuVar15 = (undefined ***)auStack_8c" identifier = (cast_expression "(undefined ***)auStack_8c" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (if_statement "if ((((byte)local_64 & param_8 != 0) != 0) &&\n       (pppuVar15 = (undefined ***)auStack_8c, local_6c != (undefined1 *)0x0)) {\n      local_64 = *(char ***)(iVar11 + 0x10);\n      local_78 = *(undefined4 **)(iVar11 + 0x14);\n      pppuVar15 = (undefined ***)auStack_8c;\n      if (local_78 != (undefined4 *)0x0 || local_64 != (char **)0x0) {\n        local_7c = (char **)param_4[0xe];\n        local_80 = (undefined4 *)param_4[0xf];\n        pppuVar15 = (undefined ***)auStack_8c;\n        if ((local_80 != (undefined4 *)0x0 || local_7c != (char **)0x0) &&\n           (((*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||\n            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80))))\n        {\n          pcVar10 = (char *)*param_4;\n          local_74 = &local_34;\n          local_70 = &local_44;\n          pppuVar15 = (undefined ***)auStack_8c;\n          if ((*pcVar10 == '_') && (pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z')) {\n            local_3c = *(undefined4 *)(iVar11 + 8);\n            local_44 = param_9;\n            local_40 = param_8;\n            local_38 = *(undefined4 *)(iVar11 + 0xc);\n            if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\nLAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;\n              ppuStack_90 = (undefined **)pcVar10;\n                    /* WARNING: Subroutine does not return */\n              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);\n            }\n            local_34 = (undefined4 *)param_4[2];\n            local_2c = param_4[0xc];\n            local_30 = local_6c;\n            local_28 = param_4[0xd];\n            ppuStack_90 = param_3;\n            ppuStack_94 = param_3;\n            local_64 = &local_4c;\n            local_4c = pcVar10;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            local_6c = local_54;\n            local_78 = &local_48;\n            FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1);\n            local_4c = (char *)*param_4;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1);\n            pppuVar15 = &ppuStack_94;\n          }\n        }\n      }\n    }" if (parenthesized_expression "((((byte)local_64 & param_8 != 0) != 0) &&\n       (pppuVar15 = (undefined ***)auStack_8c, local_6c != (undefined1 *)0x0))" ( (binary_expression "(((byte)local_64 & param_8 != 0) != 0) &&\n       (pppuVar15 = (undefined ***)auStack_8c, local_6c != (undefined1 *)0x0)" (parenthesized_expression "(((byte)local_64 & param_8 != 0) != 0)" ( (binary_expression "((byte)local_64 & param_8 != 0) != 0" (parenthesized_expression "((byte)local_64 & param_8 != 0)" ( (binary_expression "(byte)local_64 & param_8 != 0" (cast_expression "(byte)local_64" ( (type_descriptor "byte" type_identifier) ) identifier) & (binary_expression "param_8 != 0" identifier != number_literal)) )) != number_literal) )) && (parenthesized_expression "(pppuVar15 = (undefined ***)auStack_8c, local_6c != (undefined1 *)0x0)" ( (comma_expression "pppuVar15 = (undefined ***)auStack_8c, local_6c != (undefined1 *)0x0" (assignment_expression "pppuVar15 = (undefined ***)auStack_8c" identifier = (cast_expression "(undefined ***)auStack_8c" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) , (binary_expression "local_6c != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n      local_64 = *(char ***)(iVar11 + 0x10);\n      local_78 = *(undefined4 **)(iVar11 + 0x14);\n      pppuVar15 = (undefined ***)auStack_8c;\n      if (local_78 != (undefined4 *)0x0 || local_64 != (char **)0x0) {\n        local_7c = (char **)param_4[0xe];\n        local_80 = (undefined4 *)param_4[0xf];\n        pppuVar15 = (undefined ***)auStack_8c;\n        if ((local_80 != (undefined4 *)0x0 || local_7c != (char **)0x0) &&\n           (((*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||\n            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80))))\n        {\n          pcVar10 = (char *)*param_4;\n          local_74 = &local_34;\n          local_70 = &local_44;\n          pppuVar15 = (undefined ***)auStack_8c;\n          if ((*pcVar10 == '_') && (pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z')) {\n            local_3c = *(undefined4 *)(iVar11 + 8);\n            local_44 = param_9;\n            local_40 = param_8;\n            local_38 = *(undefined4 *)(iVar11 + 0xc);\n            if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\nLAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;\n              ppuStack_90 = (undefined **)pcVar10;\n                    /* WARNING: Subroutine does not return */\n              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);\n            }\n            local_34 = (undefined4 *)param_4[2];\n            local_2c = param_4[0xc];\n            local_30 = local_6c;\n            local_28 = param_4[0xd];\n            ppuStack_90 = param_3;\n            ppuStack_94 = param_3;\n            local_64 = &local_4c;\n            local_4c = pcVar10;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            local_6c = local_54;\n            local_78 = &local_48;\n            FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1);\n            local_4c = (char *)*param_4;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1);\n            pppuVar15 = &ppuStack_94;\n          }\n        }\n      }\n    }" { (expression_statement "local_64 = *(char ***)(iVar11 + 0x10);" (assignment_expression "local_64 = *(char ***)(iVar11 + 0x10)" identifier = (pointer_expression "*(char ***)(iVar11 + 0x10)" * (cast_expression "(char ***)(iVar11 + 0x10)" ( (type_descriptor "char ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "local_78 = *(undefined4 **)(iVar11 + 0x14);" (assignment_expression "local_78 = *(undefined4 **)(iVar11 + 0x14)" identifier = (pointer_expression "*(undefined4 **)(iVar11 + 0x14)" * (cast_expression "(undefined4 **)(iVar11 + 0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "pppuVar15 = (undefined ***)auStack_8c;" (assignment_expression "pppuVar15 = (undefined ***)auStack_8c" identifier = (cast_expression "(undefined ***)auStack_8c" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (if_statement "if (local_78 != (undefined4 *)0x0 || local_64 != (char **)0x0) {\n        local_7c = (char **)param_4[0xe];\n        local_80 = (undefined4 *)param_4[0xf];\n        pppuVar15 = (undefined ***)auStack_8c;\n        if ((local_80 != (undefined4 *)0x0 || local_7c != (char **)0x0) &&\n           (((*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||\n            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80))))\n        {\n          pcVar10 = (char *)*param_4;\n          local_74 = &local_34;\n          local_70 = &local_44;\n          pppuVar15 = (undefined ***)auStack_8c;\n          if ((*pcVar10 == '_') && (pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z')) {\n            local_3c = *(undefined4 *)(iVar11 + 8);\n            local_44 = param_9;\n            local_40 = param_8;\n            local_38 = *(undefined4 *)(iVar11 + 0xc);\n            if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\nLAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;\n              ppuStack_90 = (undefined **)pcVar10;\n                    /* WARNING: Subroutine does not return */\n              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);\n            }\n            local_34 = (undefined4 *)param_4[2];\n            local_2c = param_4[0xc];\n            local_30 = local_6c;\n            local_28 = param_4[0xd];\n            ppuStack_90 = param_3;\n            ppuStack_94 = param_3;\n            local_64 = &local_4c;\n            local_4c = pcVar10;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            local_6c = local_54;\n            local_78 = &local_48;\n            FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1);\n            local_4c = (char *)*param_4;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1);\n            pppuVar15 = &ppuStack_94;\n          }\n        }\n      }" if (parenthesized_expression "(local_78 != (undefined4 *)0x0 || local_64 != (char **)0x0)" ( (binary_expression "local_78 != (undefined4 *)0x0 || local_64 != (char **)0x0" (binary_expression "local_78 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "local_64 != (char **)0x0" identifier != (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal))) )) (compound_statement "{\n        local_7c = (char **)param_4[0xe];\n        local_80 = (undefined4 *)param_4[0xf];\n        pppuVar15 = (undefined ***)auStack_8c;\n        if ((local_80 != (undefined4 *)0x0 || local_7c != (char **)0x0) &&\n           (((*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||\n            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80))))\n        {\n          pcVar10 = (char *)*param_4;\n          local_74 = &local_34;\n          local_70 = &local_44;\n          pppuVar15 = (undefined ***)auStack_8c;\n          if ((*pcVar10 == '_') && (pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z')) {\n            local_3c = *(undefined4 *)(iVar11 + 8);\n            local_44 = param_9;\n            local_40 = param_8;\n            local_38 = *(undefined4 *)(iVar11 + 0xc);\n            if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\nLAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;\n              ppuStack_90 = (undefined **)pcVar10;\n                    /* WARNING: Subroutine does not return */\n              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);\n            }\n            local_34 = (undefined4 *)param_4[2];\n            local_2c = param_4[0xc];\n            local_30 = local_6c;\n            local_28 = param_4[0xd];\n            ppuStack_90 = param_3;\n            ppuStack_94 = param_3;\n            local_64 = &local_4c;\n            local_4c = pcVar10;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            local_6c = local_54;\n            local_78 = &local_48;\n            FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1);\n            local_4c = (char *)*param_4;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1);\n            pppuVar15 = &ppuStack_94;\n          }\n        }\n      }" { (expression_statement "local_7c = (char **)param_4[0xe];" (assignment_expression "local_7c = (char **)param_4[0xe]" identifier = (cast_expression "(char **)param_4[0xe]" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "param_4[0xe]" identifier [ number_literal ]))) ;) (expression_statement "local_80 = (undefined4 *)param_4[0xf];" (assignment_expression "local_80 = (undefined4 *)param_4[0xf]" identifier = (cast_expression "(undefined4 *)param_4[0xf]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[0xf]" identifier [ number_literal ]))) ;) (expression_statement "pppuVar15 = (undefined ***)auStack_8c;" (assignment_expression "pppuVar15 = (undefined ***)auStack_8c" identifier = (cast_expression "(undefined ***)auStack_8c" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (if_statement "if ((local_80 != (undefined4 *)0x0 || local_7c != (char **)0x0) &&\n           (((*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||\n            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80))))\n        {\n          pcVar10 = (char *)*param_4;\n          local_74 = &local_34;\n          local_70 = &local_44;\n          pppuVar15 = (undefined ***)auStack_8c;\n          if ((*pcVar10 == '_') && (pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z')) {\n            local_3c = *(undefined4 *)(iVar11 + 8);\n            local_44 = param_9;\n            local_40 = param_8;\n            local_38 = *(undefined4 *)(iVar11 + 0xc);\n            if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\nLAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;\n              ppuStack_90 = (undefined **)pcVar10;\n                    /* WARNING: Subroutine does not return */\n              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);\n            }\n            local_34 = (undefined4 *)param_4[2];\n            local_2c = param_4[0xc];\n            local_30 = local_6c;\n            local_28 = param_4[0xd];\n            ppuStack_90 = param_3;\n            ppuStack_94 = param_3;\n            local_64 = &local_4c;\n            local_4c = pcVar10;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            local_6c = local_54;\n            local_78 = &local_48;\n            FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1);\n            local_4c = (char *)*param_4;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1);\n            pppuVar15 = &ppuStack_94;\n          }\n        }" if (parenthesized_expression "((local_80 != (undefined4 *)0x0 || local_7c != (char **)0x0) &&\n           (((*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||\n            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80))))" ( (binary_expression "(local_80 != (undefined4 *)0x0 || local_7c != (char **)0x0) &&\n           (((*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||\n            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80)))" (parenthesized_expression "(local_80 != (undefined4 *)0x0 || local_7c != (char **)0x0)" ( (binary_expression "local_80 != (undefined4 *)0x0 || local_7c != (char **)0x0" (binary_expression "local_80 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "local_7c != (char **)0x0" identifier != (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal))) )) && (parenthesized_expression "(((*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||\n            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80)))" ( (parenthesized_expression "((*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||\n            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80))" ( (binary_expression "(*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||\n            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80)" (binary_expression "(*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf)" (parenthesized_expression "(*(byte *)(iVar11 + 4) & 0xf)" ( (binary_expression "*(byte *)(iVar11 + 4) & 0xf" (pointer_expression "*(byte *)(iVar11 + 4)" * (cast_expression "(byte *)(iVar11 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) )))) & number_literal) )) != (parenthesized_expression "(*(byte *)(param_4 + 10) & 0xf)" ( (binary_expression "*(byte *)(param_4 + 10) & 0xf" (pointer_expression "*(byte *)(param_4 + 10)" * (cast_expression "(byte *)(param_4 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 10)" ( (binary_expression "param_4 + 10" identifier + number_literal) )))) & number_literal) ))) || (parenthesized_expression "(pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80)" ( (comma_expression "pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80" (assignment_expression "pppuVar15 = (undefined ***)auStack_8c" identifier = (cast_expression "(undefined ***)auStack_8c" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) , (binary_expression "local_64 != local_7c || local_78 != local_80" (binary_expression "local_64 != local_7c" identifier != identifier) || (binary_expression "local_78 != local_80" identifier != identifier))) ))) )) ))) )) (compound_statement "{\n          pcVar10 = (char *)*param_4;\n          local_74 = &local_34;\n          local_70 = &local_44;\n          pppuVar15 = (undefined ***)auStack_8c;\n          if ((*pcVar10 == '_') && (pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z')) {\n            local_3c = *(undefined4 *)(iVar11 + 8);\n            local_44 = param_9;\n            local_40 = param_8;\n            local_38 = *(undefined4 *)(iVar11 + 0xc);\n            if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\nLAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;\n              ppuStack_90 = (undefined **)pcVar10;\n                    /* WARNING: Subroutine does not return */\n              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);\n            }\n            local_34 = (undefined4 *)param_4[2];\n            local_2c = param_4[0xc];\n            local_30 = local_6c;\n            local_28 = param_4[0xd];\n            ppuStack_90 = param_3;\n            ppuStack_94 = param_3;\n            local_64 = &local_4c;\n            local_4c = pcVar10;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            local_6c = local_54;\n            local_78 = &local_48;\n            FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1);\n            local_4c = (char *)*param_4;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1);\n            pppuVar15 = &ppuStack_94;\n          }\n        }" { (expression_statement "pcVar10 = (char *)*param_4;" (assignment_expression "pcVar10 = (char *)*param_4" identifier = (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (expression_statement "local_74 = &local_34;" (assignment_expression "local_74 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "local_70 = &local_44;" (assignment_expression "local_70 = &local_44" identifier = (pointer_expression "&local_44" & identifier)) ;) (expression_statement "pppuVar15 = (undefined ***)auStack_8c;" (assignment_expression "pppuVar15 = (undefined ***)auStack_8c" identifier = (cast_expression "(undefined ***)auStack_8c" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (if_statement "if ((*pcVar10 == '_') && (pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z')) {\n            local_3c = *(undefined4 *)(iVar11 + 8);\n            local_44 = param_9;\n            local_40 = param_8;\n            local_38 = *(undefined4 *)(iVar11 + 0xc);\n            if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\nLAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;\n              ppuStack_90 = (undefined **)pcVar10;\n                    /* WARNING: Subroutine does not return */\n              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);\n            }\n            local_34 = (undefined4 *)param_4[2];\n            local_2c = param_4[0xc];\n            local_30 = local_6c;\n            local_28 = param_4[0xd];\n            ppuStack_90 = param_3;\n            ppuStack_94 = param_3;\n            local_64 = &local_4c;\n            local_4c = pcVar10;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            local_6c = local_54;\n            local_78 = &local_48;\n            FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1);\n            local_4c = (char *)*param_4;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1);\n            pppuVar15 = &ppuStack_94;\n          }" if (parenthesized_expression "((*pcVar10 == '_') && (pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z'))" ( (binary_expression "(*pcVar10 == '_') && (pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z')" (parenthesized_expression "(*pcVar10 == '_')" ( (binary_expression "*pcVar10 == '_'" (pointer_expression "*pcVar10" * identifier) == (char_literal "'_'" ' character ')) )) && (parenthesized_expression "(pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z')" ( (comma_expression "pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z'" (assignment_expression "pppuVar15 = (undefined ***)auStack_8c" identifier = (cast_expression "(undefined ***)auStack_8c" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) , (binary_expression "pcVar10[1] == 'Z'" (subscript_expression "pcVar10[1]" identifier [ number_literal ]) == (char_literal "'Z'" ' character '))) ))) )) (compound_statement "{\n            local_3c = *(undefined4 *)(iVar11 + 8);\n            local_44 = param_9;\n            local_40 = param_8;\n            local_38 = *(undefined4 *)(iVar11 + 0xc);\n            if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\nLAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;\n              ppuStack_90 = (undefined **)pcVar10;\n                    /* WARNING: Subroutine does not return */\n              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);\n            }\n            local_34 = (undefined4 *)param_4[2];\n            local_2c = param_4[0xc];\n            local_30 = local_6c;\n            local_28 = param_4[0xd];\n            ppuStack_90 = param_3;\n            ppuStack_94 = param_3;\n            local_64 = &local_4c;\n            local_4c = pcVar10;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            local_6c = local_54;\n            local_78 = &local_48;\n            FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1);\n            local_4c = (char *)*param_4;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1);\n            pppuVar15 = &ppuStack_94;\n          }" { (expression_statement "local_3c = *(undefined4 *)(iVar11 + 8);" (assignment_expression "local_3c = *(undefined4 *)(iVar11 + 8)" identifier = (pointer_expression "*(undefined4 *)(iVar11 + 8)" * (cast_expression "(undefined4 *)(iVar11 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 8)" ( (binary_expression "iVar11 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_44 = param_9;" (assignment_expression "local_44 = param_9" identifier = identifier) ;) (expression_statement "local_40 = param_8;" (assignment_expression "local_40 = param_8" identifier = identifier) ;) (expression_statement "local_38 = *(undefined4 *)(iVar11 + 0xc);" (assignment_expression "local_38 = *(undefined4 *)(iVar11 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(iVar11 + 0xc)" * (cast_expression "(undefined4 *)(iVar11 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\nLAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;\n              ppuStack_90 = (undefined **)pcVar10;\n                    /* WARNING: Subroutine does not return */\n              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);\n            }" if (parenthesized_expression "((*(byte *)((int)param_4 + 0x2a) & 7) != 0)" ( (binary_expression "(*(byte *)((int)param_4 + 0x2a) & 7) != 0" (parenthesized_expression "(*(byte *)((int)param_4 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)param_4 + 0x2a) & 7" (pointer_expression "*(byte *)((int)param_4 + 0x2a)" * (cast_expression "(byte *)((int)param_4 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 + 0x2a)" ( (binary_expression "(int)param_4 + 0x2a" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;\n              ppuStack_90 = (undefined **)pcVar10;\n                    /* WARNING: Subroutine does not return */\n              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);\n            }" { (labeled_statement "LAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;" statement_identifier : (expression_statement "ppuStack_94 = local_5c + -0x3b990;" (assignment_expression "ppuStack_94 = local_5c + -0x3b990" identifier = (binary_expression "local_5c + -0x3b990" identifier + number_literal)) ;)) (expression_statement "ppuStack_90 = (undefined **)pcVar10;" (assignment_expression "ppuStack_90 = (undefined **)pcVar10" identifier = (cast_expression "(undefined **)pcVar10" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) comment (expression_statement "FUN_00069d00((int)local_5c + -0x107dd3,0xa1);" (call_expression "FUN_00069d00((int)local_5c + -0x107dd3,0xa1)" identifier (argument_list "((int)local_5c + -0x107dd3,0xa1)" ( (binary_expression "(int)local_5c + -0x107dd3" (cast_expression "(int)local_5c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal ))) ;) })) (expression_statement "local_34 = (undefined4 *)param_4[2];" (assignment_expression "local_34 = (undefined4 *)param_4[2]" identifier = (cast_expression "(undefined4 *)param_4[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[2]" identifier [ number_literal ]))) ;) (expression_statement "local_2c = param_4[0xc];" (assignment_expression "local_2c = param_4[0xc]" identifier = (subscript_expression "param_4[0xc]" identifier [ number_literal ])) ;) (expression_statement "local_30 = local_6c;" (assignment_expression "local_30 = local_6c" identifier = identifier) ;) (expression_statement "local_28 = param_4[0xd];" (assignment_expression "local_28 = param_4[0xd]" identifier = (subscript_expression "param_4[0xd]" identifier [ number_literal ])) ;) (expression_statement "ppuStack_90 = param_3;" (assignment_expression "ppuStack_90 = param_3" identifier = identifier) ;) (expression_statement "ppuStack_94 = param_3;" (assignment_expression "ppuStack_94 = param_3" identifier = identifier) ;) (expression_statement "local_64 = &local_4c;" (assignment_expression "local_64 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) (expression_statement "local_4c = pcVar10;" (assignment_expression "local_4c = pcVar10" identifier = identifier) ;) (expression_statement "local_48 = FUN_001cace0(param_3 + 0x47,local_64);" (assignment_expression "local_48 = FUN_001cace0(param_3 + 0x47,local_64)" identifier = (call_expression "FUN_001cace0(param_3 + 0x47,local_64)" identifier (argument_list "(param_3 + 0x47,local_64)" ( (binary_expression "param_3 + 0x47" identifier + number_literal) , identifier )))) ;) (expression_statement "local_6c = local_54;" (assignment_expression "local_6c = local_54" identifier = identifier) ;) (expression_statement "local_78 = &local_48;" (assignment_expression "local_78 = &local_48" identifier = (pointer_expression "&local_48" & identifier)) ;) (expression_statement "FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1);" (call_expression "FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1)" identifier (argument_list "(local_6c,local_48,local_70,local_78,0,1)" ( identifier , identifier , identifier , identifier , number_literal , number_literal ))) ;) (expression_statement "local_4c = (char *)*param_4;" (assignment_expression "local_4c = (char *)*param_4" identifier = (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (expression_statement "local_48 = FUN_001cace0(param_3 + 0x47,local_64);" (assignment_expression "local_48 = FUN_001cace0(param_3 + 0x47,local_64)" identifier = (call_expression "FUN_001cace0(param_3 + 0x47,local_64)" identifier (argument_list "(param_3 + 0x47,local_64)" ( (binary_expression "param_3 + 0x47" identifier + number_literal) , identifier )))) ;) (expression_statement "FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1);" (call_expression "FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1)" identifier (argument_list "(local_6c,local_48,local_74,local_78,0,1)" ( identifier , identifier , identifier , identifier , number_literal , number_literal ))) ;) (expression_statement "pppuVar15 = &ppuStack_94;" (assignment_expression "pppuVar15 = &ppuStack_94" identifier = (pointer_expression "&ppuStack_94" & identifier)) ;) })) })) })) })) }))) (labeled_statement "LAB_001cc978:\n  iVar11 = *param_9;" statement_identifier : (expression_statement "iVar11 = *param_9;" (assignment_expression "iVar11 = *param_9" identifier = (pointer_expression "*param_9" * identifier)) ;)) (expression_statement "*(int **)((int)pppuVar15 + -0x10) = param_9;" (assignment_expression "*(int **)((int)pppuVar15 + -0x10) = param_9" (pointer_expression "*(int **)((int)pppuVar15 + -0x10)" * (cast_expression "(int **)((int)pppuVar15 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar15 + -0x10)" ( (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar3 = *(code **)(iVar11 + 0x14);" (assignment_expression "pcVar3 = *(code **)(iVar11 + 0x14)" identifier = (pointer_expression "*(code **)(iVar11 + 0x14)" * (cast_expression "(code **)(iVar11 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x1cc981;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x1cc981" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x14)" ( (binary_expression "(int)pppuVar15 + -0x14" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "iVar11 = (*pcVar3)();" (assignment_expression "iVar11 = (*pcVar3)()" identifier = (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar11 == 0) {\n    bVar8 = *(byte *)(*param_5 + 4);\n  }\n  else {\n    bVar8 = *(byte *)(param_4 + 10);\n  }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n    bVar8 = *(byte *)(*param_5 + 4);\n  }" { (expression_statement "bVar8 = *(byte *)(*param_5 + 4);" (assignment_expression "bVar8 = *(byte *)(*param_5 + 4)" identifier = (pointer_expression "*(byte *)(*param_5 + 4)" * (cast_expression "(byte *)(*param_5 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_5 + 4)" ( (binary_expression "*param_5 + 4" (pointer_expression "*param_5" * identifier) + number_literal) ))))) ;) }) (else_clause "else {\n    bVar8 = *(byte *)(param_4 + 10);\n  }" else (compound_statement "{\n    bVar8 = *(byte *)(param_4 + 10);\n  }" { (expression_statement "bVar8 = *(byte *)(param_4 + 10);" (assignment_expression "bVar8 = *(byte *)(param_4 + 10)" identifier = (pointer_expression "*(byte *)(param_4 + 10)" * (cast_expression "(byte *)(param_4 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 10)" ( (binary_expression "param_4 + 10" identifier + number_literal) ))))) ;) }))) (expression_statement "local_6c = (undefined1 *)(local_58 & 0xff);" (assignment_expression "local_6c = (undefined1 *)(local_58 & 0xff)" identifier = (cast_expression "(undefined1 *)(local_58 & 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_58 & 0xff)" ( (binary_expression "local_58 & 0xff" identifier & number_literal) )))) ;) (expression_statement "*(undefined1 **)((int)pppuVar15 + -0x10) = local_6c;" (assignment_expression "*(undefined1 **)((int)pppuVar15 + -0x10) = local_6c" (pointer_expression "*(undefined1 **)((int)pppuVar15 + -0x10)" * (cast_expression "(undefined1 **)((int)pppuVar15 + -0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar15 + -0x10)" ( (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x1cc9b9;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x1cc9b9" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x14)" ( (binary_expression "(int)pppuVar15 + -0x14" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar12 = FUN_001c9700();" (assignment_expression "uVar12 = FUN_001c9700()" identifier = (call_expression "FUN_001c9700()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_58 = param_4[0xe];" (assignment_expression "local_58 = param_4[0xe]" identifier = (subscript_expression "param_4[0xe]" identifier [ number_literal ])) ;) (expression_statement "local_64 = (char **)param_4[0xf];" (assignment_expression "local_64 = (char **)param_4[0xf]" identifier = (cast_expression "(char **)param_4[0xf]" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "param_4[0xf]" identifier [ number_literal ]))) ;) (expression_statement "*(uint *)((int)pppuVar15 + -4) = local_68 & 0xff;" (assignment_expression "*(uint *)((int)pppuVar15 + -4) = local_68 & 0xff" (pointer_expression "*(uint *)((int)pppuVar15 + -4)" * (cast_expression "(uint *)((int)pppuVar15 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -4)" ( (binary_expression "(int)pppuVar15 + -4" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_68 & 0xff" identifier & number_literal)) ;) (expression_statement "*(undefined4 ***)((int)pppuVar15 + -8) = local_74;" (assignment_expression "*(undefined4 ***)((int)pppuVar15 + -8) = local_74" (pointer_expression "*(undefined4 ***)((int)pppuVar15 + -8)" * (cast_expression "(undefined4 ***)((int)pppuVar15 + -8)" ( (type_descriptor "undefined4 ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)pppuVar15 + -8)" ( (binary_expression "(int)pppuVar15 + -8" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int ***)((int)pppuVar15 + -0xc) = local_70;" (assignment_expression "*(int ***)((int)pppuVar15 + -0xc) = local_70" (pointer_expression "*(int ***)((int)pppuVar15 + -0xc)" * (cast_expression "(int ***)((int)pppuVar15 + -0xc)" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)pppuVar15 + -0xc)" ( (binary_expression "(int)pppuVar15 + -0xc" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)pppuVar15 + -0x10) = param_9;" (assignment_expression "*(int **)((int)pppuVar15 + -0x10) = param_9" (pointer_expression "*(int **)((int)pppuVar15 + -0x10)" * (cast_expression "(int **)((int)pppuVar15 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar15 + -0x10)" ( (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x14) = 0;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x14) = 0" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x14)" ( (binary_expression "(int)pppuVar15 + -0x14" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)((int)pppuVar15 + -0x18) = bVar8 & 0xf;" (assignment_expression "*(uint *)((int)pppuVar15 + -0x18) = bVar8 & 0xf" (pointer_expression "*(uint *)((int)pppuVar15 + -0x18)" * (cast_expression "(uint *)((int)pppuVar15 + -0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x18)" ( (binary_expression "(int)pppuVar15 + -0x18" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "bVar8 & 0xf" identifier & number_literal)) ;) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x1c) = uVar12;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x1c) = uVar12" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x1c)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x1c)" ( (binary_expression "(int)pppuVar15 + -0x1c" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)pppuVar15 + -0x20) = param_4;" (assignment_expression "*(undefined4 **)((int)pppuVar15 + -0x20) = param_4" (pointer_expression "*(undefined4 **)((int)pppuVar15 + -0x20)" * (cast_expression "(undefined4 **)((int)pppuVar15 + -0x20)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar15 + -0x20)" ( (binary_expression "(int)pppuVar15 + -0x20" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x24) = 0x1cc9de;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x24) = 0x1cc9de" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x24)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x24)" ( (binary_expression "(int)pppuVar15 + -0x24" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "cVar7 = FUN_001c9b30();" (assignment_expression "cVar7 = FUN_001c9b30()" identifier = (call_expression "FUN_001c9b30()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cVar7 == '\0') {\n    iVar11 = *param_5;\n    if ((char)local_44 != '\0') {\n      uVar4 = *(uint *)(iVar11 + 0x10);\n      ppcVar5 = *(char ***)(iVar11 + 0x14);\n      if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)) {\n        param_4[0xf] = ppcVar5;\n        param_4[0xe] = uVar4;\n      }\n      local_68 = *(uint *)(iVar11 + 8);\n      uVar4 = *(uint *)(iVar11 + 0xc);\n      if ((uint)param_4[0xd] < uVar4 || param_4[0xd] - uVar4 < (uint)((uint)param_4[0xc] < local_68)\n         ) {\n        param_4[0xd] = uVar4;\n        param_4[0xc] = local_68;\n      }\n    }\n    if ((char)local_34 != '\0') {\n      if (((*(byte *)(param_4 + 0xb) & 1) == 0) || ((*(byte *)(param_4 + 0xb) & 2) != 0)) {\n        *(byte *)(param_4 + 0xb) =\n             *(byte *)(param_4 + 0xb) & 0xfd | ((int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2) * '\x02'\n             | 1;\n      }\n    }\n    bVar8 = *(byte *)(iVar11 + 5) & 3;\n    if ((*(byte *)(iVar11 + 5) & 3) != 0) {\n      bVar1 = *(byte *)((int)param_4 + 0x29);\n      if (((bVar1 & 3) == 0) || (bVar8 < (bVar1 & 3))) {\n        *(byte *)((int)param_4 + 0x29) = bVar8 | bVar1 & 0xfc;\n      }\n    }\n  }\n  else {\n    uVar4 = param_4[0xc];\n    local_70 = (int **)CONCAT31(local_70._1_3_,*(byte *)(param_4 + 10) >> 4);\n    local_68 = param_4[0xd];\n    *(undefined ***)((int)pppuVar15 + -8) = param_10;\n    *(int **)((int)pppuVar15 + -0xc) = param_9;\n    *(undefined1 **)((int)pppuVar15 + -0x10) = local_6c;\n    *(undefined1 **)((int)pppuVar15 + -0x14) = param_6;\n    *(int **)((int)pppuVar15 + -0x18) = param_5;\n    *(undefined4 **)((int)pppuVar15 + -0x1c) = param_4;\n    *(undefined ***)((int)pppuVar15 + -0x20) = param_3;\n    *(undefined4 *)((int)pppuVar15 + -0x24) = 0x1cce64;\n    FUN_001cb040();\n    if ((char)local_44 != '\0') {\n      if ((char **)param_4[0xf] < local_64 ||\n          (uint)((int)param_4[0xf] - (int)local_64) < (uint)((uint)param_4[0xe] < local_58)) {\n        param_4[0xf] = local_64;\n        param_4[0xe] = local_58;\n      }\n      if ((uint)param_4[0xd] < local_68 ||\n          param_4[0xd] - local_68 < (uint)((uint)param_4[0xc] < uVar4)) {\n        param_4[0xc] = uVar4;\n        param_4[0xd] = local_68;\n      }\n    }\n    if (((char)local_34 != '\0') &&\n       (((*(byte *)(param_4 + 0xb) & 1) == 0 || ((*(byte *)(param_4 + 0xb) & 2) != 0)))) {\n      *(byte *)(param_4 + 0xb) =\n           *(byte *)(param_4 + 0xb) & 0xfd | ((char)local_70 == '\x02') * '\x02' | 1;\n    }\n  }" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar11 = *param_5;\n    if ((char)local_44 != '\0') {\n      uVar4 = *(uint *)(iVar11 + 0x10);\n      ppcVar5 = *(char ***)(iVar11 + 0x14);\n      if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)) {\n        param_4[0xf] = ppcVar5;\n        param_4[0xe] = uVar4;\n      }\n      local_68 = *(uint *)(iVar11 + 8);\n      uVar4 = *(uint *)(iVar11 + 0xc);\n      if ((uint)param_4[0xd] < uVar4 || param_4[0xd] - uVar4 < (uint)((uint)param_4[0xc] < local_68)\n         ) {\n        param_4[0xd] = uVar4;\n        param_4[0xc] = local_68;\n      }\n    }\n    if ((char)local_34 != '\0') {\n      if (((*(byte *)(param_4 + 0xb) & 1) == 0) || ((*(byte *)(param_4 + 0xb) & 2) != 0)) {\n        *(byte *)(param_4 + 0xb) =\n             *(byte *)(param_4 + 0xb) & 0xfd | ((int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2) * '\x02'\n             | 1;\n      }\n    }\n    bVar8 = *(byte *)(iVar11 + 5) & 3;\n    if ((*(byte *)(iVar11 + 5) & 3) != 0) {\n      bVar1 = *(byte *)((int)param_4 + 0x29);\n      if (((bVar1 & 3) == 0) || (bVar8 < (bVar1 & 3))) {\n        *(byte *)((int)param_4 + 0x29) = bVar8 | bVar1 & 0xfc;\n      }\n    }\n  }" { (expression_statement "iVar11 = *param_5;" (assignment_expression "iVar11 = *param_5" identifier = (pointer_expression "*param_5" * identifier)) ;) (if_statement "if ((char)local_44 != '\0') {\n      uVar4 = *(uint *)(iVar11 + 0x10);\n      ppcVar5 = *(char ***)(iVar11 + 0x14);\n      if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)) {\n        param_4[0xf] = ppcVar5;\n        param_4[0xe] = uVar4;\n      }\n      local_68 = *(uint *)(iVar11 + 8);\n      uVar4 = *(uint *)(iVar11 + 0xc);\n      if ((uint)param_4[0xd] < uVar4 || param_4[0xd] - uVar4 < (uint)((uint)param_4[0xc] < local_68)\n         ) {\n        param_4[0xd] = uVar4;\n        param_4[0xc] = local_68;\n      }\n    }" if (parenthesized_expression "((char)local_44 != '\0')" ( (binary_expression "(char)local_44 != '\0'" (cast_expression "(char)local_44" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar4 = *(uint *)(iVar11 + 0x10);\n      ppcVar5 = *(char ***)(iVar11 + 0x14);\n      if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)) {\n        param_4[0xf] = ppcVar5;\n        param_4[0xe] = uVar4;\n      }\n      local_68 = *(uint *)(iVar11 + 8);\n      uVar4 = *(uint *)(iVar11 + 0xc);\n      if ((uint)param_4[0xd] < uVar4 || param_4[0xd] - uVar4 < (uint)((uint)param_4[0xc] < local_68)\n         ) {\n        param_4[0xd] = uVar4;\n        param_4[0xc] = local_68;\n      }\n    }" { (expression_statement "uVar4 = *(uint *)(iVar11 + 0x10);" (assignment_expression "uVar4 = *(uint *)(iVar11 + 0x10)" identifier = (pointer_expression "*(uint *)(iVar11 + 0x10)" * (cast_expression "(uint *)(iVar11 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "ppcVar5 = *(char ***)(iVar11 + 0x14);" (assignment_expression "ppcVar5 = *(char ***)(iVar11 + 0x14)" identifier = (pointer_expression "*(char ***)(iVar11 + 0x14)" * (cast_expression "(char ***)(iVar11 + 0x14)" ( (type_descriptor "char ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)) {\n        param_4[0xf] = ppcVar5;\n        param_4[0xe] = uVar4;\n      }" if (parenthesized_expression "(local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4))" ( (binary_expression "local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)" (binary_expression "local_64 < ppcVar5" identifier < identifier) || (binary_expression "(uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)" (call_expression "(uint)((int)local_64 - (int)ppcVar5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)local_64 - (int)ppcVar5)" ( (binary_expression "(int)local_64 - (int)ppcVar5" (cast_expression "(int)local_64" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)ppcVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < (call_expression "(uint)(local_58 < uVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_58 < uVar4)" ( (binary_expression "local_58 < uVar4" identifier < identifier) ))))) )) (compound_statement "{\n        param_4[0xf] = ppcVar5;\n        param_4[0xe] = uVar4;\n      }" { (expression_statement "param_4[0xf] = ppcVar5;" (assignment_expression "param_4[0xf] = ppcVar5" (subscript_expression "param_4[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_4[0xe] = uVar4;" (assignment_expression "param_4[0xe] = uVar4" (subscript_expression "param_4[0xe]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "local_68 = *(uint *)(iVar11 + 8);" (assignment_expression "local_68 = *(uint *)(iVar11 + 8)" identifier = (pointer_expression "*(uint *)(iVar11 + 8)" * (cast_expression "(uint *)(iVar11 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 8)" ( (binary_expression "iVar11 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(uint *)(iVar11 + 0xc);" (assignment_expression "uVar4 = *(uint *)(iVar11 + 0xc)" identifier = (pointer_expression "*(uint *)(iVar11 + 0xc)" * (cast_expression "(uint *)(iVar11 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if ((uint)param_4[0xd] < uVar4 || param_4[0xd] - uVar4 < (uint)((uint)param_4[0xc] < local_68)\n         ) {\n        param_4[0xd] = uVar4;\n        param_4[0xc] = local_68;\n      }" if (parenthesized_expression "((uint)param_4[0xd] < uVar4 || param_4[0xd] - uVar4 < (uint)((uint)param_4[0xc] < local_68)\n         )" ( (binary_expression "(uint)param_4[0xd] < uVar4 || param_4[0xd] - uVar4 < (uint)((uint)param_4[0xc] < local_68)" (binary_expression "(uint)param_4[0xd] < uVar4" (cast_expression "(uint)param_4[0xd]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_4[0xd]" identifier [ number_literal ])) < identifier) || (binary_expression "param_4[0xd] - uVar4 < (uint)((uint)param_4[0xc] < local_68)" (binary_expression "param_4[0xd] - uVar4" (subscript_expression "param_4[0xd]" identifier [ number_literal ]) - identifier) < (call_expression "(uint)((uint)param_4[0xc] < local_68)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)param_4[0xc] < local_68)" ( (binary_expression "(uint)param_4[0xc] < local_68" (cast_expression "(uint)param_4[0xc]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_4[0xc]" identifier [ number_literal ])) < identifier) ))))) )) (compound_statement "{\n        param_4[0xd] = uVar4;\n        param_4[0xc] = local_68;\n      }" { (expression_statement "param_4[0xd] = uVar4;" (assignment_expression "param_4[0xd] = uVar4" (subscript_expression "param_4[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_4[0xc] = local_68;" (assignment_expression "param_4[0xc] = local_68" (subscript_expression "param_4[0xc]" identifier [ number_literal ]) = identifier) ;) })) })) (if_statement "if ((char)local_34 != '\0') {\n      if (((*(byte *)(param_4 + 0xb) & 1) == 0) || ((*(byte *)(param_4 + 0xb) & 2) != 0)) {\n        *(byte *)(param_4 + 0xb) =\n             *(byte *)(param_4 + 0xb) & 0xfd | ((int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2) * '\x02'\n             | 1;\n      }\n    }" if (parenthesized_expression "((char)local_34 != '\0')" ( (binary_expression "(char)local_34 != '\0'" (cast_expression "(char)local_34" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if (((*(byte *)(param_4 + 0xb) & 1) == 0) || ((*(byte *)(param_4 + 0xb) & 2) != 0)) {\n        *(byte *)(param_4 + 0xb) =\n             *(byte *)(param_4 + 0xb) & 0xfd | ((int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2) * '\x02'\n             | 1;\n      }\n    }" { (if_statement "if (((*(byte *)(param_4 + 0xb) & 1) == 0) || ((*(byte *)(param_4 + 0xb) & 2) != 0)) {\n        *(byte *)(param_4 + 0xb) =\n             *(byte *)(param_4 + 0xb) & 0xfd | ((int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2) * '\x02'\n             | 1;\n      }" if (parenthesized_expression "(((*(byte *)(param_4 + 0xb) & 1) == 0) || ((*(byte *)(param_4 + 0xb) & 2) != 0))" ( (binary_expression "((*(byte *)(param_4 + 0xb) & 1) == 0) || ((*(byte *)(param_4 + 0xb) & 2) != 0)" (parenthesized_expression "((*(byte *)(param_4 + 0xb) & 1) == 0)" ( (binary_expression "(*(byte *)(param_4 + 0xb) & 1) == 0" (parenthesized_expression "(*(byte *)(param_4 + 0xb) & 1)" ( (binary_expression "*(byte *)(param_4 + 0xb) & 1" (pointer_expression "*(byte *)(param_4 + 0xb)" * (cast_expression "(byte *)(param_4 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xb)" ( (binary_expression "param_4 + 0xb" identifier + number_literal) )))) & number_literal) )) == number_literal) )) || (parenthesized_expression "((*(byte *)(param_4 + 0xb) & 2) != 0)" ( (binary_expression "(*(byte *)(param_4 + 0xb) & 2) != 0" (parenthesized_expression "(*(byte *)(param_4 + 0xb) & 2)" ( (binary_expression "*(byte *)(param_4 + 0xb) & 2" (pointer_expression "*(byte *)(param_4 + 0xb)" * (cast_expression "(byte *)(param_4 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xb)" ( (binary_expression "param_4 + 0xb" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        *(byte *)(param_4 + 0xb) =\n             *(byte *)(param_4 + 0xb) & 0xfd | ((int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2) * '\x02'\n             | 1;\n      }" { (expression_statement "*(byte *)(param_4 + 0xb) =\n             *(byte *)(param_4 + 0xb) & 0xfd | ((int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2) * '\x02'\n             | 1;" (assignment_expression "*(byte *)(param_4 + 0xb) =\n             *(byte *)(param_4 + 0xb) & 0xfd | ((int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2) * '\x02'\n             | 1" (pointer_expression "*(byte *)(param_4 + 0xb)" * (cast_expression "(byte *)(param_4 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xb)" ( (binary_expression "param_4 + 0xb" identifier + number_literal) )))) = (binary_expression "*(byte *)(param_4 + 0xb) & 0xfd | ((int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2) * '\x02'\n             | 1" (binary_expression "*(byte *)(param_4 + 0xb) & 0xfd | ((int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2) * '\x02'" (binary_expression "*(byte *)(param_4 + 0xb) & 0xfd" (pointer_expression "*(byte *)(param_4 + 0xb)" * (cast_expression "(byte *)(param_4 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xb)" ( (binary_expression "param_4 + 0xb" identifier + number_literal) )))) & number_literal) | (binary_expression "((int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2) * '\x02'" (parenthesized_expression "((int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2)" ( (binary_expression "(int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2" (binary_expression "(int)(uint)*(byte *)(iVar11 + 4) >> 4" (binary_expression "(int)(uint)*(byte *)(iVar11 + 4)" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)(iVar11 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) )))) >> number_literal) == number_literal) )) * (char_literal "'\x02'" ' escape_sequence '))) | number_literal)) ;) })) })) (expression_statement "bVar8 = *(byte *)(iVar11 + 5) & 3;" (assignment_expression "bVar8 = *(byte *)(iVar11 + 5) & 3" identifier = (binary_expression "*(byte *)(iVar11 + 5) & 3" (pointer_expression "*(byte *)(iVar11 + 5)" * (cast_expression "(byte *)(iVar11 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 5)" ( (binary_expression "iVar11 + 5" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if ((*(byte *)(iVar11 + 5) & 3) != 0) {\n      bVar1 = *(byte *)((int)param_4 + 0x29);\n      if (((bVar1 & 3) == 0) || (bVar8 < (bVar1 & 3))) {\n        *(byte *)((int)param_4 + 0x29) = bVar8 | bVar1 & 0xfc;\n      }\n    }" if (parenthesized_expression "((*(byte *)(iVar11 + 5) & 3) != 0)" ( (binary_expression "(*(byte *)(iVar11 + 5) & 3) != 0" (parenthesized_expression "(*(byte *)(iVar11 + 5) & 3)" ( (binary_expression "*(byte *)(iVar11 + 5) & 3" (pointer_expression "*(byte *)(iVar11 + 5)" * (cast_expression "(byte *)(iVar11 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 5)" ( (binary_expression "iVar11 + 5" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      bVar1 = *(byte *)((int)param_4 + 0x29);\n      if (((bVar1 & 3) == 0) || (bVar8 < (bVar1 & 3))) {\n        *(byte *)((int)param_4 + 0x29) = bVar8 | bVar1 & 0xfc;\n      }\n    }" { (expression_statement "bVar1 = *(byte *)((int)param_4 + 0x29);" (assignment_expression "bVar1 = *(byte *)((int)param_4 + 0x29)" identifier = (pointer_expression "*(byte *)((int)param_4 + 0x29)" * (cast_expression "(byte *)((int)param_4 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 + 0x29)" ( (binary_expression "(int)param_4 + 0x29" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (((bVar1 & 3) == 0) || (bVar8 < (bVar1 & 3))) {\n        *(byte *)((int)param_4 + 0x29) = bVar8 | bVar1 & 0xfc;\n      }" if (parenthesized_expression "(((bVar1 & 3) == 0) || (bVar8 < (bVar1 & 3)))" ( (binary_expression "((bVar1 & 3) == 0) || (bVar8 < (bVar1 & 3))" (parenthesized_expression "((bVar1 & 3) == 0)" ( (binary_expression "(bVar1 & 3) == 0" (parenthesized_expression "(bVar1 & 3)" ( (binary_expression "bVar1 & 3" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(bVar8 < (bVar1 & 3))" ( (binary_expression "bVar8 < (bVar1 & 3)" identifier < (parenthesized_expression "(bVar1 & 3)" ( (binary_expression "bVar1 & 3" identifier & number_literal) ))) ))) )) (compound_statement "{\n        *(byte *)((int)param_4 + 0x29) = bVar8 | bVar1 & 0xfc;\n      }" { (expression_statement "*(byte *)((int)param_4 + 0x29) = bVar8 | bVar1 & 0xfc;" (assignment_expression "*(byte *)((int)param_4 + 0x29) = bVar8 | bVar1 & 0xfc" (pointer_expression "*(byte *)((int)param_4 + 0x29)" * (cast_expression "(byte *)((int)param_4 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 + 0x29)" ( (binary_expression "(int)param_4 + 0x29" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "bVar8 | bVar1 & 0xfc" identifier | (binary_expression "bVar1 & 0xfc" identifier & number_literal))) ;) })) })) }) (else_clause "else {\n    uVar4 = param_4[0xc];\n    local_70 = (int **)CONCAT31(local_70._1_3_,*(byte *)(param_4 + 10) >> 4);\n    local_68 = param_4[0xd];\n    *(undefined ***)((int)pppuVar15 + -8) = param_10;\n    *(int **)((int)pppuVar15 + -0xc) = param_9;\n    *(undefined1 **)((int)pppuVar15 + -0x10) = local_6c;\n    *(undefined1 **)((int)pppuVar15 + -0x14) = param_6;\n    *(int **)((int)pppuVar15 + -0x18) = param_5;\n    *(undefined4 **)((int)pppuVar15 + -0x1c) = param_4;\n    *(undefined ***)((int)pppuVar15 + -0x20) = param_3;\n    *(undefined4 *)((int)pppuVar15 + -0x24) = 0x1cce64;\n    FUN_001cb040();\n    if ((char)local_44 != '\0') {\n      if ((char **)param_4[0xf] < local_64 ||\n          (uint)((int)param_4[0xf] - (int)local_64) < (uint)((uint)param_4[0xe] < local_58)) {\n        param_4[0xf] = local_64;\n        param_4[0xe] = local_58;\n      }\n      if ((uint)param_4[0xd] < local_68 ||\n          param_4[0xd] - local_68 < (uint)((uint)param_4[0xc] < uVar4)) {\n        param_4[0xc] = uVar4;\n        param_4[0xd] = local_68;\n      }\n    }\n    if (((char)local_34 != '\0') &&\n       (((*(byte *)(param_4 + 0xb) & 1) == 0 || ((*(byte *)(param_4 + 0xb) & 2) != 0)))) {\n      *(byte *)(param_4 + 0xb) =\n           *(byte *)(param_4 + 0xb) & 0xfd | ((char)local_70 == '\x02') * '\x02' | 1;\n    }\n  }" else (compound_statement "{\n    uVar4 = param_4[0xc];\n    local_70 = (int **)CONCAT31(local_70._1_3_,*(byte *)(param_4 + 10) >> 4);\n    local_68 = param_4[0xd];\n    *(undefined ***)((int)pppuVar15 + -8) = param_10;\n    *(int **)((int)pppuVar15 + -0xc) = param_9;\n    *(undefined1 **)((int)pppuVar15 + -0x10) = local_6c;\n    *(undefined1 **)((int)pppuVar15 + -0x14) = param_6;\n    *(int **)((int)pppuVar15 + -0x18) = param_5;\n    *(undefined4 **)((int)pppuVar15 + -0x1c) = param_4;\n    *(undefined ***)((int)pppuVar15 + -0x20) = param_3;\n    *(undefined4 *)((int)pppuVar15 + -0x24) = 0x1cce64;\n    FUN_001cb040();\n    if ((char)local_44 != '\0') {\n      if ((char **)param_4[0xf] < local_64 ||\n          (uint)((int)param_4[0xf] - (int)local_64) < (uint)((uint)param_4[0xe] < local_58)) {\n        param_4[0xf] = local_64;\n        param_4[0xe] = local_58;\n      }\n      if ((uint)param_4[0xd] < local_68 ||\n          param_4[0xd] - local_68 < (uint)((uint)param_4[0xc] < uVar4)) {\n        param_4[0xc] = uVar4;\n        param_4[0xd] = local_68;\n      }\n    }\n    if (((char)local_34 != '\0') &&\n       (((*(byte *)(param_4 + 0xb) & 1) == 0 || ((*(byte *)(param_4 + 0xb) & 2) != 0)))) {\n      *(byte *)(param_4 + 0xb) =\n           *(byte *)(param_4 + 0xb) & 0xfd | ((char)local_70 == '\x02') * '\x02' | 1;\n    }\n  }" { (expression_statement "uVar4 = param_4[0xc];" (assignment_expression "uVar4 = param_4[0xc]" identifier = (subscript_expression "param_4[0xc]" identifier [ number_literal ])) ;) (expression_statement "local_70 = (int **)CONCAT31(local_70._1_3_,*(byte *)(param_4 + 10) >> 4);" (assignment_expression "local_70 = (int **)CONCAT31(local_70._1_3_,*(byte *)(param_4 + 10) >> 4)" identifier = (cast_expression "(int **)CONCAT31(local_70._1_3_,*(byte *)(param_4 + 10) >> 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "CONCAT31(local_70._1_3_,*(byte *)(param_4 + 10) >> 4)" identifier (argument_list "(local_70._1_3_,*(byte *)(param_4 + 10) >> 4)" ( (field_expression "local_70._1_3_" identifier . field_identifier) , (binary_expression "*(byte *)(param_4 + 10) >> 4" (pointer_expression "*(byte *)(param_4 + 10)" * (cast_expression "(byte *)(param_4 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 10)" ( (binary_expression "param_4 + 10" identifier + number_literal) )))) >> number_literal) ))))) ;) (expression_statement "local_68 = param_4[0xd];" (assignment_expression "local_68 = param_4[0xd]" identifier = (subscript_expression "param_4[0xd]" identifier [ number_literal ])) ;) (expression_statement "*(undefined ***)((int)pppuVar15 + -8) = param_10;" (assignment_expression "*(undefined ***)((int)pppuVar15 + -8) = param_10" (pointer_expression "*(undefined ***)((int)pppuVar15 + -8)" * (cast_expression "(undefined ***)((int)pppuVar15 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)pppuVar15 + -8)" ( (binary_expression "(int)pppuVar15 + -8" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)pppuVar15 + -0xc) = param_9;" (assignment_expression "*(int **)((int)pppuVar15 + -0xc) = param_9" (pointer_expression "*(int **)((int)pppuVar15 + -0xc)" * (cast_expression "(int **)((int)pppuVar15 + -0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar15 + -0xc)" ( (binary_expression "(int)pppuVar15 + -0xc" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)((int)pppuVar15 + -0x10) = local_6c;" (assignment_expression "*(undefined1 **)((int)pppuVar15 + -0x10) = local_6c" (pointer_expression "*(undefined1 **)((int)pppuVar15 + -0x10)" * (cast_expression "(undefined1 **)((int)pppuVar15 + -0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar15 + -0x10)" ( (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)((int)pppuVar15 + -0x14) = param_6;" (assignment_expression "*(undefined1 **)((int)pppuVar15 + -0x14) = param_6" (pointer_expression "*(undefined1 **)((int)pppuVar15 + -0x14)" * (cast_expression "(undefined1 **)((int)pppuVar15 + -0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar15 + -0x14)" ( (binary_expression "(int)pppuVar15 + -0x14" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)pppuVar15 + -0x18) = param_5;" (assignment_expression "*(int **)((int)pppuVar15 + -0x18) = param_5" (pointer_expression "*(int **)((int)pppuVar15 + -0x18)" * (cast_expression "(int **)((int)pppuVar15 + -0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar15 + -0x18)" ( (binary_expression "(int)pppuVar15 + -0x18" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)pppuVar15 + -0x1c) = param_4;" (assignment_expression "*(undefined4 **)((int)pppuVar15 + -0x1c) = param_4" (pointer_expression "*(undefined4 **)((int)pppuVar15 + -0x1c)" * (cast_expression "(undefined4 **)((int)pppuVar15 + -0x1c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar15 + -0x1c)" ( (binary_expression "(int)pppuVar15 + -0x1c" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)((int)pppuVar15 + -0x20) = param_3;" (assignment_expression "*(undefined ***)((int)pppuVar15 + -0x20) = param_3" (pointer_expression "*(undefined ***)((int)pppuVar15 + -0x20)" * (cast_expression "(undefined ***)((int)pppuVar15 + -0x20)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)pppuVar15 + -0x20)" ( (binary_expression "(int)pppuVar15 + -0x20" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x24) = 0x1cce64;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x24) = 0x1cce64" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x24)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x24)" ( (binary_expression "(int)pppuVar15 + -0x24" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001cb040();" (call_expression "FUN_001cb040()" identifier (argument_list "()" ( ))) ;) (if_statement "if ((char)local_44 != '\0') {\n      if ((char **)param_4[0xf] < local_64 ||\n          (uint)((int)param_4[0xf] - (int)local_64) < (uint)((uint)param_4[0xe] < local_58)) {\n        param_4[0xf] = local_64;\n        param_4[0xe] = local_58;\n      }\n      if ((uint)param_4[0xd] < local_68 ||\n          param_4[0xd] - local_68 < (uint)((uint)param_4[0xc] < uVar4)) {\n        param_4[0xc] = uVar4;\n        param_4[0xd] = local_68;\n      }\n    }" if (parenthesized_expression "((char)local_44 != '\0')" ( (binary_expression "(char)local_44 != '\0'" (cast_expression "(char)local_44" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if ((char **)param_4[0xf] < local_64 ||\n          (uint)((int)param_4[0xf] - (int)local_64) < (uint)((uint)param_4[0xe] < local_58)) {\n        param_4[0xf] = local_64;\n        param_4[0xe] = local_58;\n      }\n      if ((uint)param_4[0xd] < local_68 ||\n          param_4[0xd] - local_68 < (uint)((uint)param_4[0xc] < uVar4)) {\n        param_4[0xc] = uVar4;\n        param_4[0xd] = local_68;\n      }\n    }" { (if_statement "if ((char **)param_4[0xf] < local_64 ||\n          (uint)((int)param_4[0xf] - (int)local_64) < (uint)((uint)param_4[0xe] < local_58)) {\n        param_4[0xf] = local_64;\n        param_4[0xe] = local_58;\n      }" if (parenthesized_expression "((char **)param_4[0xf] < local_64 ||\n          (uint)((int)param_4[0xf] - (int)local_64) < (uint)((uint)param_4[0xe] < local_58))" ( (binary_expression "(char **)param_4[0xf] < local_64 ||\n          (uint)((int)param_4[0xf] - (int)local_64) < (uint)((uint)param_4[0xe] < local_58)" (binary_expression "(char **)param_4[0xf] < local_64" (cast_expression "(char **)param_4[0xf]" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "param_4[0xf]" identifier [ number_literal ])) < identifier) || (binary_expression "(uint)((int)param_4[0xf] - (int)local_64) < (uint)((uint)param_4[0xe] < local_58)" (call_expression "(uint)((int)param_4[0xf] - (int)local_64)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)param_4[0xf] - (int)local_64)" ( (binary_expression "(int)param_4[0xf] - (int)local_64" (cast_expression "(int)param_4[0xf]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_4[0xf]" identifier [ number_literal ])) - (cast_expression "(int)local_64" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < (call_expression "(uint)((uint)param_4[0xe] < local_58)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)param_4[0xe] < local_58)" ( (binary_expression "(uint)param_4[0xe] < local_58" (cast_expression "(uint)param_4[0xe]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_4[0xe]" identifier [ number_literal ])) < identifier) ))))) )) (compound_statement "{\n        param_4[0xf] = local_64;\n        param_4[0xe] = local_58;\n      }" { (expression_statement "param_4[0xf] = local_64;" (assignment_expression "param_4[0xf] = local_64" (subscript_expression "param_4[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_4[0xe] = local_58;" (assignment_expression "param_4[0xe] = local_58" (subscript_expression "param_4[0xe]" identifier [ number_literal ]) = identifier) ;) })) (if_statement "if ((uint)param_4[0xd] < local_68 ||\n          param_4[0xd] - local_68 < (uint)((uint)param_4[0xc] < uVar4)) {\n        param_4[0xc] = uVar4;\n        param_4[0xd] = local_68;\n      }" if (parenthesized_expression "((uint)param_4[0xd] < local_68 ||\n          param_4[0xd] - local_68 < (uint)((uint)param_4[0xc] < uVar4))" ( (binary_expression "(uint)param_4[0xd] < local_68 ||\n          param_4[0xd] - local_68 < (uint)((uint)param_4[0xc] < uVar4)" (binary_expression "(uint)param_4[0xd] < local_68" (cast_expression "(uint)param_4[0xd]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_4[0xd]" identifier [ number_literal ])) < identifier) || (binary_expression "param_4[0xd] - local_68 < (uint)((uint)param_4[0xc] < uVar4)" (binary_expression "param_4[0xd] - local_68" (subscript_expression "param_4[0xd]" identifier [ number_literal ]) - identifier) < (call_expression "(uint)((uint)param_4[0xc] < uVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)param_4[0xc] < uVar4)" ( (binary_expression "(uint)param_4[0xc] < uVar4" (cast_expression "(uint)param_4[0xc]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_4[0xc]" identifier [ number_literal ])) < identifier) ))))) )) (compound_statement "{\n        param_4[0xc] = uVar4;\n        param_4[0xd] = local_68;\n      }" { (expression_statement "param_4[0xc] = uVar4;" (assignment_expression "param_4[0xc] = uVar4" (subscript_expression "param_4[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_4[0xd] = local_68;" (assignment_expression "param_4[0xd] = local_68" (subscript_expression "param_4[0xd]" identifier [ number_literal ]) = identifier) ;) })) })) (if_statement "if (((char)local_34 != '\0') &&\n       (((*(byte *)(param_4 + 0xb) & 1) == 0 || ((*(byte *)(param_4 + 0xb) & 2) != 0)))) {\n      *(byte *)(param_4 + 0xb) =\n           *(byte *)(param_4 + 0xb) & 0xfd | ((char)local_70 == '\x02') * '\x02' | 1;\n    }" if (parenthesized_expression "(((char)local_34 != '\0') &&\n       (((*(byte *)(param_4 + 0xb) & 1) == 0 || ((*(byte *)(param_4 + 0xb) & 2) != 0))))" ( (binary_expression "((char)local_34 != '\0') &&\n       (((*(byte *)(param_4 + 0xb) & 1) == 0 || ((*(byte *)(param_4 + 0xb) & 2) != 0)))" (parenthesized_expression "((char)local_34 != '\0')" ( (binary_expression "(char)local_34 != '\0'" (cast_expression "(char)local_34" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(((*(byte *)(param_4 + 0xb) & 1) == 0 || ((*(byte *)(param_4 + 0xb) & 2) != 0)))" ( (parenthesized_expression "((*(byte *)(param_4 + 0xb) & 1) == 0 || ((*(byte *)(param_4 + 0xb) & 2) != 0))" ( (binary_expression "(*(byte *)(param_4 + 0xb) & 1) == 0 || ((*(byte *)(param_4 + 0xb) & 2) != 0)" (binary_expression "(*(byte *)(param_4 + 0xb) & 1) == 0" (parenthesized_expression "(*(byte *)(param_4 + 0xb) & 1)" ( (binary_expression "*(byte *)(param_4 + 0xb) & 1" (pointer_expression "*(byte *)(param_4 + 0xb)" * (cast_expression "(byte *)(param_4 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xb)" ( (binary_expression "param_4 + 0xb" identifier + number_literal) )))) & number_literal) )) == number_literal) || (parenthesized_expression "((*(byte *)(param_4 + 0xb) & 2) != 0)" ( (binary_expression "(*(byte *)(param_4 + 0xb) & 2) != 0" (parenthesized_expression "(*(byte *)(param_4 + 0xb) & 2)" ( (binary_expression "*(byte *)(param_4 + 0xb) & 2" (pointer_expression "*(byte *)(param_4 + 0xb)" * (cast_expression "(byte *)(param_4 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xb)" ( (binary_expression "param_4 + 0xb" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) (compound_statement "{\n      *(byte *)(param_4 + 0xb) =\n           *(byte *)(param_4 + 0xb) & 0xfd | ((char)local_70 == '\x02') * '\x02' | 1;\n    }" { (expression_statement "*(byte *)(param_4 + 0xb) =\n           *(byte *)(param_4 + 0xb) & 0xfd | ((char)local_70 == '\x02') * '\x02' | 1;" (assignment_expression "*(byte *)(param_4 + 0xb) =\n           *(byte *)(param_4 + 0xb) & 0xfd | ((char)local_70 == '\x02') * '\x02' | 1" (pointer_expression "*(byte *)(param_4 + 0xb)" * (cast_expression "(byte *)(param_4 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xb)" ( (binary_expression "param_4 + 0xb" identifier + number_literal) )))) = (binary_expression "*(byte *)(param_4 + 0xb) & 0xfd | ((char)local_70 == '\x02') * '\x02' | 1" (binary_expression "*(byte *)(param_4 + 0xb) & 0xfd | ((char)local_70 == '\x02') * '\x02'" (binary_expression "*(byte *)(param_4 + 0xb) & 0xfd" (pointer_expression "*(byte *)(param_4 + 0xb)" * (cast_expression "(byte *)(param_4 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xb)" ( (binary_expression "param_4 + 0xb" identifier + number_literal) )))) & number_literal) | (binary_expression "((char)local_70 == '\x02') * '\x02'" (parenthesized_expression "((char)local_70 == '\x02')" ( (binary_expression "(char)local_70 == '\x02'" (cast_expression "(char)local_70" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\x02'" ' escape_sequence ')) )) * (char_literal "'\x02'" ' escape_sequence '))) | number_literal)) ;) })) }))) (expression_statement "bVar8 = *(byte *)((int)param_4 + 0x2a);" (assignment_expression "bVar8 = *(byte *)((int)param_4 + 0x2a)" identifier = (pointer_expression "*(byte *)((int)param_4 + 0x2a)" * (cast_expression "(byte *)((int)param_4 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 + 0x2a)" ( (binary_expression "(int)param_4 + 0x2a" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar9 = (undefined4 *)(uint)bVar8;" (assignment_expression "puVar9 = (undefined4 *)(uint)bVar8" identifier = (cast_expression "(undefined4 *)(uint)bVar8" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)bVar8" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if ((bVar8 & 7) == 0) {\n    bVar1 = *(byte *)(param_4[2] + 0x2c);\n    if ((((bVar1 & 1) != 0) && ((char)bVar8 < '\0')) && ((*(byte *)(param_4 + 0xb) & 2) == 0)) {\n      *(byte *)(param_4[2] + 0x2c) = bVar1 | 2;\n    }\n  }" if (parenthesized_expression "((bVar8 & 7) == 0)" ( (binary_expression "(bVar8 & 7) == 0" (parenthesized_expression "(bVar8 & 7)" ( (binary_expression "bVar8 & 7" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    bVar1 = *(byte *)(param_4[2] + 0x2c);\n    if ((((bVar1 & 1) != 0) && ((char)bVar8 < '\0')) && ((*(byte *)(param_4 + 0xb) & 2) == 0)) {\n      *(byte *)(param_4[2] + 0x2c) = bVar1 | 2;\n    }\n  }" { (expression_statement "bVar1 = *(byte *)(param_4[2] + 0x2c);" (assignment_expression "bVar1 = *(byte *)(param_4[2] + 0x2c)" identifier = (pointer_expression "*(byte *)(param_4[2] + 0x2c)" * (cast_expression "(byte *)(param_4[2] + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4[2] + 0x2c)" ( (binary_expression "param_4[2] + 0x2c" (subscript_expression "param_4[2]" identifier [ number_literal ]) + number_literal) ))))) ;) (if_statement "if ((((bVar1 & 1) != 0) && ((char)bVar8 < '\0')) && ((*(byte *)(param_4 + 0xb) & 2) == 0)) {\n      *(byte *)(param_4[2] + 0x2c) = bVar1 | 2;\n    }" if (parenthesized_expression "((((bVar1 & 1) != 0) && ((char)bVar8 < '\0')) && ((*(byte *)(param_4 + 0xb) & 2) == 0))" ( (binary_expression "(((bVar1 & 1) != 0) && ((char)bVar8 < '\0')) && ((*(byte *)(param_4 + 0xb) & 2) == 0)" (parenthesized_expression "(((bVar1 & 1) != 0) && ((char)bVar8 < '\0'))" ( (binary_expression "((bVar1 & 1) != 0) && ((char)bVar8 < '\0')" (parenthesized_expression "((bVar1 & 1) != 0)" ( (binary_expression "(bVar1 & 1) != 0" (parenthesized_expression "(bVar1 & 1)" ( (binary_expression "bVar1 & 1" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "((char)bVar8 < '\0')" ( (binary_expression "(char)bVar8 < '\0'" (cast_expression "(char)bVar8" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "((*(byte *)(param_4 + 0xb) & 2) == 0)" ( (binary_expression "(*(byte *)(param_4 + 0xb) & 2) == 0" (parenthesized_expression "(*(byte *)(param_4 + 0xb) & 2)" ( (binary_expression "*(byte *)(param_4 + 0xb) & 2" (pointer_expression "*(byte *)(param_4 + 0xb)" * (cast_expression "(byte *)(param_4 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xb)" ( (binary_expression "param_4 + 0xb" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n      *(byte *)(param_4[2] + 0x2c) = bVar1 | 2;\n    }" { (expression_statement "*(byte *)(param_4[2] + 0x2c) = bVar1 | 2;" (assignment_expression "*(byte *)(param_4[2] + 0x2c) = bVar1 | 2" (pointer_expression "*(byte *)(param_4[2] + 0x2c)" * (cast_expression "(byte *)(param_4[2] + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4[2] + 0x2c)" ( (binary_expression "param_4[2] + 0x2c" (subscript_expression "param_4[2]" identifier [ number_literal ]) + number_literal) )))) = (binary_expression "bVar1 | 2" identifier | number_literal)) ;) })) })) (if_statement "if ((char)local_44 != '\0') {\n    puVar9 = *(undefined4 **)(*local_60 + 8);\n    if (puVar9 == (undefined4 *)0x0) {\nLAB_001ccb98:\n      *(undefined4 **)((int)pppuVar15 + -4) = puVar9;\n      *(undefined ***)((int)pppuVar15 + -8) = local_5c + -0x3b992;\n      *(undefined4 *)((int)pppuVar15 + -0xc) = 0x5c;\n      *(undefined ***)((int)pppuVar15 + -0x10) = local_5c + -0x41f7c;\n                    /* WARNING: Subroutine does not return */\n      *(undefined **)((int)pppuVar15 + -0x14) = &UNK_001ccbb1;\n      FUN_00069d00();\n    }\n    if (*(char *)((int)puVar9 + 0x43e5) != '\0') {\n      uVar4 = *(uint *)(*param_5 + 0x10);\n      ppcVar5 = *(char ***)(*param_5 + 0x14);\n      if (ppcVar5 < local_64 || (uint)((int)ppcVar5 - (int)local_64) < (uint)(uVar4 < local_58)) {\n        ppuVar13 = local_5c + -0x3b977;\n      }\n      else if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)\n              ) {\n        ppuVar13 = local_5c + -0x3b96c;\n      }\n      else {\n        ppuVar13 = (undefined **)((int)local_5c + -0xee586);\n      }\n      *(undefined ***)((int)pppuVar15 + -0x10) = ppuVar13;\n      *(undefined4 *)((int)pppuVar15 + -0x14) = 0x1ccaee;\n      uVar12 = gettext();\n      *(int **)((int)pppuVar15 + -0x10) = param_9;\n      *(undefined4 *)((int)pppuVar15 + -0x14) = 0;\n      *(undefined4 **)((int)pppuVar15 + -0x18) = param_4;\n      *(undefined4 *)((int)pppuVar15 + -0x1c) = uVar12;\n      *(undefined4 *)((int)pppuVar15 + -0x20) = 0;\n      *(undefined4 *)((int)pppuVar15 + -0x24) = 0x1ccafc;\n      puVar9 = (undefined4 *)FUN_001c9960();\n    }\n  }" if (parenthesized_expression "((char)local_44 != '\0')" ( (binary_expression "(char)local_44 != '\0'" (cast_expression "(char)local_44" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    puVar9 = *(undefined4 **)(*local_60 + 8);\n    if (puVar9 == (undefined4 *)0x0) {\nLAB_001ccb98:\n      *(undefined4 **)((int)pppuVar15 + -4) = puVar9;\n      *(undefined ***)((int)pppuVar15 + -8) = local_5c + -0x3b992;\n      *(undefined4 *)((int)pppuVar15 + -0xc) = 0x5c;\n      *(undefined ***)((int)pppuVar15 + -0x10) = local_5c + -0x41f7c;\n                    /* WARNING: Subroutine does not return */\n      *(undefined **)((int)pppuVar15 + -0x14) = &UNK_001ccbb1;\n      FUN_00069d00();\n    }\n    if (*(char *)((int)puVar9 + 0x43e5) != '\0') {\n      uVar4 = *(uint *)(*param_5 + 0x10);\n      ppcVar5 = *(char ***)(*param_5 + 0x14);\n      if (ppcVar5 < local_64 || (uint)((int)ppcVar5 - (int)local_64) < (uint)(uVar4 < local_58)) {\n        ppuVar13 = local_5c + -0x3b977;\n      }\n      else if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)\n              ) {\n        ppuVar13 = local_5c + -0x3b96c;\n      }\n      else {\n        ppuVar13 = (undefined **)((int)local_5c + -0xee586);\n      }\n      *(undefined ***)((int)pppuVar15 + -0x10) = ppuVar13;\n      *(undefined4 *)((int)pppuVar15 + -0x14) = 0x1ccaee;\n      uVar12 = gettext();\n      *(int **)((int)pppuVar15 + -0x10) = param_9;\n      *(undefined4 *)((int)pppuVar15 + -0x14) = 0;\n      *(undefined4 **)((int)pppuVar15 + -0x18) = param_4;\n      *(undefined4 *)((int)pppuVar15 + -0x1c) = uVar12;\n      *(undefined4 *)((int)pppuVar15 + -0x20) = 0;\n      *(undefined4 *)((int)pppuVar15 + -0x24) = 0x1ccafc;\n      puVar9 = (undefined4 *)FUN_001c9960();\n    }\n  }" { (expression_statement "puVar9 = *(undefined4 **)(*local_60 + 8);" (assignment_expression "puVar9 = *(undefined4 **)(*local_60 + 8)" identifier = (pointer_expression "*(undefined4 **)(*local_60 + 8)" * (cast_expression "(undefined4 **)(*local_60 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_60 + 8)" ( (binary_expression "*local_60 + 8" (pointer_expression "*local_60" * identifier) + number_literal) ))))) ;) (if_statement "if (puVar9 == (undefined4 *)0x0) {\nLAB_001ccb98:\n      *(undefined4 **)((int)pppuVar15 + -4) = puVar9;\n      *(undefined ***)((int)pppuVar15 + -8) = local_5c + -0x3b992;\n      *(undefined4 *)((int)pppuVar15 + -0xc) = 0x5c;\n      *(undefined ***)((int)pppuVar15 + -0x10) = local_5c + -0x41f7c;\n                    /* WARNING: Subroutine does not return */\n      *(undefined **)((int)pppuVar15 + -0x14) = &UNK_001ccbb1;\n      FUN_00069d00();\n    }" if (parenthesized_expression "(puVar9 == (undefined4 *)0x0)" ( (binary_expression "puVar9 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_001ccb98:\n      *(undefined4 **)((int)pppuVar15 + -4) = puVar9;\n      *(undefined ***)((int)pppuVar15 + -8) = local_5c + -0x3b992;\n      *(undefined4 *)((int)pppuVar15 + -0xc) = 0x5c;\n      *(undefined ***)((int)pppuVar15 + -0x10) = local_5c + -0x41f7c;\n                    /* WARNING: Subroutine does not return */\n      *(undefined **)((int)pppuVar15 + -0x14) = &UNK_001ccbb1;\n      FUN_00069d00();\n    }" { (labeled_statement "LAB_001ccb98:\n      *(undefined4 **)((int)pppuVar15 + -4) = puVar9;" statement_identifier : (expression_statement "*(undefined4 **)((int)pppuVar15 + -4) = puVar9;" (assignment_expression "*(undefined4 **)((int)pppuVar15 + -4) = puVar9" (pointer_expression "*(undefined4 **)((int)pppuVar15 + -4)" * (cast_expression "(undefined4 **)((int)pppuVar15 + -4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar15 + -4)" ( (binary_expression "(int)pppuVar15 + -4" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(undefined ***)((int)pppuVar15 + -8) = local_5c + -0x3b992;" (assignment_expression "*(undefined ***)((int)pppuVar15 + -8) = local_5c + -0x3b992" (pointer_expression "*(undefined ***)((int)pppuVar15 + -8)" * (cast_expression "(undefined ***)((int)pppuVar15 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)pppuVar15 + -8)" ( (binary_expression "(int)pppuVar15 + -8" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_5c + -0x3b992" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0xc)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0xc)" ( (binary_expression "(int)pppuVar15 + -0xc" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined ***)((int)pppuVar15 + -0x10) = local_5c + -0x41f7c;" (assignment_expression "*(undefined ***)((int)pppuVar15 + -0x10) = local_5c + -0x41f7c" (pointer_expression "*(undefined ***)((int)pppuVar15 + -0x10)" * (cast_expression "(undefined ***)((int)pppuVar15 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)pppuVar15 + -0x10)" ( (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_5c + -0x41f7c" identifier + number_literal)) ;) comment (expression_statement "*(undefined **)((int)pppuVar15 + -0x14) = &UNK_001ccbb1;" (assignment_expression "*(undefined **)((int)pppuVar15 + -0x14) = &UNK_001ccbb1" (pointer_expression "*(undefined **)((int)pppuVar15 + -0x14)" * (cast_expression "(undefined **)((int)pppuVar15 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar15 + -0x14)" ( (binary_expression "(int)pppuVar15 + -0x14" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&UNK_001ccbb1" & identifier)) ;) (expression_statement "FUN_00069d00();" (call_expression "FUN_00069d00()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (*(char *)((int)puVar9 + 0x43e5) != '\0') {\n      uVar4 = *(uint *)(*param_5 + 0x10);\n      ppcVar5 = *(char ***)(*param_5 + 0x14);\n      if (ppcVar5 < local_64 || (uint)((int)ppcVar5 - (int)local_64) < (uint)(uVar4 < local_58)) {\n        ppuVar13 = local_5c + -0x3b977;\n      }\n      else if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)\n              ) {\n        ppuVar13 = local_5c + -0x3b96c;\n      }\n      else {\n        ppuVar13 = (undefined **)((int)local_5c + -0xee586);\n      }\n      *(undefined ***)((int)pppuVar15 + -0x10) = ppuVar13;\n      *(undefined4 *)((int)pppuVar15 + -0x14) = 0x1ccaee;\n      uVar12 = gettext();\n      *(int **)((int)pppuVar15 + -0x10) = param_9;\n      *(undefined4 *)((int)pppuVar15 + -0x14) = 0;\n      *(undefined4 **)((int)pppuVar15 + -0x18) = param_4;\n      *(undefined4 *)((int)pppuVar15 + -0x1c) = uVar12;\n      *(undefined4 *)((int)pppuVar15 + -0x20) = 0;\n      *(undefined4 *)((int)pppuVar15 + -0x24) = 0x1ccafc;\n      puVar9 = (undefined4 *)FUN_001c9960();\n    }" if (parenthesized_expression "(*(char *)((int)puVar9 + 0x43e5) != '\0')" ( (binary_expression "*(char *)((int)puVar9 + 0x43e5) != '\0'" (pointer_expression "*(char *)((int)puVar9 + 0x43e5)" * (cast_expression "(char *)((int)puVar9 + 0x43e5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + 0x43e5)" ( (binary_expression "(int)puVar9 + 0x43e5" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar4 = *(uint *)(*param_5 + 0x10);\n      ppcVar5 = *(char ***)(*param_5 + 0x14);\n      if (ppcVar5 < local_64 || (uint)((int)ppcVar5 - (int)local_64) < (uint)(uVar4 < local_58)) {\n        ppuVar13 = local_5c + -0x3b977;\n      }\n      else if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)\n              ) {\n        ppuVar13 = local_5c + -0x3b96c;\n      }\n      else {\n        ppuVar13 = (undefined **)((int)local_5c + -0xee586);\n      }\n      *(undefined ***)((int)pppuVar15 + -0x10) = ppuVar13;\n      *(undefined4 *)((int)pppuVar15 + -0x14) = 0x1ccaee;\n      uVar12 = gettext();\n      *(int **)((int)pppuVar15 + -0x10) = param_9;\n      *(undefined4 *)((int)pppuVar15 + -0x14) = 0;\n      *(undefined4 **)((int)pppuVar15 + -0x18) = param_4;\n      *(undefined4 *)((int)pppuVar15 + -0x1c) = uVar12;\n      *(undefined4 *)((int)pppuVar15 + -0x20) = 0;\n      *(undefined4 *)((int)pppuVar15 + -0x24) = 0x1ccafc;\n      puVar9 = (undefined4 *)FUN_001c9960();\n    }" { (expression_statement "uVar4 = *(uint *)(*param_5 + 0x10);" (assignment_expression "uVar4 = *(uint *)(*param_5 + 0x10)" identifier = (pointer_expression "*(uint *)(*param_5 + 0x10)" * (cast_expression "(uint *)(*param_5 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_5 + 0x10)" ( (binary_expression "*param_5 + 0x10" (pointer_expression "*param_5" * identifier) + number_literal) ))))) ;) (expression_statement "ppcVar5 = *(char ***)(*param_5 + 0x14);" (assignment_expression "ppcVar5 = *(char ***)(*param_5 + 0x14)" identifier = (pointer_expression "*(char ***)(*param_5 + 0x14)" * (cast_expression "(char ***)(*param_5 + 0x14)" ( (type_descriptor "char ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(*param_5 + 0x14)" ( (binary_expression "*param_5 + 0x14" (pointer_expression "*param_5" * identifier) + number_literal) ))))) ;) (if_statement "if (ppcVar5 < local_64 || (uint)((int)ppcVar5 - (int)local_64) < (uint)(uVar4 < local_58)) {\n        ppuVar13 = local_5c + -0x3b977;\n      }\n      else if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)\n              ) {\n        ppuVar13 = local_5c + -0x3b96c;\n      }\n      else {\n        ppuVar13 = (undefined **)((int)local_5c + -0xee586);\n      }" if (parenthesized_expression "(ppcVar5 < local_64 || (uint)((int)ppcVar5 - (int)local_64) < (uint)(uVar4 < local_58))" ( (binary_expression "ppcVar5 < local_64 || (uint)((int)ppcVar5 - (int)local_64) < (uint)(uVar4 < local_58)" (binary_expression "ppcVar5 < local_64" identifier < identifier) || (binary_expression "(uint)((int)ppcVar5 - (int)local_64) < (uint)(uVar4 < local_58)" (call_expression "(uint)((int)ppcVar5 - (int)local_64)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)ppcVar5 - (int)local_64)" ( (binary_expression "(int)ppcVar5 - (int)local_64" (cast_expression "(int)ppcVar5" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_64" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < (call_expression "(uint)(uVar4 < local_58)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar4 < local_58)" ( (binary_expression "uVar4 < local_58" identifier < identifier) ))))) )) (compound_statement "{\n        ppuVar13 = local_5c + -0x3b977;\n      }" { (expression_statement "ppuVar13 = local_5c + -0x3b977;" (assignment_expression "ppuVar13 = local_5c + -0x3b977" identifier = (binary_expression "local_5c + -0x3b977" identifier + number_literal)) ;) }) (else_clause "else if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)\n              ) {\n        ppuVar13 = local_5c + -0x3b96c;\n      }\n      else {\n        ppuVar13 = (undefined **)((int)local_5c + -0xee586);\n      }" else (if_statement "if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)\n              ) {\n        ppuVar13 = local_5c + -0x3b96c;\n      }\n      else {\n        ppuVar13 = (undefined **)((int)local_5c + -0xee586);\n      }" if (parenthesized_expression "(local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)\n              )" ( (binary_expression "local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)" (binary_expression "local_64 < ppcVar5" identifier < identifier) || (binary_expression "(uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)" (call_expression "(uint)((int)local_64 - (int)ppcVar5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)local_64 - (int)ppcVar5)" ( (binary_expression "(int)local_64 - (int)ppcVar5" (cast_expression "(int)local_64" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)ppcVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < (call_expression "(uint)(local_58 < uVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_58 < uVar4)" ( (binary_expression "local_58 < uVar4" identifier < identifier) ))))) )) (compound_statement "{\n        ppuVar13 = local_5c + -0x3b96c;\n      }" { (expression_statement "ppuVar13 = local_5c + -0x3b96c;" (assignment_expression "ppuVar13 = local_5c + -0x3b96c" identifier = (binary_expression "local_5c + -0x3b96c" identifier + number_literal)) ;) }) (else_clause "else {\n        ppuVar13 = (undefined **)((int)local_5c + -0xee586);\n      }" else (compound_statement "{\n        ppuVar13 = (undefined **)((int)local_5c + -0xee586);\n      }" { (expression_statement "ppuVar13 = (undefined **)((int)local_5c + -0xee586);" (assignment_expression "ppuVar13 = (undefined **)((int)local_5c + -0xee586)" identifier = (cast_expression "(undefined **)((int)local_5c + -0xee586)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_5c + -0xee586)" ( (binary_expression "(int)local_5c + -0xee586" (cast_expression "(int)local_5c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))))) (expression_statement "*(undefined ***)((int)pppuVar15 + -0x10) = ppuVar13;" (assignment_expression "*(undefined ***)((int)pppuVar15 + -0x10) = ppuVar13" (pointer_expression "*(undefined ***)((int)pppuVar15 + -0x10)" * (cast_expression "(undefined ***)((int)pppuVar15 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)pppuVar15 + -0x10)" ( (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x1ccaee;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x1ccaee" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x14)" ( (binary_expression "(int)pppuVar15 + -0x14" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar12 = gettext();" (assignment_expression "uVar12 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(int **)((int)pppuVar15 + -0x10) = param_9;" (assignment_expression "*(int **)((int)pppuVar15 + -0x10) = param_9" (pointer_expression "*(int **)((int)pppuVar15 + -0x10)" * (cast_expression "(int **)((int)pppuVar15 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar15 + -0x10)" ( (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x14) = 0;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x14) = 0" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x14)" ( (binary_expression "(int)pppuVar15 + -0x14" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 **)((int)pppuVar15 + -0x18) = param_4;" (assignment_expression "*(undefined4 **)((int)pppuVar15 + -0x18) = param_4" (pointer_expression "*(undefined4 **)((int)pppuVar15 + -0x18)" * (cast_expression "(undefined4 **)((int)pppuVar15 + -0x18)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar15 + -0x18)" ( (binary_expression "(int)pppuVar15 + -0x18" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x1c) = uVar12;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x1c) = uVar12" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x1c)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x1c)" ( (binary_expression "(int)pppuVar15 + -0x1c" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x20) = 0;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x20) = 0" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x20)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x20)" ( (binary_expression "(int)pppuVar15 + -0x20" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x24) = 0x1ccafc;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x24) = 0x1ccafc" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x24)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x24)" ( (binary_expression "(int)pppuVar15 + -0x24" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "puVar9 = (undefined4 *)FUN_001c9960();" (assignment_expression "puVar9 = (undefined4 *)FUN_001c9960()" identifier = (cast_expression "(undefined4 *)FUN_001c9960()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001c9960()" identifier (argument_list "()" ( ))))) ;) })) })) (return_statement "return puVar9;" return identifier ;) }))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* WARNING: Enum "STB": Some values do not have unique names */\n/* WARNING: Enum "STT": Some values do not have unique names */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original name: resolve<64, false>\n   DWARF original prototype: void resolve<64,_false>(Symbol_table * this, Sized_symbol<64> * to,\n   Sym<64,_false> * sym, uint st_shndx, bool is_ordinary, uint orig_st_shndx, Object * object, char\n   * version, bool is_default_version) */\n\nvoid __thiscall\ngold::Symbol_table::resolve<64,_false>\n          (Symbol_table *this,Sized_symbol<64> *to,Sym<64,_false> *sym,uint st_shndx,\n          bool is_ordinary,uint orig_st_shndx,Object *object,char *version,bool is_default_version)\n\n{\n  undefined1 *puVar1;\n  byte bVar2;\n  uint uVar3;\n  Target *pTVar4;\n  Object *pOVar5;\n  uint uVar6;\n  Sym_data<64> *pSVar7;\n  uint uVar8;\n  uint uVar9;\n  Output_segment *pOVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  _Hash_node_base *p_Var14;\n  pointer ppOVar15;\n  anon_union_4_3_b0f6f408_for_u1_ aVar16;\n  char cVar17;\n  bool bVar18;\n  byte bVar19;\n  int iVar20;\n  General_options *pGVar21;\n  STT SVar22;\n  uint uVar23;\n  char *pcVar24;\n  STT SVar25;\n  Symbol_table *pSVar26;\n  Symbol_table *pSVar27;\n  bool *local_74;\n  bool *local_70;\n  byte local_64;\n  undefined1 local_54 [12];\n  __node_gen_type __node_gen;\n  bool adjust_common_sizes;\n  uint local_40;\n  __bucket_type local_3c;\n  undefined4 local_38;\n  bool adjust_dyndef;\n  uint local_30;\n  _func_int_varargs **local_2c;\n  _Alloc_hider local_28;\n  \n  if (((to->super_Symbol).field_0x2a & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n  }\n  local_64 = (byte)(to->super_Symbol).field_0x2b >> 5 & 1;\n  uVar3 = (to->super_Symbol).u2_.shndx;\n  if (object == (to->super_Symbol).u1_.object) {\n    if (local_64 == 0) {\n      bVar18 = Symbol::is_common_shndx(uVar3);\n      if ((bVar18) || (!is_ordinary)) goto LAB_001cc88e;\n    }\n    else if ((uVar3 != 0) && ((is_ordinary && (st_shndx == uVar3)))) goto LAB_001ccb65;\n  }\n  else {\nLAB_001cc88e:\n    if ((st_shndx == 0xfff1 && !is_ordinary) && ((local_64 == 0 && (uVar3 == 0xfff1)))) {\nLAB_001ccb65:\n      if (*(int *)((int)&to->value_ + 4) == *(int *)((int)&sym->p_->st_value + 4) &&\n          (int)to->value_ == (int)sym->p_->st_value) {\n        return;\n      }\n    }\n  }\n  pTVar4 = parameters->target_;\n  if (pTVar4 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }\n  if ((*(char *)(*(int *)(pTVar4 + 4) + 0xd) == '\0') ||\n     (cVar17 = (**(code **)(*(int *)pTVar4 + 0xac))(pTVar4,to,sym,object,version), cVar17 == '\0'))\n  {\n    if ((object->field_0x2c & 1) == 0) {\n      if (((sym->p_->st_info & 0xf) == 5) &&\n         ((is_ordinary || (bVar18 = Symbol::is_common_shndx(st_shndx), !bVar18)))) {\n        if (((to->super_Symbol).field_0x2a & 7) == 0) {\n          ppOVar15 = ((to->super_Symbol).u1_.output_segment)->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_finish;\n          Symbol::demangled_name(&to->super_Symbol);\n          aVar16 = _adjust_dyndef;\n          pcVar24 = (char *)gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    /* try { // try from 001ccf2f to 001ccf33 has its CatchHandler @ 001cd081 */\n          gold_warning(pcVar24,aVar16.object,ppOVar15);\n          if (_adjust_dyndef == (Object *)&local_2c) {\n            return;\n          }\n          operator_delete(_adjust_dyndef);\n          return;\n        }\n        goto LAB_001cd065;\n      }\n      puVar1 = &(to->super_Symbol).field_0x2a;\n      *puVar1 = *puVar1 | 0x80;\n      iVar20 = (*object->_vptr_Object[5])(object);\n    }\n    else {\n      if ((st_shndx == 0) && (((byte)(to->super_Symbol).field_0x29 & 3) - 1 < 2)) {\n        return;\n      }\n      puVar1 = &(to->super_Symbol).field_0x2b;\n      *puVar1 = *puVar1 | 1;\n      iVar20 = (*object->_vptr_Object[5])(object);\n    }\n    if ((iVar20 == 0) && ((object->field_0x2c & 1) == 0)) {\n      puVar1 = &(to->super_Symbol).field_0x2b;\n      *puVar1 = *puVar1 | 0x40;\n    }\n    if ((((to->super_Symbol).field_0x2a & 7) == 0) &&\n       (pOVar5 = (to->super_Symbol).u1_.object, iVar20 = (*pOVar5->_vptr_Object[5])(pOVar5),\n       iVar20 != 0)) {\n      pGVar21 = parameters->options_;\n      if (pGVar21 == (General_options *)0x0) goto LAB_001ccb98;\n      if (pGVar21->plugins_->in_replacement_phase_ != false) {\n        if ((((((to->super_Symbol).field_0x2a & 7) != 0) ||\n             (((to->super_Symbol).field_0x2b & 0x20) != 0)) ||\n            (bVar18 = Symbol::is_common_shndx((to->super_Symbol).u2_.shndx), !bVar18)) ||\n           ((is_ordinary || (bVar18 = Symbol::is_common_shndx(st_shndx), !bVar18)))) {\n          override<64,_false>(this,to,sym,st_shndx,is_ordinary,object,version);\n          return;\n        }\n        uVar3 = *(uint *)((int)&to->symsize_ + 4);\n        uVar6 = (uint)to->symsize_;\n        uVar23 = *(uint *)((int)&to->value_ + 4);\n        uVar8 = (uint)to->value_;\n        override<64,_false>(this,to,sym,st_shndx,false,object,version);\n        uVar9 = *(uint *)((int)&to->symsize_ + 4);\n        if (uVar9 < uVar3 || uVar9 - uVar3 < (uint)((uint)to->symsize_ < uVar6)) {\n          *(uint *)&to->symsize_ = uVar6;\n          *(uint *)((int)&to->symsize_ + 4) = uVar3;\n        }\n        uVar3 = *(uint *)((int)&to->value_ + 4);\n        if (uVar23 <= uVar3 && (uint)((uint)to->value_ < uVar8) <= uVar3 - uVar23) {\n          return;\n        }\n        *(uint *)&to->value_ = uVar8;\n        *(uint *)((int)&to->value_ + 4) = uVar23;\n        return;\n      }\n    }\n    else {\n      pGVar21 = parameters->options_;\n      if (pGVar21 == (General_options *)0x0) goto LAB_001ccb98;\n    }\n    if ((pGVar21->detect_odr_violations_).value != false) {\n      pSVar7 = sym->p_;\n      if ((((int)(uint)pSVar7->st_info >> 4 == 2) || ((byte)(to->super_Symbol).field_0x28 >> 4 == 2)\n          ) && (((local_64 & orig_st_shndx != 0) != 0 && (uVar3 != 0)))) {\n        iVar20 = (int)pSVar7->st_size;\n        iVar11 = *(int *)((int)&pSVar7->st_size + 4);\n        if (iVar11 != 0 || iVar20 != 0) {\n          iVar12 = (int)to->symsize_;\n          iVar13 = *(int *)((int)&to->symsize_ + 4);\n          if ((iVar13 != 0 || iVar12 != 0) &&\n             (((pSVar7->st_info & 0xf) != ((to->super_Symbol).field_0x28 & 0xf) ||\n              (iVar20 != iVar12 || iVar11 != iVar13)))) {\n            p_Var14 = (_Hash_node_base *)(to->super_Symbol).name_;\n            if ((*(char *)&p_Var14->_M_nxt == '_') && (*(char *)((int)&p_Var14->_M_nxt + 1) == 'Z'))\n            {\n              local_3c = *(__bucket_type *)&pSVar7->st_value;\n              _adjust_common_sizes = object;\n              local_40 = orig_st_shndx;\n              local_38 = *(undefined4 *)((int)&pSVar7->st_value + 4);\n              if (((to->super_Symbol).field_0x2a & 7) != 0) {\nLAB_001cd065:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n              }\n              _adjust_dyndef = (to->super_Symbol).u1_;\n              local_2c = *(_func_int_varargs ***)&to->value_;\n              local_28._M_p = *(pointer *)((int)&to->value_ + 4);\n              pSVar26 = this;\n              pSVar27 = this;\n              local_54._8_4_ = p_Var14;\n              local_30 = uVar3;\n              __node_gen._M_h =\n                   (__hashtable_alloc *)\n                   std::__detail::\n                   _Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8));\n              std::\n              _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::\n              _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                        ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_common_sizes,&__node_gen,0,1,pSVar26,\n                         pSVar27);\n              local_54._8_4_ = (to->super_Symbol).name_;\n              __node_gen._M_h =\n                   (__hashtable_alloc *)\n                   std::__detail::\n                   _Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8));\n              std::\n              _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::\n              _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                        ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_dyndef,&__node_gen,0,1);\n            }\n          }\n        }\n      }\n    }\n    local_70 = &adjust_common_sizes;\n    local_74 = &adjust_dyndef;\n    iVar20 = (*object->_vptr_Object[5])(object);\n    if (iVar20 == 0) {\n      SVar22 = (STT)sym->p_->st_info;\n      SVar25 = SVar22;\n    }\n    else {\n      SVar22 = (STT)sym->p_->st_info;\n      SVar25 = (uint)(byte)(to->super_Symbol).field_0x28;\n    }\n    uVar23 = symbol_to_bits((int)SVar22 >> 4,(bool)(object->field_0x2c & 1),st_shndx,is_ordinary);\n    uVar3 = (uint)to->symsize_;\n    uVar6 = *(uint *)((int)&to->symsize_ + 4);\n    bVar18 = should_override(&to->super_Symbol,uVar23,SVar25 & STT_HIPROC,OBJECT,object,local_70,\n                             local_74,is_default_version);\n    if (bVar18) {\n      bVar19 = (to->super_Symbol).field_0x28;\n      uVar23 = (uint)to->value_;\n      uVar8 = *(uint *)((int)&to->value_ + 4);\n      override<64,_false>(this,to,sym,st_shndx,is_ordinary,object,version);\n      if (adjust_common_sizes != false) {\n        uVar9 = *(uint *)((int)&to->symsize_ + 4);\n        if (uVar9 < uVar6 || uVar9 - uVar6 < (uint)((uint)to->symsize_ < uVar3)) {\n          *(uint *)((int)&to->symsize_ + 4) = uVar6;\n          *(uint *)&to->symsize_ = uVar3;\n        }\n        uVar9 = *(uint *)((int)&to->value_ + 4);\n        if (uVar9 < uVar8 || uVar9 - uVar8 < (uint)((uint)to->value_ < uVar23)) {\n          *(uint *)&to->value_ = uVar23;\n          *(uint *)((int)&to->value_ + 4) = uVar8;\n        }\n      }\n      if ((adjust_dyndef != false) &&\n         ((bVar2 = (to->super_Symbol).field_0x2c, (bVar2 & 1) == 0 || ((bVar2 & 2) != 0)))) {\n        (to->super_Symbol).field_0x2c =\n             (to->super_Symbol).field_0x2c & 0xfd | (bVar19 >> 4 == 2) * '\x02' | 1;\n      }\n    }\n    else {\n      pSVar7 = sym->p_;\n      if (adjust_common_sizes != false) {\n        uVar23 = (uint)pSVar7->st_size;\n        uVar8 = *(uint *)((int)&pSVar7->st_size + 4);\n        if (uVar6 < uVar8 || uVar6 - uVar8 < (uint)(uVar3 < uVar23)) {\n          *(uint *)((int)&to->symsize_ + 4) = uVar8;\n          *(uint *)&to->symsize_ = uVar23;\n        }\n        uVar23 = (uint)pSVar7->st_value;\n        uVar8 = *(uint *)((int)&pSVar7->st_value + 4);\n        uVar9 = *(uint *)((int)&to->value_ + 4);\n        if (uVar9 < uVar8 || uVar9 - uVar8 < (uint)((uint)to->value_ < uVar23)) {\n          *(uint *)((int)&to->value_ + 4) = uVar8;\n          *(uint *)&to->value_ = uVar23;\n        }\n      }\n      if (adjust_dyndef != false) {\n        bVar19 = (to->super_Symbol).field_0x2c;\n        if (((bVar19 & 1) == 0) || ((bVar19 & 2) != 0)) {\n          (to->super_Symbol).field_0x2c =\n               (to->super_Symbol).field_0x2c & 0xfd |\n               ((int)(uint)pSVar7->st_info >> 4 == 2) * '\x02' | 1;\n        }\n      }\n      bVar19 = pSVar7->st_other & 3;\n      if ((pSVar7->st_other & 3) != 0) {\n        bVar2 = (to->super_Symbol).field_0x29;\n        if (((bVar2 & 3) == 0) || (bVar19 < (bVar2 & 3))) {\n          (to->super_Symbol).field_0x29 = bVar19 | bVar2 & 0xfc;\n        }\n      }\n    }\n    bVar19 = (to->super_Symbol).field_0x2a;\n    if ((bVar19 & 7) == 0) {\n      pOVar10 = (to->super_Symbol).u1_.output_segment;\n      bVar2 = *(byte *)&pOVar10->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage;\n      if ((((bVar2 & 1) != 0) && ((char)bVar19 < '\0')) &&\n         (((to->super_Symbol).field_0x2c & 2) == 0)) {\n        *(byte *)&pOVar10->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage = bVar2 | 2;\n      }\n    }\n    if (adjust_common_sizes != false) {\n      if (parameters->options_ == (General_options *)0x0) {\nLAB_001ccb98:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n      }\n      if ((parameters->options_->warn_common_).value != false) {\n        uVar23 = (uint)sym->p_->st_size;\n        uVar8 = *(uint *)((int)&sym->p_->st_size + 4);\n        if (uVar8 < uVar6 || uVar8 - uVar6 < (uint)(uVar23 < uVar3)) {\n          pcVar24 = "common of \'%s\' overriding smaller common";\n        }\n        else if (uVar6 < uVar8 || uVar6 - uVar8 < (uint)(uVar3 < uVar23)) {\n          pcVar24 = "common of \'%s\' overidden by larger common";\n        }\n        else {\n          pcVar24 = "multiple common of \'%s\'";\n        }\n        pcVar24 = (char *)gettext(pcVar24);\n        report_resolve_problem(false,pcVar24,&to->super_Symbol,OBJECT,object);\n      }\n    }\n  }\n  return;\n}\n\n" comment comment comment comment comment (declaration "void __thiscall\ngold::Symbol_table::resolve<64,_false>\n          (Symbol_table *this,Sized_symbol<64> *to,Sym<64,_false> *sym,uint st_shndx,\n          bool is_ordinary,uint orig_st_shndx,Object *object,char *version,bool is_default_version)\n\n{\n  undefined1 *puVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Symbol_table::" identifier : : identifier : :) identifier (ERROR "<64" < number_literal) , (ERROR "_false>\n          (Symbol_table *this,Sized_symbol<64> *to,Sym<64,_false> *sym,uint st_shndx,\n          bool is_ordinary,uint orig_st_shndx,Object *object,char *version,bool is_default_version)\n\n{\n  undefined1" (function_declarator "_false>\n          (Symbol_table *this,Sized_symbol<64> *to,Sym<64,_false> *sym,uint st_shndx,\n          bool is_ordinary,uint orig_st_shndx,Object *object,char *version,bool is_default_version)" identifier (ERROR ">" >) (parameter_list "(Symbol_table *this,Sized_symbol<64> *to,Sym<64,_false> *sym,uint st_shndx,\n          bool is_ordinary,uint orig_st_shndx,Object *object,char *version,bool is_default_version)" ( (parameter_declaration "Symbol_table *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Sized_symbol<64> *to" type_identifier (ERROR "<64>" < number_literal >) (pointer_declarator "*to" * identifier)) , (parameter_declaration "Sym" type_identifier) (ERROR "<64" < number_literal) , (parameter_declaration "_false> *sym" type_identifier (ERROR ">" >) (pointer_declarator "*sym" * identifier)) , (parameter_declaration "uint st_shndx" type_identifier identifier) , (parameter_declaration "bool is_ordinary" primitive_type identifier) , (parameter_declaration "uint orig_st_shndx" type_identifier identifier) , (parameter_declaration "Object *object" type_identifier (pointer_declarator "*object" * identifier)) , (parameter_declaration "char *version" primitive_type (pointer_declarator "*version" * identifier)) , (parameter_declaration "bool is_default_version" primitive_type identifier) ))) { identifier) (pointer_declarator "*puVar1" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "Target *pTVar4;" type_identifier (pointer_declarator "*pTVar4" * identifier) ;) (declaration "Object *pOVar5;" type_identifier (pointer_declarator "*pOVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (expression_statement "Sym_data<64> *pSVar7;" (update_expression "Sym_data<64> *pSVar7" (binary_expression "Sym_data<64> *pSVar7" (binary_expression "Sym_data<64" identifier < number_literal) > (pointer_expression "*pSVar7" * identifier)) --) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "Output_segment *pOVar10;" type_identifier (pointer_declarator "*pOVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "_Hash_node_base *p_Var14;" type_identifier (pointer_declarator "*p_Var14" * identifier) ;) (declaration "pointer ppOVar15;" type_identifier identifier ;) (declaration "anon_union_4_3_b0f6f408_for_u1_ aVar16;" type_identifier identifier ;) (declaration "char cVar17;" primitive_type identifier ;) (declaration "bool bVar18;" primitive_type identifier ;) (declaration "byte bVar19;" type_identifier identifier ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "General_options *pGVar21;" type_identifier (pointer_declarator "*pGVar21" * identifier) ;) (declaration "STT SVar22;" type_identifier identifier ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "char *pcVar24;" primitive_type (pointer_declarator "*pcVar24" * identifier) ;) (declaration "STT SVar25;" type_identifier identifier ;) (declaration "Symbol_table *pSVar26;" type_identifier (pointer_declarator "*pSVar26" * identifier) ;) (declaration "Symbol_table *pSVar27;" type_identifier (pointer_declarator "*pSVar27" * identifier) ;) (declaration "bool *local_74;" primitive_type (pointer_declarator "*local_74" * identifier) ;) (declaration "bool *local_70;" primitive_type (pointer_declarator "*local_70" * identifier) ;) (declaration "byte local_64;" type_identifier identifier ;) (declaration "undefined1 local_54 [12];" type_identifier (array_declarator "local_54 [12]" identifier [ number_literal ]) ;) (declaration "__node_gen_type __node_gen;" type_identifier identifier ;) (declaration "bool adjust_common_sizes;" primitive_type identifier ;) (declaration "uint local_40;" type_identifier identifier ;) (declaration "__bucket_type local_3c;" type_identifier identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "bool adjust_dyndef;" primitive_type identifier ;) (declaration "uint local_30;" type_identifier identifier ;) (declaration "_func_int_varargs **local_2c;" type_identifier (pointer_declarator "**local_2c" * (pointer_declarator "*local_2c" * identifier)) ;) (declaration "_Alloc_hider local_28;" type_identifier identifier ;) (if_statement "if (((to->super_Symbol).field_0x2a & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n  }" if (parenthesized_expression "(((to->super_Symbol).field_0x2a & 7) != 0)" ( (binary_expression "((to->super_Symbol).field_0x2a & 7) != 0" (parenthesized_expression "((to->super_Symbol).field_0x2a & 7)" ( (binary_expression "(to->super_Symbol).field_0x2a & 7" (field_expression "(to->super_Symbol).field_0x2a" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");" (call_expression "do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx")" identifier (argument_list "("../../gold/symtab.h",0xaa,"shndx")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""shndx"" " string_content ") ))) ;) })) (expression_statement "local_64 = (byte)(to->super_Symbol).field_0x2b >> 5 & 1;" (assignment_expression "local_64 = (byte)(to->super_Symbol).field_0x2b >> 5 & 1" identifier = (binary_expression "(byte)(to->super_Symbol).field_0x2b >> 5 & 1" (binary_expression "(byte)(to->super_Symbol).field_0x2b >> 5" (field_expression "(byte)(to->super_Symbol).field_0x2b" (call_expression "(byte)(to->super_Symbol)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) ))) . field_identifier) >> number_literal) & number_literal)) ;) (expression_statement "uVar3 = (to->super_Symbol).u2_.shndx;" (assignment_expression "uVar3 = (to->super_Symbol).u2_.shndx" identifier = (field_expression "(to->super_Symbol).u2_.shndx" (field_expression "(to->super_Symbol).u2_" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (object == (to->super_Symbol).u1_.object) {\n    if (local_64 == 0) {\n      bVar18 = Symbol::is_common_shndx(uVar3);\n      if ((bVar18) || (!is_ordinary)) goto LAB_001cc88e;\n    }\n    else if ((uVar3 != 0) && ((is_ordinary && (st_shndx == uVar3)))) goto LAB_001ccb65;\n  }\n  else {\nLAB_001cc88e:\n    if ((st_shndx == 0xfff1 && !is_ordinary) && ((local_64 == 0 && (uVar3 == 0xfff1)))) {\nLAB_001ccb65:\n      if (*(int *)((int)&to->value_ + 4) == *(int *)((int)&sym->p_->st_value + 4) &&\n          (int)to->value_ == (int)sym->p_->st_value) {\n        return;\n      }\n    }\n  }" if (parenthesized_expression "(object == (to->super_Symbol).u1_.object)" ( (binary_expression "object == (to->super_Symbol).u1_.object" identifier == (field_expression "(to->super_Symbol).u1_.object" (field_expression "(to->super_Symbol).u1_" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier)) )) (compound_statement "{\n    if (local_64 == 0) {\n      bVar18 = Symbol::is_common_shndx(uVar3);\n      if ((bVar18) || (!is_ordinary)) goto LAB_001cc88e;\n    }\n    else if ((uVar3 != 0) && ((is_ordinary && (st_shndx == uVar3)))) goto LAB_001ccb65;\n  }" { (if_statement "if (local_64 == 0) {\n      bVar18 = Symbol::is_common_shndx(uVar3);\n      if ((bVar18) || (!is_ordinary)) goto LAB_001cc88e;\n    }\n    else if ((uVar3 != 0) && ((is_ordinary && (st_shndx == uVar3)))) goto LAB_001ccb65;" if (parenthesized_expression "(local_64 == 0)" ( (binary_expression "local_64 == 0" identifier == number_literal) )) (compound_statement "{\n      bVar18 = Symbol::is_common_shndx(uVar3);\n      if ((bVar18) || (!is_ordinary)) goto LAB_001cc88e;\n    }" { (ERROR "bVar18 = Symbol::" (assignment_expression "bVar18 = Symbol" identifier = identifier) : :) (expression_statement "is_common_shndx(uVar3);" (call_expression "is_common_shndx(uVar3)" identifier (argument_list "(uVar3)" ( identifier ))) ;) (if_statement "if ((bVar18) || (!is_ordinary)) goto LAB_001cc88e;" if (parenthesized_expression "((bVar18) || (!is_ordinary))" ( (binary_expression "(bVar18) || (!is_ordinary)" (parenthesized_expression "(bVar18)" ( identifier )) || (parenthesized_expression "(!is_ordinary)" ( (unary_expression "!is_ordinary" ! identifier) ))) )) (goto_statement "goto LAB_001cc88e;" goto statement_identifier ;)) }) (else_clause "else if ((uVar3 != 0) && ((is_ordinary && (st_shndx == uVar3)))) goto LAB_001ccb65;" else (if_statement "if ((uVar3 != 0) && ((is_ordinary && (st_shndx == uVar3)))) goto LAB_001ccb65;" if (parenthesized_expression "((uVar3 != 0) && ((is_ordinary && (st_shndx == uVar3))))" ( (binary_expression "(uVar3 != 0) && ((is_ordinary && (st_shndx == uVar3)))" (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "((is_ordinary && (st_shndx == uVar3)))" ( (parenthesized_expression "(is_ordinary && (st_shndx == uVar3))" ( (binary_expression "is_ordinary && (st_shndx == uVar3)" identifier && (parenthesized_expression "(st_shndx == uVar3)" ( (binary_expression "st_shndx == uVar3" identifier == identifier) ))) )) ))) )) (goto_statement "goto LAB_001ccb65;" goto statement_identifier ;)))) }) (else_clause "else {\nLAB_001cc88e:\n    if ((st_shndx == 0xfff1 && !is_ordinary) && ((local_64 == 0 && (uVar3 == 0xfff1)))) {\nLAB_001ccb65:\n      if (*(int *)((int)&to->value_ + 4) == *(int *)((int)&sym->p_->st_value + 4) &&\n          (int)to->value_ == (int)sym->p_->st_value) {\n        return;\n      }\n    }\n  }" else (compound_statement "{\nLAB_001cc88e:\n    if ((st_shndx == 0xfff1 && !is_ordinary) && ((local_64 == 0 && (uVar3 == 0xfff1)))) {\nLAB_001ccb65:\n      if (*(int *)((int)&to->value_ + 4) == *(int *)((int)&sym->p_->st_value + 4) &&\n          (int)to->value_ == (int)sym->p_->st_value) {\n        return;\n      }\n    }\n  }" { (labeled_statement "LAB_001cc88e:\n    if ((st_shndx == 0xfff1 && !is_ordinary) && ((local_64 == 0 && (uVar3 == 0xfff1)))) {\nLAB_001ccb65:\n      if (*(int *)((int)&to->value_ + 4) == *(int *)((int)&sym->p_->st_value + 4) &&\n          (int)to->value_ == (int)sym->p_->st_value) {\n        return;\n      }\n    }" statement_identifier : (if_statement "if ((st_shndx == 0xfff1 && !is_ordinary) && ((local_64 == 0 && (uVar3 == 0xfff1)))) {\nLAB_001ccb65:\n      if (*(int *)((int)&to->value_ + 4) == *(int *)((int)&sym->p_->st_value + 4) &&\n          (int)to->value_ == (int)sym->p_->st_value) {\n        return;\n      }\n    }" if (parenthesized_expression "((st_shndx == 0xfff1 && !is_ordinary) && ((local_64 == 0 && (uVar3 == 0xfff1))))" ( (binary_expression "(st_shndx == 0xfff1 && !is_ordinary) && ((local_64 == 0 && (uVar3 == 0xfff1)))" (parenthesized_expression "(st_shndx == 0xfff1 && !is_ordinary)" ( (binary_expression "st_shndx == 0xfff1 && !is_ordinary" (binary_expression "st_shndx == 0xfff1" identifier == number_literal) && (unary_expression "!is_ordinary" ! identifier)) )) && (parenthesized_expression "((local_64 == 0 && (uVar3 == 0xfff1)))" ( (parenthesized_expression "(local_64 == 0 && (uVar3 == 0xfff1))" ( (binary_expression "local_64 == 0 && (uVar3 == 0xfff1)" (binary_expression "local_64 == 0" identifier == number_literal) && (parenthesized_expression "(uVar3 == 0xfff1)" ( (binary_expression "uVar3 == 0xfff1" identifier == number_literal) ))) )) ))) )) (compound_statement "{\nLAB_001ccb65:\n      if (*(int *)((int)&to->value_ + 4) == *(int *)((int)&sym->p_->st_value + 4) &&\n          (int)to->value_ == (int)sym->p_->st_value) {\n        return;\n      }\n    }" { (labeled_statement "LAB_001ccb65:\n      if (*(int *)((int)&to->value_ + 4) == *(int *)((int)&sym->p_->st_value + 4) &&\n          (int)to->value_ == (int)sym->p_->st_value) {\n        return;\n      }" statement_identifier : (if_statement "if (*(int *)((int)&to->value_ + 4) == *(int *)((int)&sym->p_->st_value + 4) &&\n          (int)to->value_ == (int)sym->p_->st_value) {\n        return;\n      }" if (parenthesized_expression "(*(int *)((int)&to->value_ + 4) == *(int *)((int)&sym->p_->st_value + 4) &&\n          (int)to->value_ == (int)sym->p_->st_value)" ( (binary_expression "*(int *)((int)&to->value_ + 4) == *(int *)((int)&sym->p_->st_value + 4) &&\n          (int)to->value_ == (int)sym->p_->st_value" (binary_expression "*(int *)((int)&to->value_ + 4) == *(int *)((int)&sym->p_->st_value + 4)" (pointer_expression "*(int *)((int)&to->value_ + 4)" * (cast_expression "(int *)((int)&to->value_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&to->value_ + 4)" ( (binary_expression "(int)&to->value_ + 4" (cast_expression "(int)&to->value_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&to->value_" & (field_expression "to->value_" identifier -> field_identifier))) + number_literal) )))) == (pointer_expression "*(int *)((int)&sym->p_->st_value + 4)" * (cast_expression "(int *)((int)&sym->p_->st_value + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&sym->p_->st_value + 4)" ( (binary_expression "(int)&sym->p_->st_value + 4" (cast_expression "(int)&sym->p_->st_value" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&sym->p_->st_value" & (field_expression "sym->p_->st_value" (field_expression "sym->p_" identifier -> field_identifier) -> field_identifier))) + number_literal) ))))) && (binary_expression "(int)to->value_ == (int)sym->p_->st_value" (cast_expression "(int)to->value_" ( (type_descriptor "int" primitive_type) ) (field_expression "to->value_" identifier -> field_identifier)) == (cast_expression "(int)sym->p_->st_value" ( (type_descriptor "int" primitive_type) ) (field_expression "sym->p_->st_value" (field_expression "sym->p_" identifier -> field_identifier) -> field_identifier)))) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) }))) }))) }))) (expression_statement "pTVar4 = parameters->target_;" (assignment_expression "pTVar4 = parameters->target_" identifier = (field_expression "parameters->target_" identifier -> field_identifier)) ;) (if_statement "if (pTVar4 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }" if (parenthesized_expression "(pTVar4 == (Target *)0x0)" ( (binary_expression "pTVar4 == (Target *)0x0" identifier == (cast_expression "(Target *)0x0" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x69,"target");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x69,"target")" identifier (argument_list "("../../gold/parameters.h",0x69,"target")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") ))) ;) })) (if_statement "if ((*(char *)(*(int *)(pTVar4 + 4) + 0xd) == '\0') ||\n     (cVar17 = (**(code **)(*(int *)pTVar4 + 0xac))(pTVar4,to,sym,object,version), cVar17 == '\0'))\n  {\n    if ((object->field_0x2c & 1) == 0) {\n      if (((sym->p_->st_info & 0xf) == 5) &&\n         ((is_ordinary || (bVar18 = Symbol::is_common_shndx(st_shndx), !bVar18)))) {\n        if (((to->super_Symbol).field_0x2a & 7) == 0) {\n          ppOVar15 = ((to->super_Symbol).u1_.output_segment)->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_finish;\n          Symbol::demangled_name(&to->super_Symbol);\n          aVar16 = _adjust_dyndef;\n          pcVar24 = (char *)gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    /* try { // try from 001ccf2f to 001ccf33 has its CatchHandler @ 001cd081 */\n          gold_warning(pcVar24,aVar16.object,ppOVar15);\n          if (_adjust_dyndef == (Object *)&local_2c) {\n            return;\n          }\n          operator_delete(_adjust_dyndef);\n          return;\n        }\n        goto LAB_001cd065;\n      }\n      puVar1 = &(to->super_Symbol).field_0x2a;\n      *puVar1 = *puVar1 | 0x80;\n      iVar20 = (*object->_vptr_Object[5])(object);\n    }\n    else {\n      if ((st_shndx == 0) && (((byte)(to->super_Symbol).field_0x29 & 3) - 1 < 2)) {\n        return;\n      }\n      puVar1 = &(to->super_Symbol).field_0x2b;\n      *puVar1 = *puVar1 | 1;\n      iVar20 = (*object->_vptr_Object[5])(object);\n    }\n    if ((iVar20 == 0) && ((object->field_0x2c & 1) == 0)) {\n      puVar1 = &(to->super_Symbol).field_0x2b;\n      *puVar1 = *puVar1 | 0x40;\n    }\n    if ((((to->super_Symbol).field_0x2a & 7) == 0) &&\n       (pOVar5 = (to->super_Symbol).u1_.object, iVar20 = (*pOVar5->_vptr_Object[5])(pOVar5),\n       iVar20 != 0)) {\n      pGVar21 = parameters->options_;\n      if (pGVar21 == (General_options *)0x0) goto LAB_001ccb98;\n      if (pGVar21->plugins_->in_replacement_phase_ != false) {\n        if ((((((to->super_Symbol).field_0x2a & 7) != 0) ||\n             (((to->super_Symbol).field_0x2b & 0x20) != 0)) ||\n            (bVar18 = Symbol::is_common_shndx((to->super_Symbol).u2_.shndx), !bVar18)) ||\n           ((is_ordinary || (bVar18 = Symbol::is_common_shndx(st_shndx), !bVar18)))) {\n          override<64,_false>(this,to,sym,st_shndx,is_ordinary,object,version);\n          return;\n        }\n        uVar3 = *(uint *)((int)&to->symsize_ + 4);\n        uVar6 = (uint)to->symsize_;\n        uVar23 = *(uint *)((int)&to->value_ + 4);\n        uVar8 = (uint)to->value_;\n        override<64,_false>(this,to,sym,st_shndx,false,object,version);\n        uVar9 = *(uint *)((int)&to->symsize_ + 4);\n        if (uVar9 < uVar3 || uVar9 - uVar3 < (uint)((uint)to->symsize_ < uVar6)) {\n          *(uint *)&to->symsize_ = uVar6;\n          *(uint *)((int)&to->symsize_ + 4) = uVar3;\n        }\n        uVar3 = *(uint *)((int)&to->value_ + 4);\n        if (uVar23 <= uVar3 && (uint)((uint)to->value_ < uVar8) <= uVar3 - uVar23) {\n          return;\n        }\n        *(uint *)&to->value_ = uVar8;\n        *(uint *)((int)&to->value_ + 4) = uVar23;\n        return;\n      }\n    }\n    else {\n      pGVar21 = parameters->options_;\n      if (pGVar21 == (General_options *)0x0) goto LAB_001ccb98;\n    }\n    if ((pGVar21->detect_odr_violations_).value != false) {\n      pSVar7 = sym->p_;\n      if ((((int)(uint)pSVar7->st_info >> 4 == 2) || ((byte)(to->super_Symbol).field_0x28 >> 4 == 2)\n          ) && (((local_64 & orig_st_shndx != 0) != 0 && (uVar3 != 0)))) {\n        iVar20 = (int)pSVar7->st_size;\n        iVar11 = *(int *)((int)&pSVar7->st_size + 4);\n        if (iVar11 != 0 || iVar20 != 0) {\n          iVar12 = (int)to->symsize_;\n          iVar13 = *(int *)((int)&to->symsize_ + 4);\n          if ((iVar13 != 0 || iVar12 != 0) &&\n             (((pSVar7->st_info & 0xf) != ((to->super_Symbol).field_0x28 & 0xf) ||\n              (iVar20 != iVar12 || iVar11 != iVar13)))) {\n            p_Var14 = (_Hash_node_base *)(to->super_Symbol).name_;\n            if ((*(char *)&p_Var14->_M_nxt == '_') && (*(char *)((int)&p_Var14->_M_nxt + 1) == 'Z'))\n            {\n              local_3c = *(__bucket_type *)&pSVar7->st_value;\n              _adjust_common_sizes = object;\n              local_40 = orig_st_shndx;\n              local_38 = *(undefined4 *)((int)&pSVar7->st_value + 4);\n              if (((to->super_Symbol).field_0x2a & 7) != 0) {\nLAB_001cd065:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n              }\n              _adjust_dyndef = (to->super_Symbol).u1_;\n              local_2c = *(_func_int_varargs ***)&to->value_;\n              local_28._M_p = *(pointer *)((int)&to->value_ + 4);\n              pSVar26 = this;\n              pSVar27 = this;\n              local_54._8_4_ = p_Var14;\n              local_30 = uVar3;\n              __node_gen._M_h =\n                   (__hashtable_alloc *)\n                   std::__detail::\n                   _Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8));\n              std::\n              _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::\n              _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                        ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_common_sizes,&__node_gen,0,1,pSVar26,\n                         pSVar27);\n              local_54._8_4_ = (to->super_Symbol).name_;\n              __node_gen._M_h =\n                   (__hashtable_alloc *)\n                   std::__detail::\n                   _Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8));\n              std::\n              _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::\n              _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                        ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_dyndef,&__node_gen,0,1);\n            }\n          }\n        }\n      }\n    }\n    local_70 = &adjust_common_sizes;\n    local_74 = &adjust_dyndef;\n    iVar20 = (*object->_vptr_Object[5])(object);\n    if (iVar20 == 0) {\n      SVar22 = (STT)sym->p_->st_info;\n      SVar25 = SVar22;\n    }\n    else {\n      SVar22 = (STT)sym->p_->st_info;\n      SVar25 = (uint)(byte)(to->super_Symbol).field_0x28;\n    }\n    uVar23 = symbol_to_bits((int)SVar22 >> 4,(bool)(object->field_0x2c & 1),st_shndx,is_ordinary);\n    uVar3 = (uint)to->symsize_;\n    uVar6 = *(uint *)((int)&to->symsize_ + 4);\n    bVar18 = should_override(&to->super_Symbol,uVar23,SVar25 & STT_HIPROC,OBJECT,object,local_70,\n                             local_74,is_default_version);\n    if (bVar18) {\n      bVar19 = (to->super_Symbol).field_0x28;\n      uVar23 = (uint)to->value_;\n      uVar8 = *(uint *)((int)&to->value_ + 4);\n      override<64,_false>(this,to,sym,st_shndx,is_ordinary,object,version);\n      if (adjust_common_sizes != false) {\n        uVar9 = *(uint *)((int)&to->symsize_ + 4);\n        if (uVar9 < uVar6 || uVar9 - uVar6 < (uint)((uint)to->symsize_ < uVar3)) {\n          *(uint *)((int)&to->symsize_ + 4) = uVar6;\n          *(uint *)&to->symsize_ = uVar3;\n        }\n        uVar9 = *(uint *)((int)&to->value_ + 4);\n        if (uVar9 < uVar8 || uVar9 - uVar8 < (uint)((uint)to->value_ < uVar23)) {\n          *(uint *)&to->value_ = uVar23;\n          *(uint *)((int)&to->value_ + 4) = uVar8;\n        }\n      }\n      if ((adjust_dyndef != false) &&\n         ((bVar2 = (to->super_Symbol).field_0x2c, (bVar2 & 1) == 0 || ((bVar2 & 2) != 0)))) {\n        (to->super_Symbol).field_0x2c =\n             (to->super_Symbol).field_0x2c & 0xfd | (bVar19 >> 4 == 2) * '\x02' | 1;\n      }\n    }\n    else {\n      pSVar7 = sym->p_;\n      if (adjust_common_sizes != false) {\n        uVar23 = (uint)pSVar7->st_size;\n        uVar8 = *(uint *)((int)&pSVar7->st_size + 4);\n        if (uVar6 < uVar8 || uVar6 - uVar8 < (uint)(uVar3 < uVar23)) {\n          *(uint *)((int)&to->symsize_ + 4) = uVar8;\n          *(uint *)&to->symsize_ = uVar23;\n        }\n        uVar23 = (uint)pSVar7->st_value;\n        uVar8 = *(uint *)((int)&pSVar7->st_value + 4);\n        uVar9 = *(uint *)((int)&to->value_ + 4);\n        if (uVar9 < uVar8 || uVar9 - uVar8 < (uint)((uint)to->value_ < uVar23)) {\n          *(uint *)((int)&to->value_ + 4) = uVar8;\n          *(uint *)&to->value_ = uVar23;\n        }\n      }\n      if (adjust_dyndef != false) {\n        bVar19 = (to->super_Symbol).field_0x2c;\n        if (((bVar19 & 1) == 0) || ((bVar19 & 2) != 0)) {\n          (to->super_Symbol).field_0x2c =\n               (to->super_Symbol).field_0x2c & 0xfd |\n               ((int)(uint)pSVar7->st_info >> 4 == 2) * '\x02' | 1;\n        }\n      }\n      bVar19 = pSVar7->st_other & 3;\n      if ((pSVar7->st_other & 3) != 0) {\n        bVar2 = (to->super_Symbol).field_0x29;\n        if (((bVar2 & 3) == 0) || (bVar19 < (bVar2 & 3))) {\n          (to->super_Symbol).field_0x29 = bVar19 | bVar2 & 0xfc;\n        }\n      }\n    }\n    bVar19 = (to->super_Symbol).field_0x2a;\n    if ((bVar19 & 7) == 0) {\n      pOVar10 = (to->super_Symbol).u1_.output_segment;\n      bVar2 = *(byte *)&pOVar10->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage;\n      if ((((bVar2 & 1) != 0) && ((char)bVar19 < '\0')) &&\n         (((to->super_Symbol).field_0x2c & 2) == 0)) {\n        *(byte *)&pOVar10->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage = bVar2 | 2;\n      }\n    }\n    if (adjust_common_sizes != false) {\n      if (parameters->options_ == (General_options *)0x0) {\nLAB_001ccb98:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n      }\n      if ((parameters->options_->warn_common_).value != false) {\n        uVar23 = (uint)sym->p_->st_size;\n        uVar8 = *(uint *)((int)&sym->p_->st_size + 4);\n        if (uVar8 < uVar6 || uVar8 - uVar6 < (uint)(uVar23 < uVar3)) {\n          pcVar24 = "common of \'%s\' overriding smaller common";\n        }\n        else if (uVar6 < uVar8 || uVar6 - uVar8 < (uint)(uVar3 < uVar23)) {\n          pcVar24 = "common of \'%s\' overidden by larger common";\n        }\n        else {\n          pcVar24 = "multiple common of \'%s\'";\n        }\n        pcVar24 = (char *)gettext(pcVar24);\n        report_resolve_problem(false,pcVar24,&to->super_Symbol,OBJECT,object);\n      }\n    }\n  }" if (parenthesized_expression "((*(char *)(*(int *)(pTVar4 + 4) + 0xd) == '\0') ||\n     (cVar17 = (**(code **)(*(int *)pTVar4 + 0xac))(pTVar4,to,sym,object,version), cVar17 == '\0'))" ( (binary_expression "(*(char *)(*(int *)(pTVar4 + 4) + 0xd) == '\0') ||\n     (cVar17 = (**(code **)(*(int *)pTVar4 + 0xac))(pTVar4,to,sym,object,version), cVar17 == '\0')" (parenthesized_expression "(*(char *)(*(int *)(pTVar4 + 4) + 0xd) == '\0')" ( (binary_expression "*(char *)(*(int *)(pTVar4 + 4) + 0xd) == '\0'" (pointer_expression "*(char *)(*(int *)(pTVar4 + 4) + 0xd)" * (cast_expression "(char *)(*(int *)(pTVar4 + 4) + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pTVar4 + 4) + 0xd)" ( (binary_expression "*(int *)(pTVar4 + 4) + 0xd" (pointer_expression "*(int *)(pTVar4 + 4)" * (cast_expression "(int *)(pTVar4 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pTVar4 + 4)" ( (binary_expression "pTVar4 + 4" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(cVar17 = (**(code **)(*(int *)pTVar4 + 0xac))(pTVar4,to,sym,object,version), cVar17 == '\0')" ( (comma_expression "cVar17 = (**(code **)(*(int *)pTVar4 + 0xac))(pTVar4,to,sym,object,version), cVar17 == '\0'" (assignment_expression "cVar17 = (**(code **)(*(int *)pTVar4 + 0xac))(pTVar4,to,sym,object,version)" identifier = (call_expression "(**(code **)(*(int *)pTVar4 + 0xac))(pTVar4,to,sym,object,version)" (parenthesized_expression "(**(code **)(*(int *)pTVar4 + 0xac))" ( (pointer_expression "**(code **)(*(int *)pTVar4 + 0xac)" * (pointer_expression "*(code **)(*(int *)pTVar4 + 0xac)" * (cast_expression "(code **)(*(int *)pTVar4 + 0xac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pTVar4 + 0xac)" ( (binary_expression "*(int *)pTVar4 + 0xac" (pointer_expression "*(int *)pTVar4" * (cast_expression "(int *)pTVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pTVar4,to,sym,object,version)" ( identifier , identifier , identifier , identifier , identifier )))) , (binary_expression "cVar17 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n    if ((object->field_0x2c & 1) == 0) {\n      if (((sym->p_->st_info & 0xf) == 5) &&\n         ((is_ordinary || (bVar18 = Symbol::is_common_shndx(st_shndx), !bVar18)))) {\n        if (((to->super_Symbol).field_0x2a & 7) == 0) {\n          ppOVar15 = ((to->super_Symbol).u1_.output_segment)->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_finish;\n          Symbol::demangled_name(&to->super_Symbol);\n          aVar16 = _adjust_dyndef;\n          pcVar24 = (char *)gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    /* try { // try from 001ccf2f to 001ccf33 has its CatchHandler @ 001cd081 */\n          gold_warning(pcVar24,aVar16.object,ppOVar15);\n          if (_adjust_dyndef == (Object *)&local_2c) {\n            return;\n          }\n          operator_delete(_adjust_dyndef);\n          return;\n        }\n        goto LAB_001cd065;\n      }\n      puVar1 = &(to->super_Symbol).field_0x2a;\n      *puVar1 = *puVar1 | 0x80;\n      iVar20 = (*object->_vptr_Object[5])(object);\n    }\n    else {\n      if ((st_shndx == 0) && (((byte)(to->super_Symbol).field_0x29 & 3) - 1 < 2)) {\n        return;\n      }\n      puVar1 = &(to->super_Symbol).field_0x2b;\n      *puVar1 = *puVar1 | 1;\n      iVar20 = (*object->_vptr_Object[5])(object);\n    }\n    if ((iVar20 == 0) && ((object->field_0x2c & 1) == 0)) {\n      puVar1 = &(to->super_Symbol).field_0x2b;\n      *puVar1 = *puVar1 | 0x40;\n    }\n    if ((((to->super_Symbol).field_0x2a & 7) == 0) &&\n       (pOVar5 = (to->super_Symbol).u1_.object, iVar20 = (*pOVar5->_vptr_Object[5])(pOVar5),\n       iVar20 != 0)) {\n      pGVar21 = parameters->options_;\n      if (pGVar21 == (General_options *)0x0) goto LAB_001ccb98;\n      if (pGVar21->plugins_->in_replacement_phase_ != false) {\n        if ((((((to->super_Symbol).field_0x2a & 7) != 0) ||\n             (((to->super_Symbol).field_0x2b & 0x20) != 0)) ||\n            (bVar18 = Symbol::is_common_shndx((to->super_Symbol).u2_.shndx), !bVar18)) ||\n           ((is_ordinary || (bVar18 = Symbol::is_common_shndx(st_shndx), !bVar18)))) {\n          override<64,_false>(this,to,sym,st_shndx,is_ordinary,object,version);\n          return;\n        }\n        uVar3 = *(uint *)((int)&to->symsize_ + 4);\n        uVar6 = (uint)to->symsize_;\n        uVar23 = *(uint *)((int)&to->value_ + 4);\n        uVar8 = (uint)to->value_;\n        override<64,_false>(this,to,sym,st_shndx,false,object,version);\n        uVar9 = *(uint *)((int)&to->symsize_ + 4);\n        if (uVar9 < uVar3 || uVar9 - uVar3 < (uint)((uint)to->symsize_ < uVar6)) {\n          *(uint *)&to->symsize_ = uVar6;\n          *(uint *)((int)&to->symsize_ + 4) = uVar3;\n        }\n        uVar3 = *(uint *)((int)&to->value_ + 4);\n        if (uVar23 <= uVar3 && (uint)((uint)to->value_ < uVar8) <= uVar3 - uVar23) {\n          return;\n        }\n        *(uint *)&to->value_ = uVar8;\n        *(uint *)((int)&to->value_ + 4) = uVar23;\n        return;\n      }\n    }\n    else {\n      pGVar21 = parameters->options_;\n      if (pGVar21 == (General_options *)0x0) goto LAB_001ccb98;\n    }\n    if ((pGVar21->detect_odr_violations_).value != false) {\n      pSVar7 = sym->p_;\n      if ((((int)(uint)pSVar7->st_info >> 4 == 2) || ((byte)(to->super_Symbol).field_0x28 >> 4 == 2)\n          ) && (((local_64 & orig_st_shndx != 0) != 0 && (uVar3 != 0)))) {\n        iVar20 = (int)pSVar7->st_size;\n        iVar11 = *(int *)((int)&pSVar7->st_size + 4);\n        if (iVar11 != 0 || iVar20 != 0) {\n          iVar12 = (int)to->symsize_;\n          iVar13 = *(int *)((int)&to->symsize_ + 4);\n          if ((iVar13 != 0 || iVar12 != 0) &&\n             (((pSVar7->st_info & 0xf) != ((to->super_Symbol).field_0x28 & 0xf) ||\n              (iVar20 != iVar12 || iVar11 != iVar13)))) {\n            p_Var14 = (_Hash_node_base *)(to->super_Symbol).name_;\n            if ((*(char *)&p_Var14->_M_nxt == '_') && (*(char *)((int)&p_Var14->_M_nxt + 1) == 'Z'))\n            {\n              local_3c = *(__bucket_type *)&pSVar7->st_value;\n              _adjust_common_sizes = object;\n              local_40 = orig_st_shndx;\n              local_38 = *(undefined4 *)((int)&pSVar7->st_value + 4);\n              if (((to->super_Symbol).field_0x2a & 7) != 0) {\nLAB_001cd065:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n              }\n              _adjust_dyndef = (to->super_Symbol).u1_;\n              local_2c = *(_func_int_varargs ***)&to->value_;\n              local_28._M_p = *(pointer *)((int)&to->value_ + 4);\n              pSVar26 = this;\n              pSVar27 = this;\n              local_54._8_4_ = p_Var14;\n              local_30 = uVar3;\n              __node_gen._M_h =\n                   (__hashtable_alloc *)\n                   std::__detail::\n                   _Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8));\n              std::\n              _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::\n              _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                        ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_common_sizes,&__node_gen,0,1,pSVar26,\n                         pSVar27);\n              local_54._8_4_ = (to->super_Symbol).name_;\n              __node_gen._M_h =\n                   (__hashtable_alloc *)\n                   std::__detail::\n                   _Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8));\n              std::\n              _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::\n              _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                        ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_dyndef,&__node_gen,0,1);\n            }\n          }\n        }\n      }\n    }\n    local_70 = &adjust_common_sizes;\n    local_74 = &adjust_dyndef;\n    iVar20 = (*object->_vptr_Object[5])(object);\n    if (iVar20 == 0) {\n      SVar22 = (STT)sym->p_->st_info;\n      SVar25 = SVar22;\n    }\n    else {\n      SVar22 = (STT)sym->p_->st_info;\n      SVar25 = (uint)(byte)(to->super_Symbol).field_0x28;\n    }\n    uVar23 = symbol_to_bits((int)SVar22 >> 4,(bool)(object->field_0x2c & 1),st_shndx,is_ordinary);\n    uVar3 = (uint)to->symsize_;\n    uVar6 = *(uint *)((int)&to->symsize_ + 4);\n    bVar18 = should_override(&to->super_Symbol,uVar23,SVar25 & STT_HIPROC,OBJECT,object,local_70,\n                             local_74,is_default_version);\n    if (bVar18) {\n      bVar19 = (to->super_Symbol).field_0x28;\n      uVar23 = (uint)to->value_;\n      uVar8 = *(uint *)((int)&to->value_ + 4);\n      override<64,_false>(this,to,sym,st_shndx,is_ordinary,object,version);\n      if (adjust_common_sizes != false) {\n        uVar9 = *(uint *)((int)&to->symsize_ + 4);\n        if (uVar9 < uVar6 || uVar9 - uVar6 < (uint)((uint)to->symsize_ < uVar3)) {\n          *(uint *)((int)&to->symsize_ + 4) = uVar6;\n          *(uint *)&to->symsize_ = uVar3;\n        }\n        uVar9 = *(uint *)((int)&to->value_ + 4);\n        if (uVar9 < uVar8 || uVar9 - uVar8 < (uint)((uint)to->value_ < uVar23)) {\n          *(uint *)&to->value_ = uVar23;\n          *(uint *)((int)&to->value_ + 4) = uVar8;\n        }\n      }\n      if ((adjust_dyndef != false) &&\n         ((bVar2 = (to->super_Symbol).field_0x2c, (bVar2 & 1) == 0 || ((bVar2 & 2) != 0)))) {\n        (to->super_Symbol).field_0x2c =\n             (to->super_Symbol).field_0x2c & 0xfd | (bVar19 >> 4 == 2) * '\x02' | 1;\n      }\n    }\n    else {\n      pSVar7 = sym->p_;\n      if (adjust_common_sizes != false) {\n        uVar23 = (uint)pSVar7->st_size;\n        uVar8 = *(uint *)((int)&pSVar7->st_size + 4);\n        if (uVar6 < uVar8 || uVar6 - uVar8 < (uint)(uVar3 < uVar23)) {\n          *(uint *)((int)&to->symsize_ + 4) = uVar8;\n          *(uint *)&to->symsize_ = uVar23;\n        }\n        uVar23 = (uint)pSVar7->st_value;\n        uVar8 = *(uint *)((int)&pSVar7->st_value + 4);\n        uVar9 = *(uint *)((int)&to->value_ + 4);\n        if (uVar9 < uVar8 || uVar9 - uVar8 < (uint)((uint)to->value_ < uVar23)) {\n          *(uint *)((int)&to->value_ + 4) = uVar8;\n          *(uint *)&to->value_ = uVar23;\n        }\n      }\n      if (adjust_dyndef != false) {\n        bVar19 = (to->super_Symbol).field_0x2c;\n        if (((bVar19 & 1) == 0) || ((bVar19 & 2) != 0)) {\n          (to->super_Symbol).field_0x2c =\n               (to->super_Symbol).field_0x2c & 0xfd |\n               ((int)(uint)pSVar7->st_info >> 4 == 2) * '\x02' | 1;\n        }\n      }\n      bVar19 = pSVar7->st_other & 3;\n      if ((pSVar7->st_other & 3) != 0) {\n        bVar2 = (to->super_Symbol).field_0x29;\n        if (((bVar2 & 3) == 0) || (bVar19 < (bVar2 & 3))) {\n          (to->super_Symbol).field_0x29 = bVar19 | bVar2 & 0xfc;\n        }\n      }\n    }\n    bVar19 = (to->super_Symbol).field_0x2a;\n    if ((bVar19 & 7) == 0) {\n      pOVar10 = (to->super_Symbol).u1_.output_segment;\n      bVar2 = *(byte *)&pOVar10->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage;\n      if ((((bVar2 & 1) != 0) && ((char)bVar19 < '\0')) &&\n         (((to->super_Symbol).field_0x2c & 2) == 0)) {\n        *(byte *)&pOVar10->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage = bVar2 | 2;\n      }\n    }\n    if (adjust_common_sizes != false) {\n      if (parameters->options_ == (General_options *)0x0) {\nLAB_001ccb98:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n      }\n      if ((parameters->options_->warn_common_).value != false) {\n        uVar23 = (uint)sym->p_->st_size;\n        uVar8 = *(uint *)((int)&sym->p_->st_size + 4);\n        if (uVar8 < uVar6 || uVar8 - uVar6 < (uint)(uVar23 < uVar3)) {\n          pcVar24 = "common of \'%s\' overriding smaller common";\n        }\n        else if (uVar6 < uVar8 || uVar6 - uVar8 < (uint)(uVar3 < uVar23)) {\n          pcVar24 = "common of \'%s\' overidden by larger common";\n        }\n        else {\n          pcVar24 = "multiple common of \'%s\'";\n        }\n        pcVar24 = (char *)gettext(pcVar24);\n        report_resolve_problem(false,pcVar24,&to->super_Symbol,OBJECT,object);\n      }\n    }\n  }" { (if_statement "if ((object->field_0x2c & 1) == 0) {\n      if (((sym->p_->st_info & 0xf) == 5) &&\n         ((is_ordinary || (bVar18 = Symbol::is_common_shndx(st_shndx), !bVar18)))) {\n        if (((to->super_Symbol).field_0x2a & 7) == 0) {\n          ppOVar15 = ((to->super_Symbol).u1_.output_segment)->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_finish;\n          Symbol::demangled_name(&to->super_Symbol);\n          aVar16 = _adjust_dyndef;\n          pcVar24 = (char *)gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    /* try { // try from 001ccf2f to 001ccf33 has its CatchHandler @ 001cd081 */\n          gold_warning(pcVar24,aVar16.object,ppOVar15);\n          if (_adjust_dyndef == (Object *)&local_2c) {\n            return;\n          }\n          operator_delete(_adjust_dyndef);\n          return;\n        }\n        goto LAB_001cd065;\n      }\n      puVar1 = &(to->super_Symbol).field_0x2a;\n      *puVar1 = *puVar1 | 0x80;\n      iVar20 = (*object->_vptr_Object[5])(object);\n    }\n    else {\n      if ((st_shndx == 0) && (((byte)(to->super_Symbol).field_0x29 & 3) - 1 < 2)) {\n        return;\n      }\n      puVar1 = &(to->super_Symbol).field_0x2b;\n      *puVar1 = *puVar1 | 1;\n      iVar20 = (*object->_vptr_Object[5])(object);\n    }" if (parenthesized_expression "((object->field_0x2c & 1) == 0)" ( (binary_expression "(object->field_0x2c & 1) == 0" (parenthesized_expression "(object->field_0x2c & 1)" ( (binary_expression "object->field_0x2c & 1" (field_expression "object->field_0x2c" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (((sym->p_->st_info & 0xf) == 5) &&\n         ((is_ordinary || (bVar18 = Symbol::is_common_shndx(st_shndx), !bVar18)))) {\n        if (((to->super_Symbol).field_0x2a & 7) == 0) {\n          ppOVar15 = ((to->super_Symbol).u1_.output_segment)->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_finish;\n          Symbol::demangled_name(&to->super_Symbol);\n          aVar16 = _adjust_dyndef;\n          pcVar24 = (char *)gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    /* try { // try from 001ccf2f to 001ccf33 has its CatchHandler @ 001cd081 */\n          gold_warning(pcVar24,aVar16.object,ppOVar15);\n          if (_adjust_dyndef == (Object *)&local_2c) {\n            return;\n          }\n          operator_delete(_adjust_dyndef);\n          return;\n        }\n        goto LAB_001cd065;\n      }\n      puVar1 = &(to->super_Symbol).field_0x2a;\n      *puVar1 = *puVar1 | 0x80;\n      iVar20 = (*object->_vptr_Object[5])(object);\n    }" { (if_statement "if (((sym->p_->st_info & 0xf) == 5) &&\n         ((is_ordinary || (bVar18 = Symbol::is_common_shndx(st_shndx), !bVar18)))) {\n        if (((to->super_Symbol).field_0x2a & 7) == 0) {\n          ppOVar15 = ((to->super_Symbol).u1_.output_segment)->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_finish;\n          Symbol::demangled_name(&to->super_Symbol);\n          aVar16 = _adjust_dyndef;\n          pcVar24 = (char *)gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    /* try { // try from 001ccf2f to 001ccf33 has its CatchHandler @ 001cd081 */\n          gold_warning(pcVar24,aVar16.object,ppOVar15);\n          if (_adjust_dyndef == (Object *)&local_2c) {\n            return;\n          }\n          operator_delete(_adjust_dyndef);\n          return;\n        }\n        goto LAB_001cd065;\n      }" if (parenthesized_expression "(((sym->p_->st_info & 0xf) == 5) &&\n         ((is_ordinary || (bVar18 = Symbol::is_common_shndx(st_shndx), !bVar18))))" ( (binary_expression "((sym->p_->st_info & 0xf) == 5) &&\n         ((is_ordinary || (bVar18 = Symbol::is_common_shndx(st_shndx), !bVar18)))" (parenthesized_expression "((sym->p_->st_info & 0xf) == 5)" ( (binary_expression "(sym->p_->st_info & 0xf) == 5" (parenthesized_expression "(sym->p_->st_info & 0xf)" ( (binary_expression "sym->p_->st_info & 0xf" (field_expression "sym->p_->st_info" (field_expression "sym->p_" identifier -> field_identifier) -> field_identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "((is_ordinary || (bVar18 = Symbol::is_common_shndx(st_shndx), !bVar18)))" ( (parenthesized_expression "(is_ordinary || (bVar18 = Symbol::is_common_shndx(st_shndx), !bVar18))" ( (binary_expression "is_ordinary || (bVar18 = Symbol::is_common_shndx(st_shndx), !bVar18)" identifier || (parenthesized_expression "(bVar18 = Symbol::is_common_shndx(st_shndx), !bVar18)" ( (ERROR "bVar18 = Symbol::" (assignment_expression "bVar18 = Symbol" identifier = identifier) : :) (comma_expression "is_common_shndx(st_shndx), !bVar18" (call_expression "is_common_shndx(st_shndx)" identifier (argument_list "(st_shndx)" ( identifier ))) , (unary_expression "!bVar18" ! identifier)) ))) )) ))) )) (compound_statement "{\n        if (((to->super_Symbol).field_0x2a & 7) == 0) {\n          ppOVar15 = ((to->super_Symbol).u1_.output_segment)->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_finish;\n          Symbol::demangled_name(&to->super_Symbol);\n          aVar16 = _adjust_dyndef;\n          pcVar24 = (char *)gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    /* try { // try from 001ccf2f to 001ccf33 has its CatchHandler @ 001cd081 */\n          gold_warning(pcVar24,aVar16.object,ppOVar15);\n          if (_adjust_dyndef == (Object *)&local_2c) {\n            return;\n          }\n          operator_delete(_adjust_dyndef);\n          return;\n        }\n        goto LAB_001cd065;\n      }" { (if_statement "if (((to->super_Symbol).field_0x2a & 7) == 0) {\n          ppOVar15 = ((to->super_Symbol).u1_.output_segment)->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_finish;\n          Symbol::demangled_name(&to->super_Symbol);\n          aVar16 = _adjust_dyndef;\n          pcVar24 = (char *)gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    /* try { // try from 001ccf2f to 001ccf33 has its CatchHandler @ 001cd081 */\n          gold_warning(pcVar24,aVar16.object,ppOVar15);\n          if (_adjust_dyndef == (Object *)&local_2c) {\n            return;\n          }\n          operator_delete(_adjust_dyndef);\n          return;\n        }" if (parenthesized_expression "(((to->super_Symbol).field_0x2a & 7) == 0)" ( (binary_expression "((to->super_Symbol).field_0x2a & 7) == 0" (parenthesized_expression "((to->super_Symbol).field_0x2a & 7)" ( (binary_expression "(to->super_Symbol).field_0x2a & 7" (field_expression "(to->super_Symbol).field_0x2a" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n          ppOVar15 = ((to->super_Symbol).u1_.output_segment)->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_finish;\n          Symbol::demangled_name(&to->super_Symbol);\n          aVar16 = _adjust_dyndef;\n          pcVar24 = (char *)gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");\n                    /* try { // try from 001ccf2f to 001ccf33 has its CatchHandler @ 001cd081 */\n          gold_warning(pcVar24,aVar16.object,ppOVar15);\n          if (_adjust_dyndef == (Object *)&local_2c) {\n            return;\n          }\n          operator_delete(_adjust_dyndef);\n          return;\n        }" { (expression_statement "ppOVar15 = ((to->super_Symbol).u1_.output_segment)->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_finish;" (field_expression "ppOVar15 = ((to->super_Symbol).u1_.output_segment)->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_finish" (field_expression "ppOVar15 = ((to->super_Symbol).u1_.output_segment)->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl" (binary_expression "ppOVar15 = ((to->super_Symbol).u1_.output_segment)->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "ppOVar15 = ((to->super_Symbol).u1_.output_segment)->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "ppOVar15 = ((to->super_Symbol).u1_.output_segment)->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std" (assignment_expression "ppOVar15 = ((to->super_Symbol).u1_.output_segment)->output_lists_[0].\n                     super__Vector_base<gold" identifier = (binary_expression "((to->super_Symbol).u1_.output_segment)->output_lists_[0].\n                     super__Vector_base<gold" (field_expression "((to->super_Symbol).u1_.output_segment)->output_lists_[0].\n                     super__Vector_base" (subscript_expression "((to->super_Symbol).u1_.output_segment)->output_lists_[0]" (field_expression "((to->super_Symbol).u1_.output_segment)->output_lists_" (parenthesized_expression "((to->super_Symbol).u1_.output_segment)" ( (field_expression "(to->super_Symbol).u1_.output_segment" (field_expression "(to->super_Symbol).u1_" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier) )) -> field_identifier) [ number_literal ]) . field_identifier) < identifier)) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (labeled_statement "Symbol::demangled_name(&to->super_Symbol);" statement_identifier : (ERROR ":" :) (expression_statement "demangled_name(&to->super_Symbol);" (call_expression "demangled_name(&to->super_Symbol)" identifier (argument_list "(&to->super_Symbol)" ( (pointer_expression "&to->super_Symbol" & (field_expression "to->super_Symbol" identifier -> field_identifier)) ))) ;)) (expression_statement "aVar16 = _adjust_dyndef;" (assignment_expression "aVar16 = _adjust_dyndef" identifier = identifier) ;) (expression_statement "pcVar24 = (char *)gettext("STT_COMMON symbol \'%s\' in %s is not in a common section");" (assignment_expression "pcVar24 = (char *)gettext("STT_COMMON symbol \'%s\' in %s is not in a common section")" identifier = (cast_expression "(char *)gettext("STT_COMMON symbol \'%s\' in %s is not in a common section")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("STT_COMMON symbol \'%s\' in %s is not in a common section")" identifier (argument_list "("STT_COMMON symbol \'%s\' in %s is not in a common section")" ( (string_literal ""STT_COMMON symbol \'%s\' in %s is not in a common section"" " string_content escape_sequence string_content escape_sequence string_content ") ))))) ;) comment (expression_statement "gold_warning(pcVar24,aVar16.object,ppOVar15);" (call_expression "gold_warning(pcVar24,aVar16.object,ppOVar15)" identifier (argument_list "(pcVar24,aVar16.object,ppOVar15)" ( identifier , (field_expression "aVar16.object" identifier . field_identifier) , identifier ))) ;) (if_statement "if (_adjust_dyndef == (Object *)&local_2c) {\n            return;\n          }" if (parenthesized_expression "(_adjust_dyndef == (Object *)&local_2c)" ( (binary_expression "_adjust_dyndef == (Object *)&local_2c" identifier == (cast_expression "(Object *)&local_2c" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_2c" & identifier))) )) (compound_statement "{\n            return;\n          }" { (return_statement "return;" return ;) })) (expression_statement "operator_delete(_adjust_dyndef);" (call_expression "operator_delete(_adjust_dyndef)" identifier (argument_list "(_adjust_dyndef)" ( identifier ))) ;) (return_statement "return;" return ;) })) (goto_statement "goto LAB_001cd065;" goto statement_identifier ;) })) (expression_statement "puVar1 = &(to->super_Symbol).field_0x2a;" (assignment_expression "puVar1 = &(to->super_Symbol).field_0x2a" identifier = (pointer_expression "&(to->super_Symbol).field_0x2a" & (field_expression "(to->super_Symbol).field_0x2a" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "*puVar1 = *puVar1 | 0x80;" (assignment_expression "*puVar1 = *puVar1 | 0x80" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 | 0x80" (pointer_expression "*puVar1" * identifier) | number_literal)) ;) (expression_statement "iVar20 = (*object->_vptr_Object[5])(object);" (assignment_expression "iVar20 = (*object->_vptr_Object[5])(object)" identifier = (call_expression "(*object->_vptr_Object[5])(object)" (parenthesized_expression "(*object->_vptr_Object[5])" ( (pointer_expression "*object->_vptr_Object[5]" * (subscript_expression "object->_vptr_Object[5]" (field_expression "object->_vptr_Object" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(object)" ( identifier )))) ;) }) (else_clause "else {\n      if ((st_shndx == 0) && (((byte)(to->super_Symbol).field_0x29 & 3) - 1 < 2)) {\n        return;\n      }\n      puVar1 = &(to->super_Symbol).field_0x2b;\n      *puVar1 = *puVar1 | 1;\n      iVar20 = (*object->_vptr_Object[5])(object);\n    }" else (compound_statement "{\n      if ((st_shndx == 0) && (((byte)(to->super_Symbol).field_0x29 & 3) - 1 < 2)) {\n        return;\n      }\n      puVar1 = &(to->super_Symbol).field_0x2b;\n      *puVar1 = *puVar1 | 1;\n      iVar20 = (*object->_vptr_Object[5])(object);\n    }" { (if_statement "if ((st_shndx == 0) && (((byte)(to->super_Symbol).field_0x29 & 3) - 1 < 2)) {\n        return;\n      }" if (parenthesized_expression "((st_shndx == 0) && (((byte)(to->super_Symbol).field_0x29 & 3) - 1 < 2))" ( (binary_expression "(st_shndx == 0) && (((byte)(to->super_Symbol).field_0x29 & 3) - 1 < 2)" (parenthesized_expression "(st_shndx == 0)" ( (binary_expression "st_shndx == 0" identifier == number_literal) )) && (parenthesized_expression "(((byte)(to->super_Symbol).field_0x29 & 3) - 1 < 2)" ( (binary_expression "((byte)(to->super_Symbol).field_0x29 & 3) - 1 < 2" (binary_expression "((byte)(to->super_Symbol).field_0x29 & 3) - 1" (parenthesized_expression "((byte)(to->super_Symbol).field_0x29 & 3)" ( (binary_expression "(byte)(to->super_Symbol).field_0x29 & 3" (field_expression "(byte)(to->super_Symbol).field_0x29" (call_expression "(byte)(to->super_Symbol)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) ))) . field_identifier) & number_literal) )) - number_literal) < number_literal) ))) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "puVar1 = &(to->super_Symbol).field_0x2b;" (assignment_expression "puVar1 = &(to->super_Symbol).field_0x2b" identifier = (pointer_expression "&(to->super_Symbol).field_0x2b" & (field_expression "(to->super_Symbol).field_0x2b" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "*puVar1 = *puVar1 | 1;" (assignment_expression "*puVar1 = *puVar1 | 1" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 | 1" (pointer_expression "*puVar1" * identifier) | number_literal)) ;) (expression_statement "iVar20 = (*object->_vptr_Object[5])(object);" (assignment_expression "iVar20 = (*object->_vptr_Object[5])(object)" identifier = (call_expression "(*object->_vptr_Object[5])(object)" (parenthesized_expression "(*object->_vptr_Object[5])" ( (pointer_expression "*object->_vptr_Object[5]" * (subscript_expression "object->_vptr_Object[5]" (field_expression "object->_vptr_Object" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(object)" ( identifier )))) ;) }))) (if_statement "if ((iVar20 == 0) && ((object->field_0x2c & 1) == 0)) {\n      puVar1 = &(to->super_Symbol).field_0x2b;\n      *puVar1 = *puVar1 | 0x40;\n    }" if (parenthesized_expression "((iVar20 == 0) && ((object->field_0x2c & 1) == 0))" ( (binary_expression "(iVar20 == 0) && ((object->field_0x2c & 1) == 0)" (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) && (parenthesized_expression "((object->field_0x2c & 1) == 0)" ( (binary_expression "(object->field_0x2c & 1) == 0" (parenthesized_expression "(object->field_0x2c & 1)" ( (binary_expression "object->field_0x2c & 1" (field_expression "object->field_0x2c" identifier -> field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n      puVar1 = &(to->super_Symbol).field_0x2b;\n      *puVar1 = *puVar1 | 0x40;\n    }" { (expression_statement "puVar1 = &(to->super_Symbol).field_0x2b;" (assignment_expression "puVar1 = &(to->super_Symbol).field_0x2b" identifier = (pointer_expression "&(to->super_Symbol).field_0x2b" & (field_expression "(to->super_Symbol).field_0x2b" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "*puVar1 = *puVar1 | 0x40;" (assignment_expression "*puVar1 = *puVar1 | 0x40" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 | 0x40" (pointer_expression "*puVar1" * identifier) | number_literal)) ;) })) (if_statement "if ((((to->super_Symbol).field_0x2a & 7) == 0) &&\n       (pOVar5 = (to->super_Symbol).u1_.object, iVar20 = (*pOVar5->_vptr_Object[5])(pOVar5),\n       iVar20 != 0)) {\n      pGVar21 = parameters->options_;\n      if (pGVar21 == (General_options *)0x0) goto LAB_001ccb98;\n      if (pGVar21->plugins_->in_replacement_phase_ != false) {\n        if ((((((to->super_Symbol).field_0x2a & 7) != 0) ||\n             (((to->super_Symbol).field_0x2b & 0x20) != 0)) ||\n            (bVar18 = Symbol::is_common_shndx((to->super_Symbol).u2_.shndx), !bVar18)) ||\n           ((is_ordinary || (bVar18 = Symbol::is_common_shndx(st_shndx), !bVar18)))) {\n          override<64,_false>(this,to,sym,st_shndx,is_ordinary,object,version);\n          return;\n        }\n        uVar3 = *(uint *)((int)&to->symsize_ + 4);\n        uVar6 = (uint)to->symsize_;\n        uVar23 = *(uint *)((int)&to->value_ + 4);\n        uVar8 = (uint)to->value_;\n        override<64,_false>(this,to,sym,st_shndx,false,object,version);\n        uVar9 = *(uint *)((int)&to->symsize_ + 4);\n        if (uVar9 < uVar3 || uVar9 - uVar3 < (uint)((uint)to->symsize_ < uVar6)) {\n          *(uint *)&to->symsize_ = uVar6;\n          *(uint *)((int)&to->symsize_ + 4) = uVar3;\n        }\n        uVar3 = *(uint *)((int)&to->value_ + 4);\n        if (uVar23 <= uVar3 && (uint)((uint)to->value_ < uVar8) <= uVar3 - uVar23) {\n          return;\n        }\n        *(uint *)&to->value_ = uVar8;\n        *(uint *)((int)&to->value_ + 4) = uVar23;\n        return;\n      }\n    }\n    else {\n      pGVar21 = parameters->options_;\n      if (pGVar21 == (General_options *)0x0) goto LAB_001ccb98;\n    }" if (parenthesized_expression "((((to->super_Symbol).field_0x2a & 7) == 0) &&\n       (pOVar5 = (to->super_Symbol).u1_.object, iVar20 = (*pOVar5->_vptr_Object[5])(pOVar5),\n       iVar20 != 0))" ( (binary_expression "(((to->super_Symbol).field_0x2a & 7) == 0) &&\n       (pOVar5 = (to->super_Symbol).u1_.object, iVar20 = (*pOVar5->_vptr_Object[5])(pOVar5),\n       iVar20 != 0)" (parenthesized_expression "(((to->super_Symbol).field_0x2a & 7) == 0)" ( (binary_expression "((to->super_Symbol).field_0x2a & 7) == 0" (parenthesized_expression "((to->super_Symbol).field_0x2a & 7)" ( (binary_expression "(to->super_Symbol).field_0x2a & 7" (field_expression "(to->super_Symbol).field_0x2a" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "(pOVar5 = (to->super_Symbol).u1_.object, iVar20 = (*pOVar5->_vptr_Object[5])(pOVar5),\n       iVar20 != 0)" ( (comma_expression "pOVar5 = (to->super_Symbol).u1_.object, iVar20 = (*pOVar5->_vptr_Object[5])(pOVar5),\n       iVar20 != 0" (assignment_expression "pOVar5 = (to->super_Symbol).u1_.object" identifier = (field_expression "(to->super_Symbol).u1_.object" (field_expression "(to->super_Symbol).u1_" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier)) , (comma_expression "iVar20 = (*pOVar5->_vptr_Object[5])(pOVar5),\n       iVar20 != 0" (assignment_expression "iVar20 = (*pOVar5->_vptr_Object[5])(pOVar5)" identifier = (call_expression "(*pOVar5->_vptr_Object[5])(pOVar5)" (parenthesized_expression "(*pOVar5->_vptr_Object[5])" ( (pointer_expression "*pOVar5->_vptr_Object[5]" * (subscript_expression "pOVar5->_vptr_Object[5]" (field_expression "pOVar5->_vptr_Object" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(pOVar5)" ( identifier )))) , (binary_expression "iVar20 != 0" identifier != number_literal))) ))) )) (compound_statement "{\n      pGVar21 = parameters->options_;\n      if (pGVar21 == (General_options *)0x0) goto LAB_001ccb98;\n      if (pGVar21->plugins_->in_replacement_phase_ != false) {\n        if ((((((to->super_Symbol).field_0x2a & 7) != 0) ||\n             (((to->super_Symbol).field_0x2b & 0x20) != 0)) ||\n            (bVar18 = Symbol::is_common_shndx((to->super_Symbol).u2_.shndx), !bVar18)) ||\n           ((is_ordinary || (bVar18 = Symbol::is_common_shndx(st_shndx), !bVar18)))) {\n          override<64,_false>(this,to,sym,st_shndx,is_ordinary,object,version);\n          return;\n        }\n        uVar3 = *(uint *)((int)&to->symsize_ + 4);\n        uVar6 = (uint)to->symsize_;\n        uVar23 = *(uint *)((int)&to->value_ + 4);\n        uVar8 = (uint)to->value_;\n        override<64,_false>(this,to,sym,st_shndx,false,object,version);\n        uVar9 = *(uint *)((int)&to->symsize_ + 4);\n        if (uVar9 < uVar3 || uVar9 - uVar3 < (uint)((uint)to->symsize_ < uVar6)) {\n          *(uint *)&to->symsize_ = uVar6;\n          *(uint *)((int)&to->symsize_ + 4) = uVar3;\n        }\n        uVar3 = *(uint *)((int)&to->value_ + 4);\n        if (uVar23 <= uVar3 && (uint)((uint)to->value_ < uVar8) <= uVar3 - uVar23) {\n          return;\n        }\n        *(uint *)&to->value_ = uVar8;\n        *(uint *)((int)&to->value_ + 4) = uVar23;\n        return;\n      }\n    }" { (expression_statement "pGVar21 = parameters->options_;" (assignment_expression "pGVar21 = parameters->options_" identifier = (field_expression "parameters->options_" identifier -> field_identifier)) ;) (if_statement "if (pGVar21 == (General_options *)0x0) goto LAB_001ccb98;" if (parenthesized_expression "(pGVar21 == (General_options *)0x0)" ( (binary_expression "pGVar21 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001ccb98;" goto statement_identifier ;)) (if_statement "if (pGVar21->plugins_->in_replacement_phase_ != false) {\n        if ((((((to->super_Symbol).field_0x2a & 7) != 0) ||\n             (((to->super_Symbol).field_0x2b & 0x20) != 0)) ||\n            (bVar18 = Symbol::is_common_shndx((to->super_Symbol).u2_.shndx), !bVar18)) ||\n           ((is_ordinary || (bVar18 = Symbol::is_common_shndx(st_shndx), !bVar18)))) {\n          override<64,_false>(this,to,sym,st_shndx,is_ordinary,object,version);\n          return;\n        }\n        uVar3 = *(uint *)((int)&to->symsize_ + 4);\n        uVar6 = (uint)to->symsize_;\n        uVar23 = *(uint *)((int)&to->value_ + 4);\n        uVar8 = (uint)to->value_;\n        override<64,_false>(this,to,sym,st_shndx,false,object,version);\n        uVar9 = *(uint *)((int)&to->symsize_ + 4);\n        if (uVar9 < uVar3 || uVar9 - uVar3 < (uint)((uint)to->symsize_ < uVar6)) {\n          *(uint *)&to->symsize_ = uVar6;\n          *(uint *)((int)&to->symsize_ + 4) = uVar3;\n        }\n        uVar3 = *(uint *)((int)&to->value_ + 4);\n        if (uVar23 <= uVar3 && (uint)((uint)to->value_ < uVar8) <= uVar3 - uVar23) {\n          return;\n        }\n        *(uint *)&to->value_ = uVar8;\n        *(uint *)((int)&to->value_ + 4) = uVar23;\n        return;\n      }" if (parenthesized_expression "(pGVar21->plugins_->in_replacement_phase_ != false)" ( (binary_expression "pGVar21->plugins_->in_replacement_phase_ != false" (field_expression "pGVar21->plugins_->in_replacement_phase_" (field_expression "pGVar21->plugins_" identifier -> field_identifier) -> field_identifier) != false) )) (compound_statement "{\n        if ((((((to->super_Symbol).field_0x2a & 7) != 0) ||\n             (((to->super_Symbol).field_0x2b & 0x20) != 0)) ||\n            (bVar18 = Symbol::is_common_shndx((to->super_Symbol).u2_.shndx), !bVar18)) ||\n           ((is_ordinary || (bVar18 = Symbol::is_common_shndx(st_shndx), !bVar18)))) {\n          override<64,_false>(this,to,sym,st_shndx,is_ordinary,object,version);\n          return;\n        }\n        uVar3 = *(uint *)((int)&to->symsize_ + 4);\n        uVar6 = (uint)to->symsize_;\n        uVar23 = *(uint *)((int)&to->value_ + 4);\n        uVar8 = (uint)to->value_;\n        override<64,_false>(this,to,sym,st_shndx,false,object,version);\n        uVar9 = *(uint *)((int)&to->symsize_ + 4);\n        if (uVar9 < uVar3 || uVar9 - uVar3 < (uint)((uint)to->symsize_ < uVar6)) {\n          *(uint *)&to->symsize_ = uVar6;\n          *(uint *)((int)&to->symsize_ + 4) = uVar3;\n        }\n        uVar3 = *(uint *)((int)&to->value_ + 4);\n        if (uVar23 <= uVar3 && (uint)((uint)to->value_ < uVar8) <= uVar3 - uVar23) {\n          return;\n        }\n        *(uint *)&to->value_ = uVar8;\n        *(uint *)((int)&to->value_ + 4) = uVar23;\n        return;\n      }" { (if_statement "if ((((((to->super_Symbol).field_0x2a & 7) != 0) ||\n             (((to->super_Symbol).field_0x2b & 0x20) != 0)) ||\n            (bVar18 = Symbol::is_common_shndx((to->super_Symbol).u2_.shndx), !bVar18)) ||\n           ((is_ordinary || (bVar18 = Symbol::is_common_shndx(st_shndx), !bVar18)))) {\n          override<64,_false>(this,to,sym,st_shndx,is_ordinary,object,version);\n          return;\n        }" if (parenthesized_expression "((((((to->super_Symbol).field_0x2a & 7) != 0) ||\n             (((to->super_Symbol).field_0x2b & 0x20) != 0)) ||\n            (bVar18 = Symbol::is_common_shndx((to->super_Symbol).u2_.shndx), !bVar18)) ||\n           ((is_ordinary || (bVar18 = Symbol::is_common_shndx(st_shndx), !bVar18))))" ( (binary_expression "(((((to->super_Symbol).field_0x2a & 7) != 0) ||\n             (((to->super_Symbol).field_0x2b & 0x20) != 0)) ||\n            (bVar18 = Symbol::is_common_shndx((to->super_Symbol).u2_.shndx), !bVar18)) ||\n           ((is_ordinary || (bVar18 = Symbol::is_common_shndx(st_shndx), !bVar18)))" (parenthesized_expression "(((((to->super_Symbol).field_0x2a & 7) != 0) ||\n             (((to->super_Symbol).field_0x2b & 0x20) != 0)) ||\n            (bVar18 = Symbol::is_common_shndx((to->super_Symbol).u2_.shndx), !bVar18))" ( (binary_expression "((((to->super_Symbol).field_0x2a & 7) != 0) ||\n             (((to->super_Symbol).field_0x2b & 0x20) != 0)) ||\n            (bVar18 = Symbol::is_common_shndx((to->super_Symbol).u2_.shndx), !bVar18)" (parenthesized_expression "((((to->super_Symbol).field_0x2a & 7) != 0) ||\n             (((to->super_Symbol).field_0x2b & 0x20) != 0))" ( (binary_expression "(((to->super_Symbol).field_0x2a & 7) != 0) ||\n             (((to->super_Symbol).field_0x2b & 0x20) != 0)" (parenthesized_expression "(((to->super_Symbol).field_0x2a & 7) != 0)" ( (binary_expression "((to->super_Symbol).field_0x2a & 7) != 0" (parenthesized_expression "((to->super_Symbol).field_0x2a & 7)" ( (binary_expression "(to->super_Symbol).field_0x2a & 7" (field_expression "(to->super_Symbol).field_0x2a" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) )) || (parenthesized_expression "(((to->super_Symbol).field_0x2b & 0x20) != 0)" ( (binary_expression "((to->super_Symbol).field_0x2b & 0x20) != 0" (parenthesized_expression "((to->super_Symbol).field_0x2b & 0x20)" ( (binary_expression "(to->super_Symbol).field_0x2b & 0x20" (field_expression "(to->super_Symbol).field_0x2b" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "(bVar18 = Symbol::is_common_shndx((to->super_Symbol).u2_.shndx), !bVar18)" ( (ERROR "bVar18 = Symbol::" (assignment_expression "bVar18 = Symbol" identifier = identifier) : :) (comma_expression "is_common_shndx((to->super_Symbol).u2_.shndx), !bVar18" (call_expression "is_common_shndx((to->super_Symbol).u2_.shndx)" identifier (argument_list "((to->super_Symbol).u2_.shndx)" ( (field_expression "(to->super_Symbol).u2_.shndx" (field_expression "(to->super_Symbol).u2_" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier) ))) , (unary_expression "!bVar18" ! identifier)) ))) )) || (parenthesized_expression "((is_ordinary || (bVar18 = Symbol::is_common_shndx(st_shndx), !bVar18)))" ( (parenthesized_expression "(is_ordinary || (bVar18 = Symbol::is_common_shndx(st_shndx), !bVar18))" ( (binary_expression "is_ordinary || (bVar18 = Symbol::is_common_shndx(st_shndx), !bVar18)" identifier || (parenthesized_expression "(bVar18 = Symbol::is_common_shndx(st_shndx), !bVar18)" ( (ERROR "bVar18 = Symbol::" (assignment_expression "bVar18 = Symbol" identifier = identifier) : :) (comma_expression "is_common_shndx(st_shndx), !bVar18" (call_expression "is_common_shndx(st_shndx)" identifier (argument_list "(st_shndx)" ( identifier ))) , (unary_expression "!bVar18" ! identifier)) ))) )) ))) )) (compound_statement "{\n          override<64,_false>(this,to,sym,st_shndx,is_ordinary,object,version);\n          return;\n        }" { (expression_statement "override<64,_false>(this,to,sym,st_shndx,is_ordinary,object,version);" (comma_expression "override<64,_false>(this,to,sym,st_shndx,is_ordinary,object,version)" (binary_expression "override<64" identifier < number_literal) , (binary_expression "_false>(this,to,sym,st_shndx,is_ordinary,object,version)" identifier > (parenthesized_expression "(this,to,sym,st_shndx,is_ordinary,object,version)" ( (comma_expression "this,to,sym,st_shndx,is_ordinary,object,version" identifier , (comma_expression "to,sym,st_shndx,is_ordinary,object,version" identifier , (comma_expression "sym,st_shndx,is_ordinary,object,version" identifier , (comma_expression "st_shndx,is_ordinary,object,version" identifier , (comma_expression "is_ordinary,object,version" identifier , (comma_expression "object,version" identifier , identifier)))))) )))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar3 = *(uint *)((int)&to->symsize_ + 4);" (assignment_expression "uVar3 = *(uint *)((int)&to->symsize_ + 4)" identifier = (pointer_expression "*(uint *)((int)&to->symsize_ + 4)" * (cast_expression "(uint *)((int)&to->symsize_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&to->symsize_ + 4)" ( (binary_expression "(int)&to->symsize_ + 4" (cast_expression "(int)&to->symsize_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&to->symsize_" & (field_expression "to->symsize_" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar6 = (uint)to->symsize_;" (assignment_expression "uVar6 = (uint)to->symsize_" identifier = (cast_expression "(uint)to->symsize_" ( (type_descriptor "uint" type_identifier) ) (field_expression "to->symsize_" identifier -> field_identifier))) ;) (expression_statement "uVar23 = *(uint *)((int)&to->value_ + 4);" (assignment_expression "uVar23 = *(uint *)((int)&to->value_ + 4)" identifier = (pointer_expression "*(uint *)((int)&to->value_ + 4)" * (cast_expression "(uint *)((int)&to->value_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&to->value_ + 4)" ( (binary_expression "(int)&to->value_ + 4" (cast_expression "(int)&to->value_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&to->value_" & (field_expression "to->value_" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar8 = (uint)to->value_;" (assignment_expression "uVar8 = (uint)to->value_" identifier = (cast_expression "(uint)to->value_" ( (type_descriptor "uint" type_identifier) ) (field_expression "to->value_" identifier -> field_identifier))) ;) (expression_statement "override<64,_false>(this,to,sym,st_shndx,false,object,version);" (comma_expression "override<64,_false>(this,to,sym,st_shndx,false,object,version)" (binary_expression "override<64" identifier < number_literal) , (binary_expression "_false>(this,to,sym,st_shndx,false,object,version)" identifier > (parenthesized_expression "(this,to,sym,st_shndx,false,object,version)" ( (comma_expression "this,to,sym,st_shndx,false,object,version" identifier , (comma_expression "to,sym,st_shndx,false,object,version" identifier , (comma_expression "sym,st_shndx,false,object,version" identifier , (comma_expression "st_shndx,false,object,version" identifier , (comma_expression "false,object,version" false , (comma_expression "object,version" identifier , identifier)))))) )))) ;) (expression_statement "uVar9 = *(uint *)((int)&to->symsize_ + 4);" (assignment_expression "uVar9 = *(uint *)((int)&to->symsize_ + 4)" identifier = (pointer_expression "*(uint *)((int)&to->symsize_ + 4)" * (cast_expression "(uint *)((int)&to->symsize_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&to->symsize_ + 4)" ( (binary_expression "(int)&to->symsize_ + 4" (cast_expression "(int)&to->symsize_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&to->symsize_" & (field_expression "to->symsize_" identifier -> field_identifier))) + number_literal) ))))) ;) (if_statement "if (uVar9 < uVar3 || uVar9 - uVar3 < (uint)((uint)to->symsize_ < uVar6)) {\n          *(uint *)&to->symsize_ = uVar6;\n          *(uint *)((int)&to->symsize_ + 4) = uVar3;\n        }" if (parenthesized_expression "(uVar9 < uVar3 || uVar9 - uVar3 < (uint)((uint)to->symsize_ < uVar6))" ( (binary_expression "uVar9 < uVar3 || uVar9 - uVar3 < (uint)((uint)to->symsize_ < uVar6)" (binary_expression "uVar9 < uVar3" identifier < identifier) || (binary_expression "uVar9 - uVar3 < (uint)((uint)to->symsize_ < uVar6)" (binary_expression "uVar9 - uVar3" identifier - identifier) < (call_expression "(uint)((uint)to->symsize_ < uVar6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)to->symsize_ < uVar6)" ( (binary_expression "(uint)to->symsize_ < uVar6" (cast_expression "(uint)to->symsize_" ( (type_descriptor "uint" type_identifier) ) (field_expression "to->symsize_" identifier -> field_identifier)) < identifier) ))))) )) (compound_statement "{\n          *(uint *)&to->symsize_ = uVar6;\n          *(uint *)((int)&to->symsize_ + 4) = uVar3;\n        }" { (expression_statement "*(uint *)&to->symsize_ = uVar6;" (assignment_expression "*(uint *)&to->symsize_ = uVar6" (pointer_expression "*(uint *)&to->symsize_" * (cast_expression "(uint *)&to->symsize_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&to->symsize_" & (field_expression "to->symsize_" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(uint *)((int)&to->symsize_ + 4) = uVar3;" (assignment_expression "*(uint *)((int)&to->symsize_ + 4) = uVar3" (pointer_expression "*(uint *)((int)&to->symsize_ + 4)" * (cast_expression "(uint *)((int)&to->symsize_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&to->symsize_ + 4)" ( (binary_expression "(int)&to->symsize_ + 4" (cast_expression "(int)&to->symsize_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&to->symsize_" & (field_expression "to->symsize_" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) })) (expression_statement "uVar3 = *(uint *)((int)&to->value_ + 4);" (assignment_expression "uVar3 = *(uint *)((int)&to->value_ + 4)" identifier = (pointer_expression "*(uint *)((int)&to->value_ + 4)" * (cast_expression "(uint *)((int)&to->value_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&to->value_ + 4)" ( (binary_expression "(int)&to->value_ + 4" (cast_expression "(int)&to->value_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&to->value_" & (field_expression "to->value_" identifier -> field_identifier))) + number_literal) ))))) ;) (if_statement "if (uVar23 <= uVar3 && (uint)((uint)to->value_ < uVar8) <= uVar3 - uVar23) {\n          return;\n        }" if (parenthesized_expression "(uVar23 <= uVar3 && (uint)((uint)to->value_ < uVar8) <= uVar3 - uVar23)" ( (binary_expression "uVar23 <= uVar3 && (uint)((uint)to->value_ < uVar8) <= uVar3 - uVar23" (binary_expression "uVar23 <= uVar3" identifier <= identifier) && (binary_expression "(uint)((uint)to->value_ < uVar8) <= uVar3 - uVar23" (call_expression "(uint)((uint)to->value_ < uVar8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)to->value_ < uVar8)" ( (binary_expression "(uint)to->value_ < uVar8" (cast_expression "(uint)to->value_" ( (type_descriptor "uint" type_identifier) ) (field_expression "to->value_" identifier -> field_identifier)) < identifier) ))) <= (binary_expression "uVar3 - uVar23" identifier - identifier))) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (expression_statement "*(uint *)&to->value_ = uVar8;" (assignment_expression "*(uint *)&to->value_ = uVar8" (pointer_expression "*(uint *)&to->value_" * (cast_expression "(uint *)&to->value_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&to->value_" & (field_expression "to->value_" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(uint *)((int)&to->value_ + 4) = uVar23;" (assignment_expression "*(uint *)((int)&to->value_ + 4) = uVar23" (pointer_expression "*(uint *)((int)&to->value_ + 4)" * (cast_expression "(uint *)((int)&to->value_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&to->value_ + 4)" ( (binary_expression "(int)&to->value_ + 4" (cast_expression "(int)&to->value_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&to->value_" & (field_expression "to->value_" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n      pGVar21 = parameters->options_;\n      if (pGVar21 == (General_options *)0x0) goto LAB_001ccb98;\n    }" else (compound_statement "{\n      pGVar21 = parameters->options_;\n      if (pGVar21 == (General_options *)0x0) goto LAB_001ccb98;\n    }" { (expression_statement "pGVar21 = parameters->options_;" (assignment_expression "pGVar21 = parameters->options_" identifier = (field_expression "parameters->options_" identifier -> field_identifier)) ;) (if_statement "if (pGVar21 == (General_options *)0x0) goto LAB_001ccb98;" if (parenthesized_expression "(pGVar21 == (General_options *)0x0)" ( (binary_expression "pGVar21 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001ccb98;" goto statement_identifier ;)) }))) (if_statement "if ((pGVar21->detect_odr_violations_).value != false) {\n      pSVar7 = sym->p_;\n      if ((((int)(uint)pSVar7->st_info >> 4 == 2) || ((byte)(to->super_Symbol).field_0x28 >> 4 == 2)\n          ) && (((local_64 & orig_st_shndx != 0) != 0 && (uVar3 != 0)))) {\n        iVar20 = (int)pSVar7->st_size;\n        iVar11 = *(int *)((int)&pSVar7->st_size + 4);\n        if (iVar11 != 0 || iVar20 != 0) {\n          iVar12 = (int)to->symsize_;\n          iVar13 = *(int *)((int)&to->symsize_ + 4);\n          if ((iVar13 != 0 || iVar12 != 0) &&\n             (((pSVar7->st_info & 0xf) != ((to->super_Symbol).field_0x28 & 0xf) ||\n              (iVar20 != iVar12 || iVar11 != iVar13)))) {\n            p_Var14 = (_Hash_node_base *)(to->super_Symbol).name_;\n            if ((*(char *)&p_Var14->_M_nxt == '_') && (*(char *)((int)&p_Var14->_M_nxt + 1) == 'Z'))\n            {\n              local_3c = *(__bucket_type *)&pSVar7->st_value;\n              _adjust_common_sizes = object;\n              local_40 = orig_st_shndx;\n              local_38 = *(undefined4 *)((int)&pSVar7->st_value + 4);\n              if (((to->super_Symbol).field_0x2a & 7) != 0) {\nLAB_001cd065:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n              }\n              _adjust_dyndef = (to->super_Symbol).u1_;\n              local_2c = *(_func_int_varargs ***)&to->value_;\n              local_28._M_p = *(pointer *)((int)&to->value_ + 4);\n              pSVar26 = this;\n              pSVar27 = this;\n              local_54._8_4_ = p_Var14;\n              local_30 = uVar3;\n              __node_gen._M_h =\n                   (__hashtable_alloc *)\n                   std::__detail::\n                   _Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8));\n              std::\n              _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::\n              _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                        ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_common_sizes,&__node_gen,0,1,pSVar26,\n                         pSVar27);\n              local_54._8_4_ = (to->super_Symbol).name_;\n              __node_gen._M_h =\n                   (__hashtable_alloc *)\n                   std::__detail::\n                   _Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8));\n              std::\n              _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::\n              _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                        ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_dyndef,&__node_gen,0,1);\n            }\n          }\n        }\n      }\n    }" if (parenthesized_expression "((pGVar21->detect_odr_violations_).value != false)" ( (binary_expression "(pGVar21->detect_odr_violations_).value != false" (field_expression "(pGVar21->detect_odr_violations_).value" (parenthesized_expression "(pGVar21->detect_odr_violations_)" ( (field_expression "pGVar21->detect_odr_violations_" identifier -> field_identifier) )) . field_identifier) != false) )) (compound_statement "{\n      pSVar7 = sym->p_;\n      if ((((int)(uint)pSVar7->st_info >> 4 == 2) || ((byte)(to->super_Symbol).field_0x28 >> 4 == 2)\n          ) && (((local_64 & orig_st_shndx != 0) != 0 && (uVar3 != 0)))) {\n        iVar20 = (int)pSVar7->st_size;\n        iVar11 = *(int *)((int)&pSVar7->st_size + 4);\n        if (iVar11 != 0 || iVar20 != 0) {\n          iVar12 = (int)to->symsize_;\n          iVar13 = *(int *)((int)&to->symsize_ + 4);\n          if ((iVar13 != 0 || iVar12 != 0) &&\n             (((pSVar7->st_info & 0xf) != ((to->super_Symbol).field_0x28 & 0xf) ||\n              (iVar20 != iVar12 || iVar11 != iVar13)))) {\n            p_Var14 = (_Hash_node_base *)(to->super_Symbol).name_;\n            if ((*(char *)&p_Var14->_M_nxt == '_') && (*(char *)((int)&p_Var14->_M_nxt + 1) == 'Z'))\n            {\n              local_3c = *(__bucket_type *)&pSVar7->st_value;\n              _adjust_common_sizes = object;\n              local_40 = orig_st_shndx;\n              local_38 = *(undefined4 *)((int)&pSVar7->st_value + 4);\n              if (((to->super_Symbol).field_0x2a & 7) != 0) {\nLAB_001cd065:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n              }\n              _adjust_dyndef = (to->super_Symbol).u1_;\n              local_2c = *(_func_int_varargs ***)&to->value_;\n              local_28._M_p = *(pointer *)((int)&to->value_ + 4);\n              pSVar26 = this;\n              pSVar27 = this;\n              local_54._8_4_ = p_Var14;\n              local_30 = uVar3;\n              __node_gen._M_h =\n                   (__hashtable_alloc *)\n                   std::__detail::\n                   _Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8));\n              std::\n              _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::\n              _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                        ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_common_sizes,&__node_gen,0,1,pSVar26,\n                         pSVar27);\n              local_54._8_4_ = (to->super_Symbol).name_;\n              __node_gen._M_h =\n                   (__hashtable_alloc *)\n                   std::__detail::\n                   _Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8));\n              std::\n              _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::\n              _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                        ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_dyndef,&__node_gen,0,1);\n            }\n          }\n        }\n      }\n    }" { (expression_statement "pSVar7 = sym->p_;" (assignment_expression "pSVar7 = sym->p_" identifier = (field_expression "sym->p_" identifier -> field_identifier)) ;) (if_statement "if ((((int)(uint)pSVar7->st_info >> 4 == 2) || ((byte)(to->super_Symbol).field_0x28 >> 4 == 2)\n          ) && (((local_64 & orig_st_shndx != 0) != 0 && (uVar3 != 0)))) {\n        iVar20 = (int)pSVar7->st_size;\n        iVar11 = *(int *)((int)&pSVar7->st_size + 4);\n        if (iVar11 != 0 || iVar20 != 0) {\n          iVar12 = (int)to->symsize_;\n          iVar13 = *(int *)((int)&to->symsize_ + 4);\n          if ((iVar13 != 0 || iVar12 != 0) &&\n             (((pSVar7->st_info & 0xf) != ((to->super_Symbol).field_0x28 & 0xf) ||\n              (iVar20 != iVar12 || iVar11 != iVar13)))) {\n            p_Var14 = (_Hash_node_base *)(to->super_Symbol).name_;\n            if ((*(char *)&p_Var14->_M_nxt == '_') && (*(char *)((int)&p_Var14->_M_nxt + 1) == 'Z'))\n            {\n              local_3c = *(__bucket_type *)&pSVar7->st_value;\n              _adjust_common_sizes = object;\n              local_40 = orig_st_shndx;\n              local_38 = *(undefined4 *)((int)&pSVar7->st_value + 4);\n              if (((to->super_Symbol).field_0x2a & 7) != 0) {\nLAB_001cd065:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n              }\n              _adjust_dyndef = (to->super_Symbol).u1_;\n              local_2c = *(_func_int_varargs ***)&to->value_;\n              local_28._M_p = *(pointer *)((int)&to->value_ + 4);\n              pSVar26 = this;\n              pSVar27 = this;\n              local_54._8_4_ = p_Var14;\n              local_30 = uVar3;\n              __node_gen._M_h =\n                   (__hashtable_alloc *)\n                   std::__detail::\n                   _Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8));\n              std::\n              _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::\n              _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                        ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_common_sizes,&__node_gen,0,1,pSVar26,\n                         pSVar27);\n              local_54._8_4_ = (to->super_Symbol).name_;\n              __node_gen._M_h =\n                   (__hashtable_alloc *)\n                   std::__detail::\n                   _Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8));\n              std::\n              _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::\n              _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                        ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_dyndef,&__node_gen,0,1);\n            }\n          }\n        }\n      }" if (parenthesized_expression "((((int)(uint)pSVar7->st_info >> 4 == 2) || ((byte)(to->super_Symbol).field_0x28 >> 4 == 2)\n          ) && (((local_64 & orig_st_shndx != 0) != 0 && (uVar3 != 0))))" ( (binary_expression "(((int)(uint)pSVar7->st_info >> 4 == 2) || ((byte)(to->super_Symbol).field_0x28 >> 4 == 2)\n          ) && (((local_64 & orig_st_shndx != 0) != 0 && (uVar3 != 0)))" (parenthesized_expression "(((int)(uint)pSVar7->st_info >> 4 == 2) || ((byte)(to->super_Symbol).field_0x28 >> 4 == 2)\n          )" ( (binary_expression "((int)(uint)pSVar7->st_info >> 4 == 2) || ((byte)(to->super_Symbol).field_0x28 >> 4 == 2)" (parenthesized_expression "((int)(uint)pSVar7->st_info >> 4 == 2)" ( (binary_expression "(int)(uint)pSVar7->st_info >> 4 == 2" (binary_expression "(int)(uint)pSVar7->st_info >> 4" (cast_expression "(int)(uint)pSVar7->st_info" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)pSVar7->st_info" ( (type_descriptor "uint" type_identifier) ) (field_expression "pSVar7->st_info" identifier -> field_identifier))) >> number_literal) == number_literal) )) || (parenthesized_expression "((byte)(to->super_Symbol).field_0x28 >> 4 == 2)" ( (binary_expression "(byte)(to->super_Symbol).field_0x28 >> 4 == 2" (binary_expression "(byte)(to->super_Symbol).field_0x28 >> 4" (field_expression "(byte)(to->super_Symbol).field_0x28" (call_expression "(byte)(to->super_Symbol)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) ))) . field_identifier) >> number_literal) == number_literal) ))) )) && (parenthesized_expression "(((local_64 & orig_st_shndx != 0) != 0 && (uVar3 != 0)))" ( (parenthesized_expression "((local_64 & orig_st_shndx != 0) != 0 && (uVar3 != 0))" ( (binary_expression "(local_64 & orig_st_shndx != 0) != 0 && (uVar3 != 0)" (binary_expression "(local_64 & orig_st_shndx != 0) != 0" (parenthesized_expression "(local_64 & orig_st_shndx != 0)" ( (binary_expression "local_64 & orig_st_shndx != 0" identifier & (binary_expression "orig_st_shndx != 0" identifier != number_literal)) )) != number_literal) && (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) ))) )) ))) )) (compound_statement "{\n        iVar20 = (int)pSVar7->st_size;\n        iVar11 = *(int *)((int)&pSVar7->st_size + 4);\n        if (iVar11 != 0 || iVar20 != 0) {\n          iVar12 = (int)to->symsize_;\n          iVar13 = *(int *)((int)&to->symsize_ + 4);\n          if ((iVar13 != 0 || iVar12 != 0) &&\n             (((pSVar7->st_info & 0xf) != ((to->super_Symbol).field_0x28 & 0xf) ||\n              (iVar20 != iVar12 || iVar11 != iVar13)))) {\n            p_Var14 = (_Hash_node_base *)(to->super_Symbol).name_;\n            if ((*(char *)&p_Var14->_M_nxt == '_') && (*(char *)((int)&p_Var14->_M_nxt + 1) == 'Z'))\n            {\n              local_3c = *(__bucket_type *)&pSVar7->st_value;\n              _adjust_common_sizes = object;\n              local_40 = orig_st_shndx;\n              local_38 = *(undefined4 *)((int)&pSVar7->st_value + 4);\n              if (((to->super_Symbol).field_0x2a & 7) != 0) {\nLAB_001cd065:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n              }\n              _adjust_dyndef = (to->super_Symbol).u1_;\n              local_2c = *(_func_int_varargs ***)&to->value_;\n              local_28._M_p = *(pointer *)((int)&to->value_ + 4);\n              pSVar26 = this;\n              pSVar27 = this;\n              local_54._8_4_ = p_Var14;\n              local_30 = uVar3;\n              __node_gen._M_h =\n                   (__hashtable_alloc *)\n                   std::__detail::\n                   _Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8));\n              std::\n              _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::\n              _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                        ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_common_sizes,&__node_gen,0,1,pSVar26,\n                         pSVar27);\n              local_54._8_4_ = (to->super_Symbol).name_;\n              __node_gen._M_h =\n                   (__hashtable_alloc *)\n                   std::__detail::\n                   _Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8));\n              std::\n              _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::\n              _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                        ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_dyndef,&__node_gen,0,1);\n            }\n          }\n        }\n      }" { (expression_statement "iVar20 = (int)pSVar7->st_size;" (assignment_expression "iVar20 = (int)pSVar7->st_size" identifier = (cast_expression "(int)pSVar7->st_size" ( (type_descriptor "int" primitive_type) ) (field_expression "pSVar7->st_size" identifier -> field_identifier))) ;) (expression_statement "iVar11 = *(int *)((int)&pSVar7->st_size + 4);" (assignment_expression "iVar11 = *(int *)((int)&pSVar7->st_size + 4)" identifier = (pointer_expression "*(int *)((int)&pSVar7->st_size + 4)" * (cast_expression "(int *)((int)&pSVar7->st_size + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pSVar7->st_size + 4)" ( (binary_expression "(int)&pSVar7->st_size + 4" (cast_expression "(int)&pSVar7->st_size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pSVar7->st_size" & (field_expression "pSVar7->st_size" identifier -> field_identifier))) + number_literal) ))))) ;) (if_statement "if (iVar11 != 0 || iVar20 != 0) {\n          iVar12 = (int)to->symsize_;\n          iVar13 = *(int *)((int)&to->symsize_ + 4);\n          if ((iVar13 != 0 || iVar12 != 0) &&\n             (((pSVar7->st_info & 0xf) != ((to->super_Symbol).field_0x28 & 0xf) ||\n              (iVar20 != iVar12 || iVar11 != iVar13)))) {\n            p_Var14 = (_Hash_node_base *)(to->super_Symbol).name_;\n            if ((*(char *)&p_Var14->_M_nxt == '_') && (*(char *)((int)&p_Var14->_M_nxt + 1) == 'Z'))\n            {\n              local_3c = *(__bucket_type *)&pSVar7->st_value;\n              _adjust_common_sizes = object;\n              local_40 = orig_st_shndx;\n              local_38 = *(undefined4 *)((int)&pSVar7->st_value + 4);\n              if (((to->super_Symbol).field_0x2a & 7) != 0) {\nLAB_001cd065:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n              }\n              _adjust_dyndef = (to->super_Symbol).u1_;\n              local_2c = *(_func_int_varargs ***)&to->value_;\n              local_28._M_p = *(pointer *)((int)&to->value_ + 4);\n              pSVar26 = this;\n              pSVar27 = this;\n              local_54._8_4_ = p_Var14;\n              local_30 = uVar3;\n              __node_gen._M_h =\n                   (__hashtable_alloc *)\n                   std::__detail::\n                   _Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8));\n              std::\n              _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::\n              _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                        ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_common_sizes,&__node_gen,0,1,pSVar26,\n                         pSVar27);\n              local_54._8_4_ = (to->super_Symbol).name_;\n              __node_gen._M_h =\n                   (__hashtable_alloc *)\n                   std::__detail::\n                   _Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8));\n              std::\n              _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::\n              _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                        ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_dyndef,&__node_gen,0,1);\n            }\n          }\n        }" if (parenthesized_expression "(iVar11 != 0 || iVar20 != 0)" ( (binary_expression "iVar11 != 0 || iVar20 != 0" (binary_expression "iVar11 != 0" identifier != number_literal) || (binary_expression "iVar20 != 0" identifier != number_literal)) )) (compound_statement "{\n          iVar12 = (int)to->symsize_;\n          iVar13 = *(int *)((int)&to->symsize_ + 4);\n          if ((iVar13 != 0 || iVar12 != 0) &&\n             (((pSVar7->st_info & 0xf) != ((to->super_Symbol).field_0x28 & 0xf) ||\n              (iVar20 != iVar12 || iVar11 != iVar13)))) {\n            p_Var14 = (_Hash_node_base *)(to->super_Symbol).name_;\n            if ((*(char *)&p_Var14->_M_nxt == '_') && (*(char *)((int)&p_Var14->_M_nxt + 1) == 'Z'))\n            {\n              local_3c = *(__bucket_type *)&pSVar7->st_value;\n              _adjust_common_sizes = object;\n              local_40 = orig_st_shndx;\n              local_38 = *(undefined4 *)((int)&pSVar7->st_value + 4);\n              if (((to->super_Symbol).field_0x2a & 7) != 0) {\nLAB_001cd065:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n              }\n              _adjust_dyndef = (to->super_Symbol).u1_;\n              local_2c = *(_func_int_varargs ***)&to->value_;\n              local_28._M_p = *(pointer *)((int)&to->value_ + 4);\n              pSVar26 = this;\n              pSVar27 = this;\n              local_54._8_4_ = p_Var14;\n              local_30 = uVar3;\n              __node_gen._M_h =\n                   (__hashtable_alloc *)\n                   std::__detail::\n                   _Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8));\n              std::\n              _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::\n              _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                        ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_common_sizes,&__node_gen,0,1,pSVar26,\n                         pSVar27);\n              local_54._8_4_ = (to->super_Symbol).name_;\n              __node_gen._M_h =\n                   (__hashtable_alloc *)\n                   std::__detail::\n                   _Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8));\n              std::\n              _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::\n              _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                        ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_dyndef,&__node_gen,0,1);\n            }\n          }\n        }" { (expression_statement "iVar12 = (int)to->symsize_;" (assignment_expression "iVar12 = (int)to->symsize_" identifier = (cast_expression "(int)to->symsize_" ( (type_descriptor "int" primitive_type) ) (field_expression "to->symsize_" identifier -> field_identifier))) ;) (expression_statement "iVar13 = *(int *)((int)&to->symsize_ + 4);" (assignment_expression "iVar13 = *(int *)((int)&to->symsize_ + 4)" identifier = (pointer_expression "*(int *)((int)&to->symsize_ + 4)" * (cast_expression "(int *)((int)&to->symsize_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&to->symsize_ + 4)" ( (binary_expression "(int)&to->symsize_ + 4" (cast_expression "(int)&to->symsize_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&to->symsize_" & (field_expression "to->symsize_" identifier -> field_identifier))) + number_literal) ))))) ;) (if_statement "if ((iVar13 != 0 || iVar12 != 0) &&\n             (((pSVar7->st_info & 0xf) != ((to->super_Symbol).field_0x28 & 0xf) ||\n              (iVar20 != iVar12 || iVar11 != iVar13)))) {\n            p_Var14 = (_Hash_node_base *)(to->super_Symbol).name_;\n            if ((*(char *)&p_Var14->_M_nxt == '_') && (*(char *)((int)&p_Var14->_M_nxt + 1) == 'Z'))\n            {\n              local_3c = *(__bucket_type *)&pSVar7->st_value;\n              _adjust_common_sizes = object;\n              local_40 = orig_st_shndx;\n              local_38 = *(undefined4 *)((int)&pSVar7->st_value + 4);\n              if (((to->super_Symbol).field_0x2a & 7) != 0) {\nLAB_001cd065:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n              }\n              _adjust_dyndef = (to->super_Symbol).u1_;\n              local_2c = *(_func_int_varargs ***)&to->value_;\n              local_28._M_p = *(pointer *)((int)&to->value_ + 4);\n              pSVar26 = this;\n              pSVar27 = this;\n              local_54._8_4_ = p_Var14;\n              local_30 = uVar3;\n              __node_gen._M_h =\n                   (__hashtable_alloc *)\n                   std::__detail::\n                   _Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8));\n              std::\n              _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::\n              _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                        ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_common_sizes,&__node_gen,0,1,pSVar26,\n                         pSVar27);\n              local_54._8_4_ = (to->super_Symbol).name_;\n              __node_gen._M_h =\n                   (__hashtable_alloc *)\n                   std::__detail::\n                   _Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8));\n              std::\n              _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::\n              _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                        ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_dyndef,&__node_gen,0,1);\n            }\n          }" if (parenthesized_expression "((iVar13 != 0 || iVar12 != 0) &&\n             (((pSVar7->st_info & 0xf) != ((to->super_Symbol).field_0x28 & 0xf) ||\n              (iVar20 != iVar12 || iVar11 != iVar13))))" ( (binary_expression "(iVar13 != 0 || iVar12 != 0) &&\n             (((pSVar7->st_info & 0xf) != ((to->super_Symbol).field_0x28 & 0xf) ||\n              (iVar20 != iVar12 || iVar11 != iVar13)))" (parenthesized_expression "(iVar13 != 0 || iVar12 != 0)" ( (binary_expression "iVar13 != 0 || iVar12 != 0" (binary_expression "iVar13 != 0" identifier != number_literal) || (binary_expression "iVar12 != 0" identifier != number_literal)) )) && (parenthesized_expression "(((pSVar7->st_info & 0xf) != ((to->super_Symbol).field_0x28 & 0xf) ||\n              (iVar20 != iVar12 || iVar11 != iVar13)))" ( (parenthesized_expression "((pSVar7->st_info & 0xf) != ((to->super_Symbol).field_0x28 & 0xf) ||\n              (iVar20 != iVar12 || iVar11 != iVar13))" ( (binary_expression "(pSVar7->st_info & 0xf) != ((to->super_Symbol).field_0x28 & 0xf) ||\n              (iVar20 != iVar12 || iVar11 != iVar13)" (binary_expression "(pSVar7->st_info & 0xf) != ((to->super_Symbol).field_0x28 & 0xf)" (parenthesized_expression "(pSVar7->st_info & 0xf)" ( (binary_expression "pSVar7->st_info & 0xf" (field_expression "pSVar7->st_info" identifier -> field_identifier) & number_literal) )) != (parenthesized_expression "((to->super_Symbol).field_0x28 & 0xf)" ( (binary_expression "(to->super_Symbol).field_0x28 & 0xf" (field_expression "(to->super_Symbol).field_0x28" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) ))) || (parenthesized_expression "(iVar20 != iVar12 || iVar11 != iVar13)" ( (binary_expression "iVar20 != iVar12 || iVar11 != iVar13" (binary_expression "iVar20 != iVar12" identifier != identifier) || (binary_expression "iVar11 != iVar13" identifier != identifier)) ))) )) ))) )) (compound_statement "{\n            p_Var14 = (_Hash_node_base *)(to->super_Symbol).name_;\n            if ((*(char *)&p_Var14->_M_nxt == '_') && (*(char *)((int)&p_Var14->_M_nxt + 1) == 'Z'))\n            {\n              local_3c = *(__bucket_type *)&pSVar7->st_value;\n              _adjust_common_sizes = object;\n              local_40 = orig_st_shndx;\n              local_38 = *(undefined4 *)((int)&pSVar7->st_value + 4);\n              if (((to->super_Symbol).field_0x2a & 7) != 0) {\nLAB_001cd065:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n              }\n              _adjust_dyndef = (to->super_Symbol).u1_;\n              local_2c = *(_func_int_varargs ***)&to->value_;\n              local_28._M_p = *(pointer *)((int)&to->value_ + 4);\n              pSVar26 = this;\n              pSVar27 = this;\n              local_54._8_4_ = p_Var14;\n              local_30 = uVar3;\n              __node_gen._M_h =\n                   (__hashtable_alloc *)\n                   std::__detail::\n                   _Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8));\n              std::\n              _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::\n              _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                        ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_common_sizes,&__node_gen,0,1,pSVar26,\n                         pSVar27);\n              local_54._8_4_ = (to->super_Symbol).name_;\n              __node_gen._M_h =\n                   (__hashtable_alloc *)\n                   std::__detail::\n                   _Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8));\n              std::\n              _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::\n              _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                        ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_dyndef,&__node_gen,0,1);\n            }\n          }" { (expression_statement "p_Var14 = (_Hash_node_base *)(to->super_Symbol).name_;" (assignment_expression "p_Var14 = (_Hash_node_base *)(to->super_Symbol).name_" identifier = (cast_expression "(_Hash_node_base *)(to->super_Symbol).name_" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(to->super_Symbol).name_" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier))) ;) (if_statement "if ((*(char *)&p_Var14->_M_nxt == '_') && (*(char *)((int)&p_Var14->_M_nxt + 1) == 'Z'))\n            {\n              local_3c = *(__bucket_type *)&pSVar7->st_value;\n              _adjust_common_sizes = object;\n              local_40 = orig_st_shndx;\n              local_38 = *(undefined4 *)((int)&pSVar7->st_value + 4);\n              if (((to->super_Symbol).field_0x2a & 7) != 0) {\nLAB_001cd065:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n              }\n              _adjust_dyndef = (to->super_Symbol).u1_;\n              local_2c = *(_func_int_varargs ***)&to->value_;\n              local_28._M_p = *(pointer *)((int)&to->value_ + 4);\n              pSVar26 = this;\n              pSVar27 = this;\n              local_54._8_4_ = p_Var14;\n              local_30 = uVar3;\n              __node_gen._M_h =\n                   (__hashtable_alloc *)\n                   std::__detail::\n                   _Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8));\n              std::\n              _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::\n              _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                        ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_common_sizes,&__node_gen,0,1,pSVar26,\n                         pSVar27);\n              local_54._8_4_ = (to->super_Symbol).name_;\n              __node_gen._M_h =\n                   (__hashtable_alloc *)\n                   std::__detail::\n                   _Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8));\n              std::\n              _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::\n              _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                        ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_dyndef,&__node_gen,0,1);\n            }" if (parenthesized_expression "((*(char *)&p_Var14->_M_nxt == '_') && (*(char *)((int)&p_Var14->_M_nxt + 1) == 'Z'))" ( (binary_expression "(*(char *)&p_Var14->_M_nxt == '_') && (*(char *)((int)&p_Var14->_M_nxt + 1) == 'Z')" (parenthesized_expression "(*(char *)&p_Var14->_M_nxt == '_')" ( (binary_expression "*(char *)&p_Var14->_M_nxt == '_'" (pointer_expression "*(char *)&p_Var14->_M_nxt" * (cast_expression "(char *)&p_Var14->_M_nxt" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&p_Var14->_M_nxt" & (field_expression "p_Var14->_M_nxt" identifier -> field_identifier)))) == (char_literal "'_'" ' character ')) )) && (parenthesized_expression "(*(char *)((int)&p_Var14->_M_nxt + 1) == 'Z')" ( (binary_expression "*(char *)((int)&p_Var14->_M_nxt + 1) == 'Z'" (pointer_expression "*(char *)((int)&p_Var14->_M_nxt + 1)" * (cast_expression "(char *)((int)&p_Var14->_M_nxt + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&p_Var14->_M_nxt + 1)" ( (binary_expression "(int)&p_Var14->_M_nxt + 1" (cast_expression "(int)&p_Var14->_M_nxt" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&p_Var14->_M_nxt" & (field_expression "p_Var14->_M_nxt" identifier -> field_identifier))) + number_literal) )))) == (char_literal "'Z'" ' character ')) ))) )) (compound_statement "{\n              local_3c = *(__bucket_type *)&pSVar7->st_value;\n              _adjust_common_sizes = object;\n              local_40 = orig_st_shndx;\n              local_38 = *(undefined4 *)((int)&pSVar7->st_value + 4);\n              if (((to->super_Symbol).field_0x2a & 7) != 0) {\nLAB_001cd065:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n              }\n              _adjust_dyndef = (to->super_Symbol).u1_;\n              local_2c = *(_func_int_varargs ***)&to->value_;\n              local_28._M_p = *(pointer *)((int)&to->value_ + 4);\n              pSVar26 = this;\n              pSVar27 = this;\n              local_54._8_4_ = p_Var14;\n              local_30 = uVar3;\n              __node_gen._M_h =\n                   (__hashtable_alloc *)\n                   std::__detail::\n                   _Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8));\n              std::\n              _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::\n              _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                        ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_common_sizes,&__node_gen,0,1,pSVar26,\n                         pSVar27);\n              local_54._8_4_ = (to->super_Symbol).name_;\n              __node_gen._M_h =\n                   (__hashtable_alloc *)\n                   std::__detail::\n                   _Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8));\n              std::\n              _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::\n              _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                        ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_dyndef,&__node_gen,0,1);\n            }" { (expression_statement "local_3c = *(__bucket_type *)&pSVar7->st_value;" (assignment_expression "local_3c = *(__bucket_type *)&pSVar7->st_value" identifier = (pointer_expression "*(__bucket_type *)&pSVar7->st_value" * (cast_expression "(__bucket_type *)&pSVar7->st_value" ( (type_descriptor "__bucket_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pSVar7->st_value" & (field_expression "pSVar7->st_value" identifier -> field_identifier))))) ;) (expression_statement "_adjust_common_sizes = object;" (assignment_expression "_adjust_common_sizes = object" identifier = identifier) ;) (expression_statement "local_40 = orig_st_shndx;" (assignment_expression "local_40 = orig_st_shndx" identifier = identifier) ;) (expression_statement "local_38 = *(undefined4 *)((int)&pSVar7->st_value + 4);" (assignment_expression "local_38 = *(undefined4 *)((int)&pSVar7->st_value + 4)" identifier = (pointer_expression "*(undefined4 *)((int)&pSVar7->st_value + 4)" * (cast_expression "(undefined4 *)((int)&pSVar7->st_value + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pSVar7->st_value + 4)" ( (binary_expression "(int)&pSVar7->st_value + 4" (cast_expression "(int)&pSVar7->st_value" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pSVar7->st_value" & (field_expression "pSVar7->st_value" identifier -> field_identifier))) + number_literal) ))))) ;) (if_statement "if (((to->super_Symbol).field_0x2a & 7) != 0) {\nLAB_001cd065:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n              }" if (parenthesized_expression "(((to->super_Symbol).field_0x2a & 7) != 0)" ( (binary_expression "((to->super_Symbol).field_0x2a & 7) != 0" (parenthesized_expression "((to->super_Symbol).field_0x2a & 7)" ( (binary_expression "(to->super_Symbol).field_0x2a & 7" (field_expression "(to->super_Symbol).field_0x2a" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_001cd065:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n              }" { (labeled_statement "LAB_001cd065:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0xa1,"object");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/symtab.h",0xa1,"object");" (call_expression "do_gold_unreachable("../../gold/symtab.h",0xa1,"object")" identifier (argument_list "("../../gold/symtab.h",0xa1,"object")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""object"" " string_content ") ))) ;)) })) (expression_statement "_adjust_dyndef = (to->super_Symbol).u1_;" (assignment_expression "_adjust_dyndef = (to->super_Symbol).u1_" identifier = (field_expression "(to->super_Symbol).u1_" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "local_2c = *(_func_int_varargs ***)&to->value_;" (assignment_expression "local_2c = *(_func_int_varargs ***)&to->value_" identifier = (pointer_expression "*(_func_int_varargs ***)&to->value_" * (cast_expression "(_func_int_varargs ***)&to->value_" ( (type_descriptor "_func_int_varargs ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (pointer_expression "&to->value_" & (field_expression "to->value_" identifier -> field_identifier))))) ;) (expression_statement "local_28._M_p = *(pointer *)((int)&to->value_ + 4);" (assignment_expression "local_28._M_p = *(pointer *)((int)&to->value_ + 4)" (field_expression "local_28._M_p" identifier . field_identifier) = (pointer_expression "*(pointer *)((int)&to->value_ + 4)" * (cast_expression "(pointer *)((int)&to->value_ + 4)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&to->value_ + 4)" ( (binary_expression "(int)&to->value_ + 4" (cast_expression "(int)&to->value_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&to->value_" & (field_expression "to->value_" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "pSVar26 = this;" (assignment_expression "pSVar26 = this" identifier = identifier) ;) (expression_statement "pSVar27 = this;" (assignment_expression "pSVar27 = this" identifier = identifier) ;) (expression_statement "local_54._8_4_ = p_Var14;" (assignment_expression "local_54._8_4_ = p_Var14" (field_expression "local_54._8_4_" identifier . field_identifier) = identifier) ;) (expression_statement "local_30 = uVar3;" (assignment_expression "local_30 = uVar3" identifier = identifier) ;) (ERROR "__node_gen._M_h =\n                   (__hashtable_alloc *)\n                   std::__detail::\n                   _Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::" (comma_expression "__node_gen._M_h =\n                   (__hashtable_alloc *)\n                   std::__detail::\n                   _Map_base<char_const*,_std" (binary_expression "__node_gen._M_h =\n                   (__hashtable_alloc *)\n                   std::__detail::\n                   _Map_base<char_const" (assignment_expression "__node_gen._M_h =\n                   (__hashtable_alloc *)\n                   std" (field_expression "__node_gen._M_h" identifier . field_identifier) = (cast_expression "(__hashtable_alloc *)\n                   std" ( (type_descriptor "__hashtable_alloc *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) (ERROR "::__detail::\n                   _Map_base" : : identifier : : identifier) < identifier) (ERROR "*" *) , identifier) : : (comma_expression "pair<char_const*_const,_std" (binary_expression "pair<char_const*_const" identifier < (binary_expression "char_const*_const" identifier * identifier)) , identifier) : : (binary_expression "unordered_set<gold" identifier < identifier) : : (comma_expression "Symbol_location,_gold" identifier , identifier) : : (comma_expression "Symbol_location_hash,_std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : (binary_expression "Symbol_location>,_std" identifier > (ERROR "," ,) identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol_location>_>_>,_std" (binary_expression "Symbol_location>_>_" (binary_expression "Symbol_location>_" identifier > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<char_const*_const,_std" (binary_expression "pair<char_const*_const" identifier < (binary_expression "char_const*_const" identifier * identifier)) , identifier) : : (binary_expression "unordered_set<gold" identifier < identifier) : : (comma_expression "Symbol_location,_gold" identifier , identifier) : : (comma_expression "Symbol_location_hash,_std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : (binary_expression "Symbol_location>,_std" identifier > (ERROR "," ,) identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol_location>_>_>_>,_std" (binary_expression "Symbol_location>_>_>_" (binary_expression "Symbol_location>_>_" (binary_expression "Symbol_location>_" identifier > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : :) (labeled_statement "__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8));" statement_identifier (ERROR "::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std:" : : (comma_expression "_Select1st,_std" identifier , identifier) : : (comma_expression "equal_to<char_const*>,_std" (binary_expression "equal_to<char_const" identifier < identifier) (ERROR "*>" * >) , identifier) : : (comma_expression "hash<char_const*>,_std" (binary_expression "hash<char_const" identifier < identifier) (ERROR "*>" * >) , identifier) :) : (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8));" statement_identifier (ERROR "::_Mod_range_hashing,_std:" : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8));" statement_identifier (ERROR "::_Default_ranged_hash,_std:" : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8));" statement_identifier (ERROR "::_Prime_rehash_policy,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) :) : (labeled_statement "__detail::_Hashtable_traits<false,_false,_true>,_true>\n                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8));" statement_identifier : (ERROR ":" :) (expression_statement "_Hashtable_traits<false,_false,_true>,_true>\n                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8));" (comma_expression "_Hashtable_traits<false,_false,_true>,_true>\n                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8))" (binary_expression "_Hashtable_traits<false" identifier < false) , (comma_expression "_false,_true>,_true>\n                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8))" identifier , (binary_expression "_true>,_true>\n                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8))" (binary_expression "_true>,_true" identifier > (ERROR "," ,) identifier) > (ERROR "::" : :) (call_expression "operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8))" (subscript_expression "operator[]" identifier [ identifier ]) (argument_list "((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8))" ( (binary_expression "(_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_" (parenthesized_expression "(_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)" ( (ERROR "_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "_Map_base<char_const*,_std" (binary_expression "_Map_base<char_const" identifier < identifier) (ERROR "*" *) , identifier) : : (comma_expression "pair<char_const*_const,_std" (binary_expression "pair<char_const*_const" identifier < (binary_expression "char_const*_const" identifier * identifier)) , identifier) : : (binary_expression "unordered_set<gold" identifier < identifier) : : (comma_expression "Symbol_location,_gold" identifier , identifier) : : (comma_expression "Symbol_location_hash,_std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : (binary_expression "Symbol_location>,_std" identifier > (ERROR "," ,) identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol_location>_>_>,_std" (binary_expression "Symbol_location>_>_" (binary_expression "Symbol_location>_" identifier > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<char_const*_const,_std" (binary_expression "pair<char_const*_const" identifier < (binary_expression "char_const*_const" identifier * identifier)) , identifier) : : (binary_expression "unordered_set<gold" identifier < identifier) : : (comma_expression "Symbol_location,_gold" identifier , identifier) : : (comma_expression "Symbol_location_hash,_std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : (binary_expression "Symbol_location>,_std" identifier > (ERROR "," ,) identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol_location>_>_>_>,_std" (binary_expression "Symbol_location>_>_>_" (binary_expression "Symbol_location>_>_" (binary_expression "Symbol_location>_" identifier > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : identifier : : (comma_expression "_Select1st,_std" identifier , identifier) : : (comma_expression "equal_to<char_const*>,_std" (binary_expression "equal_to<char_const" identifier < identifier) (ERROR "*>" * >) , identifier) : : (comma_expression "hash<char_const*>,_std" (binary_expression "hash<char_const" identifier < identifier) (ERROR "*>" * >) , identifier) : : identifier : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<false,_false,_true>,_true>\n                                 *" (binary_expression "_Hashtable_traits<false" identifier < false) , (comma_expression "_false,_true>,_true>\n                                 *" identifier , (binary_expression "_true>,_true>\n                                 *" (binary_expression "_true>,_true" identifier > (ERROR "," ,) identifier) > (pointer_expression "*" * identifier)))) )) & (field_expression "this->candidate_odr_violations_" identifier -> field_identifier)) , (cast_expression "(key_type *)(local_54 + 8)" ( (type_descriptor "key_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 8)" ( (binary_expression "local_54 + 8" identifier + number_literal) ))) )))))) ;)))))) (ERROR "std::\n              _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::" (comma_expression "std::\n              _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std" identifier (ERROR "::\n              _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>" : : (binary_expression "_Hashtable<gold" identifier < identifier) : : (comma_expression "Symbol_location,_gold" identifier , identifier) : : (comma_expression "Symbol_location,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier >) , identifier) : : identifier : : (comma_expression "_Identity,_std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : (binary_expression "Symbol_location>,_gold" identifier > (ERROR "," ,) identifier) : : (comma_expression "Symbol_location_hash,_std" identifier , identifier) : :) (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::\n              _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                        ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_common_sizes,&__node_gen,0,1,pSVar26,\n                         pSVar27);" statement_identifier (ERROR "::_Mod_range_hashing,_std:" : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::\n              _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                        ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_common_sizes,&__node_gen,0,1,pSVar26,\n                         pSVar27);" statement_identifier (ERROR "::_Default_ranged_hash,_std:" : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::\n              _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                        ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_common_sizes,&__node_gen,0,1,pSVar26,\n                         pSVar27);" statement_identifier (ERROR "::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::\n              _M_insert<const_gold::Symbol_location&,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : (comma_expression "__detail::_Hashtable_traits<true,_true,_true>_>\n              ::\n              _M_insert<const_gold::Symbol_location&,_std" identifier (ERROR "::_Hashtable_traits<true,_true,_true>_>\n              ::\n              _M_insert<const_gold::Symbol_location&" : : (comma_expression "_Hashtable_traits<true,_true,_true>_>\n              ::\n              _M_insert<const_gold" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n              ::\n              _M_insert<const_gold" identifier , (binary_expression "_true>_>\n              ::\n              _M_insert<const_gold" (binary_expression "_true>_>\n              ::\n              _M_insert" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) identifier) < identifier))) : : identifier &) , identifier) :) : (labeled_statement "__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                        ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_common_sizes,&__node_gen,0,1,pSVar26,\n                         pSVar27);" statement_identifier (ERROR "::_AllocNode<std::allocator<std:" : : (binary_expression "_AllocNode<std" identifier < identifier) : : (binary_expression "allocator<std" identifier < identifier) :) : (labeled_statement "__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                        ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_common_sizes,&__node_gen,0,1,pSVar26,\n                         pSVar27);" statement_identifier (ERROR "::_Hash_node<gold:" : : (binary_expression "_Hash_node<gold" identifier < identifier) :) : (expression_statement "Symbol_location,_true>_>_>_>\n                        ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_common_sizes,&__node_gen,0,1,pSVar26,\n                         pSVar27);" (comma_expression "Symbol_location,_true>_>_>_>\n                        ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_common_sizes,&__node_gen,0,1,pSVar26,\n                         pSVar27)" identifier , (binary_expression "_true>_>_>_>\n                        ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_common_sizes,&__node_gen,0,1,pSVar26,\n                         pSVar27)" (binary_expression "_true>_>_>_" (binary_expression "_true>_>_" (binary_expression "_true>_" identifier > identifier) > identifier) > identifier) > (parenthesized_expression "((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_common_sizes,&__node_gen,0,1,pSVar26,\n                         pSVar27)" ( (parenthesized_expression "(_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_common_sizes,&__node_gen,0,1,pSVar26,\n                         pSVar27)" ( (ERROR "_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "_Hashtable<std::__cxx11::basic_string<char,_std" (binary_expression "_Hashtable<std::__cxx11::basic_string<char" (binary_expression "_Hashtable<std" identifier < identifier) (ERROR "::__cxx11::basic_string" : : identifier : : identifier) < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : identifier : : (comma_expression "_Identity,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "hash<std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : identifier : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_common_sizes,&__node_gen,0,1,pSVar26,\n                         pSVar27" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_common_sizes,&__node_gen,0,1,pSVar26,\n                         pSVar27" identifier , (comma_expression "_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_common_sizes,&__node_gen,0,1,pSVar26,\n                         pSVar27" (binary_expression "_true>_>\n                          *)local_54" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "*)local_54" * (ERROR ")" )) identifier)) , (comma_expression "__node_gen._M_h,&adjust_common_sizes,&__node_gen,0,1,pSVar26,\n                         pSVar27" (field_expression "__node_gen._M_h" identifier . field_identifier) , (comma_expression "&adjust_common_sizes,&__node_gen,0,1,pSVar26,\n                         pSVar27" (pointer_expression "&adjust_common_sizes" & identifier) , (comma_expression "&__node_gen,0,1,pSVar26,\n                         pSVar27" (pointer_expression "&__node_gen" & identifier) , (comma_expression "0,1,pSVar26,\n                         pSVar27" number_literal , (comma_expression "1,pSVar26,\n                         pSVar27" number_literal , (comma_expression "pSVar26,\n                         pSVar27" identifier , identifier))))))))) )) )))) ;)))))) (expression_statement "local_54._8_4_ = (to->super_Symbol).name_;" (assignment_expression "local_54._8_4_ = (to->super_Symbol).name_" (field_expression "local_54._8_4_" identifier . field_identifier) = (field_expression "(to->super_Symbol).name_" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier)) ;) (ERROR "__node_gen._M_h =\n                   (__hashtable_alloc *)\n                   std::__detail::\n                   _Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::" (comma_expression "__node_gen._M_h =\n                   (__hashtable_alloc *)\n                   std::__detail::\n                   _Map_base<char_const*,_std" (binary_expression "__node_gen._M_h =\n                   (__hashtable_alloc *)\n                   std::__detail::\n                   _Map_base<char_const" (assignment_expression "__node_gen._M_h =\n                   (__hashtable_alloc *)\n                   std" (field_expression "__node_gen._M_h" identifier . field_identifier) = (cast_expression "(__hashtable_alloc *)\n                   std" ( (type_descriptor "__hashtable_alloc *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) (ERROR "::__detail::\n                   _Map_base" : : identifier : : identifier) < identifier) (ERROR "*" *) , identifier) : : (comma_expression "pair<char_const*_const,_std" (binary_expression "pair<char_const*_const" identifier < (binary_expression "char_const*_const" identifier * identifier)) , identifier) : : (binary_expression "unordered_set<gold" identifier < identifier) : : (comma_expression "Symbol_location,_gold" identifier , identifier) : : (comma_expression "Symbol_location_hash,_std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : (binary_expression "Symbol_location>,_std" identifier > (ERROR "," ,) identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol_location>_>_>,_std" (binary_expression "Symbol_location>_>_" (binary_expression "Symbol_location>_" identifier > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<char_const*_const,_std" (binary_expression "pair<char_const*_const" identifier < (binary_expression "char_const*_const" identifier * identifier)) , identifier) : : (binary_expression "unordered_set<gold" identifier < identifier) : : (comma_expression "Symbol_location,_gold" identifier , identifier) : : (comma_expression "Symbol_location_hash,_std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : (binary_expression "Symbol_location>,_std" identifier > (ERROR "," ,) identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol_location>_>_>_>,_std" (binary_expression "Symbol_location>_>_>_" (binary_expression "Symbol_location>_>_" (binary_expression "Symbol_location>_" identifier > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : :) (labeled_statement "__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8));" statement_identifier (ERROR "::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std:" : : (comma_expression "_Select1st,_std" identifier , identifier) : : (comma_expression "equal_to<char_const*>,_std" (binary_expression "equal_to<char_const" identifier < identifier) (ERROR "*>" * >) , identifier) : : (comma_expression "hash<char_const*>,_std" (binary_expression "hash<char_const" identifier < identifier) (ERROR "*>" * >) , identifier) :) : (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8));" statement_identifier (ERROR "::_Mod_range_hashing,_std:" : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8));" statement_identifier (ERROR "::_Default_ranged_hash,_std:" : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8));" statement_identifier (ERROR "::_Prime_rehash_policy,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) :) : (labeled_statement "__detail::_Hashtable_traits<false,_false,_true>,_true>\n                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8));" statement_identifier : (ERROR ":" :) (expression_statement "_Hashtable_traits<false,_false,_true>,_true>\n                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8));" (comma_expression "_Hashtable_traits<false,_false,_true>,_true>\n                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8))" (binary_expression "_Hashtable_traits<false" identifier < false) , (comma_expression "_false,_true>,_true>\n                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8))" identifier , (binary_expression "_true>,_true>\n                   ::operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8))" (binary_expression "_true>,_true" identifier > (ERROR "," ,) identifier) > (ERROR "::" : :) (call_expression "operator[]((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8))" (subscript_expression "operator[]" identifier [ identifier ]) (argument_list "((_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_,(key_type *)(local_54 + 8))" ( (binary_expression "(_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)&this->candidate_odr_violations_" (parenthesized_expression "(_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                 *)" ( (ERROR "_Map_base<char_const*,_std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>,_std::allocator<std::pair<char_const*_const,_std::unordered_set<gold::Symbol_location,_gold::Symbol_location_hash,_std::equal_to<gold::Symbol_location>,_std::allocator<gold::Symbol_location>_>_>_>,_std::__detail::_Select1st,_std::equal_to<char_const*>,_std::hash<char_const*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "_Map_base<char_const*,_std" (binary_expression "_Map_base<char_const" identifier < identifier) (ERROR "*" *) , identifier) : : (comma_expression "pair<char_const*_const,_std" (binary_expression "pair<char_const*_const" identifier < (binary_expression "char_const*_const" identifier * identifier)) , identifier) : : (binary_expression "unordered_set<gold" identifier < identifier) : : (comma_expression "Symbol_location,_gold" identifier , identifier) : : (comma_expression "Symbol_location_hash,_std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : (binary_expression "Symbol_location>,_std" identifier > (ERROR "," ,) identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol_location>_>_>,_std" (binary_expression "Symbol_location>_>_" (binary_expression "Symbol_location>_" identifier > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<char_const*_const,_std" (binary_expression "pair<char_const*_const" identifier < (binary_expression "char_const*_const" identifier * identifier)) , identifier) : : (binary_expression "unordered_set<gold" identifier < identifier) : : (comma_expression "Symbol_location,_gold" identifier , identifier) : : (comma_expression "Symbol_location_hash,_std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : (binary_expression "Symbol_location>,_std" identifier > (ERROR "," ,) identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol_location>_>_>_>,_std" (binary_expression "Symbol_location>_>_>_" (binary_expression "Symbol_location>_>_" (binary_expression "Symbol_location>_" identifier > identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : identifier : : (comma_expression "_Select1st,_std" identifier , identifier) : : (comma_expression "equal_to<char_const*>,_std" (binary_expression "equal_to<char_const" identifier < identifier) (ERROR "*>" * >) , identifier) : : (comma_expression "hash<char_const*>,_std" (binary_expression "hash<char_const" identifier < identifier) (ERROR "*>" * >) , identifier) : : identifier : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<false,_false,_true>,_true>\n                                 *" (binary_expression "_Hashtable_traits<false" identifier < false) , (comma_expression "_false,_true>,_true>\n                                 *" identifier , (binary_expression "_true>,_true>\n                                 *" (binary_expression "_true>,_true" identifier > (ERROR "," ,) identifier) > (pointer_expression "*" * identifier)))) )) & (field_expression "this->candidate_odr_violations_" identifier -> field_identifier)) , (cast_expression "(key_type *)(local_54 + 8)" ( (type_descriptor "key_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 8)" ( (binary_expression "local_54 + 8" identifier + number_literal) ))) )))))) ;)))))) (ERROR "std::\n              _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::" (comma_expression "std::\n              _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std" identifier (ERROR "::\n              _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>" : : (binary_expression "_Hashtable<gold" identifier < identifier) : : (comma_expression "Symbol_location,_gold" identifier , identifier) : : (comma_expression "Symbol_location,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier >) , identifier) : : identifier : : (comma_expression "_Identity,_std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : (binary_expression "Symbol_location>,_gold" identifier > (ERROR "," ,) identifier) : : (comma_expression "Symbol_location_hash,_std" identifier , identifier) : :) (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::\n              _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                        ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_dyndef,&__node_gen,0,1);" statement_identifier (ERROR "::_Mod_range_hashing,_std:" : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::\n              _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                        ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_dyndef,&__node_gen,0,1);" statement_identifier (ERROR "::_Default_ranged_hash,_std:" : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::\n              _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                        ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_dyndef,&__node_gen,0,1);" statement_identifier (ERROR "::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::\n              _M_insert<const_gold::Symbol_location&,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : (comma_expression "__detail::_Hashtable_traits<true,_true,_true>_>\n              ::\n              _M_insert<const_gold::Symbol_location&,_std" identifier (ERROR "::_Hashtable_traits<true,_true,_true>_>\n              ::\n              _M_insert<const_gold::Symbol_location&" : : (comma_expression "_Hashtable_traits<true,_true,_true>_>\n              ::\n              _M_insert<const_gold" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n              ::\n              _M_insert<const_gold" identifier , (binary_expression "_true>_>\n              ::\n              _M_insert<const_gold" (binary_expression "_true>_>\n              ::\n              _M_insert" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) identifier) < identifier))) : : identifier &) , identifier) :) : (labeled_statement "__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                        ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_dyndef,&__node_gen,0,1);" statement_identifier (ERROR "::_AllocNode<std::allocator<std:" : : (binary_expression "_AllocNode<std" identifier < identifier) : : (binary_expression "allocator<std" identifier < identifier) :) : (labeled_statement "__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\n                        ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_dyndef,&__node_gen,0,1);" statement_identifier (ERROR "::_Hash_node<gold:" : : (binary_expression "_Hash_node<gold" identifier < identifier) :) : (expression_statement "Symbol_location,_true>_>_>_>\n                        ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_dyndef,&__node_gen,0,1);" (comma_expression "Symbol_location,_true>_>_>_>\n                        ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_dyndef,&__node_gen,0,1)" identifier , (binary_expression "_true>_>_>_>\n                        ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_dyndef,&__node_gen,0,1)" (binary_expression "_true>_>_>_" (binary_expression "_true>_>_" (binary_expression "_true>_" identifier > identifier) > identifier) > identifier) > (parenthesized_expression "((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_dyndef,&__node_gen,0,1)" ( (parenthesized_expression "(_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_dyndef,&__node_gen,0,1)" ( (ERROR "_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "_Hashtable<std::__cxx11::basic_string<char,_std" (binary_expression "_Hashtable<std::__cxx11::basic_string<char" (binary_expression "_Hashtable<std" identifier < identifier) (ERROR "::__cxx11::basic_string" : : identifier : : identifier) < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : identifier : : (comma_expression "_Identity,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "hash<std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : identifier : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<true,_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_dyndef,&__node_gen,0,1" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_dyndef,&__node_gen,0,1" identifier , (comma_expression "_true>_>\n                          *)local_54,__node_gen._M_h,&adjust_dyndef,&__node_gen,0,1" (binary_expression "_true>_>\n                          *)local_54" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "*)local_54" * (ERROR ")" )) identifier)) , (comma_expression "__node_gen._M_h,&adjust_dyndef,&__node_gen,0,1" (field_expression "__node_gen._M_h" identifier . field_identifier) , (comma_expression "&adjust_dyndef,&__node_gen,0,1" (pointer_expression "&adjust_dyndef" & identifier) , (comma_expression "&__node_gen,0,1" (pointer_expression "&__node_gen" & identifier) , (comma_expression "0,1" number_literal , number_literal))))))) )) )))) ;)))))) })) })) })) })) })) (expression_statement "local_70 = &adjust_common_sizes;" (assignment_expression "local_70 = &adjust_common_sizes" identifier = (pointer_expression "&adjust_common_sizes" & identifier)) ;) (expression_statement "local_74 = &adjust_dyndef;" (assignment_expression "local_74 = &adjust_dyndef" identifier = (pointer_expression "&adjust_dyndef" & identifier)) ;) (expression_statement "iVar20 = (*object->_vptr_Object[5])(object);" (assignment_expression "iVar20 = (*object->_vptr_Object[5])(object)" identifier = (call_expression "(*object->_vptr_Object[5])(object)" (parenthesized_expression "(*object->_vptr_Object[5])" ( (pointer_expression "*object->_vptr_Object[5]" * (subscript_expression "object->_vptr_Object[5]" (field_expression "object->_vptr_Object" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(object)" ( identifier )))) ;) (if_statement "if (iVar20 == 0) {\n      SVar22 = (STT)sym->p_->st_info;\n      SVar25 = SVar22;\n    }\n    else {\n      SVar22 = (STT)sym->p_->st_info;\n      SVar25 = (uint)(byte)(to->super_Symbol).field_0x28;\n    }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\n      SVar22 = (STT)sym->p_->st_info;\n      SVar25 = SVar22;\n    }" { (expression_statement "SVar22 = (STT)sym->p_->st_info;" (assignment_expression "SVar22 = (STT)sym->p_->st_info" identifier = (cast_expression "(STT)sym->p_->st_info" ( (type_descriptor "STT" type_identifier) ) (field_expression "sym->p_->st_info" (field_expression "sym->p_" identifier -> field_identifier) -> field_identifier))) ;) (expression_statement "SVar25 = SVar22;" (assignment_expression "SVar25 = SVar22" identifier = identifier) ;) }) (else_clause "else {\n      SVar22 = (STT)sym->p_->st_info;\n      SVar25 = (uint)(byte)(to->super_Symbol).field_0x28;\n    }" else (compound_statement "{\n      SVar22 = (STT)sym->p_->st_info;\n      SVar25 = (uint)(byte)(to->super_Symbol).field_0x28;\n    }" { (expression_statement "SVar22 = (STT)sym->p_->st_info;" (assignment_expression "SVar22 = (STT)sym->p_->st_info" identifier = (cast_expression "(STT)sym->p_->st_info" ( (type_descriptor "STT" type_identifier) ) (field_expression "sym->p_->st_info" (field_expression "sym->p_" identifier -> field_identifier) -> field_identifier))) ;) (expression_statement "SVar25 = (uint)(byte)(to->super_Symbol).field_0x28;" (assignment_expression "SVar25 = (uint)(byte)(to->super_Symbol).field_0x28" identifier = (field_expression "(uint)(byte)(to->super_Symbol).field_0x28" (call_expression "(uint)(byte)(to->super_Symbol)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) ))) . field_identifier)) ;) }))) (expression_statement "uVar23 = symbol_to_bits((int)SVar22 >> 4,(bool)(object->field_0x2c & 1),st_shndx,is_ordinary);" (assignment_expression "uVar23 = symbol_to_bits((int)SVar22 >> 4,(bool)(object->field_0x2c & 1),st_shndx,is_ordinary)" identifier = (call_expression "symbol_to_bits((int)SVar22 >> 4,(bool)(object->field_0x2c & 1),st_shndx,is_ordinary)" identifier (argument_list "((int)SVar22 >> 4,(bool)(object->field_0x2c & 1),st_shndx,is_ordinary)" ( (binary_expression "(int)SVar22 >> 4" (cast_expression "(int)SVar22" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) , (cast_expression "(bool)(object->field_0x2c & 1)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(object->field_0x2c & 1)" ( (binary_expression "object->field_0x2c & 1" (field_expression "object->field_0x2c" identifier -> field_identifier) & number_literal) ))) , identifier , identifier )))) ;) (expression_statement "uVar3 = (uint)to->symsize_;" (assignment_expression "uVar3 = (uint)to->symsize_" identifier = (cast_expression "(uint)to->symsize_" ( (type_descriptor "uint" type_identifier) ) (field_expression "to->symsize_" identifier -> field_identifier))) ;) (expression_statement "uVar6 = *(uint *)((int)&to->symsize_ + 4);" (assignment_expression "uVar6 = *(uint *)((int)&to->symsize_ + 4)" identifier = (pointer_expression "*(uint *)((int)&to->symsize_ + 4)" * (cast_expression "(uint *)((int)&to->symsize_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&to->symsize_ + 4)" ( (binary_expression "(int)&to->symsize_ + 4" (cast_expression "(int)&to->symsize_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&to->symsize_" & (field_expression "to->symsize_" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "bVar18 = should_override(&to->super_Symbol,uVar23,SVar25 & STT_HIPROC,OBJECT,object,local_70,\n                             local_74,is_default_version);" (assignment_expression "bVar18 = should_override(&to->super_Symbol,uVar23,SVar25 & STT_HIPROC,OBJECT,object,local_70,\n                             local_74,is_default_version)" identifier = (call_expression "should_override(&to->super_Symbol,uVar23,SVar25 & STT_HIPROC,OBJECT,object,local_70,\n                             local_74,is_default_version)" identifier (argument_list "(&to->super_Symbol,uVar23,SVar25 & STT_HIPROC,OBJECT,object,local_70,\n                             local_74,is_default_version)" ( (pointer_expression "&to->super_Symbol" & (field_expression "to->super_Symbol" identifier -> field_identifier)) , identifier , (binary_expression "SVar25 & STT_HIPROC" identifier & identifier) , identifier , identifier , identifier , identifier , identifier )))) ;) (if_statement "if (bVar18) {\n      bVar19 = (to->super_Symbol).field_0x28;\n      uVar23 = (uint)to->value_;\n      uVar8 = *(uint *)((int)&to->value_ + 4);\n      override<64,_false>(this,to,sym,st_shndx,is_ordinary,object,version);\n      if (adjust_common_sizes != false) {\n        uVar9 = *(uint *)((int)&to->symsize_ + 4);\n        if (uVar9 < uVar6 || uVar9 - uVar6 < (uint)((uint)to->symsize_ < uVar3)) {\n          *(uint *)((int)&to->symsize_ + 4) = uVar6;\n          *(uint *)&to->symsize_ = uVar3;\n        }\n        uVar9 = *(uint *)((int)&to->value_ + 4);\n        if (uVar9 < uVar8 || uVar9 - uVar8 < (uint)((uint)to->value_ < uVar23)) {\n          *(uint *)&to->value_ = uVar23;\n          *(uint *)((int)&to->value_ + 4) = uVar8;\n        }\n      }\n      if ((adjust_dyndef != false) &&\n         ((bVar2 = (to->super_Symbol).field_0x2c, (bVar2 & 1) == 0 || ((bVar2 & 2) != 0)))) {\n        (to->super_Symbol).field_0x2c =\n             (to->super_Symbol).field_0x2c & 0xfd | (bVar19 >> 4 == 2) * '\x02' | 1;\n      }\n    }\n    else {\n      pSVar7 = sym->p_;\n      if (adjust_common_sizes != false) {\n        uVar23 = (uint)pSVar7->st_size;\n        uVar8 = *(uint *)((int)&pSVar7->st_size + 4);\n        if (uVar6 < uVar8 || uVar6 - uVar8 < (uint)(uVar3 < uVar23)) {\n          *(uint *)((int)&to->symsize_ + 4) = uVar8;\n          *(uint *)&to->symsize_ = uVar23;\n        }\n        uVar23 = (uint)pSVar7->st_value;\n        uVar8 = *(uint *)((int)&pSVar7->st_value + 4);\n        uVar9 = *(uint *)((int)&to->value_ + 4);\n        if (uVar9 < uVar8 || uVar9 - uVar8 < (uint)((uint)to->value_ < uVar23)) {\n          *(uint *)((int)&to->value_ + 4) = uVar8;\n          *(uint *)&to->value_ = uVar23;\n        }\n      }\n      if (adjust_dyndef != false) {\n        bVar19 = (to->super_Symbol).field_0x2c;\n        if (((bVar19 & 1) == 0) || ((bVar19 & 2) != 0)) {\n          (to->super_Symbol).field_0x2c =\n               (to->super_Symbol).field_0x2c & 0xfd |\n               ((int)(uint)pSVar7->st_info >> 4 == 2) * '\x02' | 1;\n        }\n      }\n      bVar19 = pSVar7->st_other & 3;\n      if ((pSVar7->st_other & 3) != 0) {\n        bVar2 = (to->super_Symbol).field_0x29;\n        if (((bVar2 & 3) == 0) || (bVar19 < (bVar2 & 3))) {\n          (to->super_Symbol).field_0x29 = bVar19 | bVar2 & 0xfc;\n        }\n      }\n    }" if (parenthesized_expression "(bVar18)" ( identifier )) (compound_statement "{\n      bVar19 = (to->super_Symbol).field_0x28;\n      uVar23 = (uint)to->value_;\n      uVar8 = *(uint *)((int)&to->value_ + 4);\n      override<64,_false>(this,to,sym,st_shndx,is_ordinary,object,version);\n      if (adjust_common_sizes != false) {\n        uVar9 = *(uint *)((int)&to->symsize_ + 4);\n        if (uVar9 < uVar6 || uVar9 - uVar6 < (uint)((uint)to->symsize_ < uVar3)) {\n          *(uint *)((int)&to->symsize_ + 4) = uVar6;\n          *(uint *)&to->symsize_ = uVar3;\n        }\n        uVar9 = *(uint *)((int)&to->value_ + 4);\n        if (uVar9 < uVar8 || uVar9 - uVar8 < (uint)((uint)to->value_ < uVar23)) {\n          *(uint *)&to->value_ = uVar23;\n          *(uint *)((int)&to->value_ + 4) = uVar8;\n        }\n      }\n      if ((adjust_dyndef != false) &&\n         ((bVar2 = (to->super_Symbol).field_0x2c, (bVar2 & 1) == 0 || ((bVar2 & 2) != 0)))) {\n        (to->super_Symbol).field_0x2c =\n             (to->super_Symbol).field_0x2c & 0xfd | (bVar19 >> 4 == 2) * '\x02' | 1;\n      }\n    }" { (expression_statement "bVar19 = (to->super_Symbol).field_0x28;" (assignment_expression "bVar19 = (to->super_Symbol).field_0x28" identifier = (field_expression "(to->super_Symbol).field_0x28" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar23 = (uint)to->value_;" (assignment_expression "uVar23 = (uint)to->value_" identifier = (cast_expression "(uint)to->value_" ( (type_descriptor "uint" type_identifier) ) (field_expression "to->value_" identifier -> field_identifier))) ;) (expression_statement "uVar8 = *(uint *)((int)&to->value_ + 4);" (assignment_expression "uVar8 = *(uint *)((int)&to->value_ + 4)" identifier = (pointer_expression "*(uint *)((int)&to->value_ + 4)" * (cast_expression "(uint *)((int)&to->value_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&to->value_ + 4)" ( (binary_expression "(int)&to->value_ + 4" (cast_expression "(int)&to->value_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&to->value_" & (field_expression "to->value_" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "override<64,_false>(this,to,sym,st_shndx,is_ordinary,object,version);" (comma_expression "override<64,_false>(this,to,sym,st_shndx,is_ordinary,object,version)" (binary_expression "override<64" identifier < number_literal) , (binary_expression "_false>(this,to,sym,st_shndx,is_ordinary,object,version)" identifier > (parenthesized_expression "(this,to,sym,st_shndx,is_ordinary,object,version)" ( (comma_expression "this,to,sym,st_shndx,is_ordinary,object,version" identifier , (comma_expression "to,sym,st_shndx,is_ordinary,object,version" identifier , (comma_expression "sym,st_shndx,is_ordinary,object,version" identifier , (comma_expression "st_shndx,is_ordinary,object,version" identifier , (comma_expression "is_ordinary,object,version" identifier , (comma_expression "object,version" identifier , identifier)))))) )))) ;) (if_statement "if (adjust_common_sizes != false) {\n        uVar9 = *(uint *)((int)&to->symsize_ + 4);\n        if (uVar9 < uVar6 || uVar9 - uVar6 < (uint)((uint)to->symsize_ < uVar3)) {\n          *(uint *)((int)&to->symsize_ + 4) = uVar6;\n          *(uint *)&to->symsize_ = uVar3;\n        }\n        uVar9 = *(uint *)((int)&to->value_ + 4);\n        if (uVar9 < uVar8 || uVar9 - uVar8 < (uint)((uint)to->value_ < uVar23)) {\n          *(uint *)&to->value_ = uVar23;\n          *(uint *)((int)&to->value_ + 4) = uVar8;\n        }\n      }" if (parenthesized_expression "(adjust_common_sizes != false)" ( (binary_expression "adjust_common_sizes != false" identifier != false) )) (compound_statement "{\n        uVar9 = *(uint *)((int)&to->symsize_ + 4);\n        if (uVar9 < uVar6 || uVar9 - uVar6 < (uint)((uint)to->symsize_ < uVar3)) {\n          *(uint *)((int)&to->symsize_ + 4) = uVar6;\n          *(uint *)&to->symsize_ = uVar3;\n        }\n        uVar9 = *(uint *)((int)&to->value_ + 4);\n        if (uVar9 < uVar8 || uVar9 - uVar8 < (uint)((uint)to->value_ < uVar23)) {\n          *(uint *)&to->value_ = uVar23;\n          *(uint *)((int)&to->value_ + 4) = uVar8;\n        }\n      }" { (expression_statement "uVar9 = *(uint *)((int)&to->symsize_ + 4);" (assignment_expression "uVar9 = *(uint *)((int)&to->symsize_ + 4)" identifier = (pointer_expression "*(uint *)((int)&to->symsize_ + 4)" * (cast_expression "(uint *)((int)&to->symsize_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&to->symsize_ + 4)" ( (binary_expression "(int)&to->symsize_ + 4" (cast_expression "(int)&to->symsize_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&to->symsize_" & (field_expression "to->symsize_" identifier -> field_identifier))) + number_literal) ))))) ;) (if_statement "if (uVar9 < uVar6 || uVar9 - uVar6 < (uint)((uint)to->symsize_ < uVar3)) {\n          *(uint *)((int)&to->symsize_ + 4) = uVar6;\n          *(uint *)&to->symsize_ = uVar3;\n        }" if (parenthesized_expression "(uVar9 < uVar6 || uVar9 - uVar6 < (uint)((uint)to->symsize_ < uVar3))" ( (binary_expression "uVar9 < uVar6 || uVar9 - uVar6 < (uint)((uint)to->symsize_ < uVar3)" (binary_expression "uVar9 < uVar6" identifier < identifier) || (binary_expression "uVar9 - uVar6 < (uint)((uint)to->symsize_ < uVar3)" (binary_expression "uVar9 - uVar6" identifier - identifier) < (call_expression "(uint)((uint)to->symsize_ < uVar3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)to->symsize_ < uVar3)" ( (binary_expression "(uint)to->symsize_ < uVar3" (cast_expression "(uint)to->symsize_" ( (type_descriptor "uint" type_identifier) ) (field_expression "to->symsize_" identifier -> field_identifier)) < identifier) ))))) )) (compound_statement "{\n          *(uint *)((int)&to->symsize_ + 4) = uVar6;\n          *(uint *)&to->symsize_ = uVar3;\n        }" { (expression_statement "*(uint *)((int)&to->symsize_ + 4) = uVar6;" (assignment_expression "*(uint *)((int)&to->symsize_ + 4) = uVar6" (pointer_expression "*(uint *)((int)&to->symsize_ + 4)" * (cast_expression "(uint *)((int)&to->symsize_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&to->symsize_ + 4)" ( (binary_expression "(int)&to->symsize_ + 4" (cast_expression "(int)&to->symsize_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&to->symsize_" & (field_expression "to->symsize_" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)&to->symsize_ = uVar3;" (assignment_expression "*(uint *)&to->symsize_ = uVar3" (pointer_expression "*(uint *)&to->symsize_" * (cast_expression "(uint *)&to->symsize_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&to->symsize_" & (field_expression "to->symsize_" identifier -> field_identifier)))) = identifier) ;) })) (expression_statement "uVar9 = *(uint *)((int)&to->value_ + 4);" (assignment_expression "uVar9 = *(uint *)((int)&to->value_ + 4)" identifier = (pointer_expression "*(uint *)((int)&to->value_ + 4)" * (cast_expression "(uint *)((int)&to->value_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&to->value_ + 4)" ( (binary_expression "(int)&to->value_ + 4" (cast_expression "(int)&to->value_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&to->value_" & (field_expression "to->value_" identifier -> field_identifier))) + number_literal) ))))) ;) (if_statement "if (uVar9 < uVar8 || uVar9 - uVar8 < (uint)((uint)to->value_ < uVar23)) {\n          *(uint *)&to->value_ = uVar23;\n          *(uint *)((int)&to->value_ + 4) = uVar8;\n        }" if (parenthesized_expression "(uVar9 < uVar8 || uVar9 - uVar8 < (uint)((uint)to->value_ < uVar23))" ( (binary_expression "uVar9 < uVar8 || uVar9 - uVar8 < (uint)((uint)to->value_ < uVar23)" (binary_expression "uVar9 < uVar8" identifier < identifier) || (binary_expression "uVar9 - uVar8 < (uint)((uint)to->value_ < uVar23)" (binary_expression "uVar9 - uVar8" identifier - identifier) < (call_expression "(uint)((uint)to->value_ < uVar23)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)to->value_ < uVar23)" ( (binary_expression "(uint)to->value_ < uVar23" (cast_expression "(uint)to->value_" ( (type_descriptor "uint" type_identifier) ) (field_expression "to->value_" identifier -> field_identifier)) < identifier) ))))) )) (compound_statement "{\n          *(uint *)&to->value_ = uVar23;\n          *(uint *)((int)&to->value_ + 4) = uVar8;\n        }" { (expression_statement "*(uint *)&to->value_ = uVar23;" (assignment_expression "*(uint *)&to->value_ = uVar23" (pointer_expression "*(uint *)&to->value_" * (cast_expression "(uint *)&to->value_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&to->value_" & (field_expression "to->value_" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(uint *)((int)&to->value_ + 4) = uVar8;" (assignment_expression "*(uint *)((int)&to->value_ + 4) = uVar8" (pointer_expression "*(uint *)((int)&to->value_ + 4)" * (cast_expression "(uint *)((int)&to->value_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&to->value_ + 4)" ( (binary_expression "(int)&to->value_ + 4" (cast_expression "(int)&to->value_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&to->value_" & (field_expression "to->value_" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) })) })) (if_statement "if ((adjust_dyndef != false) &&\n         ((bVar2 = (to->super_Symbol).field_0x2c, (bVar2 & 1) == 0 || ((bVar2 & 2) != 0)))) {\n        (to->super_Symbol).field_0x2c =\n             (to->super_Symbol).field_0x2c & 0xfd | (bVar19 >> 4 == 2) * '\x02' | 1;\n      }" if (parenthesized_expression "((adjust_dyndef != false) &&\n         ((bVar2 = (to->super_Symbol).field_0x2c, (bVar2 & 1) == 0 || ((bVar2 & 2) != 0))))" ( (binary_expression "(adjust_dyndef != false) &&\n         ((bVar2 = (to->super_Symbol).field_0x2c, (bVar2 & 1) == 0 || ((bVar2 & 2) != 0)))" (parenthesized_expression "(adjust_dyndef != false)" ( (binary_expression "adjust_dyndef != false" identifier != false) )) && (parenthesized_expression "((bVar2 = (to->super_Symbol).field_0x2c, (bVar2 & 1) == 0 || ((bVar2 & 2) != 0)))" ( (parenthesized_expression "(bVar2 = (to->super_Symbol).field_0x2c, (bVar2 & 1) == 0 || ((bVar2 & 2) != 0))" ( (comma_expression "bVar2 = (to->super_Symbol).field_0x2c, (bVar2 & 1) == 0 || ((bVar2 & 2) != 0)" (assignment_expression "bVar2 = (to->super_Symbol).field_0x2c" identifier = (field_expression "(to->super_Symbol).field_0x2c" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier)) , (binary_expression "(bVar2 & 1) == 0 || ((bVar2 & 2) != 0)" (binary_expression "(bVar2 & 1) == 0" (parenthesized_expression "(bVar2 & 1)" ( (binary_expression "bVar2 & 1" identifier & number_literal) )) == number_literal) || (parenthesized_expression "((bVar2 & 2) != 0)" ( (binary_expression "(bVar2 & 2) != 0" (parenthesized_expression "(bVar2 & 2)" ( (binary_expression "bVar2 & 2" identifier & number_literal) )) != number_literal) )))) )) ))) )) (compound_statement "{\n        (to->super_Symbol).field_0x2c =\n             (to->super_Symbol).field_0x2c & 0xfd | (bVar19 >> 4 == 2) * '\x02' | 1;\n      }" { (expression_statement "(to->super_Symbol).field_0x2c =\n             (to->super_Symbol).field_0x2c & 0xfd | (bVar19 >> 4 == 2) * '\x02' | 1;" (assignment_expression "(to->super_Symbol).field_0x2c =\n             (to->super_Symbol).field_0x2c & 0xfd | (bVar19 >> 4 == 2) * '\x02' | 1" (field_expression "(to->super_Symbol).field_0x2c" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier) = (binary_expression "(to->super_Symbol).field_0x2c & 0xfd | (bVar19 >> 4 == 2) * '\x02' | 1" (binary_expression "(to->super_Symbol).field_0x2c & 0xfd | (bVar19 >> 4 == 2) * '\x02'" (binary_expression "(to->super_Symbol).field_0x2c & 0xfd" (field_expression "(to->super_Symbol).field_0x2c" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) | (binary_expression "(bVar19 >> 4 == 2) * '\x02'" (parenthesized_expression "(bVar19 >> 4 == 2)" ( (binary_expression "bVar19 >> 4 == 2" (binary_expression "bVar19 >> 4" identifier >> number_literal) == number_literal) )) * (char_literal "'\x02'" ' escape_sequence '))) | number_literal)) ;) })) }) (else_clause "else {\n      pSVar7 = sym->p_;\n      if (adjust_common_sizes != false) {\n        uVar23 = (uint)pSVar7->st_size;\n        uVar8 = *(uint *)((int)&pSVar7->st_size + 4);\n        if (uVar6 < uVar8 || uVar6 - uVar8 < (uint)(uVar3 < uVar23)) {\n          *(uint *)((int)&to->symsize_ + 4) = uVar8;\n          *(uint *)&to->symsize_ = uVar23;\n        }\n        uVar23 = (uint)pSVar7->st_value;\n        uVar8 = *(uint *)((int)&pSVar7->st_value + 4);\n        uVar9 = *(uint *)((int)&to->value_ + 4);\n        if (uVar9 < uVar8 || uVar9 - uVar8 < (uint)((uint)to->value_ < uVar23)) {\n          *(uint *)((int)&to->value_ + 4) = uVar8;\n          *(uint *)&to->value_ = uVar23;\n        }\n      }\n      if (adjust_dyndef != false) {\n        bVar19 = (to->super_Symbol).field_0x2c;\n        if (((bVar19 & 1) == 0) || ((bVar19 & 2) != 0)) {\n          (to->super_Symbol).field_0x2c =\n               (to->super_Symbol).field_0x2c & 0xfd |\n               ((int)(uint)pSVar7->st_info >> 4 == 2) * '\x02' | 1;\n        }\n      }\n      bVar19 = pSVar7->st_other & 3;\n      if ((pSVar7->st_other & 3) != 0) {\n        bVar2 = (to->super_Symbol).field_0x29;\n        if (((bVar2 & 3) == 0) || (bVar19 < (bVar2 & 3))) {\n          (to->super_Symbol).field_0x29 = bVar19 | bVar2 & 0xfc;\n        }\n      }\n    }" else (compound_statement "{\n      pSVar7 = sym->p_;\n      if (adjust_common_sizes != false) {\n        uVar23 = (uint)pSVar7->st_size;\n        uVar8 = *(uint *)((int)&pSVar7->st_size + 4);\n        if (uVar6 < uVar8 || uVar6 - uVar8 < (uint)(uVar3 < uVar23)) {\n          *(uint *)((int)&to->symsize_ + 4) = uVar8;\n          *(uint *)&to->symsize_ = uVar23;\n        }\n        uVar23 = (uint)pSVar7->st_value;\n        uVar8 = *(uint *)((int)&pSVar7->st_value + 4);\n        uVar9 = *(uint *)((int)&to->value_ + 4);\n        if (uVar9 < uVar8 || uVar9 - uVar8 < (uint)((uint)to->value_ < uVar23)) {\n          *(uint *)((int)&to->value_ + 4) = uVar8;\n          *(uint *)&to->value_ = uVar23;\n        }\n      }\n      if (adjust_dyndef != false) {\n        bVar19 = (to->super_Symbol).field_0x2c;\n        if (((bVar19 & 1) == 0) || ((bVar19 & 2) != 0)) {\n          (to->super_Symbol).field_0x2c =\n               (to->super_Symbol).field_0x2c & 0xfd |\n               ((int)(uint)pSVar7->st_info >> 4 == 2) * '\x02' | 1;\n        }\n      }\n      bVar19 = pSVar7->st_other & 3;\n      if ((pSVar7->st_other & 3) != 0) {\n        bVar2 = (to->super_Symbol).field_0x29;\n        if (((bVar2 & 3) == 0) || (bVar19 < (bVar2 & 3))) {\n          (to->super_Symbol).field_0x29 = bVar19 | bVar2 & 0xfc;\n        }\n      }\n    }" { (expression_statement "pSVar7 = sym->p_;" (assignment_expression "pSVar7 = sym->p_" identifier = (field_expression "sym->p_" identifier -> field_identifier)) ;) (if_statement "if (adjust_common_sizes != false) {\n        uVar23 = (uint)pSVar7->st_size;\n        uVar8 = *(uint *)((int)&pSVar7->st_size + 4);\n        if (uVar6 < uVar8 || uVar6 - uVar8 < (uint)(uVar3 < uVar23)) {\n          *(uint *)((int)&to->symsize_ + 4) = uVar8;\n          *(uint *)&to->symsize_ = uVar23;\n        }\n        uVar23 = (uint)pSVar7->st_value;\n        uVar8 = *(uint *)((int)&pSVar7->st_value + 4);\n        uVar9 = *(uint *)((int)&to->value_ + 4);\n        if (uVar9 < uVar8 || uVar9 - uVar8 < (uint)((uint)to->value_ < uVar23)) {\n          *(uint *)((int)&to->value_ + 4) = uVar8;\n          *(uint *)&to->value_ = uVar23;\n        }\n      }" if (parenthesized_expression "(adjust_common_sizes != false)" ( (binary_expression "adjust_common_sizes != false" identifier != false) )) (compound_statement "{\n        uVar23 = (uint)pSVar7->st_size;\n        uVar8 = *(uint *)((int)&pSVar7->st_size + 4);\n        if (uVar6 < uVar8 || uVar6 - uVar8 < (uint)(uVar3 < uVar23)) {\n          *(uint *)((int)&to->symsize_ + 4) = uVar8;\n          *(uint *)&to->symsize_ = uVar23;\n        }\n        uVar23 = (uint)pSVar7->st_value;\n        uVar8 = *(uint *)((int)&pSVar7->st_value + 4);\n        uVar9 = *(uint *)((int)&to->value_ + 4);\n        if (uVar9 < uVar8 || uVar9 - uVar8 < (uint)((uint)to->value_ < uVar23)) {\n          *(uint *)((int)&to->value_ + 4) = uVar8;\n          *(uint *)&to->value_ = uVar23;\n        }\n      }" { (expression_statement "uVar23 = (uint)pSVar7->st_size;" (assignment_expression "uVar23 = (uint)pSVar7->st_size" identifier = (cast_expression "(uint)pSVar7->st_size" ( (type_descriptor "uint" type_identifier) ) (field_expression "pSVar7->st_size" identifier -> field_identifier))) ;) (expression_statement "uVar8 = *(uint *)((int)&pSVar7->st_size + 4);" (assignment_expression "uVar8 = *(uint *)((int)&pSVar7->st_size + 4)" identifier = (pointer_expression "*(uint *)((int)&pSVar7->st_size + 4)" * (cast_expression "(uint *)((int)&pSVar7->st_size + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pSVar7->st_size + 4)" ( (binary_expression "(int)&pSVar7->st_size + 4" (cast_expression "(int)&pSVar7->st_size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pSVar7->st_size" & (field_expression "pSVar7->st_size" identifier -> field_identifier))) + number_literal) ))))) ;) (if_statement "if (uVar6 < uVar8 || uVar6 - uVar8 < (uint)(uVar3 < uVar23)) {\n          *(uint *)((int)&to->symsize_ + 4) = uVar8;\n          *(uint *)&to->symsize_ = uVar23;\n        }" if (parenthesized_expression "(uVar6 < uVar8 || uVar6 - uVar8 < (uint)(uVar3 < uVar23))" ( (binary_expression "uVar6 < uVar8 || uVar6 - uVar8 < (uint)(uVar3 < uVar23)" (binary_expression "uVar6 < uVar8" identifier < identifier) || (binary_expression "uVar6 - uVar8 < (uint)(uVar3 < uVar23)" (binary_expression "uVar6 - uVar8" identifier - identifier) < (call_expression "(uint)(uVar3 < uVar23)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar3 < uVar23)" ( (binary_expression "uVar3 < uVar23" identifier < identifier) ))))) )) (compound_statement "{\n          *(uint *)((int)&to->symsize_ + 4) = uVar8;\n          *(uint *)&to->symsize_ = uVar23;\n        }" { (expression_statement "*(uint *)((int)&to->symsize_ + 4) = uVar8;" (assignment_expression "*(uint *)((int)&to->symsize_ + 4) = uVar8" (pointer_expression "*(uint *)((int)&to->symsize_ + 4)" * (cast_expression "(uint *)((int)&to->symsize_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&to->symsize_ + 4)" ( (binary_expression "(int)&to->symsize_ + 4" (cast_expression "(int)&to->symsize_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&to->symsize_" & (field_expression "to->symsize_" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)&to->symsize_ = uVar23;" (assignment_expression "*(uint *)&to->symsize_ = uVar23" (pointer_expression "*(uint *)&to->symsize_" * (cast_expression "(uint *)&to->symsize_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&to->symsize_" & (field_expression "to->symsize_" identifier -> field_identifier)))) = identifier) ;) })) (expression_statement "uVar23 = (uint)pSVar7->st_value;" (assignment_expression "uVar23 = (uint)pSVar7->st_value" identifier = (cast_expression "(uint)pSVar7->st_value" ( (type_descriptor "uint" type_identifier) ) (field_expression "pSVar7->st_value" identifier -> field_identifier))) ;) (expression_statement "uVar8 = *(uint *)((int)&pSVar7->st_value + 4);" (assignment_expression "uVar8 = *(uint *)((int)&pSVar7->st_value + 4)" identifier = (pointer_expression "*(uint *)((int)&pSVar7->st_value + 4)" * (cast_expression "(uint *)((int)&pSVar7->st_value + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pSVar7->st_value + 4)" ( (binary_expression "(int)&pSVar7->st_value + 4" (cast_expression "(int)&pSVar7->st_value" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pSVar7->st_value" & (field_expression "pSVar7->st_value" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar9 = *(uint *)((int)&to->value_ + 4);" (assignment_expression "uVar9 = *(uint *)((int)&to->value_ + 4)" identifier = (pointer_expression "*(uint *)((int)&to->value_ + 4)" * (cast_expression "(uint *)((int)&to->value_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&to->value_ + 4)" ( (binary_expression "(int)&to->value_ + 4" (cast_expression "(int)&to->value_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&to->value_" & (field_expression "to->value_" identifier -> field_identifier))) + number_literal) ))))) ;) (if_statement "if (uVar9 < uVar8 || uVar9 - uVar8 < (uint)((uint)to->value_ < uVar23)) {\n          *(uint *)((int)&to->value_ + 4) = uVar8;\n          *(uint *)&to->value_ = uVar23;\n        }" if (parenthesized_expression "(uVar9 < uVar8 || uVar9 - uVar8 < (uint)((uint)to->value_ < uVar23))" ( (binary_expression "uVar9 < uVar8 || uVar9 - uVar8 < (uint)((uint)to->value_ < uVar23)" (binary_expression "uVar9 < uVar8" identifier < identifier) || (binary_expression "uVar9 - uVar8 < (uint)((uint)to->value_ < uVar23)" (binary_expression "uVar9 - uVar8" identifier - identifier) < (call_expression "(uint)((uint)to->value_ < uVar23)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)to->value_ < uVar23)" ( (binary_expression "(uint)to->value_ < uVar23" (cast_expression "(uint)to->value_" ( (type_descriptor "uint" type_identifier) ) (field_expression "to->value_" identifier -> field_identifier)) < identifier) ))))) )) (compound_statement "{\n          *(uint *)((int)&to->value_ + 4) = uVar8;\n          *(uint *)&to->value_ = uVar23;\n        }" { (expression_statement "*(uint *)((int)&to->value_ + 4) = uVar8;" (assignment_expression "*(uint *)((int)&to->value_ + 4) = uVar8" (pointer_expression "*(uint *)((int)&to->value_ + 4)" * (cast_expression "(uint *)((int)&to->value_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&to->value_ + 4)" ( (binary_expression "(int)&to->value_ + 4" (cast_expression "(int)&to->value_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&to->value_" & (field_expression "to->value_" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)&to->value_ = uVar23;" (assignment_expression "*(uint *)&to->value_ = uVar23" (pointer_expression "*(uint *)&to->value_" * (cast_expression "(uint *)&to->value_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&to->value_" & (field_expression "to->value_" identifier -> field_identifier)))) = identifier) ;) })) })) (if_statement "if (adjust_dyndef != false) {\n        bVar19 = (to->super_Symbol).field_0x2c;\n        if (((bVar19 & 1) == 0) || ((bVar19 & 2) != 0)) {\n          (to->super_Symbol).field_0x2c =\n               (to->super_Symbol).field_0x2c & 0xfd |\n               ((int)(uint)pSVar7->st_info >> 4 == 2) * '\x02' | 1;\n        }\n      }" if (parenthesized_expression "(adjust_dyndef != false)" ( (binary_expression "adjust_dyndef != false" identifier != false) )) (compound_statement "{\n        bVar19 = (to->super_Symbol).field_0x2c;\n        if (((bVar19 & 1) == 0) || ((bVar19 & 2) != 0)) {\n          (to->super_Symbol).field_0x2c =\n               (to->super_Symbol).field_0x2c & 0xfd |\n               ((int)(uint)pSVar7->st_info >> 4 == 2) * '\x02' | 1;\n        }\n      }" { (expression_statement "bVar19 = (to->super_Symbol).field_0x2c;" (assignment_expression "bVar19 = (to->super_Symbol).field_0x2c" identifier = (field_expression "(to->super_Symbol).field_0x2c" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (((bVar19 & 1) == 0) || ((bVar19 & 2) != 0)) {\n          (to->super_Symbol).field_0x2c =\n               (to->super_Symbol).field_0x2c & 0xfd |\n               ((int)(uint)pSVar7->st_info >> 4 == 2) * '\x02' | 1;\n        }" if (parenthesized_expression "(((bVar19 & 1) == 0) || ((bVar19 & 2) != 0))" ( (binary_expression "((bVar19 & 1) == 0) || ((bVar19 & 2) != 0)" (parenthesized_expression "((bVar19 & 1) == 0)" ( (binary_expression "(bVar19 & 1) == 0" (parenthesized_expression "(bVar19 & 1)" ( (binary_expression "bVar19 & 1" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "((bVar19 & 2) != 0)" ( (binary_expression "(bVar19 & 2) != 0" (parenthesized_expression "(bVar19 & 2)" ( (binary_expression "bVar19 & 2" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          (to->super_Symbol).field_0x2c =\n               (to->super_Symbol).field_0x2c & 0xfd |\n               ((int)(uint)pSVar7->st_info >> 4 == 2) * '\x02' | 1;\n        }" { (expression_statement "(to->super_Symbol).field_0x2c =\n               (to->super_Symbol).field_0x2c & 0xfd |\n               ((int)(uint)pSVar7->st_info >> 4 == 2) * '\x02' | 1;" (assignment_expression "(to->super_Symbol).field_0x2c =\n               (to->super_Symbol).field_0x2c & 0xfd |\n               ((int)(uint)pSVar7->st_info >> 4 == 2) * '\x02' | 1" (field_expression "(to->super_Symbol).field_0x2c" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier) = (binary_expression "(to->super_Symbol).field_0x2c & 0xfd |\n               ((int)(uint)pSVar7->st_info >> 4 == 2) * '\x02' | 1" (binary_expression "(to->super_Symbol).field_0x2c & 0xfd |\n               ((int)(uint)pSVar7->st_info >> 4 == 2) * '\x02'" (binary_expression "(to->super_Symbol).field_0x2c & 0xfd" (field_expression "(to->super_Symbol).field_0x2c" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) | (binary_expression "((int)(uint)pSVar7->st_info >> 4 == 2) * '\x02'" (parenthesized_expression "((int)(uint)pSVar7->st_info >> 4 == 2)" ( (binary_expression "(int)(uint)pSVar7->st_info >> 4 == 2" (binary_expression "(int)(uint)pSVar7->st_info >> 4" (cast_expression "(int)(uint)pSVar7->st_info" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)pSVar7->st_info" ( (type_descriptor "uint" type_identifier) ) (field_expression "pSVar7->st_info" identifier -> field_identifier))) >> number_literal) == number_literal) )) * (char_literal "'\x02'" ' escape_sequence '))) | number_literal)) ;) })) })) (expression_statement "bVar19 = pSVar7->st_other & 3;" (assignment_expression "bVar19 = pSVar7->st_other & 3" identifier = (binary_expression "pSVar7->st_other & 3" (field_expression "pSVar7->st_other" identifier -> field_identifier) & number_literal)) ;) (if_statement "if ((pSVar7->st_other & 3) != 0) {\n        bVar2 = (to->super_Symbol).field_0x29;\n        if (((bVar2 & 3) == 0) || (bVar19 < (bVar2 & 3))) {\n          (to->super_Symbol).field_0x29 = bVar19 | bVar2 & 0xfc;\n        }\n      }" if (parenthesized_expression "((pSVar7->st_other & 3) != 0)" ( (binary_expression "(pSVar7->st_other & 3) != 0" (parenthesized_expression "(pSVar7->st_other & 3)" ( (binary_expression "pSVar7->st_other & 3" (field_expression "pSVar7->st_other" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n        bVar2 = (to->super_Symbol).field_0x29;\n        if (((bVar2 & 3) == 0) || (bVar19 < (bVar2 & 3))) {\n          (to->super_Symbol).field_0x29 = bVar19 | bVar2 & 0xfc;\n        }\n      }" { (expression_statement "bVar2 = (to->super_Symbol).field_0x29;" (assignment_expression "bVar2 = (to->super_Symbol).field_0x29" identifier = (field_expression "(to->super_Symbol).field_0x29" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (((bVar2 & 3) == 0) || (bVar19 < (bVar2 & 3))) {\n          (to->super_Symbol).field_0x29 = bVar19 | bVar2 & 0xfc;\n        }" if (parenthesized_expression "(((bVar2 & 3) == 0) || (bVar19 < (bVar2 & 3)))" ( (binary_expression "((bVar2 & 3) == 0) || (bVar19 < (bVar2 & 3))" (parenthesized_expression "((bVar2 & 3) == 0)" ( (binary_expression "(bVar2 & 3) == 0" (parenthesized_expression "(bVar2 & 3)" ( (binary_expression "bVar2 & 3" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(bVar19 < (bVar2 & 3))" ( (binary_expression "bVar19 < (bVar2 & 3)" identifier < (parenthesized_expression "(bVar2 & 3)" ( (binary_expression "bVar2 & 3" identifier & number_literal) ))) ))) )) (compound_statement "{\n          (to->super_Symbol).field_0x29 = bVar19 | bVar2 & 0xfc;\n        }" { (expression_statement "(to->super_Symbol).field_0x29 = bVar19 | bVar2 & 0xfc;" (assignment_expression "(to->super_Symbol).field_0x29 = bVar19 | bVar2 & 0xfc" (field_expression "(to->super_Symbol).field_0x29" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier) = (binary_expression "bVar19 | bVar2 & 0xfc" identifier | (binary_expression "bVar2 & 0xfc" identifier & number_literal))) ;) })) })) }))) (expression_statement "bVar19 = (to->super_Symbol).field_0x2a;" (assignment_expression "bVar19 = (to->super_Symbol).field_0x2a" identifier = (field_expression "(to->super_Symbol).field_0x2a" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((bVar19 & 7) == 0) {\n      pOVar10 = (to->super_Symbol).u1_.output_segment;\n      bVar2 = *(byte *)&pOVar10->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage;\n      if ((((bVar2 & 1) != 0) && ((char)bVar19 < '\0')) &&\n         (((to->super_Symbol).field_0x2c & 2) == 0)) {\n        *(byte *)&pOVar10->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage = bVar2 | 2;\n      }\n    }" if (parenthesized_expression "((bVar19 & 7) == 0)" ( (binary_expression "(bVar19 & 7) == 0" (parenthesized_expression "(bVar19 & 7)" ( (binary_expression "bVar19 & 7" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      pOVar10 = (to->super_Symbol).u1_.output_segment;\n      bVar2 = *(byte *)&pOVar10->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage;\n      if ((((bVar2 & 1) != 0) && ((char)bVar19 < '\0')) &&\n         (((to->super_Symbol).field_0x2c & 2) == 0)) {\n        *(byte *)&pOVar10->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage = bVar2 | 2;\n      }\n    }" { (expression_statement "pOVar10 = (to->super_Symbol).u1_.output_segment;" (assignment_expression "pOVar10 = (to->super_Symbol).u1_.output_segment" identifier = (field_expression "(to->super_Symbol).u1_.output_segment" (field_expression "(to->super_Symbol).u1_" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "bVar2 = *(byte *)&pOVar10->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage;" (field_expression "bVar2 = *(byte *)&pOVar10->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_end_of_storage" (field_expression "bVar2 = *(byte *)&pOVar10->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl" (binary_expression "bVar2 = *(byte *)&pOVar10->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "bVar2 = *(byte *)&pOVar10->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "bVar2 = *(byte *)&pOVar10->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std" (assignment_expression "bVar2 = *(byte *)&pOVar10->output_lists_[3].\n                        super__Vector_base<gold" identifier = (binary_expression "*(byte *)&pOVar10->output_lists_[3].\n                        super__Vector_base<gold" (pointer_expression "*(byte *)&pOVar10->output_lists_[3].\n                        super__Vector_base" * (cast_expression "(byte *)&pOVar10->output_lists_[3].\n                        super__Vector_base" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar10->output_lists_[3].\n                        super__Vector_base" & (field_expression "pOVar10->output_lists_[3].\n                        super__Vector_base" (subscript_expression "pOVar10->output_lists_[3]" (field_expression "pOVar10->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier)))) < identifier)) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if ((((bVar2 & 1) != 0) && ((char)bVar19 < '\0')) &&\n         (((to->super_Symbol).field_0x2c & 2) == 0)) {\n        *(byte *)&pOVar10->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage = bVar2 | 2;\n      }" if (parenthesized_expression "((((bVar2 & 1) != 0) && ((char)bVar19 < '\0')) &&\n         (((to->super_Symbol).field_0x2c & 2) == 0))" ( (binary_expression "(((bVar2 & 1) != 0) && ((char)bVar19 < '\0')) &&\n         (((to->super_Symbol).field_0x2c & 2) == 0)" (parenthesized_expression "(((bVar2 & 1) != 0) && ((char)bVar19 < '\0'))" ( (binary_expression "((bVar2 & 1) != 0) && ((char)bVar19 < '\0')" (parenthesized_expression "((bVar2 & 1) != 0)" ( (binary_expression "(bVar2 & 1) != 0" (parenthesized_expression "(bVar2 & 1)" ( (binary_expression "bVar2 & 1" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "((char)bVar19 < '\0')" ( (binary_expression "(char)bVar19 < '\0'" (cast_expression "(char)bVar19" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(((to->super_Symbol).field_0x2c & 2) == 0)" ( (binary_expression "((to->super_Symbol).field_0x2c & 2) == 0" (parenthesized_expression "((to->super_Symbol).field_0x2c & 2)" ( (binary_expression "(to->super_Symbol).field_0x2c & 2" (field_expression "(to->super_Symbol).field_0x2c" (parenthesized_expression "(to->super_Symbol)" ( (field_expression "to->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n        *(byte *)&pOVar10->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage = bVar2 | 2;\n      }" { (expression_statement "*(byte *)&pOVar10->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage = bVar2 | 2;" (assignment_expression "*(byte *)&pOVar10->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage = bVar2 | 2" (field_expression "*(byte *)&pOVar10->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_end_of_storage" (field_expression "*(byte *)&pOVar10->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl" (binary_expression "*(byte *)&pOVar10->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "*(byte *)&pOVar10->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "*(byte *)&pOVar10->output_lists_[3].\n                  super__Vector_base<gold::Output_data*,_std" (binary_expression "*(byte *)&pOVar10->output_lists_[3].\n                  super__Vector_base<gold" (pointer_expression "*(byte *)&pOVar10->output_lists_[3].\n                  super__Vector_base" * (cast_expression "(byte *)&pOVar10->output_lists_[3].\n                  super__Vector_base" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar10->output_lists_[3].\n                  super__Vector_base" & (field_expression "pOVar10->output_lists_[3].\n                  super__Vector_base" (subscript_expression "pOVar10->output_lists_[3]" (field_expression "pOVar10->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier)))) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (binary_expression "bVar2 | 2" identifier | number_literal)) ;) })) })) (if_statement "if (adjust_common_sizes != false) {\n      if (parameters->options_ == (General_options *)0x0) {\nLAB_001ccb98:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n      }\n      if ((parameters->options_->warn_common_).value != false) {\n        uVar23 = (uint)sym->p_->st_size;\n        uVar8 = *(uint *)((int)&sym->p_->st_size + 4);\n        if (uVar8 < uVar6 || uVar8 - uVar6 < (uint)(uVar23 < uVar3)) {\n          pcVar24 = "common of \'%s\' overriding smaller common";\n        }\n        else if (uVar6 < uVar8 || uVar6 - uVar8 < (uint)(uVar3 < uVar23)) {\n          pcVar24 = "common of \'%s\' overidden by larger common";\n        }\n        else {\n          pcVar24 = "multiple common of \'%s\'";\n        }\n        pcVar24 = (char *)gettext(pcVar24);\n        report_resolve_problem(false,pcVar24,&to->super_Symbol,OBJECT,object);\n      }\n    }" if (parenthesized_expression "(adjust_common_sizes != false)" ( (binary_expression "adjust_common_sizes != false" identifier != false) )) (compound_statement "{\n      if (parameters->options_ == (General_options *)0x0) {\nLAB_001ccb98:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n      }\n      if ((parameters->options_->warn_common_).value != false) {\n        uVar23 = (uint)sym->p_->st_size;\n        uVar8 = *(uint *)((int)&sym->p_->st_size + 4);\n        if (uVar8 < uVar6 || uVar8 - uVar6 < (uint)(uVar23 < uVar3)) {\n          pcVar24 = "common of \'%s\' overriding smaller common";\n        }\n        else if (uVar6 < uVar8 || uVar6 - uVar8 < (uint)(uVar3 < uVar23)) {\n          pcVar24 = "common of \'%s\' overidden by larger common";\n        }\n        else {\n          pcVar24 = "multiple common of \'%s\'";\n        }\n        pcVar24 = (char *)gettext(pcVar24);\n        report_resolve_problem(false,pcVar24,&to->super_Symbol,OBJECT,object);\n      }\n    }" { (if_statement "if (parameters->options_ == (General_options *)0x0) {\nLAB_001ccb98:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n      }" if (parenthesized_expression "(parameters->options_ == (General_options *)0x0)" ( (binary_expression "parameters->options_ == (General_options *)0x0" (field_expression "parameters->options_" identifier -> field_identifier) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_001ccb98:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n      }" { (labeled_statement "LAB_001ccb98:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;)) })) (if_statement "if ((parameters->options_->warn_common_).value != false) {\n        uVar23 = (uint)sym->p_->st_size;\n        uVar8 = *(uint *)((int)&sym->p_->st_size + 4);\n        if (uVar8 < uVar6 || uVar8 - uVar6 < (uint)(uVar23 < uVar3)) {\n          pcVar24 = "common of \'%s\' overriding smaller common";\n        }\n        else if (uVar6 < uVar8 || uVar6 - uVar8 < (uint)(uVar3 < uVar23)) {\n          pcVar24 = "common of \'%s\' overidden by larger common";\n        }\n        else {\n          pcVar24 = "multiple common of \'%s\'";\n        }\n        pcVar24 = (char *)gettext(pcVar24);\n        report_resolve_problem(false,pcVar24,&to->super_Symbol,OBJECT,object);\n      }" if (parenthesized_expression "((parameters->options_->warn_common_).value != false)" ( (binary_expression "(parameters->options_->warn_common_).value != false" (field_expression "(parameters->options_->warn_common_).value" (parenthesized_expression "(parameters->options_->warn_common_)" ( (field_expression "parameters->options_->warn_common_" (field_expression "parameters->options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) != false) )) (compound_statement "{\n        uVar23 = (uint)sym->p_->st_size;\n        uVar8 = *(uint *)((int)&sym->p_->st_size + 4);\n        if (uVar8 < uVar6 || uVar8 - uVar6 < (uint)(uVar23 < uVar3)) {\n          pcVar24 = "common of \'%s\' overriding smaller common";\n        }\n        else if (uVar6 < uVar8 || uVar6 - uVar8 < (uint)(uVar3 < uVar23)) {\n          pcVar24 = "common of \'%s\' overidden by larger common";\n        }\n        else {\n          pcVar24 = "multiple common of \'%s\'";\n        }\n        pcVar24 = (char *)gettext(pcVar24);\n        report_resolve_problem(false,pcVar24,&to->super_Symbol,OBJECT,object);\n      }" { (expression_statement "uVar23 = (uint)sym->p_->st_size;" (assignment_expression "uVar23 = (uint)sym->p_->st_size" identifier = (cast_expression "(uint)sym->p_->st_size" ( (type_descriptor "uint" type_identifier) ) (field_expression "sym->p_->st_size" (field_expression "sym->p_" identifier -> field_identifier) -> field_identifier))) ;) (expression_statement "uVar8 = *(uint *)((int)&sym->p_->st_size + 4);" (assignment_expression "uVar8 = *(uint *)((int)&sym->p_->st_size + 4)" identifier = (pointer_expression "*(uint *)((int)&sym->p_->st_size + 4)" * (cast_expression "(uint *)((int)&sym->p_->st_size + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&sym->p_->st_size + 4)" ( (binary_expression "(int)&sym->p_->st_size + 4" (cast_expression "(int)&sym->p_->st_size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&sym->p_->st_size" & (field_expression "sym->p_->st_size" (field_expression "sym->p_" identifier -> field_identifier) -> field_identifier))) + number_literal) ))))) ;) (if_statement "if (uVar8 < uVar6 || uVar8 - uVar6 < (uint)(uVar23 < uVar3)) {\n          pcVar24 = "common of \'%s\' overriding smaller common";\n        }\n        else if (uVar6 < uVar8 || uVar6 - uVar8 < (uint)(uVar3 < uVar23)) {\n          pcVar24 = "common of \'%s\' overidden by larger common";\n        }\n        else {\n          pcVar24 = "multiple common of \'%s\'";\n        }" if (parenthesized_expression "(uVar8 < uVar6 || uVar8 - uVar6 < (uint)(uVar23 < uVar3))" ( (binary_expression "uVar8 < uVar6 || uVar8 - uVar6 < (uint)(uVar23 < uVar3)" (binary_expression "uVar8 < uVar6" identifier < identifier) || (binary_expression "uVar8 - uVar6 < (uint)(uVar23 < uVar3)" (binary_expression "uVar8 - uVar6" identifier - identifier) < (call_expression "(uint)(uVar23 < uVar3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar23 < uVar3)" ( (binary_expression "uVar23 < uVar3" identifier < identifier) ))))) )) (compound_statement "{\n          pcVar24 = "common of \'%s\' overriding smaller common";\n        }" { (expression_statement "pcVar24 = "common of \'%s\' overriding smaller common";" (assignment_expression "pcVar24 = "common of \'%s\' overriding smaller common"" identifier = (string_literal ""common of \'%s\' overriding smaller common"" " string_content escape_sequence string_content escape_sequence string_content ")) ;) }) (else_clause "else if (uVar6 < uVar8 || uVar6 - uVar8 < (uint)(uVar3 < uVar23)) {\n          pcVar24 = "common of \'%s\' overidden by larger common";\n        }\n        else {\n          pcVar24 = "multiple common of \'%s\'";\n        }" else (if_statement "if (uVar6 < uVar8 || uVar6 - uVar8 < (uint)(uVar3 < uVar23)) {\n          pcVar24 = "common of \'%s\' overidden by larger common";\n        }\n        else {\n          pcVar24 = "multiple common of \'%s\'";\n        }" if (parenthesized_expression "(uVar6 < uVar8 || uVar6 - uVar8 < (uint)(uVar3 < uVar23))" ( (binary_expression "uVar6 < uVar8 || uVar6 - uVar8 < (uint)(uVar3 < uVar23)" (binary_expression "uVar6 < uVar8" identifier < identifier) || (binary_expression "uVar6 - uVar8 < (uint)(uVar3 < uVar23)" (binary_expression "uVar6 - uVar8" identifier - identifier) < (call_expression "(uint)(uVar3 < uVar23)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar3 < uVar23)" ( (binary_expression "uVar3 < uVar23" identifier < identifier) ))))) )) (compound_statement "{\n          pcVar24 = "common of \'%s\' overidden by larger common";\n        }" { (expression_statement "pcVar24 = "common of \'%s\' overidden by larger common";" (assignment_expression "pcVar24 = "common of \'%s\' overidden by larger common"" identifier = (string_literal ""common of \'%s\' overidden by larger common"" " string_content escape_sequence string_content escape_sequence string_content ")) ;) }) (else_clause "else {\n          pcVar24 = "multiple common of \'%s\'";\n        }" else (compound_statement "{\n          pcVar24 = "multiple common of \'%s\'";\n        }" { (expression_statement "pcVar24 = "multiple common of \'%s\'";" (assignment_expression "pcVar24 = "multiple common of \'%s\'"" identifier = (string_literal ""multiple common of \'%s\'"" " string_content escape_sequence string_content escape_sequence ")) ;) }))))) (expression_statement "pcVar24 = (char *)gettext(pcVar24);" (assignment_expression "pcVar24 = (char *)gettext(pcVar24)" identifier = (cast_expression "(char *)gettext(pcVar24)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext(pcVar24)" identifier (argument_list "(pcVar24)" ( identifier ))))) ;) (expression_statement "report_resolve_problem(false,pcVar24,&to->super_Symbol,OBJECT,object);" (call_expression "report_resolve_problem(false,pcVar24,&to->super_Symbol,OBJECT,object)" identifier (argument_list "(false,pcVar24,&to->super_Symbol,OBJECT,object)" ( false , identifier , (pointer_expression "&to->super_Symbol" & (field_expression "to->super_Symbol" identifier -> field_identifier)) , identifier , identifier ))) ;) })) })) })) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "undefined4 * __regparm2\nFUN_001cc840(undefined4 param_1,undefined4 param_2,undefined **param_3,undefined4 *param_4,\n            int *param_5,undefined1 *param_6,uint param_7,int param_8,int *param_9,\n            undefined **param_10,uint param_11)\n\n{\n  byte bVar1;\n  int *piVar2;\n  code *pcVar3;\n  uint uVar4;\n  char **ppcVar5;\n  uint uVar6;\n  char cVar7;\n  byte bVar8;\n  undefined4 *puVar9;\n  char *pcVar10;\n  int iVar11;\n  undefined4 uVar12;\n  undefined **ppuVar13;\n  undefined4 uVar14;\n  undefined ***pppuVar15;\n  bool bVar16;\n  undefined **ppuStack_94;\n  undefined **ppuStack_90;\n  undefined1 auStack_8c [12];\n  undefined4 *local_80;\n  char **local_7c;\n  undefined4 *local_78;\n  undefined4 **local_74;\n  int **local_70;\n  undefined1 *local_6c;\n  uint local_68;\n  char **local_64;\n  undefined **local_60;\n  undefined **local_5c;\n  uint local_58;\n  undefined1 local_54 [8];\n  char *local_4c;\n  undefined4 local_48;\n  int *local_44;\n  int local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 *local_34;\n  undefined1 *local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  \n  local_5c = &__DT_PLTGOT;\n  local_58 = param_7;\n  local_68 = param_11;\n  if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\n    ppuStack_94 = (undefined **)0x2a09d4;\n    ppuStack_90 = (undefined **)param_2;\n    local_5c = &__DT_PLTGOT;\n                    \n    FUN_00069d00("../../gold/symtab.h",0xaa);\n  }\n  local_64 = (char **)(CONCAT31(local_64._1_3_,*(byte *)((int)param_4 + 0x2b) >> 5) & 0xffffff01);\n  local_6c = (undefined1 *)param_4[3];\n  ppuVar13 = &__DT_PLTGOT;\n  if (param_9 == (int *)param_4[2]) {\n    if ((byte)local_64 == '\0') {\n      local_5c = &__DT_PLTGOT;\n      cVar7 = FUN_00177470(local_6c);\n      ppuVar13 = local_5c;\n      if ((cVar7 == '\x01') || ((char)local_58 == '\0')) goto LAB_001cc88e;\n    }\n    else if ((local_6c != (undefined1 *)0x0) &&\n            ((local_58._0_1_ = (char)param_7, bVar16 = (char)local_58 != '\0', ppuVar13 = local_5c,\n             bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c)))) goto LAB_001ccb65;\n  }\n  else {\nLAB_001cc88e:\n    local_5c = ppuVar13;\n    bVar16 = (char)local_58 == '\0';\n    ppuVar13 = local_5c;\n    if ((param_6 == (undefined1 *)0xfff1 && bVar16) &&\n       (((byte)local_64 == '\0' && (local_6c == (undefined1 *)0xfff1)))) {\nLAB_001ccb65:\n      puVar9 = (undefined4 *)(param_4[0xc] ^ *(uint *)(*param_5 + 8));\n      ppuVar13 = local_5c;\n      if (param_4[0xd] == *(int *)(*param_5 + 0xc) && puVar9 == (undefined4 *)0x0) {\n        return puVar9;\n      }\n    }\n  }\n  local_5c = ppuVar13;\n  pppuVar15 = (undefined ***)auStack_8c;\n  local_60 = local_5c + 0xde;\n  piVar2 = *(int **)(*local_60 + 0xc);\n  if (piVar2 == (int *)0x0) {\n    ppuStack_94 = local_5c + -0x3b9ab;\n    ppuStack_90 = (undefined **)piVar2;\n                    \n    FUN_00069d00(local_5c + -0x41f7c,0x69);\n  }\n  if ((*(char *)(piVar2[1] + 0xd) != '\0') &&\n     (puVar9 = (undefined4 *)(**(code **)(*piVar2 + 0xac))(piVar2,param_4,param_5,param_9,param_10),\n     (char)puVar9 != '\0')) {\n    return puVar9;\n  }\n  if ((*(byte *)(param_9 + 0xb) & 1) == 0) {\n    pcVar10 = (char *)(*(byte *)(*param_5 + 4) & 0xf);\n    if (((char)pcVar10 == '\x05') &&\n       (((char)local_58 != '\0' || (pcVar10 = (char *)FUN_00177470(param_6), (char)pcVar10 == '\0'))\n       )) {\n      if ((*(byte *)((int)param_4 + 0x2a) & 7) == 0) {\n        uVar12 = *(undefined4 *)(param_4[2] + 4);\n        FUN_00178890(&local_34,param_4);\n        puVar9 = local_34;\n        uVar14 = gettext(local_5c + -0x3b985);\n                    \n        FUN_000654e0(uVar14,puVar9,uVar12);\n        if (local_34 == &local_2c) {\n          return local_34;\n        }\n        puVar9 = (undefined4 *)FUN_001e6db0(local_34);\n        return puVar9;\n      }\n      goto LAB_001cd065;\n    }\n    *(byte *)((int)param_4 + 0x2a) = *(byte *)((int)param_4 + 0x2a) | 0x80;\n    iVar11 = (**(code **)(*param_9 + 0x14))(param_9);\n  }\n  else {\n    if ((param_6 == (undefined1 *)0x0) &&\n       (puVar9 = (undefined4 *)((*(byte *)((int)param_4 + 0x29) & 3) - 1),\n       puVar9 < (undefined4 *)0x2)) {\n      return puVar9;\n    }\n    *(byte *)((int)param_4 + 0x2b) = *(byte *)((int)param_4 + 0x2b) | 1;\n    iVar11 = (**(code **)(*param_9 + 0x14))(param_9);\n  }\n  if ((iVar11 == 0) && ((*(byte *)(param_9 + 0xb) & 1) == 0)) {\n    *(byte *)((int)param_4 + 0x2b) = *(byte *)((int)param_4 + 0x2b) | 0x40;\n  }\n  if (((*(byte *)((int)param_4 + 0x2a) & 7) == 0) &&\n     (iVar11 = (**(code **)(*(int *)param_4[2] + 0x14))((int *)param_4[2]), iVar11 != 0)) {\n    puVar9 = *(undefined4 **)(*local_60 + 8);\n    pppuVar15 = (undefined ***)auStack_8c;\n    if (puVar9 == (undefined4 *)0x0) goto LAB_001ccb98;\n    if (*(char *)(puVar9[0x164f] + 0x61) != '\0') {\n      if (((((*(byte *)((int)param_4 + 0x2a) & 7) != 0) ||\n           ((*(byte *)((int)param_4 + 0x2b) & 0x20) != 0)) ||\n          (cVar7 = FUN_00177470(param_4[3]), cVar7 != '\x01')) ||\n         (((char)local_58 != '\0' || (cVar7 = FUN_00177470(param_6), cVar7 == '\0')))) {\n        ppuStack_94 = param_10;\n        puVar9 = (undefined4 *)FUN_001cb040(param_3,param_4,param_5,param_6,local_58 & 0xff,param_9)\n        ;\n        return puVar9;\n      }\n      local_5c = (undefined **)param_4[0xf];\n      local_60 = (undefined **)param_4[0xe];\n      uVar4 = param_4[0xd];\n      local_58 = param_4[0xc];\n      ppuStack_94 = param_10;\n      FUN_001cb040(param_3,param_4,param_5,param_6,0,param_9);\n      if ((uint)param_4[0xf] < local_5c ||\n          (uint)(param_4[0xf] - (int)local_5c) < (uint)((uint)param_4[0xe] < local_60)) {\n        param_4[0xe] = local_60;\n        param_4[0xf] = local_5c;\n      }\n      uVar6 = param_4[0xd] - uVar4;\n      puVar9 = (undefined4 *)(uVar6 - ((uint)param_4[0xc] < local_58));\n      if (uVar4 <= (uint)param_4[0xd] && ((uint)param_4[0xc] < local_58) <= uVar6) {\n        return puVar9;\n      }\n      param_4[0xc] = local_58;\n      param_4[0xd] = uVar4;\n      return puVar9;\n    }\n  }\n  else {\n    puVar9 = *(undefined4 **)(*local_60 + 8);\n    if (puVar9 == (undefined4 *)0x0) goto LAB_001ccb98;\n  }\n  if (*(char *)((int)puVar9 + 0xe0d) == '\0') {\n    local_74 = &local_34;\n    local_70 = &local_44;\n    pppuVar15 = (undefined ***)auStack_8c;\n  }\n  else {\n    iVar11 = *param_5;\n    if ((int)(uint)*(byte *)(iVar11 + 4) >> 4 != 2) {\n      local_74 = &local_34;\n      local_70 = &local_44;\n      pppuVar15 = (undefined ***)auStack_8c;\n      if (*(byte *)(param_4 + 10) >> 4 != 2) goto LAB_001cc978;\n    }\n    local_74 = &local_34;\n    local_70 = &local_44;\n    pppuVar15 = (undefined ***)auStack_8c;\n    if ((((byte)local_64 & param_8 != 0) != 0) &&\n       (pppuVar15 = (undefined ***)auStack_8c, local_6c != (undefined1 *)0x0)) {\n      local_64 = *(char ***)(iVar11 + 0x10);\n      local_78 = *(undefined4 **)(iVar11 + 0x14);\n      pppuVar15 = (undefined ***)auStack_8c;\n      if (local_78 != (undefined4 *)0x0 || local_64 != (char **)0x0) {\n        local_7c = (char **)param_4[0xe];\n        local_80 = (undefined4 *)param_4[0xf];\n        pppuVar15 = (undefined ***)auStack_8c;\n        if ((local_80 != (undefined4 *)0x0 || local_7c != (char **)0x0) &&\n           (((*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||\n            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80))))\n        {\n          pcVar10 = (char *)*param_4;\n          local_74 = &local_34;\n          local_70 = &local_44;\n          pppuVar15 = (undefined ***)auStack_8c;\n          if ((*pcVar10 == '_') && (pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z')) {\n            local_3c = *(undefined4 *)(iVar11 + 8);\n            local_44 = param_9;\n            local_40 = param_8;\n            local_38 = *(undefined4 *)(iVar11 + 0xc);\n            if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\nLAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;\n              ppuStack_90 = (undefined **)pcVar10;\n                    \n              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);\n            }\n            local_34 = (undefined4 *)param_4[2];\n            local_2c = param_4[0xc];\n            local_30 = local_6c;\n            local_28 = param_4[0xd];\n            ppuStack_90 = param_3;\n            ppuStack_94 = param_3;\n            local_64 = &local_4c;\n            local_4c = pcVar10;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            local_6c = local_54;\n            local_78 = &local_48;\n            FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1);\n            local_4c = (char *)*param_4;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1);\n            pppuVar15 = &ppuStack_94;\n          }\n        }\n      }\n    }\n  }\nLAB_001cc978:\n  iVar11 = *param_9;\n  *(int **)((int)pppuVar15 + -0x10) = param_9;\n  pcVar3 = *(code **)(iVar11 + 0x14);\n  *(undefined4 *)((int)pppuVar15 + -0x14) = 0x1cc981;\n  iVar11 = (*pcVar3)();\n  if (iVar11 == 0) {\n    bVar8 = *(byte *)(*param_5 + 4);\n  }\n  else {\n    bVar8 = *(byte *)(param_4 + 10);\n  }\n  local_6c = (undefined1 *)(local_58 & 0xff);\n  *(undefined1 **)((int)pppuVar15 + -0x10) = local_6c;\n  *(undefined4 *)((int)pppuVar15 + -0x14) = 0x1cc9b9;\n  uVar12 = FUN_001c9700();\n  local_58 = param_4[0xe];\n  local_64 = (char **)param_4[0xf];\n  *(uint *)((int)pppuVar15 + -4) = local_68 & 0xff;\n  *(undefined4 ***)((int)pppuVar15 + -8) = local_74;\n  *(int ***)((int)pppuVar15 + -0xc) = local_70;\n  *(int **)((int)pppuVar15 + -0x10) = param_9;\n  *(undefined4 *)((int)pppuVar15 + -0x14) = 0;\n  *(uint *)((int)pppuVar15 + -0x18) = bVar8 & 0xf;\n  *(undefined4 *)((int)pppuVar15 + -0x1c) = uVar12;\n  *(undefined4 **)((int)pppuVar15 + -0x20) = param_4;\n  *(undefined4 *)((int)pppuVar15 + -0x24) = 0x1cc9de;\n  cVar7 = FUN_001c9b30();\n  if (cVar7 == '\0') {\n    iVar11 = *param_5;\n    if ((char)local_44 != '\0') {\n      uVar4 = *(uint *)(iVar11 + 0x10);\n      ppcVar5 = *(char ***)(iVar11 + 0x14);\n      if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)) {\n        param_4[0xf] = ppcVar5;\n        param_4[0xe] = uVar4;\n      }\n      local_68 = *(uint *)(iVar11 + 8);\n      uVar4 = *(uint *)(iVar11 + 0xc);\n      if ((uint)param_4[0xd] < uVar4 || param_4[0xd] - uVar4 < (uint)((uint)param_4[0xc] < local_68)\n         ) {\n        param_4[0xd] = uVar4;\n        param_4[0xc] = local_68;\n      }\n    }\n    if ((char)local_34 != '\0') {\n      if (((*(byte *)(param_4 + 0xb) & 1) == 0) || ((*(byte *)(param_4 + 0xb) & 2) != 0)) {\n        *(byte *)(param_4 + 0xb) =\n             *(byte *)(param_4 + 0xb) & 0xfd | ((int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2) * '\x02'\n             | 1;\n      }\n    }\n    bVar8 = *(byte *)(iVar11 + 5) & 3;\n    if ((*(byte *)(iVar11 + 5) & 3) != 0) {\n      bVar1 = *(byte *)((int)param_4 + 0x29);\n      if (((bVar1 & 3) == 0) || (bVar8 < (bVar1 & 3))) {\n        *(byte *)((int)param_4 + 0x29) = bVar8 | bVar1 & 0xfc;\n      }\n    }\n  }\n  else {\n    uVar4 = param_4[0xc];\n    local_70 = (int **)CONCAT31(local_70._1_3_,*(byte *)(param_4 + 10) >> 4);\n    local_68 = param_4[0xd];\n    *(undefined ***)((int)pppuVar15 + -8) = param_10;\n    *(int **)((int)pppuVar15 + -0xc) = param_9;\n    *(undefined1 **)((int)pppuVar15 + -0x10) = local_6c;\n    *(undefined1 **)((int)pppuVar15 + -0x14) = param_6;\n    *(int **)((int)pppuVar15 + -0x18) = param_5;\n    *(undefined4 **)((int)pppuVar15 + -0x1c) = param_4;\n    *(undefined ***)((int)pppuVar15 + -0x20) = param_3;\n    *(undefined4 *)((int)pppuVar15 + -0x24) = 0x1cce64;\n    FUN_001cb040();\n    if ((char)local_44 != '\0') {\n      if ((char **)param_4[0xf] < local_64 ||\n          (uint)((int)param_4[0xf] - (int)local_64) < (uint)((uint)param_4[0xe] < local_58)) {\n        param_4[0xf] = local_64;\n        param_4[0xe] = local_58;\n      }\n      if ((uint)param_4[0xd] < local_68 ||\n          param_4[0xd] - local_68 < (uint)((uint)param_4[0xc] < uVar4)) {\n        param_4[0xc] = uVar4;\n        param_4[0xd] = local_68;\n      }\n    }\n    if (((char)local_34 != '\0') &&\n       (((*(byte *)(param_4 + 0xb) & 1) == 0 || ((*(byte *)(param_4 + 0xb) & 2) != 0)))) {\n      *(byte *)(param_4 + 0xb) =\n           *(byte *)(param_4 + 0xb) & 0xfd | ((char)local_70 == '\x02') * '\x02' | 1;\n    }\n  }\n  bVar8 = *(byte *)((int)param_4 + 0x2a);\n  puVar9 = (undefined4 *)(uint)bVar8;\n  if ((bVar8 & 7) == 0) {\n    bVar1 = *(byte *)(param_4[2] + 0x2c);\n    if ((((bVar1 & 1) != 0) && ((char)bVar8 < '\0')) && ((*(byte *)(param_4 + 0xb) & 2) == 0)) {\n      *(byte *)(param_4[2] + 0x2c) = bVar1 | 2;\n    }\n  }\n  if ((char)local_44 != '\0') {\n    puVar9 = *(undefined4 **)(*local_60 + 8);\n    if (puVar9 == (undefined4 *)0x0) {\nLAB_001ccb98:\n      *(undefined4 **)((int)pppuVar15 + -4) = puVar9;\n      *(undefined ***)((int)pppuVar15 + -8) = local_5c + -0x3b992;\n      *(undefined4 *)((int)pppuVar15 + -0xc) = 0x5c;\n      *(undefined ***)((int)pppuVar15 + -0x10) = local_5c + -0x41f7c;\n                    \n      *(undefined **)((int)pppuVar15 + -0x14) = &UNK_001ccbb1;\n      FUN_00069d00();\n    }\n    if (*(char *)((int)puVar9 + 0x43e5) != '\0') {\n      uVar4 = *(uint *)(*param_5 + 0x10);\n      ppcVar5 = *(char ***)(*param_5 + 0x14);\n      if (ppcVar5 < local_64 || (uint)((int)ppcVar5 - (int)local_64) < (uint)(uVar4 < local_58)) {\n        ppuVar13 = local_5c + -0x3b977;\n      }\n      else if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)\n              ) {\n        ppuVar13 = local_5c + -0x3b96c;\n      }\n      else {\n        ppuVar13 = (undefined **)((int)local_5c + -0xee586);\n      }\n      *(undefined ***)((int)pppuVar15 + -0x10) = ppuVar13;\n      *(undefined4 *)((int)pppuVar15 + -0x14) = 0x1ccaee;\n      uVar12 = gettext();\n      *(int **)((int)pppuVar15 + -0x10) = param_9;\n      *(undefined4 *)((int)pppuVar15 + -0x14) = 0;\n      *(undefined4 **)((int)pppuVar15 + -0x18) = param_4;\n      *(undefined4 *)((int)pppuVar15 + -0x1c) = uVar12;\n      *(undefined4 *)((int)pppuVar15 + -0x20) = 0;\n      *(undefined4 *)((int)pppuVar15 + -0x24) = 0x1ccafc;\n      puVar9 = (undefined4 *)FUN_001c9960();\n    }\n  }\n  return puVar9;\n}\n\n" (ERROR "undefined4 * __regparm2\nFUN_001cc840(undefined4 param_1,undefined4 param_2,undefined **param_3,undefined4 *param_4,\n            int *param_5,undefined1 *param_6,uint param_7,int param_8,int *param_9,\n            undefined **param_10,uint param_11)" (binary_expression "undefined4 * __regparm2\nFUN_001cc840(undefined4 param_1,undefined4 param_2,undefined **param_3,undefined4 *param_4,\n            int *param_5,undefined1 *param_6,uint param_7,int param_8,int *param_9,\n            undefined **param_10,uint param_11)" identifier * (ERROR "__regparm2" identifier) (call_expression "FUN_001cc840(undefined4 param_1,undefined4 param_2,undefined **param_3,undefined4 *param_4,\n            int *param_5,undefined1 *param_6,uint param_7,int param_8,int *param_9,\n            undefined **param_10,uint param_11)" identifier (argument_list "(undefined4 param_1,undefined4 param_2,undefined **param_3,undefined4 *param_4,\n            int *param_5,undefined1 *param_6,uint param_7,int param_8,int *param_9,\n            undefined **param_10,uint param_11)" ( identifier (ERROR "param_1" identifier) , identifier (ERROR "param_2" identifier) , (binary_expression "undefined **param_3" identifier * (pointer_expression "*param_3" * identifier)) , (binary_expression "undefined4 *param_4" identifier * identifier) , (binary_expression "int *param_5" identifier * identifier) , (binary_expression "undefined1 *param_6" identifier * identifier) , (ERROR "uint" identifier) identifier , (ERROR "int" identifier) identifier , (binary_expression "int *param_9" identifier * identifier) , (binary_expression "undefined **param_10" identifier * (pointer_expression "*param_10" * identifier)) , (ERROR "uint" identifier) identifier ))))) (compound_statement "{\n  byte bVar1;\n  int *piVar2;\n  code *pcVar3;\n  uint uVar4;\n  char **ppcVar5;\n  uint uVar6;\n  char cVar7;\n  byte bVar8;\n  undefined4 *puVar9;\n  char *pcVar10;\n  int iVar11;\n  undefined4 uVar12;\n  undefined **ppuVar13;\n  undefined4 uVar14;\n  undefined ***pppuVar15;\n  bool bVar16;\n  undefined **ppuStack_94;\n  undefined **ppuStack_90;\n  undefined1 auStack_8c [12];\n  undefined4 *local_80;\n  char **local_7c;\n  undefined4 *local_78;\n  undefined4 **local_74;\n  int **local_70;\n  undefined1 *local_6c;\n  uint local_68;\n  char **local_64;\n  undefined **local_60;\n  undefined **local_5c;\n  uint local_58;\n  undefined1 local_54 [8];\n  char *local_4c;\n  undefined4 local_48;\n  int *local_44;\n  int local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 *local_34;\n  undefined1 *local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  \n  local_5c = &__DT_PLTGOT;\n  local_58 = param_7;\n  local_68 = param_11;\n  if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\n    ppuStack_94 = (undefined **)0x2a09d4;\n    ppuStack_90 = (undefined **)param_2;\n    local_5c = &__DT_PLTGOT;\n                    \n    FUN_00069d00("../../gold/symtab.h",0xaa);\n  }\n  local_64 = (char **)(CONCAT31(local_64._1_3_,*(byte *)((int)param_4 + 0x2b) >> 5) & 0xffffff01);\n  local_6c = (undefined1 *)param_4[3];\n  ppuVar13 = &__DT_PLTGOT;\n  if (param_9 == (int *)param_4[2]) {\n    if ((byte)local_64 == '\0') {\n      local_5c = &__DT_PLTGOT;\n      cVar7 = FUN_00177470(local_6c);\n      ppuVar13 = local_5c;\n      if ((cVar7 == '\x01') || ((char)local_58 == '\0')) goto LAB_001cc88e;\n    }\n    else if ((local_6c != (undefined1 *)0x0) &&\n            ((local_58._0_1_ = (char)param_7, bVar16 = (char)local_58 != '\0', ppuVar13 = local_5c,\n             bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c)))) goto LAB_001ccb65;\n  }\n  else {\nLAB_001cc88e:\n    local_5c = ppuVar13;\n    bVar16 = (char)local_58 == '\0';\n    ppuVar13 = local_5c;\n    if ((param_6 == (undefined1 *)0xfff1 && bVar16) &&\n       (((byte)local_64 == '\0' && (local_6c == (undefined1 *)0xfff1)))) {\nLAB_001ccb65:\n      puVar9 = (undefined4 *)(param_4[0xc] ^ *(uint *)(*param_5 + 8));\n      ppuVar13 = local_5c;\n      if (param_4[0xd] == *(int *)(*param_5 + 0xc) && puVar9 == (undefined4 *)0x0) {\n        return puVar9;\n      }\n    }\n  }\n  local_5c = ppuVar13;\n  pppuVar15 = (undefined ***)auStack_8c;\n  local_60 = local_5c + 0xde;\n  piVar2 = *(int **)(*local_60 + 0xc);\n  if (piVar2 == (int *)0x0) {\n    ppuStack_94 = local_5c + -0x3b9ab;\n    ppuStack_90 = (undefined **)piVar2;\n                    \n    FUN_00069d00(local_5c + -0x41f7c,0x69);\n  }\n  if ((*(char *)(piVar2[1] + 0xd) != '\0') &&\n     (puVar9 = (undefined4 *)(**(code **)(*piVar2 + 0xac))(piVar2,param_4,param_5,param_9,param_10),\n     (char)puVar9 != '\0')) {\n    return puVar9;\n  }\n  if ((*(byte *)(param_9 + 0xb) & 1) == 0) {\n    pcVar10 = (char *)(*(byte *)(*param_5 + 4) & 0xf);\n    if (((char)pcVar10 == '\x05') &&\n       (((char)local_58 != '\0' || (pcVar10 = (char *)FUN_00177470(param_6), (char)pcVar10 == '\0'))\n       )) {\n      if ((*(byte *)((int)param_4 + 0x2a) & 7) == 0) {\n        uVar12 = *(undefined4 *)(param_4[2] + 4);\n        FUN_00178890(&local_34,param_4);\n        puVar9 = local_34;\n        uVar14 = gettext(local_5c + -0x3b985);\n                    \n        FUN_000654e0(uVar14,puVar9,uVar12);\n        if (local_34 == &local_2c) {\n          return local_34;\n        }\n        puVar9 = (undefined4 *)FUN_001e6db0(local_34);\n        return puVar9;\n      }\n      goto LAB_001cd065;\n    }\n    *(byte *)((int)param_4 + 0x2a) = *(byte *)((int)param_4 + 0x2a) | 0x80;\n    iVar11 = (**(code **)(*param_9 + 0x14))(param_9);\n  }\n  else {\n    if ((param_6 == (undefined1 *)0x0) &&\n       (puVar9 = (undefined4 *)((*(byte *)((int)param_4 + 0x29) & 3) - 1),\n       puVar9 < (undefined4 *)0x2)) {\n      return puVar9;\n    }\n    *(byte *)((int)param_4 + 0x2b) = *(byte *)((int)param_4 + 0x2b) | 1;\n    iVar11 = (**(code **)(*param_9 + 0x14))(param_9);\n  }\n  if ((iVar11 == 0) && ((*(byte *)(param_9 + 0xb) & 1) == 0)) {\n    *(byte *)((int)param_4 + 0x2b) = *(byte *)((int)param_4 + 0x2b) | 0x40;\n  }\n  if (((*(byte *)((int)param_4 + 0x2a) & 7) == 0) &&\n     (iVar11 = (**(code **)(*(int *)param_4[2] + 0x14))((int *)param_4[2]), iVar11 != 0)) {\n    puVar9 = *(undefined4 **)(*local_60 + 8);\n    pppuVar15 = (undefined ***)auStack_8c;\n    if (puVar9 == (undefined4 *)0x0) goto LAB_001ccb98;\n    if (*(char *)(puVar9[0x164f] + 0x61) != '\0') {\n      if (((((*(byte *)((int)param_4 + 0x2a) & 7) != 0) ||\n           ((*(byte *)((int)param_4 + 0x2b) & 0x20) != 0)) ||\n          (cVar7 = FUN_00177470(param_4[3]), cVar7 != '\x01')) ||\n         (((char)local_58 != '\0' || (cVar7 = FUN_00177470(param_6), cVar7 == '\0')))) {\n        ppuStack_94 = param_10;\n        puVar9 = (undefined4 *)FUN_001cb040(param_3,param_4,param_5,param_6,local_58 & 0xff,param_9)\n        ;\n        return puVar9;\n      }\n      local_5c = (undefined **)param_4[0xf];\n      local_60 = (undefined **)param_4[0xe];\n      uVar4 = param_4[0xd];\n      local_58 = param_4[0xc];\n      ppuStack_94 = param_10;\n      FUN_001cb040(param_3,param_4,param_5,param_6,0,param_9);\n      if ((uint)param_4[0xf] < local_5c ||\n          (uint)(param_4[0xf] - (int)local_5c) < (uint)((uint)param_4[0xe] < local_60)) {\n        param_4[0xe] = local_60;\n        param_4[0xf] = local_5c;\n      }\n      uVar6 = param_4[0xd] - uVar4;\n      puVar9 = (undefined4 *)(uVar6 - ((uint)param_4[0xc] < local_58));\n      if (uVar4 <= (uint)param_4[0xd] && ((uint)param_4[0xc] < local_58) <= uVar6) {\n        return puVar9;\n      }\n      param_4[0xc] = local_58;\n      param_4[0xd] = uVar4;\n      return puVar9;\n    }\n  }\n  else {\n    puVar9 = *(undefined4 **)(*local_60 + 8);\n    if (puVar9 == (undefined4 *)0x0) goto LAB_001ccb98;\n  }\n  if (*(char *)((int)puVar9 + 0xe0d) == '\0') {\n    local_74 = &local_34;\n    local_70 = &local_44;\n    pppuVar15 = (undefined ***)auStack_8c;\n  }\n  else {\n    iVar11 = *param_5;\n    if ((int)(uint)*(byte *)(iVar11 + 4) >> 4 != 2) {\n      local_74 = &local_34;\n      local_70 = &local_44;\n      pppuVar15 = (undefined ***)auStack_8c;\n      if (*(byte *)(param_4 + 10) >> 4 != 2) goto LAB_001cc978;\n    }\n    local_74 = &local_34;\n    local_70 = &local_44;\n    pppuVar15 = (undefined ***)auStack_8c;\n    if ((((byte)local_64 & param_8 != 0) != 0) &&\n       (pppuVar15 = (undefined ***)auStack_8c, local_6c != (undefined1 *)0x0)) {\n      local_64 = *(char ***)(iVar11 + 0x10);\n      local_78 = *(undefined4 **)(iVar11 + 0x14);\n      pppuVar15 = (undefined ***)auStack_8c;\n      if (local_78 != (undefined4 *)0x0 || local_64 != (char **)0x0) {\n        local_7c = (char **)param_4[0xe];\n        local_80 = (undefined4 *)param_4[0xf];\n        pppuVar15 = (undefined ***)auStack_8c;\n        if ((local_80 != (undefined4 *)0x0 || local_7c != (char **)0x0) &&\n           (((*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||\n            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80))))\n        {\n          pcVar10 = (char *)*param_4;\n          local_74 = &local_34;\n          local_70 = &local_44;\n          pppuVar15 = (undefined ***)auStack_8c;\n          if ((*pcVar10 == '_') && (pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z')) {\n            local_3c = *(undefined4 *)(iVar11 + 8);\n            local_44 = param_9;\n            local_40 = param_8;\n            local_38 = *(undefined4 *)(iVar11 + 0xc);\n            if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\nLAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;\n              ppuStack_90 = (undefined **)pcVar10;\n                    \n              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);\n            }\n            local_34 = (undefined4 *)param_4[2];\n            local_2c = param_4[0xc];\n            local_30 = local_6c;\n            local_28 = param_4[0xd];\n            ppuStack_90 = param_3;\n            ppuStack_94 = param_3;\n            local_64 = &local_4c;\n            local_4c = pcVar10;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            local_6c = local_54;\n            local_78 = &local_48;\n            FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1);\n            local_4c = (char *)*param_4;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1);\n            pppuVar15 = &ppuStack_94;\n          }\n        }\n      }\n    }\n  }\nLAB_001cc978:\n  iVar11 = *param_9;\n  *(int **)((int)pppuVar15 + -0x10) = param_9;\n  pcVar3 = *(code **)(iVar11 + 0x14);\n  *(undefined4 *)((int)pppuVar15 + -0x14) = 0x1cc981;\n  iVar11 = (*pcVar3)();\n  if (iVar11 == 0) {\n    bVar8 = *(byte *)(*param_5 + 4);\n  }\n  else {\n    bVar8 = *(byte *)(param_4 + 10);\n  }\n  local_6c = (undefined1 *)(local_58 & 0xff);\n  *(undefined1 **)((int)pppuVar15 + -0x10) = local_6c;\n  *(undefined4 *)((int)pppuVar15 + -0x14) = 0x1cc9b9;\n  uVar12 = FUN_001c9700();\n  local_58 = param_4[0xe];\n  local_64 = (char **)param_4[0xf];\n  *(uint *)((int)pppuVar15 + -4) = local_68 & 0xff;\n  *(undefined4 ***)((int)pppuVar15 + -8) = local_74;\n  *(int ***)((int)pppuVar15 + -0xc) = local_70;\n  *(int **)((int)pppuVar15 + -0x10) = param_9;\n  *(undefined4 *)((int)pppuVar15 + -0x14) = 0;\n  *(uint *)((int)pppuVar15 + -0x18) = bVar8 & 0xf;\n  *(undefined4 *)((int)pppuVar15 + -0x1c) = uVar12;\n  *(undefined4 **)((int)pppuVar15 + -0x20) = param_4;\n  *(undefined4 *)((int)pppuVar15 + -0x24) = 0x1cc9de;\n  cVar7 = FUN_001c9b30();\n  if (cVar7 == '\0') {\n    iVar11 = *param_5;\n    if ((char)local_44 != '\0') {\n      uVar4 = *(uint *)(iVar11 + 0x10);\n      ppcVar5 = *(char ***)(iVar11 + 0x14);\n      if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)) {\n        param_4[0xf] = ppcVar5;\n        param_4[0xe] = uVar4;\n      }\n      local_68 = *(uint *)(iVar11 + 8);\n      uVar4 = *(uint *)(iVar11 + 0xc);\n      if ((uint)param_4[0xd] < uVar4 || param_4[0xd] - uVar4 < (uint)((uint)param_4[0xc] < local_68)\n         ) {\n        param_4[0xd] = uVar4;\n        param_4[0xc] = local_68;\n      }\n    }\n    if ((char)local_34 != '\0') {\n      if (((*(byte *)(param_4 + 0xb) & 1) == 0) || ((*(byte *)(param_4 + 0xb) & 2) != 0)) {\n        *(byte *)(param_4 + 0xb) =\n             *(byte *)(param_4 + 0xb) & 0xfd | ((int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2) * '\x02'\n             | 1;\n      }\n    }\n    bVar8 = *(byte *)(iVar11 + 5) & 3;\n    if ((*(byte *)(iVar11 + 5) & 3) != 0) {\n      bVar1 = *(byte *)((int)param_4 + 0x29);\n      if (((bVar1 & 3) == 0) || (bVar8 < (bVar1 & 3))) {\n        *(byte *)((int)param_4 + 0x29) = bVar8 | bVar1 & 0xfc;\n      }\n    }\n  }\n  else {\n    uVar4 = param_4[0xc];\n    local_70 = (int **)CONCAT31(local_70._1_3_,*(byte *)(param_4 + 10) >> 4);\n    local_68 = param_4[0xd];\n    *(undefined ***)((int)pppuVar15 + -8) = param_10;\n    *(int **)((int)pppuVar15 + -0xc) = param_9;\n    *(undefined1 **)((int)pppuVar15 + -0x10) = local_6c;\n    *(undefined1 **)((int)pppuVar15 + -0x14) = param_6;\n    *(int **)((int)pppuVar15 + -0x18) = param_5;\n    *(undefined4 **)((int)pppuVar15 + -0x1c) = param_4;\n    *(undefined ***)((int)pppuVar15 + -0x20) = param_3;\n    *(undefined4 *)((int)pppuVar15 + -0x24) = 0x1cce64;\n    FUN_001cb040();\n    if ((char)local_44 != '\0') {\n      if ((char **)param_4[0xf] < local_64 ||\n          (uint)((int)param_4[0xf] - (int)local_64) < (uint)((uint)param_4[0xe] < local_58)) {\n        param_4[0xf] = local_64;\n        param_4[0xe] = local_58;\n      }\n      if ((uint)param_4[0xd] < local_68 ||\n          param_4[0xd] - local_68 < (uint)((uint)param_4[0xc] < uVar4)) {\n        param_4[0xc] = uVar4;\n        param_4[0xd] = local_68;\n      }\n    }\n    if (((char)local_34 != '\0') &&\n       (((*(byte *)(param_4 + 0xb) & 1) == 0 || ((*(byte *)(param_4 + 0xb) & 2) != 0)))) {\n      *(byte *)(param_4 + 0xb) =\n           *(byte *)(param_4 + 0xb) & 0xfd | ((char)local_70 == '\x02') * '\x02' | 1;\n    }\n  }\n  bVar8 = *(byte *)((int)param_4 + 0x2a);\n  puVar9 = (undefined4 *)(uint)bVar8;\n  if ((bVar8 & 7) == 0) {\n    bVar1 = *(byte *)(param_4[2] + 0x2c);\n    if ((((bVar1 & 1) != 0) && ((char)bVar8 < '\0')) && ((*(byte *)(param_4 + 0xb) & 2) == 0)) {\n      *(byte *)(param_4[2] + 0x2c) = bVar1 | 2;\n    }\n  }\n  if ((char)local_44 != '\0') {\n    puVar9 = *(undefined4 **)(*local_60 + 8);\n    if (puVar9 == (undefined4 *)0x0) {\nLAB_001ccb98:\n      *(undefined4 **)((int)pppuVar15 + -4) = puVar9;\n      *(undefined ***)((int)pppuVar15 + -8) = local_5c + -0x3b992;\n      *(undefined4 *)((int)pppuVar15 + -0xc) = 0x5c;\n      *(undefined ***)((int)pppuVar15 + -0x10) = local_5c + -0x41f7c;\n                    \n      *(undefined **)((int)pppuVar15 + -0x14) = &UNK_001ccbb1;\n      FUN_00069d00();\n    }\n    if (*(char *)((int)puVar9 + 0x43e5) != '\0') {\n      uVar4 = *(uint *)(*param_5 + 0x10);\n      ppcVar5 = *(char ***)(*param_5 + 0x14);\n      if (ppcVar5 < local_64 || (uint)((int)ppcVar5 - (int)local_64) < (uint)(uVar4 < local_58)) {\n        ppuVar13 = local_5c + -0x3b977;\n      }\n      else if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)\n              ) {\n        ppuVar13 = local_5c + -0x3b96c;\n      }\n      else {\n        ppuVar13 = (undefined **)((int)local_5c + -0xee586);\n      }\n      *(undefined ***)((int)pppuVar15 + -0x10) = ppuVar13;\n      *(undefined4 *)((int)pppuVar15 + -0x14) = 0x1ccaee;\n      uVar12 = gettext();\n      *(int **)((int)pppuVar15 + -0x10) = param_9;\n      *(undefined4 *)((int)pppuVar15 + -0x14) = 0;\n      *(undefined4 **)((int)pppuVar15 + -0x18) = param_4;\n      *(undefined4 *)((int)pppuVar15 + -0x1c) = uVar12;\n      *(undefined4 *)((int)pppuVar15 + -0x20) = 0;\n      *(undefined4 *)((int)pppuVar15 + -0x24) = 0x1ccafc;\n      puVar9 = (undefined4 *)FUN_001c9960();\n    }\n  }\n  return puVar9;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "code *pcVar3;" type_identifier (pointer_declarator "*pcVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "char **ppcVar5;" primitive_type (pointer_declarator "**ppcVar5" * (pointer_declarator "*ppcVar5" * identifier)) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "char cVar7;" primitive_type identifier ;) (declaration "byte bVar8;" type_identifier identifier ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "undefined **ppuVar13;" type_identifier (pointer_declarator "**ppuVar13" * (pointer_declarator "*ppuVar13" * identifier)) ;) (declaration "undefined4 uVar14;" type_identifier identifier ;) (declaration "undefined ***pppuVar15;" type_identifier (pointer_declarator "***pppuVar15" * (pointer_declarator "**pppuVar15" * (pointer_declarator "*pppuVar15" * identifier))) ;) (declaration "bool bVar16;" primitive_type identifier ;) (declaration "undefined **ppuStack_94;" type_identifier (pointer_declarator "**ppuStack_94" * (pointer_declarator "*ppuStack_94" * identifier)) ;) (declaration "undefined **ppuStack_90;" type_identifier (pointer_declarator "**ppuStack_90" * (pointer_declarator "*ppuStack_90" * identifier)) ;) (declaration "undefined1 auStack_8c [12];" type_identifier (array_declarator "auStack_8c [12]" identifier [ number_literal ]) ;) (declaration "undefined4 *local_80;" type_identifier (pointer_declarator "*local_80" * identifier) ;) (declaration "char **local_7c;" primitive_type (pointer_declarator "**local_7c" * (pointer_declarator "*local_7c" * identifier)) ;) (declaration "undefined4 *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "undefined4 **local_74;" type_identifier (pointer_declarator "**local_74" * (pointer_declarator "*local_74" * identifier)) ;) (declaration "int **local_70;" primitive_type (pointer_declarator "**local_70" * (pointer_declarator "*local_70" * identifier)) ;) (declaration "undefined1 *local_6c;" type_identifier (pointer_declarator "*local_6c" * identifier) ;) (declaration "uint local_68;" type_identifier identifier ;) (declaration "char **local_64;" primitive_type (pointer_declarator "**local_64" * (pointer_declarator "*local_64" * identifier)) ;) (declaration "undefined **local_60;" type_identifier (pointer_declarator "**local_60" * (pointer_declarator "*local_60" * identifier)) ;) (declaration "undefined **local_5c;" type_identifier (pointer_declarator "**local_5c" * (pointer_declarator "*local_5c" * identifier)) ;) (declaration "uint local_58;" type_identifier identifier ;) (declaration "undefined1 local_54 [8];" type_identifier (array_declarator "local_54 [8]" identifier [ number_literal ]) ;) (declaration "char *local_4c;" primitive_type (pointer_declarator "*local_4c" * identifier) ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "int *local_44;" primitive_type (pointer_declarator "*local_44" * identifier) ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined4 *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "undefined1 *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (expression_statement "local_5c = &__DT_PLTGOT;" (assignment_expression "local_5c = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "local_58 = param_7;" (assignment_expression "local_58 = param_7" identifier = identifier) ;) (expression_statement "local_68 = param_11;" (assignment_expression "local_68 = param_11" identifier = identifier) ;) (if_statement "if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\n    ppuStack_94 = (undefined **)0x2a09d4;\n    ppuStack_90 = (undefined **)param_2;\n    local_5c = &__DT_PLTGOT;\n                    \n    FUN_00069d00("../../gold/symtab.h",0xaa);\n  }" if (parenthesized_expression "((*(byte *)((int)param_4 + 0x2a) & 7) != 0)" ( (binary_expression "(*(byte *)((int)param_4 + 0x2a) & 7) != 0" (parenthesized_expression "(*(byte *)((int)param_4 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)param_4 + 0x2a) & 7" (pointer_expression "*(byte *)((int)param_4 + 0x2a)" * (cast_expression "(byte *)((int)param_4 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 + 0x2a)" ( (binary_expression "(int)param_4 + 0x2a" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n    ppuStack_94 = (undefined **)0x2a09d4;\n    ppuStack_90 = (undefined **)param_2;\n    local_5c = &__DT_PLTGOT;\n                    \n    FUN_00069d00("../../gold/symtab.h",0xaa);\n  }" { (expression_statement "ppuStack_94 = (undefined **)0x2a09d4;" (assignment_expression "ppuStack_94 = (undefined **)0x2a09d4" identifier = (cast_expression "(undefined **)0x2a09d4" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "ppuStack_90 = (undefined **)param_2;" (assignment_expression "ppuStack_90 = (undefined **)param_2" identifier = (cast_expression "(undefined **)param_2" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "local_5c = &__DT_PLTGOT;" (assignment_expression "local_5c = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "FUN_00069d00("../../gold/symtab.h",0xaa);" (call_expression "FUN_00069d00("../../gold/symtab.h",0xaa)" identifier (argument_list "("../../gold/symtab.h",0xaa)" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal ))) ;) })) (expression_statement "local_64 = (char **)(CONCAT31(local_64._1_3_,*(byte *)((int)param_4 + 0x2b) >> 5) & 0xffffff01);" (assignment_expression "local_64 = (char **)(CONCAT31(local_64._1_3_,*(byte *)((int)param_4 + 0x2b) >> 5) & 0xffffff01)" identifier = (cast_expression "(char **)(CONCAT31(local_64._1_3_,*(byte *)((int)param_4 + 0x2b) >> 5) & 0xffffff01)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(CONCAT31(local_64._1_3_,*(byte *)((int)param_4 + 0x2b) >> 5) & 0xffffff01)" ( (binary_expression "CONCAT31(local_64._1_3_,*(byte *)((int)param_4 + 0x2b) >> 5) & 0xffffff01" (call_expression "CONCAT31(local_64._1_3_,*(byte *)((int)param_4 + 0x2b) >> 5)" identifier (argument_list "(local_64._1_3_,*(byte *)((int)param_4 + 0x2b) >> 5)" ( (field_expression "local_64._1_3_" identifier . field_identifier) , (binary_expression "*(byte *)((int)param_4 + 0x2b) >> 5" (pointer_expression "*(byte *)((int)param_4 + 0x2b)" * (cast_expression "(byte *)((int)param_4 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 + 0x2b)" ( (binary_expression "(int)param_4 + 0x2b" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) >> number_literal) ))) & number_literal) )))) ;) (expression_statement "local_6c = (undefined1 *)param_4[3];" (assignment_expression "local_6c = (undefined1 *)param_4[3]" identifier = (cast_expression "(undefined1 *)param_4[3]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[3]" identifier [ number_literal ]))) ;) (expression_statement "ppuVar13 = &__DT_PLTGOT;" (assignment_expression "ppuVar13 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (if_statement "if (param_9 == (int *)param_4[2]) {\n    if ((byte)local_64 == '\0') {\n      local_5c = &__DT_PLTGOT;\n      cVar7 = FUN_00177470(local_6c);\n      ppuVar13 = local_5c;\n      if ((cVar7 == '\x01') || ((char)local_58 == '\0')) goto LAB_001cc88e;\n    }\n    else if ((local_6c != (undefined1 *)0x0) &&\n            ((local_58._0_1_ = (char)param_7, bVar16 = (char)local_58 != '\0', ppuVar13 = local_5c,\n             bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c)))) goto LAB_001ccb65;\n  }\n  else {\nLAB_001cc88e:\n    local_5c = ppuVar13;\n    bVar16 = (char)local_58 == '\0';\n    ppuVar13 = local_5c;\n    if ((param_6 == (undefined1 *)0xfff1 && bVar16) &&\n       (((byte)local_64 == '\0' && (local_6c == (undefined1 *)0xfff1)))) {\nLAB_001ccb65:\n      puVar9 = (undefined4 *)(param_4[0xc] ^ *(uint *)(*param_5 + 8));\n      ppuVar13 = local_5c;\n      if (param_4[0xd] == *(int *)(*param_5 + 0xc) && puVar9 == (undefined4 *)0x0) {\n        return puVar9;\n      }\n    }\n  }" if (parenthesized_expression "(param_9 == (int *)param_4[2])" ( (binary_expression "param_9 == (int *)param_4[2]" identifier == (cast_expression "(int *)param_4[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[2]" identifier [ number_literal ]))) )) (compound_statement "{\n    if ((byte)local_64 == '\0') {\n      local_5c = &__DT_PLTGOT;\n      cVar7 = FUN_00177470(local_6c);\n      ppuVar13 = local_5c;\n      if ((cVar7 == '\x01') || ((char)local_58 == '\0')) goto LAB_001cc88e;\n    }\n    else if ((local_6c != (undefined1 *)0x0) &&\n            ((local_58._0_1_ = (char)param_7, bVar16 = (char)local_58 != '\0', ppuVar13 = local_5c,\n             bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c)))) goto LAB_001ccb65;\n  }" { (if_statement "if ((byte)local_64 == '\0') {\n      local_5c = &__DT_PLTGOT;\n      cVar7 = FUN_00177470(local_6c);\n      ppuVar13 = local_5c;\n      if ((cVar7 == '\x01') || ((char)local_58 == '\0')) goto LAB_001cc88e;\n    }\n    else if ((local_6c != (undefined1 *)0x0) &&\n            ((local_58._0_1_ = (char)param_7, bVar16 = (char)local_58 != '\0', ppuVar13 = local_5c,\n             bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c)))) goto LAB_001ccb65;" if (parenthesized_expression "((byte)local_64 == '\0')" ( (binary_expression "(byte)local_64 == '\0'" (cast_expression "(byte)local_64" ( (type_descriptor "byte" type_identifier) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      local_5c = &__DT_PLTGOT;\n      cVar7 = FUN_00177470(local_6c);\n      ppuVar13 = local_5c;\n      if ((cVar7 == '\x01') || ((char)local_58 == '\0')) goto LAB_001cc88e;\n    }" { (expression_statement "local_5c = &__DT_PLTGOT;" (assignment_expression "local_5c = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "cVar7 = FUN_00177470(local_6c);" (assignment_expression "cVar7 = FUN_00177470(local_6c)" identifier = (call_expression "FUN_00177470(local_6c)" identifier (argument_list "(local_6c)" ( identifier )))) ;) (expression_statement "ppuVar13 = local_5c;" (assignment_expression "ppuVar13 = local_5c" identifier = identifier) ;) (if_statement "if ((cVar7 == '\x01') || ((char)local_58 == '\0')) goto LAB_001cc88e;" if (parenthesized_expression "((cVar7 == '\x01') || ((char)local_58 == '\0'))" ( (binary_expression "(cVar7 == '\x01') || ((char)local_58 == '\0')" (parenthesized_expression "(cVar7 == '\x01')" ( (binary_expression "cVar7 == '\x01'" identifier == (char_literal "'\x01'" ' escape_sequence ')) )) || (parenthesized_expression "((char)local_58 == '\0')" ( (binary_expression "(char)local_58 == '\0'" (cast_expression "(char)local_58" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_001cc88e;" goto statement_identifier ;)) }) (else_clause "else if ((local_6c != (undefined1 *)0x0) &&\n            ((local_58._0_1_ = (char)param_7, bVar16 = (char)local_58 != '\0', ppuVar13 = local_5c,\n             bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c)))) goto LAB_001ccb65;" else (if_statement "if ((local_6c != (undefined1 *)0x0) &&\n            ((local_58._0_1_ = (char)param_7, bVar16 = (char)local_58 != '\0', ppuVar13 = local_5c,\n             bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c)))) goto LAB_001ccb65;" if (parenthesized_expression "((local_6c != (undefined1 *)0x0) &&\n            ((local_58._0_1_ = (char)param_7, bVar16 = (char)local_58 != '\0', ppuVar13 = local_5c,\n             bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c))))" ( (binary_expression "(local_6c != (undefined1 *)0x0) &&\n            ((local_58._0_1_ = (char)param_7, bVar16 = (char)local_58 != '\0', ppuVar13 = local_5c,\n             bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c)))" (parenthesized_expression "(local_6c != (undefined1 *)0x0)" ( (binary_expression "local_6c != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((local_58._0_1_ = (char)param_7, bVar16 = (char)local_58 != '\0', ppuVar13 = local_5c,\n             bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c)))" ( (parenthesized_expression "(local_58._0_1_ = (char)param_7, bVar16 = (char)local_58 != '\0', ppuVar13 = local_5c,\n             bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c))" ( (comma_expression "local_58._0_1_ = (char)param_7, bVar16 = (char)local_58 != '\0', ppuVar13 = local_5c,\n             bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c)" (assignment_expression "local_58._0_1_ = (char)param_7" (field_expression "local_58._0_1_" identifier . field_identifier) = (cast_expression "(char)param_7" ( (type_descriptor "char" primitive_type) ) identifier)) , (comma_expression "bVar16 = (char)local_58 != '\0', ppuVar13 = local_5c,\n             bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c)" (assignment_expression "bVar16 = (char)local_58 != '\0'" identifier = (binary_expression "(char)local_58 != '\0'" (cast_expression "(char)local_58" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence '))) , (comma_expression "ppuVar13 = local_5c,\n             bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c)" (assignment_expression "ppuVar13 = local_5c" identifier = identifier) , (binary_expression "bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c)" identifier && (parenthesized_expression "(local_5c = &__DT_PLTGOT, param_6 == local_6c)" ( (comma_expression "local_5c = &__DT_PLTGOT, param_6 == local_6c" (assignment_expression "local_5c = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) , (binary_expression "param_6 == local_6c" identifier == identifier)) )))))) )) ))) )) (goto_statement "goto LAB_001ccb65;" goto statement_identifier ;)))) }) (else_clause "else {\nLAB_001cc88e:\n    local_5c = ppuVar13;\n    bVar16 = (char)local_58 == '\0';\n    ppuVar13 = local_5c;\n    if ((param_6 == (undefined1 *)0xfff1 && bVar16) &&\n       (((byte)local_64 == '\0' && (local_6c == (undefined1 *)0xfff1)))) {\nLAB_001ccb65:\n      puVar9 = (undefined4 *)(param_4[0xc] ^ *(uint *)(*param_5 + 8));\n      ppuVar13 = local_5c;\n      if (param_4[0xd] == *(int *)(*param_5 + 0xc) && puVar9 == (undefined4 *)0x0) {\n        return puVar9;\n      }\n    }\n  }" else (compound_statement "{\nLAB_001cc88e:\n    local_5c = ppuVar13;\n    bVar16 = (char)local_58 == '\0';\n    ppuVar13 = local_5c;\n    if ((param_6 == (undefined1 *)0xfff1 && bVar16) &&\n       (((byte)local_64 == '\0' && (local_6c == (undefined1 *)0xfff1)))) {\nLAB_001ccb65:\n      puVar9 = (undefined4 *)(param_4[0xc] ^ *(uint *)(*param_5 + 8));\n      ppuVar13 = local_5c;\n      if (param_4[0xd] == *(int *)(*param_5 + 0xc) && puVar9 == (undefined4 *)0x0) {\n        return puVar9;\n      }\n    }\n  }" { (labeled_statement "LAB_001cc88e:\n    local_5c = ppuVar13;" statement_identifier : (expression_statement "local_5c = ppuVar13;" (assignment_expression "local_5c = ppuVar13" identifier = identifier) ;)) (expression_statement "bVar16 = (char)local_58 == '\0';" (assignment_expression "bVar16 = (char)local_58 == '\0'" identifier = (binary_expression "(char)local_58 == '\0'" (cast_expression "(char)local_58" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence '))) ;) (expression_statement "ppuVar13 = local_5c;" (assignment_expression "ppuVar13 = local_5c" identifier = identifier) ;) (if_statement "if ((param_6 == (undefined1 *)0xfff1 && bVar16) &&\n       (((byte)local_64 == '\0' && (local_6c == (undefined1 *)0xfff1)))) {\nLAB_001ccb65:\n      puVar9 = (undefined4 *)(param_4[0xc] ^ *(uint *)(*param_5 + 8));\n      ppuVar13 = local_5c;\n      if (param_4[0xd] == *(int *)(*param_5 + 0xc) && puVar9 == (undefined4 *)0x0) {\n        return puVar9;\n      }\n    }" if (parenthesized_expression "((param_6 == (undefined1 *)0xfff1 && bVar16) &&\n       (((byte)local_64 == '\0' && (local_6c == (undefined1 *)0xfff1))))" ( (binary_expression "(param_6 == (undefined1 *)0xfff1 && bVar16) &&\n       (((byte)local_64 == '\0' && (local_6c == (undefined1 *)0xfff1)))" (parenthesized_expression "(param_6 == (undefined1 *)0xfff1 && bVar16)" ( (binary_expression "param_6 == (undefined1 *)0xfff1 && bVar16" (binary_expression "param_6 == (undefined1 *)0xfff1" identifier == (cast_expression "(undefined1 *)0xfff1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && identifier) )) && (parenthesized_expression "(((byte)local_64 == '\0' && (local_6c == (undefined1 *)0xfff1)))" ( (parenthesized_expression "((byte)local_64 == '\0' && (local_6c == (undefined1 *)0xfff1))" ( (binary_expression "(byte)local_64 == '\0' && (local_6c == (undefined1 *)0xfff1)" (binary_expression "(byte)local_64 == '\0'" (cast_expression "(byte)local_64" ( (type_descriptor "byte" type_identifier) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) && (parenthesized_expression "(local_6c == (undefined1 *)0xfff1)" ( (binary_expression "local_6c == (undefined1 *)0xfff1" identifier == (cast_expression "(undefined1 *)0xfff1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) ))) )) (compound_statement "{\nLAB_001ccb65:\n      puVar9 = (undefined4 *)(param_4[0xc] ^ *(uint *)(*param_5 + 8));\n      ppuVar13 = local_5c;\n      if (param_4[0xd] == *(int *)(*param_5 + 0xc) && puVar9 == (undefined4 *)0x0) {\n        return puVar9;\n      }\n    }" { (labeled_statement "LAB_001ccb65:\n      puVar9 = (undefined4 *)(param_4[0xc] ^ *(uint *)(*param_5 + 8));" statement_identifier : (expression_statement "puVar9 = (undefined4 *)(param_4[0xc] ^ *(uint *)(*param_5 + 8));" (assignment_expression "puVar9 = (undefined4 *)(param_4[0xc] ^ *(uint *)(*param_5 + 8))" identifier = (cast_expression "(undefined4 *)(param_4[0xc] ^ *(uint *)(*param_5 + 8))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4[0xc] ^ *(uint *)(*param_5 + 8))" ( (binary_expression "param_4[0xc] ^ *(uint *)(*param_5 + 8)" (subscript_expression "param_4[0xc]" identifier [ number_literal ]) ^ (pointer_expression "*(uint *)(*param_5 + 8)" * (cast_expression "(uint *)(*param_5 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_5 + 8)" ( (binary_expression "*param_5 + 8" (pointer_expression "*param_5" * identifier) + number_literal) ))))) )))) ;)) (expression_statement "ppuVar13 = local_5c;" (assignment_expression "ppuVar13 = local_5c" identifier = identifier) ;) (if_statement "if (param_4[0xd] == *(int *)(*param_5 + 0xc) && puVar9 == (undefined4 *)0x0) {\n        return puVar9;\n      }" if (parenthesized_expression "(param_4[0xd] == *(int *)(*param_5 + 0xc) && puVar9 == (undefined4 *)0x0)" ( (binary_expression "param_4[0xd] == *(int *)(*param_5 + 0xc) && puVar9 == (undefined4 *)0x0" (binary_expression "param_4[0xd] == *(int *)(*param_5 + 0xc)" (subscript_expression "param_4[0xd]" identifier [ number_literal ]) == (pointer_expression "*(int *)(*param_5 + 0xc)" * (cast_expression "(int *)(*param_5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_5 + 0xc)" ( (binary_expression "*param_5 + 0xc" (pointer_expression "*param_5" * identifier) + number_literal) ))))) && (binary_expression "puVar9 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n        return puVar9;\n      }" { (return_statement "return puVar9;" return identifier ;) })) })) }))) (expression_statement "local_5c = ppuVar13;" (assignment_expression "local_5c = ppuVar13" identifier = identifier) ;) (expression_statement "pppuVar15 = (undefined ***)auStack_8c;" (assignment_expression "pppuVar15 = (undefined ***)auStack_8c" identifier = (cast_expression "(undefined ***)auStack_8c" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (expression_statement "local_60 = local_5c + 0xde;" (assignment_expression "local_60 = local_5c + 0xde" identifier = (binary_expression "local_5c + 0xde" identifier + number_literal)) ;) (expression_statement "piVar2 = *(int **)(*local_60 + 0xc);" (assignment_expression "piVar2 = *(int **)(*local_60 + 0xc)" identifier = (pointer_expression "*(int **)(*local_60 + 0xc)" * (cast_expression "(int **)(*local_60 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_60 + 0xc)" ( (binary_expression "*local_60 + 0xc" (pointer_expression "*local_60" * identifier) + number_literal) ))))) ;) (if_statement "if (piVar2 == (int *)0x0) {\n    ppuStack_94 = local_5c + -0x3b9ab;\n    ppuStack_90 = (undefined **)piVar2;\n                    \n    FUN_00069d00(local_5c + -0x41f7c,0x69);\n  }" if (parenthesized_expression "(piVar2 == (int *)0x0)" ( (binary_expression "piVar2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    ppuStack_94 = local_5c + -0x3b9ab;\n    ppuStack_90 = (undefined **)piVar2;\n                    \n    FUN_00069d00(local_5c + -0x41f7c,0x69);\n  }" { (expression_statement "ppuStack_94 = local_5c + -0x3b9ab;" (assignment_expression "ppuStack_94 = local_5c + -0x3b9ab" identifier = (binary_expression "local_5c + -0x3b9ab" identifier + number_literal)) ;) (expression_statement "ppuStack_90 = (undefined **)piVar2;" (assignment_expression "ppuStack_90 = (undefined **)piVar2" identifier = (cast_expression "(undefined **)piVar2" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "FUN_00069d00(local_5c + -0x41f7c,0x69);" (call_expression "FUN_00069d00(local_5c + -0x41f7c,0x69)" identifier (argument_list "(local_5c + -0x41f7c,0x69)" ( (binary_expression "local_5c + -0x41f7c" identifier + number_literal) , number_literal ))) ;) })) (if_statement "if ((*(char *)(piVar2[1] + 0xd) != '\0') &&\n     (puVar9 = (undefined4 *)(**(code **)(*piVar2 + 0xac))(piVar2,param_4,param_5,param_9,param_10),\n     (char)puVar9 != '\0')) {\n    return puVar9;\n  }" if (parenthesized_expression "((*(char *)(piVar2[1] + 0xd) != '\0') &&\n     (puVar9 = (undefined4 *)(**(code **)(*piVar2 + 0xac))(piVar2,param_4,param_5,param_9,param_10),\n     (char)puVar9 != '\0'))" ( (binary_expression "(*(char *)(piVar2[1] + 0xd) != '\0') &&\n     (puVar9 = (undefined4 *)(**(code **)(*piVar2 + 0xac))(piVar2,param_4,param_5,param_9,param_10),\n     (char)puVar9 != '\0')" (parenthesized_expression "(*(char *)(piVar2[1] + 0xd) != '\0')" ( (binary_expression "*(char *)(piVar2[1] + 0xd) != '\0'" (pointer_expression "*(char *)(piVar2[1] + 0xd)" * (cast_expression "(char *)(piVar2[1] + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar2[1] + 0xd)" ( (binary_expression "piVar2[1] + 0xd" (subscript_expression "piVar2[1]" identifier [ number_literal ]) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(puVar9 = (undefined4 *)(**(code **)(*piVar2 + 0xac))(piVar2,param_4,param_5,param_9,param_10),\n     (char)puVar9 != '\0')" ( (comma_expression "puVar9 = (undefined4 *)(**(code **)(*piVar2 + 0xac))(piVar2,param_4,param_5,param_9,param_10),\n     (char)puVar9 != '\0'" (assignment_expression "puVar9 = (undefined4 *)(**(code **)(*piVar2 + 0xac))(piVar2,param_4,param_5,param_9,param_10)" identifier = (cast_expression "(undefined4 *)(**(code **)(*piVar2 + 0xac))(piVar2,param_4,param_5,param_9,param_10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*piVar2 + 0xac))(piVar2,param_4,param_5,param_9,param_10)" (parenthesized_expression "(**(code **)(*piVar2 + 0xac))" ( (pointer_expression "**(code **)(*piVar2 + 0xac)" * (pointer_expression "*(code **)(*piVar2 + 0xac)" * (cast_expression "(code **)(*piVar2 + 0xac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar2 + 0xac)" ( (binary_expression "*piVar2 + 0xac" (pointer_expression "*piVar2" * identifier) + number_literal) ))))) )) (argument_list "(piVar2,param_4,param_5,param_9,param_10)" ( identifier , identifier , identifier , identifier , identifier ))))) , (binary_expression "(char)puVar9 != '\0'" (cast_expression "(char)puVar9" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n    return puVar9;\n  }" { (return_statement "return puVar9;" return identifier ;) })) (if_statement "if ((*(byte *)(param_9 + 0xb) & 1) == 0) {\n    pcVar10 = (char *)(*(byte *)(*param_5 + 4) & 0xf);\n    if (((char)pcVar10 == '\x05') &&\n       (((char)local_58 != '\0' || (pcVar10 = (char *)FUN_00177470(param_6), (char)pcVar10 == '\0'))\n       )) {\n      if ((*(byte *)((int)param_4 + 0x2a) & 7) == 0) {\n        uVar12 = *(undefined4 *)(param_4[2] + 4);\n        FUN_00178890(&local_34,param_4);\n        puVar9 = local_34;\n        uVar14 = gettext(local_5c + -0x3b985);\n                    \n        FUN_000654e0(uVar14,puVar9,uVar12);\n        if (local_34 == &local_2c) {\n          return local_34;\n        }\n        puVar9 = (undefined4 *)FUN_001e6db0(local_34);\n        return puVar9;\n      }\n      goto LAB_001cd065;\n    }\n    *(byte *)((int)param_4 + 0x2a) = *(byte *)((int)param_4 + 0x2a) | 0x80;\n    iVar11 = (**(code **)(*param_9 + 0x14))(param_9);\n  }\n  else {\n    if ((param_6 == (undefined1 *)0x0) &&\n       (puVar9 = (undefined4 *)((*(byte *)((int)param_4 + 0x29) & 3) - 1),\n       puVar9 < (undefined4 *)0x2)) {\n      return puVar9;\n    }\n    *(byte *)((int)param_4 + 0x2b) = *(byte *)((int)param_4 + 0x2b) | 1;\n    iVar11 = (**(code **)(*param_9 + 0x14))(param_9);\n  }" if (parenthesized_expression "((*(byte *)(param_9 + 0xb) & 1) == 0)" ( (binary_expression "(*(byte *)(param_9 + 0xb) & 1) == 0" (parenthesized_expression "(*(byte *)(param_9 + 0xb) & 1)" ( (binary_expression "*(byte *)(param_9 + 0xb) & 1" (pointer_expression "*(byte *)(param_9 + 0xb)" * (cast_expression "(byte *)(param_9 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_9 + 0xb)" ( (binary_expression "param_9 + 0xb" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    pcVar10 = (char *)(*(byte *)(*param_5 + 4) & 0xf);\n    if (((char)pcVar10 == '\x05') &&\n       (((char)local_58 != '\0' || (pcVar10 = (char *)FUN_00177470(param_6), (char)pcVar10 == '\0'))\n       )) {\n      if ((*(byte *)((int)param_4 + 0x2a) & 7) == 0) {\n        uVar12 = *(undefined4 *)(param_4[2] + 4);\n        FUN_00178890(&local_34,param_4);\n        puVar9 = local_34;\n        uVar14 = gettext(local_5c + -0x3b985);\n                    \n        FUN_000654e0(uVar14,puVar9,uVar12);\n        if (local_34 == &local_2c) {\n          return local_34;\n        }\n        puVar9 = (undefined4 *)FUN_001e6db0(local_34);\n        return puVar9;\n      }\n      goto LAB_001cd065;\n    }\n    *(byte *)((int)param_4 + 0x2a) = *(byte *)((int)param_4 + 0x2a) | 0x80;\n    iVar11 = (**(code **)(*param_9 + 0x14))(param_9);\n  }" { (expression_statement "pcVar10 = (char *)(*(byte *)(*param_5 + 4) & 0xf);" (assignment_expression "pcVar10 = (char *)(*(byte *)(*param_5 + 4) & 0xf)" identifier = (cast_expression "(char *)(*(byte *)(*param_5 + 4) & 0xf)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(byte *)(*param_5 + 4) & 0xf)" ( (binary_expression "*(byte *)(*param_5 + 4) & 0xf" (pointer_expression "*(byte *)(*param_5 + 4)" * (cast_expression "(byte *)(*param_5 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_5 + 4)" ( (binary_expression "*param_5 + 4" (pointer_expression "*param_5" * identifier) + number_literal) )))) & number_literal) )))) ;) (if_statement "if (((char)pcVar10 == '\x05') &&\n       (((char)local_58 != '\0' || (pcVar10 = (char *)FUN_00177470(param_6), (char)pcVar10 == '\0'))\n       )) {\n      if ((*(byte *)((int)param_4 + 0x2a) & 7) == 0) {\n        uVar12 = *(undefined4 *)(param_4[2] + 4);\n        FUN_00178890(&local_34,param_4);\n        puVar9 = local_34;\n        uVar14 = gettext(local_5c + -0x3b985);\n                    \n        FUN_000654e0(uVar14,puVar9,uVar12);\n        if (local_34 == &local_2c) {\n          return local_34;\n        }\n        puVar9 = (undefined4 *)FUN_001e6db0(local_34);\n        return puVar9;\n      }\n      goto LAB_001cd065;\n    }" if (parenthesized_expression "(((char)pcVar10 == '\x05') &&\n       (((char)local_58 != '\0' || (pcVar10 = (char *)FUN_00177470(param_6), (char)pcVar10 == '\0'))\n       ))" ( (binary_expression "((char)pcVar10 == '\x05') &&\n       (((char)local_58 != '\0' || (pcVar10 = (char *)FUN_00177470(param_6), (char)pcVar10 == '\0'))\n       )" (parenthesized_expression "((char)pcVar10 == '\x05')" ( (binary_expression "(char)pcVar10 == '\x05'" (cast_expression "(char)pcVar10" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\x05'" ' escape_sequence ')) )) && (parenthesized_expression "(((char)local_58 != '\0' || (pcVar10 = (char *)FUN_00177470(param_6), (char)pcVar10 == '\0'))\n       )" ( (parenthesized_expression "((char)local_58 != '\0' || (pcVar10 = (char *)FUN_00177470(param_6), (char)pcVar10 == '\0'))" ( (binary_expression "(char)local_58 != '\0' || (pcVar10 = (char *)FUN_00177470(param_6), (char)pcVar10 == '\0')" (binary_expression "(char)local_58 != '\0'" (cast_expression "(char)local_58" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(pcVar10 = (char *)FUN_00177470(param_6), (char)pcVar10 == '\0')" ( (comma_expression "pcVar10 = (char *)FUN_00177470(param_6), (char)pcVar10 == '\0'" (assignment_expression "pcVar10 = (char *)FUN_00177470(param_6)" identifier = (cast_expression "(char *)FUN_00177470(param_6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00177470(param_6)" identifier (argument_list "(param_6)" ( identifier ))))) , (binary_expression "(char)pcVar10 == '\0'" (cast_expression "(char)pcVar10" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence '))) ))) )) ))) )) (compound_statement "{\n      if ((*(byte *)((int)param_4 + 0x2a) & 7) == 0) {\n        uVar12 = *(undefined4 *)(param_4[2] + 4);\n        FUN_00178890(&local_34,param_4);\n        puVar9 = local_34;\n        uVar14 = gettext(local_5c + -0x3b985);\n                    \n        FUN_000654e0(uVar14,puVar9,uVar12);\n        if (local_34 == &local_2c) {\n          return local_34;\n        }\n        puVar9 = (undefined4 *)FUN_001e6db0(local_34);\n        return puVar9;\n      }\n      goto LAB_001cd065;\n    }" { (if_statement "if ((*(byte *)((int)param_4 + 0x2a) & 7) == 0) {\n        uVar12 = *(undefined4 *)(param_4[2] + 4);\n        FUN_00178890(&local_34,param_4);\n        puVar9 = local_34;\n        uVar14 = gettext(local_5c + -0x3b985);\n                    \n        FUN_000654e0(uVar14,puVar9,uVar12);\n        if (local_34 == &local_2c) {\n          return local_34;\n        }\n        puVar9 = (undefined4 *)FUN_001e6db0(local_34);\n        return puVar9;\n      }" if (parenthesized_expression "((*(byte *)((int)param_4 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)((int)param_4 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)((int)param_4 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)param_4 + 0x2a) & 7" (pointer_expression "*(byte *)((int)param_4 + 0x2a)" * (cast_expression "(byte *)((int)param_4 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 + 0x2a)" ( (binary_expression "(int)param_4 + 0x2a" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        uVar12 = *(undefined4 *)(param_4[2] + 4);\n        FUN_00178890(&local_34,param_4);\n        puVar9 = local_34;\n        uVar14 = gettext(local_5c + -0x3b985);\n                    \n        FUN_000654e0(uVar14,puVar9,uVar12);\n        if (local_34 == &local_2c) {\n          return local_34;\n        }\n        puVar9 = (undefined4 *)FUN_001e6db0(local_34);\n        return puVar9;\n      }" { (expression_statement "uVar12 = *(undefined4 *)(param_4[2] + 4);" (assignment_expression "uVar12 = *(undefined4 *)(param_4[2] + 4)" identifier = (pointer_expression "*(undefined4 *)(param_4[2] + 4)" * (cast_expression "(undefined4 *)(param_4[2] + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4[2] + 4)" ( (binary_expression "param_4[2] + 4" (subscript_expression "param_4[2]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "FUN_00178890(&local_34,param_4);" (call_expression "FUN_00178890(&local_34,param_4)" identifier (argument_list "(&local_34,param_4)" ( (pointer_expression "&local_34" & identifier) , identifier ))) ;) (expression_statement "puVar9 = local_34;" (assignment_expression "puVar9 = local_34" identifier = identifier) ;) (expression_statement "uVar14 = gettext(local_5c + -0x3b985);" (assignment_expression "uVar14 = gettext(local_5c + -0x3b985)" identifier = (call_expression "gettext(local_5c + -0x3b985)" identifier (argument_list "(local_5c + -0x3b985)" ( (binary_expression "local_5c + -0x3b985" identifier + number_literal) )))) ;) (expression_statement "FUN_000654e0(uVar14,puVar9,uVar12);" (call_expression "FUN_000654e0(uVar14,puVar9,uVar12)" identifier (argument_list "(uVar14,puVar9,uVar12)" ( identifier , identifier , identifier ))) ;) (if_statement "if (local_34 == &local_2c) {\n          return local_34;\n        }" if (parenthesized_expression "(local_34 == &local_2c)" ( (binary_expression "local_34 == &local_2c" identifier == (pointer_expression "&local_2c" & identifier)) )) (compound_statement "{\n          return local_34;\n        }" { (return_statement "return local_34;" return identifier ;) })) (expression_statement "puVar9 = (undefined4 *)FUN_001e6db0(local_34);" (assignment_expression "puVar9 = (undefined4 *)FUN_001e6db0(local_34)" identifier = (cast_expression "(undefined4 *)FUN_001e6db0(local_34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e6db0(local_34)" identifier (argument_list "(local_34)" ( identifier ))))) ;) (return_statement "return puVar9;" return identifier ;) })) (goto_statement "goto LAB_001cd065;" goto statement_identifier ;) })) (expression_statement "*(byte *)((int)param_4 + 0x2a) = *(byte *)((int)param_4 + 0x2a) | 0x80;" (assignment_expression "*(byte *)((int)param_4 + 0x2a) = *(byte *)((int)param_4 + 0x2a) | 0x80" (pointer_expression "*(byte *)((int)param_4 + 0x2a)" * (cast_expression "(byte *)((int)param_4 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 + 0x2a)" ( (binary_expression "(int)param_4 + 0x2a" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((int)param_4 + 0x2a) | 0x80" (pointer_expression "*(byte *)((int)param_4 + 0x2a)" * (cast_expression "(byte *)((int)param_4 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 + 0x2a)" ( (binary_expression "(int)param_4 + 0x2a" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) | number_literal)) ;) (expression_statement "iVar11 = (**(code **)(*param_9 + 0x14))(param_9);" (assignment_expression "iVar11 = (**(code **)(*param_9 + 0x14))(param_9)" identifier = (call_expression "(**(code **)(*param_9 + 0x14))(param_9)" (parenthesized_expression "(**(code **)(*param_9 + 0x14))" ( (pointer_expression "**(code **)(*param_9 + 0x14)" * (pointer_expression "*(code **)(*param_9 + 0x14)" * (cast_expression "(code **)(*param_9 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_9 + 0x14)" ( (binary_expression "*param_9 + 0x14" (pointer_expression "*param_9" * identifier) + number_literal) ))))) )) (argument_list "(param_9)" ( identifier )))) ;) }) (else_clause "else {\n    if ((param_6 == (undefined1 *)0x0) &&\n       (puVar9 = (undefined4 *)((*(byte *)((int)param_4 + 0x29) & 3) - 1),\n       puVar9 < (undefined4 *)0x2)) {\n      return puVar9;\n    }\n    *(byte *)((int)param_4 + 0x2b) = *(byte *)((int)param_4 + 0x2b) | 1;\n    iVar11 = (**(code **)(*param_9 + 0x14))(param_9);\n  }" else (compound_statement "{\n    if ((param_6 == (undefined1 *)0x0) &&\n       (puVar9 = (undefined4 *)((*(byte *)((int)param_4 + 0x29) & 3) - 1),\n       puVar9 < (undefined4 *)0x2)) {\n      return puVar9;\n    }\n    *(byte *)((int)param_4 + 0x2b) = *(byte *)((int)param_4 + 0x2b) | 1;\n    iVar11 = (**(code **)(*param_9 + 0x14))(param_9);\n  }" { (if_statement "if ((param_6 == (undefined1 *)0x0) &&\n       (puVar9 = (undefined4 *)((*(byte *)((int)param_4 + 0x29) & 3) - 1),\n       puVar9 < (undefined4 *)0x2)) {\n      return puVar9;\n    }" if (parenthesized_expression "((param_6 == (undefined1 *)0x0) &&\n       (puVar9 = (undefined4 *)((*(byte *)((int)param_4 + 0x29) & 3) - 1),\n       puVar9 < (undefined4 *)0x2))" ( (binary_expression "(param_6 == (undefined1 *)0x0) &&\n       (puVar9 = (undefined4 *)((*(byte *)((int)param_4 + 0x29) & 3) - 1),\n       puVar9 < (undefined4 *)0x2)" (parenthesized_expression "(param_6 == (undefined1 *)0x0)" ( (binary_expression "param_6 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(puVar9 = (undefined4 *)((*(byte *)((int)param_4 + 0x29) & 3) - 1),\n       puVar9 < (undefined4 *)0x2)" ( (comma_expression "puVar9 = (undefined4 *)((*(byte *)((int)param_4 + 0x29) & 3) - 1),\n       puVar9 < (undefined4 *)0x2" (assignment_expression "puVar9 = (undefined4 *)((*(byte *)((int)param_4 + 0x29) & 3) - 1)" identifier = (cast_expression "(undefined4 *)((*(byte *)((int)param_4 + 0x29) & 3) - 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((*(byte *)((int)param_4 + 0x29) & 3) - 1)" ( (binary_expression "(*(byte *)((int)param_4 + 0x29) & 3) - 1" (parenthesized_expression "(*(byte *)((int)param_4 + 0x29) & 3)" ( (binary_expression "*(byte *)((int)param_4 + 0x29) & 3" (pointer_expression "*(byte *)((int)param_4 + 0x29)" * (cast_expression "(byte *)((int)param_4 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 + 0x29)" ( (binary_expression "(int)param_4 + 0x29" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) - number_literal) )))) , (binary_expression "puVar9 < (undefined4 *)0x2" identifier < (cast_expression "(undefined4 *)0x2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n      return puVar9;\n    }" { (return_statement "return puVar9;" return identifier ;) })) (expression_statement "*(byte *)((int)param_4 + 0x2b) = *(byte *)((int)param_4 + 0x2b) | 1;" (assignment_expression "*(byte *)((int)param_4 + 0x2b) = *(byte *)((int)param_4 + 0x2b) | 1" (pointer_expression "*(byte *)((int)param_4 + 0x2b)" * (cast_expression "(byte *)((int)param_4 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 + 0x2b)" ( (binary_expression "(int)param_4 + 0x2b" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((int)param_4 + 0x2b) | 1" (pointer_expression "*(byte *)((int)param_4 + 0x2b)" * (cast_expression "(byte *)((int)param_4 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 + 0x2b)" ( (binary_expression "(int)param_4 + 0x2b" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) | number_literal)) ;) (expression_statement "iVar11 = (**(code **)(*param_9 + 0x14))(param_9);" (assignment_expression "iVar11 = (**(code **)(*param_9 + 0x14))(param_9)" identifier = (call_expression "(**(code **)(*param_9 + 0x14))(param_9)" (parenthesized_expression "(**(code **)(*param_9 + 0x14))" ( (pointer_expression "**(code **)(*param_9 + 0x14)" * (pointer_expression "*(code **)(*param_9 + 0x14)" * (cast_expression "(code **)(*param_9 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_9 + 0x14)" ( (binary_expression "*param_9 + 0x14" (pointer_expression "*param_9" * identifier) + number_literal) ))))) )) (argument_list "(param_9)" ( identifier )))) ;) }))) (if_statement "if ((iVar11 == 0) && ((*(byte *)(param_9 + 0xb) & 1) == 0)) {\n    *(byte *)((int)param_4 + 0x2b) = *(byte *)((int)param_4 + 0x2b) | 0x40;\n  }" if (parenthesized_expression "((iVar11 == 0) && ((*(byte *)(param_9 + 0xb) & 1) == 0))" ( (binary_expression "(iVar11 == 0) && ((*(byte *)(param_9 + 0xb) & 1) == 0)" (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) && (parenthesized_expression "((*(byte *)(param_9 + 0xb) & 1) == 0)" ( (binary_expression "(*(byte *)(param_9 + 0xb) & 1) == 0" (parenthesized_expression "(*(byte *)(param_9 + 0xb) & 1)" ( (binary_expression "*(byte *)(param_9 + 0xb) & 1" (pointer_expression "*(byte *)(param_9 + 0xb)" * (cast_expression "(byte *)(param_9 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_9 + 0xb)" ( (binary_expression "param_9 + 0xb" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n    *(byte *)((int)param_4 + 0x2b) = *(byte *)((int)param_4 + 0x2b) | 0x40;\n  }" { (expression_statement "*(byte *)((int)param_4 + 0x2b) = *(byte *)((int)param_4 + 0x2b) | 0x40;" (assignment_expression "*(byte *)((int)param_4 + 0x2b) = *(byte *)((int)param_4 + 0x2b) | 0x40" (pointer_expression "*(byte *)((int)param_4 + 0x2b)" * (cast_expression "(byte *)((int)param_4 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 + 0x2b)" ( (binary_expression "(int)param_4 + 0x2b" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((int)param_4 + 0x2b) | 0x40" (pointer_expression "*(byte *)((int)param_4 + 0x2b)" * (cast_expression "(byte *)((int)param_4 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 + 0x2b)" ( (binary_expression "(int)param_4 + 0x2b" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) | number_literal)) ;) })) (if_statement "if (((*(byte *)((int)param_4 + 0x2a) & 7) == 0) &&\n     (iVar11 = (**(code **)(*(int *)param_4[2] + 0x14))((int *)param_4[2]), iVar11 != 0)) {\n    puVar9 = *(undefined4 **)(*local_60 + 8);\n    pppuVar15 = (undefined ***)auStack_8c;\n    if (puVar9 == (undefined4 *)0x0) goto LAB_001ccb98;\n    if (*(char *)(puVar9[0x164f] + 0x61) != '\0') {\n      if (((((*(byte *)((int)param_4 + 0x2a) & 7) != 0) ||\n           ((*(byte *)((int)param_4 + 0x2b) & 0x20) != 0)) ||\n          (cVar7 = FUN_00177470(param_4[3]), cVar7 != '\x01')) ||\n         (((char)local_58 != '\0' || (cVar7 = FUN_00177470(param_6), cVar7 == '\0')))) {\n        ppuStack_94 = param_10;\n        puVar9 = (undefined4 *)FUN_001cb040(param_3,param_4,param_5,param_6,local_58 & 0xff,param_9)\n        ;\n        return puVar9;\n      }\n      local_5c = (undefined **)param_4[0xf];\n      local_60 = (undefined **)param_4[0xe];\n      uVar4 = param_4[0xd];\n      local_58 = param_4[0xc];\n      ppuStack_94 = param_10;\n      FUN_001cb040(param_3,param_4,param_5,param_6,0,param_9);\n      if ((uint)param_4[0xf] < local_5c ||\n          (uint)(param_4[0xf] - (int)local_5c) < (uint)((uint)param_4[0xe] < local_60)) {\n        param_4[0xe] = local_60;\n        param_4[0xf] = local_5c;\n      }\n      uVar6 = param_4[0xd] - uVar4;\n      puVar9 = (undefined4 *)(uVar6 - ((uint)param_4[0xc] < local_58));\n      if (uVar4 <= (uint)param_4[0xd] && ((uint)param_4[0xc] < local_58) <= uVar6) {\n        return puVar9;\n      }\n      param_4[0xc] = local_58;\n      param_4[0xd] = uVar4;\n      return puVar9;\n    }\n  }\n  else {\n    puVar9 = *(undefined4 **)(*local_60 + 8);\n    if (puVar9 == (undefined4 *)0x0) goto LAB_001ccb98;\n  }" if (parenthesized_expression "(((*(byte *)((int)param_4 + 0x2a) & 7) == 0) &&\n     (iVar11 = (**(code **)(*(int *)param_4[2] + 0x14))((int *)param_4[2]), iVar11 != 0))" ( (binary_expression "((*(byte *)((int)param_4 + 0x2a) & 7) == 0) &&\n     (iVar11 = (**(code **)(*(int *)param_4[2] + 0x14))((int *)param_4[2]), iVar11 != 0)" (parenthesized_expression "((*(byte *)((int)param_4 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)((int)param_4 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)((int)param_4 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)param_4 + 0x2a) & 7" (pointer_expression "*(byte *)((int)param_4 + 0x2a)" * (cast_expression "(byte *)((int)param_4 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 + 0x2a)" ( (binary_expression "(int)param_4 + 0x2a" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(iVar11 = (**(code **)(*(int *)param_4[2] + 0x14))((int *)param_4[2]), iVar11 != 0)" ( (comma_expression "iVar11 = (**(code **)(*(int *)param_4[2] + 0x14))((int *)param_4[2]), iVar11 != 0" (assignment_expression "iVar11 = (**(code **)(*(int *)param_4[2] + 0x14))((int *)param_4[2])" identifier = (call_expression "(**(code **)(*(int *)param_4[2] + 0x14))((int *)param_4[2])" (parenthesized_expression "(**(code **)(*(int *)param_4[2] + 0x14))" ( (pointer_expression "**(code **)(*(int *)param_4[2] + 0x14)" * (pointer_expression "*(code **)(*(int *)param_4[2] + 0x14)" * (cast_expression "(code **)(*(int *)param_4[2] + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)param_4[2] + 0x14)" ( (binary_expression "*(int *)param_4[2] + 0x14" (pointer_expression "*(int *)param_4[2]" * (cast_expression "(int *)param_4[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[2]" identifier [ number_literal ]))) + number_literal) ))))) )) (argument_list "((int *)param_4[2])" ( (cast_expression "(int *)param_4[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[2]" identifier [ number_literal ])) )))) , (binary_expression "iVar11 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    puVar9 = *(undefined4 **)(*local_60 + 8);\n    pppuVar15 = (undefined ***)auStack_8c;\n    if (puVar9 == (undefined4 *)0x0) goto LAB_001ccb98;\n    if (*(char *)(puVar9[0x164f] + 0x61) != '\0') {\n      if (((((*(byte *)((int)param_4 + 0x2a) & 7) != 0) ||\n           ((*(byte *)((int)param_4 + 0x2b) & 0x20) != 0)) ||\n          (cVar7 = FUN_00177470(param_4[3]), cVar7 != '\x01')) ||\n         (((char)local_58 != '\0' || (cVar7 = FUN_00177470(param_6), cVar7 == '\0')))) {\n        ppuStack_94 = param_10;\n        puVar9 = (undefined4 *)FUN_001cb040(param_3,param_4,param_5,param_6,local_58 & 0xff,param_9)\n        ;\n        return puVar9;\n      }\n      local_5c = (undefined **)param_4[0xf];\n      local_60 = (undefined **)param_4[0xe];\n      uVar4 = param_4[0xd];\n      local_58 = param_4[0xc];\n      ppuStack_94 = param_10;\n      FUN_001cb040(param_3,param_4,param_5,param_6,0,param_9);\n      if ((uint)param_4[0xf] < local_5c ||\n          (uint)(param_4[0xf] - (int)local_5c) < (uint)((uint)param_4[0xe] < local_60)) {\n        param_4[0xe] = local_60;\n        param_4[0xf] = local_5c;\n      }\n      uVar6 = param_4[0xd] - uVar4;\n      puVar9 = (undefined4 *)(uVar6 - ((uint)param_4[0xc] < local_58));\n      if (uVar4 <= (uint)param_4[0xd] && ((uint)param_4[0xc] < local_58) <= uVar6) {\n        return puVar9;\n      }\n      param_4[0xc] = local_58;\n      param_4[0xd] = uVar4;\n      return puVar9;\n    }\n  }" { (expression_statement "puVar9 = *(undefined4 **)(*local_60 + 8);" (assignment_expression "puVar9 = *(undefined4 **)(*local_60 + 8)" identifier = (pointer_expression "*(undefined4 **)(*local_60 + 8)" * (cast_expression "(undefined4 **)(*local_60 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_60 + 8)" ( (binary_expression "*local_60 + 8" (pointer_expression "*local_60" * identifier) + number_literal) ))))) ;) (expression_statement "pppuVar15 = (undefined ***)auStack_8c;" (assignment_expression "pppuVar15 = (undefined ***)auStack_8c" identifier = (cast_expression "(undefined ***)auStack_8c" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (if_statement "if (puVar9 == (undefined4 *)0x0) goto LAB_001ccb98;" if (parenthesized_expression "(puVar9 == (undefined4 *)0x0)" ( (binary_expression "puVar9 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001ccb98;" goto statement_identifier ;)) (if_statement "if (*(char *)(puVar9[0x164f] + 0x61) != '\0') {\n      if (((((*(byte *)((int)param_4 + 0x2a) & 7) != 0) ||\n           ((*(byte *)((int)param_4 + 0x2b) & 0x20) != 0)) ||\n          (cVar7 = FUN_00177470(param_4[3]), cVar7 != '\x01')) ||\n         (((char)local_58 != '\0' || (cVar7 = FUN_00177470(param_6), cVar7 == '\0')))) {\n        ppuStack_94 = param_10;\n        puVar9 = (undefined4 *)FUN_001cb040(param_3,param_4,param_5,param_6,local_58 & 0xff,param_9)\n        ;\n        return puVar9;\n      }\n      local_5c = (undefined **)param_4[0xf];\n      local_60 = (undefined **)param_4[0xe];\n      uVar4 = param_4[0xd];\n      local_58 = param_4[0xc];\n      ppuStack_94 = param_10;\n      FUN_001cb040(param_3,param_4,param_5,param_6,0,param_9);\n      if ((uint)param_4[0xf] < local_5c ||\n          (uint)(param_4[0xf] - (int)local_5c) < (uint)((uint)param_4[0xe] < local_60)) {\n        param_4[0xe] = local_60;\n        param_4[0xf] = local_5c;\n      }\n      uVar6 = param_4[0xd] - uVar4;\n      puVar9 = (undefined4 *)(uVar6 - ((uint)param_4[0xc] < local_58));\n      if (uVar4 <= (uint)param_4[0xd] && ((uint)param_4[0xc] < local_58) <= uVar6) {\n        return puVar9;\n      }\n      param_4[0xc] = local_58;\n      param_4[0xd] = uVar4;\n      return puVar9;\n    }" if (parenthesized_expression "(*(char *)(puVar9[0x164f] + 0x61) != '\0')" ( (binary_expression "*(char *)(puVar9[0x164f] + 0x61) != '\0'" (pointer_expression "*(char *)(puVar9[0x164f] + 0x61)" * (cast_expression "(char *)(puVar9[0x164f] + 0x61)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9[0x164f] + 0x61)" ( (binary_expression "puVar9[0x164f] + 0x61" (subscript_expression "puVar9[0x164f]" identifier [ number_literal ]) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if (((((*(byte *)((int)param_4 + 0x2a) & 7) != 0) ||\n           ((*(byte *)((int)param_4 + 0x2b) & 0x20) != 0)) ||\n          (cVar7 = FUN_00177470(param_4[3]), cVar7 != '\x01')) ||\n         (((char)local_58 != '\0' || (cVar7 = FUN_00177470(param_6), cVar7 == '\0')))) {\n        ppuStack_94 = param_10;\n        puVar9 = (undefined4 *)FUN_001cb040(param_3,param_4,param_5,param_6,local_58 & 0xff,param_9)\n        ;\n        return puVar9;\n      }\n      local_5c = (undefined **)param_4[0xf];\n      local_60 = (undefined **)param_4[0xe];\n      uVar4 = param_4[0xd];\n      local_58 = param_4[0xc];\n      ppuStack_94 = param_10;\n      FUN_001cb040(param_3,param_4,param_5,param_6,0,param_9);\n      if ((uint)param_4[0xf] < local_5c ||\n          (uint)(param_4[0xf] - (int)local_5c) < (uint)((uint)param_4[0xe] < local_60)) {\n        param_4[0xe] = local_60;\n        param_4[0xf] = local_5c;\n      }\n      uVar6 = param_4[0xd] - uVar4;\n      puVar9 = (undefined4 *)(uVar6 - ((uint)param_4[0xc] < local_58));\n      if (uVar4 <= (uint)param_4[0xd] && ((uint)param_4[0xc] < local_58) <= uVar6) {\n        return puVar9;\n      }\n      param_4[0xc] = local_58;\n      param_4[0xd] = uVar4;\n      return puVar9;\n    }" { (if_statement "if (((((*(byte *)((int)param_4 + 0x2a) & 7) != 0) ||\n           ((*(byte *)((int)param_4 + 0x2b) & 0x20) != 0)) ||\n          (cVar7 = FUN_00177470(param_4[3]), cVar7 != '\x01')) ||\n         (((char)local_58 != '\0' || (cVar7 = FUN_00177470(param_6), cVar7 == '\0')))) {\n        ppuStack_94 = param_10;\n        puVar9 = (undefined4 *)FUN_001cb040(param_3,param_4,param_5,param_6,local_58 & 0xff,param_9)\n        ;\n        return puVar9;\n      }" if (parenthesized_expression "(((((*(byte *)((int)param_4 + 0x2a) & 7) != 0) ||\n           ((*(byte *)((int)param_4 + 0x2b) & 0x20) != 0)) ||\n          (cVar7 = FUN_00177470(param_4[3]), cVar7 != '\x01')) ||\n         (((char)local_58 != '\0' || (cVar7 = FUN_00177470(param_6), cVar7 == '\0'))))" ( (binary_expression "((((*(byte *)((int)param_4 + 0x2a) & 7) != 0) ||\n           ((*(byte *)((int)param_4 + 0x2b) & 0x20) != 0)) ||\n          (cVar7 = FUN_00177470(param_4[3]), cVar7 != '\x01')) ||\n         (((char)local_58 != '\0' || (cVar7 = FUN_00177470(param_6), cVar7 == '\0')))" (parenthesized_expression "((((*(byte *)((int)param_4 + 0x2a) & 7) != 0) ||\n           ((*(byte *)((int)param_4 + 0x2b) & 0x20) != 0)) ||\n          (cVar7 = FUN_00177470(param_4[3]), cVar7 != '\x01'))" ( (binary_expression "(((*(byte *)((int)param_4 + 0x2a) & 7) != 0) ||\n           ((*(byte *)((int)param_4 + 0x2b) & 0x20) != 0)) ||\n          (cVar7 = FUN_00177470(param_4[3]), cVar7 != '\x01')" (parenthesized_expression "(((*(byte *)((int)param_4 + 0x2a) & 7) != 0) ||\n           ((*(byte *)((int)param_4 + 0x2b) & 0x20) != 0))" ( (binary_expression "((*(byte *)((int)param_4 + 0x2a) & 7) != 0) ||\n           ((*(byte *)((int)param_4 + 0x2b) & 0x20) != 0)" (parenthesized_expression "((*(byte *)((int)param_4 + 0x2a) & 7) != 0)" ( (binary_expression "(*(byte *)((int)param_4 + 0x2a) & 7) != 0" (parenthesized_expression "(*(byte *)((int)param_4 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)param_4 + 0x2a) & 7" (pointer_expression "*(byte *)((int)param_4 + 0x2a)" * (cast_expression "(byte *)((int)param_4 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 + 0x2a)" ( (binary_expression "(int)param_4 + 0x2a" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "((*(byte *)((int)param_4 + 0x2b) & 0x20) != 0)" ( (binary_expression "(*(byte *)((int)param_4 + 0x2b) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)param_4 + 0x2b) & 0x20)" ( (binary_expression "*(byte *)((int)param_4 + 0x2b) & 0x20" (pointer_expression "*(byte *)((int)param_4 + 0x2b)" * (cast_expression "(byte *)((int)param_4 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 + 0x2b)" ( (binary_expression "(int)param_4 + 0x2b" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "(cVar7 = FUN_00177470(param_4[3]), cVar7 != '\x01')" ( (comma_expression "cVar7 = FUN_00177470(param_4[3]), cVar7 != '\x01'" (assignment_expression "cVar7 = FUN_00177470(param_4[3])" identifier = (call_expression "FUN_00177470(param_4[3])" identifier (argument_list "(param_4[3])" ( (subscript_expression "param_4[3]" identifier [ number_literal ]) )))) , (binary_expression "cVar7 != '\x01'" identifier != (char_literal "'\x01'" ' escape_sequence '))) ))) )) || (parenthesized_expression "(((char)local_58 != '\0' || (cVar7 = FUN_00177470(param_6), cVar7 == '\0')))" ( (parenthesized_expression "((char)local_58 != '\0' || (cVar7 = FUN_00177470(param_6), cVar7 == '\0'))" ( (binary_expression "(char)local_58 != '\0' || (cVar7 = FUN_00177470(param_6), cVar7 == '\0')" (binary_expression "(char)local_58 != '\0'" (cast_expression "(char)local_58" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(cVar7 = FUN_00177470(param_6), cVar7 == '\0')" ( (comma_expression "cVar7 = FUN_00177470(param_6), cVar7 == '\0'" (assignment_expression "cVar7 = FUN_00177470(param_6)" identifier = (call_expression "FUN_00177470(param_6)" identifier (argument_list "(param_6)" ( identifier )))) , (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ))) )) ))) )) (compound_statement "{\n        ppuStack_94 = param_10;\n        puVar9 = (undefined4 *)FUN_001cb040(param_3,param_4,param_5,param_6,local_58 & 0xff,param_9)\n        ;\n        return puVar9;\n      }" { (expression_statement "ppuStack_94 = param_10;" (assignment_expression "ppuStack_94 = param_10" identifier = identifier) ;) (expression_statement "puVar9 = (undefined4 *)FUN_001cb040(param_3,param_4,param_5,param_6,local_58 & 0xff,param_9)\n        ;" (assignment_expression "puVar9 = (undefined4 *)FUN_001cb040(param_3,param_4,param_5,param_6,local_58 & 0xff,param_9)" identifier = (cast_expression "(undefined4 *)FUN_001cb040(param_3,param_4,param_5,param_6,local_58 & 0xff,param_9)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001cb040(param_3,param_4,param_5,param_6,local_58 & 0xff,param_9)" identifier (argument_list "(param_3,param_4,param_5,param_6,local_58 & 0xff,param_9)" ( identifier , identifier , identifier , identifier , (binary_expression "local_58 & 0xff" identifier & number_literal) , identifier ))))) ;) (return_statement "return puVar9;" return identifier ;) })) (expression_statement "local_5c = (undefined **)param_4[0xf];" (assignment_expression "local_5c = (undefined **)param_4[0xf]" identifier = (cast_expression "(undefined **)param_4[0xf]" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "param_4[0xf]" identifier [ number_literal ]))) ;) (expression_statement "local_60 = (undefined **)param_4[0xe];" (assignment_expression "local_60 = (undefined **)param_4[0xe]" identifier = (cast_expression "(undefined **)param_4[0xe]" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "param_4[0xe]" identifier [ number_literal ]))) ;) (expression_statement "uVar4 = param_4[0xd];" (assignment_expression "uVar4 = param_4[0xd]" identifier = (subscript_expression "param_4[0xd]" identifier [ number_literal ])) ;) (expression_statement "local_58 = param_4[0xc];" (assignment_expression "local_58 = param_4[0xc]" identifier = (subscript_expression "param_4[0xc]" identifier [ number_literal ])) ;) (expression_statement "ppuStack_94 = param_10;" (assignment_expression "ppuStack_94 = param_10" identifier = identifier) ;) (expression_statement "FUN_001cb040(param_3,param_4,param_5,param_6,0,param_9);" (call_expression "FUN_001cb040(param_3,param_4,param_5,param_6,0,param_9)" identifier (argument_list "(param_3,param_4,param_5,param_6,0,param_9)" ( identifier , identifier , identifier , identifier , number_literal , identifier ))) ;) (if_statement "if ((uint)param_4[0xf] < local_5c ||\n          (uint)(param_4[0xf] - (int)local_5c) < (uint)((uint)param_4[0xe] < local_60)) {\n        param_4[0xe] = local_60;\n        param_4[0xf] = local_5c;\n      }" if (parenthesized_expression "((uint)param_4[0xf] < local_5c ||\n          (uint)(param_4[0xf] - (int)local_5c) < (uint)((uint)param_4[0xe] < local_60))" ( (binary_expression "(uint)param_4[0xf] < local_5c ||\n          (uint)(param_4[0xf] - (int)local_5c) < (uint)((uint)param_4[0xe] < local_60)" (binary_expression "(uint)param_4[0xf] < local_5c" (cast_expression "(uint)param_4[0xf]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_4[0xf]" identifier [ number_literal ])) < identifier) || (binary_expression "(uint)(param_4[0xf] - (int)local_5c) < (uint)((uint)param_4[0xe] < local_60)" (call_expression "(uint)(param_4[0xf] - (int)local_5c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_4[0xf] - (int)local_5c)" ( (binary_expression "param_4[0xf] - (int)local_5c" (subscript_expression "param_4[0xf]" identifier [ number_literal ]) - (cast_expression "(int)local_5c" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < (call_expression "(uint)((uint)param_4[0xe] < local_60)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)param_4[0xe] < local_60)" ( (binary_expression "(uint)param_4[0xe] < local_60" (cast_expression "(uint)param_4[0xe]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_4[0xe]" identifier [ number_literal ])) < identifier) ))))) )) (compound_statement "{\n        param_4[0xe] = local_60;\n        param_4[0xf] = local_5c;\n      }" { (expression_statement "param_4[0xe] = local_60;" (assignment_expression "param_4[0xe] = local_60" (subscript_expression "param_4[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_4[0xf] = local_5c;" (assignment_expression "param_4[0xf] = local_5c" (subscript_expression "param_4[0xf]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "uVar6 = param_4[0xd] - uVar4;" (assignment_expression "uVar6 = param_4[0xd] - uVar4" identifier = (binary_expression "param_4[0xd] - uVar4" (subscript_expression "param_4[0xd]" identifier [ number_literal ]) - identifier)) ;) (expression_statement "puVar9 = (undefined4 *)(uVar6 - ((uint)param_4[0xc] < local_58));" (assignment_expression "puVar9 = (undefined4 *)(uVar6 - ((uint)param_4[0xc] < local_58))" identifier = (cast_expression "(undefined4 *)(uVar6 - ((uint)param_4[0xc] < local_58))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar6 - ((uint)param_4[0xc] < local_58))" ( (binary_expression "uVar6 - ((uint)param_4[0xc] < local_58)" identifier - (parenthesized_expression "((uint)param_4[0xc] < local_58)" ( (binary_expression "(uint)param_4[0xc] < local_58" (cast_expression "(uint)param_4[0xc]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_4[0xc]" identifier [ number_literal ])) < identifier) ))) )))) ;) (if_statement "if (uVar4 <= (uint)param_4[0xd] && ((uint)param_4[0xc] < local_58) <= uVar6) {\n        return puVar9;\n      }" if (parenthesized_expression "(uVar4 <= (uint)param_4[0xd] && ((uint)param_4[0xc] < local_58) <= uVar6)" ( (binary_expression "uVar4 <= (uint)param_4[0xd] && ((uint)param_4[0xc] < local_58) <= uVar6" (binary_expression "uVar4 <= (uint)param_4[0xd]" identifier <= (cast_expression "(uint)param_4[0xd]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_4[0xd]" identifier [ number_literal ]))) && (binary_expression "((uint)param_4[0xc] < local_58) <= uVar6" (parenthesized_expression "((uint)param_4[0xc] < local_58)" ( (binary_expression "(uint)param_4[0xc] < local_58" (cast_expression "(uint)param_4[0xc]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_4[0xc]" identifier [ number_literal ])) < identifier) )) <= identifier)) )) (compound_statement "{\n        return puVar9;\n      }" { (return_statement "return puVar9;" return identifier ;) })) (expression_statement "param_4[0xc] = local_58;" (assignment_expression "param_4[0xc] = local_58" (subscript_expression "param_4[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_4[0xd] = uVar4;" (assignment_expression "param_4[0xd] = uVar4" (subscript_expression "param_4[0xd]" identifier [ number_literal ]) = identifier) ;) (return_statement "return puVar9;" return identifier ;) })) }) (else_clause "else {\n    puVar9 = *(undefined4 **)(*local_60 + 8);\n    if (puVar9 == (undefined4 *)0x0) goto LAB_001ccb98;\n  }" else (compound_statement "{\n    puVar9 = *(undefined4 **)(*local_60 + 8);\n    if (puVar9 == (undefined4 *)0x0) goto LAB_001ccb98;\n  }" { (expression_statement "puVar9 = *(undefined4 **)(*local_60 + 8);" (assignment_expression "puVar9 = *(undefined4 **)(*local_60 + 8)" identifier = (pointer_expression "*(undefined4 **)(*local_60 + 8)" * (cast_expression "(undefined4 **)(*local_60 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_60 + 8)" ( (binary_expression "*local_60 + 8" (pointer_expression "*local_60" * identifier) + number_literal) ))))) ;) (if_statement "if (puVar9 == (undefined4 *)0x0) goto LAB_001ccb98;" if (parenthesized_expression "(puVar9 == (undefined4 *)0x0)" ( (binary_expression "puVar9 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001ccb98;" goto statement_identifier ;)) }))) (if_statement "if (*(char *)((int)puVar9 + 0xe0d) == '\0') {\n    local_74 = &local_34;\n    local_70 = &local_44;\n    pppuVar15 = (undefined ***)auStack_8c;\n  }\n  else {\n    iVar11 = *param_5;\n    if ((int)(uint)*(byte *)(iVar11 + 4) >> 4 != 2) {\n      local_74 = &local_34;\n      local_70 = &local_44;\n      pppuVar15 = (undefined ***)auStack_8c;\n      if (*(byte *)(param_4 + 10) >> 4 != 2) goto LAB_001cc978;\n    }\n    local_74 = &local_34;\n    local_70 = &local_44;\n    pppuVar15 = (undefined ***)auStack_8c;\n    if ((((byte)local_64 & param_8 != 0) != 0) &&\n       (pppuVar15 = (undefined ***)auStack_8c, local_6c != (undefined1 *)0x0)) {\n      local_64 = *(char ***)(iVar11 + 0x10);\n      local_78 = *(undefined4 **)(iVar11 + 0x14);\n      pppuVar15 = (undefined ***)auStack_8c;\n      if (local_78 != (undefined4 *)0x0 || local_64 != (char **)0x0) {\n        local_7c = (char **)param_4[0xe];\n        local_80 = (undefined4 *)param_4[0xf];\n        pppuVar15 = (undefined ***)auStack_8c;\n        if ((local_80 != (undefined4 *)0x0 || local_7c != (char **)0x0) &&\n           (((*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||\n            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80))))\n        {\n          pcVar10 = (char *)*param_4;\n          local_74 = &local_34;\n          local_70 = &local_44;\n          pppuVar15 = (undefined ***)auStack_8c;\n          if ((*pcVar10 == '_') && (pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z')) {\n            local_3c = *(undefined4 *)(iVar11 + 8);\n            local_44 = param_9;\n            local_40 = param_8;\n            local_38 = *(undefined4 *)(iVar11 + 0xc);\n            if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\nLAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;\n              ppuStack_90 = (undefined **)pcVar10;\n                    \n              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);\n            }\n            local_34 = (undefined4 *)param_4[2];\n            local_2c = param_4[0xc];\n            local_30 = local_6c;\n            local_28 = param_4[0xd];\n            ppuStack_90 = param_3;\n            ppuStack_94 = param_3;\n            local_64 = &local_4c;\n            local_4c = pcVar10;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            local_6c = local_54;\n            local_78 = &local_48;\n            FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1);\n            local_4c = (char *)*param_4;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1);\n            pppuVar15 = &ppuStack_94;\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "(*(char *)((int)puVar9 + 0xe0d) == '\0')" ( (binary_expression "*(char *)((int)puVar9 + 0xe0d) == '\0'" (pointer_expression "*(char *)((int)puVar9 + 0xe0d)" * (cast_expression "(char *)((int)puVar9 + 0xe0d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + 0xe0d)" ( (binary_expression "(int)puVar9 + 0xe0d" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    local_74 = &local_34;\n    local_70 = &local_44;\n    pppuVar15 = (undefined ***)auStack_8c;\n  }" { (expression_statement "local_74 = &local_34;" (assignment_expression "local_74 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "local_70 = &local_44;" (assignment_expression "local_70 = &local_44" identifier = (pointer_expression "&local_44" & identifier)) ;) (expression_statement "pppuVar15 = (undefined ***)auStack_8c;" (assignment_expression "pppuVar15 = (undefined ***)auStack_8c" identifier = (cast_expression "(undefined ***)auStack_8c" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) }) (else_clause "else {\n    iVar11 = *param_5;\n    if ((int)(uint)*(byte *)(iVar11 + 4) >> 4 != 2) {\n      local_74 = &local_34;\n      local_70 = &local_44;\n      pppuVar15 = (undefined ***)auStack_8c;\n      if (*(byte *)(param_4 + 10) >> 4 != 2) goto LAB_001cc978;\n    }\n    local_74 = &local_34;\n    local_70 = &local_44;\n    pppuVar15 = (undefined ***)auStack_8c;\n    if ((((byte)local_64 & param_8 != 0) != 0) &&\n       (pppuVar15 = (undefined ***)auStack_8c, local_6c != (undefined1 *)0x0)) {\n      local_64 = *(char ***)(iVar11 + 0x10);\n      local_78 = *(undefined4 **)(iVar11 + 0x14);\n      pppuVar15 = (undefined ***)auStack_8c;\n      if (local_78 != (undefined4 *)0x0 || local_64 != (char **)0x0) {\n        local_7c = (char **)param_4[0xe];\n        local_80 = (undefined4 *)param_4[0xf];\n        pppuVar15 = (undefined ***)auStack_8c;\n        if ((local_80 != (undefined4 *)0x0 || local_7c != (char **)0x0) &&\n           (((*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||\n            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80))))\n        {\n          pcVar10 = (char *)*param_4;\n          local_74 = &local_34;\n          local_70 = &local_44;\n          pppuVar15 = (undefined ***)auStack_8c;\n          if ((*pcVar10 == '_') && (pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z')) {\n            local_3c = *(undefined4 *)(iVar11 + 8);\n            local_44 = param_9;\n            local_40 = param_8;\n            local_38 = *(undefined4 *)(iVar11 + 0xc);\n            if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\nLAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;\n              ppuStack_90 = (undefined **)pcVar10;\n                    \n              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);\n            }\n            local_34 = (undefined4 *)param_4[2];\n            local_2c = param_4[0xc];\n            local_30 = local_6c;\n            local_28 = param_4[0xd];\n            ppuStack_90 = param_3;\n            ppuStack_94 = param_3;\n            local_64 = &local_4c;\n            local_4c = pcVar10;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            local_6c = local_54;\n            local_78 = &local_48;\n            FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1);\n            local_4c = (char *)*param_4;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1);\n            pppuVar15 = &ppuStack_94;\n          }\n        }\n      }\n    }\n  }" else (compound_statement "{\n    iVar11 = *param_5;\n    if ((int)(uint)*(byte *)(iVar11 + 4) >> 4 != 2) {\n      local_74 = &local_34;\n      local_70 = &local_44;\n      pppuVar15 = (undefined ***)auStack_8c;\n      if (*(byte *)(param_4 + 10) >> 4 != 2) goto LAB_001cc978;\n    }\n    local_74 = &local_34;\n    local_70 = &local_44;\n    pppuVar15 = (undefined ***)auStack_8c;\n    if ((((byte)local_64 & param_8 != 0) != 0) &&\n       (pppuVar15 = (undefined ***)auStack_8c, local_6c != (undefined1 *)0x0)) {\n      local_64 = *(char ***)(iVar11 + 0x10);\n      local_78 = *(undefined4 **)(iVar11 + 0x14);\n      pppuVar15 = (undefined ***)auStack_8c;\n      if (local_78 != (undefined4 *)0x0 || local_64 != (char **)0x0) {\n        local_7c = (char **)param_4[0xe];\n        local_80 = (undefined4 *)param_4[0xf];\n        pppuVar15 = (undefined ***)auStack_8c;\n        if ((local_80 != (undefined4 *)0x0 || local_7c != (char **)0x0) &&\n           (((*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||\n            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80))))\n        {\n          pcVar10 = (char *)*param_4;\n          local_74 = &local_34;\n          local_70 = &local_44;\n          pppuVar15 = (undefined ***)auStack_8c;\n          if ((*pcVar10 == '_') && (pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z')) {\n            local_3c = *(undefined4 *)(iVar11 + 8);\n            local_44 = param_9;\n            local_40 = param_8;\n            local_38 = *(undefined4 *)(iVar11 + 0xc);\n            if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\nLAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;\n              ppuStack_90 = (undefined **)pcVar10;\n                    \n              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);\n            }\n            local_34 = (undefined4 *)param_4[2];\n            local_2c = param_4[0xc];\n            local_30 = local_6c;\n            local_28 = param_4[0xd];\n            ppuStack_90 = param_3;\n            ppuStack_94 = param_3;\n            local_64 = &local_4c;\n            local_4c = pcVar10;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            local_6c = local_54;\n            local_78 = &local_48;\n            FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1);\n            local_4c = (char *)*param_4;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1);\n            pppuVar15 = &ppuStack_94;\n          }\n        }\n      }\n    }\n  }" { (expression_statement "iVar11 = *param_5;" (assignment_expression "iVar11 = *param_5" identifier = (pointer_expression "*param_5" * identifier)) ;) (if_statement "if ((int)(uint)*(byte *)(iVar11 + 4) >> 4 != 2) {\n      local_74 = &local_34;\n      local_70 = &local_44;\n      pppuVar15 = (undefined ***)auStack_8c;\n      if (*(byte *)(param_4 + 10) >> 4 != 2) goto LAB_001cc978;\n    }" if (parenthesized_expression "((int)(uint)*(byte *)(iVar11 + 4) >> 4 != 2)" ( (binary_expression "(int)(uint)*(byte *)(iVar11 + 4) >> 4 != 2" (binary_expression "(int)(uint)*(byte *)(iVar11 + 4) >> 4" (binary_expression "(int)(uint)*(byte *)(iVar11 + 4)" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)(iVar11 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) )))) >> number_literal) != number_literal) )) (compound_statement "{\n      local_74 = &local_34;\n      local_70 = &local_44;\n      pppuVar15 = (undefined ***)auStack_8c;\n      if (*(byte *)(param_4 + 10) >> 4 != 2) goto LAB_001cc978;\n    }" { (expression_statement "local_74 = &local_34;" (assignment_expression "local_74 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "local_70 = &local_44;" (assignment_expression "local_70 = &local_44" identifier = (pointer_expression "&local_44" & identifier)) ;) (expression_statement "pppuVar15 = (undefined ***)auStack_8c;" (assignment_expression "pppuVar15 = (undefined ***)auStack_8c" identifier = (cast_expression "(undefined ***)auStack_8c" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (if_statement "if (*(byte *)(param_4 + 10) >> 4 != 2) goto LAB_001cc978;" if (parenthesized_expression "(*(byte *)(param_4 + 10) >> 4 != 2)" ( (binary_expression "*(byte *)(param_4 + 10) >> 4 != 2" (binary_expression "*(byte *)(param_4 + 10) >> 4" (pointer_expression "*(byte *)(param_4 + 10)" * (cast_expression "(byte *)(param_4 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 10)" ( (binary_expression "param_4 + 10" identifier + number_literal) )))) >> number_literal) != number_literal) )) (goto_statement "goto LAB_001cc978;" goto statement_identifier ;)) })) (expression_statement "local_74 = &local_34;" (assignment_expression "local_74 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "local_70 = &local_44;" (assignment_expression "local_70 = &local_44" identifier = (pointer_expression "&local_44" & identifier)) ;) (expression_statement "pppuVar15 = (undefined ***)auStack_8c;" (assignment_expression "pppuVar15 = (undefined ***)auStack_8c" identifier = (cast_expression "(undefined ***)auStack_8c" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (if_statement "if ((((byte)local_64 & param_8 != 0) != 0) &&\n       (pppuVar15 = (undefined ***)auStack_8c, local_6c != (undefined1 *)0x0)) {\n      local_64 = *(char ***)(iVar11 + 0x10);\n      local_78 = *(undefined4 **)(iVar11 + 0x14);\n      pppuVar15 = (undefined ***)auStack_8c;\n      if (local_78 != (undefined4 *)0x0 || local_64 != (char **)0x0) {\n        local_7c = (char **)param_4[0xe];\n        local_80 = (undefined4 *)param_4[0xf];\n        pppuVar15 = (undefined ***)auStack_8c;\n        if ((local_80 != (undefined4 *)0x0 || local_7c != (char **)0x0) &&\n           (((*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||\n            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80))))\n        {\n          pcVar10 = (char *)*param_4;\n          local_74 = &local_34;\n          local_70 = &local_44;\n          pppuVar15 = (undefined ***)auStack_8c;\n          if ((*pcVar10 == '_') && (pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z')) {\n            local_3c = *(undefined4 *)(iVar11 + 8);\n            local_44 = param_9;\n            local_40 = param_8;\n            local_38 = *(undefined4 *)(iVar11 + 0xc);\n            if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\nLAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;\n              ppuStack_90 = (undefined **)pcVar10;\n                    \n              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);\n            }\n            local_34 = (undefined4 *)param_4[2];\n            local_2c = param_4[0xc];\n            local_30 = local_6c;\n            local_28 = param_4[0xd];\n            ppuStack_90 = param_3;\n            ppuStack_94 = param_3;\n            local_64 = &local_4c;\n            local_4c = pcVar10;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            local_6c = local_54;\n            local_78 = &local_48;\n            FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1);\n            local_4c = (char *)*param_4;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1);\n            pppuVar15 = &ppuStack_94;\n          }\n        }\n      }\n    }" if (parenthesized_expression "((((byte)local_64 & param_8 != 0) != 0) &&\n       (pppuVar15 = (undefined ***)auStack_8c, local_6c != (undefined1 *)0x0))" ( (binary_expression "(((byte)local_64 & param_8 != 0) != 0) &&\n       (pppuVar15 = (undefined ***)auStack_8c, local_6c != (undefined1 *)0x0)" (parenthesized_expression "(((byte)local_64 & param_8 != 0) != 0)" ( (binary_expression "((byte)local_64 & param_8 != 0) != 0" (parenthesized_expression "((byte)local_64 & param_8 != 0)" ( (binary_expression "(byte)local_64 & param_8 != 0" (cast_expression "(byte)local_64" ( (type_descriptor "byte" type_identifier) ) identifier) & (binary_expression "param_8 != 0" identifier != number_literal)) )) != number_literal) )) && (parenthesized_expression "(pppuVar15 = (undefined ***)auStack_8c, local_6c != (undefined1 *)0x0)" ( (comma_expression "pppuVar15 = (undefined ***)auStack_8c, local_6c != (undefined1 *)0x0" (assignment_expression "pppuVar15 = (undefined ***)auStack_8c" identifier = (cast_expression "(undefined ***)auStack_8c" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) , (binary_expression "local_6c != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n      local_64 = *(char ***)(iVar11 + 0x10);\n      local_78 = *(undefined4 **)(iVar11 + 0x14);\n      pppuVar15 = (undefined ***)auStack_8c;\n      if (local_78 != (undefined4 *)0x0 || local_64 != (char **)0x0) {\n        local_7c = (char **)param_4[0xe];\n        local_80 = (undefined4 *)param_4[0xf];\n        pppuVar15 = (undefined ***)auStack_8c;\n        if ((local_80 != (undefined4 *)0x0 || local_7c != (char **)0x0) &&\n           (((*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||\n            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80))))\n        {\n          pcVar10 = (char *)*param_4;\n          local_74 = &local_34;\n          local_70 = &local_44;\n          pppuVar15 = (undefined ***)auStack_8c;\n          if ((*pcVar10 == '_') && (pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z')) {\n            local_3c = *(undefined4 *)(iVar11 + 8);\n            local_44 = param_9;\n            local_40 = param_8;\n            local_38 = *(undefined4 *)(iVar11 + 0xc);\n            if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\nLAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;\n              ppuStack_90 = (undefined **)pcVar10;\n                    \n              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);\n            }\n            local_34 = (undefined4 *)param_4[2];\n            local_2c = param_4[0xc];\n            local_30 = local_6c;\n            local_28 = param_4[0xd];\n            ppuStack_90 = param_3;\n            ppuStack_94 = param_3;\n            local_64 = &local_4c;\n            local_4c = pcVar10;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            local_6c = local_54;\n            local_78 = &local_48;\n            FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1);\n            local_4c = (char *)*param_4;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1);\n            pppuVar15 = &ppuStack_94;\n          }\n        }\n      }\n    }" { (expression_statement "local_64 = *(char ***)(iVar11 + 0x10);" (assignment_expression "local_64 = *(char ***)(iVar11 + 0x10)" identifier = (pointer_expression "*(char ***)(iVar11 + 0x10)" * (cast_expression "(char ***)(iVar11 + 0x10)" ( (type_descriptor "char ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "local_78 = *(undefined4 **)(iVar11 + 0x14);" (assignment_expression "local_78 = *(undefined4 **)(iVar11 + 0x14)" identifier = (pointer_expression "*(undefined4 **)(iVar11 + 0x14)" * (cast_expression "(undefined4 **)(iVar11 + 0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "pppuVar15 = (undefined ***)auStack_8c;" (assignment_expression "pppuVar15 = (undefined ***)auStack_8c" identifier = (cast_expression "(undefined ***)auStack_8c" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (if_statement "if (local_78 != (undefined4 *)0x0 || local_64 != (char **)0x0) {\n        local_7c = (char **)param_4[0xe];\n        local_80 = (undefined4 *)param_4[0xf];\n        pppuVar15 = (undefined ***)auStack_8c;\n        if ((local_80 != (undefined4 *)0x0 || local_7c != (char **)0x0) &&\n           (((*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||\n            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80))))\n        {\n          pcVar10 = (char *)*param_4;\n          local_74 = &local_34;\n          local_70 = &local_44;\n          pppuVar15 = (undefined ***)auStack_8c;\n          if ((*pcVar10 == '_') && (pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z')) {\n            local_3c = *(undefined4 *)(iVar11 + 8);\n            local_44 = param_9;\n            local_40 = param_8;\n            local_38 = *(undefined4 *)(iVar11 + 0xc);\n            if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\nLAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;\n              ppuStack_90 = (undefined **)pcVar10;\n                    \n              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);\n            }\n            local_34 = (undefined4 *)param_4[2];\n            local_2c = param_4[0xc];\n            local_30 = local_6c;\n            local_28 = param_4[0xd];\n            ppuStack_90 = param_3;\n            ppuStack_94 = param_3;\n            local_64 = &local_4c;\n            local_4c = pcVar10;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            local_6c = local_54;\n            local_78 = &local_48;\n            FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1);\n            local_4c = (char *)*param_4;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1);\n            pppuVar15 = &ppuStack_94;\n          }\n        }\n      }" if (parenthesized_expression "(local_78 != (undefined4 *)0x0 || local_64 != (char **)0x0)" ( (binary_expression "local_78 != (undefined4 *)0x0 || local_64 != (char **)0x0" (binary_expression "local_78 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "local_64 != (char **)0x0" identifier != (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal))) )) (compound_statement "{\n        local_7c = (char **)param_4[0xe];\n        local_80 = (undefined4 *)param_4[0xf];\n        pppuVar15 = (undefined ***)auStack_8c;\n        if ((local_80 != (undefined4 *)0x0 || local_7c != (char **)0x0) &&\n           (((*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||\n            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80))))\n        {\n          pcVar10 = (char *)*param_4;\n          local_74 = &local_34;\n          local_70 = &local_44;\n          pppuVar15 = (undefined ***)auStack_8c;\n          if ((*pcVar10 == '_') && (pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z')) {\n            local_3c = *(undefined4 *)(iVar11 + 8);\n            local_44 = param_9;\n            local_40 = param_8;\n            local_38 = *(undefined4 *)(iVar11 + 0xc);\n            if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\nLAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;\n              ppuStack_90 = (undefined **)pcVar10;\n                    \n              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);\n            }\n            local_34 = (undefined4 *)param_4[2];\n            local_2c = param_4[0xc];\n            local_30 = local_6c;\n            local_28 = param_4[0xd];\n            ppuStack_90 = param_3;\n            ppuStack_94 = param_3;\n            local_64 = &local_4c;\n            local_4c = pcVar10;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            local_6c = local_54;\n            local_78 = &local_48;\n            FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1);\n            local_4c = (char *)*param_4;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1);\n            pppuVar15 = &ppuStack_94;\n          }\n        }\n      }" { (expression_statement "local_7c = (char **)param_4[0xe];" (assignment_expression "local_7c = (char **)param_4[0xe]" identifier = (cast_expression "(char **)param_4[0xe]" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "param_4[0xe]" identifier [ number_literal ]))) ;) (expression_statement "local_80 = (undefined4 *)param_4[0xf];" (assignment_expression "local_80 = (undefined4 *)param_4[0xf]" identifier = (cast_expression "(undefined4 *)param_4[0xf]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[0xf]" identifier [ number_literal ]))) ;) (expression_statement "pppuVar15 = (undefined ***)auStack_8c;" (assignment_expression "pppuVar15 = (undefined ***)auStack_8c" identifier = (cast_expression "(undefined ***)auStack_8c" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (if_statement "if ((local_80 != (undefined4 *)0x0 || local_7c != (char **)0x0) &&\n           (((*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||\n            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80))))\n        {\n          pcVar10 = (char *)*param_4;\n          local_74 = &local_34;\n          local_70 = &local_44;\n          pppuVar15 = (undefined ***)auStack_8c;\n          if ((*pcVar10 == '_') && (pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z')) {\n            local_3c = *(undefined4 *)(iVar11 + 8);\n            local_44 = param_9;\n            local_40 = param_8;\n            local_38 = *(undefined4 *)(iVar11 + 0xc);\n            if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\nLAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;\n              ppuStack_90 = (undefined **)pcVar10;\n                    \n              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);\n            }\n            local_34 = (undefined4 *)param_4[2];\n            local_2c = param_4[0xc];\n            local_30 = local_6c;\n            local_28 = param_4[0xd];\n            ppuStack_90 = param_3;\n            ppuStack_94 = param_3;\n            local_64 = &local_4c;\n            local_4c = pcVar10;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            local_6c = local_54;\n            local_78 = &local_48;\n            FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1);\n            local_4c = (char *)*param_4;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1);\n            pppuVar15 = &ppuStack_94;\n          }\n        }" if (parenthesized_expression "((local_80 != (undefined4 *)0x0 || local_7c != (char **)0x0) &&\n           (((*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||\n            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80))))" ( (binary_expression "(local_80 != (undefined4 *)0x0 || local_7c != (char **)0x0) &&\n           (((*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||\n            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80)))" (parenthesized_expression "(local_80 != (undefined4 *)0x0 || local_7c != (char **)0x0)" ( (binary_expression "local_80 != (undefined4 *)0x0 || local_7c != (char **)0x0" (binary_expression "local_80 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "local_7c != (char **)0x0" identifier != (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal))) )) && (parenthesized_expression "(((*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||\n            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80)))" ( (parenthesized_expression "((*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||\n            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80))" ( (binary_expression "(*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||\n            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80)" (binary_expression "(*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf)" (parenthesized_expression "(*(byte *)(iVar11 + 4) & 0xf)" ( (binary_expression "*(byte *)(iVar11 + 4) & 0xf" (pointer_expression "*(byte *)(iVar11 + 4)" * (cast_expression "(byte *)(iVar11 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) )))) & number_literal) )) != (parenthesized_expression "(*(byte *)(param_4 + 10) & 0xf)" ( (binary_expression "*(byte *)(param_4 + 10) & 0xf" (pointer_expression "*(byte *)(param_4 + 10)" * (cast_expression "(byte *)(param_4 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 10)" ( (binary_expression "param_4 + 10" identifier + number_literal) )))) & number_literal) ))) || (parenthesized_expression "(pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80)" ( (comma_expression "pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80" (assignment_expression "pppuVar15 = (undefined ***)auStack_8c" identifier = (cast_expression "(undefined ***)auStack_8c" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) , (binary_expression "local_64 != local_7c || local_78 != local_80" (binary_expression "local_64 != local_7c" identifier != identifier) || (binary_expression "local_78 != local_80" identifier != identifier))) ))) )) ))) )) (compound_statement "{\n          pcVar10 = (char *)*param_4;\n          local_74 = &local_34;\n          local_70 = &local_44;\n          pppuVar15 = (undefined ***)auStack_8c;\n          if ((*pcVar10 == '_') && (pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z')) {\n            local_3c = *(undefined4 *)(iVar11 + 8);\n            local_44 = param_9;\n            local_40 = param_8;\n            local_38 = *(undefined4 *)(iVar11 + 0xc);\n            if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\nLAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;\n              ppuStack_90 = (undefined **)pcVar10;\n                    \n              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);\n            }\n            local_34 = (undefined4 *)param_4[2];\n            local_2c = param_4[0xc];\n            local_30 = local_6c;\n            local_28 = param_4[0xd];\n            ppuStack_90 = param_3;\n            ppuStack_94 = param_3;\n            local_64 = &local_4c;\n            local_4c = pcVar10;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            local_6c = local_54;\n            local_78 = &local_48;\n            FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1);\n            local_4c = (char *)*param_4;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1);\n            pppuVar15 = &ppuStack_94;\n          }\n        }" { (expression_statement "pcVar10 = (char *)*param_4;" (assignment_expression "pcVar10 = (char *)*param_4" identifier = (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (expression_statement "local_74 = &local_34;" (assignment_expression "local_74 = &local_34" identifier = (pointer_expression "&local_34" & identifier)) ;) (expression_statement "local_70 = &local_44;" (assignment_expression "local_70 = &local_44" identifier = (pointer_expression "&local_44" & identifier)) ;) (expression_statement "pppuVar15 = (undefined ***)auStack_8c;" (assignment_expression "pppuVar15 = (undefined ***)auStack_8c" identifier = (cast_expression "(undefined ***)auStack_8c" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (if_statement "if ((*pcVar10 == '_') && (pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z')) {\n            local_3c = *(undefined4 *)(iVar11 + 8);\n            local_44 = param_9;\n            local_40 = param_8;\n            local_38 = *(undefined4 *)(iVar11 + 0xc);\n            if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\nLAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;\n              ppuStack_90 = (undefined **)pcVar10;\n                    \n              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);\n            }\n            local_34 = (undefined4 *)param_4[2];\n            local_2c = param_4[0xc];\n            local_30 = local_6c;\n            local_28 = param_4[0xd];\n            ppuStack_90 = param_3;\n            ppuStack_94 = param_3;\n            local_64 = &local_4c;\n            local_4c = pcVar10;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            local_6c = local_54;\n            local_78 = &local_48;\n            FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1);\n            local_4c = (char *)*param_4;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1);\n            pppuVar15 = &ppuStack_94;\n          }" if (parenthesized_expression "((*pcVar10 == '_') && (pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z'))" ( (binary_expression "(*pcVar10 == '_') && (pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z')" (parenthesized_expression "(*pcVar10 == '_')" ( (binary_expression "*pcVar10 == '_'" (pointer_expression "*pcVar10" * identifier) == (char_literal "'_'" ' character ')) )) && (parenthesized_expression "(pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z')" ( (comma_expression "pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z'" (assignment_expression "pppuVar15 = (undefined ***)auStack_8c" identifier = (cast_expression "(undefined ***)auStack_8c" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) , (binary_expression "pcVar10[1] == 'Z'" (subscript_expression "pcVar10[1]" identifier [ number_literal ]) == (char_literal "'Z'" ' character '))) ))) )) (compound_statement "{\n            local_3c = *(undefined4 *)(iVar11 + 8);\n            local_44 = param_9;\n            local_40 = param_8;\n            local_38 = *(undefined4 *)(iVar11 + 0xc);\n            if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\nLAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;\n              ppuStack_90 = (undefined **)pcVar10;\n                    \n              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);\n            }\n            local_34 = (undefined4 *)param_4[2];\n            local_2c = param_4[0xc];\n            local_30 = local_6c;\n            local_28 = param_4[0xd];\n            ppuStack_90 = param_3;\n            ppuStack_94 = param_3;\n            local_64 = &local_4c;\n            local_4c = pcVar10;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            local_6c = local_54;\n            local_78 = &local_48;\n            FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1);\n            local_4c = (char *)*param_4;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1);\n            pppuVar15 = &ppuStack_94;\n          }" { (expression_statement "local_3c = *(undefined4 *)(iVar11 + 8);" (assignment_expression "local_3c = *(undefined4 *)(iVar11 + 8)" identifier = (pointer_expression "*(undefined4 *)(iVar11 + 8)" * (cast_expression "(undefined4 *)(iVar11 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 8)" ( (binary_expression "iVar11 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_44 = param_9;" (assignment_expression "local_44 = param_9" identifier = identifier) ;) (expression_statement "local_40 = param_8;" (assignment_expression "local_40 = param_8" identifier = identifier) ;) (expression_statement "local_38 = *(undefined4 *)(iVar11 + 0xc);" (assignment_expression "local_38 = *(undefined4 *)(iVar11 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(iVar11 + 0xc)" * (cast_expression "(undefined4 *)(iVar11 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\nLAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;\n              ppuStack_90 = (undefined **)pcVar10;\n                    \n              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);\n            }" if (parenthesized_expression "((*(byte *)((int)param_4 + 0x2a) & 7) != 0)" ( (binary_expression "(*(byte *)((int)param_4 + 0x2a) & 7) != 0" (parenthesized_expression "(*(byte *)((int)param_4 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)param_4 + 0x2a) & 7" (pointer_expression "*(byte *)((int)param_4 + 0x2a)" * (cast_expression "(byte *)((int)param_4 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 + 0x2a)" ( (binary_expression "(int)param_4 + 0x2a" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;\n              ppuStack_90 = (undefined **)pcVar10;\n                    \n              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);\n            }" { (labeled_statement "LAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;" statement_identifier : (expression_statement "ppuStack_94 = local_5c + -0x3b990;" (assignment_expression "ppuStack_94 = local_5c + -0x3b990" identifier = (binary_expression "local_5c + -0x3b990" identifier + number_literal)) ;)) (expression_statement "ppuStack_90 = (undefined **)pcVar10;" (assignment_expression "ppuStack_90 = (undefined **)pcVar10" identifier = (cast_expression "(undefined **)pcVar10" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "FUN_00069d00((int)local_5c + -0x107dd3,0xa1);" (call_expression "FUN_00069d00((int)local_5c + -0x107dd3,0xa1)" identifier (argument_list "((int)local_5c + -0x107dd3,0xa1)" ( (binary_expression "(int)local_5c + -0x107dd3" (cast_expression "(int)local_5c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal ))) ;) })) (expression_statement "local_34 = (undefined4 *)param_4[2];" (assignment_expression "local_34 = (undefined4 *)param_4[2]" identifier = (cast_expression "(undefined4 *)param_4[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[2]" identifier [ number_literal ]))) ;) (expression_statement "local_2c = param_4[0xc];" (assignment_expression "local_2c = param_4[0xc]" identifier = (subscript_expression "param_4[0xc]" identifier [ number_literal ])) ;) (expression_statement "local_30 = local_6c;" (assignment_expression "local_30 = local_6c" identifier = identifier) ;) (expression_statement "local_28 = param_4[0xd];" (assignment_expression "local_28 = param_4[0xd]" identifier = (subscript_expression "param_4[0xd]" identifier [ number_literal ])) ;) (expression_statement "ppuStack_90 = param_3;" (assignment_expression "ppuStack_90 = param_3" identifier = identifier) ;) (expression_statement "ppuStack_94 = param_3;" (assignment_expression "ppuStack_94 = param_3" identifier = identifier) ;) (expression_statement "local_64 = &local_4c;" (assignment_expression "local_64 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) (expression_statement "local_4c = pcVar10;" (assignment_expression "local_4c = pcVar10" identifier = identifier) ;) (expression_statement "local_48 = FUN_001cace0(param_3 + 0x47,local_64);" (assignment_expression "local_48 = FUN_001cace0(param_3 + 0x47,local_64)" identifier = (call_expression "FUN_001cace0(param_3 + 0x47,local_64)" identifier (argument_list "(param_3 + 0x47,local_64)" ( (binary_expression "param_3 + 0x47" identifier + number_literal) , identifier )))) ;) (expression_statement "local_6c = local_54;" (assignment_expression "local_6c = local_54" identifier = identifier) ;) (expression_statement "local_78 = &local_48;" (assignment_expression "local_78 = &local_48" identifier = (pointer_expression "&local_48" & identifier)) ;) (expression_statement "FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1);" (call_expression "FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1)" identifier (argument_list "(local_6c,local_48,local_70,local_78,0,1)" ( identifier , identifier , identifier , identifier , number_literal , number_literal ))) ;) (expression_statement "local_4c = (char *)*param_4;" (assignment_expression "local_4c = (char *)*param_4" identifier = (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (expression_statement "local_48 = FUN_001cace0(param_3 + 0x47,local_64);" (assignment_expression "local_48 = FUN_001cace0(param_3 + 0x47,local_64)" identifier = (call_expression "FUN_001cace0(param_3 + 0x47,local_64)" identifier (argument_list "(param_3 + 0x47,local_64)" ( (binary_expression "param_3 + 0x47" identifier + number_literal) , identifier )))) ;) (expression_statement "FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1);" (call_expression "FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1)" identifier (argument_list "(local_6c,local_48,local_74,local_78,0,1)" ( identifier , identifier , identifier , identifier , number_literal , number_literal ))) ;) (expression_statement "pppuVar15 = &ppuStack_94;" (assignment_expression "pppuVar15 = &ppuStack_94" identifier = (pointer_expression "&ppuStack_94" & identifier)) ;) })) })) })) })) }))) (labeled_statement "LAB_001cc978:\n  iVar11 = *param_9;" statement_identifier : (expression_statement "iVar11 = *param_9;" (assignment_expression "iVar11 = *param_9" identifier = (pointer_expression "*param_9" * identifier)) ;)) (expression_statement "*(int **)((int)pppuVar15 + -0x10) = param_9;" (assignment_expression "*(int **)((int)pppuVar15 + -0x10) = param_9" (pointer_expression "*(int **)((int)pppuVar15 + -0x10)" * (cast_expression "(int **)((int)pppuVar15 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar15 + -0x10)" ( (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar3 = *(code **)(iVar11 + 0x14);" (assignment_expression "pcVar3 = *(code **)(iVar11 + 0x14)" identifier = (pointer_expression "*(code **)(iVar11 + 0x14)" * (cast_expression "(code **)(iVar11 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x1cc981;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x1cc981" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x14)" ( (binary_expression "(int)pppuVar15 + -0x14" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "iVar11 = (*pcVar3)();" (assignment_expression "iVar11 = (*pcVar3)()" identifier = (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar11 == 0) {\n    bVar8 = *(byte *)(*param_5 + 4);\n  }\n  else {\n    bVar8 = *(byte *)(param_4 + 10);\n  }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n    bVar8 = *(byte *)(*param_5 + 4);\n  }" { (expression_statement "bVar8 = *(byte *)(*param_5 + 4);" (assignment_expression "bVar8 = *(byte *)(*param_5 + 4)" identifier = (pointer_expression "*(byte *)(*param_5 + 4)" * (cast_expression "(byte *)(*param_5 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_5 + 4)" ( (binary_expression "*param_5 + 4" (pointer_expression "*param_5" * identifier) + number_literal) ))))) ;) }) (else_clause "else {\n    bVar8 = *(byte *)(param_4 + 10);\n  }" else (compound_statement "{\n    bVar8 = *(byte *)(param_4 + 10);\n  }" { (expression_statement "bVar8 = *(byte *)(param_4 + 10);" (assignment_expression "bVar8 = *(byte *)(param_4 + 10)" identifier = (pointer_expression "*(byte *)(param_4 + 10)" * (cast_expression "(byte *)(param_4 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 10)" ( (binary_expression "param_4 + 10" identifier + number_literal) ))))) ;) }))) (expression_statement "local_6c = (undefined1 *)(local_58 & 0xff);" (assignment_expression "local_6c = (undefined1 *)(local_58 & 0xff)" identifier = (cast_expression "(undefined1 *)(local_58 & 0xff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_58 & 0xff)" ( (binary_expression "local_58 & 0xff" identifier & number_literal) )))) ;) (expression_statement "*(undefined1 **)((int)pppuVar15 + -0x10) = local_6c;" (assignment_expression "*(undefined1 **)((int)pppuVar15 + -0x10) = local_6c" (pointer_expression "*(undefined1 **)((int)pppuVar15 + -0x10)" * (cast_expression "(undefined1 **)((int)pppuVar15 + -0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar15 + -0x10)" ( (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x1cc9b9;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x1cc9b9" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x14)" ( (binary_expression "(int)pppuVar15 + -0x14" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar12 = FUN_001c9700();" (assignment_expression "uVar12 = FUN_001c9700()" identifier = (call_expression "FUN_001c9700()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_58 = param_4[0xe];" (assignment_expression "local_58 = param_4[0xe]" identifier = (subscript_expression "param_4[0xe]" identifier [ number_literal ])) ;) (expression_statement "local_64 = (char **)param_4[0xf];" (assignment_expression "local_64 = (char **)param_4[0xf]" identifier = (cast_expression "(char **)param_4[0xf]" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "param_4[0xf]" identifier [ number_literal ]))) ;) (expression_statement "*(uint *)((int)pppuVar15 + -4) = local_68 & 0xff;" (assignment_expression "*(uint *)((int)pppuVar15 + -4) = local_68 & 0xff" (pointer_expression "*(uint *)((int)pppuVar15 + -4)" * (cast_expression "(uint *)((int)pppuVar15 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -4)" ( (binary_expression "(int)pppuVar15 + -4" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_68 & 0xff" identifier & number_literal)) ;) (expression_statement "*(undefined4 ***)((int)pppuVar15 + -8) = local_74;" (assignment_expression "*(undefined4 ***)((int)pppuVar15 + -8) = local_74" (pointer_expression "*(undefined4 ***)((int)pppuVar15 + -8)" * (cast_expression "(undefined4 ***)((int)pppuVar15 + -8)" ( (type_descriptor "undefined4 ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)pppuVar15 + -8)" ( (binary_expression "(int)pppuVar15 + -8" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int ***)((int)pppuVar15 + -0xc) = local_70;" (assignment_expression "*(int ***)((int)pppuVar15 + -0xc) = local_70" (pointer_expression "*(int ***)((int)pppuVar15 + -0xc)" * (cast_expression "(int ***)((int)pppuVar15 + -0xc)" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)pppuVar15 + -0xc)" ( (binary_expression "(int)pppuVar15 + -0xc" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)pppuVar15 + -0x10) = param_9;" (assignment_expression "*(int **)((int)pppuVar15 + -0x10) = param_9" (pointer_expression "*(int **)((int)pppuVar15 + -0x10)" * (cast_expression "(int **)((int)pppuVar15 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar15 + -0x10)" ( (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x14) = 0;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x14) = 0" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x14)" ( (binary_expression "(int)pppuVar15 + -0x14" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)((int)pppuVar15 + -0x18) = bVar8 & 0xf;" (assignment_expression "*(uint *)((int)pppuVar15 + -0x18) = bVar8 & 0xf" (pointer_expression "*(uint *)((int)pppuVar15 + -0x18)" * (cast_expression "(uint *)((int)pppuVar15 + -0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x18)" ( (binary_expression "(int)pppuVar15 + -0x18" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "bVar8 & 0xf" identifier & number_literal)) ;) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x1c) = uVar12;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x1c) = uVar12" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x1c)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x1c)" ( (binary_expression "(int)pppuVar15 + -0x1c" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)pppuVar15 + -0x20) = param_4;" (assignment_expression "*(undefined4 **)((int)pppuVar15 + -0x20) = param_4" (pointer_expression "*(undefined4 **)((int)pppuVar15 + -0x20)" * (cast_expression "(undefined4 **)((int)pppuVar15 + -0x20)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar15 + -0x20)" ( (binary_expression "(int)pppuVar15 + -0x20" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x24) = 0x1cc9de;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x24) = 0x1cc9de" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x24)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x24)" ( (binary_expression "(int)pppuVar15 + -0x24" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "cVar7 = FUN_001c9b30();" (assignment_expression "cVar7 = FUN_001c9b30()" identifier = (call_expression "FUN_001c9b30()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cVar7 == '\0') {\n    iVar11 = *param_5;\n    if ((char)local_44 != '\0') {\n      uVar4 = *(uint *)(iVar11 + 0x10);\n      ppcVar5 = *(char ***)(iVar11 + 0x14);\n      if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)) {\n        param_4[0xf] = ppcVar5;\n        param_4[0xe] = uVar4;\n      }\n      local_68 = *(uint *)(iVar11 + 8);\n      uVar4 = *(uint *)(iVar11 + 0xc);\n      if ((uint)param_4[0xd] < uVar4 || param_4[0xd] - uVar4 < (uint)((uint)param_4[0xc] < local_68)\n         ) {\n        param_4[0xd] = uVar4;\n        param_4[0xc] = local_68;\n      }\n    }\n    if ((char)local_34 != '\0') {\n      if (((*(byte *)(param_4 + 0xb) & 1) == 0) || ((*(byte *)(param_4 + 0xb) & 2) != 0)) {\n        *(byte *)(param_4 + 0xb) =\n             *(byte *)(param_4 + 0xb) & 0xfd | ((int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2) * '\x02'\n             | 1;\n      }\n    }\n    bVar8 = *(byte *)(iVar11 + 5) & 3;\n    if ((*(byte *)(iVar11 + 5) & 3) != 0) {\n      bVar1 = *(byte *)((int)param_4 + 0x29);\n      if (((bVar1 & 3) == 0) || (bVar8 < (bVar1 & 3))) {\n        *(byte *)((int)param_4 + 0x29) = bVar8 | bVar1 & 0xfc;\n      }\n    }\n  }\n  else {\n    uVar4 = param_4[0xc];\n    local_70 = (int **)CONCAT31(local_70._1_3_,*(byte *)(param_4 + 10) >> 4);\n    local_68 = param_4[0xd];\n    *(undefined ***)((int)pppuVar15 + -8) = param_10;\n    *(int **)((int)pppuVar15 + -0xc) = param_9;\n    *(undefined1 **)((int)pppuVar15 + -0x10) = local_6c;\n    *(undefined1 **)((int)pppuVar15 + -0x14) = param_6;\n    *(int **)((int)pppuVar15 + -0x18) = param_5;\n    *(undefined4 **)((int)pppuVar15 + -0x1c) = param_4;\n    *(undefined ***)((int)pppuVar15 + -0x20) = param_3;\n    *(undefined4 *)((int)pppuVar15 + -0x24) = 0x1cce64;\n    FUN_001cb040();\n    if ((char)local_44 != '\0') {\n      if ((char **)param_4[0xf] < local_64 ||\n          (uint)((int)param_4[0xf] - (int)local_64) < (uint)((uint)param_4[0xe] < local_58)) {\n        param_4[0xf] = local_64;\n        param_4[0xe] = local_58;\n      }\n      if ((uint)param_4[0xd] < local_68 ||\n          param_4[0xd] - local_68 < (uint)((uint)param_4[0xc] < uVar4)) {\n        param_4[0xc] = uVar4;\n        param_4[0xd] = local_68;\n      }\n    }\n    if (((char)local_34 != '\0') &&\n       (((*(byte *)(param_4 + 0xb) & 1) == 0 || ((*(byte *)(param_4 + 0xb) & 2) != 0)))) {\n      *(byte *)(param_4 + 0xb) =\n           *(byte *)(param_4 + 0xb) & 0xfd | ((char)local_70 == '\x02') * '\x02' | 1;\n    }\n  }" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar11 = *param_5;\n    if ((char)local_44 != '\0') {\n      uVar4 = *(uint *)(iVar11 + 0x10);\n      ppcVar5 = *(char ***)(iVar11 + 0x14);\n      if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)) {\n        param_4[0xf] = ppcVar5;\n        param_4[0xe] = uVar4;\n      }\n      local_68 = *(uint *)(iVar11 + 8);\n      uVar4 = *(uint *)(iVar11 + 0xc);\n      if ((uint)param_4[0xd] < uVar4 || param_4[0xd] - uVar4 < (uint)((uint)param_4[0xc] < local_68)\n         ) {\n        param_4[0xd] = uVar4;\n        param_4[0xc] = local_68;\n      }\n    }\n    if ((char)local_34 != '\0') {\n      if (((*(byte *)(param_4 + 0xb) & 1) == 0) || ((*(byte *)(param_4 + 0xb) & 2) != 0)) {\n        *(byte *)(param_4 + 0xb) =\n             *(byte *)(param_4 + 0xb) & 0xfd | ((int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2) * '\x02'\n             | 1;\n      }\n    }\n    bVar8 = *(byte *)(iVar11 + 5) & 3;\n    if ((*(byte *)(iVar11 + 5) & 3) != 0) {\n      bVar1 = *(byte *)((int)param_4 + 0x29);\n      if (((bVar1 & 3) == 0) || (bVar8 < (bVar1 & 3))) {\n        *(byte *)((int)param_4 + 0x29) = bVar8 | bVar1 & 0xfc;\n      }\n    }\n  }" { (expression_statement "iVar11 = *param_5;" (assignment_expression "iVar11 = *param_5" identifier = (pointer_expression "*param_5" * identifier)) ;) (if_statement "if ((char)local_44 != '\0') {\n      uVar4 = *(uint *)(iVar11 + 0x10);\n      ppcVar5 = *(char ***)(iVar11 + 0x14);\n      if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)) {\n        param_4[0xf] = ppcVar5;\n        param_4[0xe] = uVar4;\n      }\n      local_68 = *(uint *)(iVar11 + 8);\n      uVar4 = *(uint *)(iVar11 + 0xc);\n      if ((uint)param_4[0xd] < uVar4 || param_4[0xd] - uVar4 < (uint)((uint)param_4[0xc] < local_68)\n         ) {\n        param_4[0xd] = uVar4;\n        param_4[0xc] = local_68;\n      }\n    }" if (parenthesized_expression "((char)local_44 != '\0')" ( (binary_expression "(char)local_44 != '\0'" (cast_expression "(char)local_44" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar4 = *(uint *)(iVar11 + 0x10);\n      ppcVar5 = *(char ***)(iVar11 + 0x14);\n      if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)) {\n        param_4[0xf] = ppcVar5;\n        param_4[0xe] = uVar4;\n      }\n      local_68 = *(uint *)(iVar11 + 8);\n      uVar4 = *(uint *)(iVar11 + 0xc);\n      if ((uint)param_4[0xd] < uVar4 || param_4[0xd] - uVar4 < (uint)((uint)param_4[0xc] < local_68)\n         ) {\n        param_4[0xd] = uVar4;\n        param_4[0xc] = local_68;\n      }\n    }" { (expression_statement "uVar4 = *(uint *)(iVar11 + 0x10);" (assignment_expression "uVar4 = *(uint *)(iVar11 + 0x10)" identifier = (pointer_expression "*(uint *)(iVar11 + 0x10)" * (cast_expression "(uint *)(iVar11 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "ppcVar5 = *(char ***)(iVar11 + 0x14);" (assignment_expression "ppcVar5 = *(char ***)(iVar11 + 0x14)" identifier = (pointer_expression "*(char ***)(iVar11 + 0x14)" * (cast_expression "(char ***)(iVar11 + 0x14)" ( (type_descriptor "char ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)) {\n        param_4[0xf] = ppcVar5;\n        param_4[0xe] = uVar4;\n      }" if (parenthesized_expression "(local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4))" ( (binary_expression "local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)" (binary_expression "local_64 < ppcVar5" identifier < identifier) || (binary_expression "(uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)" (call_expression "(uint)((int)local_64 - (int)ppcVar5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)local_64 - (int)ppcVar5)" ( (binary_expression "(int)local_64 - (int)ppcVar5" (cast_expression "(int)local_64" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)ppcVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < (call_expression "(uint)(local_58 < uVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_58 < uVar4)" ( (binary_expression "local_58 < uVar4" identifier < identifier) ))))) )) (compound_statement "{\n        param_4[0xf] = ppcVar5;\n        param_4[0xe] = uVar4;\n      }" { (expression_statement "param_4[0xf] = ppcVar5;" (assignment_expression "param_4[0xf] = ppcVar5" (subscript_expression "param_4[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_4[0xe] = uVar4;" (assignment_expression "param_4[0xe] = uVar4" (subscript_expression "param_4[0xe]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "local_68 = *(uint *)(iVar11 + 8);" (assignment_expression "local_68 = *(uint *)(iVar11 + 8)" identifier = (pointer_expression "*(uint *)(iVar11 + 8)" * (cast_expression "(uint *)(iVar11 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 8)" ( (binary_expression "iVar11 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(uint *)(iVar11 + 0xc);" (assignment_expression "uVar4 = *(uint *)(iVar11 + 0xc)" identifier = (pointer_expression "*(uint *)(iVar11 + 0xc)" * (cast_expression "(uint *)(iVar11 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if ((uint)param_4[0xd] < uVar4 || param_4[0xd] - uVar4 < (uint)((uint)param_4[0xc] < local_68)\n         ) {\n        param_4[0xd] = uVar4;\n        param_4[0xc] = local_68;\n      }" if (parenthesized_expression "((uint)param_4[0xd] < uVar4 || param_4[0xd] - uVar4 < (uint)((uint)param_4[0xc] < local_68)\n         )" ( (binary_expression "(uint)param_4[0xd] < uVar4 || param_4[0xd] - uVar4 < (uint)((uint)param_4[0xc] < local_68)" (binary_expression "(uint)param_4[0xd] < uVar4" (cast_expression "(uint)param_4[0xd]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_4[0xd]" identifier [ number_literal ])) < identifier) || (binary_expression "param_4[0xd] - uVar4 < (uint)((uint)param_4[0xc] < local_68)" (binary_expression "param_4[0xd] - uVar4" (subscript_expression "param_4[0xd]" identifier [ number_literal ]) - identifier) < (call_expression "(uint)((uint)param_4[0xc] < local_68)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)param_4[0xc] < local_68)" ( (binary_expression "(uint)param_4[0xc] < local_68" (cast_expression "(uint)param_4[0xc]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_4[0xc]" identifier [ number_literal ])) < identifier) ))))) )) (compound_statement "{\n        param_4[0xd] = uVar4;\n        param_4[0xc] = local_68;\n      }" { (expression_statement "param_4[0xd] = uVar4;" (assignment_expression "param_4[0xd] = uVar4" (subscript_expression "param_4[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_4[0xc] = local_68;" (assignment_expression "param_4[0xc] = local_68" (subscript_expression "param_4[0xc]" identifier [ number_literal ]) = identifier) ;) })) })) (if_statement "if ((char)local_34 != '\0') {\n      if (((*(byte *)(param_4 + 0xb) & 1) == 0) || ((*(byte *)(param_4 + 0xb) & 2) != 0)) {\n        *(byte *)(param_4 + 0xb) =\n             *(byte *)(param_4 + 0xb) & 0xfd | ((int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2) * '\x02'\n             | 1;\n      }\n    }" if (parenthesized_expression "((char)local_34 != '\0')" ( (binary_expression "(char)local_34 != '\0'" (cast_expression "(char)local_34" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if (((*(byte *)(param_4 + 0xb) & 1) == 0) || ((*(byte *)(param_4 + 0xb) & 2) != 0)) {\n        *(byte *)(param_4 + 0xb) =\n             *(byte *)(param_4 + 0xb) & 0xfd | ((int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2) * '\x02'\n             | 1;\n      }\n    }" { (if_statement "if (((*(byte *)(param_4 + 0xb) & 1) == 0) || ((*(byte *)(param_4 + 0xb) & 2) != 0)) {\n        *(byte *)(param_4 + 0xb) =\n             *(byte *)(param_4 + 0xb) & 0xfd | ((int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2) * '\x02'\n             | 1;\n      }" if (parenthesized_expression "(((*(byte *)(param_4 + 0xb) & 1) == 0) || ((*(byte *)(param_4 + 0xb) & 2) != 0))" ( (binary_expression "((*(byte *)(param_4 + 0xb) & 1) == 0) || ((*(byte *)(param_4 + 0xb) & 2) != 0)" (parenthesized_expression "((*(byte *)(param_4 + 0xb) & 1) == 0)" ( (binary_expression "(*(byte *)(param_4 + 0xb) & 1) == 0" (parenthesized_expression "(*(byte *)(param_4 + 0xb) & 1)" ( (binary_expression "*(byte *)(param_4 + 0xb) & 1" (pointer_expression "*(byte *)(param_4 + 0xb)" * (cast_expression "(byte *)(param_4 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xb)" ( (binary_expression "param_4 + 0xb" identifier + number_literal) )))) & number_literal) )) == number_literal) )) || (parenthesized_expression "((*(byte *)(param_4 + 0xb) & 2) != 0)" ( (binary_expression "(*(byte *)(param_4 + 0xb) & 2) != 0" (parenthesized_expression "(*(byte *)(param_4 + 0xb) & 2)" ( (binary_expression "*(byte *)(param_4 + 0xb) & 2" (pointer_expression "*(byte *)(param_4 + 0xb)" * (cast_expression "(byte *)(param_4 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xb)" ( (binary_expression "param_4 + 0xb" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        *(byte *)(param_4 + 0xb) =\n             *(byte *)(param_4 + 0xb) & 0xfd | ((int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2) * '\x02'\n             | 1;\n      }" { (expression_statement "*(byte *)(param_4 + 0xb) =\n             *(byte *)(param_4 + 0xb) & 0xfd | ((int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2) * '\x02'\n             | 1;" (assignment_expression "*(byte *)(param_4 + 0xb) =\n             *(byte *)(param_4 + 0xb) & 0xfd | ((int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2) * '\x02'\n             | 1" (pointer_expression "*(byte *)(param_4 + 0xb)" * (cast_expression "(byte *)(param_4 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xb)" ( (binary_expression "param_4 + 0xb" identifier + number_literal) )))) = (binary_expression "*(byte *)(param_4 + 0xb) & 0xfd | ((int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2) * '\x02'\n             | 1" (binary_expression "*(byte *)(param_4 + 0xb) & 0xfd | ((int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2) * '\x02'" (binary_expression "*(byte *)(param_4 + 0xb) & 0xfd" (pointer_expression "*(byte *)(param_4 + 0xb)" * (cast_expression "(byte *)(param_4 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xb)" ( (binary_expression "param_4 + 0xb" identifier + number_literal) )))) & number_literal) | (binary_expression "((int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2) * '\x02'" (parenthesized_expression "((int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2)" ( (binary_expression "(int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2" (binary_expression "(int)(uint)*(byte *)(iVar11 + 4) >> 4" (binary_expression "(int)(uint)*(byte *)(iVar11 + 4)" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)(iVar11 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) )))) >> number_literal) == number_literal) )) * (char_literal "'\x02'" ' escape_sequence '))) | number_literal)) ;) })) })) (expression_statement "bVar8 = *(byte *)(iVar11 + 5) & 3;" (assignment_expression "bVar8 = *(byte *)(iVar11 + 5) & 3" identifier = (binary_expression "*(byte *)(iVar11 + 5) & 3" (pointer_expression "*(byte *)(iVar11 + 5)" * (cast_expression "(byte *)(iVar11 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 5)" ( (binary_expression "iVar11 + 5" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if ((*(byte *)(iVar11 + 5) & 3) != 0) {\n      bVar1 = *(byte *)((int)param_4 + 0x29);\n      if (((bVar1 & 3) == 0) || (bVar8 < (bVar1 & 3))) {\n        *(byte *)((int)param_4 + 0x29) = bVar8 | bVar1 & 0xfc;\n      }\n    }" if (parenthesized_expression "((*(byte *)(iVar11 + 5) & 3) != 0)" ( (binary_expression "(*(byte *)(iVar11 + 5) & 3) != 0" (parenthesized_expression "(*(byte *)(iVar11 + 5) & 3)" ( (binary_expression "*(byte *)(iVar11 + 5) & 3" (pointer_expression "*(byte *)(iVar11 + 5)" * (cast_expression "(byte *)(iVar11 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 5)" ( (binary_expression "iVar11 + 5" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      bVar1 = *(byte *)((int)param_4 + 0x29);\n      if (((bVar1 & 3) == 0) || (bVar8 < (bVar1 & 3))) {\n        *(byte *)((int)param_4 + 0x29) = bVar8 | bVar1 & 0xfc;\n      }\n    }" { (expression_statement "bVar1 = *(byte *)((int)param_4 + 0x29);" (assignment_expression "bVar1 = *(byte *)((int)param_4 + 0x29)" identifier = (pointer_expression "*(byte *)((int)param_4 + 0x29)" * (cast_expression "(byte *)((int)param_4 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 + 0x29)" ( (binary_expression "(int)param_4 + 0x29" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (((bVar1 & 3) == 0) || (bVar8 < (bVar1 & 3))) {\n        *(byte *)((int)param_4 + 0x29) = bVar8 | bVar1 & 0xfc;\n      }" if (parenthesized_expression "(((bVar1 & 3) == 0) || (bVar8 < (bVar1 & 3)))" ( (binary_expression "((bVar1 & 3) == 0) || (bVar8 < (bVar1 & 3))" (parenthesized_expression "((bVar1 & 3) == 0)" ( (binary_expression "(bVar1 & 3) == 0" (parenthesized_expression "(bVar1 & 3)" ( (binary_expression "bVar1 & 3" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(bVar8 < (bVar1 & 3))" ( (binary_expression "bVar8 < (bVar1 & 3)" identifier < (parenthesized_expression "(bVar1 & 3)" ( (binary_expression "bVar1 & 3" identifier & number_literal) ))) ))) )) (compound_statement "{\n        *(byte *)((int)param_4 + 0x29) = bVar8 | bVar1 & 0xfc;\n      }" { (expression_statement "*(byte *)((int)param_4 + 0x29) = bVar8 | bVar1 & 0xfc;" (assignment_expression "*(byte *)((int)param_4 + 0x29) = bVar8 | bVar1 & 0xfc" (pointer_expression "*(byte *)((int)param_4 + 0x29)" * (cast_expression "(byte *)((int)param_4 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 + 0x29)" ( (binary_expression "(int)param_4 + 0x29" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "bVar8 | bVar1 & 0xfc" identifier | (binary_expression "bVar1 & 0xfc" identifier & number_literal))) ;) })) })) }) (else_clause "else {\n    uVar4 = param_4[0xc];\n    local_70 = (int **)CONCAT31(local_70._1_3_,*(byte *)(param_4 + 10) >> 4);\n    local_68 = param_4[0xd];\n    *(undefined ***)((int)pppuVar15 + -8) = param_10;\n    *(int **)((int)pppuVar15 + -0xc) = param_9;\n    *(undefined1 **)((int)pppuVar15 + -0x10) = local_6c;\n    *(undefined1 **)((int)pppuVar15 + -0x14) = param_6;\n    *(int **)((int)pppuVar15 + -0x18) = param_5;\n    *(undefined4 **)((int)pppuVar15 + -0x1c) = param_4;\n    *(undefined ***)((int)pppuVar15 + -0x20) = param_3;\n    *(undefined4 *)((int)pppuVar15 + -0x24) = 0x1cce64;\n    FUN_001cb040();\n    if ((char)local_44 != '\0') {\n      if ((char **)param_4[0xf] < local_64 ||\n          (uint)((int)param_4[0xf] - (int)local_64) < (uint)((uint)param_4[0xe] < local_58)) {\n        param_4[0xf] = local_64;\n        param_4[0xe] = local_58;\n      }\n      if ((uint)param_4[0xd] < local_68 ||\n          param_4[0xd] - local_68 < (uint)((uint)param_4[0xc] < uVar4)) {\n        param_4[0xc] = uVar4;\n        param_4[0xd] = local_68;\n      }\n    }\n    if (((char)local_34 != '\0') &&\n       (((*(byte *)(param_4 + 0xb) & 1) == 0 || ((*(byte *)(param_4 + 0xb) & 2) != 0)))) {\n      *(byte *)(param_4 + 0xb) =\n           *(byte *)(param_4 + 0xb) & 0xfd | ((char)local_70 == '\x02') * '\x02' | 1;\n    }\n  }" else (compound_statement "{\n    uVar4 = param_4[0xc];\n    local_70 = (int **)CONCAT31(local_70._1_3_,*(byte *)(param_4 + 10) >> 4);\n    local_68 = param_4[0xd];\n    *(undefined ***)((int)pppuVar15 + -8) = param_10;\n    *(int **)((int)pppuVar15 + -0xc) = param_9;\n    *(undefined1 **)((int)pppuVar15 + -0x10) = local_6c;\n    *(undefined1 **)((int)pppuVar15 + -0x14) = param_6;\n    *(int **)((int)pppuVar15 + -0x18) = param_5;\n    *(undefined4 **)((int)pppuVar15 + -0x1c) = param_4;\n    *(undefined ***)((int)pppuVar15 + -0x20) = param_3;\n    *(undefined4 *)((int)pppuVar15 + -0x24) = 0x1cce64;\n    FUN_001cb040();\n    if ((char)local_44 != '\0') {\n      if ((char **)param_4[0xf] < local_64 ||\n          (uint)((int)param_4[0xf] - (int)local_64) < (uint)((uint)param_4[0xe] < local_58)) {\n        param_4[0xf] = local_64;\n        param_4[0xe] = local_58;\n      }\n      if ((uint)param_4[0xd] < local_68 ||\n          param_4[0xd] - local_68 < (uint)((uint)param_4[0xc] < uVar4)) {\n        param_4[0xc] = uVar4;\n        param_4[0xd] = local_68;\n      }\n    }\n    if (((char)local_34 != '\0') &&\n       (((*(byte *)(param_4 + 0xb) & 1) == 0 || ((*(byte *)(param_4 + 0xb) & 2) != 0)))) {\n      *(byte *)(param_4 + 0xb) =\n           *(byte *)(param_4 + 0xb) & 0xfd | ((char)local_70 == '\x02') * '\x02' | 1;\n    }\n  }" { (expression_statement "uVar4 = param_4[0xc];" (assignment_expression "uVar4 = param_4[0xc]" identifier = (subscript_expression "param_4[0xc]" identifier [ number_literal ])) ;) (expression_statement "local_70 = (int **)CONCAT31(local_70._1_3_,*(byte *)(param_4 + 10) >> 4);" (assignment_expression "local_70 = (int **)CONCAT31(local_70._1_3_,*(byte *)(param_4 + 10) >> 4)" identifier = (cast_expression "(int **)CONCAT31(local_70._1_3_,*(byte *)(param_4 + 10) >> 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "CONCAT31(local_70._1_3_,*(byte *)(param_4 + 10) >> 4)" identifier (argument_list "(local_70._1_3_,*(byte *)(param_4 + 10) >> 4)" ( (field_expression "local_70._1_3_" identifier . field_identifier) , (binary_expression "*(byte *)(param_4 + 10) >> 4" (pointer_expression "*(byte *)(param_4 + 10)" * (cast_expression "(byte *)(param_4 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 10)" ( (binary_expression "param_4 + 10" identifier + number_literal) )))) >> number_literal) ))))) ;) (expression_statement "local_68 = param_4[0xd];" (assignment_expression "local_68 = param_4[0xd]" identifier = (subscript_expression "param_4[0xd]" identifier [ number_literal ])) ;) (expression_statement "*(undefined ***)((int)pppuVar15 + -8) = param_10;" (assignment_expression "*(undefined ***)((int)pppuVar15 + -8) = param_10" (pointer_expression "*(undefined ***)((int)pppuVar15 + -8)" * (cast_expression "(undefined ***)((int)pppuVar15 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)pppuVar15 + -8)" ( (binary_expression "(int)pppuVar15 + -8" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)pppuVar15 + -0xc) = param_9;" (assignment_expression "*(int **)((int)pppuVar15 + -0xc) = param_9" (pointer_expression "*(int **)((int)pppuVar15 + -0xc)" * (cast_expression "(int **)((int)pppuVar15 + -0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar15 + -0xc)" ( (binary_expression "(int)pppuVar15 + -0xc" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)((int)pppuVar15 + -0x10) = local_6c;" (assignment_expression "*(undefined1 **)((int)pppuVar15 + -0x10) = local_6c" (pointer_expression "*(undefined1 **)((int)pppuVar15 + -0x10)" * (cast_expression "(undefined1 **)((int)pppuVar15 + -0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar15 + -0x10)" ( (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)((int)pppuVar15 + -0x14) = param_6;" (assignment_expression "*(undefined1 **)((int)pppuVar15 + -0x14) = param_6" (pointer_expression "*(undefined1 **)((int)pppuVar15 + -0x14)" * (cast_expression "(undefined1 **)((int)pppuVar15 + -0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar15 + -0x14)" ( (binary_expression "(int)pppuVar15 + -0x14" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)pppuVar15 + -0x18) = param_5;" (assignment_expression "*(int **)((int)pppuVar15 + -0x18) = param_5" (pointer_expression "*(int **)((int)pppuVar15 + -0x18)" * (cast_expression "(int **)((int)pppuVar15 + -0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar15 + -0x18)" ( (binary_expression "(int)pppuVar15 + -0x18" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)pppuVar15 + -0x1c) = param_4;" (assignment_expression "*(undefined4 **)((int)pppuVar15 + -0x1c) = param_4" (pointer_expression "*(undefined4 **)((int)pppuVar15 + -0x1c)" * (cast_expression "(undefined4 **)((int)pppuVar15 + -0x1c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar15 + -0x1c)" ( (binary_expression "(int)pppuVar15 + -0x1c" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)((int)pppuVar15 + -0x20) = param_3;" (assignment_expression "*(undefined ***)((int)pppuVar15 + -0x20) = param_3" (pointer_expression "*(undefined ***)((int)pppuVar15 + -0x20)" * (cast_expression "(undefined ***)((int)pppuVar15 + -0x20)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)pppuVar15 + -0x20)" ( (binary_expression "(int)pppuVar15 + -0x20" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x24) = 0x1cce64;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x24) = 0x1cce64" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x24)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x24)" ( (binary_expression "(int)pppuVar15 + -0x24" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001cb040();" (call_expression "FUN_001cb040()" identifier (argument_list "()" ( ))) ;) (if_statement "if ((char)local_44 != '\0') {\n      if ((char **)param_4[0xf] < local_64 ||\n          (uint)((int)param_4[0xf] - (int)local_64) < (uint)((uint)param_4[0xe] < local_58)) {\n        param_4[0xf] = local_64;\n        param_4[0xe] = local_58;\n      }\n      if ((uint)param_4[0xd] < local_68 ||\n          param_4[0xd] - local_68 < (uint)((uint)param_4[0xc] < uVar4)) {\n        param_4[0xc] = uVar4;\n        param_4[0xd] = local_68;\n      }\n    }" if (parenthesized_expression "((char)local_44 != '\0')" ( (binary_expression "(char)local_44 != '\0'" (cast_expression "(char)local_44" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if ((char **)param_4[0xf] < local_64 ||\n          (uint)((int)param_4[0xf] - (int)local_64) < (uint)((uint)param_4[0xe] < local_58)) {\n        param_4[0xf] = local_64;\n        param_4[0xe] = local_58;\n      }\n      if ((uint)param_4[0xd] < local_68 ||\n          param_4[0xd] - local_68 < (uint)((uint)param_4[0xc] < uVar4)) {\n        param_4[0xc] = uVar4;\n        param_4[0xd] = local_68;\n      }\n    }" { (if_statement "if ((char **)param_4[0xf] < local_64 ||\n          (uint)((int)param_4[0xf] - (int)local_64) < (uint)((uint)param_4[0xe] < local_58)) {\n        param_4[0xf] = local_64;\n        param_4[0xe] = local_58;\n      }" if (parenthesized_expression "((char **)param_4[0xf] < local_64 ||\n          (uint)((int)param_4[0xf] - (int)local_64) < (uint)((uint)param_4[0xe] < local_58))" ( (binary_expression "(char **)param_4[0xf] < local_64 ||\n          (uint)((int)param_4[0xf] - (int)local_64) < (uint)((uint)param_4[0xe] < local_58)" (binary_expression "(char **)param_4[0xf] < local_64" (cast_expression "(char **)param_4[0xf]" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "param_4[0xf]" identifier [ number_literal ])) < identifier) || (binary_expression "(uint)((int)param_4[0xf] - (int)local_64) < (uint)((uint)param_4[0xe] < local_58)" (call_expression "(uint)((int)param_4[0xf] - (int)local_64)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)param_4[0xf] - (int)local_64)" ( (binary_expression "(int)param_4[0xf] - (int)local_64" (cast_expression "(int)param_4[0xf]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_4[0xf]" identifier [ number_literal ])) - (cast_expression "(int)local_64" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < (call_expression "(uint)((uint)param_4[0xe] < local_58)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)param_4[0xe] < local_58)" ( (binary_expression "(uint)param_4[0xe] < local_58" (cast_expression "(uint)param_4[0xe]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_4[0xe]" identifier [ number_literal ])) < identifier) ))))) )) (compound_statement "{\n        param_4[0xf] = local_64;\n        param_4[0xe] = local_58;\n      }" { (expression_statement "param_4[0xf] = local_64;" (assignment_expression "param_4[0xf] = local_64" (subscript_expression "param_4[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_4[0xe] = local_58;" (assignment_expression "param_4[0xe] = local_58" (subscript_expression "param_4[0xe]" identifier [ number_literal ]) = identifier) ;) })) (if_statement "if ((uint)param_4[0xd] < local_68 ||\n          param_4[0xd] - local_68 < (uint)((uint)param_4[0xc] < uVar4)) {\n        param_4[0xc] = uVar4;\n        param_4[0xd] = local_68;\n      }" if (parenthesized_expression "((uint)param_4[0xd] < local_68 ||\n          param_4[0xd] - local_68 < (uint)((uint)param_4[0xc] < uVar4))" ( (binary_expression "(uint)param_4[0xd] < local_68 ||\n          param_4[0xd] - local_68 < (uint)((uint)param_4[0xc] < uVar4)" (binary_expression "(uint)param_4[0xd] < local_68" (cast_expression "(uint)param_4[0xd]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_4[0xd]" identifier [ number_literal ])) < identifier) || (binary_expression "param_4[0xd] - local_68 < (uint)((uint)param_4[0xc] < uVar4)" (binary_expression "param_4[0xd] - local_68" (subscript_expression "param_4[0xd]" identifier [ number_literal ]) - identifier) < (call_expression "(uint)((uint)param_4[0xc] < uVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)param_4[0xc] < uVar4)" ( (binary_expression "(uint)param_4[0xc] < uVar4" (cast_expression "(uint)param_4[0xc]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_4[0xc]" identifier [ number_literal ])) < identifier) ))))) )) (compound_statement "{\n        param_4[0xc] = uVar4;\n        param_4[0xd] = local_68;\n      }" { (expression_statement "param_4[0xc] = uVar4;" (assignment_expression "param_4[0xc] = uVar4" (subscript_expression "param_4[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_4[0xd] = local_68;" (assignment_expression "param_4[0xd] = local_68" (subscript_expression "param_4[0xd]" identifier [ number_literal ]) = identifier) ;) })) })) (if_statement "if (((char)local_34 != '\0') &&\n       (((*(byte *)(param_4 + 0xb) & 1) == 0 || ((*(byte *)(param_4 + 0xb) & 2) != 0)))) {\n      *(byte *)(param_4 + 0xb) =\n           *(byte *)(param_4 + 0xb) & 0xfd | ((char)local_70 == '\x02') * '\x02' | 1;\n    }" if (parenthesized_expression "(((char)local_34 != '\0') &&\n       (((*(byte *)(param_4 + 0xb) & 1) == 0 || ((*(byte *)(param_4 + 0xb) & 2) != 0))))" ( (binary_expression "((char)local_34 != '\0') &&\n       (((*(byte *)(param_4 + 0xb) & 1) == 0 || ((*(byte *)(param_4 + 0xb) & 2) != 0)))" (parenthesized_expression "((char)local_34 != '\0')" ( (binary_expression "(char)local_34 != '\0'" (cast_expression "(char)local_34" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(((*(byte *)(param_4 + 0xb) & 1) == 0 || ((*(byte *)(param_4 + 0xb) & 2) != 0)))" ( (parenthesized_expression "((*(byte *)(param_4 + 0xb) & 1) == 0 || ((*(byte *)(param_4 + 0xb) & 2) != 0))" ( (binary_expression "(*(byte *)(param_4 + 0xb) & 1) == 0 || ((*(byte *)(param_4 + 0xb) & 2) != 0)" (binary_expression "(*(byte *)(param_4 + 0xb) & 1) == 0" (parenthesized_expression "(*(byte *)(param_4 + 0xb) & 1)" ( (binary_expression "*(byte *)(param_4 + 0xb) & 1" (pointer_expression "*(byte *)(param_4 + 0xb)" * (cast_expression "(byte *)(param_4 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xb)" ( (binary_expression "param_4 + 0xb" identifier + number_literal) )))) & number_literal) )) == number_literal) || (parenthesized_expression "((*(byte *)(param_4 + 0xb) & 2) != 0)" ( (binary_expression "(*(byte *)(param_4 + 0xb) & 2) != 0" (parenthesized_expression "(*(byte *)(param_4 + 0xb) & 2)" ( (binary_expression "*(byte *)(param_4 + 0xb) & 2" (pointer_expression "*(byte *)(param_4 + 0xb)" * (cast_expression "(byte *)(param_4 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xb)" ( (binary_expression "param_4 + 0xb" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) (compound_statement "{\n      *(byte *)(param_4 + 0xb) =\n           *(byte *)(param_4 + 0xb) & 0xfd | ((char)local_70 == '\x02') * '\x02' | 1;\n    }" { (expression_statement "*(byte *)(param_4 + 0xb) =\n           *(byte *)(param_4 + 0xb) & 0xfd | ((char)local_70 == '\x02') * '\x02' | 1;" (assignment_expression "*(byte *)(param_4 + 0xb) =\n           *(byte *)(param_4 + 0xb) & 0xfd | ((char)local_70 == '\x02') * '\x02' | 1" (pointer_expression "*(byte *)(param_4 + 0xb)" * (cast_expression "(byte *)(param_4 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xb)" ( (binary_expression "param_4 + 0xb" identifier + number_literal) )))) = (binary_expression "*(byte *)(param_4 + 0xb) & 0xfd | ((char)local_70 == '\x02') * '\x02' | 1" (binary_expression "*(byte *)(param_4 + 0xb) & 0xfd | ((char)local_70 == '\x02') * '\x02'" (binary_expression "*(byte *)(param_4 + 0xb) & 0xfd" (pointer_expression "*(byte *)(param_4 + 0xb)" * (cast_expression "(byte *)(param_4 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xb)" ( (binary_expression "param_4 + 0xb" identifier + number_literal) )))) & number_literal) | (binary_expression "((char)local_70 == '\x02') * '\x02'" (parenthesized_expression "((char)local_70 == '\x02')" ( (binary_expression "(char)local_70 == '\x02'" (cast_expression "(char)local_70" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\x02'" ' escape_sequence ')) )) * (char_literal "'\x02'" ' escape_sequence '))) | number_literal)) ;) })) }))) (expression_statement "bVar8 = *(byte *)((int)param_4 + 0x2a);" (assignment_expression "bVar8 = *(byte *)((int)param_4 + 0x2a)" identifier = (pointer_expression "*(byte *)((int)param_4 + 0x2a)" * (cast_expression "(byte *)((int)param_4 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 + 0x2a)" ( (binary_expression "(int)param_4 + 0x2a" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar9 = (undefined4 *)(uint)bVar8;" (assignment_expression "puVar9 = (undefined4 *)(uint)bVar8" identifier = (cast_expression "(undefined4 *)(uint)bVar8" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)bVar8" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if ((bVar8 & 7) == 0) {\n    bVar1 = *(byte *)(param_4[2] + 0x2c);\n    if ((((bVar1 & 1) != 0) && ((char)bVar8 < '\0')) && ((*(byte *)(param_4 + 0xb) & 2) == 0)) {\n      *(byte *)(param_4[2] + 0x2c) = bVar1 | 2;\n    }\n  }" if (parenthesized_expression "((bVar8 & 7) == 0)" ( (binary_expression "(bVar8 & 7) == 0" (parenthesized_expression "(bVar8 & 7)" ( (binary_expression "bVar8 & 7" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    bVar1 = *(byte *)(param_4[2] + 0x2c);\n    if ((((bVar1 & 1) != 0) && ((char)bVar8 < '\0')) && ((*(byte *)(param_4 + 0xb) & 2) == 0)) {\n      *(byte *)(param_4[2] + 0x2c) = bVar1 | 2;\n    }\n  }" { (expression_statement "bVar1 = *(byte *)(param_4[2] + 0x2c);" (assignment_expression "bVar1 = *(byte *)(param_4[2] + 0x2c)" identifier = (pointer_expression "*(byte *)(param_4[2] + 0x2c)" * (cast_expression "(byte *)(param_4[2] + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4[2] + 0x2c)" ( (binary_expression "param_4[2] + 0x2c" (subscript_expression "param_4[2]" identifier [ number_literal ]) + number_literal) ))))) ;) (if_statement "if ((((bVar1 & 1) != 0) && ((char)bVar8 < '\0')) && ((*(byte *)(param_4 + 0xb) & 2) == 0)) {\n      *(byte *)(param_4[2] + 0x2c) = bVar1 | 2;\n    }" if (parenthesized_expression "((((bVar1 & 1) != 0) && ((char)bVar8 < '\0')) && ((*(byte *)(param_4 + 0xb) & 2) == 0))" ( (binary_expression "(((bVar1 & 1) != 0) && ((char)bVar8 < '\0')) && ((*(byte *)(param_4 + 0xb) & 2) == 0)" (parenthesized_expression "(((bVar1 & 1) != 0) && ((char)bVar8 < '\0'))" ( (binary_expression "((bVar1 & 1) != 0) && ((char)bVar8 < '\0')" (parenthesized_expression "((bVar1 & 1) != 0)" ( (binary_expression "(bVar1 & 1) != 0" (parenthesized_expression "(bVar1 & 1)" ( (binary_expression "bVar1 & 1" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "((char)bVar8 < '\0')" ( (binary_expression "(char)bVar8 < '\0'" (cast_expression "(char)bVar8" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "((*(byte *)(param_4 + 0xb) & 2) == 0)" ( (binary_expression "(*(byte *)(param_4 + 0xb) & 2) == 0" (parenthesized_expression "(*(byte *)(param_4 + 0xb) & 2)" ( (binary_expression "*(byte *)(param_4 + 0xb) & 2" (pointer_expression "*(byte *)(param_4 + 0xb)" * (cast_expression "(byte *)(param_4 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xb)" ( (binary_expression "param_4 + 0xb" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n      *(byte *)(param_4[2] + 0x2c) = bVar1 | 2;\n    }" { (expression_statement "*(byte *)(param_4[2] + 0x2c) = bVar1 | 2;" (assignment_expression "*(byte *)(param_4[2] + 0x2c) = bVar1 | 2" (pointer_expression "*(byte *)(param_4[2] + 0x2c)" * (cast_expression "(byte *)(param_4[2] + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4[2] + 0x2c)" ( (binary_expression "param_4[2] + 0x2c" (subscript_expression "param_4[2]" identifier [ number_literal ]) + number_literal) )))) = (binary_expression "bVar1 | 2" identifier | number_literal)) ;) })) })) (if_statement "if ((char)local_44 != '\0') {\n    puVar9 = *(undefined4 **)(*local_60 + 8);\n    if (puVar9 == (undefined4 *)0x0) {\nLAB_001ccb98:\n      *(undefined4 **)((int)pppuVar15 + -4) = puVar9;\n      *(undefined ***)((int)pppuVar15 + -8) = local_5c + -0x3b992;\n      *(undefined4 *)((int)pppuVar15 + -0xc) = 0x5c;\n      *(undefined ***)((int)pppuVar15 + -0x10) = local_5c + -0x41f7c;\n                    \n      *(undefined **)((int)pppuVar15 + -0x14) = &UNK_001ccbb1;\n      FUN_00069d00();\n    }\n    if (*(char *)((int)puVar9 + 0x43e5) != '\0') {\n      uVar4 = *(uint *)(*param_5 + 0x10);\n      ppcVar5 = *(char ***)(*param_5 + 0x14);\n      if (ppcVar5 < local_64 || (uint)((int)ppcVar5 - (int)local_64) < (uint)(uVar4 < local_58)) {\n        ppuVar13 = local_5c + -0x3b977;\n      }\n      else if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)\n              ) {\n        ppuVar13 = local_5c + -0x3b96c;\n      }\n      else {\n        ppuVar13 = (undefined **)((int)local_5c + -0xee586);\n      }\n      *(undefined ***)((int)pppuVar15 + -0x10) = ppuVar13;\n      *(undefined4 *)((int)pppuVar15 + -0x14) = 0x1ccaee;\n      uVar12 = gettext();\n      *(int **)((int)pppuVar15 + -0x10) = param_9;\n      *(undefined4 *)((int)pppuVar15 + -0x14) = 0;\n      *(undefined4 **)((int)pppuVar15 + -0x18) = param_4;\n      *(undefined4 *)((int)pppuVar15 + -0x1c) = uVar12;\n      *(undefined4 *)((int)pppuVar15 + -0x20) = 0;\n      *(undefined4 *)((int)pppuVar15 + -0x24) = 0x1ccafc;\n      puVar9 = (undefined4 *)FUN_001c9960();\n    }\n  }" if (parenthesized_expression "((char)local_44 != '\0')" ( (binary_expression "(char)local_44 != '\0'" (cast_expression "(char)local_44" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    puVar9 = *(undefined4 **)(*local_60 + 8);\n    if (puVar9 == (undefined4 *)0x0) {\nLAB_001ccb98:\n      *(undefined4 **)((int)pppuVar15 + -4) = puVar9;\n      *(undefined ***)((int)pppuVar15 + -8) = local_5c + -0x3b992;\n      *(undefined4 *)((int)pppuVar15 + -0xc) = 0x5c;\n      *(undefined ***)((int)pppuVar15 + -0x10) = local_5c + -0x41f7c;\n                    \n      *(undefined **)((int)pppuVar15 + -0x14) = &UNK_001ccbb1;\n      FUN_00069d00();\n    }\n    if (*(char *)((int)puVar9 + 0x43e5) != '\0') {\n      uVar4 = *(uint *)(*param_5 + 0x10);\n      ppcVar5 = *(char ***)(*param_5 + 0x14);\n      if (ppcVar5 < local_64 || (uint)((int)ppcVar5 - (int)local_64) < (uint)(uVar4 < local_58)) {\n        ppuVar13 = local_5c + -0x3b977;\n      }\n      else if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)\n              ) {\n        ppuVar13 = local_5c + -0x3b96c;\n      }\n      else {\n        ppuVar13 = (undefined **)((int)local_5c + -0xee586);\n      }\n      *(undefined ***)((int)pppuVar15 + -0x10) = ppuVar13;\n      *(undefined4 *)((int)pppuVar15 + -0x14) = 0x1ccaee;\n      uVar12 = gettext();\n      *(int **)((int)pppuVar15 + -0x10) = param_9;\n      *(undefined4 *)((int)pppuVar15 + -0x14) = 0;\n      *(undefined4 **)((int)pppuVar15 + -0x18) = param_4;\n      *(undefined4 *)((int)pppuVar15 + -0x1c) = uVar12;\n      *(undefined4 *)((int)pppuVar15 + -0x20) = 0;\n      *(undefined4 *)((int)pppuVar15 + -0x24) = 0x1ccafc;\n      puVar9 = (undefined4 *)FUN_001c9960();\n    }\n  }" { (expression_statement "puVar9 = *(undefined4 **)(*local_60 + 8);" (assignment_expression "puVar9 = *(undefined4 **)(*local_60 + 8)" identifier = (pointer_expression "*(undefined4 **)(*local_60 + 8)" * (cast_expression "(undefined4 **)(*local_60 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_60 + 8)" ( (binary_expression "*local_60 + 8" (pointer_expression "*local_60" * identifier) + number_literal) ))))) ;) (if_statement "if (puVar9 == (undefined4 *)0x0) {\nLAB_001ccb98:\n      *(undefined4 **)((int)pppuVar15 + -4) = puVar9;\n      *(undefined ***)((int)pppuVar15 + -8) = local_5c + -0x3b992;\n      *(undefined4 *)((int)pppuVar15 + -0xc) = 0x5c;\n      *(undefined ***)((int)pppuVar15 + -0x10) = local_5c + -0x41f7c;\n                    \n      *(undefined **)((int)pppuVar15 + -0x14) = &UNK_001ccbb1;\n      FUN_00069d00();\n    }" if (parenthesized_expression "(puVar9 == (undefined4 *)0x0)" ( (binary_expression "puVar9 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_001ccb98:\n      *(undefined4 **)((int)pppuVar15 + -4) = puVar9;\n      *(undefined ***)((int)pppuVar15 + -8) = local_5c + -0x3b992;\n      *(undefined4 *)((int)pppuVar15 + -0xc) = 0x5c;\n      *(undefined ***)((int)pppuVar15 + -0x10) = local_5c + -0x41f7c;\n                    \n      *(undefined **)((int)pppuVar15 + -0x14) = &UNK_001ccbb1;\n      FUN_00069d00();\n    }" { (labeled_statement "LAB_001ccb98:\n      *(undefined4 **)((int)pppuVar15 + -4) = puVar9;" statement_identifier : (expression_statement "*(undefined4 **)((int)pppuVar15 + -4) = puVar9;" (assignment_expression "*(undefined4 **)((int)pppuVar15 + -4) = puVar9" (pointer_expression "*(undefined4 **)((int)pppuVar15 + -4)" * (cast_expression "(undefined4 **)((int)pppuVar15 + -4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar15 + -4)" ( (binary_expression "(int)pppuVar15 + -4" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(undefined ***)((int)pppuVar15 + -8) = local_5c + -0x3b992;" (assignment_expression "*(undefined ***)((int)pppuVar15 + -8) = local_5c + -0x3b992" (pointer_expression "*(undefined ***)((int)pppuVar15 + -8)" * (cast_expression "(undefined ***)((int)pppuVar15 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)pppuVar15 + -8)" ( (binary_expression "(int)pppuVar15 + -8" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_5c + -0x3b992" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0xc)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0xc)" ( (binary_expression "(int)pppuVar15 + -0xc" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined ***)((int)pppuVar15 + -0x10) = local_5c + -0x41f7c;" (assignment_expression "*(undefined ***)((int)pppuVar15 + -0x10) = local_5c + -0x41f7c" (pointer_expression "*(undefined ***)((int)pppuVar15 + -0x10)" * (cast_expression "(undefined ***)((int)pppuVar15 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)pppuVar15 + -0x10)" ( (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_5c + -0x41f7c" identifier + number_literal)) ;) (expression_statement "*(undefined **)((int)pppuVar15 + -0x14) = &UNK_001ccbb1;" (assignment_expression "*(undefined **)((int)pppuVar15 + -0x14) = &UNK_001ccbb1" (pointer_expression "*(undefined **)((int)pppuVar15 + -0x14)" * (cast_expression "(undefined **)((int)pppuVar15 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar15 + -0x14)" ( (binary_expression "(int)pppuVar15 + -0x14" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&UNK_001ccbb1" & identifier)) ;) (expression_statement "FUN_00069d00();" (call_expression "FUN_00069d00()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (*(char *)((int)puVar9 + 0x43e5) != '\0') {\n      uVar4 = *(uint *)(*param_5 + 0x10);\n      ppcVar5 = *(char ***)(*param_5 + 0x14);\n      if (ppcVar5 < local_64 || (uint)((int)ppcVar5 - (int)local_64) < (uint)(uVar4 < local_58)) {\n        ppuVar13 = local_5c + -0x3b977;\n      }\n      else if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)\n              ) {\n        ppuVar13 = local_5c + -0x3b96c;\n      }\n      else {\n        ppuVar13 = (undefined **)((int)local_5c + -0xee586);\n      }\n      *(undefined ***)((int)pppuVar15 + -0x10) = ppuVar13;\n      *(undefined4 *)((int)pppuVar15 + -0x14) = 0x1ccaee;\n      uVar12 = gettext();\n      *(int **)((int)pppuVar15 + -0x10) = param_9;\n      *(undefined4 *)((int)pppuVar15 + -0x14) = 0;\n      *(undefined4 **)((int)pppuVar15 + -0x18) = param_4;\n      *(undefined4 *)((int)pppuVar15 + -0x1c) = uVar12;\n      *(undefined4 *)((int)pppuVar15 + -0x20) = 0;\n      *(undefined4 *)((int)pppuVar15 + -0x24) = 0x1ccafc;\n      puVar9 = (undefined4 *)FUN_001c9960();\n    }" if (parenthesized_expression "(*(char *)((int)puVar9 + 0x43e5) != '\0')" ( (binary_expression "*(char *)((int)puVar9 + 0x43e5) != '\0'" (pointer_expression "*(char *)((int)puVar9 + 0x43e5)" * (cast_expression "(char *)((int)puVar9 + 0x43e5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + 0x43e5)" ( (binary_expression "(int)puVar9 + 0x43e5" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar4 = *(uint *)(*param_5 + 0x10);\n      ppcVar5 = *(char ***)(*param_5 + 0x14);\n      if (ppcVar5 < local_64 || (uint)((int)ppcVar5 - (int)local_64) < (uint)(uVar4 < local_58)) {\n        ppuVar13 = local_5c + -0x3b977;\n      }\n      else if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)\n              ) {\n        ppuVar13 = local_5c + -0x3b96c;\n      }\n      else {\n        ppuVar13 = (undefined **)((int)local_5c + -0xee586);\n      }\n      *(undefined ***)((int)pppuVar15 + -0x10) = ppuVar13;\n      *(undefined4 *)((int)pppuVar15 + -0x14) = 0x1ccaee;\n      uVar12 = gettext();\n      *(int **)((int)pppuVar15 + -0x10) = param_9;\n      *(undefined4 *)((int)pppuVar15 + -0x14) = 0;\n      *(undefined4 **)((int)pppuVar15 + -0x18) = param_4;\n      *(undefined4 *)((int)pppuVar15 + -0x1c) = uVar12;\n      *(undefined4 *)((int)pppuVar15 + -0x20) = 0;\n      *(undefined4 *)((int)pppuVar15 + -0x24) = 0x1ccafc;\n      puVar9 = (undefined4 *)FUN_001c9960();\n    }" { (expression_statement "uVar4 = *(uint *)(*param_5 + 0x10);" (assignment_expression "uVar4 = *(uint *)(*param_5 + 0x10)" identifier = (pointer_expression "*(uint *)(*param_5 + 0x10)" * (cast_expression "(uint *)(*param_5 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_5 + 0x10)" ( (binary_expression "*param_5 + 0x10" (pointer_expression "*param_5" * identifier) + number_literal) ))))) ;) (expression_statement "ppcVar5 = *(char ***)(*param_5 + 0x14);" (assignment_expression "ppcVar5 = *(char ***)(*param_5 + 0x14)" identifier = (pointer_expression "*(char ***)(*param_5 + 0x14)" * (cast_expression "(char ***)(*param_5 + 0x14)" ( (type_descriptor "char ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(*param_5 + 0x14)" ( (binary_expression "*param_5 + 0x14" (pointer_expression "*param_5" * identifier) + number_literal) ))))) ;) (if_statement "if (ppcVar5 < local_64 || (uint)((int)ppcVar5 - (int)local_64) < (uint)(uVar4 < local_58)) {\n        ppuVar13 = local_5c + -0x3b977;\n      }\n      else if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)\n              ) {\n        ppuVar13 = local_5c + -0x3b96c;\n      }\n      else {\n        ppuVar13 = (undefined **)((int)local_5c + -0xee586);\n      }" if (parenthesized_expression "(ppcVar5 < local_64 || (uint)((int)ppcVar5 - (int)local_64) < (uint)(uVar4 < local_58))" ( (binary_expression "ppcVar5 < local_64 || (uint)((int)ppcVar5 - (int)local_64) < (uint)(uVar4 < local_58)" (binary_expression "ppcVar5 < local_64" identifier < identifier) || (binary_expression "(uint)((int)ppcVar5 - (int)local_64) < (uint)(uVar4 < local_58)" (call_expression "(uint)((int)ppcVar5 - (int)local_64)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)ppcVar5 - (int)local_64)" ( (binary_expression "(int)ppcVar5 - (int)local_64" (cast_expression "(int)ppcVar5" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_64" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < (call_expression "(uint)(uVar4 < local_58)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar4 < local_58)" ( (binary_expression "uVar4 < local_58" identifier < identifier) ))))) )) (compound_statement "{\n        ppuVar13 = local_5c + -0x3b977;\n      }" { (expression_statement "ppuVar13 = local_5c + -0x3b977;" (assignment_expression "ppuVar13 = local_5c + -0x3b977" identifier = (binary_expression "local_5c + -0x3b977" identifier + number_literal)) ;) }) (else_clause "else if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)\n              ) {\n        ppuVar13 = local_5c + -0x3b96c;\n      }\n      else {\n        ppuVar13 = (undefined **)((int)local_5c + -0xee586);\n      }" else (if_statement "if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)\n              ) {\n        ppuVar13 = local_5c + -0x3b96c;\n      }\n      else {\n        ppuVar13 = (undefined **)((int)local_5c + -0xee586);\n      }" if (parenthesized_expression "(local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)\n              )" ( (binary_expression "local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)" (binary_expression "local_64 < ppcVar5" identifier < identifier) || (binary_expression "(uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)" (call_expression "(uint)((int)local_64 - (int)ppcVar5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)local_64 - (int)ppcVar5)" ( (binary_expression "(int)local_64 - (int)ppcVar5" (cast_expression "(int)local_64" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)ppcVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < (call_expression "(uint)(local_58 < uVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_58 < uVar4)" ( (binary_expression "local_58 < uVar4" identifier < identifier) ))))) )) (compound_statement "{\n        ppuVar13 = local_5c + -0x3b96c;\n      }" { (expression_statement "ppuVar13 = local_5c + -0x3b96c;" (assignment_expression "ppuVar13 = local_5c + -0x3b96c" identifier = (binary_expression "local_5c + -0x3b96c" identifier + number_literal)) ;) }) (else_clause "else {\n        ppuVar13 = (undefined **)((int)local_5c + -0xee586);\n      }" else (compound_statement "{\n        ppuVar13 = (undefined **)((int)local_5c + -0xee586);\n      }" { (expression_statement "ppuVar13 = (undefined **)((int)local_5c + -0xee586);" (assignment_expression "ppuVar13 = (undefined **)((int)local_5c + -0xee586)" identifier = (cast_expression "(undefined **)((int)local_5c + -0xee586)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_5c + -0xee586)" ( (binary_expression "(int)local_5c + -0xee586" (cast_expression "(int)local_5c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))))) (expression_statement "*(undefined ***)((int)pppuVar15 + -0x10) = ppuVar13;" (assignment_expression "*(undefined ***)((int)pppuVar15 + -0x10) = ppuVar13" (pointer_expression "*(undefined ***)((int)pppuVar15 + -0x10)" * (cast_expression "(undefined ***)((int)pppuVar15 + -0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)pppuVar15 + -0x10)" ( (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x1ccaee;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x1ccaee" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x14)" ( (binary_expression "(int)pppuVar15 + -0x14" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar12 = gettext();" (assignment_expression "uVar12 = gettext()" identifier = (call_expression "gettext()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(int **)((int)pppuVar15 + -0x10) = param_9;" (assignment_expression "*(int **)((int)pppuVar15 + -0x10) = param_9" (pointer_expression "*(int **)((int)pppuVar15 + -0x10)" * (cast_expression "(int **)((int)pppuVar15 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar15 + -0x10)" ( (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x14) = 0;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x14) = 0" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x14)" ( (binary_expression "(int)pppuVar15 + -0x14" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 **)((int)pppuVar15 + -0x18) = param_4;" (assignment_expression "*(undefined4 **)((int)pppuVar15 + -0x18) = param_4" (pointer_expression "*(undefined4 **)((int)pppuVar15 + -0x18)" * (cast_expression "(undefined4 **)((int)pppuVar15 + -0x18)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar15 + -0x18)" ( (binary_expression "(int)pppuVar15 + -0x18" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x1c) = uVar12;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x1c) = uVar12" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x1c)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x1c)" ( (binary_expression "(int)pppuVar15 + -0x1c" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x20) = 0;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x20) = 0" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x20)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x20)" ( (binary_expression "(int)pppuVar15 + -0x20" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x24) = 0x1ccafc;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x24) = 0x1ccafc" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x24)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x24)" ( (binary_expression "(int)pppuVar15 + -0x24" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "puVar9 = (undefined4 *)FUN_001c9960();" (assignment_expression "puVar9 = (undefined4 *)FUN_001c9960()" identifier = (cast_expression "(undefined4 *)FUN_001c9960()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001c9960()" identifier (argument_list "()" ( ))))) ;) })) })) (return_statement "return puVar9;" return identifier ;) }))
(translation_unit (ERROR (binary_expression IDENT * (ERROR IDENT) (call_expression IDENT (argument_list ( IDENT (ERROR IDENT) , IDENT (ERROR IDENT) , (binary_expression IDENT * (pointer_expression * IDENT)) , (binary_expression IDENT * IDENT) , (binary_expression IDENT * IDENT) , (binary_expression IDENT * IDENT) , (ERROR IDENT) IDENT , (ERROR IDENT) IDENT , (binary_expression IDENT * IDENT) , (binary_expression IDENT * (pointer_expression * IDENT)) , (ERROR IDENT) IDENT ))))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) >> LIT) ))) & LIT) )))) ;) (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)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (char_literal ' escape_sequence ')) ))) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) , (comma_expression (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (char_literal ' escape_sequence '))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression & IDENT)) , (binary_expression IDENT == IDENT)) )))))) )) ))) )) (goto_statement goto statement_identifier ;)))) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (char_literal ' escape_sequence '))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) && IDENT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (char_literal ' escape_sequence ')) && (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 *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) && (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) )) (compound_statement { (return_statement return IDENT ;) })) })) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT ))))) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (char_literal ' escape_sequence '))) ))) )) (compound_statement { (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) & LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (char_literal ' escape_sequence ')) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (char_literal ' escape_sequence '))) ))) )) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression & IDENT)) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (return_statement return IDENT ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) | LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) - LIT) )))) , (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) | LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == 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) + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) | LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) + LIT) ))))) )) (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (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 ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) != LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) != LIT) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) )))) , (binary_expression IDENT != (char_literal ' escape_sequence '))) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (char_literal ' escape_sequence ')) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT == (char_literal ' escape_sequence '))) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , (binary_expression IDENT & LIT) , IDENT ))))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (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 = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , LIT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < IDENT) || (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < IDENT) ))))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) - IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT - (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < IDENT) ))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT <= (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) && (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < IDENT) )) <= IDENT)) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (return_statement return IDENT ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_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 ;)) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) != LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & (binary_expression IDENT != LIT)) )) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT)) , (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 * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) || (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) || (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) ))) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT)) , (binary_expression (binary_expression IDENT != IDENT) || (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 = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT)) , (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character '))) ))) )) (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) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) })) })) })) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (char_literal ' escape_sequence ')) )) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) )) (compound_statement { (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 *)) ) (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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < IDENT) || (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < IDENT) ))))) )) (compound_statement { (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) != (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) == LIT) )) * (char_literal ' escape_sequence '))) | LIT)) ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) || (parenthesized_expression ( (binary_expression IDENT < (parenthesized_expression ( (binary_expression IDENT & LIT) ))) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT | (binary_expression IDENT & LIT))) ;) })) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_expression IDENT [ LIT ])) < IDENT) || (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < IDENT) ))))) )) (compound_statement { (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 (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < IDENT) || (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < IDENT) ))))) )) (compound_statement { (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 (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (char_literal ' escape_sequence ')) )) * (char_literal ' escape_sequence '))) | LIT)) ;) })) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (char_literal ' escape_sequence ')) ))) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == 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 ]) + LIT) )))) = (binary_expression IDENT | LIT)) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }))))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) })) })) (return_statement return IDENT ;) }))
(ERROR "undefined4 * __regparm2\nFUN_001cc840(undefined4 param_1,undefined4 param_2,undefined **param_3,undefined4 *param_4,\n            int *param_5,undefined1 *param_6,uint param_7,int param_8,int *param_9,\n            undefined **param_10,uint param_11)" (binary_expression "undefined4 * __regparm2\nFUN_001cc840(undefined4 param_1,undefined4 param_2,undefined **param_3,undefined4 *param_4,\n            int *param_5,undefined1 *param_6,uint param_7,int param_8,int *param_9,\n            undefined **param_10,uint param_11)" (identifier "undefined4") (* "*") (ERROR "__regparm2" (identifier "__regparm2")) (call_expression "FUN_001cc840(undefined4 param_1,undefined4 param_2,undefined **param_3,undefined4 *param_4,\n            int *param_5,undefined1 *param_6,uint param_7,int param_8,int *param_9,\n            undefined **param_10,uint param_11)" (identifier "FUN_001cc840") (argument_list "(undefined4 param_1,undefined4 param_2,undefined **param_3,undefined4 *param_4,\n            int *param_5,undefined1 *param_6,uint param_7,int param_8,int *param_9,\n            undefined **param_10,uint param_11)" (( "(") (identifier "undefined4") (ERROR "param_1" (identifier "param_1")) (, ",") (identifier "undefined4") (ERROR "param_2" (identifier "param_2")) (, ",") (binary_expression "undefined **param_3" (identifier "undefined") (* "*") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (, ",") (binary_expression "undefined4 *param_4" (identifier "undefined4") (* "*") (identifier "param_4")) (, ",") (binary_expression "int *param_5" (identifier "int") (* "*") (identifier "param_5")) (, ",") (binary_expression "undefined1 *param_6" (identifier "undefined1") (* "*") (identifier "param_6")) (, ",") (ERROR "uint" (identifier "uint")) (identifier "param_7") (, ",") (ERROR "int" (identifier "int")) (identifier "param_8") (, ",") (binary_expression "int *param_9" (identifier "int") (* "*") (identifier "param_9")) (, ",") (binary_expression "undefined **param_10" (identifier "undefined") (* "*") (pointer_expression "*param_10" (* "*") (identifier "param_10"))) (, ",") (ERROR "uint" (identifier "uint")) (identifier "param_11") () ")"))))) (compound_statement "{\n  byte bVar1;\n  int *piVar2;\n  code *pcVar3;\n  uint uVar4;\n  char **ppcVar5;\n  uint uVar6;\n  char cVar7;\n  byte bVar8;\n  undefined4 *puVar9;\n  char *pcVar10;\n  int iVar11;\n  undefined4 uVar12;\n  undefined **ppuVar13;\n  undefined4 uVar14;\n  undefined ***pppuVar15;\n  bool bVar16;\n  undefined **ppuStack_94;\n  undefined **ppuStack_90;\n  undefined1 auStack_8c [12];\n  undefined4 *local_80;\n  char **local_7c;\n  undefined4 *local_78;\n  undefined4 **local_74;\n  int **local_70;\n  undefined1 *local_6c;\n  uint local_68;\n  char **local_64;\n  undefined **local_60;\n  undefined **local_5c;\n  uint local_58;\n  undefined1 local_54 [8];\n  char *local_4c;\n  undefined4 local_48;\n  int *local_44;\n  int local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 *local_34;\n  undefined1 *local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  \n  local_5c = &__DT_PLTGOT;\n  local_58 = param_7;\n  local_68 = param_11;\n  if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\n    ppuStack_94 = (undefined **)0x2a09d4;\n    ppuStack_90 = (undefined **)param_2;\n    local_5c = &__DT_PLTGOT;\n                    \n    FUN_00069d00("../../gold/symtab.h",0xaa);\n  }\n  local_64 = (char **)(CONCAT31(local_64._1_3_,*(byte *)((int)param_4 + 0x2b) >> 5) & 0xffffff01);\n  local_6c = (undefined1 *)param_4[3];\n  ppuVar13 = &__DT_PLTGOT;\n  if (param_9 == (int *)param_4[2]) {\n    if ((byte)local_64 == '\0') {\n      local_5c = &__DT_PLTGOT;\n      cVar7 = FUN_00177470(local_6c);\n      ppuVar13 = local_5c;\n      if ((cVar7 == '\x01') || ((char)local_58 == '\0')) goto LAB_001cc88e;\n    }\n    else if ((local_6c != (undefined1 *)0x0) &&\n            ((local_58._0_1_ = (char)param_7, bVar16 = (char)local_58 != '\0', ppuVar13 = local_5c,\n             bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c)))) goto LAB_001ccb65;\n  }\n  else {\nLAB_001cc88e:\n    local_5c = ppuVar13;\n    bVar16 = (char)local_58 == '\0';\n    ppuVar13 = local_5c;\n    if ((param_6 == (undefined1 *)0xfff1 && bVar16) &&\n       (((byte)local_64 == '\0' && (local_6c == (undefined1 *)0xfff1)))) {\nLAB_001ccb65:\n      puVar9 = (undefined4 *)(param_4[0xc] ^ *(uint *)(*param_5 + 8));\n      ppuVar13 = local_5c;\n      if (param_4[0xd] == *(int *)(*param_5 + 0xc) && puVar9 == (undefined4 *)0x0) {\n        return puVar9;\n      }\n    }\n  }\n  local_5c = ppuVar13;\n  pppuVar15 = (undefined ***)auStack_8c;\n  local_60 = local_5c + 0xde;\n  piVar2 = *(int **)(*local_60 + 0xc);\n  if (piVar2 == (int *)0x0) {\n    ppuStack_94 = local_5c + -0x3b9ab;\n    ppuStack_90 = (undefined **)piVar2;\n                    \n    FUN_00069d00(local_5c + -0x41f7c,0x69);\n  }\n  if ((*(char *)(piVar2[1] + 0xd) != '\0') &&\n     (puVar9 = (undefined4 *)(**(code **)(*piVar2 + 0xac))(piVar2,param_4,param_5,param_9,param_10),\n     (char)puVar9 != '\0')) {\n    return puVar9;\n  }\n  if ((*(byte *)(param_9 + 0xb) & 1) == 0) {\n    pcVar10 = (char *)(*(byte *)(*param_5 + 4) & 0xf);\n    if (((char)pcVar10 == '\x05') &&\n       (((char)local_58 != '\0' || (pcVar10 = (char *)FUN_00177470(param_6), (char)pcVar10 == '\0'))\n       )) {\n      if ((*(byte *)((int)param_4 + 0x2a) & 7) == 0) {\n        uVar12 = *(undefined4 *)(param_4[2] + 4);\n        FUN_00178890(&local_34,param_4);\n        puVar9 = local_34;\n        uVar14 = gettext(local_5c + -0x3b985);\n                    \n        FUN_000654e0(uVar14,puVar9,uVar12);\n        if (local_34 == &local_2c) {\n          return local_34;\n        }\n        puVar9 = (undefined4 *)FUN_001e6db0(local_34);\n        return puVar9;\n      }\n      goto LAB_001cd065;\n    }\n    *(byte *)((int)param_4 + 0x2a) = *(byte *)((int)param_4 + 0x2a) | 0x80;\n    iVar11 = (**(code **)(*param_9 + 0x14))(param_9);\n  }\n  else {\n    if ((param_6 == (undefined1 *)0x0) &&\n       (puVar9 = (undefined4 *)((*(byte *)((int)param_4 + 0x29) & 3) - 1),\n       puVar9 < (undefined4 *)0x2)) {\n      return puVar9;\n    }\n    *(byte *)((int)param_4 + 0x2b) = *(byte *)((int)param_4 + 0x2b) | 1;\n    iVar11 = (**(code **)(*param_9 + 0x14))(param_9);\n  }\n  if ((iVar11 == 0) && ((*(byte *)(param_9 + 0xb) & 1) == 0)) {\n    *(byte *)((int)param_4 + 0x2b) = *(byte *)((int)param_4 + 0x2b) | 0x40;\n  }\n  if (((*(byte *)((int)param_4 + 0x2a) & 7) == 0) &&\n     (iVar11 = (**(code **)(*(int *)param_4[2] + 0x14))((int *)param_4[2]), iVar11 != 0)) {\n    puVar9 = *(undefined4 **)(*local_60 + 8);\n    pppuVar15 = (undefined ***)auStack_8c;\n    if (puVar9 == (undefined4 *)0x0) goto LAB_001ccb98;\n    if (*(char *)(puVar9[0x164f] + 0x61) != '\0') {\n      if (((((*(byte *)((int)param_4 + 0x2a) & 7) != 0) ||\n           ((*(byte *)((int)param_4 + 0x2b) & 0x20) != 0)) ||\n          (cVar7 = FUN_00177470(param_4[3]), cVar7 != '\x01')) ||\n         (((char)local_58 != '\0' || (cVar7 = FUN_00177470(param_6), cVar7 == '\0')))) {\n        ppuStack_94 = param_10;\n        puVar9 = (undefined4 *)FUN_001cb040(param_3,param_4,param_5,param_6,local_58 & 0xff,param_9)\n        ;\n        return puVar9;\n      }\n      local_5c = (undefined **)param_4[0xf];\n      local_60 = (undefined **)param_4[0xe];\n      uVar4 = param_4[0xd];\n      local_58 = param_4[0xc];\n      ppuStack_94 = param_10;\n      FUN_001cb040(param_3,param_4,param_5,param_6,0,param_9);\n      if ((uint)param_4[0xf] < local_5c ||\n          (uint)(param_4[0xf] - (int)local_5c) < (uint)((uint)param_4[0xe] < local_60)) {\n        param_4[0xe] = local_60;\n        param_4[0xf] = local_5c;\n      }\n      uVar6 = param_4[0xd] - uVar4;\n      puVar9 = (undefined4 *)(uVar6 - ((uint)param_4[0xc] < local_58));\n      if (uVar4 <= (uint)param_4[0xd] && ((uint)param_4[0xc] < local_58) <= uVar6) {\n        return puVar9;\n      }\n      param_4[0xc] = local_58;\n      param_4[0xd] = uVar4;\n      return puVar9;\n    }\n  }\n  else {\n    puVar9 = *(undefined4 **)(*local_60 + 8);\n    if (puVar9 == (undefined4 *)0x0) goto LAB_001ccb98;\n  }\n  if (*(char *)((int)puVar9 + 0xe0d) == '\0') {\n    local_74 = &local_34;\n    local_70 = &local_44;\n    pppuVar15 = (undefined ***)auStack_8c;\n  }\n  else {\n    iVar11 = *param_5;\n    if ((int)(uint)*(byte *)(iVar11 + 4) >> 4 != 2) {\n      local_74 = &local_34;\n      local_70 = &local_44;\n      pppuVar15 = (undefined ***)auStack_8c;\n      if (*(byte *)(param_4 + 10) >> 4 != 2) goto LAB_001cc978;\n    }\n    local_74 = &local_34;\n    local_70 = &local_44;\n    pppuVar15 = (undefined ***)auStack_8c;\n    if ((((byte)local_64 & param_8 != 0) != 0) &&\n       (pppuVar15 = (undefined ***)auStack_8c, local_6c != (undefined1 *)0x0)) {\n      local_64 = *(char ***)(iVar11 + 0x10);\n      local_78 = *(undefined4 **)(iVar11 + 0x14);\n      pppuVar15 = (undefined ***)auStack_8c;\n      if (local_78 != (undefined4 *)0x0 || local_64 != (char **)0x0) {\n        local_7c = (char **)param_4[0xe];\n        local_80 = (undefined4 *)param_4[0xf];\n        pppuVar15 = (undefined ***)auStack_8c;\n        if ((local_80 != (undefined4 *)0x0 || local_7c != (char **)0x0) &&\n           (((*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||\n            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80))))\n        {\n          pcVar10 = (char *)*param_4;\n          local_74 = &local_34;\n          local_70 = &local_44;\n          pppuVar15 = (undefined ***)auStack_8c;\n          if ((*pcVar10 == '_') && (pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z')) {\n            local_3c = *(undefined4 *)(iVar11 + 8);\n            local_44 = param_9;\n            local_40 = param_8;\n            local_38 = *(undefined4 *)(iVar11 + 0xc);\n            if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\nLAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;\n              ppuStack_90 = (undefined **)pcVar10;\n                    \n              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);\n            }\n            local_34 = (undefined4 *)param_4[2];\n            local_2c = param_4[0xc];\n            local_30 = local_6c;\n            local_28 = param_4[0xd];\n            ppuStack_90 = param_3;\n            ppuStack_94 = param_3;\n            local_64 = &local_4c;\n            local_4c = pcVar10;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            local_6c = local_54;\n            local_78 = &local_48;\n            FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1);\n            local_4c = (char *)*param_4;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1);\n            pppuVar15 = &ppuStack_94;\n          }\n        }\n      }\n    }\n  }\nLAB_001cc978:\n  iVar11 = *param_9;\n  *(int **)((int)pppuVar15 + -0x10) = param_9;\n  pcVar3 = *(code **)(iVar11 + 0x14);\n  *(undefined4 *)((int)pppuVar15 + -0x14) = 0x1cc981;\n  iVar11 = (*pcVar3)();\n  if (iVar11 == 0) {\n    bVar8 = *(byte *)(*param_5 + 4);\n  }\n  else {\n    bVar8 = *(byte *)(param_4 + 10);\n  }\n  local_6c = (undefined1 *)(local_58 & 0xff);\n  *(undefined1 **)((int)pppuVar15 + -0x10) = local_6c;\n  *(undefined4 *)((int)pppuVar15 + -0x14) = 0x1cc9b9;\n  uVar12 = FUN_001c9700();\n  local_58 = param_4[0xe];\n  local_64 = (char **)param_4[0xf];\n  *(uint *)((int)pppuVar15 + -4) = local_68 & 0xff;\n  *(undefined4 ***)((int)pppuVar15 + -8) = local_74;\n  *(int ***)((int)pppuVar15 + -0xc) = local_70;\n  *(int **)((int)pppuVar15 + -0x10) = param_9;\n  *(undefined4 *)((int)pppuVar15 + -0x14) = 0;\n  *(uint *)((int)pppuVar15 + -0x18) = bVar8 & 0xf;\n  *(undefined4 *)((int)pppuVar15 + -0x1c) = uVar12;\n  *(undefined4 **)((int)pppuVar15 + -0x20) = param_4;\n  *(undefined4 *)((int)pppuVar15 + -0x24) = 0x1cc9de;\n  cVar7 = FUN_001c9b30();\n  if (cVar7 == '\0') {\n    iVar11 = *param_5;\n    if ((char)local_44 != '\0') {\n      uVar4 = *(uint *)(iVar11 + 0x10);\n      ppcVar5 = *(char ***)(iVar11 + 0x14);\n      if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)) {\n        param_4[0xf] = ppcVar5;\n        param_4[0xe] = uVar4;\n      }\n      local_68 = *(uint *)(iVar11 + 8);\n      uVar4 = *(uint *)(iVar11 + 0xc);\n      if ((uint)param_4[0xd] < uVar4 || param_4[0xd] - uVar4 < (uint)((uint)param_4[0xc] < local_68)\n         ) {\n        param_4[0xd] = uVar4;\n        param_4[0xc] = local_68;\n      }\n    }\n    if ((char)local_34 != '\0') {\n      if (((*(byte *)(param_4 + 0xb) & 1) == 0) || ((*(byte *)(param_4 + 0xb) & 2) != 0)) {\n        *(byte *)(param_4 + 0xb) =\n             *(byte *)(param_4 + 0xb) & 0xfd | ((int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2) * '\x02'\n             | 1;\n      }\n    }\n    bVar8 = *(byte *)(iVar11 + 5) & 3;\n    if ((*(byte *)(iVar11 + 5) & 3) != 0) {\n      bVar1 = *(byte *)((int)param_4 + 0x29);\n      if (((bVar1 & 3) == 0) || (bVar8 < (bVar1 & 3))) {\n        *(byte *)((int)param_4 + 0x29) = bVar8 | bVar1 & 0xfc;\n      }\n    }\n  }\n  else {\n    uVar4 = param_4[0xc];\n    local_70 = (int **)CONCAT31(local_70._1_3_,*(byte *)(param_4 + 10) >> 4);\n    local_68 = param_4[0xd];\n    *(undefined ***)((int)pppuVar15 + -8) = param_10;\n    *(int **)((int)pppuVar15 + -0xc) = param_9;\n    *(undefined1 **)((int)pppuVar15 + -0x10) = local_6c;\n    *(undefined1 **)((int)pppuVar15 + -0x14) = param_6;\n    *(int **)((int)pppuVar15 + -0x18) = param_5;\n    *(undefined4 **)((int)pppuVar15 + -0x1c) = param_4;\n    *(undefined ***)((int)pppuVar15 + -0x20) = param_3;\n    *(undefined4 *)((int)pppuVar15 + -0x24) = 0x1cce64;\n    FUN_001cb040();\n    if ((char)local_44 != '\0') {\n      if ((char **)param_4[0xf] < local_64 ||\n          (uint)((int)param_4[0xf] - (int)local_64) < (uint)((uint)param_4[0xe] < local_58)) {\n        param_4[0xf] = local_64;\n        param_4[0xe] = local_58;\n      }\n      if ((uint)param_4[0xd] < local_68 ||\n          param_4[0xd] - local_68 < (uint)((uint)param_4[0xc] < uVar4)) {\n        param_4[0xc] = uVar4;\n        param_4[0xd] = local_68;\n      }\n    }\n    if (((char)local_34 != '\0') &&\n       (((*(byte *)(param_4 + 0xb) & 1) == 0 || ((*(byte *)(param_4 + 0xb) & 2) != 0)))) {\n      *(byte *)(param_4 + 0xb) =\n           *(byte *)(param_4 + 0xb) & 0xfd | ((char)local_70 == '\x02') * '\x02' | 1;\n    }\n  }\n  bVar8 = *(byte *)((int)param_4 + 0x2a);\n  puVar9 = (undefined4 *)(uint)bVar8;\n  if ((bVar8 & 7) == 0) {\n    bVar1 = *(byte *)(param_4[2] + 0x2c);\n    if ((((bVar1 & 1) != 0) && ((char)bVar8 < '\0')) && ((*(byte *)(param_4 + 0xb) & 2) == 0)) {\n      *(byte *)(param_4[2] + 0x2c) = bVar1 | 2;\n    }\n  }\n  if ((char)local_44 != '\0') {\n    puVar9 = *(undefined4 **)(*local_60 + 8);\n    if (puVar9 == (undefined4 *)0x0) {\nLAB_001ccb98:\n      *(undefined4 **)((int)pppuVar15 + -4) = puVar9;\n      *(undefined ***)((int)pppuVar15 + -8) = local_5c + -0x3b992;\n      *(undefined4 *)((int)pppuVar15 + -0xc) = 0x5c;\n      *(undefined ***)((int)pppuVar15 + -0x10) = local_5c + -0x41f7c;\n                    \n      *(undefined **)((int)pppuVar15 + -0x14) = &UNK_001ccbb1;\n      FUN_00069d00();\n    }\n    if (*(char *)((int)puVar9 + 0x43e5) != '\0') {\n      uVar4 = *(uint *)(*param_5 + 0x10);\n      ppcVar5 = *(char ***)(*param_5 + 0x14);\n      if (ppcVar5 < local_64 || (uint)((int)ppcVar5 - (int)local_64) < (uint)(uVar4 < local_58)) {\n        ppuVar13 = local_5c + -0x3b977;\n      }\n      else if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)\n              ) {\n        ppuVar13 = local_5c + -0x3b96c;\n      }\n      else {\n        ppuVar13 = (undefined **)((int)local_5c + -0xee586);\n      }\n      *(undefined ***)((int)pppuVar15 + -0x10) = ppuVar13;\n      *(undefined4 *)((int)pppuVar15 + -0x14) = 0x1ccaee;\n      uVar12 = gettext();\n      *(int **)((int)pppuVar15 + -0x10) = param_9;\n      *(undefined4 *)((int)pppuVar15 + -0x14) = 0;\n      *(undefined4 **)((int)pppuVar15 + -0x18) = param_4;\n      *(undefined4 *)((int)pppuVar15 + -0x1c) = uVar12;\n      *(undefined4 *)((int)pppuVar15 + -0x20) = 0;\n      *(undefined4 *)((int)pppuVar15 + -0x24) = 0x1ccafc;\n      puVar9 = (undefined4 *)FUN_001c9960();\n    }\n  }\n  return puVar9;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (declaration "code *pcVar3;" (type_identifier "code") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "char **ppcVar5;" (primitive_type "char") (pointer_declarator "**ppcVar5" (* "*") (pointer_declarator "*ppcVar5" (* "*") (identifier "ppcVar5"))) (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "char cVar7;" (primitive_type "char") (identifier "cVar7") (; ";")) (declaration "byte bVar8;" (type_identifier "byte") (identifier "bVar8") (; ";")) (declaration "undefined4 *puVar9;" (type_identifier "undefined4") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "char *pcVar10;" (primitive_type "char") (pointer_declarator "*pcVar10" (* "*") (identifier "pcVar10")) (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "undefined4 uVar12;" (type_identifier "undefined4") (identifier "uVar12") (; ";")) (declaration "undefined **ppuVar13;" (type_identifier "undefined") (pointer_declarator "**ppuVar13" (* "*") (pointer_declarator "*ppuVar13" (* "*") (identifier "ppuVar13"))) (; ";")) (declaration "undefined4 uVar14;" (type_identifier "undefined4") (identifier "uVar14") (; ";")) (declaration "undefined ***pppuVar15;" (type_identifier "undefined") (pointer_declarator "***pppuVar15" (* "*") (pointer_declarator "**pppuVar15" (* "*") (pointer_declarator "*pppuVar15" (* "*") (identifier "pppuVar15")))) (; ";")) (declaration "bool bVar16;" (primitive_type "bool") (identifier "bVar16") (; ";")) (declaration "undefined **ppuStack_94;" (type_identifier "undefined") (pointer_declarator "**ppuStack_94" (* "*") (pointer_declarator "*ppuStack_94" (* "*") (identifier "ppuStack_94"))) (; ";")) (declaration "undefined **ppuStack_90;" (type_identifier "undefined") (pointer_declarator "**ppuStack_90" (* "*") (pointer_declarator "*ppuStack_90" (* "*") (identifier "ppuStack_90"))) (; ";")) (declaration "undefined1 auStack_8c [12];" (type_identifier "undefined1") (array_declarator "auStack_8c [12]" (identifier "auStack_8c") ([ "[") (number_literal "12") (] "]")) (; ";")) (declaration "undefined4 *local_80;" (type_identifier "undefined4") (pointer_declarator "*local_80" (* "*") (identifier "local_80")) (; ";")) (declaration "char **local_7c;" (primitive_type "char") (pointer_declarator "**local_7c" (* "*") (pointer_declarator "*local_7c" (* "*") (identifier "local_7c"))) (; ";")) (declaration "undefined4 *local_78;" (type_identifier "undefined4") (pointer_declarator "*local_78" (* "*") (identifier "local_78")) (; ";")) (declaration "undefined4 **local_74;" (type_identifier "undefined4") (pointer_declarator "**local_74" (* "*") (pointer_declarator "*local_74" (* "*") (identifier "local_74"))) (; ";")) (declaration "int **local_70;" (primitive_type "int") (pointer_declarator "**local_70" (* "*") (pointer_declarator "*local_70" (* "*") (identifier "local_70"))) (; ";")) (declaration "undefined1 *local_6c;" (type_identifier "undefined1") (pointer_declarator "*local_6c" (* "*") (identifier "local_6c")) (; ";")) (declaration "uint local_68;" (type_identifier "uint") (identifier "local_68") (; ";")) (declaration "char **local_64;" (primitive_type "char") (pointer_declarator "**local_64" (* "*") (pointer_declarator "*local_64" (* "*") (identifier "local_64"))) (; ";")) (declaration "undefined **local_60;" (type_identifier "undefined") (pointer_declarator "**local_60" (* "*") (pointer_declarator "*local_60" (* "*") (identifier "local_60"))) (; ";")) (declaration "undefined **local_5c;" (type_identifier "undefined") (pointer_declarator "**local_5c" (* "*") (pointer_declarator "*local_5c" (* "*") (identifier "local_5c"))) (; ";")) (declaration "uint local_58;" (type_identifier "uint") (identifier "local_58") (; ";")) (declaration "undefined1 local_54 [8];" (type_identifier "undefined1") (array_declarator "local_54 [8]" (identifier "local_54") ([ "[") (number_literal "8") (] "]")) (; ";")) (declaration "char *local_4c;" (primitive_type "char") (pointer_declarator "*local_4c" (* "*") (identifier "local_4c")) (; ";")) (declaration "undefined4 local_48;" (type_identifier "undefined4") (identifier "local_48") (; ";")) (declaration "int *local_44;" (primitive_type "int") (pointer_declarator "*local_44" (* "*") (identifier "local_44")) (; ";")) (declaration "int local_40;" (primitive_type "int") (identifier "local_40") (; ";")) (declaration "undefined4 local_3c;" (type_identifier "undefined4") (identifier "local_3c") (; ";")) (declaration "undefined4 local_38;" (type_identifier "undefined4") (identifier "local_38") (; ";")) (declaration "undefined4 *local_34;" (type_identifier "undefined4") (pointer_declarator "*local_34" (* "*") (identifier "local_34")) (; ";")) (declaration "undefined1 *local_30;" (type_identifier "undefined1") (pointer_declarator "*local_30" (* "*") (identifier "local_30")) (; ";")) (declaration "undefined4 local_2c;" (type_identifier "undefined4") (identifier "local_2c") (; ";")) (declaration "undefined4 local_28;" (type_identifier "undefined4") (identifier "local_28") (; ";")) (expression_statement "local_5c = &__DT_PLTGOT;" (assignment_expression "local_5c = &__DT_PLTGOT" (identifier "local_5c") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";")) (expression_statement "local_58 = param_7;" (assignment_expression "local_58 = param_7" (identifier "local_58") (= "=") (identifier "param_7")) (; ";")) (expression_statement "local_68 = param_11;" (assignment_expression "local_68 = param_11" (identifier "local_68") (= "=") (identifier "param_11")) (; ";")) (if_statement "if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\n    ppuStack_94 = (undefined **)0x2a09d4;\n    ppuStack_90 = (undefined **)param_2;\n    local_5c = &__DT_PLTGOT;\n                    \n    FUN_00069d00("../../gold/symtab.h",0xaa);\n  }" (if "if") (parenthesized_expression "((*(byte *)((int)param_4 + 0x2a) & 7) != 0)" (( "(") (binary_expression "(*(byte *)((int)param_4 + 0x2a) & 7) != 0" (parenthesized_expression "(*(byte *)((int)param_4 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)((int)param_4 + 0x2a) & 7" (pointer_expression "*(byte *)((int)param_4 + 0x2a)" (* "*") (cast_expression "(byte *)((int)param_4 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_4 + 0x2a)" (( "(") (binary_expression "(int)param_4 + 0x2a" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    ppuStack_94 = (undefined **)0x2a09d4;\n    ppuStack_90 = (undefined **)param_2;\n    local_5c = &__DT_PLTGOT;\n                    \n    FUN_00069d00("../../gold/symtab.h",0xaa);\n  }" ({ "{") (expression_statement "ppuStack_94 = (undefined **)0x2a09d4;" (assignment_expression "ppuStack_94 = (undefined **)0x2a09d4" (identifier "ppuStack_94") (= "=") (cast_expression "(undefined **)0x2a09d4" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x2a09d4"))) (; ";")) (expression_statement "ppuStack_90 = (undefined **)param_2;" (assignment_expression "ppuStack_90 = (undefined **)param_2" (identifier "ppuStack_90") (= "=") (cast_expression "(undefined **)param_2" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "param_2"))) (; ";")) (expression_statement "local_5c = &__DT_PLTGOT;" (assignment_expression "local_5c = &__DT_PLTGOT" (identifier "local_5c") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";")) (expression_statement "FUN_00069d00("../../gold/symtab.h",0xaa);" (call_expression "FUN_00069d00("../../gold/symtab.h",0xaa)" (identifier "FUN_00069d00") (argument_list "("../../gold/symtab.h",0xaa)" (( "(") (string_literal ""../../gold/symtab.h"" (" """) (string_content "../../gold/symtab.h") (" """)) (, ",") (number_literal "0xaa") () ")"))) (; ";")) (} "}"))) (expression_statement "local_64 = (char **)(CONCAT31(local_64._1_3_,*(byte *)((int)param_4 + 0x2b) >> 5) & 0xffffff01);" (assignment_expression "local_64 = (char **)(CONCAT31(local_64._1_3_,*(byte *)((int)param_4 + 0x2b) >> 5) & 0xffffff01)" (identifier "local_64") (= "=") (cast_expression "(char **)(CONCAT31(local_64._1_3_,*(byte *)((int)param_4 + 0x2b) >> 5) & 0xffffff01)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(CONCAT31(local_64._1_3_,*(byte *)((int)param_4 + 0x2b) >> 5) & 0xffffff01)" (( "(") (binary_expression "CONCAT31(local_64._1_3_,*(byte *)((int)param_4 + 0x2b) >> 5) & 0xffffff01" (call_expression "CONCAT31(local_64._1_3_,*(byte *)((int)param_4 + 0x2b) >> 5)" (identifier "CONCAT31") (argument_list "(local_64._1_3_,*(byte *)((int)param_4 + 0x2b) >> 5)" (( "(") (field_expression "local_64._1_3_" (identifier "local_64") (. ".") (field_identifier "_1_3_")) (, ",") (binary_expression "*(byte *)((int)param_4 + 0x2b) >> 5" (pointer_expression "*(byte *)((int)param_4 + 0x2b)" (* "*") (cast_expression "(byte *)((int)param_4 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_4 + 0x2b)" (( "(") (binary_expression "(int)param_4 + 0x2b" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (+ "+") (number_literal "0x2b")) () ")")))) (>> ">>") (number_literal "5")) () ")"))) (& "&") (number_literal "0xffffff01")) () ")")))) (; ";")) (expression_statement "local_6c = (undefined1 *)param_4[3];" (assignment_expression "local_6c = (undefined1 *)param_4[3]" (identifier "local_6c") (= "=") (cast_expression "(undefined1 *)param_4[3]" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "ppuVar13 = &__DT_PLTGOT;" (assignment_expression "ppuVar13 = &__DT_PLTGOT" (identifier "ppuVar13") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";")) (if_statement "if (param_9 == (int *)param_4[2]) {\n    if ((byte)local_64 == '\0') {\n      local_5c = &__DT_PLTGOT;\n      cVar7 = FUN_00177470(local_6c);\n      ppuVar13 = local_5c;\n      if ((cVar7 == '\x01') || ((char)local_58 == '\0')) goto LAB_001cc88e;\n    }\n    else if ((local_6c != (undefined1 *)0x0) &&\n            ((local_58._0_1_ = (char)param_7, bVar16 = (char)local_58 != '\0', ppuVar13 = local_5c,\n             bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c)))) goto LAB_001ccb65;\n  }\n  else {\nLAB_001cc88e:\n    local_5c = ppuVar13;\n    bVar16 = (char)local_58 == '\0';\n    ppuVar13 = local_5c;\n    if ((param_6 == (undefined1 *)0xfff1 && bVar16) &&\n       (((byte)local_64 == '\0' && (local_6c == (undefined1 *)0xfff1)))) {\nLAB_001ccb65:\n      puVar9 = (undefined4 *)(param_4[0xc] ^ *(uint *)(*param_5 + 8));\n      ppuVar13 = local_5c;\n      if (param_4[0xd] == *(int *)(*param_5 + 0xc) && puVar9 == (undefined4 *)0x0) {\n        return puVar9;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(param_9 == (int *)param_4[2])" (( "(") (binary_expression "param_9 == (int *)param_4[2]" (identifier "param_9") (== "==") (cast_expression "(int *)param_4[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_4[2]" (identifier "param_4") ([ "[") (number_literal "2") (] "]")))) () ")")) (compound_statement "{\n    if ((byte)local_64 == '\0') {\n      local_5c = &__DT_PLTGOT;\n      cVar7 = FUN_00177470(local_6c);\n      ppuVar13 = local_5c;\n      if ((cVar7 == '\x01') || ((char)local_58 == '\0')) goto LAB_001cc88e;\n    }\n    else if ((local_6c != (undefined1 *)0x0) &&\n            ((local_58._0_1_ = (char)param_7, bVar16 = (char)local_58 != '\0', ppuVar13 = local_5c,\n             bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c)))) goto LAB_001ccb65;\n  }" ({ "{") (if_statement "if ((byte)local_64 == '\0') {\n      local_5c = &__DT_PLTGOT;\n      cVar7 = FUN_00177470(local_6c);\n      ppuVar13 = local_5c;\n      if ((cVar7 == '\x01') || ((char)local_58 == '\0')) goto LAB_001cc88e;\n    }\n    else if ((local_6c != (undefined1 *)0x0) &&\n            ((local_58._0_1_ = (char)param_7, bVar16 = (char)local_58 != '\0', ppuVar13 = local_5c,\n             bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c)))) goto LAB_001ccb65;" (if "if") (parenthesized_expression "((byte)local_64 == '\0')" (( "(") (binary_expression "(byte)local_64 == '\0'" (cast_expression "(byte)local_64" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_64")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      local_5c = &__DT_PLTGOT;\n      cVar7 = FUN_00177470(local_6c);\n      ppuVar13 = local_5c;\n      if ((cVar7 == '\x01') || ((char)local_58 == '\0')) goto LAB_001cc88e;\n    }" ({ "{") (expression_statement "local_5c = &__DT_PLTGOT;" (assignment_expression "local_5c = &__DT_PLTGOT" (identifier "local_5c") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";")) (expression_statement "cVar7 = FUN_00177470(local_6c);" (assignment_expression "cVar7 = FUN_00177470(local_6c)" (identifier "cVar7") (= "=") (call_expression "FUN_00177470(local_6c)" (identifier "FUN_00177470") (argument_list "(local_6c)" (( "(") (identifier "local_6c") () ")")))) (; ";")) (expression_statement "ppuVar13 = local_5c;" (assignment_expression "ppuVar13 = local_5c" (identifier "ppuVar13") (= "=") (identifier "local_5c")) (; ";")) (if_statement "if ((cVar7 == '\x01') || ((char)local_58 == '\0')) goto LAB_001cc88e;" (if "if") (parenthesized_expression "((cVar7 == '\x01') || ((char)local_58 == '\0'))" (( "(") (binary_expression "(cVar7 == '\x01') || ((char)local_58 == '\0')" (parenthesized_expression "(cVar7 == '\x01')" (( "(") (binary_expression "cVar7 == '\x01'" (identifier "cVar7") (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")) (|| "||") (parenthesized_expression "((char)local_58 == '\0')" (( "(") (binary_expression "(char)local_58 == '\0'" (cast_expression "(char)local_58" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_58")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (goto_statement "goto LAB_001cc88e;" (goto "goto") (statement_identifier "LAB_001cc88e") (; ";"))) (} "}")) (else_clause "else if ((local_6c != (undefined1 *)0x0) &&\n            ((local_58._0_1_ = (char)param_7, bVar16 = (char)local_58 != '\0', ppuVar13 = local_5c,\n             bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c)))) goto LAB_001ccb65;" (else "else") (if_statement "if ((local_6c != (undefined1 *)0x0) &&\n            ((local_58._0_1_ = (char)param_7, bVar16 = (char)local_58 != '\0', ppuVar13 = local_5c,\n             bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c)))) goto LAB_001ccb65;" (if "if") (parenthesized_expression "((local_6c != (undefined1 *)0x0) &&\n            ((local_58._0_1_ = (char)param_7, bVar16 = (char)local_58 != '\0', ppuVar13 = local_5c,\n             bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c))))" (( "(") (binary_expression "(local_6c != (undefined1 *)0x0) &&\n            ((local_58._0_1_ = (char)param_7, bVar16 = (char)local_58 != '\0', ppuVar13 = local_5c,\n             bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c)))" (parenthesized_expression "(local_6c != (undefined1 *)0x0)" (( "(") (binary_expression "local_6c != (undefined1 *)0x0" (identifier "local_6c") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "((local_58._0_1_ = (char)param_7, bVar16 = (char)local_58 != '\0', ppuVar13 = local_5c,\n             bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c)))" (( "(") (parenthesized_expression "(local_58._0_1_ = (char)param_7, bVar16 = (char)local_58 != '\0', ppuVar13 = local_5c,\n             bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c))" (( "(") (comma_expression "local_58._0_1_ = (char)param_7, bVar16 = (char)local_58 != '\0', ppuVar13 = local_5c,\n             bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c)" (assignment_expression "local_58._0_1_ = (char)param_7" (field_expression "local_58._0_1_" (identifier "local_58") (. ".") (field_identifier "_0_1_")) (= "=") (cast_expression "(char)param_7" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "param_7"))) (, ",") (comma_expression "bVar16 = (char)local_58 != '\0', ppuVar13 = local_5c,\n             bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c)" (assignment_expression "bVar16 = (char)local_58 != '\0'" (identifier "bVar16") (= "=") (binary_expression "(char)local_58 != '\0'" (cast_expression "(char)local_58" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_58")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) (, ",") (comma_expression "ppuVar13 = local_5c,\n             bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c)" (assignment_expression "ppuVar13 = local_5c" (identifier "ppuVar13") (= "=") (identifier "local_5c")) (, ",") (binary_expression "bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c)" (identifier "bVar16") (&& "&&") (parenthesized_expression "(local_5c = &__DT_PLTGOT, param_6 == local_6c)" (( "(") (comma_expression "local_5c = &__DT_PLTGOT, param_6 == local_6c" (assignment_expression "local_5c = &__DT_PLTGOT" (identifier "local_5c") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (, ",") (binary_expression "param_6 == local_6c" (identifier "param_6") (== "==") (identifier "local_6c"))) () ")")))))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_001ccb65;" (goto "goto") (statement_identifier "LAB_001ccb65") (; ";"))))) (} "}")) (else_clause "else {\nLAB_001cc88e:\n    local_5c = ppuVar13;\n    bVar16 = (char)local_58 == '\0';\n    ppuVar13 = local_5c;\n    if ((param_6 == (undefined1 *)0xfff1 && bVar16) &&\n       (((byte)local_64 == '\0' && (local_6c == (undefined1 *)0xfff1)))) {\nLAB_001ccb65:\n      puVar9 = (undefined4 *)(param_4[0xc] ^ *(uint *)(*param_5 + 8));\n      ppuVar13 = local_5c;\n      if (param_4[0xd] == *(int *)(*param_5 + 0xc) && puVar9 == (undefined4 *)0x0) {\n        return puVar9;\n      }\n    }\n  }" (else "else") (compound_statement "{\nLAB_001cc88e:\n    local_5c = ppuVar13;\n    bVar16 = (char)local_58 == '\0';\n    ppuVar13 = local_5c;\n    if ((param_6 == (undefined1 *)0xfff1 && bVar16) &&\n       (((byte)local_64 == '\0' && (local_6c == (undefined1 *)0xfff1)))) {\nLAB_001ccb65:\n      puVar9 = (undefined4 *)(param_4[0xc] ^ *(uint *)(*param_5 + 8));\n      ppuVar13 = local_5c;\n      if (param_4[0xd] == *(int *)(*param_5 + 0xc) && puVar9 == (undefined4 *)0x0) {\n        return puVar9;\n      }\n    }\n  }" ({ "{") (labeled_statement "LAB_001cc88e:\n    local_5c = ppuVar13;" (statement_identifier "LAB_001cc88e") (: ":") (expression_statement "local_5c = ppuVar13;" (assignment_expression "local_5c = ppuVar13" (identifier "local_5c") (= "=") (identifier "ppuVar13")) (; ";"))) (expression_statement "bVar16 = (char)local_58 == '\0';" (assignment_expression "bVar16 = (char)local_58 == '\0'" (identifier "bVar16") (= "=") (binary_expression "(char)local_58 == '\0'" (cast_expression "(char)local_58" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_58")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) (; ";")) (expression_statement "ppuVar13 = local_5c;" (assignment_expression "ppuVar13 = local_5c" (identifier "ppuVar13") (= "=") (identifier "local_5c")) (; ";")) (if_statement "if ((param_6 == (undefined1 *)0xfff1 && bVar16) &&\n       (((byte)local_64 == '\0' && (local_6c == (undefined1 *)0xfff1)))) {\nLAB_001ccb65:\n      puVar9 = (undefined4 *)(param_4[0xc] ^ *(uint *)(*param_5 + 8));\n      ppuVar13 = local_5c;\n      if (param_4[0xd] == *(int *)(*param_5 + 0xc) && puVar9 == (undefined4 *)0x0) {\n        return puVar9;\n      }\n    }" (if "if") (parenthesized_expression "((param_6 == (undefined1 *)0xfff1 && bVar16) &&\n       (((byte)local_64 == '\0' && (local_6c == (undefined1 *)0xfff1))))" (( "(") (binary_expression "(param_6 == (undefined1 *)0xfff1 && bVar16) &&\n       (((byte)local_64 == '\0' && (local_6c == (undefined1 *)0xfff1)))" (parenthesized_expression "(param_6 == (undefined1 *)0xfff1 && bVar16)" (( "(") (binary_expression "param_6 == (undefined1 *)0xfff1 && bVar16" (binary_expression "param_6 == (undefined1 *)0xfff1" (identifier "param_6") (== "==") (cast_expression "(undefined1 *)0xfff1" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xfff1"))) (&& "&&") (identifier "bVar16")) () ")")) (&& "&&") (parenthesized_expression "(((byte)local_64 == '\0' && (local_6c == (undefined1 *)0xfff1)))" (( "(") (parenthesized_expression "((byte)local_64 == '\0' && (local_6c == (undefined1 *)0xfff1))" (( "(") (binary_expression "(byte)local_64 == '\0' && (local_6c == (undefined1 *)0xfff1)" (binary_expression "(byte)local_64 == '\0'" (cast_expression "(byte)local_64" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_64")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (&& "&&") (parenthesized_expression "(local_6c == (undefined1 *)0xfff1)" (( "(") (binary_expression "local_6c == (undefined1 *)0xfff1" (identifier "local_6c") (== "==") (cast_expression "(undefined1 *)0xfff1" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xfff1"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\nLAB_001ccb65:\n      puVar9 = (undefined4 *)(param_4[0xc] ^ *(uint *)(*param_5 + 8));\n      ppuVar13 = local_5c;\n      if (param_4[0xd] == *(int *)(*param_5 + 0xc) && puVar9 == (undefined4 *)0x0) {\n        return puVar9;\n      }\n    }" ({ "{") (labeled_statement "LAB_001ccb65:\n      puVar9 = (undefined4 *)(param_4[0xc] ^ *(uint *)(*param_5 + 8));" (statement_identifier "LAB_001ccb65") (: ":") (expression_statement "puVar9 = (undefined4 *)(param_4[0xc] ^ *(uint *)(*param_5 + 8));" (assignment_expression "puVar9 = (undefined4 *)(param_4[0xc] ^ *(uint *)(*param_5 + 8))" (identifier "puVar9") (= "=") (cast_expression "(undefined4 *)(param_4[0xc] ^ *(uint *)(*param_5 + 8))" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4[0xc] ^ *(uint *)(*param_5 + 8))" (( "(") (binary_expression "param_4[0xc] ^ *(uint *)(*param_5 + 8)" (subscript_expression "param_4[0xc]" (identifier "param_4") ([ "[") (number_literal "0xc") (] "]")) (^ "^") (pointer_expression "*(uint *)(*param_5 + 8)" (* "*") (cast_expression "(uint *)(*param_5 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_5 + 8)" (( "(") (binary_expression "*param_5 + 8" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (+ "+") (number_literal "8")) () ")"))))) () ")")))) (; ";"))) (expression_statement "ppuVar13 = local_5c;" (assignment_expression "ppuVar13 = local_5c" (identifier "ppuVar13") (= "=") (identifier "local_5c")) (; ";")) (if_statement "if (param_4[0xd] == *(int *)(*param_5 + 0xc) && puVar9 == (undefined4 *)0x0) {\n        return puVar9;\n      }" (if "if") (parenthesized_expression "(param_4[0xd] == *(int *)(*param_5 + 0xc) && puVar9 == (undefined4 *)0x0)" (( "(") (binary_expression "param_4[0xd] == *(int *)(*param_5 + 0xc) && puVar9 == (undefined4 *)0x0" (binary_expression "param_4[0xd] == *(int *)(*param_5 + 0xc)" (subscript_expression "param_4[0xd]" (identifier "param_4") ([ "[") (number_literal "0xd") (] "]")) (== "==") (pointer_expression "*(int *)(*param_5 + 0xc)" (* "*") (cast_expression "(int *)(*param_5 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_5 + 0xc)" (( "(") (binary_expression "*param_5 + 0xc" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (+ "+") (number_literal "0xc")) () ")"))))) (&& "&&") (binary_expression "puVar9 == (undefined4 *)0x0" (identifier "puVar9") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")) (compound_statement "{\n        return puVar9;\n      }" ({ "{") (return_statement "return puVar9;" (return "return") (identifier "puVar9") (; ";")) (} "}"))) (} "}"))) (} "}")))) (expression_statement "local_5c = ppuVar13;" (assignment_expression "local_5c = ppuVar13" (identifier "local_5c") (= "=") (identifier "ppuVar13")) (; ";")) (expression_statement "pppuVar15 = (undefined ***)auStack_8c;" (assignment_expression "pppuVar15 = (undefined ***)auStack_8c" (identifier "pppuVar15") (= "=") (cast_expression "(undefined ***)auStack_8c" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "auStack_8c"))) (; ";")) (expression_statement "local_60 = local_5c + 0xde;" (assignment_expression "local_60 = local_5c + 0xde" (identifier "local_60") (= "=") (binary_expression "local_5c + 0xde" (identifier "local_5c") (+ "+") (number_literal "0xde"))) (; ";")) (expression_statement "piVar2 = *(int **)(*local_60 + 0xc);" (assignment_expression "piVar2 = *(int **)(*local_60 + 0xc)" (identifier "piVar2") (= "=") (pointer_expression "*(int **)(*local_60 + 0xc)" (* "*") (cast_expression "(int **)(*local_60 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*local_60 + 0xc)" (( "(") (binary_expression "*local_60 + 0xc" (pointer_expression "*local_60" (* "*") (identifier "local_60")) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (piVar2 == (int *)0x0) {\n    ppuStack_94 = local_5c + -0x3b9ab;\n    ppuStack_90 = (undefined **)piVar2;\n                    \n    FUN_00069d00(local_5c + -0x41f7c,0x69);\n  }" (if "if") (parenthesized_expression "(piVar2 == (int *)0x0)" (( "(") (binary_expression "piVar2 == (int *)0x0" (identifier "piVar2") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    ppuStack_94 = local_5c + -0x3b9ab;\n    ppuStack_90 = (undefined **)piVar2;\n                    \n    FUN_00069d00(local_5c + -0x41f7c,0x69);\n  }" ({ "{") (expression_statement "ppuStack_94 = local_5c + -0x3b9ab;" (assignment_expression "ppuStack_94 = local_5c + -0x3b9ab" (identifier "ppuStack_94") (= "=") (binary_expression "local_5c + -0x3b9ab" (identifier "local_5c") (+ "+") (number_literal "-0x3b9ab"))) (; ";")) (expression_statement "ppuStack_90 = (undefined **)piVar2;" (assignment_expression "ppuStack_90 = (undefined **)piVar2" (identifier "ppuStack_90") (= "=") (cast_expression "(undefined **)piVar2" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "piVar2"))) (; ";")) (expression_statement "FUN_00069d00(local_5c + -0x41f7c,0x69);" (call_expression "FUN_00069d00(local_5c + -0x41f7c,0x69)" (identifier "FUN_00069d00") (argument_list "(local_5c + -0x41f7c,0x69)" (( "(") (binary_expression "local_5c + -0x41f7c" (identifier "local_5c") (+ "+") (number_literal "-0x41f7c")) (, ",") (number_literal "0x69") () ")"))) (; ";")) (} "}"))) (if_statement "if ((*(char *)(piVar2[1] + 0xd) != '\0') &&\n     (puVar9 = (undefined4 *)(**(code **)(*piVar2 + 0xac))(piVar2,param_4,param_5,param_9,param_10),\n     (char)puVar9 != '\0')) {\n    return puVar9;\n  }" (if "if") (parenthesized_expression "((*(char *)(piVar2[1] + 0xd) != '\0') &&\n     (puVar9 = (undefined4 *)(**(code **)(*piVar2 + 0xac))(piVar2,param_4,param_5,param_9,param_10),\n     (char)puVar9 != '\0'))" (( "(") (binary_expression "(*(char *)(piVar2[1] + 0xd) != '\0') &&\n     (puVar9 = (undefined4 *)(**(code **)(*piVar2 + 0xac))(piVar2,param_4,param_5,param_9,param_10),\n     (char)puVar9 != '\0')" (parenthesized_expression "(*(char *)(piVar2[1] + 0xd) != '\0')" (( "(") (binary_expression "*(char *)(piVar2[1] + 0xd) != '\0'" (pointer_expression "*(char *)(piVar2[1] + 0xd)" (* "*") (cast_expression "(char *)(piVar2[1] + 0xd)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar2[1] + 0xd)" (( "(") (binary_expression "piVar2[1] + 0xd" (subscript_expression "piVar2[1]" (identifier "piVar2") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0xd")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(puVar9 = (undefined4 *)(**(code **)(*piVar2 + 0xac))(piVar2,param_4,param_5,param_9,param_10),\n     (char)puVar9 != '\0')" (( "(") (comma_expression "puVar9 = (undefined4 *)(**(code **)(*piVar2 + 0xac))(piVar2,param_4,param_5,param_9,param_10),\n     (char)puVar9 != '\0'" (assignment_expression "puVar9 = (undefined4 *)(**(code **)(*piVar2 + 0xac))(piVar2,param_4,param_5,param_9,param_10)" (identifier "puVar9") (= "=") (cast_expression "(undefined4 *)(**(code **)(*piVar2 + 0xac))(piVar2,param_4,param_5,param_9,param_10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(*piVar2 + 0xac))(piVar2,param_4,param_5,param_9,param_10)" (parenthesized_expression "(**(code **)(*piVar2 + 0xac))" (( "(") (pointer_expression "**(code **)(*piVar2 + 0xac)" (* "*") (pointer_expression "*(code **)(*piVar2 + 0xac)" (* "*") (cast_expression "(code **)(*piVar2 + 0xac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar2 + 0xac)" (( "(") (binary_expression "*piVar2 + 0xac" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (+ "+") (number_literal "0xac")) () ")"))))) () ")")) (argument_list "(piVar2,param_4,param_5,param_9,param_10)" (( "(") (identifier "piVar2") (, ",") (identifier "param_4") (, ",") (identifier "param_5") (, ",") (identifier "param_9") (, ",") (identifier "param_10") () ")"))))) (, ",") (binary_expression "(char)puVar9 != '\0'" (cast_expression "(char)puVar9" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "puVar9")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (compound_statement "{\n    return puVar9;\n  }" ({ "{") (return_statement "return puVar9;" (return "return") (identifier "puVar9") (; ";")) (} "}"))) (if_statement "if ((*(byte *)(param_9 + 0xb) & 1) == 0) {\n    pcVar10 = (char *)(*(byte *)(*param_5 + 4) & 0xf);\n    if (((char)pcVar10 == '\x05') &&\n       (((char)local_58 != '\0' || (pcVar10 = (char *)FUN_00177470(param_6), (char)pcVar10 == '\0'))\n       )) {\n      if ((*(byte *)((int)param_4 + 0x2a) & 7) == 0) {\n        uVar12 = *(undefined4 *)(param_4[2] + 4);\n        FUN_00178890(&local_34,param_4);\n        puVar9 = local_34;\n        uVar14 = gettext(local_5c + -0x3b985);\n                    \n        FUN_000654e0(uVar14,puVar9,uVar12);\n        if (local_34 == &local_2c) {\n          return local_34;\n        }\n        puVar9 = (undefined4 *)FUN_001e6db0(local_34);\n        return puVar9;\n      }\n      goto LAB_001cd065;\n    }\n    *(byte *)((int)param_4 + 0x2a) = *(byte *)((int)param_4 + 0x2a) | 0x80;\n    iVar11 = (**(code **)(*param_9 + 0x14))(param_9);\n  }\n  else {\n    if ((param_6 == (undefined1 *)0x0) &&\n       (puVar9 = (undefined4 *)((*(byte *)((int)param_4 + 0x29) & 3) - 1),\n       puVar9 < (undefined4 *)0x2)) {\n      return puVar9;\n    }\n    *(byte *)((int)param_4 + 0x2b) = *(byte *)((int)param_4 + 0x2b) | 1;\n    iVar11 = (**(code **)(*param_9 + 0x14))(param_9);\n  }" (if "if") (parenthesized_expression "((*(byte *)(param_9 + 0xb) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(param_9 + 0xb) & 1) == 0" (parenthesized_expression "(*(byte *)(param_9 + 0xb) & 1)" (( "(") (binary_expression "*(byte *)(param_9 + 0xb) & 1" (pointer_expression "*(byte *)(param_9 + 0xb)" (* "*") (cast_expression "(byte *)(param_9 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_9 + 0xb)" (( "(") (binary_expression "param_9 + 0xb" (identifier "param_9") (+ "+") (number_literal "0xb")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    pcVar10 = (char *)(*(byte *)(*param_5 + 4) & 0xf);\n    if (((char)pcVar10 == '\x05') &&\n       (((char)local_58 != '\0' || (pcVar10 = (char *)FUN_00177470(param_6), (char)pcVar10 == '\0'))\n       )) {\n      if ((*(byte *)((int)param_4 + 0x2a) & 7) == 0) {\n        uVar12 = *(undefined4 *)(param_4[2] + 4);\n        FUN_00178890(&local_34,param_4);\n        puVar9 = local_34;\n        uVar14 = gettext(local_5c + -0x3b985);\n                    \n        FUN_000654e0(uVar14,puVar9,uVar12);\n        if (local_34 == &local_2c) {\n          return local_34;\n        }\n        puVar9 = (undefined4 *)FUN_001e6db0(local_34);\n        return puVar9;\n      }\n      goto LAB_001cd065;\n    }\n    *(byte *)((int)param_4 + 0x2a) = *(byte *)((int)param_4 + 0x2a) | 0x80;\n    iVar11 = (**(code **)(*param_9 + 0x14))(param_9);\n  }" ({ "{") (expression_statement "pcVar10 = (char *)(*(byte *)(*param_5 + 4) & 0xf);" (assignment_expression "pcVar10 = (char *)(*(byte *)(*param_5 + 4) & 0xf)" (identifier "pcVar10") (= "=") (cast_expression "(char *)(*(byte *)(*param_5 + 4) & 0xf)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(byte *)(*param_5 + 4) & 0xf)" (( "(") (binary_expression "*(byte *)(*param_5 + 4) & 0xf" (pointer_expression "*(byte *)(*param_5 + 4)" (* "*") (cast_expression "(byte *)(*param_5 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_5 + 4)" (( "(") (binary_expression "*param_5 + 4" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0xf")) () ")")))) (; ";")) (if_statement "if (((char)pcVar10 == '\x05') &&\n       (((char)local_58 != '\0' || (pcVar10 = (char *)FUN_00177470(param_6), (char)pcVar10 == '\0'))\n       )) {\n      if ((*(byte *)((int)param_4 + 0x2a) & 7) == 0) {\n        uVar12 = *(undefined4 *)(param_4[2] + 4);\n        FUN_00178890(&local_34,param_4);\n        puVar9 = local_34;\n        uVar14 = gettext(local_5c + -0x3b985);\n                    \n        FUN_000654e0(uVar14,puVar9,uVar12);\n        if (local_34 == &local_2c) {\n          return local_34;\n        }\n        puVar9 = (undefined4 *)FUN_001e6db0(local_34);\n        return puVar9;\n      }\n      goto LAB_001cd065;\n    }" (if "if") (parenthesized_expression "(((char)pcVar10 == '\x05') &&\n       (((char)local_58 != '\0' || (pcVar10 = (char *)FUN_00177470(param_6), (char)pcVar10 == '\0'))\n       ))" (( "(") (binary_expression "((char)pcVar10 == '\x05') &&\n       (((char)local_58 != '\0' || (pcVar10 = (char *)FUN_00177470(param_6), (char)pcVar10 == '\0'))\n       )" (parenthesized_expression "((char)pcVar10 == '\x05')" (( "(") (binary_expression "(char)pcVar10 == '\x05'" (cast_expression "(char)pcVar10" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "pcVar10")) (== "==") (char_literal "'\x05'" (' "'") (escape_sequence "\x05") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(((char)local_58 != '\0' || (pcVar10 = (char *)FUN_00177470(param_6), (char)pcVar10 == '\0'))\n       )" (( "(") (parenthesized_expression "((char)local_58 != '\0' || (pcVar10 = (char *)FUN_00177470(param_6), (char)pcVar10 == '\0'))" (( "(") (binary_expression "(char)local_58 != '\0' || (pcVar10 = (char *)FUN_00177470(param_6), (char)pcVar10 == '\0')" (binary_expression "(char)local_58 != '\0'" (cast_expression "(char)local_58" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_58")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (|| "||") (parenthesized_expression "(pcVar10 = (char *)FUN_00177470(param_6), (char)pcVar10 == '\0')" (( "(") (comma_expression "pcVar10 = (char *)FUN_00177470(param_6), (char)pcVar10 == '\0'" (assignment_expression "pcVar10 = (char *)FUN_00177470(param_6)" (identifier "pcVar10") (= "=") (cast_expression "(char *)FUN_00177470(param_6)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00177470(param_6)" (identifier "FUN_00177470") (argument_list "(param_6)" (( "(") (identifier "param_6") () ")"))))) (, ",") (binary_expression "(char)pcVar10 == '\0'" (cast_expression "(char)pcVar10" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "pcVar10")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n      if ((*(byte *)((int)param_4 + 0x2a) & 7) == 0) {\n        uVar12 = *(undefined4 *)(param_4[2] + 4);\n        FUN_00178890(&local_34,param_4);\n        puVar9 = local_34;\n        uVar14 = gettext(local_5c + -0x3b985);\n                    \n        FUN_000654e0(uVar14,puVar9,uVar12);\n        if (local_34 == &local_2c) {\n          return local_34;\n        }\n        puVar9 = (undefined4 *)FUN_001e6db0(local_34);\n        return puVar9;\n      }\n      goto LAB_001cd065;\n    }" ({ "{") (if_statement "if ((*(byte *)((int)param_4 + 0x2a) & 7) == 0) {\n        uVar12 = *(undefined4 *)(param_4[2] + 4);\n        FUN_00178890(&local_34,param_4);\n        puVar9 = local_34;\n        uVar14 = gettext(local_5c + -0x3b985);\n                    \n        FUN_000654e0(uVar14,puVar9,uVar12);\n        if (local_34 == &local_2c) {\n          return local_34;\n        }\n        puVar9 = (undefined4 *)FUN_001e6db0(local_34);\n        return puVar9;\n      }" (if "if") (parenthesized_expression "((*(byte *)((int)param_4 + 0x2a) & 7) == 0)" (( "(") (binary_expression "(*(byte *)((int)param_4 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)((int)param_4 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)((int)param_4 + 0x2a) & 7" (pointer_expression "*(byte *)((int)param_4 + 0x2a)" (* "*") (cast_expression "(byte *)((int)param_4 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_4 + 0x2a)" (( "(") (binary_expression "(int)param_4 + 0x2a" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar12 = *(undefined4 *)(param_4[2] + 4);\n        FUN_00178890(&local_34,param_4);\n        puVar9 = local_34;\n        uVar14 = gettext(local_5c + -0x3b985);\n                    \n        FUN_000654e0(uVar14,puVar9,uVar12);\n        if (local_34 == &local_2c) {\n          return local_34;\n        }\n        puVar9 = (undefined4 *)FUN_001e6db0(local_34);\n        return puVar9;\n      }" ({ "{") (expression_statement "uVar12 = *(undefined4 *)(param_4[2] + 4);" (assignment_expression "uVar12 = *(undefined4 *)(param_4[2] + 4)" (identifier "uVar12") (= "=") (pointer_expression "*(undefined4 *)(param_4[2] + 4)" (* "*") (cast_expression "(undefined4 *)(param_4[2] + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4[2] + 4)" (( "(") (binary_expression "param_4[2] + 4" (subscript_expression "param_4[2]" (identifier "param_4") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "FUN_00178890(&local_34,param_4);" (call_expression "FUN_00178890(&local_34,param_4)" (identifier "FUN_00178890") (argument_list "(&local_34,param_4)" (( "(") (pointer_expression "&local_34" (& "&") (identifier "local_34")) (, ",") (identifier "param_4") () ")"))) (; ";")) (expression_statement "puVar9 = local_34;" (assignment_expression "puVar9 = local_34" (identifier "puVar9") (= "=") (identifier "local_34")) (; ";")) (expression_statement "uVar14 = gettext(local_5c + -0x3b985);" (assignment_expression "uVar14 = gettext(local_5c + -0x3b985)" (identifier "uVar14") (= "=") (call_expression "gettext(local_5c + -0x3b985)" (identifier "gettext") (argument_list "(local_5c + -0x3b985)" (( "(") (binary_expression "local_5c + -0x3b985" (identifier "local_5c") (+ "+") (number_literal "-0x3b985")) () ")")))) (; ";")) (expression_statement "FUN_000654e0(uVar14,puVar9,uVar12);" (call_expression "FUN_000654e0(uVar14,puVar9,uVar12)" (identifier "FUN_000654e0") (argument_list "(uVar14,puVar9,uVar12)" (( "(") (identifier "uVar14") (, ",") (identifier "puVar9") (, ",") (identifier "uVar12") () ")"))) (; ";")) (if_statement "if (local_34 == &local_2c) {\n          return local_34;\n        }" (if "if") (parenthesized_expression "(local_34 == &local_2c)" (( "(") (binary_expression "local_34 == &local_2c" (identifier "local_34") (== "==") (pointer_expression "&local_2c" (& "&") (identifier "local_2c"))) () ")")) (compound_statement "{\n          return local_34;\n        }" ({ "{") (return_statement "return local_34;" (return "return") (identifier "local_34") (; ";")) (} "}"))) (expression_statement "puVar9 = (undefined4 *)FUN_001e6db0(local_34);" (assignment_expression "puVar9 = (undefined4 *)FUN_001e6db0(local_34)" (identifier "puVar9") (= "=") (cast_expression "(undefined4 *)FUN_001e6db0(local_34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001e6db0(local_34)" (identifier "FUN_001e6db0") (argument_list "(local_34)" (( "(") (identifier "local_34") () ")"))))) (; ";")) (return_statement "return puVar9;" (return "return") (identifier "puVar9") (; ";")) (} "}"))) (goto_statement "goto LAB_001cd065;" (goto "goto") (statement_identifier "LAB_001cd065") (; ";")) (} "}"))) (expression_statement "*(byte *)((int)param_4 + 0x2a) = *(byte *)((int)param_4 + 0x2a) | 0x80;" (assignment_expression "*(byte *)((int)param_4 + 0x2a) = *(byte *)((int)param_4 + 0x2a) | 0x80" (pointer_expression "*(byte *)((int)param_4 + 0x2a)" (* "*") (cast_expression "(byte *)((int)param_4 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_4 + 0x2a)" (( "(") (binary_expression "(int)param_4 + 0x2a" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (+ "+") (number_literal "0x2a")) () ")")))) (= "=") (binary_expression "*(byte *)((int)param_4 + 0x2a) | 0x80" (pointer_expression "*(byte *)((int)param_4 + 0x2a)" (* "*") (cast_expression "(byte *)((int)param_4 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_4 + 0x2a)" (( "(") (binary_expression "(int)param_4 + 0x2a" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (+ "+") (number_literal "0x2a")) () ")")))) (| "|") (number_literal "0x80"))) (; ";")) (expression_statement "iVar11 = (**(code **)(*param_9 + 0x14))(param_9);" (assignment_expression "iVar11 = (**(code **)(*param_9 + 0x14))(param_9)" (identifier "iVar11") (= "=") (call_expression "(**(code **)(*param_9 + 0x14))(param_9)" (parenthesized_expression "(**(code **)(*param_9 + 0x14))" (( "(") (pointer_expression "**(code **)(*param_9 + 0x14)" (* "*") (pointer_expression "*(code **)(*param_9 + 0x14)" (* "*") (cast_expression "(code **)(*param_9 + 0x14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_9 + 0x14)" (( "(") (binary_expression "*param_9 + 0x14" (pointer_expression "*param_9" (* "*") (identifier "param_9")) (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (argument_list "(param_9)" (( "(") (identifier "param_9") () ")")))) (; ";")) (} "}")) (else_clause "else {\n    if ((param_6 == (undefined1 *)0x0) &&\n       (puVar9 = (undefined4 *)((*(byte *)((int)param_4 + 0x29) & 3) - 1),\n       puVar9 < (undefined4 *)0x2)) {\n      return puVar9;\n    }\n    *(byte *)((int)param_4 + 0x2b) = *(byte *)((int)param_4 + 0x2b) | 1;\n    iVar11 = (**(code **)(*param_9 + 0x14))(param_9);\n  }" (else "else") (compound_statement "{\n    if ((param_6 == (undefined1 *)0x0) &&\n       (puVar9 = (undefined4 *)((*(byte *)((int)param_4 + 0x29) & 3) - 1),\n       puVar9 < (undefined4 *)0x2)) {\n      return puVar9;\n    }\n    *(byte *)((int)param_4 + 0x2b) = *(byte *)((int)param_4 + 0x2b) | 1;\n    iVar11 = (**(code **)(*param_9 + 0x14))(param_9);\n  }" ({ "{") (if_statement "if ((param_6 == (undefined1 *)0x0) &&\n       (puVar9 = (undefined4 *)((*(byte *)((int)param_4 + 0x29) & 3) - 1),\n       puVar9 < (undefined4 *)0x2)) {\n      return puVar9;\n    }" (if "if") (parenthesized_expression "((param_6 == (undefined1 *)0x0) &&\n       (puVar9 = (undefined4 *)((*(byte *)((int)param_4 + 0x29) & 3) - 1),\n       puVar9 < (undefined4 *)0x2))" (( "(") (binary_expression "(param_6 == (undefined1 *)0x0) &&\n       (puVar9 = (undefined4 *)((*(byte *)((int)param_4 + 0x29) & 3) - 1),\n       puVar9 < (undefined4 *)0x2)" (parenthesized_expression "(param_6 == (undefined1 *)0x0)" (( "(") (binary_expression "param_6 == (undefined1 *)0x0" (identifier "param_6") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(puVar9 = (undefined4 *)((*(byte *)((int)param_4 + 0x29) & 3) - 1),\n       puVar9 < (undefined4 *)0x2)" (( "(") (comma_expression "puVar9 = (undefined4 *)((*(byte *)((int)param_4 + 0x29) & 3) - 1),\n       puVar9 < (undefined4 *)0x2" (assignment_expression "puVar9 = (undefined4 *)((*(byte *)((int)param_4 + 0x29) & 3) - 1)" (identifier "puVar9") (= "=") (cast_expression "(undefined4 *)((*(byte *)((int)param_4 + 0x29) & 3) - 1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((*(byte *)((int)param_4 + 0x29) & 3) - 1)" (( "(") (binary_expression "(*(byte *)((int)param_4 + 0x29) & 3) - 1" (parenthesized_expression "(*(byte *)((int)param_4 + 0x29) & 3)" (( "(") (binary_expression "*(byte *)((int)param_4 + 0x29) & 3" (pointer_expression "*(byte *)((int)param_4 + 0x29)" (* "*") (cast_expression "(byte *)((int)param_4 + 0x29)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_4 + 0x29)" (( "(") (binary_expression "(int)param_4 + 0x29" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (+ "+") (number_literal "0x29")) () ")")))) (& "&") (number_literal "3")) () ")")) (- "-") (number_literal "1")) () ")")))) (, ",") (binary_expression "puVar9 < (undefined4 *)0x2" (identifier "puVar9") (< "<") (cast_expression "(undefined4 *)0x2" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2")))) () ")"))) () ")")) (compound_statement "{\n      return puVar9;\n    }" ({ "{") (return_statement "return puVar9;" (return "return") (identifier "puVar9") (; ";")) (} "}"))) (expression_statement "*(byte *)((int)param_4 + 0x2b) = *(byte *)((int)param_4 + 0x2b) | 1;" (assignment_expression "*(byte *)((int)param_4 + 0x2b) = *(byte *)((int)param_4 + 0x2b) | 1" (pointer_expression "*(byte *)((int)param_4 + 0x2b)" (* "*") (cast_expression "(byte *)((int)param_4 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_4 + 0x2b)" (( "(") (binary_expression "(int)param_4 + 0x2b" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (+ "+") (number_literal "0x2b")) () ")")))) (= "=") (binary_expression "*(byte *)((int)param_4 + 0x2b) | 1" (pointer_expression "*(byte *)((int)param_4 + 0x2b)" (* "*") (cast_expression "(byte *)((int)param_4 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_4 + 0x2b)" (( "(") (binary_expression "(int)param_4 + 0x2b" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (+ "+") (number_literal "0x2b")) () ")")))) (| "|") (number_literal "1"))) (; ";")) (expression_statement "iVar11 = (**(code **)(*param_9 + 0x14))(param_9);" (assignment_expression "iVar11 = (**(code **)(*param_9 + 0x14))(param_9)" (identifier "iVar11") (= "=") (call_expression "(**(code **)(*param_9 + 0x14))(param_9)" (parenthesized_expression "(**(code **)(*param_9 + 0x14))" (( "(") (pointer_expression "**(code **)(*param_9 + 0x14)" (* "*") (pointer_expression "*(code **)(*param_9 + 0x14)" (* "*") (cast_expression "(code **)(*param_9 + 0x14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_9 + 0x14)" (( "(") (binary_expression "*param_9 + 0x14" (pointer_expression "*param_9" (* "*") (identifier "param_9")) (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (argument_list "(param_9)" (( "(") (identifier "param_9") () ")")))) (; ";")) (} "}")))) (if_statement "if ((iVar11 == 0) && ((*(byte *)(param_9 + 0xb) & 1) == 0)) {\n    *(byte *)((int)param_4 + 0x2b) = *(byte *)((int)param_4 + 0x2b) | 0x40;\n  }" (if "if") (parenthesized_expression "((iVar11 == 0) && ((*(byte *)(param_9 + 0xb) & 1) == 0))" (( "(") (binary_expression "(iVar11 == 0) && ((*(byte *)(param_9 + 0xb) & 1) == 0)" (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(param_9 + 0xb) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(param_9 + 0xb) & 1) == 0" (parenthesized_expression "(*(byte *)(param_9 + 0xb) & 1)" (( "(") (binary_expression "*(byte *)(param_9 + 0xb) & 1" (pointer_expression "*(byte *)(param_9 + 0xb)" (* "*") (cast_expression "(byte *)(param_9 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_9 + 0xb)" (( "(") (binary_expression "param_9 + 0xb" (identifier "param_9") (+ "+") (number_literal "0xb")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    *(byte *)((int)param_4 + 0x2b) = *(byte *)((int)param_4 + 0x2b) | 0x40;\n  }" ({ "{") (expression_statement "*(byte *)((int)param_4 + 0x2b) = *(byte *)((int)param_4 + 0x2b) | 0x40;" (assignment_expression "*(byte *)((int)param_4 + 0x2b) = *(byte *)((int)param_4 + 0x2b) | 0x40" (pointer_expression "*(byte *)((int)param_4 + 0x2b)" (* "*") (cast_expression "(byte *)((int)param_4 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_4 + 0x2b)" (( "(") (binary_expression "(int)param_4 + 0x2b" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (+ "+") (number_literal "0x2b")) () ")")))) (= "=") (binary_expression "*(byte *)((int)param_4 + 0x2b) | 0x40" (pointer_expression "*(byte *)((int)param_4 + 0x2b)" (* "*") (cast_expression "(byte *)((int)param_4 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_4 + 0x2b)" (( "(") (binary_expression "(int)param_4 + 0x2b" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (+ "+") (number_literal "0x2b")) () ")")))) (| "|") (number_literal "0x40"))) (; ";")) (} "}"))) (if_statement "if (((*(byte *)((int)param_4 + 0x2a) & 7) == 0) &&\n     (iVar11 = (**(code **)(*(int *)param_4[2] + 0x14))((int *)param_4[2]), iVar11 != 0)) {\n    puVar9 = *(undefined4 **)(*local_60 + 8);\n    pppuVar15 = (undefined ***)auStack_8c;\n    if (puVar9 == (undefined4 *)0x0) goto LAB_001ccb98;\n    if (*(char *)(puVar9[0x164f] + 0x61) != '\0') {\n      if (((((*(byte *)((int)param_4 + 0x2a) & 7) != 0) ||\n           ((*(byte *)((int)param_4 + 0x2b) & 0x20) != 0)) ||\n          (cVar7 = FUN_00177470(param_4[3]), cVar7 != '\x01')) ||\n         (((char)local_58 != '\0' || (cVar7 = FUN_00177470(param_6), cVar7 == '\0')))) {\n        ppuStack_94 = param_10;\n        puVar9 = (undefined4 *)FUN_001cb040(param_3,param_4,param_5,param_6,local_58 & 0xff,param_9)\n        ;\n        return puVar9;\n      }\n      local_5c = (undefined **)param_4[0xf];\n      local_60 = (undefined **)param_4[0xe];\n      uVar4 = param_4[0xd];\n      local_58 = param_4[0xc];\n      ppuStack_94 = param_10;\n      FUN_001cb040(param_3,param_4,param_5,param_6,0,param_9);\n      if ((uint)param_4[0xf] < local_5c ||\n          (uint)(param_4[0xf] - (int)local_5c) < (uint)((uint)param_4[0xe] < local_60)) {\n        param_4[0xe] = local_60;\n        param_4[0xf] = local_5c;\n      }\n      uVar6 = param_4[0xd] - uVar4;\n      puVar9 = (undefined4 *)(uVar6 - ((uint)param_4[0xc] < local_58));\n      if (uVar4 <= (uint)param_4[0xd] && ((uint)param_4[0xc] < local_58) <= uVar6) {\n        return puVar9;\n      }\n      param_4[0xc] = local_58;\n      param_4[0xd] = uVar4;\n      return puVar9;\n    }\n  }\n  else {\n    puVar9 = *(undefined4 **)(*local_60 + 8);\n    if (puVar9 == (undefined4 *)0x0) goto LAB_001ccb98;\n  }" (if "if") (parenthesized_expression "(((*(byte *)((int)param_4 + 0x2a) & 7) == 0) &&\n     (iVar11 = (**(code **)(*(int *)param_4[2] + 0x14))((int *)param_4[2]), iVar11 != 0))" (( "(") (binary_expression "((*(byte *)((int)param_4 + 0x2a) & 7) == 0) &&\n     (iVar11 = (**(code **)(*(int *)param_4[2] + 0x14))((int *)param_4[2]), iVar11 != 0)" (parenthesized_expression "((*(byte *)((int)param_4 + 0x2a) & 7) == 0)" (( "(") (binary_expression "(*(byte *)((int)param_4 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)((int)param_4 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)((int)param_4 + 0x2a) & 7" (pointer_expression "*(byte *)((int)param_4 + 0x2a)" (* "*") (cast_expression "(byte *)((int)param_4 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_4 + 0x2a)" (( "(") (binary_expression "(int)param_4 + 0x2a" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar11 = (**(code **)(*(int *)param_4[2] + 0x14))((int *)param_4[2]), iVar11 != 0)" (( "(") (comma_expression "iVar11 = (**(code **)(*(int *)param_4[2] + 0x14))((int *)param_4[2]), iVar11 != 0" (assignment_expression "iVar11 = (**(code **)(*(int *)param_4[2] + 0x14))((int *)param_4[2])" (identifier "iVar11") (= "=") (call_expression "(**(code **)(*(int *)param_4[2] + 0x14))((int *)param_4[2])" (parenthesized_expression "(**(code **)(*(int *)param_4[2] + 0x14))" (( "(") (pointer_expression "**(code **)(*(int *)param_4[2] + 0x14)" (* "*") (pointer_expression "*(code **)(*(int *)param_4[2] + 0x14)" (* "*") (cast_expression "(code **)(*(int *)param_4[2] + 0x14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)param_4[2] + 0x14)" (( "(") (binary_expression "*(int *)param_4[2] + 0x14" (pointer_expression "*(int *)param_4[2]" (* "*") (cast_expression "(int *)param_4[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_4[2]" (identifier "param_4") ([ "[") (number_literal "2") (] "]")))) (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (argument_list "((int *)param_4[2])" (( "(") (cast_expression "(int *)param_4[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_4[2]" (identifier "param_4") ([ "[") (number_literal "2") (] "]"))) () ")")))) (, ",") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    puVar9 = *(undefined4 **)(*local_60 + 8);\n    pppuVar15 = (undefined ***)auStack_8c;\n    if (puVar9 == (undefined4 *)0x0) goto LAB_001ccb98;\n    if (*(char *)(puVar9[0x164f] + 0x61) != '\0') {\n      if (((((*(byte *)((int)param_4 + 0x2a) & 7) != 0) ||\n           ((*(byte *)((int)param_4 + 0x2b) & 0x20) != 0)) ||\n          (cVar7 = FUN_00177470(param_4[3]), cVar7 != '\x01')) ||\n         (((char)local_58 != '\0' || (cVar7 = FUN_00177470(param_6), cVar7 == '\0')))) {\n        ppuStack_94 = param_10;\n        puVar9 = (undefined4 *)FUN_001cb040(param_3,param_4,param_5,param_6,local_58 & 0xff,param_9)\n        ;\n        return puVar9;\n      }\n      local_5c = (undefined **)param_4[0xf];\n      local_60 = (undefined **)param_4[0xe];\n      uVar4 = param_4[0xd];\n      local_58 = param_4[0xc];\n      ppuStack_94 = param_10;\n      FUN_001cb040(param_3,param_4,param_5,param_6,0,param_9);\n      if ((uint)param_4[0xf] < local_5c ||\n          (uint)(param_4[0xf] - (int)local_5c) < (uint)((uint)param_4[0xe] < local_60)) {\n        param_4[0xe] = local_60;\n        param_4[0xf] = local_5c;\n      }\n      uVar6 = param_4[0xd] - uVar4;\n      puVar9 = (undefined4 *)(uVar6 - ((uint)param_4[0xc] < local_58));\n      if (uVar4 <= (uint)param_4[0xd] && ((uint)param_4[0xc] < local_58) <= uVar6) {\n        return puVar9;\n      }\n      param_4[0xc] = local_58;\n      param_4[0xd] = uVar4;\n      return puVar9;\n    }\n  }" ({ "{") (expression_statement "puVar9 = *(undefined4 **)(*local_60 + 8);" (assignment_expression "puVar9 = *(undefined4 **)(*local_60 + 8)" (identifier "puVar9") (= "=") (pointer_expression "*(undefined4 **)(*local_60 + 8)" (* "*") (cast_expression "(undefined4 **)(*local_60 + 8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*local_60 + 8)" (( "(") (binary_expression "*local_60 + 8" (pointer_expression "*local_60" (* "*") (identifier "local_60")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "pppuVar15 = (undefined ***)auStack_8c;" (assignment_expression "pppuVar15 = (undefined ***)auStack_8c" (identifier "pppuVar15") (= "=") (cast_expression "(undefined ***)auStack_8c" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "auStack_8c"))) (; ";")) (if_statement "if (puVar9 == (undefined4 *)0x0) goto LAB_001ccb98;" (if "if") (parenthesized_expression "(puVar9 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar9 == (undefined4 *)0x0" (identifier "puVar9") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_001ccb98;" (goto "goto") (statement_identifier "LAB_001ccb98") (; ";"))) (if_statement "if (*(char *)(puVar9[0x164f] + 0x61) != '\0') {\n      if (((((*(byte *)((int)param_4 + 0x2a) & 7) != 0) ||\n           ((*(byte *)((int)param_4 + 0x2b) & 0x20) != 0)) ||\n          (cVar7 = FUN_00177470(param_4[3]), cVar7 != '\x01')) ||\n         (((char)local_58 != '\0' || (cVar7 = FUN_00177470(param_6), cVar7 == '\0')))) {\n        ppuStack_94 = param_10;\n        puVar9 = (undefined4 *)FUN_001cb040(param_3,param_4,param_5,param_6,local_58 & 0xff,param_9)\n        ;\n        return puVar9;\n      }\n      local_5c = (undefined **)param_4[0xf];\n      local_60 = (undefined **)param_4[0xe];\n      uVar4 = param_4[0xd];\n      local_58 = param_4[0xc];\n      ppuStack_94 = param_10;\n      FUN_001cb040(param_3,param_4,param_5,param_6,0,param_9);\n      if ((uint)param_4[0xf] < local_5c ||\n          (uint)(param_4[0xf] - (int)local_5c) < (uint)((uint)param_4[0xe] < local_60)) {\n        param_4[0xe] = local_60;\n        param_4[0xf] = local_5c;\n      }\n      uVar6 = param_4[0xd] - uVar4;\n      puVar9 = (undefined4 *)(uVar6 - ((uint)param_4[0xc] < local_58));\n      if (uVar4 <= (uint)param_4[0xd] && ((uint)param_4[0xc] < local_58) <= uVar6) {\n        return puVar9;\n      }\n      param_4[0xc] = local_58;\n      param_4[0xd] = uVar4;\n      return puVar9;\n    }" (if "if") (parenthesized_expression "(*(char *)(puVar9[0x164f] + 0x61) != '\0')" (( "(") (binary_expression "*(char *)(puVar9[0x164f] + 0x61) != '\0'" (pointer_expression "*(char *)(puVar9[0x164f] + 0x61)" (* "*") (cast_expression "(char *)(puVar9[0x164f] + 0x61)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9[0x164f] + 0x61)" (( "(") (binary_expression "puVar9[0x164f] + 0x61" (subscript_expression "puVar9[0x164f]" (identifier "puVar9") ([ "[") (number_literal "0x164f") (] "]")) (+ "+") (number_literal "0x61")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      if (((((*(byte *)((int)param_4 + 0x2a) & 7) != 0) ||\n           ((*(byte *)((int)param_4 + 0x2b) & 0x20) != 0)) ||\n          (cVar7 = FUN_00177470(param_4[3]), cVar7 != '\x01')) ||\n         (((char)local_58 != '\0' || (cVar7 = FUN_00177470(param_6), cVar7 == '\0')))) {\n        ppuStack_94 = param_10;\n        puVar9 = (undefined4 *)FUN_001cb040(param_3,param_4,param_5,param_6,local_58 & 0xff,param_9)\n        ;\n        return puVar9;\n      }\n      local_5c = (undefined **)param_4[0xf];\n      local_60 = (undefined **)param_4[0xe];\n      uVar4 = param_4[0xd];\n      local_58 = param_4[0xc];\n      ppuStack_94 = param_10;\n      FUN_001cb040(param_3,param_4,param_5,param_6,0,param_9);\n      if ((uint)param_4[0xf] < local_5c ||\n          (uint)(param_4[0xf] - (int)local_5c) < (uint)((uint)param_4[0xe] < local_60)) {\n        param_4[0xe] = local_60;\n        param_4[0xf] = local_5c;\n      }\n      uVar6 = param_4[0xd] - uVar4;\n      puVar9 = (undefined4 *)(uVar6 - ((uint)param_4[0xc] < local_58));\n      if (uVar4 <= (uint)param_4[0xd] && ((uint)param_4[0xc] < local_58) <= uVar6) {\n        return puVar9;\n      }\n      param_4[0xc] = local_58;\n      param_4[0xd] = uVar4;\n      return puVar9;\n    }" ({ "{") (if_statement "if (((((*(byte *)((int)param_4 + 0x2a) & 7) != 0) ||\n           ((*(byte *)((int)param_4 + 0x2b) & 0x20) != 0)) ||\n          (cVar7 = FUN_00177470(param_4[3]), cVar7 != '\x01')) ||\n         (((char)local_58 != '\0' || (cVar7 = FUN_00177470(param_6), cVar7 == '\0')))) {\n        ppuStack_94 = param_10;\n        puVar9 = (undefined4 *)FUN_001cb040(param_3,param_4,param_5,param_6,local_58 & 0xff,param_9)\n        ;\n        return puVar9;\n      }" (if "if") (parenthesized_expression "(((((*(byte *)((int)param_4 + 0x2a) & 7) != 0) ||\n           ((*(byte *)((int)param_4 + 0x2b) & 0x20) != 0)) ||\n          (cVar7 = FUN_00177470(param_4[3]), cVar7 != '\x01')) ||\n         (((char)local_58 != '\0' || (cVar7 = FUN_00177470(param_6), cVar7 == '\0'))))" (( "(") (binary_expression "((((*(byte *)((int)param_4 + 0x2a) & 7) != 0) ||\n           ((*(byte *)((int)param_4 + 0x2b) & 0x20) != 0)) ||\n          (cVar7 = FUN_00177470(param_4[3]), cVar7 != '\x01')) ||\n         (((char)local_58 != '\0' || (cVar7 = FUN_00177470(param_6), cVar7 == '\0')))" (parenthesized_expression "((((*(byte *)((int)param_4 + 0x2a) & 7) != 0) ||\n           ((*(byte *)((int)param_4 + 0x2b) & 0x20) != 0)) ||\n          (cVar7 = FUN_00177470(param_4[3]), cVar7 != '\x01'))" (( "(") (binary_expression "(((*(byte *)((int)param_4 + 0x2a) & 7) != 0) ||\n           ((*(byte *)((int)param_4 + 0x2b) & 0x20) != 0)) ||\n          (cVar7 = FUN_00177470(param_4[3]), cVar7 != '\x01')" (parenthesized_expression "(((*(byte *)((int)param_4 + 0x2a) & 7) != 0) ||\n           ((*(byte *)((int)param_4 + 0x2b) & 0x20) != 0))" (( "(") (binary_expression "((*(byte *)((int)param_4 + 0x2a) & 7) != 0) ||\n           ((*(byte *)((int)param_4 + 0x2b) & 0x20) != 0)" (parenthesized_expression "((*(byte *)((int)param_4 + 0x2a) & 7) != 0)" (( "(") (binary_expression "(*(byte *)((int)param_4 + 0x2a) & 7) != 0" (parenthesized_expression "(*(byte *)((int)param_4 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)((int)param_4 + 0x2a) & 7" (pointer_expression "*(byte *)((int)param_4 + 0x2a)" (* "*") (cast_expression "(byte *)((int)param_4 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_4 + 0x2a)" (( "(") (binary_expression "(int)param_4 + 0x2a" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(byte *)((int)param_4 + 0x2b) & 0x20) != 0)" (( "(") (binary_expression "(*(byte *)((int)param_4 + 0x2b) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)param_4 + 0x2b) & 0x20)" (( "(") (binary_expression "*(byte *)((int)param_4 + 0x2b) & 0x20" (pointer_expression "*(byte *)((int)param_4 + 0x2b)" (* "*") (cast_expression "(byte *)((int)param_4 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_4 + 0x2b)" (( "(") (binary_expression "(int)param_4 + 0x2b" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (+ "+") (number_literal "0x2b")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(cVar7 = FUN_00177470(param_4[3]), cVar7 != '\x01')" (( "(") (comma_expression "cVar7 = FUN_00177470(param_4[3]), cVar7 != '\x01'" (assignment_expression "cVar7 = FUN_00177470(param_4[3])" (identifier "cVar7") (= "=") (call_expression "FUN_00177470(param_4[3])" (identifier "FUN_00177470") (argument_list "(param_4[3])" (( "(") (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]")) () ")")))) (, ",") (binary_expression "cVar7 != '\x01'" (identifier "cVar7") (!= "!=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'")))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(((char)local_58 != '\0' || (cVar7 = FUN_00177470(param_6), cVar7 == '\0')))" (( "(") (parenthesized_expression "((char)local_58 != '\0' || (cVar7 = FUN_00177470(param_6), cVar7 == '\0'))" (( "(") (binary_expression "(char)local_58 != '\0' || (cVar7 = FUN_00177470(param_6), cVar7 == '\0')" (binary_expression "(char)local_58 != '\0'" (cast_expression "(char)local_58" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_58")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (|| "||") (parenthesized_expression "(cVar7 = FUN_00177470(param_6), cVar7 == '\0')" (( "(") (comma_expression "cVar7 = FUN_00177470(param_6), cVar7 == '\0'" (assignment_expression "cVar7 = FUN_00177470(param_6)" (identifier "cVar7") (= "=") (call_expression "FUN_00177470(param_6)" (identifier "FUN_00177470") (argument_list "(param_6)" (( "(") (identifier "param_6") () ")")))) (, ",") (binary_expression "cVar7 == '\0'" (identifier "cVar7") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n        ppuStack_94 = param_10;\n        puVar9 = (undefined4 *)FUN_001cb040(param_3,param_4,param_5,param_6,local_58 & 0xff,param_9)\n        ;\n        return puVar9;\n      }" ({ "{") (expression_statement "ppuStack_94 = param_10;" (assignment_expression "ppuStack_94 = param_10" (identifier "ppuStack_94") (= "=") (identifier "param_10")) (; ";")) (expression_statement "puVar9 = (undefined4 *)FUN_001cb040(param_3,param_4,param_5,param_6,local_58 & 0xff,param_9)\n        ;" (assignment_expression "puVar9 = (undefined4 *)FUN_001cb040(param_3,param_4,param_5,param_6,local_58 & 0xff,param_9)" (identifier "puVar9") (= "=") (cast_expression "(undefined4 *)FUN_001cb040(param_3,param_4,param_5,param_6,local_58 & 0xff,param_9)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001cb040(param_3,param_4,param_5,param_6,local_58 & 0xff,param_9)" (identifier "FUN_001cb040") (argument_list "(param_3,param_4,param_5,param_6,local_58 & 0xff,param_9)" (( "(") (identifier "param_3") (, ",") (identifier "param_4") (, ",") (identifier "param_5") (, ",") (identifier "param_6") (, ",") (binary_expression "local_58 & 0xff" (identifier "local_58") (& "&") (number_literal "0xff")) (, ",") (identifier "param_9") () ")"))))) (; ";")) (return_statement "return puVar9;" (return "return") (identifier "puVar9") (; ";")) (} "}"))) (expression_statement "local_5c = (undefined **)param_4[0xf];" (assignment_expression "local_5c = (undefined **)param_4[0xf]" (identifier "local_5c") (= "=") (cast_expression "(undefined **)param_4[0xf]" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "param_4[0xf]" (identifier "param_4") ([ "[") (number_literal "0xf") (] "]")))) (; ";")) (expression_statement "local_60 = (undefined **)param_4[0xe];" (assignment_expression "local_60 = (undefined **)param_4[0xe]" (identifier "local_60") (= "=") (cast_expression "(undefined **)param_4[0xe]" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "param_4[0xe]" (identifier "param_4") ([ "[") (number_literal "0xe") (] "]")))) (; ";")) (expression_statement "uVar4 = param_4[0xd];" (assignment_expression "uVar4 = param_4[0xd]" (identifier "uVar4") (= "=") (subscript_expression "param_4[0xd]" (identifier "param_4") ([ "[") (number_literal "0xd") (] "]"))) (; ";")) (expression_statement "local_58 = param_4[0xc];" (assignment_expression "local_58 = param_4[0xc]" (identifier "local_58") (= "=") (subscript_expression "param_4[0xc]" (identifier "param_4") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (expression_statement "ppuStack_94 = param_10;" (assignment_expression "ppuStack_94 = param_10" (identifier "ppuStack_94") (= "=") (identifier "param_10")) (; ";")) (expression_statement "FUN_001cb040(param_3,param_4,param_5,param_6,0,param_9);" (call_expression "FUN_001cb040(param_3,param_4,param_5,param_6,0,param_9)" (identifier "FUN_001cb040") (argument_list "(param_3,param_4,param_5,param_6,0,param_9)" (( "(") (identifier "param_3") (, ",") (identifier "param_4") (, ",") (identifier "param_5") (, ",") (identifier "param_6") (, ",") (number_literal "0") (, ",") (identifier "param_9") () ")"))) (; ";")) (if_statement "if ((uint)param_4[0xf] < local_5c ||\n          (uint)(param_4[0xf] - (int)local_5c) < (uint)((uint)param_4[0xe] < local_60)) {\n        param_4[0xe] = local_60;\n        param_4[0xf] = local_5c;\n      }" (if "if") (parenthesized_expression "((uint)param_4[0xf] < local_5c ||\n          (uint)(param_4[0xf] - (int)local_5c) < (uint)((uint)param_4[0xe] < local_60))" (( "(") (binary_expression "(uint)param_4[0xf] < local_5c ||\n          (uint)(param_4[0xf] - (int)local_5c) < (uint)((uint)param_4[0xe] < local_60)" (binary_expression "(uint)param_4[0xf] < local_5c" (cast_expression "(uint)param_4[0xf]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_4[0xf]" (identifier "param_4") ([ "[") (number_literal "0xf") (] "]"))) (< "<") (identifier "local_5c")) (|| "||") (binary_expression "(uint)(param_4[0xf] - (int)local_5c) < (uint)((uint)param_4[0xe] < local_60)" (call_expression "(uint)(param_4[0xf] - (int)local_5c)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_4[0xf] - (int)local_5c)" (( "(") (binary_expression "param_4[0xf] - (int)local_5c" (subscript_expression "param_4[0xf]" (identifier "param_4") ([ "[") (number_literal "0xf") (] "]")) (- "-") (cast_expression "(int)local_5c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_5c"))) () ")"))) (< "<") (call_expression "(uint)((uint)param_4[0xe] < local_60)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uint)param_4[0xe] < local_60)" (( "(") (binary_expression "(uint)param_4[0xe] < local_60" (cast_expression "(uint)param_4[0xe]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_4[0xe]" (identifier "param_4") ([ "[") (number_literal "0xe") (] "]"))) (< "<") (identifier "local_60")) () ")"))))) () ")")) (compound_statement "{\n        param_4[0xe] = local_60;\n        param_4[0xf] = local_5c;\n      }" ({ "{") (expression_statement "param_4[0xe] = local_60;" (assignment_expression "param_4[0xe] = local_60" (subscript_expression "param_4[0xe]" (identifier "param_4") ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "local_60")) (; ";")) (expression_statement "param_4[0xf] = local_5c;" (assignment_expression "param_4[0xf] = local_5c" (subscript_expression "param_4[0xf]" (identifier "param_4") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "local_5c")) (; ";")) (} "}"))) (expression_statement "uVar6 = param_4[0xd] - uVar4;" (assignment_expression "uVar6 = param_4[0xd] - uVar4" (identifier "uVar6") (= "=") (binary_expression "param_4[0xd] - uVar4" (subscript_expression "param_4[0xd]" (identifier "param_4") ([ "[") (number_literal "0xd") (] "]")) (- "-") (identifier "uVar4"))) (; ";")) (expression_statement "puVar9 = (undefined4 *)(uVar6 - ((uint)param_4[0xc] < local_58));" (assignment_expression "puVar9 = (undefined4 *)(uVar6 - ((uint)param_4[0xc] < local_58))" (identifier "puVar9") (= "=") (cast_expression "(undefined4 *)(uVar6 - ((uint)param_4[0xc] < local_58))" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar6 - ((uint)param_4[0xc] < local_58))" (( "(") (binary_expression "uVar6 - ((uint)param_4[0xc] < local_58)" (identifier "uVar6") (- "-") (parenthesized_expression "((uint)param_4[0xc] < local_58)" (( "(") (binary_expression "(uint)param_4[0xc] < local_58" (cast_expression "(uint)param_4[0xc]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_4[0xc]" (identifier "param_4") ([ "[") (number_literal "0xc") (] "]"))) (< "<") (identifier "local_58")) () ")"))) () ")")))) (; ";")) (if_statement "if (uVar4 <= (uint)param_4[0xd] && ((uint)param_4[0xc] < local_58) <= uVar6) {\n        return puVar9;\n      }" (if "if") (parenthesized_expression "(uVar4 <= (uint)param_4[0xd] && ((uint)param_4[0xc] < local_58) <= uVar6)" (( "(") (binary_expression "uVar4 <= (uint)param_4[0xd] && ((uint)param_4[0xc] < local_58) <= uVar6" (binary_expression "uVar4 <= (uint)param_4[0xd]" (identifier "uVar4") (<= "<=") (cast_expression "(uint)param_4[0xd]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_4[0xd]" (identifier "param_4") ([ "[") (number_literal "0xd") (] "]")))) (&& "&&") (binary_expression "((uint)param_4[0xc] < local_58) <= uVar6" (parenthesized_expression "((uint)param_4[0xc] < local_58)" (( "(") (binary_expression "(uint)param_4[0xc] < local_58" (cast_expression "(uint)param_4[0xc]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_4[0xc]" (identifier "param_4") ([ "[") (number_literal "0xc") (] "]"))) (< "<") (identifier "local_58")) () ")")) (<= "<=") (identifier "uVar6"))) () ")")) (compound_statement "{\n        return puVar9;\n      }" ({ "{") (return_statement "return puVar9;" (return "return") (identifier "puVar9") (; ";")) (} "}"))) (expression_statement "param_4[0xc] = local_58;" (assignment_expression "param_4[0xc] = local_58" (subscript_expression "param_4[0xc]" (identifier "param_4") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "local_58")) (; ";")) (expression_statement "param_4[0xd] = uVar4;" (assignment_expression "param_4[0xd] = uVar4" (subscript_expression "param_4[0xd]" (identifier "param_4") ([ "[") (number_literal "0xd") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (return_statement "return puVar9;" (return "return") (identifier "puVar9") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    puVar9 = *(undefined4 **)(*local_60 + 8);\n    if (puVar9 == (undefined4 *)0x0) goto LAB_001ccb98;\n  }" (else "else") (compound_statement "{\n    puVar9 = *(undefined4 **)(*local_60 + 8);\n    if (puVar9 == (undefined4 *)0x0) goto LAB_001ccb98;\n  }" ({ "{") (expression_statement "puVar9 = *(undefined4 **)(*local_60 + 8);" (assignment_expression "puVar9 = *(undefined4 **)(*local_60 + 8)" (identifier "puVar9") (= "=") (pointer_expression "*(undefined4 **)(*local_60 + 8)" (* "*") (cast_expression "(undefined4 **)(*local_60 + 8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*local_60 + 8)" (( "(") (binary_expression "*local_60 + 8" (pointer_expression "*local_60" (* "*") (identifier "local_60")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (puVar9 == (undefined4 *)0x0) goto LAB_001ccb98;" (if "if") (parenthesized_expression "(puVar9 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar9 == (undefined4 *)0x0" (identifier "puVar9") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_001ccb98;" (goto "goto") (statement_identifier "LAB_001ccb98") (; ";"))) (} "}")))) (if_statement "if (*(char *)((int)puVar9 + 0xe0d) == '\0') {\n    local_74 = &local_34;\n    local_70 = &local_44;\n    pppuVar15 = (undefined ***)auStack_8c;\n  }\n  else {\n    iVar11 = *param_5;\n    if ((int)(uint)*(byte *)(iVar11 + 4) >> 4 != 2) {\n      local_74 = &local_34;\n      local_70 = &local_44;\n      pppuVar15 = (undefined ***)auStack_8c;\n      if (*(byte *)(param_4 + 10) >> 4 != 2) goto LAB_001cc978;\n    }\n    local_74 = &local_34;\n    local_70 = &local_44;\n    pppuVar15 = (undefined ***)auStack_8c;\n    if ((((byte)local_64 & param_8 != 0) != 0) &&\n       (pppuVar15 = (undefined ***)auStack_8c, local_6c != (undefined1 *)0x0)) {\n      local_64 = *(char ***)(iVar11 + 0x10);\n      local_78 = *(undefined4 **)(iVar11 + 0x14);\n      pppuVar15 = (undefined ***)auStack_8c;\n      if (local_78 != (undefined4 *)0x0 || local_64 != (char **)0x0) {\n        local_7c = (char **)param_4[0xe];\n        local_80 = (undefined4 *)param_4[0xf];\n        pppuVar15 = (undefined ***)auStack_8c;\n        if ((local_80 != (undefined4 *)0x0 || local_7c != (char **)0x0) &&\n           (((*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||\n            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80))))\n        {\n          pcVar10 = (char *)*param_4;\n          local_74 = &local_34;\n          local_70 = &local_44;\n          pppuVar15 = (undefined ***)auStack_8c;\n          if ((*pcVar10 == '_') && (pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z')) {\n            local_3c = *(undefined4 *)(iVar11 + 8);\n            local_44 = param_9;\n            local_40 = param_8;\n            local_38 = *(undefined4 *)(iVar11 + 0xc);\n            if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\nLAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;\n              ppuStack_90 = (undefined **)pcVar10;\n                    \n              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);\n            }\n            local_34 = (undefined4 *)param_4[2];\n            local_2c = param_4[0xc];\n            local_30 = local_6c;\n            local_28 = param_4[0xd];\n            ppuStack_90 = param_3;\n            ppuStack_94 = param_3;\n            local_64 = &local_4c;\n            local_4c = pcVar10;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            local_6c = local_54;\n            local_78 = &local_48;\n            FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1);\n            local_4c = (char *)*param_4;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1);\n            pppuVar15 = &ppuStack_94;\n          }\n        }\n      }\n    }\n  }" (if "if") (parenthesized_expression "(*(char *)((int)puVar9 + 0xe0d) == '\0')" (( "(") (binary_expression "*(char *)((int)puVar9 + 0xe0d) == '\0'" (pointer_expression "*(char *)((int)puVar9 + 0xe0d)" (* "*") (cast_expression "(char *)((int)puVar9 + 0xe0d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar9 + 0xe0d)" (( "(") (binary_expression "(int)puVar9 + 0xe0d" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (+ "+") (number_literal "0xe0d")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    local_74 = &local_34;\n    local_70 = &local_44;\n    pppuVar15 = (undefined ***)auStack_8c;\n  }" ({ "{") (expression_statement "local_74 = &local_34;" (assignment_expression "local_74 = &local_34" (identifier "local_74") (= "=") (pointer_expression "&local_34" (& "&") (identifier "local_34"))) (; ";")) (expression_statement "local_70 = &local_44;" (assignment_expression "local_70 = &local_44" (identifier "local_70") (= "=") (pointer_expression "&local_44" (& "&") (identifier "local_44"))) (; ";")) (expression_statement "pppuVar15 = (undefined ***)auStack_8c;" (assignment_expression "pppuVar15 = (undefined ***)auStack_8c" (identifier "pppuVar15") (= "=") (cast_expression "(undefined ***)auStack_8c" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "auStack_8c"))) (; ";")) (} "}")) (else_clause "else {\n    iVar11 = *param_5;\n    if ((int)(uint)*(byte *)(iVar11 + 4) >> 4 != 2) {\n      local_74 = &local_34;\n      local_70 = &local_44;\n      pppuVar15 = (undefined ***)auStack_8c;\n      if (*(byte *)(param_4 + 10) >> 4 != 2) goto LAB_001cc978;\n    }\n    local_74 = &local_34;\n    local_70 = &local_44;\n    pppuVar15 = (undefined ***)auStack_8c;\n    if ((((byte)local_64 & param_8 != 0) != 0) &&\n       (pppuVar15 = (undefined ***)auStack_8c, local_6c != (undefined1 *)0x0)) {\n      local_64 = *(char ***)(iVar11 + 0x10);\n      local_78 = *(undefined4 **)(iVar11 + 0x14);\n      pppuVar15 = (undefined ***)auStack_8c;\n      if (local_78 != (undefined4 *)0x0 || local_64 != (char **)0x0) {\n        local_7c = (char **)param_4[0xe];\n        local_80 = (undefined4 *)param_4[0xf];\n        pppuVar15 = (undefined ***)auStack_8c;\n        if ((local_80 != (undefined4 *)0x0 || local_7c != (char **)0x0) &&\n           (((*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||\n            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80))))\n        {\n          pcVar10 = (char *)*param_4;\n          local_74 = &local_34;\n          local_70 = &local_44;\n          pppuVar15 = (undefined ***)auStack_8c;\n          if ((*pcVar10 == '_') && (pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z')) {\n            local_3c = *(undefined4 *)(iVar11 + 8);\n            local_44 = param_9;\n            local_40 = param_8;\n            local_38 = *(undefined4 *)(iVar11 + 0xc);\n            if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\nLAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;\n              ppuStack_90 = (undefined **)pcVar10;\n                    \n              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);\n            }\n            local_34 = (undefined4 *)param_4[2];\n            local_2c = param_4[0xc];\n            local_30 = local_6c;\n            local_28 = param_4[0xd];\n            ppuStack_90 = param_3;\n            ppuStack_94 = param_3;\n            local_64 = &local_4c;\n            local_4c = pcVar10;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            local_6c = local_54;\n            local_78 = &local_48;\n            FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1);\n            local_4c = (char *)*param_4;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1);\n            pppuVar15 = &ppuStack_94;\n          }\n        }\n      }\n    }\n  }" (else "else") (compound_statement "{\n    iVar11 = *param_5;\n    if ((int)(uint)*(byte *)(iVar11 + 4) >> 4 != 2) {\n      local_74 = &local_34;\n      local_70 = &local_44;\n      pppuVar15 = (undefined ***)auStack_8c;\n      if (*(byte *)(param_4 + 10) >> 4 != 2) goto LAB_001cc978;\n    }\n    local_74 = &local_34;\n    local_70 = &local_44;\n    pppuVar15 = (undefined ***)auStack_8c;\n    if ((((byte)local_64 & param_8 != 0) != 0) &&\n       (pppuVar15 = (undefined ***)auStack_8c, local_6c != (undefined1 *)0x0)) {\n      local_64 = *(char ***)(iVar11 + 0x10);\n      local_78 = *(undefined4 **)(iVar11 + 0x14);\n      pppuVar15 = (undefined ***)auStack_8c;\n      if (local_78 != (undefined4 *)0x0 || local_64 != (char **)0x0) {\n        local_7c = (char **)param_4[0xe];\n        local_80 = (undefined4 *)param_4[0xf];\n        pppuVar15 = (undefined ***)auStack_8c;\n        if ((local_80 != (undefined4 *)0x0 || local_7c != (char **)0x0) &&\n           (((*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||\n            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80))))\n        {\n          pcVar10 = (char *)*param_4;\n          local_74 = &local_34;\n          local_70 = &local_44;\n          pppuVar15 = (undefined ***)auStack_8c;\n          if ((*pcVar10 == '_') && (pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z')) {\n            local_3c = *(undefined4 *)(iVar11 + 8);\n            local_44 = param_9;\n            local_40 = param_8;\n            local_38 = *(undefined4 *)(iVar11 + 0xc);\n            if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\nLAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;\n              ppuStack_90 = (undefined **)pcVar10;\n                    \n              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);\n            }\n            local_34 = (undefined4 *)param_4[2];\n            local_2c = param_4[0xc];\n            local_30 = local_6c;\n            local_28 = param_4[0xd];\n            ppuStack_90 = param_3;\n            ppuStack_94 = param_3;\n            local_64 = &local_4c;\n            local_4c = pcVar10;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            local_6c = local_54;\n            local_78 = &local_48;\n            FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1);\n            local_4c = (char *)*param_4;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1);\n            pppuVar15 = &ppuStack_94;\n          }\n        }\n      }\n    }\n  }" ({ "{") (expression_statement "iVar11 = *param_5;" (assignment_expression "iVar11 = *param_5" (identifier "iVar11") (= "=") (pointer_expression "*param_5" (* "*") (identifier "param_5"))) (; ";")) (if_statement "if ((int)(uint)*(byte *)(iVar11 + 4) >> 4 != 2) {\n      local_74 = &local_34;\n      local_70 = &local_44;\n      pppuVar15 = (undefined ***)auStack_8c;\n      if (*(byte *)(param_4 + 10) >> 4 != 2) goto LAB_001cc978;\n    }" (if "if") (parenthesized_expression "((int)(uint)*(byte *)(iVar11 + 4) >> 4 != 2)" (( "(") (binary_expression "(int)(uint)*(byte *)(iVar11 + 4) >> 4 != 2" (binary_expression "(int)(uint)*(byte *)(iVar11 + 4) >> 4" (binary_expression "(int)(uint)*(byte *)(iVar11 + 4)" (cast_expression "(int)(uint)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (cast_expression "(byte *)(iVar11 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 4)" (( "(") (binary_expression "iVar11 + 4" (identifier "iVar11") (+ "+") (number_literal "4")) () ")")))) (>> ">>") (number_literal "4")) (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n      local_74 = &local_34;\n      local_70 = &local_44;\n      pppuVar15 = (undefined ***)auStack_8c;\n      if (*(byte *)(param_4 + 10) >> 4 != 2) goto LAB_001cc978;\n    }" ({ "{") (expression_statement "local_74 = &local_34;" (assignment_expression "local_74 = &local_34" (identifier "local_74") (= "=") (pointer_expression "&local_34" (& "&") (identifier "local_34"))) (; ";")) (expression_statement "local_70 = &local_44;" (assignment_expression "local_70 = &local_44" (identifier "local_70") (= "=") (pointer_expression "&local_44" (& "&") (identifier "local_44"))) (; ";")) (expression_statement "pppuVar15 = (undefined ***)auStack_8c;" (assignment_expression "pppuVar15 = (undefined ***)auStack_8c" (identifier "pppuVar15") (= "=") (cast_expression "(undefined ***)auStack_8c" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "auStack_8c"))) (; ";")) (if_statement "if (*(byte *)(param_4 + 10) >> 4 != 2) goto LAB_001cc978;" (if "if") (parenthesized_expression "(*(byte *)(param_4 + 10) >> 4 != 2)" (( "(") (binary_expression "*(byte *)(param_4 + 10) >> 4 != 2" (binary_expression "*(byte *)(param_4 + 10) >> 4" (pointer_expression "*(byte *)(param_4 + 10)" (* "*") (cast_expression "(byte *)(param_4 + 10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 10)" (( "(") (binary_expression "param_4 + 10" (identifier "param_4") (+ "+") (number_literal "10")) () ")")))) (>> ">>") (number_literal "4")) (!= "!=") (number_literal "2")) () ")")) (goto_statement "goto LAB_001cc978;" (goto "goto") (statement_identifier "LAB_001cc978") (; ";"))) (} "}"))) (expression_statement "local_74 = &local_34;" (assignment_expression "local_74 = &local_34" (identifier "local_74") (= "=") (pointer_expression "&local_34" (& "&") (identifier "local_34"))) (; ";")) (expression_statement "local_70 = &local_44;" (assignment_expression "local_70 = &local_44" (identifier "local_70") (= "=") (pointer_expression "&local_44" (& "&") (identifier "local_44"))) (; ";")) (expression_statement "pppuVar15 = (undefined ***)auStack_8c;" (assignment_expression "pppuVar15 = (undefined ***)auStack_8c" (identifier "pppuVar15") (= "=") (cast_expression "(undefined ***)auStack_8c" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "auStack_8c"))) (; ";")) (if_statement "if ((((byte)local_64 & param_8 != 0) != 0) &&\n       (pppuVar15 = (undefined ***)auStack_8c, local_6c != (undefined1 *)0x0)) {\n      local_64 = *(char ***)(iVar11 + 0x10);\n      local_78 = *(undefined4 **)(iVar11 + 0x14);\n      pppuVar15 = (undefined ***)auStack_8c;\n      if (local_78 != (undefined4 *)0x0 || local_64 != (char **)0x0) {\n        local_7c = (char **)param_4[0xe];\n        local_80 = (undefined4 *)param_4[0xf];\n        pppuVar15 = (undefined ***)auStack_8c;\n        if ((local_80 != (undefined4 *)0x0 || local_7c != (char **)0x0) &&\n           (((*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||\n            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80))))\n        {\n          pcVar10 = (char *)*param_4;\n          local_74 = &local_34;\n          local_70 = &local_44;\n          pppuVar15 = (undefined ***)auStack_8c;\n          if ((*pcVar10 == '_') && (pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z')) {\n            local_3c = *(undefined4 *)(iVar11 + 8);\n            local_44 = param_9;\n            local_40 = param_8;\n            local_38 = *(undefined4 *)(iVar11 + 0xc);\n            if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\nLAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;\n              ppuStack_90 = (undefined **)pcVar10;\n                    \n              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);\n            }\n            local_34 = (undefined4 *)param_4[2];\n            local_2c = param_4[0xc];\n            local_30 = local_6c;\n            local_28 = param_4[0xd];\n            ppuStack_90 = param_3;\n            ppuStack_94 = param_3;\n            local_64 = &local_4c;\n            local_4c = pcVar10;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            local_6c = local_54;\n            local_78 = &local_48;\n            FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1);\n            local_4c = (char *)*param_4;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1);\n            pppuVar15 = &ppuStack_94;\n          }\n        }\n      }\n    }" (if "if") (parenthesized_expression "((((byte)local_64 & param_8 != 0) != 0) &&\n       (pppuVar15 = (undefined ***)auStack_8c, local_6c != (undefined1 *)0x0))" (( "(") (binary_expression "(((byte)local_64 & param_8 != 0) != 0) &&\n       (pppuVar15 = (undefined ***)auStack_8c, local_6c != (undefined1 *)0x0)" (parenthesized_expression "(((byte)local_64 & param_8 != 0) != 0)" (( "(") (binary_expression "((byte)local_64 & param_8 != 0) != 0" (parenthesized_expression "((byte)local_64 & param_8 != 0)" (( "(") (binary_expression "(byte)local_64 & param_8 != 0" (cast_expression "(byte)local_64" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_64")) (& "&") (binary_expression "param_8 != 0" (identifier "param_8") (!= "!=") (number_literal "0"))) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(pppuVar15 = (undefined ***)auStack_8c, local_6c != (undefined1 *)0x0)" (( "(") (comma_expression "pppuVar15 = (undefined ***)auStack_8c, local_6c != (undefined1 *)0x0" (assignment_expression "pppuVar15 = (undefined ***)auStack_8c" (identifier "pppuVar15") (= "=") (cast_expression "(undefined ***)auStack_8c" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "auStack_8c"))) (, ",") (binary_expression "local_6c != (undefined1 *)0x0" (identifier "local_6c") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n      local_64 = *(char ***)(iVar11 + 0x10);\n      local_78 = *(undefined4 **)(iVar11 + 0x14);\n      pppuVar15 = (undefined ***)auStack_8c;\n      if (local_78 != (undefined4 *)0x0 || local_64 != (char **)0x0) {\n        local_7c = (char **)param_4[0xe];\n        local_80 = (undefined4 *)param_4[0xf];\n        pppuVar15 = (undefined ***)auStack_8c;\n        if ((local_80 != (undefined4 *)0x0 || local_7c != (char **)0x0) &&\n           (((*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||\n            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80))))\n        {\n          pcVar10 = (char *)*param_4;\n          local_74 = &local_34;\n          local_70 = &local_44;\n          pppuVar15 = (undefined ***)auStack_8c;\n          if ((*pcVar10 == '_') && (pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z')) {\n            local_3c = *(undefined4 *)(iVar11 + 8);\n            local_44 = param_9;\n            local_40 = param_8;\n            local_38 = *(undefined4 *)(iVar11 + 0xc);\n            if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\nLAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;\n              ppuStack_90 = (undefined **)pcVar10;\n                    \n              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);\n            }\n            local_34 = (undefined4 *)param_4[2];\n            local_2c = param_4[0xc];\n            local_30 = local_6c;\n            local_28 = param_4[0xd];\n            ppuStack_90 = param_3;\n            ppuStack_94 = param_3;\n            local_64 = &local_4c;\n            local_4c = pcVar10;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            local_6c = local_54;\n            local_78 = &local_48;\n            FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1);\n            local_4c = (char *)*param_4;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1);\n            pppuVar15 = &ppuStack_94;\n          }\n        }\n      }\n    }" ({ "{") (expression_statement "local_64 = *(char ***)(iVar11 + 0x10);" (assignment_expression "local_64 = *(char ***)(iVar11 + 0x10)" (identifier "local_64") (= "=") (pointer_expression "*(char ***)(iVar11 + 0x10)" (* "*") (cast_expression "(char ***)(iVar11 + 0x10)" (( "(") (type_descriptor "char ***" (primitive_type "char") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(iVar11 + 0x10)" (( "(") (binary_expression "iVar11 + 0x10" (identifier "iVar11") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "local_78 = *(undefined4 **)(iVar11 + 0x14);" (assignment_expression "local_78 = *(undefined4 **)(iVar11 + 0x14)" (identifier "local_78") (= "=") (pointer_expression "*(undefined4 **)(iVar11 + 0x14)" (* "*") (cast_expression "(undefined4 **)(iVar11 + 0x14)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + 0x14)" (( "(") (binary_expression "iVar11 + 0x14" (identifier "iVar11") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "pppuVar15 = (undefined ***)auStack_8c;" (assignment_expression "pppuVar15 = (undefined ***)auStack_8c" (identifier "pppuVar15") (= "=") (cast_expression "(undefined ***)auStack_8c" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "auStack_8c"))) (; ";")) (if_statement "if (local_78 != (undefined4 *)0x0 || local_64 != (char **)0x0) {\n        local_7c = (char **)param_4[0xe];\n        local_80 = (undefined4 *)param_4[0xf];\n        pppuVar15 = (undefined ***)auStack_8c;\n        if ((local_80 != (undefined4 *)0x0 || local_7c != (char **)0x0) &&\n           (((*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||\n            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80))))\n        {\n          pcVar10 = (char *)*param_4;\n          local_74 = &local_34;\n          local_70 = &local_44;\n          pppuVar15 = (undefined ***)auStack_8c;\n          if ((*pcVar10 == '_') && (pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z')) {\n            local_3c = *(undefined4 *)(iVar11 + 8);\n            local_44 = param_9;\n            local_40 = param_8;\n            local_38 = *(undefined4 *)(iVar11 + 0xc);\n            if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\nLAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;\n              ppuStack_90 = (undefined **)pcVar10;\n                    \n              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);\n            }\n            local_34 = (undefined4 *)param_4[2];\n            local_2c = param_4[0xc];\n            local_30 = local_6c;\n            local_28 = param_4[0xd];\n            ppuStack_90 = param_3;\n            ppuStack_94 = param_3;\n            local_64 = &local_4c;\n            local_4c = pcVar10;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            local_6c = local_54;\n            local_78 = &local_48;\n            FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1);\n            local_4c = (char *)*param_4;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1);\n            pppuVar15 = &ppuStack_94;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(local_78 != (undefined4 *)0x0 || local_64 != (char **)0x0)" (( "(") (binary_expression "local_78 != (undefined4 *)0x0 || local_64 != (char **)0x0" (binary_expression "local_78 != (undefined4 *)0x0" (identifier "local_78") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (|| "||") (binary_expression "local_64 != (char **)0x0" (identifier "local_64") (!= "!=") (cast_expression "(char **)0x0" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0")))) () ")")) (compound_statement "{\n        local_7c = (char **)param_4[0xe];\n        local_80 = (undefined4 *)param_4[0xf];\n        pppuVar15 = (undefined ***)auStack_8c;\n        if ((local_80 != (undefined4 *)0x0 || local_7c != (char **)0x0) &&\n           (((*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||\n            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80))))\n        {\n          pcVar10 = (char *)*param_4;\n          local_74 = &local_34;\n          local_70 = &local_44;\n          pppuVar15 = (undefined ***)auStack_8c;\n          if ((*pcVar10 == '_') && (pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z')) {\n            local_3c = *(undefined4 *)(iVar11 + 8);\n            local_44 = param_9;\n            local_40 = param_8;\n            local_38 = *(undefined4 *)(iVar11 + 0xc);\n            if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\nLAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;\n              ppuStack_90 = (undefined **)pcVar10;\n                    \n              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);\n            }\n            local_34 = (undefined4 *)param_4[2];\n            local_2c = param_4[0xc];\n            local_30 = local_6c;\n            local_28 = param_4[0xd];\n            ppuStack_90 = param_3;\n            ppuStack_94 = param_3;\n            local_64 = &local_4c;\n            local_4c = pcVar10;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            local_6c = local_54;\n            local_78 = &local_48;\n            FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1);\n            local_4c = (char *)*param_4;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1);\n            pppuVar15 = &ppuStack_94;\n          }\n        }\n      }" ({ "{") (expression_statement "local_7c = (char **)param_4[0xe];" (assignment_expression "local_7c = (char **)param_4[0xe]" (identifier "local_7c") (= "=") (cast_expression "(char **)param_4[0xe]" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "param_4[0xe]" (identifier "param_4") ([ "[") (number_literal "0xe") (] "]")))) (; ";")) (expression_statement "local_80 = (undefined4 *)param_4[0xf];" (assignment_expression "local_80 = (undefined4 *)param_4[0xf]" (identifier "local_80") (= "=") (cast_expression "(undefined4 *)param_4[0xf]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_4[0xf]" (identifier "param_4") ([ "[") (number_literal "0xf") (] "]")))) (; ";")) (expression_statement "pppuVar15 = (undefined ***)auStack_8c;" (assignment_expression "pppuVar15 = (undefined ***)auStack_8c" (identifier "pppuVar15") (= "=") (cast_expression "(undefined ***)auStack_8c" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "auStack_8c"))) (; ";")) (if_statement "if ((local_80 != (undefined4 *)0x0 || local_7c != (char **)0x0) &&\n           (((*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||\n            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80))))\n        {\n          pcVar10 = (char *)*param_4;\n          local_74 = &local_34;\n          local_70 = &local_44;\n          pppuVar15 = (undefined ***)auStack_8c;\n          if ((*pcVar10 == '_') && (pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z')) {\n            local_3c = *(undefined4 *)(iVar11 + 8);\n            local_44 = param_9;\n            local_40 = param_8;\n            local_38 = *(undefined4 *)(iVar11 + 0xc);\n            if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\nLAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;\n              ppuStack_90 = (undefined **)pcVar10;\n                    \n              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);\n            }\n            local_34 = (undefined4 *)param_4[2];\n            local_2c = param_4[0xc];\n            local_30 = local_6c;\n            local_28 = param_4[0xd];\n            ppuStack_90 = param_3;\n            ppuStack_94 = param_3;\n            local_64 = &local_4c;\n            local_4c = pcVar10;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            local_6c = local_54;\n            local_78 = &local_48;\n            FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1);\n            local_4c = (char *)*param_4;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1);\n            pppuVar15 = &ppuStack_94;\n          }\n        }" (if "if") (parenthesized_expression "((local_80 != (undefined4 *)0x0 || local_7c != (char **)0x0) &&\n           (((*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||\n            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80))))" (( "(") (binary_expression "(local_80 != (undefined4 *)0x0 || local_7c != (char **)0x0) &&\n           (((*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||\n            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80)))" (parenthesized_expression "(local_80 != (undefined4 *)0x0 || local_7c != (char **)0x0)" (( "(") (binary_expression "local_80 != (undefined4 *)0x0 || local_7c != (char **)0x0" (binary_expression "local_80 != (undefined4 *)0x0" (identifier "local_80") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (|| "||") (binary_expression "local_7c != (char **)0x0" (identifier "local_7c") (!= "!=") (cast_expression "(char **)0x0" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0")))) () ")")) (&& "&&") (parenthesized_expression "(((*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||\n            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80)))" (( "(") (parenthesized_expression "((*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||\n            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80))" (( "(") (binary_expression "(*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||\n            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80)" (binary_expression "(*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf)" (parenthesized_expression "(*(byte *)(iVar11 + 4) & 0xf)" (( "(") (binary_expression "*(byte *)(iVar11 + 4) & 0xf" (pointer_expression "*(byte *)(iVar11 + 4)" (* "*") (cast_expression "(byte *)(iVar11 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 4)" (( "(") (binary_expression "iVar11 + 4" (identifier "iVar11") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0xf")) () ")")) (!= "!=") (parenthesized_expression "(*(byte *)(param_4 + 10) & 0xf)" (( "(") (binary_expression "*(byte *)(param_4 + 10) & 0xf" (pointer_expression "*(byte *)(param_4 + 10)" (* "*") (cast_expression "(byte *)(param_4 + 10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 10)" (( "(") (binary_expression "param_4 + 10" (identifier "param_4") (+ "+") (number_literal "10")) () ")")))) (& "&") (number_literal "0xf")) () ")"))) (|| "||") (parenthesized_expression "(pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80)" (( "(") (comma_expression "pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80" (assignment_expression "pppuVar15 = (undefined ***)auStack_8c" (identifier "pppuVar15") (= "=") (cast_expression "(undefined ***)auStack_8c" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "auStack_8c"))) (, ",") (binary_expression "local_64 != local_7c || local_78 != local_80" (binary_expression "local_64 != local_7c" (identifier "local_64") (!= "!=") (identifier "local_7c")) (|| "||") (binary_expression "local_78 != local_80" (identifier "local_78") (!= "!=") (identifier "local_80")))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n          pcVar10 = (char *)*param_4;\n          local_74 = &local_34;\n          local_70 = &local_44;\n          pppuVar15 = (undefined ***)auStack_8c;\n          if ((*pcVar10 == '_') && (pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z')) {\n            local_3c = *(undefined4 *)(iVar11 + 8);\n            local_44 = param_9;\n            local_40 = param_8;\n            local_38 = *(undefined4 *)(iVar11 + 0xc);\n            if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\nLAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;\n              ppuStack_90 = (undefined **)pcVar10;\n                    \n              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);\n            }\n            local_34 = (undefined4 *)param_4[2];\n            local_2c = param_4[0xc];\n            local_30 = local_6c;\n            local_28 = param_4[0xd];\n            ppuStack_90 = param_3;\n            ppuStack_94 = param_3;\n            local_64 = &local_4c;\n            local_4c = pcVar10;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            local_6c = local_54;\n            local_78 = &local_48;\n            FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1);\n            local_4c = (char *)*param_4;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1);\n            pppuVar15 = &ppuStack_94;\n          }\n        }" ({ "{") (expression_statement "pcVar10 = (char *)*param_4;" (assignment_expression "pcVar10 = (char *)*param_4" (identifier "pcVar10") (= "=") (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (; ";")) (expression_statement "local_74 = &local_34;" (assignment_expression "local_74 = &local_34" (identifier "local_74") (= "=") (pointer_expression "&local_34" (& "&") (identifier "local_34"))) (; ";")) (expression_statement "local_70 = &local_44;" (assignment_expression "local_70 = &local_44" (identifier "local_70") (= "=") (pointer_expression "&local_44" (& "&") (identifier "local_44"))) (; ";")) (expression_statement "pppuVar15 = (undefined ***)auStack_8c;" (assignment_expression "pppuVar15 = (undefined ***)auStack_8c" (identifier "pppuVar15") (= "=") (cast_expression "(undefined ***)auStack_8c" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "auStack_8c"))) (; ";")) (if_statement "if ((*pcVar10 == '_') && (pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z')) {\n            local_3c = *(undefined4 *)(iVar11 + 8);\n            local_44 = param_9;\n            local_40 = param_8;\n            local_38 = *(undefined4 *)(iVar11 + 0xc);\n            if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\nLAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;\n              ppuStack_90 = (undefined **)pcVar10;\n                    \n              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);\n            }\n            local_34 = (undefined4 *)param_4[2];\n            local_2c = param_4[0xc];\n            local_30 = local_6c;\n            local_28 = param_4[0xd];\n            ppuStack_90 = param_3;\n            ppuStack_94 = param_3;\n            local_64 = &local_4c;\n            local_4c = pcVar10;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            local_6c = local_54;\n            local_78 = &local_48;\n            FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1);\n            local_4c = (char *)*param_4;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1);\n            pppuVar15 = &ppuStack_94;\n          }" (if "if") (parenthesized_expression "((*pcVar10 == '_') && (pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z'))" (( "(") (binary_expression "(*pcVar10 == '_') && (pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z')" (parenthesized_expression "(*pcVar10 == '_')" (( "(") (binary_expression "*pcVar10 == '_'" (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) (== "==") (char_literal "'_'" (' "'") (character "_") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z')" (( "(") (comma_expression "pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z'" (assignment_expression "pppuVar15 = (undefined ***)auStack_8c" (identifier "pppuVar15") (= "=") (cast_expression "(undefined ***)auStack_8c" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "auStack_8c"))) (, ",") (binary_expression "pcVar10[1] == 'Z'" (subscript_expression "pcVar10[1]" (identifier "pcVar10") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'Z'" (' "'") (character "Z") (' "'")))) () ")"))) () ")")) (compound_statement "{\n            local_3c = *(undefined4 *)(iVar11 + 8);\n            local_44 = param_9;\n            local_40 = param_8;\n            local_38 = *(undefined4 *)(iVar11 + 0xc);\n            if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\nLAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;\n              ppuStack_90 = (undefined **)pcVar10;\n                    \n              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);\n            }\n            local_34 = (undefined4 *)param_4[2];\n            local_2c = param_4[0xc];\n            local_30 = local_6c;\n            local_28 = param_4[0xd];\n            ppuStack_90 = param_3;\n            ppuStack_94 = param_3;\n            local_64 = &local_4c;\n            local_4c = pcVar10;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            local_6c = local_54;\n            local_78 = &local_48;\n            FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1);\n            local_4c = (char *)*param_4;\n            local_48 = FUN_001cace0(param_3 + 0x47,local_64);\n            FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1);\n            pppuVar15 = &ppuStack_94;\n          }" ({ "{") (expression_statement "local_3c = *(undefined4 *)(iVar11 + 8);" (assignment_expression "local_3c = *(undefined4 *)(iVar11 + 8)" (identifier "local_3c") (= "=") (pointer_expression "*(undefined4 *)(iVar11 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar11 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 8)" (( "(") (binary_expression "iVar11 + 8" (identifier "iVar11") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "local_44 = param_9;" (assignment_expression "local_44 = param_9" (identifier "local_44") (= "=") (identifier "param_9")) (; ";")) (expression_statement "local_40 = param_8;" (assignment_expression "local_40 = param_8" (identifier "local_40") (= "=") (identifier "param_8")) (; ";")) (expression_statement "local_38 = *(undefined4 *)(iVar11 + 0xc);" (assignment_expression "local_38 = *(undefined4 *)(iVar11 + 0xc)" (identifier "local_38") (= "=") (pointer_expression "*(undefined4 *)(iVar11 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar11 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xc)" (( "(") (binary_expression "iVar11 + 0xc" (identifier "iVar11") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {\nLAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;\n              ppuStack_90 = (undefined **)pcVar10;\n                    \n              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);\n            }" (if "if") (parenthesized_expression "((*(byte *)((int)param_4 + 0x2a) & 7) != 0)" (( "(") (binary_expression "(*(byte *)((int)param_4 + 0x2a) & 7) != 0" (parenthesized_expression "(*(byte *)((int)param_4 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)((int)param_4 + 0x2a) & 7" (pointer_expression "*(byte *)((int)param_4 + 0x2a)" (* "*") (cast_expression "(byte *)((int)param_4 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_4 + 0x2a)" (( "(") (binary_expression "(int)param_4 + 0x2a" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;\n              ppuStack_90 = (undefined **)pcVar10;\n                    \n              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);\n            }" ({ "{") (labeled_statement "LAB_001cd065:\n              ppuStack_94 = local_5c + -0x3b990;" (statement_identifier "LAB_001cd065") (: ":") (expression_statement "ppuStack_94 = local_5c + -0x3b990;" (assignment_expression "ppuStack_94 = local_5c + -0x3b990" (identifier "ppuStack_94") (= "=") (binary_expression "local_5c + -0x3b990" (identifier "local_5c") (+ "+") (number_literal "-0x3b990"))) (; ";"))) (expression_statement "ppuStack_90 = (undefined **)pcVar10;" (assignment_expression "ppuStack_90 = (undefined **)pcVar10" (identifier "ppuStack_90") (= "=") (cast_expression "(undefined **)pcVar10" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pcVar10"))) (; ";")) (expression_statement "FUN_00069d00((int)local_5c + -0x107dd3,0xa1);" (call_expression "FUN_00069d00((int)local_5c + -0x107dd3,0xa1)" (identifier "FUN_00069d00") (argument_list "((int)local_5c + -0x107dd3,0xa1)" (( "(") (binary_expression "(int)local_5c + -0x107dd3" (cast_expression "(int)local_5c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_5c")) (+ "+") (number_literal "-0x107dd3")) (, ",") (number_literal "0xa1") () ")"))) (; ";")) (} "}"))) (expression_statement "local_34 = (undefined4 *)param_4[2];" (assignment_expression "local_34 = (undefined4 *)param_4[2]" (identifier "local_34") (= "=") (cast_expression "(undefined4 *)param_4[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_4[2]" (identifier "param_4") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "local_2c = param_4[0xc];" (assignment_expression "local_2c = param_4[0xc]" (identifier "local_2c") (= "=") (subscript_expression "param_4[0xc]" (identifier "param_4") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (expression_statement "local_30 = local_6c;" (assignment_expression "local_30 = local_6c" (identifier "local_30") (= "=") (identifier "local_6c")) (; ";")) (expression_statement "local_28 = param_4[0xd];" (assignment_expression "local_28 = param_4[0xd]" (identifier "local_28") (= "=") (subscript_expression "param_4[0xd]" (identifier "param_4") ([ "[") (number_literal "0xd") (] "]"))) (; ";")) (expression_statement "ppuStack_90 = param_3;" (assignment_expression "ppuStack_90 = param_3" (identifier "ppuStack_90") (= "=") (identifier "param_3")) (; ";")) (expression_statement "ppuStack_94 = param_3;" (assignment_expression "ppuStack_94 = param_3" (identifier "ppuStack_94") (= "=") (identifier "param_3")) (; ";")) (expression_statement "local_64 = &local_4c;" (assignment_expression "local_64 = &local_4c" (identifier "local_64") (= "=") (pointer_expression "&local_4c" (& "&") (identifier "local_4c"))) (; ";")) (expression_statement "local_4c = pcVar10;" (assignment_expression "local_4c = pcVar10" (identifier "local_4c") (= "=") (identifier "pcVar10")) (; ";")) (expression_statement "local_48 = FUN_001cace0(param_3 + 0x47,local_64);" (assignment_expression "local_48 = FUN_001cace0(param_3 + 0x47,local_64)" (identifier "local_48") (= "=") (call_expression "FUN_001cace0(param_3 + 0x47,local_64)" (identifier "FUN_001cace0") (argument_list "(param_3 + 0x47,local_64)" (( "(") (binary_expression "param_3 + 0x47" (identifier "param_3") (+ "+") (number_literal "0x47")) (, ",") (identifier "local_64") () ")")))) (; ";")) (expression_statement "local_6c = local_54;" (assignment_expression "local_6c = local_54" (identifier "local_6c") (= "=") (identifier "local_54")) (; ";")) (expression_statement "local_78 = &local_48;" (assignment_expression "local_78 = &local_48" (identifier "local_78") (= "=") (pointer_expression "&local_48" (& "&") (identifier "local_48"))) (; ";")) (expression_statement "FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1);" (call_expression "FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1)" (identifier "FUN_001cb6d0") (argument_list "(local_6c,local_48,local_70,local_78,0,1)" (( "(") (identifier "local_6c") (, ",") (identifier "local_48") (, ",") (identifier "local_70") (, ",") (identifier "local_78") (, ",") (number_literal "0") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "local_4c = (char *)*param_4;" (assignment_expression "local_4c = (char *)*param_4" (identifier "local_4c") (= "=") (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (; ";")) (expression_statement "local_48 = FUN_001cace0(param_3 + 0x47,local_64);" (assignment_expression "local_48 = FUN_001cace0(param_3 + 0x47,local_64)" (identifier "local_48") (= "=") (call_expression "FUN_001cace0(param_3 + 0x47,local_64)" (identifier "FUN_001cace0") (argument_list "(param_3 + 0x47,local_64)" (( "(") (binary_expression "param_3 + 0x47" (identifier "param_3") (+ "+") (number_literal "0x47")) (, ",") (identifier "local_64") () ")")))) (; ";")) (expression_statement "FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1);" (call_expression "FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1)" (identifier "FUN_001cb6d0") (argument_list "(local_6c,local_48,local_74,local_78,0,1)" (( "(") (identifier "local_6c") (, ",") (identifier "local_48") (, ",") (identifier "local_74") (, ",") (identifier "local_78") (, ",") (number_literal "0") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "pppuVar15 = &ppuStack_94;" (assignment_expression "pppuVar15 = &ppuStack_94" (identifier "pppuVar15") (= "=") (pointer_expression "&ppuStack_94" (& "&") (identifier "ppuStack_94"))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}")))) (labeled_statement "LAB_001cc978:\n  iVar11 = *param_9;" (statement_identifier "LAB_001cc978") (: ":") (expression_statement "iVar11 = *param_9;" (assignment_expression "iVar11 = *param_9" (identifier "iVar11") (= "=") (pointer_expression "*param_9" (* "*") (identifier "param_9"))) (; ";"))) (expression_statement "*(int **)((int)pppuVar15 + -0x10) = param_9;" (assignment_expression "*(int **)((int)pppuVar15 + -0x10) = param_9" (pointer_expression "*(int **)((int)pppuVar15 + -0x10)" (* "*") (cast_expression "(int **)((int)pppuVar15 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x10)" (( "(") (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "param_9")) (; ";")) (expression_statement "pcVar3 = *(code **)(iVar11 + 0x14);" (assignment_expression "pcVar3 = *(code **)(iVar11 + 0x14)" (identifier "pcVar3") (= "=") (pointer_expression "*(code **)(iVar11 + 0x14)" (* "*") (cast_expression "(code **)(iVar11 + 0x14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + 0x14)" (( "(") (binary_expression "iVar11 + 0x14" (identifier "iVar11") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x1cc981;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x1cc981" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x14)" (( "(") (binary_expression "(int)pppuVar15 + -0x14" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1cc981")) (; ";")) (expression_statement "iVar11 = (*pcVar3)();" (assignment_expression "iVar11 = (*pcVar3)()" (identifier "iVar11") (= "=") (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" (( "(") (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar11 == 0) {\n    bVar8 = *(byte *)(*param_5 + 4);\n  }\n  else {\n    bVar8 = *(byte *)(param_4 + 10);\n  }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    bVar8 = *(byte *)(*param_5 + 4);\n  }" ({ "{") (expression_statement "bVar8 = *(byte *)(*param_5 + 4);" (assignment_expression "bVar8 = *(byte *)(*param_5 + 4)" (identifier "bVar8") (= "=") (pointer_expression "*(byte *)(*param_5 + 4)" (* "*") (cast_expression "(byte *)(*param_5 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_5 + 4)" (( "(") (binary_expression "*param_5 + 4" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    bVar8 = *(byte *)(param_4 + 10);\n  }" (else "else") (compound_statement "{\n    bVar8 = *(byte *)(param_4 + 10);\n  }" ({ "{") (expression_statement "bVar8 = *(byte *)(param_4 + 10);" (assignment_expression "bVar8 = *(byte *)(param_4 + 10)" (identifier "bVar8") (= "=") (pointer_expression "*(byte *)(param_4 + 10)" (* "*") (cast_expression "(byte *)(param_4 + 10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 10)" (( "(") (binary_expression "param_4 + 10" (identifier "param_4") (+ "+") (number_literal "10")) () ")"))))) (; ";")) (} "}")))) (expression_statement "local_6c = (undefined1 *)(local_58 & 0xff);" (assignment_expression "local_6c = (undefined1 *)(local_58 & 0xff)" (identifier "local_6c") (= "=") (cast_expression "(undefined1 *)(local_58 & 0xff)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_58 & 0xff)" (( "(") (binary_expression "local_58 & 0xff" (identifier "local_58") (& "&") (number_literal "0xff")) () ")")))) (; ";")) (expression_statement "*(undefined1 **)((int)pppuVar15 + -0x10) = local_6c;" (assignment_expression "*(undefined1 **)((int)pppuVar15 + -0x10) = local_6c" (pointer_expression "*(undefined1 **)((int)pppuVar15 + -0x10)" (* "*") (cast_expression "(undefined1 **)((int)pppuVar15 + -0x10)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x10)" (( "(") (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_6c")) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x1cc9b9;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x1cc9b9" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x14)" (( "(") (binary_expression "(int)pppuVar15 + -0x14" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1cc9b9")) (; ";")) (expression_statement "uVar12 = FUN_001c9700();" (assignment_expression "uVar12 = FUN_001c9700()" (identifier "uVar12") (= "=") (call_expression "FUN_001c9700()" (identifier "FUN_001c9700") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_58 = param_4[0xe];" (assignment_expression "local_58 = param_4[0xe]" (identifier "local_58") (= "=") (subscript_expression "param_4[0xe]" (identifier "param_4") ([ "[") (number_literal "0xe") (] "]"))) (; ";")) (expression_statement "local_64 = (char **)param_4[0xf];" (assignment_expression "local_64 = (char **)param_4[0xf]" (identifier "local_64") (= "=") (cast_expression "(char **)param_4[0xf]" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "param_4[0xf]" (identifier "param_4") ([ "[") (number_literal "0xf") (] "]")))) (; ";")) (expression_statement "*(uint *)((int)pppuVar15 + -4) = local_68 & 0xff;" (assignment_expression "*(uint *)((int)pppuVar15 + -4) = local_68 & 0xff" (pointer_expression "*(uint *)((int)pppuVar15 + -4)" (* "*") (cast_expression "(uint *)((int)pppuVar15 + -4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + -4)" (( "(") (binary_expression "(int)pppuVar15 + -4" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (binary_expression "local_68 & 0xff" (identifier "local_68") (& "&") (number_literal "0xff"))) (; ";")) (expression_statement "*(undefined4 ***)((int)pppuVar15 + -8) = local_74;" (assignment_expression "*(undefined4 ***)((int)pppuVar15 + -8) = local_74" (pointer_expression "*(undefined4 ***)((int)pppuVar15 + -8)" (* "*") (cast_expression "(undefined4 ***)((int)pppuVar15 + -8)" (( "(") (type_descriptor "undefined4 ***" (type_identifier "undefined4") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)pppuVar15 + -8)" (( "(") (binary_expression "(int)pppuVar15 + -8" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "local_74")) (; ";")) (expression_statement "*(int ***)((int)pppuVar15 + -0xc) = local_70;" (assignment_expression "*(int ***)((int)pppuVar15 + -0xc) = local_70" (pointer_expression "*(int ***)((int)pppuVar15 + -0xc)" (* "*") (cast_expression "(int ***)((int)pppuVar15 + -0xc)" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)pppuVar15 + -0xc)" (( "(") (binary_expression "(int)pppuVar15 + -0xc" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_70")) (; ";")) (expression_statement "*(int **)((int)pppuVar15 + -0x10) = param_9;" (assignment_expression "*(int **)((int)pppuVar15 + -0x10) = param_9" (pointer_expression "*(int **)((int)pppuVar15 + -0x10)" (* "*") (cast_expression "(int **)((int)pppuVar15 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x10)" (( "(") (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "param_9")) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x14) = 0;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x14) = 0" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x14)" (( "(") (binary_expression "(int)pppuVar15 + -0x14" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(uint *)((int)pppuVar15 + -0x18) = bVar8 & 0xf;" (assignment_expression "*(uint *)((int)pppuVar15 + -0x18) = bVar8 & 0xf" (pointer_expression "*(uint *)((int)pppuVar15 + -0x18)" (* "*") (cast_expression "(uint *)((int)pppuVar15 + -0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x18)" (( "(") (binary_expression "(int)pppuVar15 + -0x18" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (binary_expression "bVar8 & 0xf" (identifier "bVar8") (& "&") (number_literal "0xf"))) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x1c) = uVar12;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x1c) = uVar12" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x1c)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar15 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x1c)" (( "(") (binary_expression "(int)pppuVar15 + -0x1c" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "*(undefined4 **)((int)pppuVar15 + -0x20) = param_4;" (assignment_expression "*(undefined4 **)((int)pppuVar15 + -0x20) = param_4" (pointer_expression "*(undefined4 **)((int)pppuVar15 + -0x20)" (* "*") (cast_expression "(undefined4 **)((int)pppuVar15 + -0x20)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x20)" (( "(") (binary_expression "(int)pppuVar15 + -0x20" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x24) = 0x1cc9de;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x24) = 0x1cc9de" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x24)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar15 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x24)" (( "(") (binary_expression "(int)pppuVar15 + -0x24" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x1cc9de")) (; ";")) (expression_statement "cVar7 = FUN_001c9b30();" (assignment_expression "cVar7 = FUN_001c9b30()" (identifier "cVar7") (= "=") (call_expression "FUN_001c9b30()" (identifier "FUN_001c9b30") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (cVar7 == '\0') {\n    iVar11 = *param_5;\n    if ((char)local_44 != '\0') {\n      uVar4 = *(uint *)(iVar11 + 0x10);\n      ppcVar5 = *(char ***)(iVar11 + 0x14);\n      if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)) {\n        param_4[0xf] = ppcVar5;\n        param_4[0xe] = uVar4;\n      }\n      local_68 = *(uint *)(iVar11 + 8);\n      uVar4 = *(uint *)(iVar11 + 0xc);\n      if ((uint)param_4[0xd] < uVar4 || param_4[0xd] - uVar4 < (uint)((uint)param_4[0xc] < local_68)\n         ) {\n        param_4[0xd] = uVar4;\n        param_4[0xc] = local_68;\n      }\n    }\n    if ((char)local_34 != '\0') {\n      if (((*(byte *)(param_4 + 0xb) & 1) == 0) || ((*(byte *)(param_4 + 0xb) & 2) != 0)) {\n        *(byte *)(param_4 + 0xb) =\n             *(byte *)(param_4 + 0xb) & 0xfd | ((int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2) * '\x02'\n             | 1;\n      }\n    }\n    bVar8 = *(byte *)(iVar11 + 5) & 3;\n    if ((*(byte *)(iVar11 + 5) & 3) != 0) {\n      bVar1 = *(byte *)((int)param_4 + 0x29);\n      if (((bVar1 & 3) == 0) || (bVar8 < (bVar1 & 3))) {\n        *(byte *)((int)param_4 + 0x29) = bVar8 | bVar1 & 0xfc;\n      }\n    }\n  }\n  else {\n    uVar4 = param_4[0xc];\n    local_70 = (int **)CONCAT31(local_70._1_3_,*(byte *)(param_4 + 10) >> 4);\n    local_68 = param_4[0xd];\n    *(undefined ***)((int)pppuVar15 + -8) = param_10;\n    *(int **)((int)pppuVar15 + -0xc) = param_9;\n    *(undefined1 **)((int)pppuVar15 + -0x10) = local_6c;\n    *(undefined1 **)((int)pppuVar15 + -0x14) = param_6;\n    *(int **)((int)pppuVar15 + -0x18) = param_5;\n    *(undefined4 **)((int)pppuVar15 + -0x1c) = param_4;\n    *(undefined ***)((int)pppuVar15 + -0x20) = param_3;\n    *(undefined4 *)((int)pppuVar15 + -0x24) = 0x1cce64;\n    FUN_001cb040();\n    if ((char)local_44 != '\0') {\n      if ((char **)param_4[0xf] < local_64 ||\n          (uint)((int)param_4[0xf] - (int)local_64) < (uint)((uint)param_4[0xe] < local_58)) {\n        param_4[0xf] = local_64;\n        param_4[0xe] = local_58;\n      }\n      if ((uint)param_4[0xd] < local_68 ||\n          param_4[0xd] - local_68 < (uint)((uint)param_4[0xc] < uVar4)) {\n        param_4[0xc] = uVar4;\n        param_4[0xd] = local_68;\n      }\n    }\n    if (((char)local_34 != '\0') &&\n       (((*(byte *)(param_4 + 0xb) & 1) == 0 || ((*(byte *)(param_4 + 0xb) & 2) != 0)))) {\n      *(byte *)(param_4 + 0xb) =\n           *(byte *)(param_4 + 0xb) & 0xfd | ((char)local_70 == '\x02') * '\x02' | 1;\n    }\n  }" (if "if") (parenthesized_expression "(cVar7 == '\0')" (( "(") (binary_expression "cVar7 == '\0'" (identifier "cVar7") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    iVar11 = *param_5;\n    if ((char)local_44 != '\0') {\n      uVar4 = *(uint *)(iVar11 + 0x10);\n      ppcVar5 = *(char ***)(iVar11 + 0x14);\n      if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)) {\n        param_4[0xf] = ppcVar5;\n        param_4[0xe] = uVar4;\n      }\n      local_68 = *(uint *)(iVar11 + 8);\n      uVar4 = *(uint *)(iVar11 + 0xc);\n      if ((uint)param_4[0xd] < uVar4 || param_4[0xd] - uVar4 < (uint)((uint)param_4[0xc] < local_68)\n         ) {\n        param_4[0xd] = uVar4;\n        param_4[0xc] = local_68;\n      }\n    }\n    if ((char)local_34 != '\0') {\n      if (((*(byte *)(param_4 + 0xb) & 1) == 0) || ((*(byte *)(param_4 + 0xb) & 2) != 0)) {\n        *(byte *)(param_4 + 0xb) =\n             *(byte *)(param_4 + 0xb) & 0xfd | ((int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2) * '\x02'\n             | 1;\n      }\n    }\n    bVar8 = *(byte *)(iVar11 + 5) & 3;\n    if ((*(byte *)(iVar11 + 5) & 3) != 0) {\n      bVar1 = *(byte *)((int)param_4 + 0x29);\n      if (((bVar1 & 3) == 0) || (bVar8 < (bVar1 & 3))) {\n        *(byte *)((int)param_4 + 0x29) = bVar8 | bVar1 & 0xfc;\n      }\n    }\n  }" ({ "{") (expression_statement "iVar11 = *param_5;" (assignment_expression "iVar11 = *param_5" (identifier "iVar11") (= "=") (pointer_expression "*param_5" (* "*") (identifier "param_5"))) (; ";")) (if_statement "if ((char)local_44 != '\0') {\n      uVar4 = *(uint *)(iVar11 + 0x10);\n      ppcVar5 = *(char ***)(iVar11 + 0x14);\n      if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)) {\n        param_4[0xf] = ppcVar5;\n        param_4[0xe] = uVar4;\n      }\n      local_68 = *(uint *)(iVar11 + 8);\n      uVar4 = *(uint *)(iVar11 + 0xc);\n      if ((uint)param_4[0xd] < uVar4 || param_4[0xd] - uVar4 < (uint)((uint)param_4[0xc] < local_68)\n         ) {\n        param_4[0xd] = uVar4;\n        param_4[0xc] = local_68;\n      }\n    }" (if "if") (parenthesized_expression "((char)local_44 != '\0')" (( "(") (binary_expression "(char)local_44 != '\0'" (cast_expression "(char)local_44" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_44")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar4 = *(uint *)(iVar11 + 0x10);\n      ppcVar5 = *(char ***)(iVar11 + 0x14);\n      if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)) {\n        param_4[0xf] = ppcVar5;\n        param_4[0xe] = uVar4;\n      }\n      local_68 = *(uint *)(iVar11 + 8);\n      uVar4 = *(uint *)(iVar11 + 0xc);\n      if ((uint)param_4[0xd] < uVar4 || param_4[0xd] - uVar4 < (uint)((uint)param_4[0xc] < local_68)\n         ) {\n        param_4[0xd] = uVar4;\n        param_4[0xc] = local_68;\n      }\n    }" ({ "{") (expression_statement "uVar4 = *(uint *)(iVar11 + 0x10);" (assignment_expression "uVar4 = *(uint *)(iVar11 + 0x10)" (identifier "uVar4") (= "=") (pointer_expression "*(uint *)(iVar11 + 0x10)" (* "*") (cast_expression "(uint *)(iVar11 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x10)" (( "(") (binary_expression "iVar11 + 0x10" (identifier "iVar11") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "ppcVar5 = *(char ***)(iVar11 + 0x14);" (assignment_expression "ppcVar5 = *(char ***)(iVar11 + 0x14)" (identifier "ppcVar5") (= "=") (pointer_expression "*(char ***)(iVar11 + 0x14)" (* "*") (cast_expression "(char ***)(iVar11 + 0x14)" (( "(") (type_descriptor "char ***" (primitive_type "char") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(iVar11 + 0x14)" (( "(") (binary_expression "iVar11 + 0x14" (identifier "iVar11") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)) {\n        param_4[0xf] = ppcVar5;\n        param_4[0xe] = uVar4;\n      }" (if "if") (parenthesized_expression "(local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4))" (( "(") (binary_expression "local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)" (binary_expression "local_64 < ppcVar5" (identifier "local_64") (< "<") (identifier "ppcVar5")) (|| "||") (binary_expression "(uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)" (call_expression "(uint)((int)local_64 - (int)ppcVar5)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)local_64 - (int)ppcVar5)" (( "(") (binary_expression "(int)local_64 - (int)ppcVar5" (cast_expression "(int)local_64" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_64")) (- "-") (cast_expression "(int)ppcVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar5"))) () ")"))) (< "<") (call_expression "(uint)(local_58 < uVar4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_58 < uVar4)" (( "(") (binary_expression "local_58 < uVar4" (identifier "local_58") (< "<") (identifier "uVar4")) () ")"))))) () ")")) (compound_statement "{\n        param_4[0xf] = ppcVar5;\n        param_4[0xe] = uVar4;\n      }" ({ "{") (expression_statement "param_4[0xf] = ppcVar5;" (assignment_expression "param_4[0xf] = ppcVar5" (subscript_expression "param_4[0xf]" (identifier "param_4") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "ppcVar5")) (; ";")) (expression_statement "param_4[0xe] = uVar4;" (assignment_expression "param_4[0xe] = uVar4" (subscript_expression "param_4[0xe]" (identifier "param_4") ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (} "}"))) (expression_statement "local_68 = *(uint *)(iVar11 + 8);" (assignment_expression "local_68 = *(uint *)(iVar11 + 8)" (identifier "local_68") (= "=") (pointer_expression "*(uint *)(iVar11 + 8)" (* "*") (cast_expression "(uint *)(iVar11 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 8)" (( "(") (binary_expression "iVar11 + 8" (identifier "iVar11") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar4 = *(uint *)(iVar11 + 0xc);" (assignment_expression "uVar4 = *(uint *)(iVar11 + 0xc)" (identifier "uVar4") (= "=") (pointer_expression "*(uint *)(iVar11 + 0xc)" (* "*") (cast_expression "(uint *)(iVar11 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xc)" (( "(") (binary_expression "iVar11 + 0xc" (identifier "iVar11") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if ((uint)param_4[0xd] < uVar4 || param_4[0xd] - uVar4 < (uint)((uint)param_4[0xc] < local_68)\n         ) {\n        param_4[0xd] = uVar4;\n        param_4[0xc] = local_68;\n      }" (if "if") (parenthesized_expression "((uint)param_4[0xd] < uVar4 || param_4[0xd] - uVar4 < (uint)((uint)param_4[0xc] < local_68)\n         )" (( "(") (binary_expression "(uint)param_4[0xd] < uVar4 || param_4[0xd] - uVar4 < (uint)((uint)param_4[0xc] < local_68)" (binary_expression "(uint)param_4[0xd] < uVar4" (cast_expression "(uint)param_4[0xd]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_4[0xd]" (identifier "param_4") ([ "[") (number_literal "0xd") (] "]"))) (< "<") (identifier "uVar4")) (|| "||") (binary_expression "param_4[0xd] - uVar4 < (uint)((uint)param_4[0xc] < local_68)" (binary_expression "param_4[0xd] - uVar4" (subscript_expression "param_4[0xd]" (identifier "param_4") ([ "[") (number_literal "0xd") (] "]")) (- "-") (identifier "uVar4")) (< "<") (call_expression "(uint)((uint)param_4[0xc] < local_68)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uint)param_4[0xc] < local_68)" (( "(") (binary_expression "(uint)param_4[0xc] < local_68" (cast_expression "(uint)param_4[0xc]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_4[0xc]" (identifier "param_4") ([ "[") (number_literal "0xc") (] "]"))) (< "<") (identifier "local_68")) () ")"))))) () ")")) (compound_statement "{\n        param_4[0xd] = uVar4;\n        param_4[0xc] = local_68;\n      }" ({ "{") (expression_statement "param_4[0xd] = uVar4;" (assignment_expression "param_4[0xd] = uVar4" (subscript_expression "param_4[0xd]" (identifier "param_4") ([ "[") (number_literal "0xd") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "param_4[0xc] = local_68;" (assignment_expression "param_4[0xc] = local_68" (subscript_expression "param_4[0xc]" (identifier "param_4") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "local_68")) (; ";")) (} "}"))) (} "}"))) (if_statement "if ((char)local_34 != '\0') {\n      if (((*(byte *)(param_4 + 0xb) & 1) == 0) || ((*(byte *)(param_4 + 0xb) & 2) != 0)) {\n        *(byte *)(param_4 + 0xb) =\n             *(byte *)(param_4 + 0xb) & 0xfd | ((int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2) * '\x02'\n             | 1;\n      }\n    }" (if "if") (parenthesized_expression "((char)local_34 != '\0')" (( "(") (binary_expression "(char)local_34 != '\0'" (cast_expression "(char)local_34" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_34")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      if (((*(byte *)(param_4 + 0xb) & 1) == 0) || ((*(byte *)(param_4 + 0xb) & 2) != 0)) {\n        *(byte *)(param_4 + 0xb) =\n             *(byte *)(param_4 + 0xb) & 0xfd | ((int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2) * '\x02'\n             | 1;\n      }\n    }" ({ "{") (if_statement "if (((*(byte *)(param_4 + 0xb) & 1) == 0) || ((*(byte *)(param_4 + 0xb) & 2) != 0)) {\n        *(byte *)(param_4 + 0xb) =\n             *(byte *)(param_4 + 0xb) & 0xfd | ((int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2) * '\x02'\n             | 1;\n      }" (if "if") (parenthesized_expression "(((*(byte *)(param_4 + 0xb) & 1) == 0) || ((*(byte *)(param_4 + 0xb) & 2) != 0))" (( "(") (binary_expression "((*(byte *)(param_4 + 0xb) & 1) == 0) || ((*(byte *)(param_4 + 0xb) & 2) != 0)" (parenthesized_expression "((*(byte *)(param_4 + 0xb) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(param_4 + 0xb) & 1) == 0" (parenthesized_expression "(*(byte *)(param_4 + 0xb) & 1)" (( "(") (binary_expression "*(byte *)(param_4 + 0xb) & 1" (pointer_expression "*(byte *)(param_4 + 0xb)" (* "*") (cast_expression "(byte *)(param_4 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0xb)" (( "(") (binary_expression "param_4 + 0xb" (identifier "param_4") (+ "+") (number_literal "0xb")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(param_4 + 0xb) & 2) != 0)" (( "(") (binary_expression "(*(byte *)(param_4 + 0xb) & 2) != 0" (parenthesized_expression "(*(byte *)(param_4 + 0xb) & 2)" (( "(") (binary_expression "*(byte *)(param_4 + 0xb) & 2" (pointer_expression "*(byte *)(param_4 + 0xb)" (* "*") (cast_expression "(byte *)(param_4 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0xb)" (( "(") (binary_expression "param_4 + 0xb" (identifier "param_4") (+ "+") (number_literal "0xb")) () ")")))) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        *(byte *)(param_4 + 0xb) =\n             *(byte *)(param_4 + 0xb) & 0xfd | ((int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2) * '\x02'\n             | 1;\n      }" ({ "{") (expression_statement "*(byte *)(param_4 + 0xb) =\n             *(byte *)(param_4 + 0xb) & 0xfd | ((int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2) * '\x02'\n             | 1;" (assignment_expression "*(byte *)(param_4 + 0xb) =\n             *(byte *)(param_4 + 0xb) & 0xfd | ((int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2) * '\x02'\n             | 1" (pointer_expression "*(byte *)(param_4 + 0xb)" (* "*") (cast_expression "(byte *)(param_4 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0xb)" (( "(") (binary_expression "param_4 + 0xb" (identifier "param_4") (+ "+") (number_literal "0xb")) () ")")))) (= "=") (binary_expression "*(byte *)(param_4 + 0xb) & 0xfd | ((int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2) * '\x02'\n             | 1" (binary_expression "*(byte *)(param_4 + 0xb) & 0xfd | ((int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2) * '\x02'" (binary_expression "*(byte *)(param_4 + 0xb) & 0xfd" (pointer_expression "*(byte *)(param_4 + 0xb)" (* "*") (cast_expression "(byte *)(param_4 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0xb)" (( "(") (binary_expression "param_4 + 0xb" (identifier "param_4") (+ "+") (number_literal "0xb")) () ")")))) (& "&") (number_literal "0xfd")) (| "|") (binary_expression "((int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2) * '\x02'" (parenthesized_expression "((int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2)" (( "(") (binary_expression "(int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2" (binary_expression "(int)(uint)*(byte *)(iVar11 + 4) >> 4" (binary_expression "(int)(uint)*(byte *)(iVar11 + 4)" (cast_expression "(int)(uint)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (cast_expression "(byte *)(iVar11 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 4)" (( "(") (binary_expression "iVar11 + 4" (identifier "iVar11") (+ "+") (number_literal "4")) () ")")))) (>> ">>") (number_literal "4")) (== "==") (number_literal "2")) () ")")) (* "*") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'")))) (| "|") (number_literal "1"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "bVar8 = *(byte *)(iVar11 + 5) & 3;" (assignment_expression "bVar8 = *(byte *)(iVar11 + 5) & 3" (identifier "bVar8") (= "=") (binary_expression "*(byte *)(iVar11 + 5) & 3" (pointer_expression "*(byte *)(iVar11 + 5)" (* "*") (cast_expression "(byte *)(iVar11 + 5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 5)" (( "(") (binary_expression "iVar11 + 5" (identifier "iVar11") (+ "+") (number_literal "5")) () ")")))) (& "&") (number_literal "3"))) (; ";")) (if_statement "if ((*(byte *)(iVar11 + 5) & 3) != 0) {\n      bVar1 = *(byte *)((int)param_4 + 0x29);\n      if (((bVar1 & 3) == 0) || (bVar8 < (bVar1 & 3))) {\n        *(byte *)((int)param_4 + 0x29) = bVar8 | bVar1 & 0xfc;\n      }\n    }" (if "if") (parenthesized_expression "((*(byte *)(iVar11 + 5) & 3) != 0)" (( "(") (binary_expression "(*(byte *)(iVar11 + 5) & 3) != 0" (parenthesized_expression "(*(byte *)(iVar11 + 5) & 3)" (( "(") (binary_expression "*(byte *)(iVar11 + 5) & 3" (pointer_expression "*(byte *)(iVar11 + 5)" (* "*") (cast_expression "(byte *)(iVar11 + 5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 5)" (( "(") (binary_expression "iVar11 + 5" (identifier "iVar11") (+ "+") (number_literal "5")) () ")")))) (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      bVar1 = *(byte *)((int)param_4 + 0x29);\n      if (((bVar1 & 3) == 0) || (bVar8 < (bVar1 & 3))) {\n        *(byte *)((int)param_4 + 0x29) = bVar8 | bVar1 & 0xfc;\n      }\n    }" ({ "{") (expression_statement "bVar1 = *(byte *)((int)param_4 + 0x29);" (assignment_expression "bVar1 = *(byte *)((int)param_4 + 0x29)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)((int)param_4 + 0x29)" (* "*") (cast_expression "(byte *)((int)param_4 + 0x29)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_4 + 0x29)" (( "(") (binary_expression "(int)param_4 + 0x29" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (+ "+") (number_literal "0x29")) () ")"))))) (; ";")) (if_statement "if (((bVar1 & 3) == 0) || (bVar8 < (bVar1 & 3))) {\n        *(byte *)((int)param_4 + 0x29) = bVar8 | bVar1 & 0xfc;\n      }" (if "if") (parenthesized_expression "(((bVar1 & 3) == 0) || (bVar8 < (bVar1 & 3)))" (( "(") (binary_expression "((bVar1 & 3) == 0) || (bVar8 < (bVar1 & 3))" (parenthesized_expression "((bVar1 & 3) == 0)" (( "(") (binary_expression "(bVar1 & 3) == 0" (parenthesized_expression "(bVar1 & 3)" (( "(") (binary_expression "bVar1 & 3" (identifier "bVar1") (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(bVar8 < (bVar1 & 3))" (( "(") (binary_expression "bVar8 < (bVar1 & 3)" (identifier "bVar8") (< "<") (parenthesized_expression "(bVar1 & 3)" (( "(") (binary_expression "bVar1 & 3" (identifier "bVar1") (& "&") (number_literal "3")) () ")"))) () ")"))) () ")")) (compound_statement "{\n        *(byte *)((int)param_4 + 0x29) = bVar8 | bVar1 & 0xfc;\n      }" ({ "{") (expression_statement "*(byte *)((int)param_4 + 0x29) = bVar8 | bVar1 & 0xfc;" (assignment_expression "*(byte *)((int)param_4 + 0x29) = bVar8 | bVar1 & 0xfc" (pointer_expression "*(byte *)((int)param_4 + 0x29)" (* "*") (cast_expression "(byte *)((int)param_4 + 0x29)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_4 + 0x29)" (( "(") (binary_expression "(int)param_4 + 0x29" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (+ "+") (number_literal "0x29")) () ")")))) (= "=") (binary_expression "bVar8 | bVar1 & 0xfc" (identifier "bVar8") (| "|") (binary_expression "bVar1 & 0xfc" (identifier "bVar1") (& "&") (number_literal "0xfc")))) (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n    uVar4 = param_4[0xc];\n    local_70 = (int **)CONCAT31(local_70._1_3_,*(byte *)(param_4 + 10) >> 4);\n    local_68 = param_4[0xd];\n    *(undefined ***)((int)pppuVar15 + -8) = param_10;\n    *(int **)((int)pppuVar15 + -0xc) = param_9;\n    *(undefined1 **)((int)pppuVar15 + -0x10) = local_6c;\n    *(undefined1 **)((int)pppuVar15 + -0x14) = param_6;\n    *(int **)((int)pppuVar15 + -0x18) = param_5;\n    *(undefined4 **)((int)pppuVar15 + -0x1c) = param_4;\n    *(undefined ***)((int)pppuVar15 + -0x20) = param_3;\n    *(undefined4 *)((int)pppuVar15 + -0x24) = 0x1cce64;\n    FUN_001cb040();\n    if ((char)local_44 != '\0') {\n      if ((char **)param_4[0xf] < local_64 ||\n          (uint)((int)param_4[0xf] - (int)local_64) < (uint)((uint)param_4[0xe] < local_58)) {\n        param_4[0xf] = local_64;\n        param_4[0xe] = local_58;\n      }\n      if ((uint)param_4[0xd] < local_68 ||\n          param_4[0xd] - local_68 < (uint)((uint)param_4[0xc] < uVar4)) {\n        param_4[0xc] = uVar4;\n        param_4[0xd] = local_68;\n      }\n    }\n    if (((char)local_34 != '\0') &&\n       (((*(byte *)(param_4 + 0xb) & 1) == 0 || ((*(byte *)(param_4 + 0xb) & 2) != 0)))) {\n      *(byte *)(param_4 + 0xb) =\n           *(byte *)(param_4 + 0xb) & 0xfd | ((char)local_70 == '\x02') * '\x02' | 1;\n    }\n  }" (else "else") (compound_statement "{\n    uVar4 = param_4[0xc];\n    local_70 = (int **)CONCAT31(local_70._1_3_,*(byte *)(param_4 + 10) >> 4);\n    local_68 = param_4[0xd];\n    *(undefined ***)((int)pppuVar15 + -8) = param_10;\n    *(int **)((int)pppuVar15 + -0xc) = param_9;\n    *(undefined1 **)((int)pppuVar15 + -0x10) = local_6c;\n    *(undefined1 **)((int)pppuVar15 + -0x14) = param_6;\n    *(int **)((int)pppuVar15 + -0x18) = param_5;\n    *(undefined4 **)((int)pppuVar15 + -0x1c) = param_4;\n    *(undefined ***)((int)pppuVar15 + -0x20) = param_3;\n    *(undefined4 *)((int)pppuVar15 + -0x24) = 0x1cce64;\n    FUN_001cb040();\n    if ((char)local_44 != '\0') {\n      if ((char **)param_4[0xf] < local_64 ||\n          (uint)((int)param_4[0xf] - (int)local_64) < (uint)((uint)param_4[0xe] < local_58)) {\n        param_4[0xf] = local_64;\n        param_4[0xe] = local_58;\n      }\n      if ((uint)param_4[0xd] < local_68 ||\n          param_4[0xd] - local_68 < (uint)((uint)param_4[0xc] < uVar4)) {\n        param_4[0xc] = uVar4;\n        param_4[0xd] = local_68;\n      }\n    }\n    if (((char)local_34 != '\0') &&\n       (((*(byte *)(param_4 + 0xb) & 1) == 0 || ((*(byte *)(param_4 + 0xb) & 2) != 0)))) {\n      *(byte *)(param_4 + 0xb) =\n           *(byte *)(param_4 + 0xb) & 0xfd | ((char)local_70 == '\x02') * '\x02' | 1;\n    }\n  }" ({ "{") (expression_statement "uVar4 = param_4[0xc];" (assignment_expression "uVar4 = param_4[0xc]" (identifier "uVar4") (= "=") (subscript_expression "param_4[0xc]" (identifier "param_4") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (expression_statement "local_70 = (int **)CONCAT31(local_70._1_3_,*(byte *)(param_4 + 10) >> 4);" (assignment_expression "local_70 = (int **)CONCAT31(local_70._1_3_,*(byte *)(param_4 + 10) >> 4)" (identifier "local_70") (= "=") (cast_expression "(int **)CONCAT31(local_70._1_3_,*(byte *)(param_4 + 10) >> 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (call_expression "CONCAT31(local_70._1_3_,*(byte *)(param_4 + 10) >> 4)" (identifier "CONCAT31") (argument_list "(local_70._1_3_,*(byte *)(param_4 + 10) >> 4)" (( "(") (field_expression "local_70._1_3_" (identifier "local_70") (. ".") (field_identifier "_1_3_")) (, ",") (binary_expression "*(byte *)(param_4 + 10) >> 4" (pointer_expression "*(byte *)(param_4 + 10)" (* "*") (cast_expression "(byte *)(param_4 + 10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 10)" (( "(") (binary_expression "param_4 + 10" (identifier "param_4") (+ "+") (number_literal "10")) () ")")))) (>> ">>") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "local_68 = param_4[0xd];" (assignment_expression "local_68 = param_4[0xd]" (identifier "local_68") (= "=") (subscript_expression "param_4[0xd]" (identifier "param_4") ([ "[") (number_literal "0xd") (] "]"))) (; ";")) (expression_statement "*(undefined ***)((int)pppuVar15 + -8) = param_10;" (assignment_expression "*(undefined ***)((int)pppuVar15 + -8) = param_10" (pointer_expression "*(undefined ***)((int)pppuVar15 + -8)" (* "*") (cast_expression "(undefined ***)((int)pppuVar15 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)pppuVar15 + -8)" (( "(") (binary_expression "(int)pppuVar15 + -8" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "param_10")) (; ";")) (expression_statement "*(int **)((int)pppuVar15 + -0xc) = param_9;" (assignment_expression "*(int **)((int)pppuVar15 + -0xc) = param_9" (pointer_expression "*(int **)((int)pppuVar15 + -0xc)" (* "*") (cast_expression "(int **)((int)pppuVar15 + -0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)pppuVar15 + -0xc)" (( "(") (binary_expression "(int)pppuVar15 + -0xc" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "param_9")) (; ";")) (expression_statement "*(undefined1 **)((int)pppuVar15 + -0x10) = local_6c;" (assignment_expression "*(undefined1 **)((int)pppuVar15 + -0x10) = local_6c" (pointer_expression "*(undefined1 **)((int)pppuVar15 + -0x10)" (* "*") (cast_expression "(undefined1 **)((int)pppuVar15 + -0x10)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x10)" (( "(") (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_6c")) (; ";")) (expression_statement "*(undefined1 **)((int)pppuVar15 + -0x14) = param_6;" (assignment_expression "*(undefined1 **)((int)pppuVar15 + -0x14) = param_6" (pointer_expression "*(undefined1 **)((int)pppuVar15 + -0x14)" (* "*") (cast_expression "(undefined1 **)((int)pppuVar15 + -0x14)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x14)" (( "(") (binary_expression "(int)pppuVar15 + -0x14" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "param_6")) (; ";")) (expression_statement "*(int **)((int)pppuVar15 + -0x18) = param_5;" (assignment_expression "*(int **)((int)pppuVar15 + -0x18) = param_5" (pointer_expression "*(int **)((int)pppuVar15 + -0x18)" (* "*") (cast_expression "(int **)((int)pppuVar15 + -0x18)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x18)" (( "(") (binary_expression "(int)pppuVar15 + -0x18" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "param_5")) (; ";")) (expression_statement "*(undefined4 **)((int)pppuVar15 + -0x1c) = param_4;" (assignment_expression "*(undefined4 **)((int)pppuVar15 + -0x1c) = param_4" (pointer_expression "*(undefined4 **)((int)pppuVar15 + -0x1c)" (* "*") (cast_expression "(undefined4 **)((int)pppuVar15 + -0x1c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x1c)" (( "(") (binary_expression "(int)pppuVar15 + -0x1c" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (expression_statement "*(undefined ***)((int)pppuVar15 + -0x20) = param_3;" (assignment_expression "*(undefined ***)((int)pppuVar15 + -0x20) = param_3" (pointer_expression "*(undefined ***)((int)pppuVar15 + -0x20)" (* "*") (cast_expression "(undefined ***)((int)pppuVar15 + -0x20)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x20)" (( "(") (binary_expression "(int)pppuVar15 + -0x20" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x24) = 0x1cce64;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x24) = 0x1cce64" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x24)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar15 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x24)" (( "(") (binary_expression "(int)pppuVar15 + -0x24" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x1cce64")) (; ";")) (expression_statement "FUN_001cb040();" (call_expression "FUN_001cb040()" (identifier "FUN_001cb040") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if ((char)local_44 != '\0') {\n      if ((char **)param_4[0xf] < local_64 ||\n          (uint)((int)param_4[0xf] - (int)local_64) < (uint)((uint)param_4[0xe] < local_58)) {\n        param_4[0xf] = local_64;\n        param_4[0xe] = local_58;\n      }\n      if ((uint)param_4[0xd] < local_68 ||\n          param_4[0xd] - local_68 < (uint)((uint)param_4[0xc] < uVar4)) {\n        param_4[0xc] = uVar4;\n        param_4[0xd] = local_68;\n      }\n    }" (if "if") (parenthesized_expression "((char)local_44 != '\0')" (( "(") (binary_expression "(char)local_44 != '\0'" (cast_expression "(char)local_44" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_44")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      if ((char **)param_4[0xf] < local_64 ||\n          (uint)((int)param_4[0xf] - (int)local_64) < (uint)((uint)param_4[0xe] < local_58)) {\n        param_4[0xf] = local_64;\n        param_4[0xe] = local_58;\n      }\n      if ((uint)param_4[0xd] < local_68 ||\n          param_4[0xd] - local_68 < (uint)((uint)param_4[0xc] < uVar4)) {\n        param_4[0xc] = uVar4;\n        param_4[0xd] = local_68;\n      }\n    }" ({ "{") (if_statement "if ((char **)param_4[0xf] < local_64 ||\n          (uint)((int)param_4[0xf] - (int)local_64) < (uint)((uint)param_4[0xe] < local_58)) {\n        param_4[0xf] = local_64;\n        param_4[0xe] = local_58;\n      }" (if "if") (parenthesized_expression "((char **)param_4[0xf] < local_64 ||\n          (uint)((int)param_4[0xf] - (int)local_64) < (uint)((uint)param_4[0xe] < local_58))" (( "(") (binary_expression "(char **)param_4[0xf] < local_64 ||\n          (uint)((int)param_4[0xf] - (int)local_64) < (uint)((uint)param_4[0xe] < local_58)" (binary_expression "(char **)param_4[0xf] < local_64" (cast_expression "(char **)param_4[0xf]" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "param_4[0xf]" (identifier "param_4") ([ "[") (number_literal "0xf") (] "]"))) (< "<") (identifier "local_64")) (|| "||") (binary_expression "(uint)((int)param_4[0xf] - (int)local_64) < (uint)((uint)param_4[0xe] < local_58)" (call_expression "(uint)((int)param_4[0xf] - (int)local_64)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)param_4[0xf] - (int)local_64)" (( "(") (binary_expression "(int)param_4[0xf] - (int)local_64" (cast_expression "(int)param_4[0xf]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_4[0xf]" (identifier "param_4") ([ "[") (number_literal "0xf") (] "]"))) (- "-") (cast_expression "(int)local_64" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_64"))) () ")"))) (< "<") (call_expression "(uint)((uint)param_4[0xe] < local_58)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uint)param_4[0xe] < local_58)" (( "(") (binary_expression "(uint)param_4[0xe] < local_58" (cast_expression "(uint)param_4[0xe]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_4[0xe]" (identifier "param_4") ([ "[") (number_literal "0xe") (] "]"))) (< "<") (identifier "local_58")) () ")"))))) () ")")) (compound_statement "{\n        param_4[0xf] = local_64;\n        param_4[0xe] = local_58;\n      }" ({ "{") (expression_statement "param_4[0xf] = local_64;" (assignment_expression "param_4[0xf] = local_64" (subscript_expression "param_4[0xf]" (identifier "param_4") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "local_64")) (; ";")) (expression_statement "param_4[0xe] = local_58;" (assignment_expression "param_4[0xe] = local_58" (subscript_expression "param_4[0xe]" (identifier "param_4") ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "local_58")) (; ";")) (} "}"))) (if_statement "if ((uint)param_4[0xd] < local_68 ||\n          param_4[0xd] - local_68 < (uint)((uint)param_4[0xc] < uVar4)) {\n        param_4[0xc] = uVar4;\n        param_4[0xd] = local_68;\n      }" (if "if") (parenthesized_expression "((uint)param_4[0xd] < local_68 ||\n          param_4[0xd] - local_68 < (uint)((uint)param_4[0xc] < uVar4))" (( "(") (binary_expression "(uint)param_4[0xd] < local_68 ||\n          param_4[0xd] - local_68 < (uint)((uint)param_4[0xc] < uVar4)" (binary_expression "(uint)param_4[0xd] < local_68" (cast_expression "(uint)param_4[0xd]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_4[0xd]" (identifier "param_4") ([ "[") (number_literal "0xd") (] "]"))) (< "<") (identifier "local_68")) (|| "||") (binary_expression "param_4[0xd] - local_68 < (uint)((uint)param_4[0xc] < uVar4)" (binary_expression "param_4[0xd] - local_68" (subscript_expression "param_4[0xd]" (identifier "param_4") ([ "[") (number_literal "0xd") (] "]")) (- "-") (identifier "local_68")) (< "<") (call_expression "(uint)((uint)param_4[0xc] < uVar4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uint)param_4[0xc] < uVar4)" (( "(") (binary_expression "(uint)param_4[0xc] < uVar4" (cast_expression "(uint)param_4[0xc]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_4[0xc]" (identifier "param_4") ([ "[") (number_literal "0xc") (] "]"))) (< "<") (identifier "uVar4")) () ")"))))) () ")")) (compound_statement "{\n        param_4[0xc] = uVar4;\n        param_4[0xd] = local_68;\n      }" ({ "{") (expression_statement "param_4[0xc] = uVar4;" (assignment_expression "param_4[0xc] = uVar4" (subscript_expression "param_4[0xc]" (identifier "param_4") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "param_4[0xd] = local_68;" (assignment_expression "param_4[0xd] = local_68" (subscript_expression "param_4[0xd]" (identifier "param_4") ([ "[") (number_literal "0xd") (] "]")) (= "=") (identifier "local_68")) (; ";")) (} "}"))) (} "}"))) (if_statement "if (((char)local_34 != '\0') &&\n       (((*(byte *)(param_4 + 0xb) & 1) == 0 || ((*(byte *)(param_4 + 0xb) & 2) != 0)))) {\n      *(byte *)(param_4 + 0xb) =\n           *(byte *)(param_4 + 0xb) & 0xfd | ((char)local_70 == '\x02') * '\x02' | 1;\n    }" (if "if") (parenthesized_expression "(((char)local_34 != '\0') &&\n       (((*(byte *)(param_4 + 0xb) & 1) == 0 || ((*(byte *)(param_4 + 0xb) & 2) != 0))))" (( "(") (binary_expression "((char)local_34 != '\0') &&\n       (((*(byte *)(param_4 + 0xb) & 1) == 0 || ((*(byte *)(param_4 + 0xb) & 2) != 0)))" (parenthesized_expression "((char)local_34 != '\0')" (( "(") (binary_expression "(char)local_34 != '\0'" (cast_expression "(char)local_34" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_34")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(((*(byte *)(param_4 + 0xb) & 1) == 0 || ((*(byte *)(param_4 + 0xb) & 2) != 0)))" (( "(") (parenthesized_expression "((*(byte *)(param_4 + 0xb) & 1) == 0 || ((*(byte *)(param_4 + 0xb) & 2) != 0))" (( "(") (binary_expression "(*(byte *)(param_4 + 0xb) & 1) == 0 || ((*(byte *)(param_4 + 0xb) & 2) != 0)" (binary_expression "(*(byte *)(param_4 + 0xb) & 1) == 0" (parenthesized_expression "(*(byte *)(param_4 + 0xb) & 1)" (( "(") (binary_expression "*(byte *)(param_4 + 0xb) & 1" (pointer_expression "*(byte *)(param_4 + 0xb)" (* "*") (cast_expression "(byte *)(param_4 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0xb)" (( "(") (binary_expression "param_4 + 0xb" (identifier "param_4") (+ "+") (number_literal "0xb")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) (|| "||") (parenthesized_expression "((*(byte *)(param_4 + 0xb) & 2) != 0)" (( "(") (binary_expression "(*(byte *)(param_4 + 0xb) & 2) != 0" (parenthesized_expression "(*(byte *)(param_4 + 0xb) & 2)" (( "(") (binary_expression "*(byte *)(param_4 + 0xb) & 2" (pointer_expression "*(byte *)(param_4 + 0xb)" (* "*") (cast_expression "(byte *)(param_4 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0xb)" (( "(") (binary_expression "param_4 + 0xb" (identifier "param_4") (+ "+") (number_literal "0xb")) () ")")))) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n      *(byte *)(param_4 + 0xb) =\n           *(byte *)(param_4 + 0xb) & 0xfd | ((char)local_70 == '\x02') * '\x02' | 1;\n    }" ({ "{") (expression_statement "*(byte *)(param_4 + 0xb) =\n           *(byte *)(param_4 + 0xb) & 0xfd | ((char)local_70 == '\x02') * '\x02' | 1;" (assignment_expression "*(byte *)(param_4 + 0xb) =\n           *(byte *)(param_4 + 0xb) & 0xfd | ((char)local_70 == '\x02') * '\x02' | 1" (pointer_expression "*(byte *)(param_4 + 0xb)" (* "*") (cast_expression "(byte *)(param_4 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0xb)" (( "(") (binary_expression "param_4 + 0xb" (identifier "param_4") (+ "+") (number_literal "0xb")) () ")")))) (= "=") (binary_expression "*(byte *)(param_4 + 0xb) & 0xfd | ((char)local_70 == '\x02') * '\x02' | 1" (binary_expression "*(byte *)(param_4 + 0xb) & 0xfd | ((char)local_70 == '\x02') * '\x02'" (binary_expression "*(byte *)(param_4 + 0xb) & 0xfd" (pointer_expression "*(byte *)(param_4 + 0xb)" (* "*") (cast_expression "(byte *)(param_4 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0xb)" (( "(") (binary_expression "param_4 + 0xb" (identifier "param_4") (+ "+") (number_literal "0xb")) () ")")))) (& "&") (number_literal "0xfd")) (| "|") (binary_expression "((char)local_70 == '\x02') * '\x02'" (parenthesized_expression "((char)local_70 == '\x02')" (( "(") (binary_expression "(char)local_70 == '\x02'" (cast_expression "(char)local_70" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_70")) (== "==") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (* "*") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'")))) (| "|") (number_literal "1"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "bVar8 = *(byte *)((int)param_4 + 0x2a);" (assignment_expression "bVar8 = *(byte *)((int)param_4 + 0x2a)" (identifier "bVar8") (= "=") (pointer_expression "*(byte *)((int)param_4 + 0x2a)" (* "*") (cast_expression "(byte *)((int)param_4 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_4 + 0x2a)" (( "(") (binary_expression "(int)param_4 + 0x2a" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (+ "+") (number_literal "0x2a")) () ")"))))) (; ";")) (expression_statement "puVar9 = (undefined4 *)(uint)bVar8;" (assignment_expression "puVar9 = (undefined4 *)(uint)bVar8" (identifier "puVar9") (= "=") (cast_expression "(undefined4 *)(uint)bVar8" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(uint)bVar8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar8")))) (; ";")) (if_statement "if ((bVar8 & 7) == 0) {\n    bVar1 = *(byte *)(param_4[2] + 0x2c);\n    if ((((bVar1 & 1) != 0) && ((char)bVar8 < '\0')) && ((*(byte *)(param_4 + 0xb) & 2) == 0)) {\n      *(byte *)(param_4[2] + 0x2c) = bVar1 | 2;\n    }\n  }" (if "if") (parenthesized_expression "((bVar8 & 7) == 0)" (( "(") (binary_expression "(bVar8 & 7) == 0" (parenthesized_expression "(bVar8 & 7)" (( "(") (binary_expression "bVar8 & 7" (identifier "bVar8") (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    bVar1 = *(byte *)(param_4[2] + 0x2c);\n    if ((((bVar1 & 1) != 0) && ((char)bVar8 < '\0')) && ((*(byte *)(param_4 + 0xb) & 2) == 0)) {\n      *(byte *)(param_4[2] + 0x2c) = bVar1 | 2;\n    }\n  }" ({ "{") (expression_statement "bVar1 = *(byte *)(param_4[2] + 0x2c);" (assignment_expression "bVar1 = *(byte *)(param_4[2] + 0x2c)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(param_4[2] + 0x2c)" (* "*") (cast_expression "(byte *)(param_4[2] + 0x2c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4[2] + 0x2c)" (( "(") (binary_expression "param_4[2] + 0x2c" (subscript_expression "param_4[2]" (identifier "param_4") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (if_statement "if ((((bVar1 & 1) != 0) && ((char)bVar8 < '\0')) && ((*(byte *)(param_4 + 0xb) & 2) == 0)) {\n      *(byte *)(param_4[2] + 0x2c) = bVar1 | 2;\n    }" (if "if") (parenthesized_expression "((((bVar1 & 1) != 0) && ((char)bVar8 < '\0')) && ((*(byte *)(param_4 + 0xb) & 2) == 0))" (( "(") (binary_expression "(((bVar1 & 1) != 0) && ((char)bVar8 < '\0')) && ((*(byte *)(param_4 + 0xb) & 2) == 0)" (parenthesized_expression "(((bVar1 & 1) != 0) && ((char)bVar8 < '\0'))" (( "(") (binary_expression "((bVar1 & 1) != 0) && ((char)bVar8 < '\0')" (parenthesized_expression "((bVar1 & 1) != 0)" (( "(") (binary_expression "(bVar1 & 1) != 0" (parenthesized_expression "(bVar1 & 1)" (( "(") (binary_expression "bVar1 & 1" (identifier "bVar1") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((char)bVar8 < '\0')" (( "(") (binary_expression "(char)bVar8 < '\0'" (cast_expression "(char)bVar8" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar8")) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(param_4 + 0xb) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(param_4 + 0xb) & 2) == 0" (parenthesized_expression "(*(byte *)(param_4 + 0xb) & 2)" (( "(") (binary_expression "*(byte *)(param_4 + 0xb) & 2" (pointer_expression "*(byte *)(param_4 + 0xb)" (* "*") (cast_expression "(byte *)(param_4 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0xb)" (( "(") (binary_expression "param_4 + 0xb" (identifier "param_4") (+ "+") (number_literal "0xb")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      *(byte *)(param_4[2] + 0x2c) = bVar1 | 2;\n    }" ({ "{") (expression_statement "*(byte *)(param_4[2] + 0x2c) = bVar1 | 2;" (assignment_expression "*(byte *)(param_4[2] + 0x2c) = bVar1 | 2" (pointer_expression "*(byte *)(param_4[2] + 0x2c)" (* "*") (cast_expression "(byte *)(param_4[2] + 0x2c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4[2] + 0x2c)" (( "(") (binary_expression "param_4[2] + 0x2c" (subscript_expression "param_4[2]" (identifier "param_4") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (binary_expression "bVar1 | 2" (identifier "bVar1") (| "|") (number_literal "2"))) (; ";")) (} "}"))) (} "}"))) (if_statement "if ((char)local_44 != '\0') {\n    puVar9 = *(undefined4 **)(*local_60 + 8);\n    if (puVar9 == (undefined4 *)0x0) {\nLAB_001ccb98:\n      *(undefined4 **)((int)pppuVar15 + -4) = puVar9;\n      *(undefined ***)((int)pppuVar15 + -8) = local_5c + -0x3b992;\n      *(undefined4 *)((int)pppuVar15 + -0xc) = 0x5c;\n      *(undefined ***)((int)pppuVar15 + -0x10) = local_5c + -0x41f7c;\n                    \n      *(undefined **)((int)pppuVar15 + -0x14) = &UNK_001ccbb1;\n      FUN_00069d00();\n    }\n    if (*(char *)((int)puVar9 + 0x43e5) != '\0') {\n      uVar4 = *(uint *)(*param_5 + 0x10);\n      ppcVar5 = *(char ***)(*param_5 + 0x14);\n      if (ppcVar5 < local_64 || (uint)((int)ppcVar5 - (int)local_64) < (uint)(uVar4 < local_58)) {\n        ppuVar13 = local_5c + -0x3b977;\n      }\n      else if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)\n              ) {\n        ppuVar13 = local_5c + -0x3b96c;\n      }\n      else {\n        ppuVar13 = (undefined **)((int)local_5c + -0xee586);\n      }\n      *(undefined ***)((int)pppuVar15 + -0x10) = ppuVar13;\n      *(undefined4 *)((int)pppuVar15 + -0x14) = 0x1ccaee;\n      uVar12 = gettext();\n      *(int **)((int)pppuVar15 + -0x10) = param_9;\n      *(undefined4 *)((int)pppuVar15 + -0x14) = 0;\n      *(undefined4 **)((int)pppuVar15 + -0x18) = param_4;\n      *(undefined4 *)((int)pppuVar15 + -0x1c) = uVar12;\n      *(undefined4 *)((int)pppuVar15 + -0x20) = 0;\n      *(undefined4 *)((int)pppuVar15 + -0x24) = 0x1ccafc;\n      puVar9 = (undefined4 *)FUN_001c9960();\n    }\n  }" (if "if") (parenthesized_expression "((char)local_44 != '\0')" (( "(") (binary_expression "(char)local_44 != '\0'" (cast_expression "(char)local_44" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_44")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    puVar9 = *(undefined4 **)(*local_60 + 8);\n    if (puVar9 == (undefined4 *)0x0) {\nLAB_001ccb98:\n      *(undefined4 **)((int)pppuVar15 + -4) = puVar9;\n      *(undefined ***)((int)pppuVar15 + -8) = local_5c + -0x3b992;\n      *(undefined4 *)((int)pppuVar15 + -0xc) = 0x5c;\n      *(undefined ***)((int)pppuVar15 + -0x10) = local_5c + -0x41f7c;\n                    \n      *(undefined **)((int)pppuVar15 + -0x14) = &UNK_001ccbb1;\n      FUN_00069d00();\n    }\n    if (*(char *)((int)puVar9 + 0x43e5) != '\0') {\n      uVar4 = *(uint *)(*param_5 + 0x10);\n      ppcVar5 = *(char ***)(*param_5 + 0x14);\n      if (ppcVar5 < local_64 || (uint)((int)ppcVar5 - (int)local_64) < (uint)(uVar4 < local_58)) {\n        ppuVar13 = local_5c + -0x3b977;\n      }\n      else if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)\n              ) {\n        ppuVar13 = local_5c + -0x3b96c;\n      }\n      else {\n        ppuVar13 = (undefined **)((int)local_5c + -0xee586);\n      }\n      *(undefined ***)((int)pppuVar15 + -0x10) = ppuVar13;\n      *(undefined4 *)((int)pppuVar15 + -0x14) = 0x1ccaee;\n      uVar12 = gettext();\n      *(int **)((int)pppuVar15 + -0x10) = param_9;\n      *(undefined4 *)((int)pppuVar15 + -0x14) = 0;\n      *(undefined4 **)((int)pppuVar15 + -0x18) = param_4;\n      *(undefined4 *)((int)pppuVar15 + -0x1c) = uVar12;\n      *(undefined4 *)((int)pppuVar15 + -0x20) = 0;\n      *(undefined4 *)((int)pppuVar15 + -0x24) = 0x1ccafc;\n      puVar9 = (undefined4 *)FUN_001c9960();\n    }\n  }" ({ "{") (expression_statement "puVar9 = *(undefined4 **)(*local_60 + 8);" (assignment_expression "puVar9 = *(undefined4 **)(*local_60 + 8)" (identifier "puVar9") (= "=") (pointer_expression "*(undefined4 **)(*local_60 + 8)" (* "*") (cast_expression "(undefined4 **)(*local_60 + 8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*local_60 + 8)" (( "(") (binary_expression "*local_60 + 8" (pointer_expression "*local_60" (* "*") (identifier "local_60")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (puVar9 == (undefined4 *)0x0) {\nLAB_001ccb98:\n      *(undefined4 **)((int)pppuVar15 + -4) = puVar9;\n      *(undefined ***)((int)pppuVar15 + -8) = local_5c + -0x3b992;\n      *(undefined4 *)((int)pppuVar15 + -0xc) = 0x5c;\n      *(undefined ***)((int)pppuVar15 + -0x10) = local_5c + -0x41f7c;\n                    \n      *(undefined **)((int)pppuVar15 + -0x14) = &UNK_001ccbb1;\n      FUN_00069d00();\n    }" (if "if") (parenthesized_expression "(puVar9 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar9 == (undefined4 *)0x0" (identifier "puVar9") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_001ccb98:\n      *(undefined4 **)((int)pppuVar15 + -4) = puVar9;\n      *(undefined ***)((int)pppuVar15 + -8) = local_5c + -0x3b992;\n      *(undefined4 *)((int)pppuVar15 + -0xc) = 0x5c;\n      *(undefined ***)((int)pppuVar15 + -0x10) = local_5c + -0x41f7c;\n                    \n      *(undefined **)((int)pppuVar15 + -0x14) = &UNK_001ccbb1;\n      FUN_00069d00();\n    }" ({ "{") (labeled_statement "LAB_001ccb98:\n      *(undefined4 **)((int)pppuVar15 + -4) = puVar9;" (statement_identifier "LAB_001ccb98") (: ":") (expression_statement "*(undefined4 **)((int)pppuVar15 + -4) = puVar9;" (assignment_expression "*(undefined4 **)((int)pppuVar15 + -4) = puVar9" (pointer_expression "*(undefined4 **)((int)pppuVar15 + -4)" (* "*") (cast_expression "(undefined4 **)((int)pppuVar15 + -4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)pppuVar15 + -4)" (( "(") (binary_expression "(int)pppuVar15 + -4" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "puVar9")) (; ";"))) (expression_statement "*(undefined ***)((int)pppuVar15 + -8) = local_5c + -0x3b992;" (assignment_expression "*(undefined ***)((int)pppuVar15 + -8) = local_5c + -0x3b992" (pointer_expression "*(undefined ***)((int)pppuVar15 + -8)" (* "*") (cast_expression "(undefined ***)((int)pppuVar15 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)pppuVar15 + -8)" (( "(") (binary_expression "(int)pppuVar15 + -8" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_5c + -0x3b992" (identifier "local_5c") (+ "+") (number_literal "-0x3b992"))) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0xc)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar15 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + -0xc)" (( "(") (binary_expression "(int)pppuVar15 + -0xc" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x5c")) (; ";")) (expression_statement "*(undefined ***)((int)pppuVar15 + -0x10) = local_5c + -0x41f7c;" (assignment_expression "*(undefined ***)((int)pppuVar15 + -0x10) = local_5c + -0x41f7c" (pointer_expression "*(undefined ***)((int)pppuVar15 + -0x10)" (* "*") (cast_expression "(undefined ***)((int)pppuVar15 + -0x10)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x10)" (( "(") (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "local_5c + -0x41f7c" (identifier "local_5c") (+ "+") (number_literal "-0x41f7c"))) (; ";")) (expression_statement "*(undefined **)((int)pppuVar15 + -0x14) = &UNK_001ccbb1;" (assignment_expression "*(undefined **)((int)pppuVar15 + -0x14) = &UNK_001ccbb1" (pointer_expression "*(undefined **)((int)pppuVar15 + -0x14)" (* "*") (cast_expression "(undefined **)((int)pppuVar15 + -0x14)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x14)" (( "(") (binary_expression "(int)pppuVar15 + -0x14" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&UNK_001ccbb1" (& "&") (identifier "UNK_001ccbb1"))) (; ";")) (expression_statement "FUN_00069d00();" (call_expression "FUN_00069d00()" (identifier "FUN_00069d00") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(char *)((int)puVar9 + 0x43e5) != '\0') {\n      uVar4 = *(uint *)(*param_5 + 0x10);\n      ppcVar5 = *(char ***)(*param_5 + 0x14);\n      if (ppcVar5 < local_64 || (uint)((int)ppcVar5 - (int)local_64) < (uint)(uVar4 < local_58)) {\n        ppuVar13 = local_5c + -0x3b977;\n      }\n      else if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)\n              ) {\n        ppuVar13 = local_5c + -0x3b96c;\n      }\n      else {\n        ppuVar13 = (undefined **)((int)local_5c + -0xee586);\n      }\n      *(undefined ***)((int)pppuVar15 + -0x10) = ppuVar13;\n      *(undefined4 *)((int)pppuVar15 + -0x14) = 0x1ccaee;\n      uVar12 = gettext();\n      *(int **)((int)pppuVar15 + -0x10) = param_9;\n      *(undefined4 *)((int)pppuVar15 + -0x14) = 0;\n      *(undefined4 **)((int)pppuVar15 + -0x18) = param_4;\n      *(undefined4 *)((int)pppuVar15 + -0x1c) = uVar12;\n      *(undefined4 *)((int)pppuVar15 + -0x20) = 0;\n      *(undefined4 *)((int)pppuVar15 + -0x24) = 0x1ccafc;\n      puVar9 = (undefined4 *)FUN_001c9960();\n    }" (if "if") (parenthesized_expression "(*(char *)((int)puVar9 + 0x43e5) != '\0')" (( "(") (binary_expression "*(char *)((int)puVar9 + 0x43e5) != '\0'" (pointer_expression "*(char *)((int)puVar9 + 0x43e5)" (* "*") (cast_expression "(char *)((int)puVar9 + 0x43e5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar9 + 0x43e5)" (( "(") (binary_expression "(int)puVar9 + 0x43e5" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (+ "+") (number_literal "0x43e5")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar4 = *(uint *)(*param_5 + 0x10);\n      ppcVar5 = *(char ***)(*param_5 + 0x14);\n      if (ppcVar5 < local_64 || (uint)((int)ppcVar5 - (int)local_64) < (uint)(uVar4 < local_58)) {\n        ppuVar13 = local_5c + -0x3b977;\n      }\n      else if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)\n              ) {\n        ppuVar13 = local_5c + -0x3b96c;\n      }\n      else {\n        ppuVar13 = (undefined **)((int)local_5c + -0xee586);\n      }\n      *(undefined ***)((int)pppuVar15 + -0x10) = ppuVar13;\n      *(undefined4 *)((int)pppuVar15 + -0x14) = 0x1ccaee;\n      uVar12 = gettext();\n      *(int **)((int)pppuVar15 + -0x10) = param_9;\n      *(undefined4 *)((int)pppuVar15 + -0x14) = 0;\n      *(undefined4 **)((int)pppuVar15 + -0x18) = param_4;\n      *(undefined4 *)((int)pppuVar15 + -0x1c) = uVar12;\n      *(undefined4 *)((int)pppuVar15 + -0x20) = 0;\n      *(undefined4 *)((int)pppuVar15 + -0x24) = 0x1ccafc;\n      puVar9 = (undefined4 *)FUN_001c9960();\n    }" ({ "{") (expression_statement "uVar4 = *(uint *)(*param_5 + 0x10);" (assignment_expression "uVar4 = *(uint *)(*param_5 + 0x10)" (identifier "uVar4") (= "=") (pointer_expression "*(uint *)(*param_5 + 0x10)" (* "*") (cast_expression "(uint *)(*param_5 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_5 + 0x10)" (( "(") (binary_expression "*param_5 + 0x10" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "ppcVar5 = *(char ***)(*param_5 + 0x14);" (assignment_expression "ppcVar5 = *(char ***)(*param_5 + 0x14)" (identifier "ppcVar5") (= "=") (pointer_expression "*(char ***)(*param_5 + 0x14)" (* "*") (cast_expression "(char ***)(*param_5 + 0x14)" (( "(") (type_descriptor "char ***" (primitive_type "char") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(*param_5 + 0x14)" (( "(") (binary_expression "*param_5 + 0x14" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (ppcVar5 < local_64 || (uint)((int)ppcVar5 - (int)local_64) < (uint)(uVar4 < local_58)) {\n        ppuVar13 = local_5c + -0x3b977;\n      }\n      else if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)\n              ) {\n        ppuVar13 = local_5c + -0x3b96c;\n      }\n      else {\n        ppuVar13 = (undefined **)((int)local_5c + -0xee586);\n      }" (if "if") (parenthesized_expression "(ppcVar5 < local_64 || (uint)((int)ppcVar5 - (int)local_64) < (uint)(uVar4 < local_58))" (( "(") (binary_expression "ppcVar5 < local_64 || (uint)((int)ppcVar5 - (int)local_64) < (uint)(uVar4 < local_58)" (binary_expression "ppcVar5 < local_64" (identifier "ppcVar5") (< "<") (identifier "local_64")) (|| "||") (binary_expression "(uint)((int)ppcVar5 - (int)local_64) < (uint)(uVar4 < local_58)" (call_expression "(uint)((int)ppcVar5 - (int)local_64)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)ppcVar5 - (int)local_64)" (( "(") (binary_expression "(int)ppcVar5 - (int)local_64" (cast_expression "(int)ppcVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar5")) (- "-") (cast_expression "(int)local_64" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_64"))) () ")"))) (< "<") (call_expression "(uint)(uVar4 < local_58)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar4 < local_58)" (( "(") (binary_expression "uVar4 < local_58" (identifier "uVar4") (< "<") (identifier "local_58")) () ")"))))) () ")")) (compound_statement "{\n        ppuVar13 = local_5c + -0x3b977;\n      }" ({ "{") (expression_statement "ppuVar13 = local_5c + -0x3b977;" (assignment_expression "ppuVar13 = local_5c + -0x3b977" (identifier "ppuVar13") (= "=") (binary_expression "local_5c + -0x3b977" (identifier "local_5c") (+ "+") (number_literal "-0x3b977"))) (; ";")) (} "}")) (else_clause "else if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)\n              ) {\n        ppuVar13 = local_5c + -0x3b96c;\n      }\n      else {\n        ppuVar13 = (undefined **)((int)local_5c + -0xee586);\n      }" (else "else") (if_statement "if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)\n              ) {\n        ppuVar13 = local_5c + -0x3b96c;\n      }\n      else {\n        ppuVar13 = (undefined **)((int)local_5c + -0xee586);\n      }" (if "if") (parenthesized_expression "(local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)\n              )" (( "(") (binary_expression "local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)" (binary_expression "local_64 < ppcVar5" (identifier "local_64") (< "<") (identifier "ppcVar5")) (|| "||") (binary_expression "(uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)" (call_expression "(uint)((int)local_64 - (int)ppcVar5)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)local_64 - (int)ppcVar5)" (( "(") (binary_expression "(int)local_64 - (int)ppcVar5" (cast_expression "(int)local_64" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_64")) (- "-") (cast_expression "(int)ppcVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar5"))) () ")"))) (< "<") (call_expression "(uint)(local_58 < uVar4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_58 < uVar4)" (( "(") (binary_expression "local_58 < uVar4" (identifier "local_58") (< "<") (identifier "uVar4")) () ")"))))) () ")")) (compound_statement "{\n        ppuVar13 = local_5c + -0x3b96c;\n      }" ({ "{") (expression_statement "ppuVar13 = local_5c + -0x3b96c;" (assignment_expression "ppuVar13 = local_5c + -0x3b96c" (identifier "ppuVar13") (= "=") (binary_expression "local_5c + -0x3b96c" (identifier "local_5c") (+ "+") (number_literal "-0x3b96c"))) (; ";")) (} "}")) (else_clause "else {\n        ppuVar13 = (undefined **)((int)local_5c + -0xee586);\n      }" (else "else") (compound_statement "{\n        ppuVar13 = (undefined **)((int)local_5c + -0xee586);\n      }" ({ "{") (expression_statement "ppuVar13 = (undefined **)((int)local_5c + -0xee586);" (assignment_expression "ppuVar13 = (undefined **)((int)local_5c + -0xee586)" (identifier "ppuVar13") (= "=") (cast_expression "(undefined **)((int)local_5c + -0xee586)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)local_5c + -0xee586)" (( "(") (binary_expression "(int)local_5c + -0xee586" (cast_expression "(int)local_5c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_5c")) (+ "+") (number_literal "-0xee586")) () ")")))) (; ";")) (} "}")))))) (expression_statement "*(undefined ***)((int)pppuVar15 + -0x10) = ppuVar13;" (assignment_expression "*(undefined ***)((int)pppuVar15 + -0x10) = ppuVar13" (pointer_expression "*(undefined ***)((int)pppuVar15 + -0x10)" (* "*") (cast_expression "(undefined ***)((int)pppuVar15 + -0x10)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x10)" (( "(") (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "ppuVar13")) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x1ccaee;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x1ccaee" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x14)" (( "(") (binary_expression "(int)pppuVar15 + -0x14" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1ccaee")) (; ";")) (expression_statement "uVar12 = gettext();" (assignment_expression "uVar12 = gettext()" (identifier "uVar12") (= "=") (call_expression "gettext()" (identifier "gettext") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(int **)((int)pppuVar15 + -0x10) = param_9;" (assignment_expression "*(int **)((int)pppuVar15 + -0x10) = param_9" (pointer_expression "*(int **)((int)pppuVar15 + -0x10)" (* "*") (cast_expression "(int **)((int)pppuVar15 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x10)" (( "(") (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "param_9")) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x14) = 0;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x14) = 0" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x14)" (( "(") (binary_expression "(int)pppuVar15 + -0x14" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 **)((int)pppuVar15 + -0x18) = param_4;" (assignment_expression "*(undefined4 **)((int)pppuVar15 + -0x18) = param_4" (pointer_expression "*(undefined4 **)((int)pppuVar15 + -0x18)" (* "*") (cast_expression "(undefined4 **)((int)pppuVar15 + -0x18)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x18)" (( "(") (binary_expression "(int)pppuVar15 + -0x18" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x1c) = uVar12;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x1c) = uVar12" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x1c)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar15 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x1c)" (( "(") (binary_expression "(int)pppuVar15 + -0x1c" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x20) = 0;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x20) = 0" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x20)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar15 + -0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x20)" (( "(") (binary_expression "(int)pppuVar15 + -0x20" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x24) = 0x1ccafc;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x24) = 0x1ccafc" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x24)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar15 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x24)" (( "(") (binary_expression "(int)pppuVar15 + -0x24" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x1ccafc")) (; ";")) (expression_statement "puVar9 = (undefined4 *)FUN_001c9960();" (assignment_expression "puVar9 = (undefined4 *)FUN_001c9960()" (identifier "puVar9") (= "=") (cast_expression "(undefined4 *)FUN_001c9960()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001c9960()" (identifier "FUN_001c9960") (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}"))) (} "}"))) (return_statement "return puVar9;" (return "return") (identifier "puVar9") (; ";")) (} "}"))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Enum "STB": Some values do not have unique names */
/* WARNING: Enum "STT": Some values do not have unique names */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original name: resolve<64, false>
   DWARF original prototype: void resolve<64,_false>(Symbol_table * this, Sized_symbol<64> * to,
   Sym<64,_false> * sym, uint st_shndx, bool is_ordinary, uint orig_st_shndx, Object * object, char
   * version, bool is_default_version) */

void __thiscall
var_11::type_11::resolve<64,var_22>
          (type_11 *this,Sized_symbol<64> *to,Sym<64,var_22> *sym,type_2 var_8,
          bool var_7,type_2 var_27,type_4 *var_3,char *version,bool is_default_version)

{
  type_12 *puVar1;
  type_1 var_40;
  type_2 var_6;
  type_3 *var_9;
  type_4 *pOVar5;
  type_2 var_24;
  var_1<64> *pSVar7;
  type_2 var_26;
  type_2 var_23;
  type_5 *pOVar10;
  int var_28;
  int var_30;
  int var_29;
  type_6 *p_Var14;
  type_7 ppOVar15;
  type_8 aVar16;
  char var_10;
  bool bVar18;
  type_1 var_41;
  int var_19;
  type_9 *var_20;
  type_10 SVar22;
  type_2 var_25;
  char *pcVar24;
  type_10 var_36;
  type_11 *pSVar26;
  type_11 *pSVar27;
  bool *local_74;
  bool *local_70;
  type_1 var_4;
  type_12 var_33 [12];
  type_13 __node_gen;
  bool var_38;
  type_2 local_40;
  type_14 local_3c;
  type_15 local_38;
  bool var_39;
  type_2 local_30;
  type_16 **local_2c;
  type_17 local_28;
  
  if (((to->super_Symbol).field_0x2a & 7) != 0) {
                    /* WARNING: Subroutine does not return */
    var_2("../../gold/symtab.h",0xaa,"shndx");
  }
  var_4 = (type_1)(to->super_Symbol).field_0x2b >> 5 & 1;
  var_6 = (to->super_Symbol).u2_.shndx;
  if (var_3 == (to->super_Symbol).u1_.var_3) {
    if (var_4 == 0) {
      bVar18 = Symbol::var_5(var_6);
      if ((bVar18) || (!var_7)) goto LAB_001cc88e;
    }
    else if ((var_6 != 0) && ((var_7 && (var_8 == var_6)))) goto LAB_001ccb65;
  }
  else {
LAB_001cc88e:
    if ((var_8 == 0xfff1 && !var_7) && ((var_4 == 0 && (var_6 == 0xfff1)))) {
LAB_001ccb65:
      if (*(int *)((int)&to->value_ + 4) == *(int *)((int)&sym->p_->st_value + 4) &&
          (int)to->value_ == (int)sym->p_->st_value) {
        return;
      }
    }
  }
  var_9 = parameters->target_;
  if (var_9 == (type_3 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_2("../../gold/parameters.h",0x69,"target");
  }
  if ((*(char *)(*(int *)(var_9 + 4) + 0xd) == '\0') ||
     (var_10 = (**(type_18 **)(*(int *)var_9 + 0xac))(var_9,to,sym,var_3,version), var_10 == '\0'))
  {
    if ((var_3->field_0x2c & 1) == 0) {
      if (((sym->p_->st_info & 0xf) == 5) &&
         ((var_7 || (bVar18 = Symbol::var_5(var_8), !bVar18)))) {
        if (((to->super_Symbol).field_0x2a & 7) == 0) {
          ppOVar15 = ((to->super_Symbol).u1_.output_segment)->output_lists_[0].
                     super__Vector_base<var_11::Output_data*,var_12::allocator<var_11::Output_data*>var_13>.
                     _M_impl._M_finish;
          Symbol::var_14(&to->super_Symbol);
          aVar16 = var_17;
          pcVar24 = (char *)var_15("STT_COMMON symbol \'%s\' in %s is not in a common section");
                    /* try { // try from 001ccf2f to 001ccf33 has its CatchHandler @ 001cd081 */
          var_16(pcVar24,aVar16.var_3,ppOVar15);
          if (var_17 == (type_4 *)&local_2c) {
            return;
          }
          var_18(var_17);
          return;
        }
        goto LAB_001cd065;
      }
      puVar1 = &(to->super_Symbol).field_0x2a;
      *puVar1 = *puVar1 | 0x80;
      var_19 = (*var_3->_vptr_Object[5])(var_3);
    }
    else {
      if ((var_8 == 0) && (((type_1)(to->super_Symbol).field_0x29 & 3) - 1 < 2)) {
        return;
      }
      puVar1 = &(to->super_Symbol).field_0x2b;
      *puVar1 = *puVar1 | 1;
      var_19 = (*var_3->_vptr_Object[5])(var_3);
    }
    if ((var_19 == 0) && ((var_3->field_0x2c & 1) == 0)) {
      puVar1 = &(to->super_Symbol).field_0x2b;
      *puVar1 = *puVar1 | 0x40;
    }
    if ((((to->super_Symbol).field_0x2a & 7) == 0) &&
       (pOVar5 = (to->super_Symbol).u1_.var_3, var_19 = (*pOVar5->_vptr_Object[5])(pOVar5),
       var_19 != 0)) {
      var_20 = parameters->options_;
      if (var_20 == (type_9 *)0x0) goto LAB_001ccb98;
      if (var_20->plugins_->in_replacement_phase_ != false) {
        if ((((((to->super_Symbol).field_0x2a & 7) != 0) ||
             (((to->super_Symbol).field_0x2b & 0x20) != 0)) ||
            (bVar18 = Symbol::var_5((to->super_Symbol).u2_.shndx), !bVar18)) ||
           ((var_7 || (bVar18 = Symbol::var_5(var_8), !bVar18)))) {
          var_21<64,var_22>(this,to,sym,var_8,var_7,var_3,version);
          return;
        }
        var_6 = *(type_2 *)((int)&to->symsize_ + 4);
        var_24 = (type_2)to->symsize_;
        var_25 = *(type_2 *)((int)&to->value_ + 4);
        var_26 = (type_2)to->value_;
        var_21<64,var_22>(this,to,sym,var_8,false,var_3,version);
        var_23 = *(type_2 *)((int)&to->symsize_ + 4);
        if (var_23 < var_6 || var_23 - var_6 < (type_2)((type_2)to->symsize_ < var_24)) {
          *(type_2 *)&to->symsize_ = var_24;
          *(type_2 *)((int)&to->symsize_ + 4) = var_6;
        }
        var_6 = *(type_2 *)((int)&to->value_ + 4);
        if (var_25 <= var_6 && (type_2)((type_2)to->value_ < var_26) <= var_6 - var_25) {
          return;
        }
        *(type_2 *)&to->value_ = var_26;
        *(type_2 *)((int)&to->value_ + 4) = var_25;
        return;
      }
    }
    else {
      var_20 = parameters->options_;
      if (var_20 == (type_9 *)0x0) goto LAB_001ccb98;
    }
    if ((var_20->detect_odr_violations_).value != false) {
      pSVar7 = sym->p_;
      if ((((int)(type_2)pSVar7->st_info >> 4 == 2) || ((type_1)(to->super_Symbol).field_0x28 >> 4 == 2)
          ) && (((var_4 & var_27 != 0) != 0 && (var_6 != 0)))) {
        var_19 = (int)pSVar7->st_size;
        var_28 = *(int *)((int)&pSVar7->st_size + 4);
        if (var_28 != 0 || var_19 != 0) {
          var_30 = (int)to->symsize_;
          var_29 = *(int *)((int)&to->symsize_ + 4);
          if ((var_29 != 0 || var_30 != 0) &&
             (((pSVar7->st_info & 0xf) != ((to->super_Symbol).field_0x28 & 0xf) ||
              (var_19 != var_30 || var_28 != var_29)))) {
            p_Var14 = (type_6 *)(to->super_Symbol).name_;
            if ((*(char *)&p_Var14->_M_nxt == '_') && (*(char *)((int)&p_Var14->_M_nxt + 1) == 'Z'))
            {
              local_3c = *(type_14 *)&pSVar7->st_value;
              _adjust_common_sizes = var_3;
              local_40 = var_27;
              local_38 = *(type_15 *)((int)&pSVar7->st_value + 4);
              if (((to->super_Symbol).field_0x2a & 7) != 0) {
LAB_001cd065:
                    /* WARNING: Subroutine does not return */
                var_2("../../gold/symtab.h",0xa1,"object");
              }
              var_17 = (to->super_Symbol).u1_;
              local_2c = *(type_16 ***)&to->value_;
              local_28._M_p = *(type_7 *)((int)&to->value_ + 4);
              pSVar26 = this;
              pSVar27 = this;
              var_33._8_4_ = p_Var14;
              local_30 = var_6;
              __node_gen._M_h =
                   (__hashtable_alloc *)
                   std::__detail::
                   _Map_base<char_const*,var_12::pair<char_const*_const,var_12::unordered_set<var_11::Symbol_location,_gold::Symbol_location_hash,var_12::equal_to<var_11::Symbol_location>,var_12::allocator<var_11::Symbol_location>var_13>var_13>,var_12::allocator<std::pair<char_const*_const,var_12::unordered_set<var_11::Symbol_location,_gold::Symbol_location_hash,var_12::equal_to<var_11::Symbol_location>,var_12::allocator<var_11::Symbol_location>var_13>var_13>var_13>,var_12::__detail::_Select1st,var_12::equal_to<char_const*>,var_12::hash<char_const*>,var_12::__detail::_Mod_range_hashing,var_12::__detail::_Default_ranged_hash,var_12::__detail::_Prime_rehash_policy,var_12::__detail::var_31<false,var_22,var_32>,var_32>
                   ::operator[]((_Map_base<char_const*,var_12::pair<char_const*_const,var_12::unordered_set<var_11::Symbol_location,_gold::Symbol_location_hash,var_12::equal_to<var_11::Symbol_location>,var_12::allocator<var_11::Symbol_location>var_13>var_13>,var_12::allocator<std::pair<char_const*_const,var_12::unordered_set<var_11::Symbol_location,_gold::Symbol_location_hash,var_12::equal_to<var_11::Symbol_location>,var_12::allocator<var_11::Symbol_location>var_13>var_13>var_13>,var_12::__detail::_Select1st,var_12::equal_to<char_const*>,var_12::hash<char_const*>,var_12::__detail::_Mod_range_hashing,var_12::__detail::_Default_ranged_hash,var_12::__detail::_Prime_rehash_policy,var_12::__detail::var_31<false,var_22,var_32>,var_32>
                                 *)&this->candidate_odr_violations_,(type_19 *)(var_33 + 8));
              std::
              _Hashtable<var_11::Symbol_location,_gold::Symbol_location,var_12::allocator<var_11::Symbol_location>,var_12::__detail::_Identity,var_12::equal_to<var_11::Symbol_location>,_gold::Symbol_location_hash,var_12::__detail::_Mod_range_hashing,var_12::__detail::_Default_ranged_hash,var_12::__detail::_Prime_rehash_policy,var_12::__detail::var_31<true,var_32,var_32>var_13>
              ::
              _M_insert<const_gold::Symbol_location&,var_12::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<var_11::Symbol_location,var_32>var_13>var_13>var_13>
                        ((_Hashtable<std::__cxx11::basic_string<char,var_12::char_traits<char>,var_12::allocator<char>var_13>,var_12::__cxx11::basic_string<char,var_12::char_traits<char>,var_12::allocator<char>var_13>,var_12::allocator<std::__cxx11::basic_string<char,var_12::char_traits<char>,var_12::allocator<char>var_13>var_13>,var_12::__detail::_Identity,var_12::equal_to<std::__cxx11::basic_string<char,var_12::char_traits<char>,var_12::allocator<char>var_13>var_13>,var_12::hash<std::__cxx11::basic_string<char,var_12::char_traits<char>,var_12::allocator<char>var_13>var_13>,var_12::__detail::_Mod_range_hashing,var_12::__detail::_Default_ranged_hash,var_12::__detail::_Prime_rehash_policy,var_12::__detail::var_31<true,var_32,var_32>var_13>
                          *)var_33,__node_gen._M_h,&var_38,&__node_gen,0,1,pSVar26,
                         pSVar27);
              var_33._8_4_ = (to->super_Symbol).name_;
              __node_gen._M_h =
                   (__hashtable_alloc *)
                   std::__detail::
                   _Map_base<char_const*,var_12::pair<char_const*_const,var_12::unordered_set<var_11::Symbol_location,_gold::Symbol_location_hash,var_12::equal_to<var_11::Symbol_location>,var_12::allocator<var_11::Symbol_location>var_13>var_13>,var_12::allocator<std::pair<char_const*_const,var_12::unordered_set<var_11::Symbol_location,_gold::Symbol_location_hash,var_12::equal_to<var_11::Symbol_location>,var_12::allocator<var_11::Symbol_location>var_13>var_13>var_13>,var_12::__detail::_Select1st,var_12::equal_to<char_const*>,var_12::hash<char_const*>,var_12::__detail::_Mod_range_hashing,var_12::__detail::_Default_ranged_hash,var_12::__detail::_Prime_rehash_policy,var_12::__detail::var_31<false,var_22,var_32>,var_32>
                   ::operator[]((_Map_base<char_const*,var_12::pair<char_const*_const,var_12::unordered_set<var_11::Symbol_location,_gold::Symbol_location_hash,var_12::equal_to<var_11::Symbol_location>,var_12::allocator<var_11::Symbol_location>var_13>var_13>,var_12::allocator<std::pair<char_const*_const,var_12::unordered_set<var_11::Symbol_location,_gold::Symbol_location_hash,var_12::equal_to<var_11::Symbol_location>,var_12::allocator<var_11::Symbol_location>var_13>var_13>var_13>,var_12::__detail::_Select1st,var_12::equal_to<char_const*>,var_12::hash<char_const*>,var_12::__detail::_Mod_range_hashing,var_12::__detail::_Default_ranged_hash,var_12::__detail::_Prime_rehash_policy,var_12::__detail::var_31<false,var_22,var_32>,var_32>
                                 *)&this->candidate_odr_violations_,(type_19 *)(var_33 + 8));
              std::
              _Hashtable<var_11::Symbol_location,_gold::Symbol_location,var_12::allocator<var_11::Symbol_location>,var_12::__detail::_Identity,var_12::equal_to<var_11::Symbol_location>,_gold::Symbol_location_hash,var_12::__detail::_Mod_range_hashing,var_12::__detail::_Default_ranged_hash,var_12::__detail::_Prime_rehash_policy,var_12::__detail::var_31<true,var_32,var_32>var_13>
              ::
              _M_insert<const_gold::Symbol_location&,var_12::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<var_11::Symbol_location,var_32>var_13>var_13>var_13>
                        ((_Hashtable<std::__cxx11::basic_string<char,var_12::char_traits<char>,var_12::allocator<char>var_13>,var_12::__cxx11::basic_string<char,var_12::char_traits<char>,var_12::allocator<char>var_13>,var_12::allocator<std::__cxx11::basic_string<char,var_12::char_traits<char>,var_12::allocator<char>var_13>var_13>,var_12::__detail::_Identity,var_12::equal_to<std::__cxx11::basic_string<char,var_12::char_traits<char>,var_12::allocator<char>var_13>var_13>,var_12::hash<std::__cxx11::basic_string<char,var_12::char_traits<char>,var_12::allocator<char>var_13>var_13>,var_12::__detail::_Mod_range_hashing,var_12::__detail::_Default_ranged_hash,var_12::__detail::_Prime_rehash_policy,var_12::__detail::var_31<true,var_32,var_32>var_13>
                          *)var_33,__node_gen._M_h,&var_39,&__node_gen,0,1);
            }
          }
        }
      }
    }
    local_70 = &var_38;
    local_74 = &var_39;
    var_19 = (*var_3->_vptr_Object[5])(var_3);
    if (var_19 == 0) {
      SVar22 = (type_10)sym->p_->st_info;
      var_36 = SVar22;
    }
    else {
      SVar22 = (type_10)sym->p_->st_info;
      var_36 = (type_2)(type_1)(to->super_Symbol).field_0x28;
    }
    var_25 = var_34((int)SVar22 >> 4,(bool)(var_3->field_0x2c & 1),var_8,var_7);
    var_6 = (type_2)to->symsize_;
    var_24 = *(type_2 *)((int)&to->symsize_ + 4);
    bVar18 = var_35(&to->super_Symbol,var_25,var_36 & var_37,OBJECT,var_3,local_70,
                             local_74,is_default_version);
    if (bVar18) {
      var_41 = (to->super_Symbol).field_0x28;
      var_25 = (type_2)to->value_;
      var_26 = *(type_2 *)((int)&to->value_ + 4);
      var_21<64,var_22>(this,to,sym,var_8,var_7,var_3,version);
      if (var_38 != false) {
        var_23 = *(type_2 *)((int)&to->symsize_ + 4);
        if (var_23 < var_24 || var_23 - var_24 < (type_2)((type_2)to->symsize_ < var_6)) {
          *(type_2 *)((int)&to->symsize_ + 4) = var_24;
          *(type_2 *)&to->symsize_ = var_6;
        }
        var_23 = *(type_2 *)((int)&to->value_ + 4);
        if (var_23 < var_26 || var_23 - var_26 < (type_2)((type_2)to->value_ < var_25)) {
          *(type_2 *)&to->value_ = var_25;
          *(type_2 *)((int)&to->value_ + 4) = var_26;
        }
      }
      if ((var_39 != false) &&
         ((var_40 = (to->super_Symbol).field_0x2c, (var_40 & 1) == 0 || ((var_40 & 2) != 0)))) {
        (to->super_Symbol).field_0x2c =
             (to->super_Symbol).field_0x2c & 0xfd | (var_41 >> 4 == 2) * '\x02' | 1;
      }
    }
    else {
      pSVar7 = sym->p_;
      if (var_38 != false) {
        var_25 = (type_2)pSVar7->st_size;
        var_26 = *(type_2 *)((int)&pSVar7->st_size + 4);
        if (var_24 < var_26 || var_24 - var_26 < (type_2)(var_6 < var_25)) {
          *(type_2 *)((int)&to->symsize_ + 4) = var_26;
          *(type_2 *)&to->symsize_ = var_25;
        }
        var_25 = (type_2)pSVar7->st_value;
        var_26 = *(type_2 *)((int)&pSVar7->st_value + 4);
        var_23 = *(type_2 *)((int)&to->value_ + 4);
        if (var_23 < var_26 || var_23 - var_26 < (type_2)((type_2)to->value_ < var_25)) {
          *(type_2 *)((int)&to->value_ + 4) = var_26;
          *(type_2 *)&to->value_ = var_25;
        }
      }
      if (var_39 != false) {
        var_41 = (to->super_Symbol).field_0x2c;
        if (((var_41 & 1) == 0) || ((var_41 & 2) != 0)) {
          (to->super_Symbol).field_0x2c =
               (to->super_Symbol).field_0x2c & 0xfd |
               ((int)(type_2)pSVar7->st_info >> 4 == 2) * '\x02' | 1;
        }
      }
      var_41 = pSVar7->st_other & 3;
      if ((pSVar7->st_other & 3) != 0) {
        var_40 = (to->super_Symbol).field_0x29;
        if (((var_40 & 3) == 0) || (var_41 < (var_40 & 3))) {
          (to->super_Symbol).field_0x29 = var_41 | var_40 & 0xfc;
        }
      }
    }
    var_41 = (to->super_Symbol).field_0x2a;
    if ((var_41 & 7) == 0) {
      pOVar10 = (to->super_Symbol).u1_.output_segment;
      var_40 = *(type_1 *)&pOVar10->output_lists_[3].
                        super__Vector_base<var_11::Output_data*,var_12::allocator<var_11::Output_data*>var_13>.
                        _M_impl._M_end_of_storage;
      if ((((var_40 & 1) != 0) && ((char)var_41 < '\0')) &&
         (((to->super_Symbol).field_0x2c & 2) == 0)) {
        *(type_1 *)&pOVar10->output_lists_[3].
                  super__Vector_base<var_11::Output_data*,var_12::allocator<var_11::Output_data*>var_13>.
                  _M_impl._M_end_of_storage = var_40 | 2;
      }
    }
    if (var_38 != false) {
      if (parameters->options_ == (type_9 *)0x0) {
LAB_001ccb98:
                    /* WARNING: Subroutine does not return */
        var_2("../../gold/parameters.h",0x5c,"options");
      }
      if ((parameters->options_->warn_common_).value != false) {
        var_25 = (type_2)sym->p_->st_size;
        var_26 = *(type_2 *)((int)&sym->p_->st_size + 4);
        if (var_26 < var_24 || var_26 - var_24 < (type_2)(var_25 < var_6)) {
          pcVar24 = "common of \'%s\' overriding smaller common";
        }
        else if (var_24 < var_26 || var_24 - var_26 < (type_2)(var_6 < var_25)) {
          pcVar24 = "common of \'%s\' overidden by larger common";
        }
        else {
          pcVar24 = "multiple common of \'%s\'";
        }
        pcVar24 = (char *)var_15(pcVar24);
        var_42(false,pcVar24,&to->super_Symbol,OBJECT,var_3);
      }
    }
  }
  return;
}


(translation_unit (ERROR (binary_expression left: (identifier) (ERROR (identifier)) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (ERROR (identifier)) (identifier) (ERROR (identifier)) (binary_expression left: (identifier) right: (pointer_expression argument: (identifier))) (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (ERROR (identifier)) (identifier) (ERROR (identifier)) (identifier) (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (pointer_expression argument: (identifier))) (ERROR (identifier)) (identifier))))) (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (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: (pointer_declarator 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: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal)))) 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))))) (expression_statement (assignment_expression left: (identifier) right: (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: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (escape_sequence)))))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (parenthesized_expression (comma_expression left: (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (escape_sequence)))) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))) right: (binary_expression left: (identifier) right: (identifier)))))))))))) consequence: (goto_statement label: (statement_identifier)))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (escape_sequence))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))) right: (identifier))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (char_literal (escape_sequence))) right: (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: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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: (identifier)) right: (number_literal))))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (pointer_expression argument: (identifier)) right: (number_literal)))))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) consequence: (compound_statement (return_statement (identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (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: (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 declarator: (abstract_pointer_declarator))) value: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (identifier))))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (escape_sequence))))))) consequence: (compound_statement (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) 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: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (escape_sequence))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier))))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (escape_sequence)))))))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (return_statement (identifier)))) (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 (identifier)))))) (return_statement (identifier)))) (goto_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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier)))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) right: (number_literal))))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) consequence: (compound_statement (return_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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (number_literal))))))) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) 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: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) right: (number_literal))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal))))) right: (binary_expression left: (identifier) right: (char_literal (escape_sequence))))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (escape_sequence))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))) right: (binary_expression left: (identifier) right: (char_literal (escape_sequence)))))))))) consequence: (compound_statement (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: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier)))))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (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 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: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (number_literal) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier))) right: (identifier)))) consequence: (compound_statement (return_statement (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))) (return_statement (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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: (goto_statement label: (statement_identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (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: (identifier) right: (number_literal))))) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (identifier)))) (if_statement condition: (parenthesized_expression (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))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (identifier))) right: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator 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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (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: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (identifier))) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (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))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (character)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (identifier))) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (character))))))) 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))) (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) (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: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (number_literal) (number_literal)))) (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: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (number_literal) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))))))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))))) alternative: (else_clause (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator 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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (escape_sequence)))) 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator 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: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))))) consequence: (compound_statement (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: (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)) right: (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier))))))) consequence: (compound_statement (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (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: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (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: (identifier) right: (number_literal))))) right: (number_literal)) right: (number_literal))) right: (char_literal (escape_sequence)))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))))))) 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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier))))))) consequence: (compound_statement (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: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)) right: (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier))))))) consequence: (compound_statement (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: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal)))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (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: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (escape_sequence)))) right: (char_literal (escape_sequence)))) 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: (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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (escape_sequence)))))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (escape_sequence)))) 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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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 (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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (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: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))))))) (return_statement (identifier))))

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

undefined4 * __regparm2
MASKED(undefined4 param_1,undefined4 param_2,undefined **param_3,undefined4 *param_4,
            int *param_5,undefined1 *param_6,uint param_7,int param_8,int *param_9,
            undefined **param_10,uint param_11)

{
  byte bVar1;
  int *piVar2;
  code *pcVar3;
  uint uVar4;
  char **ppcVar5;
  uint uVar6;
  char cVar7;
  byte bVar8;
  undefined4 *puVar9;
  char *pcVar10;
  int iVar11;
  undefined4 uVar12;
  undefined **ppuVar13;
  undefined4 uVar14;
  undefined ***pppuVar15;
  bool bVar16;
  undefined **ppuStack_94;
  undefined **ppuStack_90;
  undefined1 auStack_8c [12];
  undefined4 *local_80;
  char **local_7c;
  undefined4 *local_78;
  undefined4 **local_74;
  int **local_70;
  undefined1 *local_6c;
  uint local_68;
  char **local_64;
  undefined **local_60;
  undefined **local_5c;
  uint local_58;
  undefined1 local_54 [8];
  char *local_4c;
  undefined4 local_48;
  int *local_44;
  int local_40;
  undefined4 local_3c;
  undefined4 local_38;
  undefined4 *local_34;
  undefined1 *local_30;
  undefined4 local_2c;
  undefined4 local_28;
  
  local_5c = &__DT_PLTGOT;
  local_58 = param_7;
  local_68 = param_11;
  if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {
    ppuStack_94 = (undefined **)0x2a09d4;
    ppuStack_90 = (undefined **)param_2;
    local_5c = &__DT_PLTGOT;
                    /* WARNING: Subroutine does not return */
    FUN_00069d00("../../gold/symtab.h",0xaa);
  }
  local_64 = (char **)(CONCAT31(local_64._1_3_,*(byte *)((int)param_4 + 0x2b) >> 5) & 0xffffff01);
  local_6c = (undefined1 *)param_4[3];
  ppuVar13 = &__DT_PLTGOT;
  if (param_9 == (int *)param_4[2]) {
    if ((byte)local_64 == '\0') {
      local_5c = &__DT_PLTGOT;
      cVar7 = FUN_00177470(local_6c);
      ppuVar13 = local_5c;
      if ((cVar7 == '\x01') || ((char)local_58 == '\0')) goto LAB_001cc88e;
    }
    else if ((local_6c != (undefined1 *)0x0) &&
            ((local_58._0_1_ = (char)param_7, bVar16 = (char)local_58 != '\0', ppuVar13 = local_5c,
             bVar16 && (local_5c = &__DT_PLTGOT, param_6 == local_6c)))) goto LAB_001ccb65;
  }
  else {
LAB_001cc88e:
    local_5c = ppuVar13;
    bVar16 = (char)local_58 == '\0';
    ppuVar13 = local_5c;
    if ((param_6 == (undefined1 *)0xfff1 && bVar16) &&
       (((byte)local_64 == '\0' && (local_6c == (undefined1 *)0xfff1)))) {
LAB_001ccb65:
      puVar9 = (undefined4 *)(param_4[0xc] ^ *(uint *)(*param_5 + 8));
      ppuVar13 = local_5c;
      if (param_4[0xd] == *(int *)(*param_5 + 0xc) && puVar9 == (undefined4 *)0x0) {
        return puVar9;
      }
    }
  }
  local_5c = ppuVar13;
  pppuVar15 = (undefined ***)auStack_8c;
  local_60 = local_5c + 0xde;
  piVar2 = *(int **)(*local_60 + 0xc);
  if (piVar2 == (int *)0x0) {
    ppuStack_94 = local_5c + -0x3b9ab;
    ppuStack_90 = (undefined **)piVar2;
                    /* WARNING: Subroutine does not return */
    FUN_00069d00(local_5c + -0x41f7c,0x69);
  }
  if ((*(char *)(piVar2[1] + 0xd) != '\0') &&
     (puVar9 = (undefined4 *)(**(code **)(*piVar2 + 0xac))(piVar2,param_4,param_5,param_9,param_10),
     (char)puVar9 != '\0')) {
    return puVar9;
  }
  if ((*(byte *)(param_9 + 0xb) & 1) == 0) {
    pcVar10 = (char *)(*(byte *)(*param_5 + 4) & 0xf);
    if (((char)pcVar10 == '\x05') &&
       (((char)local_58 != '\0' || (pcVar10 = (char *)FUN_00177470(param_6), (char)pcVar10 == '\0'))
       )) {
      if ((*(byte *)((int)param_4 + 0x2a) & 7) == 0) {
        uVar12 = *(undefined4 *)(param_4[2] + 4);
        FUN_00178890(&local_34,param_4);
        puVar9 = local_34;
        uVar14 = gettext(local_5c + -0x3b985);
                    /* try { // try from 001ccf2f to 001ccf33 has its CatchHandler @ 001cd081 */
        FUN_000654e0(uVar14,puVar9,uVar12);
        if (local_34 == &local_2c) {
          return local_34;
        }
        puVar9 = (undefined4 *)FUN_001e6db0(local_34);
        return puVar9;
      }
      goto LAB_001cd065;
    }
    *(byte *)((int)param_4 + 0x2a) = *(byte *)((int)param_4 + 0x2a) | 0x80;
    iVar11 = (**(code **)(*param_9 + 0x14))(param_9);
  }
  else {
    if ((param_6 == (undefined1 *)0x0) &&
       (puVar9 = (undefined4 *)((*(byte *)((int)param_4 + 0x29) & 3) - 1),
       puVar9 < (undefined4 *)0x2)) {
      return puVar9;
    }
    *(byte *)((int)param_4 + 0x2b) = *(byte *)((int)param_4 + 0x2b) | 1;
    iVar11 = (**(code **)(*param_9 + 0x14))(param_9);
  }
  if ((iVar11 == 0) && ((*(byte *)(param_9 + 0xb) & 1) == 0)) {
    *(byte *)((int)param_4 + 0x2b) = *(byte *)((int)param_4 + 0x2b) | 0x40;
  }
  if (((*(byte *)((int)param_4 + 0x2a) & 7) == 0) &&
     (iVar11 = (**(code **)(*(int *)param_4[2] + 0x14))((int *)param_4[2]), iVar11 != 0)) {
    puVar9 = *(undefined4 **)(*local_60 + 8);
    pppuVar15 = (undefined ***)auStack_8c;
    if (puVar9 == (undefined4 *)0x0) goto LAB_001ccb98;
    if (*(char *)(puVar9[0x164f] + 0x61) != '\0') {
      if (((((*(byte *)((int)param_4 + 0x2a) & 7) != 0) ||
           ((*(byte *)((int)param_4 + 0x2b) & 0x20) != 0)) ||
          (cVar7 = FUN_00177470(param_4[3]), cVar7 != '\x01')) ||
         (((char)local_58 != '\0' || (cVar7 = FUN_00177470(param_6), cVar7 == '\0')))) {
        ppuStack_94 = param_10;
        puVar9 = (undefined4 *)FUN_001cb040(param_3,param_4,param_5,param_6,local_58 & 0xff,param_9)
        ;
        return puVar9;
      }
      local_5c = (undefined **)param_4[0xf];
      local_60 = (undefined **)param_4[0xe];
      uVar4 = param_4[0xd];
      local_58 = param_4[0xc];
      ppuStack_94 = param_10;
      FUN_001cb040(param_3,param_4,param_5,param_6,0,param_9);
      if ((uint)param_4[0xf] < local_5c ||
          (uint)(param_4[0xf] - (int)local_5c) < (uint)((uint)param_4[0xe] < local_60)) {
        param_4[0xe] = local_60;
        param_4[0xf] = local_5c;
      }
      uVar6 = param_4[0xd] - uVar4;
      puVar9 = (undefined4 *)(uVar6 - ((uint)param_4[0xc] < local_58));
      if (uVar4 <= (uint)param_4[0xd] && ((uint)param_4[0xc] < local_58) <= uVar6) {
        return puVar9;
      }
      param_4[0xc] = local_58;
      param_4[0xd] = uVar4;
      return puVar9;
    }
  }
  else {
    puVar9 = *(undefined4 **)(*local_60 + 8);
    if (puVar9 == (undefined4 *)0x0) goto LAB_001ccb98;
  }
  if (*(char *)((int)puVar9 + 0xe0d) == '\0') {
    local_74 = &local_34;
    local_70 = &local_44;
    pppuVar15 = (undefined ***)auStack_8c;
  }
  else {
    iVar11 = *param_5;
    if ((int)(uint)*(byte *)(iVar11 + 4) >> 4 != 2) {
      local_74 = &local_34;
      local_70 = &local_44;
      pppuVar15 = (undefined ***)auStack_8c;
      if (*(byte *)(param_4 + 10) >> 4 != 2) goto LAB_001cc978;
    }
    local_74 = &local_34;
    local_70 = &local_44;
    pppuVar15 = (undefined ***)auStack_8c;
    if ((((byte)local_64 & param_8 != 0) != 0) &&
       (pppuVar15 = (undefined ***)auStack_8c, local_6c != (undefined1 *)0x0)) {
      local_64 = *(char ***)(iVar11 + 0x10);
      local_78 = *(undefined4 **)(iVar11 + 0x14);
      pppuVar15 = (undefined ***)auStack_8c;
      if (local_78 != (undefined4 *)0x0 || local_64 != (char **)0x0) {
        local_7c = (char **)param_4[0xe];
        local_80 = (undefined4 *)param_4[0xf];
        pppuVar15 = (undefined ***)auStack_8c;
        if ((local_80 != (undefined4 *)0x0 || local_7c != (char **)0x0) &&
           (((*(byte *)(iVar11 + 4) & 0xf) != (*(byte *)(param_4 + 10) & 0xf) ||
            (pppuVar15 = (undefined ***)auStack_8c, local_64 != local_7c || local_78 != local_80))))
        {
          pcVar10 = (char *)*param_4;
          local_74 = &local_34;
          local_70 = &local_44;
          pppuVar15 = (undefined ***)auStack_8c;
          if ((*pcVar10 == '_') && (pppuVar15 = (undefined ***)auStack_8c, pcVar10[1] == 'Z')) {
            local_3c = *(undefined4 *)(iVar11 + 8);
            local_44 = param_9;
            local_40 = param_8;
            local_38 = *(undefined4 *)(iVar11 + 0xc);
            if ((*(byte *)((int)param_4 + 0x2a) & 7) != 0) {
LAB_001cd065:
              ppuStack_94 = local_5c + -0x3b990;
              ppuStack_90 = (undefined **)pcVar10;
                    /* WARNING: Subroutine does not return */
              FUN_00069d00((int)local_5c + -0x107dd3,0xa1);
            }
            local_34 = (undefined4 *)param_4[2];
            local_2c = param_4[0xc];
            local_30 = local_6c;
            local_28 = param_4[0xd];
            ppuStack_90 = param_3;
            ppuStack_94 = param_3;
            local_64 = &local_4c;
            local_4c = pcVar10;
            local_48 = FUN_001cace0(param_3 + 0x47,local_64);
            local_6c = local_54;
            local_78 = &local_48;
            FUN_001cb6d0(local_6c,local_48,local_70,local_78,0,1);
            local_4c = (char *)*param_4;
            local_48 = FUN_001cace0(param_3 + 0x47,local_64);
            FUN_001cb6d0(local_6c,local_48,local_74,local_78,0,1);
            pppuVar15 = &ppuStack_94;
          }
        }
      }
    }
  }
LAB_001cc978:
  iVar11 = *param_9;
  *(int **)((int)pppuVar15 + -0x10) = param_9;
  pcVar3 = *(code **)(iVar11 + 0x14);
  *(undefined4 *)((int)pppuVar15 + -0x14) = 0x1cc981;
  iVar11 = (*pcVar3)();
  if (iVar11 == 0) {
    bVar8 = *(byte *)(*param_5 + 4);
  }
  else {
    bVar8 = *(byte *)(param_4 + 10);
  }
  local_6c = (undefined1 *)(local_58 & 0xff);
  *(undefined1 **)((int)pppuVar15 + -0x10) = local_6c;
  *(undefined4 *)((int)pppuVar15 + -0x14) = 0x1cc9b9;
  uVar12 = FUN_001c9700();
  local_58 = param_4[0xe];
  local_64 = (char **)param_4[0xf];
  *(uint *)((int)pppuVar15 + -4) = local_68 & 0xff;
  *(undefined4 ***)((int)pppuVar15 + -8) = local_74;
  *(int ***)((int)pppuVar15 + -0xc) = local_70;
  *(int **)((int)pppuVar15 + -0x10) = param_9;
  *(undefined4 *)((int)pppuVar15 + -0x14) = 0;
  *(uint *)((int)pppuVar15 + -0x18) = bVar8 & 0xf;
  *(undefined4 *)((int)pppuVar15 + -0x1c) = uVar12;
  *(undefined4 **)((int)pppuVar15 + -0x20) = param_4;
  *(undefined4 *)((int)pppuVar15 + -0x24) = 0x1cc9de;
  cVar7 = FUN_001c9b30();
  if (cVar7 == '\0') {
    iVar11 = *param_5;
    if ((char)local_44 != '\0') {
      uVar4 = *(uint *)(iVar11 + 0x10);
      ppcVar5 = *(char ***)(iVar11 + 0x14);
      if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)) {
        param_4[0xf] = ppcVar5;
        param_4[0xe] = uVar4;
      }
      local_68 = *(uint *)(iVar11 + 8);
      uVar4 = *(uint *)(iVar11 + 0xc);
      if ((uint)param_4[0xd] < uVar4 || param_4[0xd] - uVar4 < (uint)((uint)param_4[0xc] < local_68)
         ) {
        param_4[0xd] = uVar4;
        param_4[0xc] = local_68;
      }
    }
    if ((char)local_34 != '\0') {
      if (((*(byte *)(param_4 + 0xb) & 1) == 0) || ((*(byte *)(param_4 + 0xb) & 2) != 0)) {
        *(byte *)(param_4 + 0xb) =
             *(byte *)(param_4 + 0xb) & 0xfd | ((int)(uint)*(byte *)(iVar11 + 4) >> 4 == 2) * '\x02'
             | 1;
      }
    }
    bVar8 = *(byte *)(iVar11 + 5) & 3;
    if ((*(byte *)(iVar11 + 5) & 3) != 0) {
      bVar1 = *(byte *)((int)param_4 + 0x29);
      if (((bVar1 & 3) == 0) || (bVar8 < (bVar1 & 3))) {
        *(byte *)((int)param_4 + 0x29) = bVar8 | bVar1 & 0xfc;
      }
    }
  }
  else {
    uVar4 = param_4[0xc];
    local_70 = (int **)CONCAT31(local_70._1_3_,*(byte *)(param_4 + 10) >> 4);
    local_68 = param_4[0xd];
    *(undefined ***)((int)pppuVar15 + -8) = param_10;
    *(int **)((int)pppuVar15 + -0xc) = param_9;
    *(undefined1 **)((int)pppuVar15 + -0x10) = local_6c;
    *(undefined1 **)((int)pppuVar15 + -0x14) = param_6;
    *(int **)((int)pppuVar15 + -0x18) = param_5;
    *(undefined4 **)((int)pppuVar15 + -0x1c) = param_4;
    *(undefined ***)((int)pppuVar15 + -0x20) = param_3;
    *(undefined4 *)((int)pppuVar15 + -0x24) = 0x1cce64;
    FUN_001cb040();
    if ((char)local_44 != '\0') {
      if ((char **)param_4[0xf] < local_64 ||
          (uint)((int)param_4[0xf] - (int)local_64) < (uint)((uint)param_4[0xe] < local_58)) {
        param_4[0xf] = local_64;
        param_4[0xe] = local_58;
      }
      if ((uint)param_4[0xd] < local_68 ||
          param_4[0xd] - local_68 < (uint)((uint)param_4[0xc] < uVar4)) {
        param_4[0xc] = uVar4;
        param_4[0xd] = local_68;
      }
    }
    if (((char)local_34 != '\0') &&
       (((*(byte *)(param_4 + 0xb) & 1) == 0 || ((*(byte *)(param_4 + 0xb) & 2) != 0)))) {
      *(byte *)(param_4 + 0xb) =
           *(byte *)(param_4 + 0xb) & 0xfd | ((char)local_70 == '\x02') * '\x02' | 1;
    }
  }
  bVar8 = *(byte *)((int)param_4 + 0x2a);
  puVar9 = (undefined4 *)(uint)bVar8;
  if ((bVar8 & 7) == 0) {
    bVar1 = *(byte *)(param_4[2] + 0x2c);
    if ((((bVar1 & 1) != 0) && ((char)bVar8 < '\0')) && ((*(byte *)(param_4 + 0xb) & 2) == 0)) {
      *(byte *)(param_4[2] + 0x2c) = bVar1 | 2;
    }
  }
  if ((char)local_44 != '\0') {
    puVar9 = *(undefined4 **)(*local_60 + 8);
    if (puVar9 == (undefined4 *)0x0) {
LAB_001ccb98:
      *(undefined4 **)((int)pppuVar15 + -4) = puVar9;
      *(undefined ***)((int)pppuVar15 + -8) = local_5c + -0x3b992;
      *(undefined4 *)((int)pppuVar15 + -0xc) = 0x5c;
      *(undefined ***)((int)pppuVar15 + -0x10) = local_5c + -0x41f7c;
                    /* WARNING: Subroutine does not return */
      *(undefined **)((int)pppuVar15 + -0x14) = &UNK_001ccbb1;
      FUN_00069d00();
    }
    if (*(char *)((int)puVar9 + 0x43e5) != '\0') {
      uVar4 = *(uint *)(*param_5 + 0x10);
      ppcVar5 = *(char ***)(*param_5 + 0x14);
      if (ppcVar5 < local_64 || (uint)((int)ppcVar5 - (int)local_64) < (uint)(uVar4 < local_58)) {
        ppuVar13 = local_5c + -0x3b977;
      }
      else if (local_64 < ppcVar5 || (uint)((int)local_64 - (int)ppcVar5) < (uint)(local_58 < uVar4)
              ) {
        ppuVar13 = local_5c + -0x3b96c;
      }
      else {
        ppuVar13 = (undefined **)((int)local_5c + -0xee586);
      }
      *(undefined ***)((int)pppuVar15 + -0x10) = ppuVar13;
      *(undefined4 *)((int)pppuVar15 + -0x14) = 0x1ccaee;
      uVar12 = gettext();
      *(int **)((int)pppuVar15 + -0x10) = param_9;
      *(undefined4 *)((int)pppuVar15 + -0x14) = 0;
      *(undefined4 **)((int)pppuVar15 + -0x18) = param_4;
      *(undefined4 *)((int)pppuVar15 + -0x1c) = uVar12;
      *(undefined4 *)((int)pppuVar15 + -0x20) = 0;
      *(undefined4 *)((int)pppuVar15 + -0x24) = 0x1ccafc;
      puVar9 = (undefined4 *)FUN_001c9960();
    }
  }
  return puVar9;
}

