
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* DWARF original name: define_special_symbol<64, true>
   DWARF original prototype: Sized_symbol<64> * define_special_symbol<64,_true>(Symbol_table * this,
   char * * pname, char * * pversion, bool only_if_ref, STV visibility, Sized_symbol<64> * *
   poldsym, bool * resolve_oldsym, bool is_forced_local) */

Sized_symbol<64> * __thiscall
gold::Symbol_table::define_special_symbol<64,_true>
          (Symbol_table *this,char **pname,char **pversion,bool only_if_ref,STV visibility,
          Sized_symbol<64> **poldsym,bool *resolve_oldsym,bool is_forced_local)

{
  byte bVar1;
  Target *pTVar2;
  Symbol_table *pSVar3;
  bool bVar4;
  char cVar5;
  int iVar6;
  Symbol_table *this_00;
  undefined4 extraout_var;
  Sized_symbol<64> *pSVar7;
  Sized_symbol<64> *pSVar8;
  char *pcVar9;
  pair<std::__detail::_Node_iterator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_false,_true>,_bool>
  pVar10;
  pair<std::__detail::_Node_iterator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_false,_true>,_bool>
  pVar11;
  _Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>
  local_b8;
  _Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>
  local_a8;
  bool local_91;
  Key name_key;
  Key version_key;
  bool is_global;
  char *local_70;
  anon_union_8_3_b0f6f408_for_u1_ local_68;
  string v;
  
  pSVar7 = (Sized_symbol<64> *)*pname;
  v._M_dataplus._M_p = (pointer)&v.field_2;
  *resolve_oldsym = false;
  *poldsym = (Sized_symbol<64> *)0x0;
  v._M_string_length = 0;
  v.field_2._M_local_buf[0] = '\0';
  if (is_forced_local) {
    cVar5 = '\0';
    is_forced_local = false;
    if (only_if_ref) goto LAB_00291f1e;
LAB_0029205d:
    pcVar9 = Stringpool_template<char>::add(&this->namepool_,(char *)pSVar7,true,&name_key);
    *pname = pcVar9;
    version_key = 0;
    if (*pversion != (char *)0x0) {
      pcVar9 = Stringpool_template<char>::add(&this->namepool_,*pversion,true,&version_key);
      *pversion = pcVar9;
    }
    pSVar8 = (Sized_symbol<64> *)&is_global;
    _is_global = (char *)name_key;
    local_68.object = (Object *)0x0;
    pSVar7 = pSVar8;
    local_70 = (char *)version_key;
    pVar10 = std::
             _Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>
             ::
             _M_emplace<std::pair<std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>
                       ((_Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>
                         *)&this->table_);
    local_a8._M_cur = (__node_type *)pVar10.first;
    local_91 = false;
    local_b8._M_cur = (__node_type *)0x0;
    if (is_forced_local != false) {
      local_70 = (char *)0x0;
      local_68.object = (Object *)0x0;
      _is_global = (char *)name_key;
      pVar11 = std::
               _Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>
               ::
               _M_emplace<std::pair<std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>
                         ((_Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>
                           *)&this->table_);
      local_b8._M_cur = (__node_type *)pVar11.first;
      local_91 = pVar11.second;
      pSVar7 = pSVar8;
    }
    this_00 = *(Symbol_table **)((long)local_a8._M_cur + 0x18);
    bVar4 = pVar10.second;
    if (bVar4 == false) {
      if (this_00 == (Symbol_table *)0x0) {
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/symtab.cc",0x75a,"define_special_symbol");
      }
      if (is_forced_local == false) {
LAB_00291f97:
        local_b8._M_cur = (__node_type *)0x0;
        local_a8._M_cur = (__node_type *)0x0;
        local_91 = (bool)'\0';
        cVar5 = is_forced_local;
      }
      else {
        pSVar7 = get_sized_symbol<64>(this_00,&pSVar7->super_Symbol);
        define_default_version<64,_true>(this,pSVar7,local_91,(iterator)local_b8._M_cur);
        local_b8._M_cur = (__node_type *)0x0;
        local_a8._M_cur = (__node_type *)0x0;
        local_91 = bVar4;
        cVar5 = '\0';
      }
    }
    else {
      if (this_00 != (Symbol_table *)0x0) {
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/symtab.cc",0x768,"define_special_symbol");
      }
      if (is_forced_local == false) {
        local_b8._M_cur = (__node_type *)0x0;
        local_91 = bVar4;
        cVar5 = is_forced_local;
      }
      else {
        cVar5 = local_91;
        if ((local_91 == false) &&
           (pSVar3 = *(Symbol_table **)
                      ((long)&((local_b8._M_cur)->
                              super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>
                              )._M_storage._M_storage + 0x10), local_91 = is_forced_local,
           cVar5 = is_forced_local, *(long *)&pSVar3->first_global_index_ == 0)) {
          local_b8._M_cur = (__node_type *)0x0;
          *resolve_oldsym = true;
          this_00 = pSVar3;
          pSVar7 = (Sized_symbol<64> *)resolve_oldsym;
          cVar5 = '\0';
        }
      }
    }
LAB_00291fab:
    pTVar2 = parameters->target_;
    if (pTVar2 == (Target *)0x0) {
                    /* WARNING: Subroutine does not return */
      do_gold_unreachable("../../gold/parameters.h",0x69,"target");
    }
    if (pTVar2->pti_->has_make_symbol == false) {
      pSVar8 = (Sized_symbol<64> *)operator_new(0x50);
      (pSVar8->super_Symbol).name_ = (char *)0x0;
      (pSVar8->super_Symbol).version_ = (char *)0x0;
      (pSVar8->super_Symbol).u1_ = (anon_union_8_3_b0f6f408_for_u1_)0x0;
      (pSVar8->super_Symbol).u2_ = (anon_union_4_3_b582a2bd_for_u2_)0x0;
      (pSVar8->super_Symbol).symtab_index_ = 0;
      (pSVar8->super_Symbol).dynsym_index_ = 0;
      (pSVar8->super_Symbol).plt_offset_ = 0;
      (pSVar8->super_Symbol).got_offsets_.got_type_ = 0;
      (pSVar8->super_Symbol).got_offsets_.got_offset_ = 0;
      *(undefined1 (*) [16])&(pSVar8->super_Symbol).got_offsets_.got_next_ = (undefined1  [16])0x0;
    }
    else {
      pSVar7 = (Sized_symbol<64> *)*pname;
      iVar6 = (*pTVar2->_vptr_Target[0x2a])(pTVar2,pSVar7,0,0,0,0);
      pSVar8 = (Sized_symbol<64> *)CONCAT44(extraout_var,iVar6);
      if (pSVar8 == (Sized_symbol<64> *)0x0) goto LAB_00292209;
    }
    if (local_91 == false) {
      if (this_00 == (Symbol_table *)0x0) {
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/symtab.cc",0x794,"define_special_symbol");
      }
    }
    else {
      *(Sized_symbol<64> **)
       ((long)&((local_a8._M_cur)->
               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>
               )._M_storage._M_storage + 0x10) = pSVar8;
    }
    if (cVar5 != '\0') {
      *(Sized_symbol<64> **)
       ((long)&((local_b8._M_cur)->
               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>
               )._M_storage._M_storage + 0x10) = pSVar8;
    }
    pSVar7 = get_sized_symbol<64>(this_00,&pSVar7->super_Symbol);
    *poldsym = pSVar7;
  }
  else {
    if (*pversion == (char *)0x0) {
      cVar5 = Version_script_info::get_symbol_version
                        (this->version_script_,(char *)pSVar7,&v,&is_global);
      if ((((bool)cVar5) && (cVar5 = is_global, is_global != false)) &&
         (cVar5 = is_forced_local, v._M_string_length != 0)) {
        *pversion = v._M_dataplus._M_p;
        cVar5 = is_global;
      }
      is_forced_local = (bool)cVar5;
      pSVar7 = (Sized_symbol<64> *)*pname;
    }
    cVar5 = is_forced_local;
    if (!only_if_ref) goto LAB_0029205d;
LAB_00291f1e:
                    /* try { // try from 00291f24 to 0029237e has its CatchHandler @ 0029237f */
    this_00 = (Symbol_table *)lookup(this,(char *)pSVar7,*pversion);
    if ((this_00 == (Symbol_table *)0x0) && (cVar5 != '\0')) {
      pSVar7 = (Sized_symbol<64> *)*pname;
      this_00 = (Symbol_table *)lookup(this,(char *)pSVar7,(char *)0x0);
    }
    if (this_00 != (Symbol_table *)0x0) {
      bVar1 = *(byte *)((long)&(this_00->table_)._M_h._M_bucket_count + 2);
      if ((bVar1 & 7) != 0) {
        if ((bVar1 & 7) == 4) goto LAB_00291f80;
        goto LAB_00292209;
      }
      if (((this_00->output_count_ != 0) ||
          (((this_00->table_)._M_h._M_bucket_count & 0x20000000) == 0)) &&
         (((*(byte *)(this_00->offset_ + 0x3c) & 1) == 0 ||
          ((visibility - STV_INTERNAL < 2 && (-1 < (char)bVar1)))))) goto LAB_00292209;
LAB_00291f80:
      *pname = (char *)this_00->saw_undefined_;
      if (cVar5 == '\0') {
        *pversion = *(char **)&this_00->first_global_index_;
        is_forced_local = false;
        goto LAB_00291f97;
      }
      pSVar7 = (Sized_symbol<64> *)*pversion;
      pcVar9 = Stringpool_template<char>::add(&this->namepool_,(char *)pSVar7,true,(Key *)0x0);
      *pversion = pcVar9;
      local_b8._M_cur = (__node_type *)0x0;
      local_a8._M_cur = (__node_type *)0x0;
      local_91 = (bool)'\0';
      cVar5 = '\0';
      goto LAB_00291fab;
    }
LAB_00292209:
    pSVar8 = (Sized_symbol<64> *)0x0;
  }
  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
       *)v._M_dataplus._M_p != &v.field_2) {
    operator_delete(v._M_dataplus._M_p);
  }
  return pSVar8;
}



undefined1 (*) [16]
FUN_00291ea0(long param_1,undefined8 *param_2,long *param_3,char param_4,int param_5,
            undefined8 *param_6,undefined1 *param_7,char param_8)

{
  byte bVar1;
  long *plVar2;
  undefined8 *puVar3;
  char cVar4;
  undefined8 *puVar5;
  undefined1 (*pauVar6) [16];
  undefined8 uVar7;
  long lVar8;
  char extraout_DL;
  char extraout_DL_00;
  char cVar9;
  long local_b8;
  long local_a8;
  char local_91;
  undefined8 local_88;
  undefined8 local_80;
  undefined8 local_78;
  undefined8 local_70;
  undefined8 local_68;
  undefined1 *local_58;
  long local_50;
  undefined1 local_48 [24];
  
  uVar7 = *param_2;
  local_58 = local_48;
  *param_7 = 0;
  *param_6 = 0;
  local_50 = 0;
  local_48[0] = 0;
  if (param_8 == '\0') {
    cVar9 = '\0';
    if (*param_3 == 0) {
      cVar4 = FUN_00279db0(*(undefined8 *)(param_1 + 0x288),uVar7,&local_58,&local_78);
      if (((cVar4 != '\0') && (cVar4 = (char)local_78, (char)local_78 != '\0')) &&
         (cVar4 = cVar9, local_50 != 0)) {
        *param_3 = (long)local_58;
        cVar4 = (char)local_78;
      }
      cVar9 = cVar4;
      uVar7 = *param_2;
    }
    cVar4 = cVar9;
    if (param_4 == '\0') goto LAB_0029205d;
LAB_00291f1e:
                    /* try { // try from 00291f24 to 0029237e has its CatchHandler @ 0029237f */
    puVar5 = (undefined8 *)FUN_00284d90(param_1,uVar7,*param_3);
    if ((puVar5 == (undefined8 *)0x0) && (cVar4 != '\0')) {
      puVar5 = (undefined8 *)FUN_00284d90(param_1,*param_2,0);
    }
    if (puVar5 != (undefined8 *)0x0) {
      bVar1 = *(byte *)((long)puVar5 + 0x3a);
      if ((bVar1 & 7) != 0) {
        if ((bVar1 & 7) == 4) goto LAB_00291f80;
        goto LAB_00292209;
      }
      if (((*(int *)(puVar5 + 3) != 0) || ((*(byte *)((long)puVar5 + 0x3b) & 0x20) == 0)) &&
         (((*(byte *)(puVar5[2] + 0x3c) & 1) == 0 || ((param_5 - 1U < 2 && (-1 < (char)bVar1))))))
      goto LAB_00292209;
LAB_00291f80:
      *param_2 = *puVar5;
      if (cVar4 == '\0') {
        *param_3 = puVar5[1];
        cVar9 = '\0';
        goto LAB_00291f97;
      }
      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,0);
      *param_3 = lVar8;
      local_b8 = 0;
      local_a8 = 0;
      local_91 = '\0';
      cVar4 = '\0';
      goto LAB_00291fab;
    }
LAB_00292209:
    pauVar6 = (undefined1 (*) [16])0x0;
  }
  else {
    cVar4 = '\0';
    cVar9 = '\0';
    if (param_4 != '\0') goto LAB_00291f1e;
LAB_0029205d:
    uVar7 = FUN_00280180(param_1 + 0x68,uVar7,1,&local_88);
    *param_2 = uVar7;
    local_80 = 0;
    if (*param_3 != 0) {
      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,&local_80);
      *param_3 = lVar8;
    }
    local_78 = local_88;
    local_68 = 0;
    local_70 = local_80;
    local_a8 = FUN_0028dab0(param_1 + 0x30,&local_78);
    local_91 = '\0';
    local_b8 = 0;
    if (cVar9 != '\0') {
      local_70 = 0;
      local_68 = 0;
      local_78 = local_88;
      local_b8 = FUN_0028dab0(param_1 + 0x30,&local_78);
      local_91 = extraout_DL_00;
    }
    puVar5 = *(undefined8 **)(local_a8 + 0x18);
    if (extraout_DL == '\0') {
      if (puVar5 == (undefined8 *)0x0) {
                    /* WARNING: Subroutine does not return */
        FUN_0018dcf0("../../gold/symtab.cc",0x75a,"define_special_symbol");
      }
      if (cVar9 == '\0') {
LAB_00291f97:
        local_b8 = 0;
        local_a8 = 0;
        local_91 = '\0';
        cVar4 = cVar9;
      }
      else {
        uVar7 = FUN_002827c0(puVar5);
        FUN_0028c430(param_1,uVar7,local_91,local_b8);
        local_b8 = 0;
        local_a8 = 0;
        local_91 = extraout_DL;
        cVar4 = '\0';
      }
    }
    else {
      if (puVar5 != (undefined8 *)0x0) {
                    /* WARNING: Subroutine does not return */
        FUN_0018dcf0("../../gold/symtab.cc",0x768,"define_special_symbol");
      }
      if (cVar9 == '\0') {
        local_b8 = 0;
        local_91 = extraout_DL;
        cVar4 = cVar9;
      }
      else {
        cVar4 = local_91;
        if ((local_91 == '\0') &&
           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,
           puVar3[1] == 0)) {
          local_b8 = 0;
          *param_7 = 1;
          puVar5 = puVar3;
          cVar4 = '\0';
        }
      }
    }
LAB_00291fab:
    plVar2 = *(long **)(PTR_DAT_004586c8 + 0x18);
    if (plVar2 == (long *)0x0) {
                    /* WARNING: Subroutine does not return */
      FUN_0018dcf0("../../gold/parameters.h",0x69,"target");
    }
    if (*(char *)(plVar2[1] + 0xc) == '\0') {
      pauVar6 = (undefined1 (*) [16])FUN_002ee780(0x50);
      *pauVar6 = (undefined1  [16])0x0;
      pauVar6[1] = (undefined1  [16])0x0;
      pauVar6[2] = (undefined1  [16])0x0;
      pauVar6[3] = (undefined1  [16])0x0;
    }
    else {
      pauVar6 = (undefined1 (*) [16])(**(code **)(*plVar2 + 0x150))(plVar2,*param_2,0,0,0,0);
      if (pauVar6 == (undefined1 (*) [16])0x0) goto LAB_00292209;
    }
    if (local_91 == '\0') {
      if (puVar5 == (undefined8 *)0x0) {
                    /* WARNING: Subroutine does not return */
        FUN_0018dcf0("../../gold/symtab.cc",0x794,"define_special_symbol");
      }
    }
    else {
      *(undefined1 (**) [16])(local_a8 + 0x18) = pauVar6;
    }
    if (cVar4 != '\0') {
      *(undefined1 (**) [16])(local_b8 + 0x18) = pauVar6;
    }
    uVar7 = FUN_002827c0(puVar5);
    *param_6 = uVar7;
  }
  if (local_58 != local_48) {
    FUN_002eff50();
  }
  return pauVar6;
}


PUSH R15
MOV R15,RDI
PUSH R14
MOV R14,RDX
PUSH R13
MOV R13,RSI
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x88
MOV RSI,qword ptr [RSI]
MOV EBX,dword ptr [RSP + 0xc8]
MOV dword ptr [RSP],ECX
LEA RBP,[RSP + 0x60]
MOV RCX,qword ptr [RSP + 0xc0]
LEA RAX,[RBP + 0x10]
MOV dword ptr [RSP + 0x10],R8D
MOV qword ptr [RSP + 0x8],R9
MOV byte ptr [RCX],0x0
MOV qword ptr [RSP + 0x60],RAX
MOV qword ptr [R9],0x0
MOV qword ptr [RSP + 0x68],0x0
MOV byte ptr [RSP + 0x70],0x0
TEST BL,BL
JNZ 0x00292050
CMP qword ptr [RDX],0x0
MOV R12D,EBX
JZ 0x00292240
CMP byte ptr [RSP],0x0
JZ 0x0029205d
MOV RDX,qword ptr [R14]
MOV RDI,R15
CALL 0x00284d90
MOV RBX,RAX
TEST RAX,RAX
JNZ 0x00291f3a
TEST R12B,R12B
JNZ 0x00292218
TEST RBX,RBX
JZ 0x00292209
MOVZX EAX,byte ptr [RBX + 0x3a]
MOV EDX,EAX
AND EDX,0x7
JNZ 0x00292200
MOV EDX,dword ptr [RBX + 0x18]
TEST EDX,EDX
JNZ 0x00291f5f
TEST byte ptr [RBX + 0x3b],0x20
JNZ 0x00291f80
MOV RDX,qword ptr [RBX + 0x10]
TEST byte ptr [RDX + 0x3c],0x1
JZ 0x00292209
MOV EDX,dword ptr [RSP + 0x10]
SUB EDX,0x1
CMP EDX,0x1
JBE 0x00292320
NOP dword ptr [RAX]
MOV RAX,qword ptr [RBX]
MOV qword ptr [R13],RAX
TEST R12B,R12B
JNZ 0x00292288
MOV RAX,qword ptr [RBX + 0x8]
MOV qword ptr [R14],RAX
MOV qword ptr [RSP],0x0
XOR R14D,R14D
MOV qword ptr [RSP + 0x10],0x0
MOV RAX,qword ptr [0x004586c8]
MOV RDI,qword ptr [RAX + 0x18]
TEST RDI,RDI
JZ 0x00292337
MOV RAX,qword ptr [RDI + 0x8]
CMP byte ptr [RAX + 0xc],0x0
JZ 0x002921d8
MOV RAX,qword ptr [RDI]
XOR R9D,R9D
XOR R8D,R8D
XOR ECX,ECX
XOR EDX,EDX
MOV RSI,qword ptr [R13]
CALL qword ptr [RAX + 0x150]
MOV R13,RAX
TEST RAX,RAX
JZ 0x00292209
TEST R14B,R14B
JZ 0x00292158
MOV RAX,qword ptr [RSP + 0x10]
MOV qword ptr [RAX + 0x18],R13
TEST R12B,R12B
JZ 0x0029200f
MOV RAX,qword ptr [RSP]
MOV qword ptr [RAX + 0x18],R13
MOV RDI,RBX
CALL 0x002827c0
MOV RCX,qword ptr [RSP + 0x8]
MOV qword ptr [RCX],RAX
MOV RDI,qword ptr [RSP + 0x60]
ADD RBP,0x10
CMP RDI,RBP
JZ 0x00292032
CALL 0x002eff50
ADD RSP,0x88
MOV RAX,R13
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
XOR R12D,R12D
CMP byte ptr [RSP],0x0
JNZ 0x00291f1e
LEA RBX,[R15 + 0x68]
LEA RCX,[RSP + 0x30]
MOV EDX,0x1
MOV RDI,RBX
CALL 0x00280180
MOV qword ptr [R13],RAX
MOV RSI,qword ptr [R14]
MOV qword ptr [RSP + 0x38],0x0
TEST RSI,RSI
JZ 0x00292300
LEA RCX,[RSP + 0x38]
MOV EDX,0x1
MOV RDI,RBX
CALL 0x00280180
MOV qword ptr [R14],RAX
MOV RAX,qword ptr [RSP + 0x38]
MOV RDX,qword ptr [RSP + 0x30]
MOV qword ptr [RSP + 0x48],RAX
LEA R14,[RSP + 0x40]
LEA RAX,[R15 + 0x30]
MOV RSI,R14
MOV RDI,RAX
MOV qword ptr [RSP + 0x28],RAX
MOV qword ptr [RSP + 0x40],RDX
MOV qword ptr [RSP + 0x50],0x0
CALL 0x0028dab0
MOV RBX,RAX
MOV qword ptr [RSP + 0x18],RDX
MOV qword ptr [RSP + 0x10],RAX
MOV byte ptr [RSP + 0x27],0x0
MOV qword ptr [RSP],0x0
TEST R12B,R12B
JNZ 0x002922c0
MOV RAX,qword ptr [RSP + 0x18]
MOV RBX,qword ptr [RBX + 0x18]
MOV R14D,EAX
TEST AL,AL
JNZ 0x00292180
TEST RBX,RBX
JZ 0x0029234f
TEST R12B,R12B
JZ 0x00291f97
MOV RDI,RBX
CALL 0x002827c0
MOVZX EDX,byte ptr [RSP + 0x27]
MOV RCX,qword ptr [RSP]
MOV RSI,RAX
MOV RDI,R15
CALL 0x0028c430
MOVZX R12D,byte ptr [RSP + 0x18]
MOV qword ptr [RSP],0x0
MOV qword ptr [RSP + 0x10],0x0
JMP 0x00291fab
TEST RBX,RBX
JNZ 0x00292002
LEA RDX,[0x39e1c0]
MOV ESI,0x794
LEA RDI,[0x39d651]
CALL 0x0018dcf0
TEST RBX,RBX
JNZ 0x00292367
TEST R12B,R12B
JZ 0x00292230
MOVZX R14D,byte ptr [RSP + 0x27]
TEST R14B,R14B
JNZ 0x00292310
MOV RAX,qword ptr [RSP]
MOV R14D,R12D
MOV RAX,qword ptr [RAX + 0x18]
CMP qword ptr [RAX + 0x8],0x0
JNZ 0x00291fab
MOV RSI,qword ptr [RSP + 0xc0]
MOV qword ptr [RSP],0x0
XOR R12D,R12D
MOV RBX,RAX
MOV byte ptr [RSI],0x1
JMP 0x00291fab
MOV EDI,0x50
CALL 0x002ee780
PXOR XMM0,XMM0
MOV R13,RAX
MOVUPS xmmword ptr [RAX],XMM0
MOVUPS xmmword ptr [RAX + 0x10],XMM0
MOVUPS xmmword ptr [RAX + 0x20],XMM0
MOVUPS xmmword ptr [RAX + 0x30],XMM0
JMP 0x00291ff0
CMP DL,0x4
JZ 0x00291f80
XOR R13D,R13D
JMP 0x0029201f
MOV RSI,qword ptr [R13]
XOR EDX,EDX
MOV RDI,R15
CALL 0x00284d90
MOV RBX,RAX
JMP 0x00291f3a
MOV qword ptr [RSP],0x0
JMP 0x00291fab
MOV RDI,qword ptr [RDI + 0x288]
LEA RCX,[RSP + 0x40]
MOV RDX,RBP
CALL 0x00279db0
TEST AL,AL
JZ 0x00292278
MOVZX EAX,byte ptr [RSP + 0x40]
TEST AL,AL
JZ 0x00292278
CMP qword ptr [RSP + 0x68],0x0
JZ 0x00292330
MOV RDX,qword ptr [RSP + 0x60]
MOV qword ptr [R14],RDX
NOP dword ptr [RAX]
MOV RSI,qword ptr [R13]
MOV R12D,EAX
JMP 0x00291f14
MOV RSI,qword ptr [R14]
LEA RDI,[R15 + 0x68]
XOR ECX,ECX
MOV EDX,0x1
CALL 0x00280180
MOV qword ptr [R14],RAX
XOR R12D,R12D
XOR R14D,R14D
MOV qword ptr [RSP],0x0
MOV qword ptr [RSP + 0x10],0x0
JMP 0x00291fab
MOV RAX,qword ptr [RSP + 0x30]
MOV RDI,qword ptr [RSP + 0x28]
MOV RSI,R14
MOV qword ptr [RSP + 0x48],0x0
MOV qword ptr [RSP + 0x50],0x0
MOV qword ptr [RSP + 0x40],RAX
CALL 0x0028dab0
MOV qword ptr [RSP],RAX
MOV byte ptr [RSP + 0x27],DL
JMP 0x002920fa
XOR EAX,EAX
JMP 0x002920a6
MOV R12D,R14D
JMP 0x00291fab
TEST AL,AL
JS 0x00291f80
JMP 0x00292209
MOV EAX,EBX
JMP 0x00292278
LEA RDX,[0x39e3cb]
MOV ESI,0x69
LEA RDI,[0x380279]
CALL 0x0018dcf0
LEA RDX,[0x39e1c0]
MOV ESI,0x75a
LEA RDI,[0x39d651]
CALL 0x0018dcf0
LEA RDX,[0x39e1c0]
MOV ESI,0x768
LEA RDI,[0x39d651]
CALL 0x0018dcf0
(translation_unit "undefined1 (*) [16]\nFUN_00291ea0(long param_1,undefined8 *param_2,long *param_3,char param_4,int param_5,\n            undefined8 *param_6,undefined1 *param_7,char param_8)\n\n{\n  byte bVar1;\n  long *plVar2;\n  undefined8 *puVar3;\n  char cVar4;\n  undefined8 *puVar5;\n  undefined1 (*pauVar6) [16];\n  undefined8 uVar7;\n  long lVar8;\n  char extraout_DL;\n  char extraout_DL_00;\n  char cVar9;\n  long local_b8;\n  long local_a8;\n  char local_91;\n  undefined8 local_88;\n  undefined8 local_80;\n  undefined8 local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  undefined1 *local_58;\n  long local_50;\n  undefined1 local_48 [24];\n  \n  uVar7 = *param_2;\n  local_58 = local_48;\n  *param_7 = 0;\n  *param_6 = 0;\n  local_50 = 0;\n  local_48[0] = 0;\n  if (param_8 == '\0') {\n    cVar9 = '\0';\n    if (*param_3 == 0) {\n      cVar4 = FUN_00279db0(*(undefined8 *)(param_1 + 0x288),uVar7,&local_58,&local_78);\n      if (((cVar4 != '\0') && (cVar4 = (char)local_78, (char)local_78 != '\0')) &&\n         (cVar4 = cVar9, local_50 != 0)) {\n        *param_3 = (long)local_58;\n        cVar4 = (char)local_78;\n      }\n      cVar9 = cVar4;\n      uVar7 = *param_2;\n    }\n    cVar4 = cVar9;\n    if (param_4 == '\0') goto LAB_0029205d;\nLAB_00291f1e:\n                    /* try { // try from 00291f24 to 0029237e has its CatchHandler @ 0029237f */\n    puVar5 = (undefined8 *)FUN_00284d90(param_1,uVar7,*param_3);\n    if ((puVar5 == (undefined8 *)0x0) && (cVar4 != '\0')) {\n      puVar5 = (undefined8 *)FUN_00284d90(param_1,*param_2,0);\n    }\n    if (puVar5 != (undefined8 *)0x0) {\n      bVar1 = *(byte *)((long)puVar5 + 0x3a);\n      if ((bVar1 & 7) != 0) {\n        if ((bVar1 & 7) == 4) goto LAB_00291f80;\n        goto LAB_00292209;\n      }\n      if (((*(int *)(puVar5 + 3) != 0) || ((*(byte *)((long)puVar5 + 0x3b) & 0x20) == 0)) &&\n         (((*(byte *)(puVar5[2] + 0x3c) & 1) == 0 || ((param_5 - 1U < 2 && (-1 < (char)bVar1))))))\n      goto LAB_00292209;\nLAB_00291f80:\n      *param_2 = *puVar5;\n      if (cVar4 == '\0') {\n        *param_3 = puVar5[1];\n        cVar9 = '\0';\n        goto LAB_00291f97;\n      }\n      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,0);\n      *param_3 = lVar8;\n      local_b8 = 0;\n      local_a8 = 0;\n      local_91 = '\0';\n      cVar4 = '\0';\n      goto LAB_00291fab;\n    }\nLAB_00292209:\n    pauVar6 = (undefined1 (*) [16])0x0;\n  }\n  else {\n    cVar4 = '\0';\n    cVar9 = '\0';\n    if (param_4 != '\0') goto LAB_00291f1e;\nLAB_0029205d:\n    uVar7 = FUN_00280180(param_1 + 0x68,uVar7,1,&local_88);\n    *param_2 = uVar7;\n    local_80 = 0;\n    if (*param_3 != 0) {\n      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,&local_80);\n      *param_3 = lVar8;\n    }\n    local_78 = local_88;\n    local_68 = 0;\n    local_70 = local_80;\n    local_a8 = FUN_0028dab0(param_1 + 0x30,&local_78);\n    local_91 = '\0';\n    local_b8 = 0;\n    if (cVar9 != '\0') {\n      local_70 = 0;\n      local_68 = 0;\n      local_78 = local_88;\n      local_b8 = FUN_0028dab0(param_1 + 0x30,&local_78);\n      local_91 = extraout_DL_00;\n    }\n    puVar5 = *(undefined8 **)(local_a8 + 0x18);\n    if (extraout_DL == '\0') {\n      if (puVar5 == (undefined8 *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018dcf0("../../gold/symtab.cc",0x75a,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\nLAB_00291f97:\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = '\0';\n        cVar4 = cVar9;\n      }\n      else {\n        uVar7 = FUN_002827c0(puVar5);\n        FUN_0028c430(param_1,uVar7,local_91,local_b8);\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = '\0';\n      }\n    }\n    else {\n      if (puVar5 != (undefined8 *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018dcf0("../../gold/symtab.cc",0x768,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\n        local_b8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = cVar9;\n      }\n      else {\n        cVar4 = local_91;\n        if ((local_91 == '\0') &&\n           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0)) {\n          local_b8 = 0;\n          *param_7 = 1;\n          puVar5 = puVar3;\n          cVar4 = '\0';\n        }\n      }\n    }\nLAB_00291fab:\n    plVar2 = *(long **)(PTR_DAT_004586c8 + 0x18);\n    if (plVar2 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0018dcf0("../../gold/parameters.h",0x69,"target");\n    }\n    if (*(char *)(plVar2[1] + 0xc) == '\0') {\n      pauVar6 = (undefined1 (*) [16])FUN_002ee780(0x50);\n      *pauVar6 = (undefined1  [16])0x0;\n      pauVar6[1] = (undefined1  [16])0x0;\n      pauVar6[2] = (undefined1  [16])0x0;\n      pauVar6[3] = (undefined1  [16])0x0;\n    }\n    else {\n      pauVar6 = (undefined1 (*) [16])(**(code **)(*plVar2 + 0x150))(plVar2,*param_2,0,0,0,0);\n      if (pauVar6 == (undefined1 (*) [16])0x0) goto LAB_00292209;\n    }\n    if (local_91 == '\0') {\n      if (puVar5 == (undefined8 *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018dcf0("../../gold/symtab.cc",0x794,"define_special_symbol");\n      }\n    }\n    else {\n      *(undefined1 (**) [16])(local_a8 + 0x18) = pauVar6;\n    }\n    if (cVar4 != '\0') {\n      *(undefined1 (**) [16])(local_b8 + 0x18) = pauVar6;\n    }\n    uVar7 = FUN_002827c0(puVar5);\n    *param_6 = uVar7;\n  }\n  if (local_58 != local_48) {\n    FUN_002eff50();\n  }\n  return pauVar6;\n}\n\n" (function_definition "undefined1 (*) [16]\nFUN_00291ea0(long param_1,undefined8 *param_2,long *param_3,char param_4,int param_5,\n            undefined8 *param_6,undefined1 *param_7,char param_8)\n\n{\n  byte bVar1;\n  long *plVar2;\n  undefined8 *puVar3;\n  char cVar4;\n  undefined8 *puVar5;\n  undefined1 (*pauVar6) [16];\n  undefined8 uVar7;\n  long lVar8;\n  char extraout_DL;\n  char extraout_DL_00;\n  char cVar9;\n  long local_b8;\n  long local_a8;\n  char local_91;\n  undefined8 local_88;\n  undefined8 local_80;\n  undefined8 local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  undefined1 *local_58;\n  long local_50;\n  undefined1 local_48 [24];\n  \n  uVar7 = *param_2;\n  local_58 = local_48;\n  *param_7 = 0;\n  *param_6 = 0;\n  local_50 = 0;\n  local_48[0] = 0;\n  if (param_8 == '\0') {\n    cVar9 = '\0';\n    if (*param_3 == 0) {\n      cVar4 = FUN_00279db0(*(undefined8 *)(param_1 + 0x288),uVar7,&local_58,&local_78);\n      if (((cVar4 != '\0') && (cVar4 = (char)local_78, (char)local_78 != '\0')) &&\n         (cVar4 = cVar9, local_50 != 0)) {\n        *param_3 = (long)local_58;\n        cVar4 = (char)local_78;\n      }\n      cVar9 = cVar4;\n      uVar7 = *param_2;\n    }\n    cVar4 = cVar9;\n    if (param_4 == '\0') goto LAB_0029205d;\nLAB_00291f1e:\n                    /* try { // try from 00291f24 to 0029237e has its CatchHandler @ 0029237f */\n    puVar5 = (undefined8 *)FUN_00284d90(param_1,uVar7,*param_3);\n    if ((puVar5 == (undefined8 *)0x0) && (cVar4 != '\0')) {\n      puVar5 = (undefined8 *)FUN_00284d90(param_1,*param_2,0);\n    }\n    if (puVar5 != (undefined8 *)0x0) {\n      bVar1 = *(byte *)((long)puVar5 + 0x3a);\n      if ((bVar1 & 7) != 0) {\n        if ((bVar1 & 7) == 4) goto LAB_00291f80;\n        goto LAB_00292209;\n      }\n      if (((*(int *)(puVar5 + 3) != 0) || ((*(byte *)((long)puVar5 + 0x3b) & 0x20) == 0)) &&\n         (((*(byte *)(puVar5[2] + 0x3c) & 1) == 0 || ((param_5 - 1U < 2 && (-1 < (char)bVar1))))))\n      goto LAB_00292209;\nLAB_00291f80:\n      *param_2 = *puVar5;\n      if (cVar4 == '\0') {\n        *param_3 = puVar5[1];\n        cVar9 = '\0';\n        goto LAB_00291f97;\n      }\n      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,0);\n      *param_3 = lVar8;\n      local_b8 = 0;\n      local_a8 = 0;\n      local_91 = '\0';\n      cVar4 = '\0';\n      goto LAB_00291fab;\n    }\nLAB_00292209:\n    pauVar6 = (undefined1 (*) [16])0x0;\n  }\n  else {\n    cVar4 = '\0';\n    cVar9 = '\0';\n    if (param_4 != '\0') goto LAB_00291f1e;\nLAB_0029205d:\n    uVar7 = FUN_00280180(param_1 + 0x68,uVar7,1,&local_88);\n    *param_2 = uVar7;\n    local_80 = 0;\n    if (*param_3 != 0) {\n      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,&local_80);\n      *param_3 = lVar8;\n    }\n    local_78 = local_88;\n    local_68 = 0;\n    local_70 = local_80;\n    local_a8 = FUN_0028dab0(param_1 + 0x30,&local_78);\n    local_91 = '\0';\n    local_b8 = 0;\n    if (cVar9 != '\0') {\n      local_70 = 0;\n      local_68 = 0;\n      local_78 = local_88;\n      local_b8 = FUN_0028dab0(param_1 + 0x30,&local_78);\n      local_91 = extraout_DL_00;\n    }\n    puVar5 = *(undefined8 **)(local_a8 + 0x18);\n    if (extraout_DL == '\0') {\n      if (puVar5 == (undefined8 *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018dcf0("../../gold/symtab.cc",0x75a,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\nLAB_00291f97:\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = '\0';\n        cVar4 = cVar9;\n      }\n      else {\n        uVar7 = FUN_002827c0(puVar5);\n        FUN_0028c430(param_1,uVar7,local_91,local_b8);\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = '\0';\n      }\n    }\n    else {\n      if (puVar5 != (undefined8 *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018dcf0("../../gold/symtab.cc",0x768,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\n        local_b8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = cVar9;\n      }\n      else {\n        cVar4 = local_91;\n        if ((local_91 == '\0') &&\n           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0)) {\n          local_b8 = 0;\n          *param_7 = 1;\n          puVar5 = puVar3;\n          cVar4 = '\0';\n        }\n      }\n    }\nLAB_00291fab:\n    plVar2 = *(long **)(PTR_DAT_004586c8 + 0x18);\n    if (plVar2 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0018dcf0("../../gold/parameters.h",0x69,"target");\n    }\n    if (*(char *)(plVar2[1] + 0xc) == '\0') {\n      pauVar6 = (undefined1 (*) [16])FUN_002ee780(0x50);\n      *pauVar6 = (undefined1  [16])0x0;\n      pauVar6[1] = (undefined1  [16])0x0;\n      pauVar6[2] = (undefined1  [16])0x0;\n      pauVar6[3] = (undefined1  [16])0x0;\n    }\n    else {\n      pauVar6 = (undefined1 (*) [16])(**(code **)(*plVar2 + 0x150))(plVar2,*param_2,0,0,0,0);\n      if (pauVar6 == (undefined1 (*) [16])0x0) goto LAB_00292209;\n    }\n    if (local_91 == '\0') {\n      if (puVar5 == (undefined8 *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018dcf0("../../gold/symtab.cc",0x794,"define_special_symbol");\n      }\n    }\n    else {\n      *(undefined1 (**) [16])(local_a8 + 0x18) = pauVar6;\n    }\n    if (cVar4 != '\0') {\n      *(undefined1 (**) [16])(local_b8 + 0x18) = pauVar6;\n    }\n    uVar7 = FUN_002827c0(puVar5);\n    *param_6 = uVar7;\n  }\n  if (local_58 != local_48) {\n    FUN_002eff50();\n  }\n  return pauVar6;\n}" type_identifier (ERROR "(*) [16]" (array_declarator "(*) [16]" (parenthesized_declarator "(*)" ( (pointer_declarator "*" * identifier) )) [ number_literal ])) (function_declarator "FUN_00291ea0(long param_1,undefined8 *param_2,long *param_3,char param_4,int param_5,\n            undefined8 *param_6,undefined1 *param_7,char param_8)" identifier (parameter_list "(long param_1,undefined8 *param_2,long *param_3,char param_4,int param_5,\n            undefined8 *param_6,undefined1 *param_7,char param_8)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "long *param_3" (sized_type_specifier "long" long) (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "char param_4" primitive_type identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "undefined8 *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "undefined1 *param_7" type_identifier (pointer_declarator "*param_7" * identifier)) , (parameter_declaration "char param_8" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  long *plVar2;\n  undefined8 *puVar3;\n  char cVar4;\n  undefined8 *puVar5;\n  undefined1 (*pauVar6) [16];\n  undefined8 uVar7;\n  long lVar8;\n  char extraout_DL;\n  char extraout_DL_00;\n  char cVar9;\n  long local_b8;\n  long local_a8;\n  char local_91;\n  undefined8 local_88;\n  undefined8 local_80;\n  undefined8 local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  undefined1 *local_58;\n  long local_50;\n  undefined1 local_48 [24];\n  \n  uVar7 = *param_2;\n  local_58 = local_48;\n  *param_7 = 0;\n  *param_6 = 0;\n  local_50 = 0;\n  local_48[0] = 0;\n  if (param_8 == '\0') {\n    cVar9 = '\0';\n    if (*param_3 == 0) {\n      cVar4 = FUN_00279db0(*(undefined8 *)(param_1 + 0x288),uVar7,&local_58,&local_78);\n      if (((cVar4 != '\0') && (cVar4 = (char)local_78, (char)local_78 != '\0')) &&\n         (cVar4 = cVar9, local_50 != 0)) {\n        *param_3 = (long)local_58;\n        cVar4 = (char)local_78;\n      }\n      cVar9 = cVar4;\n      uVar7 = *param_2;\n    }\n    cVar4 = cVar9;\n    if (param_4 == '\0') goto LAB_0029205d;\nLAB_00291f1e:\n                    /* try { // try from 00291f24 to 0029237e has its CatchHandler @ 0029237f */\n    puVar5 = (undefined8 *)FUN_00284d90(param_1,uVar7,*param_3);\n    if ((puVar5 == (undefined8 *)0x0) && (cVar4 != '\0')) {\n      puVar5 = (undefined8 *)FUN_00284d90(param_1,*param_2,0);\n    }\n    if (puVar5 != (undefined8 *)0x0) {\n      bVar1 = *(byte *)((long)puVar5 + 0x3a);\n      if ((bVar1 & 7) != 0) {\n        if ((bVar1 & 7) == 4) goto LAB_00291f80;\n        goto LAB_00292209;\n      }\n      if (((*(int *)(puVar5 + 3) != 0) || ((*(byte *)((long)puVar5 + 0x3b) & 0x20) == 0)) &&\n         (((*(byte *)(puVar5[2] + 0x3c) & 1) == 0 || ((param_5 - 1U < 2 && (-1 < (char)bVar1))))))\n      goto LAB_00292209;\nLAB_00291f80:\n      *param_2 = *puVar5;\n      if (cVar4 == '\0') {\n        *param_3 = puVar5[1];\n        cVar9 = '\0';\n        goto LAB_00291f97;\n      }\n      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,0);\n      *param_3 = lVar8;\n      local_b8 = 0;\n      local_a8 = 0;\n      local_91 = '\0';\n      cVar4 = '\0';\n      goto LAB_00291fab;\n    }\nLAB_00292209:\n    pauVar6 = (undefined1 (*) [16])0x0;\n  }\n  else {\n    cVar4 = '\0';\n    cVar9 = '\0';\n    if (param_4 != '\0') goto LAB_00291f1e;\nLAB_0029205d:\n    uVar7 = FUN_00280180(param_1 + 0x68,uVar7,1,&local_88);\n    *param_2 = uVar7;\n    local_80 = 0;\n    if (*param_3 != 0) {\n      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,&local_80);\n      *param_3 = lVar8;\n    }\n    local_78 = local_88;\n    local_68 = 0;\n    local_70 = local_80;\n    local_a8 = FUN_0028dab0(param_1 + 0x30,&local_78);\n    local_91 = '\0';\n    local_b8 = 0;\n    if (cVar9 != '\0') {\n      local_70 = 0;\n      local_68 = 0;\n      local_78 = local_88;\n      local_b8 = FUN_0028dab0(param_1 + 0x30,&local_78);\n      local_91 = extraout_DL_00;\n    }\n    puVar5 = *(undefined8 **)(local_a8 + 0x18);\n    if (extraout_DL == '\0') {\n      if (puVar5 == (undefined8 *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018dcf0("../../gold/symtab.cc",0x75a,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\nLAB_00291f97:\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = '\0';\n        cVar4 = cVar9;\n      }\n      else {\n        uVar7 = FUN_002827c0(puVar5);\n        FUN_0028c430(param_1,uVar7,local_91,local_b8);\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = '\0';\n      }\n    }\n    else {\n      if (puVar5 != (undefined8 *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018dcf0("../../gold/symtab.cc",0x768,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\n        local_b8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = cVar9;\n      }\n      else {\n        cVar4 = local_91;\n        if ((local_91 == '\0') &&\n           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0)) {\n          local_b8 = 0;\n          *param_7 = 1;\n          puVar5 = puVar3;\n          cVar4 = '\0';\n        }\n      }\n    }\nLAB_00291fab:\n    plVar2 = *(long **)(PTR_DAT_004586c8 + 0x18);\n    if (plVar2 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0018dcf0("../../gold/parameters.h",0x69,"target");\n    }\n    if (*(char *)(plVar2[1] + 0xc) == '\0') {\n      pauVar6 = (undefined1 (*) [16])FUN_002ee780(0x50);\n      *pauVar6 = (undefined1  [16])0x0;\n      pauVar6[1] = (undefined1  [16])0x0;\n      pauVar6[2] = (undefined1  [16])0x0;\n      pauVar6[3] = (undefined1  [16])0x0;\n    }\n    else {\n      pauVar6 = (undefined1 (*) [16])(**(code **)(*plVar2 + 0x150))(plVar2,*param_2,0,0,0,0);\n      if (pauVar6 == (undefined1 (*) [16])0x0) goto LAB_00292209;\n    }\n    if (local_91 == '\0') {\n      if (puVar5 == (undefined8 *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018dcf0("../../gold/symtab.cc",0x794,"define_special_symbol");\n      }\n    }\n    else {\n      *(undefined1 (**) [16])(local_a8 + 0x18) = pauVar6;\n    }\n    if (cVar4 != '\0') {\n      *(undefined1 (**) [16])(local_b8 + 0x18) = pauVar6;\n    }\n    uVar7 = FUN_002827c0(puVar5);\n    *param_6 = uVar7;\n  }\n  if (local_58 != local_48) {\n    FUN_002eff50();\n  }\n  return pauVar6;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "long *plVar2;" (sized_type_specifier "long" long) (pointer_declarator "*plVar2" * identifier) ;) (declaration "undefined8 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "undefined8 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (expression_statement "undefined1 (*pauVar6) [16];" (subscript_expression "undefined1 (*pauVar6) [16]" (call_expression "undefined1 (*pauVar6)" identifier (argument_list "(*pauVar6)" ( (pointer_expression "*pauVar6" * identifier) ))) [ number_literal ]) ;) (declaration "undefined8 uVar7;" type_identifier identifier ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "char extraout_DL;" primitive_type identifier ;) (declaration "char extraout_DL_00;" primitive_type identifier ;) (declaration "char cVar9;" primitive_type identifier ;) (declaration "long local_b8;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_a8;" (sized_type_specifier "long" long) identifier ;) (declaration "char local_91;" primitive_type identifier ;) (declaration "undefined8 local_88;" type_identifier identifier ;) (declaration "undefined8 local_80;" type_identifier identifier ;) (declaration "undefined8 local_78;" type_identifier identifier ;) (declaration "undefined8 local_70;" type_identifier identifier ;) (declaration "undefined8 local_68;" type_identifier identifier ;) (declaration "undefined1 *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "long local_50;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 local_48 [24];" type_identifier (array_declarator "local_48 [24]" identifier [ number_literal ]) ;) (expression_statement "uVar7 = *param_2;" (assignment_expression "uVar7 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "local_58 = local_48;" (assignment_expression "local_58 = local_48" identifier = identifier) ;) (expression_statement "*param_7 = 0;" (assignment_expression "*param_7 = 0" (pointer_expression "*param_7" * identifier) = number_literal) ;) (expression_statement "*param_6 = 0;" (assignment_expression "*param_6 = 0" (pointer_expression "*param_6" * identifier) = number_literal) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "local_48[0] = 0;" (assignment_expression "local_48[0] = 0" (subscript_expression "local_48[0]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (param_8 == '\0') {\n    cVar9 = '\0';\n    if (*param_3 == 0) {\n      cVar4 = FUN_00279db0(*(undefined8 *)(param_1 + 0x288),uVar7,&local_58,&local_78);\n      if (((cVar4 != '\0') && (cVar4 = (char)local_78, (char)local_78 != '\0')) &&\n         (cVar4 = cVar9, local_50 != 0)) {\n        *param_3 = (long)local_58;\n        cVar4 = (char)local_78;\n      }\n      cVar9 = cVar4;\n      uVar7 = *param_2;\n    }\n    cVar4 = cVar9;\n    if (param_4 == '\0') goto LAB_0029205d;\nLAB_00291f1e:\n                    /* try { // try from 00291f24 to 0029237e has its CatchHandler @ 0029237f */\n    puVar5 = (undefined8 *)FUN_00284d90(param_1,uVar7,*param_3);\n    if ((puVar5 == (undefined8 *)0x0) && (cVar4 != '\0')) {\n      puVar5 = (undefined8 *)FUN_00284d90(param_1,*param_2,0);\n    }\n    if (puVar5 != (undefined8 *)0x0) {\n      bVar1 = *(byte *)((long)puVar5 + 0x3a);\n      if ((bVar1 & 7) != 0) {\n        if ((bVar1 & 7) == 4) goto LAB_00291f80;\n        goto LAB_00292209;\n      }\n      if (((*(int *)(puVar5 + 3) != 0) || ((*(byte *)((long)puVar5 + 0x3b) & 0x20) == 0)) &&\n         (((*(byte *)(puVar5[2] + 0x3c) & 1) == 0 || ((param_5 - 1U < 2 && (-1 < (char)bVar1))))))\n      goto LAB_00292209;\nLAB_00291f80:\n      *param_2 = *puVar5;\n      if (cVar4 == '\0') {\n        *param_3 = puVar5[1];\n        cVar9 = '\0';\n        goto LAB_00291f97;\n      }\n      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,0);\n      *param_3 = lVar8;\n      local_b8 = 0;\n      local_a8 = 0;\n      local_91 = '\0';\n      cVar4 = '\0';\n      goto LAB_00291fab;\n    }\nLAB_00292209:\n    pauVar6 = (undefined1 (*) [16])0x0;\n  }\n  else {\n    cVar4 = '\0';\n    cVar9 = '\0';\n    if (param_4 != '\0') goto LAB_00291f1e;\nLAB_0029205d:\n    uVar7 = FUN_00280180(param_1 + 0x68,uVar7,1,&local_88);\n    *param_2 = uVar7;\n    local_80 = 0;\n    if (*param_3 != 0) {\n      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,&local_80);\n      *param_3 = lVar8;\n    }\n    local_78 = local_88;\n    local_68 = 0;\n    local_70 = local_80;\n    local_a8 = FUN_0028dab0(param_1 + 0x30,&local_78);\n    local_91 = '\0';\n    local_b8 = 0;\n    if (cVar9 != '\0') {\n      local_70 = 0;\n      local_68 = 0;\n      local_78 = local_88;\n      local_b8 = FUN_0028dab0(param_1 + 0x30,&local_78);\n      local_91 = extraout_DL_00;\n    }\n    puVar5 = *(undefined8 **)(local_a8 + 0x18);\n    if (extraout_DL == '\0') {\n      if (puVar5 == (undefined8 *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018dcf0("../../gold/symtab.cc",0x75a,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\nLAB_00291f97:\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = '\0';\n        cVar4 = cVar9;\n      }\n      else {\n        uVar7 = FUN_002827c0(puVar5);\n        FUN_0028c430(param_1,uVar7,local_91,local_b8);\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = '\0';\n      }\n    }\n    else {\n      if (puVar5 != (undefined8 *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018dcf0("../../gold/symtab.cc",0x768,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\n        local_b8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = cVar9;\n      }\n      else {\n        cVar4 = local_91;\n        if ((local_91 == '\0') &&\n           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0)) {\n          local_b8 = 0;\n          *param_7 = 1;\n          puVar5 = puVar3;\n          cVar4 = '\0';\n        }\n      }\n    }\nLAB_00291fab:\n    plVar2 = *(long **)(PTR_DAT_004586c8 + 0x18);\n    if (plVar2 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0018dcf0("../../gold/parameters.h",0x69,"target");\n    }\n    if (*(char *)(plVar2[1] + 0xc) == '\0') {\n      pauVar6 = (undefined1 (*) [16])FUN_002ee780(0x50);\n      *pauVar6 = (undefined1  [16])0x0;\n      pauVar6[1] = (undefined1  [16])0x0;\n      pauVar6[2] = (undefined1  [16])0x0;\n      pauVar6[3] = (undefined1  [16])0x0;\n    }\n    else {\n      pauVar6 = (undefined1 (*) [16])(**(code **)(*plVar2 + 0x150))(plVar2,*param_2,0,0,0,0);\n      if (pauVar6 == (undefined1 (*) [16])0x0) goto LAB_00292209;\n    }\n    if (local_91 == '\0') {\n      if (puVar5 == (undefined8 *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018dcf0("../../gold/symtab.cc",0x794,"define_special_symbol");\n      }\n    }\n    else {\n      *(undefined1 (**) [16])(local_a8 + 0x18) = pauVar6;\n    }\n    if (cVar4 != '\0') {\n      *(undefined1 (**) [16])(local_b8 + 0x18) = pauVar6;\n    }\n    uVar7 = FUN_002827c0(puVar5);\n    *param_6 = uVar7;\n  }" if (parenthesized_expression "(param_8 == '\0')" ( (binary_expression "param_8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    cVar9 = '\0';\n    if (*param_3 == 0) {\n      cVar4 = FUN_00279db0(*(undefined8 *)(param_1 + 0x288),uVar7,&local_58,&local_78);\n      if (((cVar4 != '\0') && (cVar4 = (char)local_78, (char)local_78 != '\0')) &&\n         (cVar4 = cVar9, local_50 != 0)) {\n        *param_3 = (long)local_58;\n        cVar4 = (char)local_78;\n      }\n      cVar9 = cVar4;\n      uVar7 = *param_2;\n    }\n    cVar4 = cVar9;\n    if (param_4 == '\0') goto LAB_0029205d;\nLAB_00291f1e:\n                    /* try { // try from 00291f24 to 0029237e has its CatchHandler @ 0029237f */\n    puVar5 = (undefined8 *)FUN_00284d90(param_1,uVar7,*param_3);\n    if ((puVar5 == (undefined8 *)0x0) && (cVar4 != '\0')) {\n      puVar5 = (undefined8 *)FUN_00284d90(param_1,*param_2,0);\n    }\n    if (puVar5 != (undefined8 *)0x0) {\n      bVar1 = *(byte *)((long)puVar5 + 0x3a);\n      if ((bVar1 & 7) != 0) {\n        if ((bVar1 & 7) == 4) goto LAB_00291f80;\n        goto LAB_00292209;\n      }\n      if (((*(int *)(puVar5 + 3) != 0) || ((*(byte *)((long)puVar5 + 0x3b) & 0x20) == 0)) &&\n         (((*(byte *)(puVar5[2] + 0x3c) & 1) == 0 || ((param_5 - 1U < 2 && (-1 < (char)bVar1))))))\n      goto LAB_00292209;\nLAB_00291f80:\n      *param_2 = *puVar5;\n      if (cVar4 == '\0') {\n        *param_3 = puVar5[1];\n        cVar9 = '\0';\n        goto LAB_00291f97;\n      }\n      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,0);\n      *param_3 = lVar8;\n      local_b8 = 0;\n      local_a8 = 0;\n      local_91 = '\0';\n      cVar4 = '\0';\n      goto LAB_00291fab;\n    }\nLAB_00292209:\n    pauVar6 = (undefined1 (*) [16])0x0;\n  }" { (expression_statement "cVar9 = '\0';" (assignment_expression "cVar9 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (*param_3 == 0) {\n      cVar4 = FUN_00279db0(*(undefined8 *)(param_1 + 0x288),uVar7,&local_58,&local_78);\n      if (((cVar4 != '\0') && (cVar4 = (char)local_78, (char)local_78 != '\0')) &&\n         (cVar4 = cVar9, local_50 != 0)) {\n        *param_3 = (long)local_58;\n        cVar4 = (char)local_78;\n      }\n      cVar9 = cVar4;\n      uVar7 = *param_2;\n    }" if (parenthesized_expression "(*param_3 == 0)" ( (binary_expression "*param_3 == 0" (pointer_expression "*param_3" * identifier) == number_literal) )) (compound_statement "{\n      cVar4 = FUN_00279db0(*(undefined8 *)(param_1 + 0x288),uVar7,&local_58,&local_78);\n      if (((cVar4 != '\0') && (cVar4 = (char)local_78, (char)local_78 != '\0')) &&\n         (cVar4 = cVar9, local_50 != 0)) {\n        *param_3 = (long)local_58;\n        cVar4 = (char)local_78;\n      }\n      cVar9 = cVar4;\n      uVar7 = *param_2;\n    }" { (expression_statement "cVar4 = FUN_00279db0(*(undefined8 *)(param_1 + 0x288),uVar7,&local_58,&local_78);" (assignment_expression "cVar4 = FUN_00279db0(*(undefined8 *)(param_1 + 0x288),uVar7,&local_58,&local_78)" identifier = (call_expression "FUN_00279db0(*(undefined8 *)(param_1 + 0x288),uVar7,&local_58,&local_78)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x288),uVar7,&local_58,&local_78)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x288)" * (cast_expression "(undefined8 *)(param_1 + 0x288)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x288)" ( (binary_expression "param_1 + 0x288" identifier + number_literal) )))) , identifier , (pointer_expression "&local_58" & identifier) , (pointer_expression "&local_78" & identifier) )))) ;) (if_statement "if (((cVar4 != '\0') && (cVar4 = (char)local_78, (char)local_78 != '\0')) &&\n         (cVar4 = cVar9, local_50 != 0)) {\n        *param_3 = (long)local_58;\n        cVar4 = (char)local_78;\n      }" if (parenthesized_expression "(((cVar4 != '\0') && (cVar4 = (char)local_78, (char)local_78 != '\0')) &&\n         (cVar4 = cVar9, local_50 != 0))" ( (binary_expression "((cVar4 != '\0') && (cVar4 = (char)local_78, (char)local_78 != '\0')) &&\n         (cVar4 = cVar9, local_50 != 0)" (parenthesized_expression "((cVar4 != '\0') && (cVar4 = (char)local_78, (char)local_78 != '\0'))" ( (binary_expression "(cVar4 != '\0') && (cVar4 = (char)local_78, (char)local_78 != '\0')" (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(cVar4 = (char)local_78, (char)local_78 != '\0')" ( (comma_expression "cVar4 = (char)local_78, (char)local_78 != '\0'" (assignment_expression "cVar4 = (char)local_78" identifier = (cast_expression "(char)local_78" ( (type_descriptor "char" primitive_type) ) identifier)) , (binary_expression "(char)local_78 != '\0'" (cast_expression "(char)local_78" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence '))) ))) )) && (parenthesized_expression "(cVar4 = cVar9, local_50 != 0)" ( (comma_expression "cVar4 = cVar9, local_50 != 0" (assignment_expression "cVar4 = cVar9" identifier = identifier) , (binary_expression "local_50 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        *param_3 = (long)local_58;\n        cVar4 = (char)local_78;\n      }" { (expression_statement "*param_3 = (long)local_58;" (assignment_expression "*param_3 = (long)local_58" (pointer_expression "*param_3" * identifier) = (cast_expression "(long)local_58" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "cVar4 = (char)local_78;" (assignment_expression "cVar4 = (char)local_78" identifier = (cast_expression "(char)local_78" ( (type_descriptor "char" primitive_type) ) identifier)) ;) })) (expression_statement "cVar9 = cVar4;" (assignment_expression "cVar9 = cVar4" identifier = identifier) ;) (expression_statement "uVar7 = *param_2;" (assignment_expression "uVar7 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) })) (expression_statement "cVar4 = cVar9;" (assignment_expression "cVar4 = cVar9" identifier = identifier) ;) (if_statement "if (param_4 == '\0') goto LAB_0029205d;" if (parenthesized_expression "(param_4 == '\0')" ( (binary_expression "param_4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0029205d;" goto statement_identifier ;)) (labeled_statement "LAB_00291f1e:\n                    /* try { // try from 00291f24 to 0029237e has its CatchHandler @ 0029237f */\n    puVar5 = (undefined8 *)FUN_00284d90(param_1,uVar7,*param_3);" statement_identifier : comment (expression_statement "puVar5 = (undefined8 *)FUN_00284d90(param_1,uVar7,*param_3);" (assignment_expression "puVar5 = (undefined8 *)FUN_00284d90(param_1,uVar7,*param_3)" identifier = (cast_expression "(undefined8 *)FUN_00284d90(param_1,uVar7,*param_3)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00284d90(param_1,uVar7,*param_3)" identifier (argument_list "(param_1,uVar7,*param_3)" ( identifier , identifier , (pointer_expression "*param_3" * identifier) ))))) ;)) (if_statement "if ((puVar5 == (undefined8 *)0x0) && (cVar4 != '\0')) {\n      puVar5 = (undefined8 *)FUN_00284d90(param_1,*param_2,0);\n    }" if (parenthesized_expression "((puVar5 == (undefined8 *)0x0) && (cVar4 != '\0'))" ( (binary_expression "(puVar5 == (undefined8 *)0x0) && (cVar4 != '\0')" (parenthesized_expression "(puVar5 == (undefined8 *)0x0)" ( (binary_expression "puVar5 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      puVar5 = (undefined8 *)FUN_00284d90(param_1,*param_2,0);\n    }" { (expression_statement "puVar5 = (undefined8 *)FUN_00284d90(param_1,*param_2,0);" (assignment_expression "puVar5 = (undefined8 *)FUN_00284d90(param_1,*param_2,0)" identifier = (cast_expression "(undefined8 *)FUN_00284d90(param_1,*param_2,0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00284d90(param_1,*param_2,0)" identifier (argument_list "(param_1,*param_2,0)" ( identifier , (pointer_expression "*param_2" * identifier) , number_literal ))))) ;) })) (if_statement "if (puVar5 != (undefined8 *)0x0) {\n      bVar1 = *(byte *)((long)puVar5 + 0x3a);\n      if ((bVar1 & 7) != 0) {\n        if ((bVar1 & 7) == 4) goto LAB_00291f80;\n        goto LAB_00292209;\n      }\n      if (((*(int *)(puVar5 + 3) != 0) || ((*(byte *)((long)puVar5 + 0x3b) & 0x20) == 0)) &&\n         (((*(byte *)(puVar5[2] + 0x3c) & 1) == 0 || ((param_5 - 1U < 2 && (-1 < (char)bVar1))))))\n      goto LAB_00292209;\nLAB_00291f80:\n      *param_2 = *puVar5;\n      if (cVar4 == '\0') {\n        *param_3 = puVar5[1];\n        cVar9 = '\0';\n        goto LAB_00291f97;\n      }\n      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,0);\n      *param_3 = lVar8;\n      local_b8 = 0;\n      local_a8 = 0;\n      local_91 = '\0';\n      cVar4 = '\0';\n      goto LAB_00291fab;\n    }" if (parenthesized_expression "(puVar5 != (undefined8 *)0x0)" ( (binary_expression "puVar5 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      bVar1 = *(byte *)((long)puVar5 + 0x3a);\n      if ((bVar1 & 7) != 0) {\n        if ((bVar1 & 7) == 4) goto LAB_00291f80;\n        goto LAB_00292209;\n      }\n      if (((*(int *)(puVar5 + 3) != 0) || ((*(byte *)((long)puVar5 + 0x3b) & 0x20) == 0)) &&\n         (((*(byte *)(puVar5[2] + 0x3c) & 1) == 0 || ((param_5 - 1U < 2 && (-1 < (char)bVar1))))))\n      goto LAB_00292209;\nLAB_00291f80:\n      *param_2 = *puVar5;\n      if (cVar4 == '\0') {\n        *param_3 = puVar5[1];\n        cVar9 = '\0';\n        goto LAB_00291f97;\n      }\n      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,0);\n      *param_3 = lVar8;\n      local_b8 = 0;\n      local_a8 = 0;\n      local_91 = '\0';\n      cVar4 = '\0';\n      goto LAB_00291fab;\n    }" { (expression_statement "bVar1 = *(byte *)((long)puVar5 + 0x3a);" (assignment_expression "bVar1 = *(byte *)((long)puVar5 + 0x3a)" identifier = (pointer_expression "*(byte *)((long)puVar5 + 0x3a)" * (cast_expression "(byte *)((long)puVar5 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar5 + 0x3a)" ( (binary_expression "(long)puVar5 + 0x3a" (cast_expression "(long)puVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (if_statement "if ((bVar1 & 7) != 0) {\n        if ((bVar1 & 7) == 4) goto LAB_00291f80;\n        goto LAB_00292209;\n      }" if (parenthesized_expression "((bVar1 & 7) != 0)" ( (binary_expression "(bVar1 & 7) != 0" (parenthesized_expression "(bVar1 & 7)" ( (binary_expression "bVar1 & 7" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        if ((bVar1 & 7) == 4) goto LAB_00291f80;\n        goto LAB_00292209;\n      }" { (if_statement "if ((bVar1 & 7) == 4) goto LAB_00291f80;" if (parenthesized_expression "((bVar1 & 7) == 4)" ( (binary_expression "(bVar1 & 7) == 4" (parenthesized_expression "(bVar1 & 7)" ( (binary_expression "bVar1 & 7" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00291f80;" goto statement_identifier ;)) (goto_statement "goto LAB_00292209;" goto statement_identifier ;) })) (if_statement "if (((*(int *)(puVar5 + 3) != 0) || ((*(byte *)((long)puVar5 + 0x3b) & 0x20) == 0)) &&\n         (((*(byte *)(puVar5[2] + 0x3c) & 1) == 0 || ((param_5 - 1U < 2 && (-1 < (char)bVar1))))))\n      goto LAB_00292209;" if (parenthesized_expression "(((*(int *)(puVar5 + 3) != 0) || ((*(byte *)((long)puVar5 + 0x3b) & 0x20) == 0)) &&\n         (((*(byte *)(puVar5[2] + 0x3c) & 1) == 0 || ((param_5 - 1U < 2 && (-1 < (char)bVar1))))))" ( (binary_expression "((*(int *)(puVar5 + 3) != 0) || ((*(byte *)((long)puVar5 + 0x3b) & 0x20) == 0)) &&\n         (((*(byte *)(puVar5[2] + 0x3c) & 1) == 0 || ((param_5 - 1U < 2 && (-1 < (char)bVar1)))))" (parenthesized_expression "((*(int *)(puVar5 + 3) != 0) || ((*(byte *)((long)puVar5 + 0x3b) & 0x20) == 0))" ( (binary_expression "(*(int *)(puVar5 + 3) != 0) || ((*(byte *)((long)puVar5 + 0x3b) & 0x20) == 0)" (parenthesized_expression "(*(int *)(puVar5 + 3) != 0)" ( (binary_expression "*(int *)(puVar5 + 3) != 0" (pointer_expression "*(int *)(puVar5 + 3)" * (cast_expression "(int *)(puVar5 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 3)" ( (binary_expression "puVar5 + 3" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "((*(byte *)((long)puVar5 + 0x3b) & 0x20) == 0)" ( (binary_expression "(*(byte *)((long)puVar5 + 0x3b) & 0x20) == 0" (parenthesized_expression "(*(byte *)((long)puVar5 + 0x3b) & 0x20)" ( (binary_expression "*(byte *)((long)puVar5 + 0x3b) & 0x20" (pointer_expression "*(byte *)((long)puVar5 + 0x3b)" * (cast_expression "(byte *)((long)puVar5 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar5 + 0x3b)" ( (binary_expression "(long)puVar5 + 0x3b" (cast_expression "(long)puVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "(((*(byte *)(puVar5[2] + 0x3c) & 1) == 0 || ((param_5 - 1U < 2 && (-1 < (char)bVar1)))))" ( (parenthesized_expression "((*(byte *)(puVar5[2] + 0x3c) & 1) == 0 || ((param_5 - 1U < 2 && (-1 < (char)bVar1))))" ( (binary_expression "(*(byte *)(puVar5[2] + 0x3c) & 1) == 0 || ((param_5 - 1U < 2 && (-1 < (char)bVar1)))" (binary_expression "(*(byte *)(puVar5[2] + 0x3c) & 1) == 0" (parenthesized_expression "(*(byte *)(puVar5[2] + 0x3c) & 1)" ( (binary_expression "*(byte *)(puVar5[2] + 0x3c) & 1" (pointer_expression "*(byte *)(puVar5[2] + 0x3c)" * (cast_expression "(byte *)(puVar5[2] + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5[2] + 0x3c)" ( (binary_expression "puVar5[2] + 0x3c" (subscript_expression "puVar5[2]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) == number_literal) || (parenthesized_expression "((param_5 - 1U < 2 && (-1 < (char)bVar1)))" ( (parenthesized_expression "(param_5 - 1U < 2 && (-1 < (char)bVar1))" ( (binary_expression "param_5 - 1U < 2 && (-1 < (char)bVar1)" (binary_expression "param_5 - 1U < 2" (binary_expression "param_5 - 1U" identifier - number_literal) < number_literal) && (parenthesized_expression "(-1 < (char)bVar1)" ( (binary_expression "-1 < (char)bVar1" number_literal < (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier)) ))) )) ))) )) ))) )) (goto_statement "goto LAB_00292209;" goto statement_identifier ;)) (labeled_statement "LAB_00291f80:\n      *param_2 = *puVar5;" statement_identifier : (expression_statement "*param_2 = *puVar5;" (assignment_expression "*param_2 = *puVar5" (pointer_expression "*param_2" * identifier) = (pointer_expression "*puVar5" * identifier)) ;)) (if_statement "if (cVar4 == '\0') {\n        *param_3 = puVar5[1];\n        cVar9 = '\0';\n        goto LAB_00291f97;\n      }" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        *param_3 = puVar5[1];\n        cVar9 = '\0';\n        goto LAB_00291f97;\n      }" { (expression_statement "*param_3 = puVar5[1];" (assignment_expression "*param_3 = puVar5[1]" (pointer_expression "*param_3" * identifier) = (subscript_expression "puVar5[1]" identifier [ number_literal ])) ;) (expression_statement "cVar9 = '\0';" (assignment_expression "cVar9 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (goto_statement "goto LAB_00291f97;" goto statement_identifier ;) })) (expression_statement "lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,0);" (assignment_expression "lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,0)" identifier = (call_expression "FUN_00280180(param_1 + 0x68,*param_3,1,0)" identifier (argument_list "(param_1 + 0x68,*param_3,1,0)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) , (pointer_expression "*param_3" * identifier) , number_literal , number_literal )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (expression_statement "local_a8 = 0;" (assignment_expression "local_a8 = 0" identifier = number_literal) ;) (expression_statement "local_91 = '\0';" (assignment_expression "local_91 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "cVar4 = '\0';" (assignment_expression "cVar4 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (goto_statement "goto LAB_00291fab;" goto statement_identifier ;) })) (labeled_statement "LAB_00292209:\n    pauVar6 = (undefined1 (*) [16])0x0;" statement_identifier : (expression_statement "pauVar6 = (undefined1 (*) [16])0x0;" (assignment_expression "pauVar6 = (undefined1 (*) [16])0x0" identifier = (cast_expression "(undefined1 (*) [16])0x0" ( (type_descriptor "undefined1 (*) [16]" type_identifier (abstract_array_declarator "(*) [16]" (abstract_parenthesized_declarator "(*)" ( (abstract_pointer_declarator "*" *) )) [ number_literal ])) ) number_literal)) ;)) }) (else_clause "else {\n    cVar4 = '\0';\n    cVar9 = '\0';\n    if (param_4 != '\0') goto LAB_00291f1e;\nLAB_0029205d:\n    uVar7 = FUN_00280180(param_1 + 0x68,uVar7,1,&local_88);\n    *param_2 = uVar7;\n    local_80 = 0;\n    if (*param_3 != 0) {\n      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,&local_80);\n      *param_3 = lVar8;\n    }\n    local_78 = local_88;\n    local_68 = 0;\n    local_70 = local_80;\n    local_a8 = FUN_0028dab0(param_1 + 0x30,&local_78);\n    local_91 = '\0';\n    local_b8 = 0;\n    if (cVar9 != '\0') {\n      local_70 = 0;\n      local_68 = 0;\n      local_78 = local_88;\n      local_b8 = FUN_0028dab0(param_1 + 0x30,&local_78);\n      local_91 = extraout_DL_00;\n    }\n    puVar5 = *(undefined8 **)(local_a8 + 0x18);\n    if (extraout_DL == '\0') {\n      if (puVar5 == (undefined8 *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018dcf0("../../gold/symtab.cc",0x75a,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\nLAB_00291f97:\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = '\0';\n        cVar4 = cVar9;\n      }\n      else {\n        uVar7 = FUN_002827c0(puVar5);\n        FUN_0028c430(param_1,uVar7,local_91,local_b8);\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = '\0';\n      }\n    }\n    else {\n      if (puVar5 != (undefined8 *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018dcf0("../../gold/symtab.cc",0x768,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\n        local_b8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = cVar9;\n      }\n      else {\n        cVar4 = local_91;\n        if ((local_91 == '\0') &&\n           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0)) {\n          local_b8 = 0;\n          *param_7 = 1;\n          puVar5 = puVar3;\n          cVar4 = '\0';\n        }\n      }\n    }\nLAB_00291fab:\n    plVar2 = *(long **)(PTR_DAT_004586c8 + 0x18);\n    if (plVar2 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0018dcf0("../../gold/parameters.h",0x69,"target");\n    }\n    if (*(char *)(plVar2[1] + 0xc) == '\0') {\n      pauVar6 = (undefined1 (*) [16])FUN_002ee780(0x50);\n      *pauVar6 = (undefined1  [16])0x0;\n      pauVar6[1] = (undefined1  [16])0x0;\n      pauVar6[2] = (undefined1  [16])0x0;\n      pauVar6[3] = (undefined1  [16])0x0;\n    }\n    else {\n      pauVar6 = (undefined1 (*) [16])(**(code **)(*plVar2 + 0x150))(plVar2,*param_2,0,0,0,0);\n      if (pauVar6 == (undefined1 (*) [16])0x0) goto LAB_00292209;\n    }\n    if (local_91 == '\0') {\n      if (puVar5 == (undefined8 *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018dcf0("../../gold/symtab.cc",0x794,"define_special_symbol");\n      }\n    }\n    else {\n      *(undefined1 (**) [16])(local_a8 + 0x18) = pauVar6;\n    }\n    if (cVar4 != '\0') {\n      *(undefined1 (**) [16])(local_b8 + 0x18) = pauVar6;\n    }\n    uVar7 = FUN_002827c0(puVar5);\n    *param_6 = uVar7;\n  }" else (compound_statement "{\n    cVar4 = '\0';\n    cVar9 = '\0';\n    if (param_4 != '\0') goto LAB_00291f1e;\nLAB_0029205d:\n    uVar7 = FUN_00280180(param_1 + 0x68,uVar7,1,&local_88);\n    *param_2 = uVar7;\n    local_80 = 0;\n    if (*param_3 != 0) {\n      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,&local_80);\n      *param_3 = lVar8;\n    }\n    local_78 = local_88;\n    local_68 = 0;\n    local_70 = local_80;\n    local_a8 = FUN_0028dab0(param_1 + 0x30,&local_78);\n    local_91 = '\0';\n    local_b8 = 0;\n    if (cVar9 != '\0') {\n      local_70 = 0;\n      local_68 = 0;\n      local_78 = local_88;\n      local_b8 = FUN_0028dab0(param_1 + 0x30,&local_78);\n      local_91 = extraout_DL_00;\n    }\n    puVar5 = *(undefined8 **)(local_a8 + 0x18);\n    if (extraout_DL == '\0') {\n      if (puVar5 == (undefined8 *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018dcf0("../../gold/symtab.cc",0x75a,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\nLAB_00291f97:\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = '\0';\n        cVar4 = cVar9;\n      }\n      else {\n        uVar7 = FUN_002827c0(puVar5);\n        FUN_0028c430(param_1,uVar7,local_91,local_b8);\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = '\0';\n      }\n    }\n    else {\n      if (puVar5 != (undefined8 *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018dcf0("../../gold/symtab.cc",0x768,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\n        local_b8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = cVar9;\n      }\n      else {\n        cVar4 = local_91;\n        if ((local_91 == '\0') &&\n           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0)) {\n          local_b8 = 0;\n          *param_7 = 1;\n          puVar5 = puVar3;\n          cVar4 = '\0';\n        }\n      }\n    }\nLAB_00291fab:\n    plVar2 = *(long **)(PTR_DAT_004586c8 + 0x18);\n    if (plVar2 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0018dcf0("../../gold/parameters.h",0x69,"target");\n    }\n    if (*(char *)(plVar2[1] + 0xc) == '\0') {\n      pauVar6 = (undefined1 (*) [16])FUN_002ee780(0x50);\n      *pauVar6 = (undefined1  [16])0x0;\n      pauVar6[1] = (undefined1  [16])0x0;\n      pauVar6[2] = (undefined1  [16])0x0;\n      pauVar6[3] = (undefined1  [16])0x0;\n    }\n    else {\n      pauVar6 = (undefined1 (*) [16])(**(code **)(*plVar2 + 0x150))(plVar2,*param_2,0,0,0,0);\n      if (pauVar6 == (undefined1 (*) [16])0x0) goto LAB_00292209;\n    }\n    if (local_91 == '\0') {\n      if (puVar5 == (undefined8 *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018dcf0("../../gold/symtab.cc",0x794,"define_special_symbol");\n      }\n    }\n    else {\n      *(undefined1 (**) [16])(local_a8 + 0x18) = pauVar6;\n    }\n    if (cVar4 != '\0') {\n      *(undefined1 (**) [16])(local_b8 + 0x18) = pauVar6;\n    }\n    uVar7 = FUN_002827c0(puVar5);\n    *param_6 = uVar7;\n  }" { (expression_statement "cVar4 = '\0';" (assignment_expression "cVar4 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "cVar9 = '\0';" (assignment_expression "cVar9 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (param_4 != '\0') goto LAB_00291f1e;" if (parenthesized_expression "(param_4 != '\0')" ( (binary_expression "param_4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00291f1e;" goto statement_identifier ;)) (labeled_statement "LAB_0029205d:\n    uVar7 = FUN_00280180(param_1 + 0x68,uVar7,1,&local_88);" statement_identifier : (expression_statement "uVar7 = FUN_00280180(param_1 + 0x68,uVar7,1,&local_88);" (assignment_expression "uVar7 = FUN_00280180(param_1 + 0x68,uVar7,1,&local_88)" identifier = (call_expression "FUN_00280180(param_1 + 0x68,uVar7,1,&local_88)" identifier (argument_list "(param_1 + 0x68,uVar7,1,&local_88)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) , identifier , number_literal , (pointer_expression "&local_88" & identifier) )))) ;)) (expression_statement "*param_2 = uVar7;" (assignment_expression "*param_2 = uVar7" (pointer_expression "*param_2" * identifier) = identifier) ;) (expression_statement "local_80 = 0;" (assignment_expression "local_80 = 0" identifier = number_literal) ;) (if_statement "if (*param_3 != 0) {\n      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,&local_80);\n      *param_3 = lVar8;\n    }" if (parenthesized_expression "(*param_3 != 0)" ( (binary_expression "*param_3 != 0" (pointer_expression "*param_3" * identifier) != number_literal) )) (compound_statement "{\n      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,&local_80);\n      *param_3 = lVar8;\n    }" { (expression_statement "lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,&local_80);" (assignment_expression "lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,&local_80)" identifier = (call_expression "FUN_00280180(param_1 + 0x68,*param_3,1,&local_80)" identifier (argument_list "(param_1 + 0x68,*param_3,1,&local_80)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) , (pointer_expression "*param_3" * identifier) , number_literal , (pointer_expression "&local_80" & identifier) )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) })) (expression_statement "local_78 = local_88;" (assignment_expression "local_78 = local_88" identifier = identifier) ;) (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" identifier = number_literal) ;) (expression_statement "local_70 = local_80;" (assignment_expression "local_70 = local_80" identifier = identifier) ;) (expression_statement "local_a8 = FUN_0028dab0(param_1 + 0x30,&local_78);" (assignment_expression "local_a8 = FUN_0028dab0(param_1 + 0x30,&local_78)" identifier = (call_expression "FUN_0028dab0(param_1 + 0x30,&local_78)" identifier (argument_list "(param_1 + 0x30,&local_78)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) , (pointer_expression "&local_78" & identifier) )))) ;) (expression_statement "local_91 = '\0';" (assignment_expression "local_91 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (if_statement "if (cVar9 != '\0') {\n      local_70 = 0;\n      local_68 = 0;\n      local_78 = local_88;\n      local_b8 = FUN_0028dab0(param_1 + 0x30,&local_78);\n      local_91 = extraout_DL_00;\n    }" if (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      local_70 = 0;\n      local_68 = 0;\n      local_78 = local_88;\n      local_b8 = FUN_0028dab0(param_1 + 0x30,&local_78);\n      local_91 = extraout_DL_00;\n    }" { (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" identifier = number_literal) ;) (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" identifier = number_literal) ;) (expression_statement "local_78 = local_88;" (assignment_expression "local_78 = local_88" identifier = identifier) ;) (expression_statement "local_b8 = FUN_0028dab0(param_1 + 0x30,&local_78);" (assignment_expression "local_b8 = FUN_0028dab0(param_1 + 0x30,&local_78)" identifier = (call_expression "FUN_0028dab0(param_1 + 0x30,&local_78)" identifier (argument_list "(param_1 + 0x30,&local_78)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) , (pointer_expression "&local_78" & identifier) )))) ;) (expression_statement "local_91 = extraout_DL_00;" (assignment_expression "local_91 = extraout_DL_00" identifier = identifier) ;) })) (expression_statement "puVar5 = *(undefined8 **)(local_a8 + 0x18);" (assignment_expression "puVar5 = *(undefined8 **)(local_a8 + 0x18)" identifier = (pointer_expression "*(undefined8 **)(local_a8 + 0x18)" * (cast_expression "(undefined8 **)(local_a8 + 0x18)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_a8 + 0x18)" ( (binary_expression "local_a8 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (extraout_DL == '\0') {\n      if (puVar5 == (undefined8 *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018dcf0("../../gold/symtab.cc",0x75a,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\nLAB_00291f97:\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = '\0';\n        cVar4 = cVar9;\n      }\n      else {\n        uVar7 = FUN_002827c0(puVar5);\n        FUN_0028c430(param_1,uVar7,local_91,local_b8);\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = '\0';\n      }\n    }\n    else {\n      if (puVar5 != (undefined8 *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018dcf0("../../gold/symtab.cc",0x768,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\n        local_b8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = cVar9;\n      }\n      else {\n        cVar4 = local_91;\n        if ((local_91 == '\0') &&\n           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0)) {\n          local_b8 = 0;\n          *param_7 = 1;\n          puVar5 = puVar3;\n          cVar4 = '\0';\n        }\n      }\n    }" if (parenthesized_expression "(extraout_DL == '\0')" ( (binary_expression "extraout_DL == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if (puVar5 == (undefined8 *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018dcf0("../../gold/symtab.cc",0x75a,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\nLAB_00291f97:\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = '\0';\n        cVar4 = cVar9;\n      }\n      else {\n        uVar7 = FUN_002827c0(puVar5);\n        FUN_0028c430(param_1,uVar7,local_91,local_b8);\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = '\0';\n      }\n    }" { (if_statement "if (puVar5 == (undefined8 *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018dcf0("../../gold/symtab.cc",0x75a,"define_special_symbol");\n      }" if (parenthesized_expression "(puVar5 == (undefined8 *)0x0)" ( (binary_expression "puVar5 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_0018dcf0("../../gold/symtab.cc",0x75a,"define_special_symbol");\n      }" { comment (expression_statement "FUN_0018dcf0("../../gold/symtab.cc",0x75a,"define_special_symbol");" (call_expression "FUN_0018dcf0("../../gold/symtab.cc",0x75a,"define_special_symbol")" identifier (argument_list "("../../gold/symtab.cc",0x75a,"define_special_symbol")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""define_special_symbol"" " string_content ") ))) ;) })) (if_statement "if (cVar9 == '\0') {\nLAB_00291f97:\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = '\0';\n        cVar4 = cVar9;\n      }\n      else {\n        uVar7 = FUN_002827c0(puVar5);\n        FUN_0028c430(param_1,uVar7,local_91,local_b8);\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = '\0';\n      }" if (parenthesized_expression "(cVar9 == '\0')" ( (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_00291f97:\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = '\0';\n        cVar4 = cVar9;\n      }" { (labeled_statement "LAB_00291f97:\n        local_b8 = 0;" statement_identifier : (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;)) (expression_statement "local_a8 = 0;" (assignment_expression "local_a8 = 0" identifier = number_literal) ;) (expression_statement "local_91 = '\0';" (assignment_expression "local_91 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "cVar4 = cVar9;" (assignment_expression "cVar4 = cVar9" identifier = identifier) ;) }) (else_clause "else {\n        uVar7 = FUN_002827c0(puVar5);\n        FUN_0028c430(param_1,uVar7,local_91,local_b8);\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = '\0';\n      }" else (compound_statement "{\n        uVar7 = FUN_002827c0(puVar5);\n        FUN_0028c430(param_1,uVar7,local_91,local_b8);\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = '\0';\n      }" { (expression_statement "uVar7 = FUN_002827c0(puVar5);" (assignment_expression "uVar7 = FUN_002827c0(puVar5)" identifier = (call_expression "FUN_002827c0(puVar5)" identifier (argument_list "(puVar5)" ( identifier )))) ;) (expression_statement "FUN_0028c430(param_1,uVar7,local_91,local_b8);" (call_expression "FUN_0028c430(param_1,uVar7,local_91,local_b8)" identifier (argument_list "(param_1,uVar7,local_91,local_b8)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (expression_statement "local_a8 = 0;" (assignment_expression "local_a8 = 0" identifier = number_literal) ;) (expression_statement "local_91 = extraout_DL;" (assignment_expression "local_91 = extraout_DL" identifier = identifier) ;) (expression_statement "cVar4 = '\0';" (assignment_expression "cVar4 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) }))) }) (else_clause "else {\n      if (puVar5 != (undefined8 *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018dcf0("../../gold/symtab.cc",0x768,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\n        local_b8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = cVar9;\n      }\n      else {\n        cVar4 = local_91;\n        if ((local_91 == '\0') &&\n           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0)) {\n          local_b8 = 0;\n          *param_7 = 1;\n          puVar5 = puVar3;\n          cVar4 = '\0';\n        }\n      }\n    }" else (compound_statement "{\n      if (puVar5 != (undefined8 *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018dcf0("../../gold/symtab.cc",0x768,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\n        local_b8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = cVar9;\n      }\n      else {\n        cVar4 = local_91;\n        if ((local_91 == '\0') &&\n           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0)) {\n          local_b8 = 0;\n          *param_7 = 1;\n          puVar5 = puVar3;\n          cVar4 = '\0';\n        }\n      }\n    }" { (if_statement "if (puVar5 != (undefined8 *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018dcf0("../../gold/symtab.cc",0x768,"define_special_symbol");\n      }" if (parenthesized_expression "(puVar5 != (undefined8 *)0x0)" ( (binary_expression "puVar5 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_0018dcf0("../../gold/symtab.cc",0x768,"define_special_symbol");\n      }" { comment (expression_statement "FUN_0018dcf0("../../gold/symtab.cc",0x768,"define_special_symbol");" (call_expression "FUN_0018dcf0("../../gold/symtab.cc",0x768,"define_special_symbol")" identifier (argument_list "("../../gold/symtab.cc",0x768,"define_special_symbol")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""define_special_symbol"" " string_content ") ))) ;) })) (if_statement "if (cVar9 == '\0') {\n        local_b8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = cVar9;\n      }\n      else {\n        cVar4 = local_91;\n        if ((local_91 == '\0') &&\n           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0)) {\n          local_b8 = 0;\n          *param_7 = 1;\n          puVar5 = puVar3;\n          cVar4 = '\0';\n        }\n      }" if (parenthesized_expression "(cVar9 == '\0')" ( (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        local_b8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = cVar9;\n      }" { (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (expression_statement "local_91 = extraout_DL;" (assignment_expression "local_91 = extraout_DL" identifier = identifier) ;) (expression_statement "cVar4 = cVar9;" (assignment_expression "cVar4 = cVar9" identifier = identifier) ;) }) (else_clause "else {\n        cVar4 = local_91;\n        if ((local_91 == '\0') &&\n           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0)) {\n          local_b8 = 0;\n          *param_7 = 1;\n          puVar5 = puVar3;\n          cVar4 = '\0';\n        }\n      }" else (compound_statement "{\n        cVar4 = local_91;\n        if ((local_91 == '\0') &&\n           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0)) {\n          local_b8 = 0;\n          *param_7 = 1;\n          puVar5 = puVar3;\n          cVar4 = '\0';\n        }\n      }" { (expression_statement "cVar4 = local_91;" (assignment_expression "cVar4 = local_91" identifier = identifier) ;) (if_statement "if ((local_91 == '\0') &&\n           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0)) {\n          local_b8 = 0;\n          *param_7 = 1;\n          puVar5 = puVar3;\n          cVar4 = '\0';\n        }" if (parenthesized_expression "((local_91 == '\0') &&\n           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0))" ( (binary_expression "(local_91 == '\0') &&\n           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0)" (parenthesized_expression "(local_91 == '\0')" ( (binary_expression "local_91 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0)" ( (comma_expression "puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0" (assignment_expression "puVar3 = *(undefined8 **)(local_b8 + 0x18)" identifier = (pointer_expression "*(undefined8 **)(local_b8 + 0x18)" * (cast_expression "(undefined8 **)(local_b8 + 0x18)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_b8 + 0x18)" ( (binary_expression "local_b8 + 0x18" identifier + number_literal) ))))) , (comma_expression "local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0" (assignment_expression "local_91 = cVar9" identifier = identifier) , (comma_expression "cVar4 = cVar9,\n           puVar3[1] == 0" (assignment_expression "cVar4 = cVar9" identifier = identifier) , (binary_expression "puVar3[1] == 0" (subscript_expression "puVar3[1]" identifier [ number_literal ]) == number_literal)))) ))) )) (compound_statement "{\n          local_b8 = 0;\n          *param_7 = 1;\n          puVar5 = puVar3;\n          cVar4 = '\0';\n        }" { (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (expression_statement "*param_7 = 1;" (assignment_expression "*param_7 = 1" (pointer_expression "*param_7" * identifier) = number_literal) ;) (expression_statement "puVar5 = puVar3;" (assignment_expression "puVar5 = puVar3" identifier = identifier) ;) (expression_statement "cVar4 = '\0';" (assignment_expression "cVar4 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) })) }))) }))) (labeled_statement "LAB_00291fab:\n    plVar2 = *(long **)(PTR_DAT_004586c8 + 0x18);" statement_identifier : (expression_statement "plVar2 = *(long **)(PTR_DAT_004586c8 + 0x18);" (assignment_expression "plVar2 = *(long **)(PTR_DAT_004586c8 + 0x18)" identifier = (pointer_expression "*(long **)(PTR_DAT_004586c8 + 0x18)" * (cast_expression "(long **)(PTR_DAT_004586c8 + 0x18)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_004586c8 + 0x18)" ( (binary_expression "PTR_DAT_004586c8 + 0x18" identifier + number_literal) ))))) ;)) (if_statement "if (plVar2 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0018dcf0("../../gold/parameters.h",0x69,"target");\n    }" if (parenthesized_expression "(plVar2 == (long *)0x0)" ( (binary_expression "plVar2 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_0018dcf0("../../gold/parameters.h",0x69,"target");\n    }" { comment (expression_statement "FUN_0018dcf0("../../gold/parameters.h",0x69,"target");" (call_expression "FUN_0018dcf0("../../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 *)(plVar2[1] + 0xc) == '\0') {\n      pauVar6 = (undefined1 (*) [16])FUN_002ee780(0x50);\n      *pauVar6 = (undefined1  [16])0x0;\n      pauVar6[1] = (undefined1  [16])0x0;\n      pauVar6[2] = (undefined1  [16])0x0;\n      pauVar6[3] = (undefined1  [16])0x0;\n    }\n    else {\n      pauVar6 = (undefined1 (*) [16])(**(code **)(*plVar2 + 0x150))(plVar2,*param_2,0,0,0,0);\n      if (pauVar6 == (undefined1 (*) [16])0x0) goto LAB_00292209;\n    }" if (parenthesized_expression "(*(char *)(plVar2[1] + 0xc) == '\0')" ( (binary_expression "*(char *)(plVar2[1] + 0xc) == '\0'" (pointer_expression "*(char *)(plVar2[1] + 0xc)" * (cast_expression "(char *)(plVar2[1] + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2[1] + 0xc)" ( (binary_expression "plVar2[1] + 0xc" (subscript_expression "plVar2[1]" identifier [ number_literal ]) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pauVar6 = (undefined1 (*) [16])FUN_002ee780(0x50);\n      *pauVar6 = (undefined1  [16])0x0;\n      pauVar6[1] = (undefined1  [16])0x0;\n      pauVar6[2] = (undefined1  [16])0x0;\n      pauVar6[3] = (undefined1  [16])0x0;\n    }" { (expression_statement "pauVar6 = (undefined1 (*) [16])FUN_002ee780(0x50);" (assignment_expression "pauVar6 = (undefined1 (*) [16])FUN_002ee780(0x50)" identifier = (cast_expression "(undefined1 (*) [16])FUN_002ee780(0x50)" ( (type_descriptor "undefined1 (*) [16]" type_identifier (abstract_array_declarator "(*) [16]" (abstract_parenthesized_declarator "(*)" ( (abstract_pointer_declarator "*" *) )) [ number_literal ])) ) (call_expression "FUN_002ee780(0x50)" identifier (argument_list "(0x50)" ( number_literal ))))) ;) (expression_statement "*pauVar6 = (undefined1  [16])0x0;" (assignment_expression "*pauVar6 = (undefined1  [16])0x0" (pointer_expression "*pauVar6" * identifier) = (cast_expression "(undefined1  [16])0x0" ( (type_descriptor "undefined1  [16]" type_identifier (abstract_array_declarator "[16]" [ number_literal ])) ) number_literal)) ;) (expression_statement "pauVar6[1] = (undefined1  [16])0x0;" (assignment_expression "pauVar6[1] = (undefined1  [16])0x0" (subscript_expression "pauVar6[1]" identifier [ number_literal ]) = (cast_expression "(undefined1  [16])0x0" ( (type_descriptor "undefined1  [16]" type_identifier (abstract_array_declarator "[16]" [ number_literal ])) ) number_literal)) ;) (expression_statement "pauVar6[2] = (undefined1  [16])0x0;" (assignment_expression "pauVar6[2] = (undefined1  [16])0x0" (subscript_expression "pauVar6[2]" identifier [ number_literal ]) = (cast_expression "(undefined1  [16])0x0" ( (type_descriptor "undefined1  [16]" type_identifier (abstract_array_declarator "[16]" [ number_literal ])) ) number_literal)) ;) (expression_statement "pauVar6[3] = (undefined1  [16])0x0;" (assignment_expression "pauVar6[3] = (undefined1  [16])0x0" (subscript_expression "pauVar6[3]" identifier [ number_literal ]) = (cast_expression "(undefined1  [16])0x0" ( (type_descriptor "undefined1  [16]" type_identifier (abstract_array_declarator "[16]" [ number_literal ])) ) number_literal)) ;) }) (else_clause "else {\n      pauVar6 = (undefined1 (*) [16])(**(code **)(*plVar2 + 0x150))(plVar2,*param_2,0,0,0,0);\n      if (pauVar6 == (undefined1 (*) [16])0x0) goto LAB_00292209;\n    }" else (compound_statement "{\n      pauVar6 = (undefined1 (*) [16])(**(code **)(*plVar2 + 0x150))(plVar2,*param_2,0,0,0,0);\n      if (pauVar6 == (undefined1 (*) [16])0x0) goto LAB_00292209;\n    }" { (expression_statement "pauVar6 = (undefined1 (*) [16])(**(code **)(*plVar2 + 0x150))(plVar2,*param_2,0,0,0,0);" (assignment_expression "pauVar6 = (undefined1 (*) [16])(**(code **)(*plVar2 + 0x150))(plVar2,*param_2,0,0,0,0)" identifier = (cast_expression "(undefined1 (*) [16])(**(code **)(*plVar2 + 0x150))(plVar2,*param_2,0,0,0,0)" ( (type_descriptor "undefined1 (*) [16]" type_identifier (abstract_array_declarator "(*) [16]" (abstract_parenthesized_declarator "(*)" ( (abstract_pointer_declarator "*" *) )) [ number_literal ])) ) (call_expression "(**(code **)(*plVar2 + 0x150))(plVar2,*param_2,0,0,0,0)" (parenthesized_expression "(**(code **)(*plVar2 + 0x150))" ( (pointer_expression "**(code **)(*plVar2 + 0x150)" * (pointer_expression "*(code **)(*plVar2 + 0x150)" * (cast_expression "(code **)(*plVar2 + 0x150)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar2 + 0x150)" ( (binary_expression "*plVar2 + 0x150" (pointer_expression "*plVar2" * identifier) + number_literal) ))))) )) (argument_list "(plVar2,*param_2,0,0,0,0)" ( identifier , (pointer_expression "*param_2" * identifier) , number_literal , number_literal , number_literal , number_literal ))))) ;) (if_statement "if (pauVar6 == (undefined1 (*) [16])0x0) goto LAB_00292209;" if (parenthesized_expression "(pauVar6 == (undefined1 (*) [16])0x0)" ( (binary_expression "pauVar6 == (undefined1 (*) [16])0x0" identifier == (cast_expression "(undefined1 (*) [16])0x0" ( (type_descriptor "undefined1 (*) [16]" type_identifier (abstract_array_declarator "(*) [16]" (abstract_parenthesized_declarator "(*)" ( (abstract_pointer_declarator "*" *) )) [ number_literal ])) ) number_literal)) )) (goto_statement "goto LAB_00292209;" goto statement_identifier ;)) }))) (if_statement "if (local_91 == '\0') {\n      if (puVar5 == (undefined8 *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018dcf0("../../gold/symtab.cc",0x794,"define_special_symbol");\n      }\n    }\n    else {\n      *(undefined1 (**) [16])(local_a8 + 0x18) = pauVar6;\n    }" if (parenthesized_expression "(local_91 == '\0')" ( (binary_expression "local_91 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if (puVar5 == (undefined8 *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018dcf0("../../gold/symtab.cc",0x794,"define_special_symbol");\n      }\n    }" { (if_statement "if (puVar5 == (undefined8 *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0018dcf0("../../gold/symtab.cc",0x794,"define_special_symbol");\n      }" if (parenthesized_expression "(puVar5 == (undefined8 *)0x0)" ( (binary_expression "puVar5 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_0018dcf0("../../gold/symtab.cc",0x794,"define_special_symbol");\n      }" { comment (expression_statement "FUN_0018dcf0("../../gold/symtab.cc",0x794,"define_special_symbol");" (call_expression "FUN_0018dcf0("../../gold/symtab.cc",0x794,"define_special_symbol")" identifier (argument_list "("../../gold/symtab.cc",0x794,"define_special_symbol")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""define_special_symbol"" " string_content ") ))) ;) })) }) (else_clause "else {\n      *(undefined1 (**) [16])(local_a8 + 0x18) = pauVar6;\n    }" else (compound_statement "{\n      *(undefined1 (**) [16])(local_a8 + 0x18) = pauVar6;\n    }" { (expression_statement "*(undefined1 (**) [16])(local_a8 + 0x18) = pauVar6;" (assignment_expression "*(undefined1 (**) [16])(local_a8 + 0x18) = pauVar6" (pointer_expression "*(undefined1 (**) [16])(local_a8 + 0x18)" * (cast_expression "(undefined1 (**) [16])(local_a8 + 0x18)" ( (type_descriptor "undefined1 (**) [16]" type_identifier (abstract_array_declarator "(**) [16]" (abstract_parenthesized_declarator "(**)" ( (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)) )) [ number_literal ])) ) (parenthesized_expression "(local_a8 + 0x18)" ( (binary_expression "local_a8 + 0x18" identifier + number_literal) )))) = identifier) ;) }))) (if_statement "if (cVar4 != '\0') {\n      *(undefined1 (**) [16])(local_b8 + 0x18) = pauVar6;\n    }" if (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      *(undefined1 (**) [16])(local_b8 + 0x18) = pauVar6;\n    }" { (expression_statement "*(undefined1 (**) [16])(local_b8 + 0x18) = pauVar6;" (assignment_expression "*(undefined1 (**) [16])(local_b8 + 0x18) = pauVar6" (pointer_expression "*(undefined1 (**) [16])(local_b8 + 0x18)" * (cast_expression "(undefined1 (**) [16])(local_b8 + 0x18)" ( (type_descriptor "undefined1 (**) [16]" type_identifier (abstract_array_declarator "(**) [16]" (abstract_parenthesized_declarator "(**)" ( (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)) )) [ number_literal ])) ) (parenthesized_expression "(local_b8 + 0x18)" ( (binary_expression "local_b8 + 0x18" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "uVar7 = FUN_002827c0(puVar5);" (assignment_expression "uVar7 = FUN_002827c0(puVar5)" identifier = (call_expression "FUN_002827c0(puVar5)" identifier (argument_list "(puVar5)" ( identifier )))) ;) (expression_statement "*param_6 = uVar7;" (assignment_expression "*param_6 = uVar7" (pointer_expression "*param_6" * identifier) = identifier) ;) }))) (if_statement "if (local_58 != local_48) {\n    FUN_002eff50();\n  }" if (parenthesized_expression "(local_58 != local_48)" ( (binary_expression "local_58 != local_48" identifier != identifier) )) (compound_statement "{\n    FUN_002eff50();\n  }" { (expression_statement "FUN_002eff50();" (call_expression "FUN_002eff50()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return pauVar6;" return identifier ;) })))
(translation_unit "/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Enum "ELFOSABI": Some values do not have unique names */\n/* DWARF original name: define_special_symbol<64, true>\n   DWARF original prototype: Sized_symbol<64> * define_special_symbol<64,_true>(Symbol_table * this,\n   char * * pname, char * * pversion, bool only_if_ref, STV visibility, Sized_symbol<64> * *\n   poldsym, bool * resolve_oldsym, bool is_forced_local) */\n\nSized_symbol<64> * __thiscall\ngold::Symbol_table::define_special_symbol<64,_true>\n          (Symbol_table *this,char **pname,char **pversion,bool only_if_ref,STV visibility,\n          Sized_symbol<64> **poldsym,bool *resolve_oldsym,bool is_forced_local)\n\n{\n  byte bVar1;\n  Target *pTVar2;\n  Symbol_table *pSVar3;\n  bool bVar4;\n  char cVar5;\n  int iVar6;\n  Symbol_table *this_00;\n  undefined4 extraout_var;\n  Sized_symbol<64> *pSVar7;\n  Sized_symbol<64> *pSVar8;\n  char *pcVar9;\n  pair<std::__detail::_Node_iterator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_false,_true>,_bool>\n  pVar10;\n  pair<std::__detail::_Node_iterator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_false,_true>,_bool>\n  pVar11;\n  _Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n  local_b8;\n  _Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n  local_a8;\n  bool local_91;\n  Key name_key;\n  Key version_key;\n  bool is_global;\n  char *local_70;\n  anon_union_8_3_b0f6f408_for_u1_ local_68;\n  string v;\n  \n  pSVar7 = (Sized_symbol<64> *)*pname;\n  v._M_dataplus._M_p = (pointer)&v.field_2;\n  *resolve_oldsym = false;\n  *poldsym = (Sized_symbol<64> *)0x0;\n  v._M_string_length = 0;\n  v.field_2._M_local_buf[0] = '\0';\n  if (is_forced_local) {\n    cVar5 = '\0';\n    is_forced_local = false;\n    if (only_if_ref) goto LAB_00291f1e;\nLAB_0029205d:\n    pcVar9 = Stringpool_template<char>::add(&this->namepool_,(char *)pSVar7,true,&name_key);\n    *pname = pcVar9;\n    version_key = 0;\n    if (*pversion != (char *)0x0) {\n      pcVar9 = Stringpool_template<char>::add(&this->namepool_,*pversion,true,&version_key);\n      *pversion = pcVar9;\n    }\n    pSVar8 = (Sized_symbol<64> *)&is_global;\n    _is_global = (char *)name_key;\n    local_68.object = (Object *)0x0;\n    pSVar7 = pSVar8;\n    local_70 = (char *)version_key;\n    pVar10 = std::\n             _Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n             ::\n             _M_emplace<std::pair<std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                       ((_Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                         *)&this->table_);\n    local_a8._M_cur = (__node_type *)pVar10.first;\n    local_91 = false;\n    local_b8._M_cur = (__node_type *)0x0;\n    if (is_forced_local != false) {\n      local_70 = (char *)0x0;\n      local_68.object = (Object *)0x0;\n      _is_global = (char *)name_key;\n      pVar11 = std::\n               _Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n               ::\n               _M_emplace<std::pair<std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                         ((_Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                           *)&this->table_);\n      local_b8._M_cur = (__node_type *)pVar11.first;\n      local_91 = pVar11.second;\n      pSVar7 = pSVar8;\n    }\n    this_00 = *(Symbol_table **)((long)local_a8._M_cur + 0x18);\n    bVar4 = pVar10.second;\n    if (bVar4 == false) {\n      if (this_00 == (Symbol_table *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0x75a,"define_special_symbol");\n      }\n      if (is_forced_local == false) {\nLAB_00291f97:\n        local_b8._M_cur = (__node_type *)0x0;\n        local_a8._M_cur = (__node_type *)0x0;\n        local_91 = (bool)'\0';\n        cVar5 = is_forced_local;\n      }\n      else {\n        pSVar7 = get_sized_symbol<64>(this_00,&pSVar7->super_Symbol);\n        define_default_version<64,_true>(this,pSVar7,local_91,(iterator)local_b8._M_cur);\n        local_b8._M_cur = (__node_type *)0x0;\n        local_a8._M_cur = (__node_type *)0x0;\n        local_91 = bVar4;\n        cVar5 = '\0';\n      }\n    }\n    else {\n      if (this_00 != (Symbol_table *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0x768,"define_special_symbol");\n      }\n      if (is_forced_local == false) {\n        local_b8._M_cur = (__node_type *)0x0;\n        local_91 = bVar4;\n        cVar5 = is_forced_local;\n      }\n      else {\n        cVar5 = local_91;\n        if ((local_91 == false) &&\n           (pSVar3 = *(Symbol_table **)\n                      ((long)&((local_b8._M_cur)->\n                              super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                              )._M_storage._M_storage + 0x10), local_91 = is_forced_local,\n           cVar5 = is_forced_local, *(long *)&pSVar3->first_global_index_ == 0)) {\n          local_b8._M_cur = (__node_type *)0x0;\n          *resolve_oldsym = true;\n          this_00 = pSVar3;\n          pSVar7 = (Sized_symbol<64> *)resolve_oldsym;\n          cVar5 = '\0';\n        }\n      }\n    }\nLAB_00291fab:\n    pTVar2 = parameters->target_;\n    if (pTVar2 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n    }\n    if (pTVar2->pti_->has_make_symbol == false) {\n      pSVar8 = (Sized_symbol<64> *)operator_new(0x50);\n      (pSVar8->super_Symbol).name_ = (char *)0x0;\n      (pSVar8->super_Symbol).version_ = (char *)0x0;\n      (pSVar8->super_Symbol).u1_ = (anon_union_8_3_b0f6f408_for_u1_)0x0;\n      (pSVar8->super_Symbol).u2_ = (anon_union_4_3_b582a2bd_for_u2_)0x0;\n      (pSVar8->super_Symbol).symtab_index_ = 0;\n      (pSVar8->super_Symbol).dynsym_index_ = 0;\n      (pSVar8->super_Symbol).plt_offset_ = 0;\n      (pSVar8->super_Symbol).got_offsets_.got_type_ = 0;\n      (pSVar8->super_Symbol).got_offsets_.got_offset_ = 0;\n      *(undefined1 (*) [16])&(pSVar8->super_Symbol).got_offsets_.got_next_ = (undefined1  [16])0x0;\n    }\n    else {\n      pSVar7 = (Sized_symbol<64> *)*pname;\n      iVar6 = (*pTVar2->_vptr_Target[0x2a])(pTVar2,pSVar7,0,0,0,0);\n      pSVar8 = (Sized_symbol<64> *)CONCAT44(extraout_var,iVar6);\n      if (pSVar8 == (Sized_symbol<64> *)0x0) goto LAB_00292209;\n    }\n    if (local_91 == false) {\n      if (this_00 == (Symbol_table *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0x794,"define_special_symbol");\n      }\n    }\n    else {\n      *(Sized_symbol<64> **)\n       ((long)&((local_a8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n               )._M_storage._M_storage + 0x10) = pSVar8;\n    }\n    if (cVar5 != '\0') {\n      *(Sized_symbol<64> **)\n       ((long)&((local_b8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n               )._M_storage._M_storage + 0x10) = pSVar8;\n    }\n    pSVar7 = get_sized_symbol<64>(this_00,&pSVar7->super_Symbol);\n    *poldsym = pSVar7;\n  }\n  else {\n    if (*pversion == (char *)0x0) {\n      cVar5 = Version_script_info::get_symbol_version\n                        (this->version_script_,(char *)pSVar7,&v,&is_global);\n      if ((((bool)cVar5) && (cVar5 = is_global, is_global != false)) &&\n         (cVar5 = is_forced_local, v._M_string_length != 0)) {\n        *pversion = v._M_dataplus._M_p;\n        cVar5 = is_global;\n      }\n      is_forced_local = (bool)cVar5;\n      pSVar7 = (Sized_symbol<64> *)*pname;\n    }\n    cVar5 = is_forced_local;\n    if (!only_if_ref) goto LAB_0029205d;\nLAB_00291f1e:\n                    /* try { // try from 00291f24 to 0029237e has its CatchHandler @ 0029237f */\n    this_00 = (Symbol_table *)lookup(this,(char *)pSVar7,*pversion);\n    if ((this_00 == (Symbol_table *)0x0) && (cVar5 != '\0')) {\n      pSVar7 = (Sized_symbol<64> *)*pname;\n      this_00 = (Symbol_table *)lookup(this,(char *)pSVar7,(char *)0x0);\n    }\n    if (this_00 != (Symbol_table *)0x0) {\n      bVar1 = *(byte *)((long)&(this_00->table_)._M_h._M_bucket_count + 2);\n      if ((bVar1 & 7) != 0) {\n        if ((bVar1 & 7) == 4) goto LAB_00291f80;\n        goto LAB_00292209;\n      }\n      if (((this_00->output_count_ != 0) ||\n          (((this_00->table_)._M_h._M_bucket_count & 0x20000000) == 0)) &&\n         (((*(byte *)(this_00->offset_ + 0x3c) & 1) == 0 ||\n          ((visibility - STV_INTERNAL < 2 && (-1 < (char)bVar1)))))) goto LAB_00292209;\nLAB_00291f80:\n      *pname = (char *)this_00->saw_undefined_;\n      if (cVar5 == '\0') {\n        *pversion = *(char **)&this_00->first_global_index_;\n        is_forced_local = false;\n        goto LAB_00291f97;\n      }\n      pSVar7 = (Sized_symbol<64> *)*pversion;\n      pcVar9 = Stringpool_template<char>::add(&this->namepool_,(char *)pSVar7,true,(Key *)0x0);\n      *pversion = pcVar9;\n      local_b8._M_cur = (__node_type *)0x0;\n      local_a8._M_cur = (__node_type *)0x0;\n      local_91 = (bool)'\0';\n      cVar5 = '\0';\n      goto LAB_00291fab;\n    }\nLAB_00292209:\n    pSVar8 = (Sized_symbol<64> *)0x0;\n  }\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)v._M_dataplus._M_p != &v.field_2) {\n    operator_delete(v._M_dataplus._M_p);\n  }\n  return pSVar8;\n}\n\n" comment comment comment (ERROR "Sized_symbol<64> * __thiscall\ngold::Symbol_table::define_special_symbol<64,_true>\n          (Symbol_table *this,char **pname,char **pversion,bool only_if_ref,STV visibility,\n          Sized_symbol<64> **poldsym,bool *resolve_oldsym,bool is_forced_local)" (binary_expression "Sized_symbol<64> * __thiscall\ngold::Symbol_table::define_special_symbol<64,_true>\n          (Symbol_table *this,char **pname,char **pversion,bool only_if_ref,STV visibility,\n          Sized_symbol<64> **poldsym,bool *resolve_oldsym,bool is_forced_local)" (binary_expression "Sized_symbol<64> * __thiscall\ngold::Symbol_table::define_special_symbol<64" (binary_expression "Sized_symbol<64> * __thiscall" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "* __thiscall" * identifier)) (ERROR "gold::Symbol_table::define_special_symbol" identifier : : identifier : : identifier) < number_literal) (ERROR ",_true" , identifier) > (parenthesized_expression "(Symbol_table *this,char **pname,char **pversion,bool only_if_ref,STV visibility,\n          Sized_symbol<64> **poldsym,bool *resolve_oldsym,bool is_forced_local)" ( (comma_expression "Symbol_table *this,char **pname,char **pversion,bool only_if_ref,STV visibility,\n          Sized_symbol<64> **poldsym,bool *resolve_oldsym,bool is_forced_local" (binary_expression "Symbol_table *this" identifier * identifier) , (comma_expression "char **pname,char **pversion,bool only_if_ref,STV visibility,\n          Sized_symbol<64> **poldsym,bool *resolve_oldsym,bool is_forced_local" (binary_expression "char **pname" identifier * (pointer_expression "*pname" * identifier)) , (comma_expression "char **pversion,bool only_if_ref,STV visibility,\n          Sized_symbol<64> **poldsym,bool *resolve_oldsym,bool is_forced_local" (binary_expression "char **pversion" identifier * (pointer_expression "*pversion" * identifier)) , (ERROR "bool" identifier) (comma_expression "only_if_ref,STV visibility,\n          Sized_symbol<64> **poldsym,bool *resolve_oldsym,bool is_forced_local" identifier , (ERROR "STV" identifier) (comma_expression "visibility,\n          Sized_symbol<64> **poldsym,bool *resolve_oldsym,bool is_forced_local" identifier , (comma_expression "Sized_symbol<64> **poldsym,bool *resolve_oldsym,bool is_forced_local" (binary_expression "Sized_symbol<64> **poldsym" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "**poldsym" * (pointer_expression "*poldsym" * identifier))) , (comma_expression "bool *resolve_oldsym,bool is_forced_local" (binary_expression "bool *resolve_oldsym" identifier * identifier) , (ERROR "bool" identifier) identifier))))))) )))) (compound_statement "{\n  byte bVar1;\n  Target *pTVar2;\n  Symbol_table *pSVar3;\n  bool bVar4;\n  char cVar5;\n  int iVar6;\n  Symbol_table *this_00;\n  undefined4 extraout_var;\n  Sized_symbol<64> *pSVar7;\n  Sized_symbol<64> *pSVar8;\n  char *pcVar9;\n  pair<std::__detail::_Node_iterator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_false,_true>,_bool>\n  pVar10;\n  pair<std::__detail::_Node_iterator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_false,_true>,_bool>\n  pVar11;\n  _Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n  local_b8;\n  _Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_true>\n  local_a8;\n  bool local_91;\n  Key name_key;\n  Key version_key;\n  bool is_global;\n  char *local_70;\n  anon_union_8_3_b0f6f408_for_u1_ local_68;\n  string v;\n  \n  pSVar7 = (Sized_symbol<64> *)*pname;\n  v._M_dataplus._M_p = (pointer)&v.field_2;\n  *resolve_oldsym = false;\n  *poldsym = (Sized_symbol<64> *)0x0;\n  v._M_string_length = 0;\n  v.field_2._M_local_buf[0] = '\0';\n  if (is_forced_local) {\n    cVar5 = '\0';\n    is_forced_local = false;\n    if (only_if_ref) goto LAB_00291f1e;\nLAB_0029205d:\n    pcVar9 = Stringpool_template<char>::add(&this->namepool_,(char *)pSVar7,true,&name_key);\n    *pname = pcVar9;\n    version_key = 0;\n    if (*pversion != (char *)0x0) {\n      pcVar9 = Stringpool_template<char>::add(&this->namepool_,*pversion,true,&version_key);\n      *pversion = pcVar9;\n    }\n    pSVar8 = (Sized_symbol<64> *)&is_global;\n    _is_global = (char *)name_key;\n    local_68.object = (Object *)0x0;\n    pSVar7 = pSVar8;\n    local_70 = (char *)version_key;\n    pVar10 = std::\n             _Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n             ::\n             _M_emplace<std::pair<std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                       ((_Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                         *)&this->table_);\n    local_a8._M_cur = (__node_type *)pVar10.first;\n    local_91 = false;\n    local_b8._M_cur = (__node_type *)0x0;\n    if (is_forced_local != false) {\n      local_70 = (char *)0x0;\n      local_68.object = (Object *)0x0;\n      _is_global = (char *)name_key;\n      pVar11 = std::\n               _Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n               ::\n               _M_emplace<std::pair<std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                         ((_Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                           *)&this->table_);\n      local_b8._M_cur = (__node_type *)pVar11.first;\n      local_91 = pVar11.second;\n      pSVar7 = pSVar8;\n    }\n    this_00 = *(Symbol_table **)((long)local_a8._M_cur + 0x18);\n    bVar4 = pVar10.second;\n    if (bVar4 == false) {\n      if (this_00 == (Symbol_table *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0x75a,"define_special_symbol");\n      }\n      if (is_forced_local == false) {\nLAB_00291f97:\n        local_b8._M_cur = (__node_type *)0x0;\n        local_a8._M_cur = (__node_type *)0x0;\n        local_91 = (bool)'\0';\n        cVar5 = is_forced_local;\n      }\n      else {\n        pSVar7 = get_sized_symbol<64>(this_00,&pSVar7->super_Symbol);\n        define_default_version<64,_true>(this,pSVar7,local_91,(iterator)local_b8._M_cur);\n        local_b8._M_cur = (__node_type *)0x0;\n        local_a8._M_cur = (__node_type *)0x0;\n        local_91 = bVar4;\n        cVar5 = '\0';\n      }\n    }\n    else {\n      if (this_00 != (Symbol_table *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0x768,"define_special_symbol");\n      }\n      if (is_forced_local == false) {\n        local_b8._M_cur = (__node_type *)0x0;\n        local_91 = bVar4;\n        cVar5 = is_forced_local;\n      }\n      else {\n        cVar5 = local_91;\n        if ((local_91 == false) &&\n           (pSVar3 = *(Symbol_table **)\n                      ((long)&((local_b8._M_cur)->\n                              super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                              )._M_storage._M_storage + 0x10), local_91 = is_forced_local,\n           cVar5 = is_forced_local, *(long *)&pSVar3->first_global_index_ == 0)) {\n          local_b8._M_cur = (__node_type *)0x0;\n          *resolve_oldsym = true;\n          this_00 = pSVar3;\n          pSVar7 = (Sized_symbol<64> *)resolve_oldsym;\n          cVar5 = '\0';\n        }\n      }\n    }\nLAB_00291fab:\n    pTVar2 = parameters->target_;\n    if (pTVar2 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n    }\n    if (pTVar2->pti_->has_make_symbol == false) {\n      pSVar8 = (Sized_symbol<64> *)operator_new(0x50);\n      (pSVar8->super_Symbol).name_ = (char *)0x0;\n      (pSVar8->super_Symbol).version_ = (char *)0x0;\n      (pSVar8->super_Symbol).u1_ = (anon_union_8_3_b0f6f408_for_u1_)0x0;\n      (pSVar8->super_Symbol).u2_ = (anon_union_4_3_b582a2bd_for_u2_)0x0;\n      (pSVar8->super_Symbol).symtab_index_ = 0;\n      (pSVar8->super_Symbol).dynsym_index_ = 0;\n      (pSVar8->super_Symbol).plt_offset_ = 0;\n      (pSVar8->super_Symbol).got_offsets_.got_type_ = 0;\n      (pSVar8->super_Symbol).got_offsets_.got_offset_ = 0;\n      *(undefined1 (*) [16])&(pSVar8->super_Symbol).got_offsets_.got_next_ = (undefined1  [16])0x0;\n    }\n    else {\n      pSVar7 = (Sized_symbol<64> *)*pname;\n      iVar6 = (*pTVar2->_vptr_Target[0x2a])(pTVar2,pSVar7,0,0,0,0);\n      pSVar8 = (Sized_symbol<64> *)CONCAT44(extraout_var,iVar6);\n      if (pSVar8 == (Sized_symbol<64> *)0x0) goto LAB_00292209;\n    }\n    if (local_91 == false) {\n      if (this_00 == (Symbol_table *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0x794,"define_special_symbol");\n      }\n    }\n    else {\n      *(Sized_symbol<64> **)\n       ((long)&((local_a8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n               )._M_storage._M_storage + 0x10) = pSVar8;\n    }\n    if (cVar5 != '\0') {\n      *(Sized_symbol<64> **)\n       ((long)&((local_b8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n               )._M_storage._M_storage + 0x10) = pSVar8;\n    }\n    pSVar7 = get_sized_symbol<64>(this_00,&pSVar7->super_Symbol);\n    *poldsym = pSVar7;\n  }\n  else {\n    if (*pversion == (char *)0x0) {\n      cVar5 = Version_script_info::get_symbol_version\n                        (this->version_script_,(char *)pSVar7,&v,&is_global);\n      if ((((bool)cVar5) && (cVar5 = is_global, is_global != false)) &&\n         (cVar5 = is_forced_local, v._M_string_length != 0)) {\n        *pversion = v._M_dataplus._M_p;\n        cVar5 = is_global;\n      }\n      is_forced_local = (bool)cVar5;\n      pSVar7 = (Sized_symbol<64> *)*pname;\n    }\n    cVar5 = is_forced_local;\n    if (!only_if_ref) goto LAB_0029205d;\nLAB_00291f1e:\n                    /* try { // try from 00291f24 to 0029237e has its CatchHandler @ 0029237f */\n    this_00 = (Symbol_table *)lookup(this,(char *)pSVar7,*pversion);\n    if ((this_00 == (Symbol_table *)0x0) && (cVar5 != '\0')) {\n      pSVar7 = (Sized_symbol<64> *)*pname;\n      this_00 = (Symbol_table *)lookup(this,(char *)pSVar7,(char *)0x0);\n    }\n    if (this_00 != (Symbol_table *)0x0) {\n      bVar1 = *(byte *)((long)&(this_00->table_)._M_h._M_bucket_count + 2);\n      if ((bVar1 & 7) != 0) {\n        if ((bVar1 & 7) == 4) goto LAB_00291f80;\n        goto LAB_00292209;\n      }\n      if (((this_00->output_count_ != 0) ||\n          (((this_00->table_)._M_h._M_bucket_count & 0x20000000) == 0)) &&\n         (((*(byte *)(this_00->offset_ + 0x3c) & 1) == 0 ||\n          ((visibility - STV_INTERNAL < 2 && (-1 < (char)bVar1)))))) goto LAB_00292209;\nLAB_00291f80:\n      *pname = (char *)this_00->saw_undefined_;\n      if (cVar5 == '\0') {\n        *pversion = *(char **)&this_00->first_global_index_;\n        is_forced_local = false;\n        goto LAB_00291f97;\n      }\n      pSVar7 = (Sized_symbol<64> *)*pversion;\n      pcVar9 = Stringpool_template<char>::add(&this->namepool_,(char *)pSVar7,true,(Key *)0x0);\n      *pversion = pcVar9;\n      local_b8._M_cur = (__node_type *)0x0;\n      local_a8._M_cur = (__node_type *)0x0;\n      local_91 = (bool)'\0';\n      cVar5 = '\0';\n      goto LAB_00291fab;\n    }\nLAB_00292209:\n    pSVar8 = (Sized_symbol<64> *)0x0;\n  }\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)v._M_dataplus._M_p != &v.field_2) {\n    operator_delete(v._M_dataplus._M_p);\n  }\n  return pSVar8;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "Target *pTVar2;" type_identifier (pointer_declarator "*pTVar2" * identifier) ;) (declaration "Symbol_table *pSVar3;" type_identifier (pointer_declarator "*pSVar3" * identifier) ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "Symbol_table *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "undefined4 extraout_var;" type_identifier identifier ;) (expression_statement "Sized_symbol<64> *pSVar7;" (binary_expression "Sized_symbol<64> *pSVar7" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*pSVar7" * identifier)) ;) (expression_statement "Sized_symbol<64> *pSVar8;" (binary_expression "Sized_symbol<64> *pSVar8" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*pSVar8" * identifier)) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (ERROR "pair<std::" (binary_expression "pair<std" identifier < identifier) : :) (labeled_statement "__detail::_Node_iterator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_false,_true>,_bool>\n  pVar10;" statement_identifier (ERROR "::_Node_iterator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold:" : : (binary_expression "_Node_iterator<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "pair<long_unsigned_int,_long_unsigned_int>,_gold" (binary_expression "pair<long_unsigned_int" identifier < identifier) , (binary_expression "_long_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier)) :) : (expression_statement "Symbol*>,_false,_true>,_bool>\n  pVar10;" (comma_expression "Symbol*>,_false,_true>,_bool>\n  pVar10" (binary_expression "Symbol*>,_false" identifier * (ERROR ">," > ,) identifier) , (binary_expression "_true>,_bool>\n  pVar10" (binary_expression "_true>,_bool" identifier > (ERROR "," ,) identifier) > identifier)) ;)) (ERROR "pair<std::" (binary_expression "pair<std" identifier < identifier) : :) (labeled_statement "__detail::_Node_iterator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_false,_true>,_bool>\n  pVar11;" statement_identifier (ERROR "::_Node_iterator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold:" : : (binary_expression "_Node_iterator<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "pair<long_unsigned_int,_long_unsigned_int>,_gold" (binary_expression "pair<long_unsigned_int" identifier < identifier) , (binary_expression "_long_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier)) :) : (expression_statement "Symbol*>,_false,_true>,_bool>\n  pVar11;" (comma_expression "Symbol*>,_false,_true>,_bool>\n  pVar11" (binary_expression "Symbol*>,_false" identifier * (ERROR ">," > ,) identifier) , (binary_expression "_true>,_bool>\n  pVar11" (binary_expression "_true>,_bool" identifier > (ERROR "," ,) identifier) > identifier)) ;)) (ERROR "_Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::" (comma_expression "_Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold" (binary_expression "_Node_iterator_base<std::pair<const_std::pair<long_unsigned_int" (binary_expression "_Node_iterator_base<std::pair<const_std" (binary_expression "_Node_iterator_base<std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_long_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier)) : :) (expression_statement "Symbol*>,_true>\n  local_b8;" (binary_expression "Symbol*>,_true>\n  local_b8" (binary_expression "Symbol*>,_true" identifier * (ERROR ">," > ,) identifier) > identifier) ;) (ERROR "_Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::" (comma_expression "_Node_iterator_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold" (binary_expression "_Node_iterator_base<std::pair<const_std::pair<long_unsigned_int" (binary_expression "_Node_iterator_base<std::pair<const_std" (binary_expression "_Node_iterator_base<std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_long_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier)) : :) (expression_statement "Symbol*>,_true>\n  local_a8;" (binary_expression "Symbol*>,_true>\n  local_a8" (binary_expression "Symbol*>,_true" identifier * (ERROR ">," > ,) identifier) > identifier) ;) (declaration "bool local_91;" primitive_type identifier ;) (declaration "Key name_key;" type_identifier identifier ;) (declaration "Key version_key;" type_identifier identifier ;) (declaration "bool is_global;" primitive_type identifier ;) (declaration "char *local_70;" primitive_type (pointer_declarator "*local_70" * identifier) ;) (declaration "anon_union_8_3_b0f6f408_for_u1_ local_68;" type_identifier identifier ;) (declaration "string v;" type_identifier identifier ;) (expression_statement "pSVar7 = (Sized_symbol<64> *)*pname;" (assignment_expression "pSVar7 = (Sized_symbol<64> *)*pname" identifier = (binary_expression "(Sized_symbol<64> *)*pname" (parenthesized_expression "(Sized_symbol<64> *)" ( (binary_expression "Sized_symbol<64> *" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*" * identifier)) )) * identifier)) ;) (expression_statement "v._M_dataplus._M_p = (pointer)&v.field_2;" (assignment_expression "v._M_dataplus._M_p = (pointer)&v.field_2" (field_expression "v._M_dataplus._M_p" (field_expression "v._M_dataplus" identifier . field_identifier) . field_identifier) = (binary_expression "(pointer)&v.field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "v.field_2" identifier . field_identifier))) ;) (expression_statement "*resolve_oldsym = false;" (assignment_expression "*resolve_oldsym = false" (pointer_expression "*resolve_oldsym" * identifier) = false) ;) (expression_statement "*poldsym = (Sized_symbol<64> *)0x0;" (assignment_expression "*poldsym = (Sized_symbol<64> *)0x0" (pointer_expression "*poldsym" * identifier) = (parenthesized_expression "(Sized_symbol<64> *)0x0" ( (binary_expression "Sized_symbol<64> *)0x0" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*)0x0" * (ERROR ")" )) number_literal)) ))) ;) (expression_statement "v._M_string_length = 0;" (assignment_expression "v._M_string_length = 0" (field_expression "v._M_string_length" identifier . field_identifier) = number_literal) ;) (expression_statement "v.field_2._M_local_buf[0] = '\0';" (assignment_expression "v.field_2._M_local_buf[0] = '\0'" (subscript_expression "v.field_2._M_local_buf[0]" (field_expression "v.field_2._M_local_buf" (field_expression "v.field_2" identifier . field_identifier) . field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (is_forced_local) {\n    cVar5 = '\0';\n    is_forced_local = false;\n    if (only_if_ref) goto LAB_00291f1e;\nLAB_0029205d:\n    pcVar9 = Stringpool_template<char>::add(&this->namepool_,(char *)pSVar7,true,&name_key);\n    *pname = pcVar9;\n    version_key = 0;\n    if (*pversion != (char *)0x0) {\n      pcVar9 = Stringpool_template<char>::add(&this->namepool_,*pversion,true,&version_key);\n      *pversion = pcVar9;\n    }\n    pSVar8 = (Sized_symbol<64> *)&is_global;\n    _is_global = (char *)name_key;\n    local_68.object = (Object *)0x0;\n    pSVar7 = pSVar8;\n    local_70 = (char *)version_key;\n    pVar10 = std::\n             _Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n             ::\n             _M_emplace<std::pair<std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                       ((_Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                         *)&this->table_);\n    local_a8._M_cur = (__node_type *)pVar10.first;\n    local_91 = false;\n    local_b8._M_cur = (__node_type *)0x0;\n    if (is_forced_local != false) {\n      local_70 = (char *)0x0;\n      local_68.object = (Object *)0x0;\n      _is_global = (char *)name_key;\n      pVar11 = std::\n               _Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n               ::\n               _M_emplace<std::pair<std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                         ((_Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                           *)&this->table_);\n      local_b8._M_cur = (__node_type *)pVar11.first;\n      local_91 = pVar11.second;\n      pSVar7 = pSVar8;\n    }\n    this_00 = *(Symbol_table **)((long)local_a8._M_cur + 0x18);\n    bVar4 = pVar10.second;\n    if (bVar4 == false) {\n      if (this_00 == (Symbol_table *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0x75a,"define_special_symbol");\n      }\n      if (is_forced_local == false) {\nLAB_00291f97:\n        local_b8._M_cur = (__node_type *)0x0;\n        local_a8._M_cur = (__node_type *)0x0;\n        local_91 = (bool)'\0';\n        cVar5 = is_forced_local;\n      }\n      else {\n        pSVar7 = get_sized_symbol<64>(this_00,&pSVar7->super_Symbol);\n        define_default_version<64,_true>(this,pSVar7,local_91,(iterator)local_b8._M_cur);\n        local_b8._M_cur = (__node_type *)0x0;\n        local_a8._M_cur = (__node_type *)0x0;\n        local_91 = bVar4;\n        cVar5 = '\0';\n      }\n    }\n    else {\n      if (this_00 != (Symbol_table *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0x768,"define_special_symbol");\n      }\n      if (is_forced_local == false) {\n        local_b8._M_cur = (__node_type *)0x0;\n        local_91 = bVar4;\n        cVar5 = is_forced_local;\n      }\n      else {\n        cVar5 = local_91;\n        if ((local_91 == false) &&\n           (pSVar3 = *(Symbol_table **)\n                      ((long)&((local_b8._M_cur)->\n                              super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                              )._M_storage._M_storage + 0x10), local_91 = is_forced_local,\n           cVar5 = is_forced_local, *(long *)&pSVar3->first_global_index_ == 0)) {\n          local_b8._M_cur = (__node_type *)0x0;\n          *resolve_oldsym = true;\n          this_00 = pSVar3;\n          pSVar7 = (Sized_symbol<64> *)resolve_oldsym;\n          cVar5 = '\0';\n        }\n      }\n    }\nLAB_00291fab:\n    pTVar2 = parameters->target_;\n    if (pTVar2 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n    }\n    if (pTVar2->pti_->has_make_symbol == false) {\n      pSVar8 = (Sized_symbol<64> *)operator_new(0x50);\n      (pSVar8->super_Symbol).name_ = (char *)0x0;\n      (pSVar8->super_Symbol).version_ = (char *)0x0;\n      (pSVar8->super_Symbol).u1_ = (anon_union_8_3_b0f6f408_for_u1_)0x0;\n      (pSVar8->super_Symbol).u2_ = (anon_union_4_3_b582a2bd_for_u2_)0x0;\n      (pSVar8->super_Symbol).symtab_index_ = 0;\n      (pSVar8->super_Symbol).dynsym_index_ = 0;\n      (pSVar8->super_Symbol).plt_offset_ = 0;\n      (pSVar8->super_Symbol).got_offsets_.got_type_ = 0;\n      (pSVar8->super_Symbol).got_offsets_.got_offset_ = 0;\n      *(undefined1 (*) [16])&(pSVar8->super_Symbol).got_offsets_.got_next_ = (undefined1  [16])0x0;\n    }\n    else {\n      pSVar7 = (Sized_symbol<64> *)*pname;\n      iVar6 = (*pTVar2->_vptr_Target[0x2a])(pTVar2,pSVar7,0,0,0,0);\n      pSVar8 = (Sized_symbol<64> *)CONCAT44(extraout_var,iVar6);\n      if (pSVar8 == (Sized_symbol<64> *)0x0) goto LAB_00292209;\n    }\n    if (local_91 == false) {\n      if (this_00 == (Symbol_table *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0x794,"define_special_symbol");\n      }\n    }\n    else {\n      *(Sized_symbol<64> **)\n       ((long)&((local_a8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n               )._M_storage._M_storage + 0x10) = pSVar8;\n    }\n    if (cVar5 != '\0') {\n      *(Sized_symbol<64> **)\n       ((long)&((local_b8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n               )._M_storage._M_storage + 0x10) = pSVar8;\n    }\n    pSVar7 = get_sized_symbol<64>(this_00,&pSVar7->super_Symbol);\n    *poldsym = pSVar7;\n  }\n  else {\n    if (*pversion == (char *)0x0) {\n      cVar5 = Version_script_info::get_symbol_version\n                        (this->version_script_,(char *)pSVar7,&v,&is_global);\n      if ((((bool)cVar5) && (cVar5 = is_global, is_global != false)) &&\n         (cVar5 = is_forced_local, v._M_string_length != 0)) {\n        *pversion = v._M_dataplus._M_p;\n        cVar5 = is_global;\n      }\n      is_forced_local = (bool)cVar5;\n      pSVar7 = (Sized_symbol<64> *)*pname;\n    }\n    cVar5 = is_forced_local;\n    if (!only_if_ref) goto LAB_0029205d;\nLAB_00291f1e:\n                    /* try { // try from 00291f24 to 0029237e has its CatchHandler @ 0029237f */\n    this_00 = (Symbol_table *)lookup(this,(char *)pSVar7,*pversion);\n    if ((this_00 == (Symbol_table *)0x0) && (cVar5 != '\0')) {\n      pSVar7 = (Sized_symbol<64> *)*pname;\n      this_00 = (Symbol_table *)lookup(this,(char *)pSVar7,(char *)0x0);\n    }\n    if (this_00 != (Symbol_table *)0x0) {\n      bVar1 = *(byte *)((long)&(this_00->table_)._M_h._M_bucket_count + 2);\n      if ((bVar1 & 7) != 0) {\n        if ((bVar1 & 7) == 4) goto LAB_00291f80;\n        goto LAB_00292209;\n      }\n      if (((this_00->output_count_ != 0) ||\n          (((this_00->table_)._M_h._M_bucket_count & 0x20000000) == 0)) &&\n         (((*(byte *)(this_00->offset_ + 0x3c) & 1) == 0 ||\n          ((visibility - STV_INTERNAL < 2 && (-1 < (char)bVar1)))))) goto LAB_00292209;\nLAB_00291f80:\n      *pname = (char *)this_00->saw_undefined_;\n      if (cVar5 == '\0') {\n        *pversion = *(char **)&this_00->first_global_index_;\n        is_forced_local = false;\n        goto LAB_00291f97;\n      }\n      pSVar7 = (Sized_symbol<64> *)*pversion;\n      pcVar9 = Stringpool_template<char>::add(&this->namepool_,(char *)pSVar7,true,(Key *)0x0);\n      *pversion = pcVar9;\n      local_b8._M_cur = (__node_type *)0x0;\n      local_a8._M_cur = (__node_type *)0x0;\n      local_91 = (bool)'\0';\n      cVar5 = '\0';\n      goto LAB_00291fab;\n    }\nLAB_00292209:\n    pSVar8 = (Sized_symbol<64> *)0x0;\n  }" if (parenthesized_expression "(is_forced_local)" ( identifier )) (compound_statement "{\n    cVar5 = '\0';\n    is_forced_local = false;\n    if (only_if_ref) goto LAB_00291f1e;\nLAB_0029205d:\n    pcVar9 = Stringpool_template<char>::add(&this->namepool_,(char *)pSVar7,true,&name_key);\n    *pname = pcVar9;\n    version_key = 0;\n    if (*pversion != (char *)0x0) {\n      pcVar9 = Stringpool_template<char>::add(&this->namepool_,*pversion,true,&version_key);\n      *pversion = pcVar9;\n    }\n    pSVar8 = (Sized_symbol<64> *)&is_global;\n    _is_global = (char *)name_key;\n    local_68.object = (Object *)0x0;\n    pSVar7 = pSVar8;\n    local_70 = (char *)version_key;\n    pVar10 = std::\n             _Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n             ::\n             _M_emplace<std::pair<std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                       ((_Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                         *)&this->table_);\n    local_a8._M_cur = (__node_type *)pVar10.first;\n    local_91 = false;\n    local_b8._M_cur = (__node_type *)0x0;\n    if (is_forced_local != false) {\n      local_70 = (char *)0x0;\n      local_68.object = (Object *)0x0;\n      _is_global = (char *)name_key;\n      pVar11 = std::\n               _Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n               ::\n               _M_emplace<std::pair<std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                         ((_Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                           *)&this->table_);\n      local_b8._M_cur = (__node_type *)pVar11.first;\n      local_91 = pVar11.second;\n      pSVar7 = pSVar8;\n    }\n    this_00 = *(Symbol_table **)((long)local_a8._M_cur + 0x18);\n    bVar4 = pVar10.second;\n    if (bVar4 == false) {\n      if (this_00 == (Symbol_table *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0x75a,"define_special_symbol");\n      }\n      if (is_forced_local == false) {\nLAB_00291f97:\n        local_b8._M_cur = (__node_type *)0x0;\n        local_a8._M_cur = (__node_type *)0x0;\n        local_91 = (bool)'\0';\n        cVar5 = is_forced_local;\n      }\n      else {\n        pSVar7 = get_sized_symbol<64>(this_00,&pSVar7->super_Symbol);\n        define_default_version<64,_true>(this,pSVar7,local_91,(iterator)local_b8._M_cur);\n        local_b8._M_cur = (__node_type *)0x0;\n        local_a8._M_cur = (__node_type *)0x0;\n        local_91 = bVar4;\n        cVar5 = '\0';\n      }\n    }\n    else {\n      if (this_00 != (Symbol_table *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0x768,"define_special_symbol");\n      }\n      if (is_forced_local == false) {\n        local_b8._M_cur = (__node_type *)0x0;\n        local_91 = bVar4;\n        cVar5 = is_forced_local;\n      }\n      else {\n        cVar5 = local_91;\n        if ((local_91 == false) &&\n           (pSVar3 = *(Symbol_table **)\n                      ((long)&((local_b8._M_cur)->\n                              super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                              )._M_storage._M_storage + 0x10), local_91 = is_forced_local,\n           cVar5 = is_forced_local, *(long *)&pSVar3->first_global_index_ == 0)) {\n          local_b8._M_cur = (__node_type *)0x0;\n          *resolve_oldsym = true;\n          this_00 = pSVar3;\n          pSVar7 = (Sized_symbol<64> *)resolve_oldsym;\n          cVar5 = '\0';\n        }\n      }\n    }\nLAB_00291fab:\n    pTVar2 = parameters->target_;\n    if (pTVar2 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n    }\n    if (pTVar2->pti_->has_make_symbol == false) {\n      pSVar8 = (Sized_symbol<64> *)operator_new(0x50);\n      (pSVar8->super_Symbol).name_ = (char *)0x0;\n      (pSVar8->super_Symbol).version_ = (char *)0x0;\n      (pSVar8->super_Symbol).u1_ = (anon_union_8_3_b0f6f408_for_u1_)0x0;\n      (pSVar8->super_Symbol).u2_ = (anon_union_4_3_b582a2bd_for_u2_)0x0;\n      (pSVar8->super_Symbol).symtab_index_ = 0;\n      (pSVar8->super_Symbol).dynsym_index_ = 0;\n      (pSVar8->super_Symbol).plt_offset_ = 0;\n      (pSVar8->super_Symbol).got_offsets_.got_type_ = 0;\n      (pSVar8->super_Symbol).got_offsets_.got_offset_ = 0;\n      *(undefined1 (*) [16])&(pSVar8->super_Symbol).got_offsets_.got_next_ = (undefined1  [16])0x0;\n    }\n    else {\n      pSVar7 = (Sized_symbol<64> *)*pname;\n      iVar6 = (*pTVar2->_vptr_Target[0x2a])(pTVar2,pSVar7,0,0,0,0);\n      pSVar8 = (Sized_symbol<64> *)CONCAT44(extraout_var,iVar6);\n      if (pSVar8 == (Sized_symbol<64> *)0x0) goto LAB_00292209;\n    }\n    if (local_91 == false) {\n      if (this_00 == (Symbol_table *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0x794,"define_special_symbol");\n      }\n    }\n    else {\n      *(Sized_symbol<64> **)\n       ((long)&((local_a8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n               )._M_storage._M_storage + 0x10) = pSVar8;\n    }\n    if (cVar5 != '\0') {\n      *(Sized_symbol<64> **)\n       ((long)&((local_b8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n               )._M_storage._M_storage + 0x10) = pSVar8;\n    }\n    pSVar7 = get_sized_symbol<64>(this_00,&pSVar7->super_Symbol);\n    *poldsym = pSVar7;\n  }" { (expression_statement "cVar5 = '\0';" (assignment_expression "cVar5 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "is_forced_local = false;" (assignment_expression "is_forced_local = false" identifier = false) ;) (if_statement "if (only_if_ref) goto LAB_00291f1e;" if (parenthesized_expression "(only_if_ref)" ( identifier )) (goto_statement "goto LAB_00291f1e;" goto statement_identifier ;)) (labeled_statement "LAB_0029205d:\n    pcVar9 = Stringpool_template<char>::add(&this->namepool_,(char *)pSVar7,true,&name_key);" statement_identifier : (expression_statement "pcVar9 = Stringpool_template<char>::add(&this->namepool_,(char *)pSVar7,true,&name_key);" (assignment_expression "pcVar9 = Stringpool_template<char>::add(&this->namepool_,(char *)pSVar7,true,&name_key)" identifier = (binary_expression "Stringpool_template<char>::add(&this->namepool_,(char *)pSVar7,true,&name_key)" (binary_expression "Stringpool_template<char" identifier < identifier) > (ERROR "::" : :) (call_expression "add(&this->namepool_,(char *)pSVar7,true,&name_key)" identifier (argument_list "(&this->namepool_,(char *)pSVar7,true,&name_key)" ( (pointer_expression "&this->namepool_" & (field_expression "this->namepool_" identifier -> field_identifier)) , (cast_expression "(char *)pSVar7" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , true , (pointer_expression "&name_key" & identifier) ))))) ;)) (expression_statement "*pname = pcVar9;" (assignment_expression "*pname = pcVar9" (pointer_expression "*pname" * identifier) = identifier) ;) (expression_statement "version_key = 0;" (assignment_expression "version_key = 0" identifier = number_literal) ;) (if_statement "if (*pversion != (char *)0x0) {\n      pcVar9 = Stringpool_template<char>::add(&this->namepool_,*pversion,true,&version_key);\n      *pversion = pcVar9;\n    }" if (parenthesized_expression "(*pversion != (char *)0x0)" ( (binary_expression "*pversion != (char *)0x0" (pointer_expression "*pversion" * identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar9 = Stringpool_template<char>::add(&this->namepool_,*pversion,true,&version_key);\n      *pversion = pcVar9;\n    }" { (expression_statement "pcVar9 = Stringpool_template<char>::add(&this->namepool_,*pversion,true,&version_key);" (assignment_expression "pcVar9 = Stringpool_template<char>::add(&this->namepool_,*pversion,true,&version_key)" identifier = (binary_expression "Stringpool_template<char>::add(&this->namepool_,*pversion,true,&version_key)" (binary_expression "Stringpool_template<char" identifier < identifier) > (ERROR "::" : :) (call_expression "add(&this->namepool_,*pversion,true,&version_key)" identifier (argument_list "(&this->namepool_,*pversion,true,&version_key)" ( (pointer_expression "&this->namepool_" & (field_expression "this->namepool_" identifier -> field_identifier)) , (pointer_expression "*pversion" * identifier) , true , (pointer_expression "&version_key" & identifier) ))))) ;) (expression_statement "*pversion = pcVar9;" (assignment_expression "*pversion = pcVar9" (pointer_expression "*pversion" * identifier) = identifier) ;) })) (expression_statement "pSVar8 = (Sized_symbol<64> *)&is_global;" (assignment_expression "pSVar8 = (Sized_symbol<64> *)&is_global" identifier = (binary_expression "(Sized_symbol<64> *)&is_global" (parenthesized_expression "(Sized_symbol<64> *)" ( (binary_expression "Sized_symbol<64> *" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*" * identifier)) )) & identifier)) ;) (expression_statement "_is_global = (char *)name_key;" (assignment_expression "_is_global = (char *)name_key" identifier = (cast_expression "(char *)name_key" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_68.object = (Object *)0x0;" (assignment_expression "local_68.object = (Object *)0x0" (field_expression "local_68.object" identifier . field_identifier) = (cast_expression "(Object *)0x0" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pSVar7 = pSVar8;" (assignment_expression "pSVar7 = pSVar8" identifier = identifier) ;) (expression_statement "local_70 = (char *)version_key;" (assignment_expression "local_70 = (char *)version_key" identifier = (cast_expression "(char *)version_key" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (ERROR "pVar10 = std::\n             _Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::" (assignment_expression "pVar10 = std" identifier = identifier) : : (binary_expression "_Hashtable<std" identifier < identifier) : : (comma_expression "pair<long_unsigned_int,_long_unsigned_int>,_std" (binary_expression "pair<long_unsigned_int" identifier < identifier) , (binary_expression "_long_unsigned_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "pair<long_unsigned_int,_long_unsigned_int>,_gold" (binary_expression "pair<long_unsigned_int" identifier < identifier) , (binary_expression "_long_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier)) : : (comma_expression "Symbol*>,_std" identifier (ERROR "*>" * >) , identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "pair<long_unsigned_int,_long_unsigned_int>,_gold" (binary_expression "pair<long_unsigned_int" identifier < identifier) , (binary_expression "_long_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier)) : : (binary_expression "Symbol*>_>,_std" (binary_expression "Symbol*>_" identifier * (ERROR ">" >) identifier) > (ERROR "," ,) identifier) : :) (labeled_statement "__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n             ::\n             _M_emplace<std::pair<std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                       ((_Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                         *)&this->table_);" statement_identifier (ERROR "::_Select1st,_gold:" : : (comma_expression "_Select1st,_gold" identifier , identifier) :) : (labeled_statement "Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n             ::\n             _M_emplace<std::pair<std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                       ((_Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                         *)&this->table_);" statement_identifier (ERROR "::Symbol_table_eq,_gold:" : : (comma_expression "Symbol_table_eq,_gold" identifier , identifier) :) : (labeled_statement "Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n             ::\n             _M_emplace<std::pair<std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                       ((_Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                         *)&this->table_);" statement_identifier (ERROR "::Symbol_table_hash,_std:" : : (comma_expression "Symbol_table_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,_false,_true>_>\n             ::\n             _M_emplace<std::pair<std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                       ((_Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                         *)&this->table_);" 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,_false,_true>_>\n             ::\n             _M_emplace<std::pair<std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                       ((_Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                         *)&this->table_);" 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,_false,_true>_>\n             ::\n             _M_emplace<std::pair<std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                       ((_Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                         *)&this->table_);" statement_identifier (ERROR "::_Prime_rehash_policy,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) :) : (expression_statement "__detail::_Hashtable_traits<true,_false,_true>_>\n             ::\n             _M_emplace<std::pair<std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                       ((_Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                         *)&this->table_);" (binary_expression "__detail::_Hashtable_traits<true,_false,_true>_>\n             ::\n             _M_emplace<std::pair<std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                       ((_Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                         *)&this->table_)" (binary_expression "__detail::_Hashtable_traits<true,_false,_true>_>\n             ::\n             _M_emplace<std::pair<std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_" identifier (ERROR "::_Hashtable_traits<true,_false,_true>_>\n             ::\n             _M_emplace<std::pair<std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*" : : (comma_expression "_Hashtable_traits<true,_false,_true>_>\n             ::\n             _M_emplace<std" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_false,_true>_>\n             ::\n             _M_emplace<std" identifier , (binary_expression "_true>_>\n             ::\n             _M_emplace<std" (binary_expression "_true>_>\n             ::\n             _M_emplace" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) identifier) < identifier))) : : (binary_expression "pair<std" identifier < identifier) : : (comma_expression "pair<long_unsigned_int,_long_unsigned_int>,_gold" (binary_expression "pair<long_unsigned_int" identifier < identifier) , (binary_expression "_long_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier)) : : identifier *) > identifier) > (parenthesized_expression "((_Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                         *)&this->table_)" ( (binary_expression "(_Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                         *)&this->table_" (parenthesized_expression "(_Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                         *)" ( (ERROR "_Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "_Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std" (binary_expression "_Hashtable<std::pair<long_unsigned_int" (binary_expression "_Hashtable<std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_long_unsigned_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "pair<long_unsigned_int,_long_unsigned_int>,_gold" (binary_expression "pair<long_unsigned_int" identifier < identifier) , (binary_expression "_long_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier)) : : (comma_expression "Symbol*>,_std" identifier (ERROR "*>" * >) , identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "pair<long_unsigned_int,_long_unsigned_int>,_gold" (binary_expression "pair<long_unsigned_int" identifier < identifier) , (binary_expression "_long_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier)) : : (binary_expression "Symbol*>_>,_std" (binary_expression "Symbol*>_" identifier * (ERROR ">" >) identifier) > (ERROR "," ,) identifier) : : identifier : : (comma_expression "_Select1st,_gold" identifier , identifier) : : identifier : : (comma_expression "Symbol_table_eq,_gold" identifier , identifier) : : identifier : : (comma_expression "Symbol_table_hash,_std" identifier , 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,_false,_true>_>\n                         *" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_false,_true>_>\n                         *" identifier , (binary_expression "_true>_>\n                         *" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "*" * identifier)))) )) & (field_expression "this->table_" identifier -> field_identifier)) ))) ;))))))) (expression_statement "local_a8._M_cur = (__node_type *)pVar10.first;" (assignment_expression "local_a8._M_cur = (__node_type *)pVar10.first" (field_expression "local_a8._M_cur" identifier . field_identifier) = (cast_expression "(__node_type *)pVar10.first" ( (type_descriptor "__node_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pVar10.first" identifier . field_identifier))) ;) (expression_statement "local_91 = false;" (assignment_expression "local_91 = false" identifier = false) ;) (expression_statement "local_b8._M_cur = (__node_type *)0x0;" (assignment_expression "local_b8._M_cur = (__node_type *)0x0" (field_expression "local_b8._M_cur" identifier . field_identifier) = (cast_expression "(__node_type *)0x0" ( (type_descriptor "__node_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (is_forced_local != false) {\n      local_70 = (char *)0x0;\n      local_68.object = (Object *)0x0;\n      _is_global = (char *)name_key;\n      pVar11 = std::\n               _Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n               ::\n               _M_emplace<std::pair<std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                         ((_Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                           *)&this->table_);\n      local_b8._M_cur = (__node_type *)pVar11.first;\n      local_91 = pVar11.second;\n      pSVar7 = pSVar8;\n    }" if (parenthesized_expression "(is_forced_local != false)" ( (binary_expression "is_forced_local != false" identifier != false) )) (compound_statement "{\n      local_70 = (char *)0x0;\n      local_68.object = (Object *)0x0;\n      _is_global = (char *)name_key;\n      pVar11 = std::\n               _Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n               ::\n               _M_emplace<std::pair<std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                         ((_Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                           *)&this->table_);\n      local_b8._M_cur = (__node_type *)pVar11.first;\n      local_91 = pVar11.second;\n      pSVar7 = pSVar8;\n    }" { (expression_statement "local_70 = (char *)0x0;" (assignment_expression "local_70 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_68.object = (Object *)0x0;" (assignment_expression "local_68.object = (Object *)0x0" (field_expression "local_68.object" identifier . field_identifier) = (cast_expression "(Object *)0x0" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "_is_global = (char *)name_key;" (assignment_expression "_is_global = (char *)name_key" identifier = (cast_expression "(char *)name_key" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (ERROR "pVar11 = std::\n               _Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::" (assignment_expression "pVar11 = std" identifier = identifier) : : (binary_expression "_Hashtable<std" identifier < identifier) : : (comma_expression "pair<long_unsigned_int,_long_unsigned_int>,_std" (binary_expression "pair<long_unsigned_int" identifier < identifier) , (binary_expression "_long_unsigned_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "pair<long_unsigned_int,_long_unsigned_int>,_gold" (binary_expression "pair<long_unsigned_int" identifier < identifier) , (binary_expression "_long_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier)) : : (comma_expression "Symbol*>,_std" identifier (ERROR "*>" * >) , identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "pair<long_unsigned_int,_long_unsigned_int>,_gold" (binary_expression "pair<long_unsigned_int" identifier < identifier) , (binary_expression "_long_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier)) : : (binary_expression "Symbol*>_>,_std" (binary_expression "Symbol*>_" identifier * (ERROR ">" >) identifier) > (ERROR "," ,) identifier) : :) (labeled_statement "__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n               ::\n               _M_emplace<std::pair<std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                         ((_Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                           *)&this->table_);" statement_identifier (ERROR "::_Select1st,_gold:" : : (comma_expression "_Select1st,_gold" identifier , identifier) :) : (labeled_statement "Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n               ::\n               _M_emplace<std::pair<std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                         ((_Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                           *)&this->table_);" statement_identifier (ERROR "::Symbol_table_eq,_gold:" : : (comma_expression "Symbol_table_eq,_gold" identifier , identifier) :) : (labeled_statement "Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n               ::\n               _M_emplace<std::pair<std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                         ((_Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                           *)&this->table_);" statement_identifier (ERROR "::Symbol_table_hash,_std:" : : (comma_expression "Symbol_table_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,_false,_true>_>\n               ::\n               _M_emplace<std::pair<std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                         ((_Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                           *)&this->table_);" 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,_false,_true>_>\n               ::\n               _M_emplace<std::pair<std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                         ((_Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                           *)&this->table_);" 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,_false,_true>_>\n               ::\n               _M_emplace<std::pair<std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                         ((_Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                           *)&this->table_);" statement_identifier (ERROR "::_Prime_rehash_policy,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) :) : (expression_statement "__detail::_Hashtable_traits<true,_false,_true>_>\n               ::\n               _M_emplace<std::pair<std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                         ((_Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                           *)&this->table_);" (binary_expression "__detail::_Hashtable_traits<true,_false,_true>_>\n               ::\n               _M_emplace<std::pair<std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                         ((_Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                           *)&this->table_)" (binary_expression "__detail::_Hashtable_traits<true,_false,_true>_>\n               ::\n               _M_emplace<std::pair<std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_" identifier (ERROR "::_Hashtable_traits<true,_false,_true>_>\n               ::\n               _M_emplace<std::pair<std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*" : : (comma_expression "_Hashtable_traits<true,_false,_true>_>\n               ::\n               _M_emplace<std" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_false,_true>_>\n               ::\n               _M_emplace<std" identifier , (binary_expression "_true>_>\n               ::\n               _M_emplace<std" (binary_expression "_true>_>\n               ::\n               _M_emplace" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) identifier) < identifier))) : : (binary_expression "pair<std" identifier < identifier) : : (comma_expression "pair<long_unsigned_int,_long_unsigned_int>,_gold" (binary_expression "pair<long_unsigned_int" identifier < identifier) , (binary_expression "_long_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier)) : : identifier *) > identifier) > (parenthesized_expression "((_Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                           *)&this->table_)" ( (binary_expression "(_Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                           *)&this->table_" (parenthesized_expression "(_Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                           *)" ( (ERROR "_Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>,_std::allocator<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>,_std::__detail::_Select1st,_gold::Symbol_table::Symbol_table_eq,_gold::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "_Hashtable<std::pair<long_unsigned_int,_long_unsigned_int>,_std" (binary_expression "_Hashtable<std::pair<long_unsigned_int" (binary_expression "_Hashtable<std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_long_unsigned_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "pair<long_unsigned_int,_long_unsigned_int>,_gold" (binary_expression "pair<long_unsigned_int" identifier < identifier) , (binary_expression "_long_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier)) : : (comma_expression "Symbol*>,_std" identifier (ERROR "*>" * >) , identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "pair<long_unsigned_int,_long_unsigned_int>,_gold" (binary_expression "pair<long_unsigned_int" identifier < identifier) , (binary_expression "_long_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier)) : : (binary_expression "Symbol*>_>,_std" (binary_expression "Symbol*>_" identifier * (ERROR ">" >) identifier) > (ERROR "," ,) identifier) : : identifier : : (comma_expression "_Select1st,_gold" identifier , identifier) : : identifier : : (comma_expression "Symbol_table_eq,_gold" identifier , identifier) : : identifier : : (comma_expression "Symbol_table_hash,_std" identifier , 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,_false,_true>_>\n                           *" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_false,_true>_>\n                           *" identifier , (binary_expression "_true>_>\n                           *" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "*" * identifier)))) )) & (field_expression "this->table_" identifier -> field_identifier)) ))) ;))))))) (expression_statement "local_b8._M_cur = (__node_type *)pVar11.first;" (assignment_expression "local_b8._M_cur = (__node_type *)pVar11.first" (field_expression "local_b8._M_cur" identifier . field_identifier) = (cast_expression "(__node_type *)pVar11.first" ( (type_descriptor "__node_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pVar11.first" identifier . field_identifier))) ;) (expression_statement "local_91 = pVar11.second;" (assignment_expression "local_91 = pVar11.second" identifier = (field_expression "pVar11.second" identifier . field_identifier)) ;) (expression_statement "pSVar7 = pSVar8;" (assignment_expression "pSVar7 = pSVar8" identifier = identifier) ;) })) (expression_statement "this_00 = *(Symbol_table **)((long)local_a8._M_cur + 0x18);" (assignment_expression "this_00 = *(Symbol_table **)((long)local_a8._M_cur + 0x18)" identifier = (pointer_expression "*(Symbol_table **)((long)local_a8._M_cur + 0x18)" * (cast_expression "(Symbol_table **)((long)local_a8._M_cur + 0x18)" ( (type_descriptor "Symbol_table **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)local_a8._M_cur + 0x18)" ( (binary_expression "(long)local_a8._M_cur + 0x18" (cast_expression "(long)local_a8._M_cur" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "local_a8._M_cur" identifier . field_identifier)) + number_literal) ))))) ;) (expression_statement "bVar4 = pVar10.second;" (assignment_expression "bVar4 = pVar10.second" identifier = (field_expression "pVar10.second" identifier . field_identifier)) ;) (if_statement "if (bVar4 == false) {\n      if (this_00 == (Symbol_table *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0x75a,"define_special_symbol");\n      }\n      if (is_forced_local == false) {\nLAB_00291f97:\n        local_b8._M_cur = (__node_type *)0x0;\n        local_a8._M_cur = (__node_type *)0x0;\n        local_91 = (bool)'\0';\n        cVar5 = is_forced_local;\n      }\n      else {\n        pSVar7 = get_sized_symbol<64>(this_00,&pSVar7->super_Symbol);\n        define_default_version<64,_true>(this,pSVar7,local_91,(iterator)local_b8._M_cur);\n        local_b8._M_cur = (__node_type *)0x0;\n        local_a8._M_cur = (__node_type *)0x0;\n        local_91 = bVar4;\n        cVar5 = '\0';\n      }\n    }\n    else {\n      if (this_00 != (Symbol_table *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0x768,"define_special_symbol");\n      }\n      if (is_forced_local == false) {\n        local_b8._M_cur = (__node_type *)0x0;\n        local_91 = bVar4;\n        cVar5 = is_forced_local;\n      }\n      else {\n        cVar5 = local_91;\n        if ((local_91 == false) &&\n           (pSVar3 = *(Symbol_table **)\n                      ((long)&((local_b8._M_cur)->\n                              super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                              )._M_storage._M_storage + 0x10), local_91 = is_forced_local,\n           cVar5 = is_forced_local, *(long *)&pSVar3->first_global_index_ == 0)) {\n          local_b8._M_cur = (__node_type *)0x0;\n          *resolve_oldsym = true;\n          this_00 = pSVar3;\n          pSVar7 = (Sized_symbol<64> *)resolve_oldsym;\n          cVar5 = '\0';\n        }\n      }\n    }" if (parenthesized_expression "(bVar4 == false)" ( (binary_expression "bVar4 == false" identifier == false) )) (compound_statement "{\n      if (this_00 == (Symbol_table *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0x75a,"define_special_symbol");\n      }\n      if (is_forced_local == false) {\nLAB_00291f97:\n        local_b8._M_cur = (__node_type *)0x0;\n        local_a8._M_cur = (__node_type *)0x0;\n        local_91 = (bool)'\0';\n        cVar5 = is_forced_local;\n      }\n      else {\n        pSVar7 = get_sized_symbol<64>(this_00,&pSVar7->super_Symbol);\n        define_default_version<64,_true>(this,pSVar7,local_91,(iterator)local_b8._M_cur);\n        local_b8._M_cur = (__node_type *)0x0;\n        local_a8._M_cur = (__node_type *)0x0;\n        local_91 = bVar4;\n        cVar5 = '\0';\n      }\n    }" { (if_statement "if (this_00 == (Symbol_table *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0x75a,"define_special_symbol");\n      }" if (parenthesized_expression "(this_00 == (Symbol_table *)0x0)" ( (binary_expression "this_00 == (Symbol_table *)0x0" identifier == (cast_expression "(Symbol_table *)0x0" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0x75a,"define_special_symbol");\n      }" { comment (expression_statement "do_gold_unreachable("../../gold/symtab.cc",0x75a,"define_special_symbol");" (call_expression "do_gold_unreachable("../../gold/symtab.cc",0x75a,"define_special_symbol")" identifier (argument_list "("../../gold/symtab.cc",0x75a,"define_special_symbol")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""define_special_symbol"" " string_content ") ))) ;) })) (if_statement "if (is_forced_local == false) {\nLAB_00291f97:\n        local_b8._M_cur = (__node_type *)0x0;\n        local_a8._M_cur = (__node_type *)0x0;\n        local_91 = (bool)'\0';\n        cVar5 = is_forced_local;\n      }\n      else {\n        pSVar7 = get_sized_symbol<64>(this_00,&pSVar7->super_Symbol);\n        define_default_version<64,_true>(this,pSVar7,local_91,(iterator)local_b8._M_cur);\n        local_b8._M_cur = (__node_type *)0x0;\n        local_a8._M_cur = (__node_type *)0x0;\n        local_91 = bVar4;\n        cVar5 = '\0';\n      }" if (parenthesized_expression "(is_forced_local == false)" ( (binary_expression "is_forced_local == false" identifier == false) )) (compound_statement "{\nLAB_00291f97:\n        local_b8._M_cur = (__node_type *)0x0;\n        local_a8._M_cur = (__node_type *)0x0;\n        local_91 = (bool)'\0';\n        cVar5 = is_forced_local;\n      }" { (labeled_statement "LAB_00291f97:\n        local_b8._M_cur = (__node_type *)0x0;" statement_identifier : (expression_statement "local_b8._M_cur = (__node_type *)0x0;" (assignment_expression "local_b8._M_cur = (__node_type *)0x0" (field_expression "local_b8._M_cur" identifier . field_identifier) = (cast_expression "(__node_type *)0x0" ( (type_descriptor "__node_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "local_a8._M_cur = (__node_type *)0x0;" (assignment_expression "local_a8._M_cur = (__node_type *)0x0" (field_expression "local_a8._M_cur" identifier . field_identifier) = (cast_expression "(__node_type *)0x0" ( (type_descriptor "__node_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_91 = (bool)'\0';" (assignment_expression "local_91 = (bool)'\0'" identifier = (cast_expression "(bool)'\0'" ( (type_descriptor "bool" primitive_type) ) (char_literal "'\0'" ' escape_sequence '))) ;) (expression_statement "cVar5 = is_forced_local;" (assignment_expression "cVar5 = is_forced_local" identifier = identifier) ;) }) (else_clause "else {\n        pSVar7 = get_sized_symbol<64>(this_00,&pSVar7->super_Symbol);\n        define_default_version<64,_true>(this,pSVar7,local_91,(iterator)local_b8._M_cur);\n        local_b8._M_cur = (__node_type *)0x0;\n        local_a8._M_cur = (__node_type *)0x0;\n        local_91 = bVar4;\n        cVar5 = '\0';\n      }" else (compound_statement "{\n        pSVar7 = get_sized_symbol<64>(this_00,&pSVar7->super_Symbol);\n        define_default_version<64,_true>(this,pSVar7,local_91,(iterator)local_b8._M_cur);\n        local_b8._M_cur = (__node_type *)0x0;\n        local_a8._M_cur = (__node_type *)0x0;\n        local_91 = bVar4;\n        cVar5 = '\0';\n      }" { (expression_statement "pSVar7 = get_sized_symbol<64>(this_00,&pSVar7->super_Symbol);" (assignment_expression "pSVar7 = get_sized_symbol<64>(this_00,&pSVar7->super_Symbol)" identifier = (binary_expression "get_sized_symbol<64>(this_00,&pSVar7->super_Symbol)" (binary_expression "get_sized_symbol<64" identifier < number_literal) > (parenthesized_expression "(this_00,&pSVar7->super_Symbol)" ( (comma_expression "this_00,&pSVar7->super_Symbol" identifier , (pointer_expression "&pSVar7->super_Symbol" & (field_expression "pSVar7->super_Symbol" identifier -> field_identifier))) )))) ;) (expression_statement "define_default_version<64,_true>(this,pSVar7,local_91,(iterator)local_b8._M_cur);" (comma_expression "define_default_version<64,_true>(this,pSVar7,local_91,(iterator)local_b8._M_cur)" (binary_expression "define_default_version<64" identifier < number_literal) , (binary_expression "_true>(this,pSVar7,local_91,(iterator)local_b8._M_cur)" identifier > (parenthesized_expression "(this,pSVar7,local_91,(iterator)local_b8._M_cur)" ( (comma_expression "this,pSVar7,local_91,(iterator)local_b8._M_cur" identifier , (comma_expression "pSVar7,local_91,(iterator)local_b8._M_cur" identifier , (comma_expression "local_91,(iterator)local_b8._M_cur" identifier , (cast_expression "(iterator)local_b8._M_cur" ( (type_descriptor "iterator" type_identifier) ) (field_expression "local_b8._M_cur" identifier . field_identifier))))) )))) ;) (expression_statement "local_b8._M_cur = (__node_type *)0x0;" (assignment_expression "local_b8._M_cur = (__node_type *)0x0" (field_expression "local_b8._M_cur" identifier . field_identifier) = (cast_expression "(__node_type *)0x0" ( (type_descriptor "__node_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_a8._M_cur = (__node_type *)0x0;" (assignment_expression "local_a8._M_cur = (__node_type *)0x0" (field_expression "local_a8._M_cur" identifier . field_identifier) = (cast_expression "(__node_type *)0x0" ( (type_descriptor "__node_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_91 = bVar4;" (assignment_expression "local_91 = bVar4" identifier = identifier) ;) (expression_statement "cVar5 = '\0';" (assignment_expression "cVar5 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) }))) }) (else_clause "else {\n      if (this_00 != (Symbol_table *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0x768,"define_special_symbol");\n      }\n      if (is_forced_local == false) {\n        local_b8._M_cur = (__node_type *)0x0;\n        local_91 = bVar4;\n        cVar5 = is_forced_local;\n      }\n      else {\n        cVar5 = local_91;\n        if ((local_91 == false) &&\n           (pSVar3 = *(Symbol_table **)\n                      ((long)&((local_b8._M_cur)->\n                              super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                              )._M_storage._M_storage + 0x10), local_91 = is_forced_local,\n           cVar5 = is_forced_local, *(long *)&pSVar3->first_global_index_ == 0)) {\n          local_b8._M_cur = (__node_type *)0x0;\n          *resolve_oldsym = true;\n          this_00 = pSVar3;\n          pSVar7 = (Sized_symbol<64> *)resolve_oldsym;\n          cVar5 = '\0';\n        }\n      }\n    }" else (compound_statement "{\n      if (this_00 != (Symbol_table *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0x768,"define_special_symbol");\n      }\n      if (is_forced_local == false) {\n        local_b8._M_cur = (__node_type *)0x0;\n        local_91 = bVar4;\n        cVar5 = is_forced_local;\n      }\n      else {\n        cVar5 = local_91;\n        if ((local_91 == false) &&\n           (pSVar3 = *(Symbol_table **)\n                      ((long)&((local_b8._M_cur)->\n                              super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                              )._M_storage._M_storage + 0x10), local_91 = is_forced_local,\n           cVar5 = is_forced_local, *(long *)&pSVar3->first_global_index_ == 0)) {\n          local_b8._M_cur = (__node_type *)0x0;\n          *resolve_oldsym = true;\n          this_00 = pSVar3;\n          pSVar7 = (Sized_symbol<64> *)resolve_oldsym;\n          cVar5 = '\0';\n        }\n      }\n    }" { (if_statement "if (this_00 != (Symbol_table *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0x768,"define_special_symbol");\n      }" if (parenthesized_expression "(this_00 != (Symbol_table *)0x0)" ( (binary_expression "this_00 != (Symbol_table *)0x0" identifier != (cast_expression "(Symbol_table *)0x0" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0x768,"define_special_symbol");\n      }" { comment (expression_statement "do_gold_unreachable("../../gold/symtab.cc",0x768,"define_special_symbol");" (call_expression "do_gold_unreachable("../../gold/symtab.cc",0x768,"define_special_symbol")" identifier (argument_list "("../../gold/symtab.cc",0x768,"define_special_symbol")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""define_special_symbol"" " string_content ") ))) ;) })) (if_statement "if (is_forced_local == false) {\n        local_b8._M_cur = (__node_type *)0x0;\n        local_91 = bVar4;\n        cVar5 = is_forced_local;\n      }\n      else {\n        cVar5 = local_91;\n        if ((local_91 == false) &&\n           (pSVar3 = *(Symbol_table **)\n                      ((long)&((local_b8._M_cur)->\n                              super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                              )._M_storage._M_storage + 0x10), local_91 = is_forced_local,\n           cVar5 = is_forced_local, *(long *)&pSVar3->first_global_index_ == 0)) {\n          local_b8._M_cur = (__node_type *)0x0;\n          *resolve_oldsym = true;\n          this_00 = pSVar3;\n          pSVar7 = (Sized_symbol<64> *)resolve_oldsym;\n          cVar5 = '\0';\n        }\n      }" if (parenthesized_expression "(is_forced_local == false)" ( (binary_expression "is_forced_local == false" identifier == false) )) (compound_statement "{\n        local_b8._M_cur = (__node_type *)0x0;\n        local_91 = bVar4;\n        cVar5 = is_forced_local;\n      }" { (expression_statement "local_b8._M_cur = (__node_type *)0x0;" (assignment_expression "local_b8._M_cur = (__node_type *)0x0" (field_expression "local_b8._M_cur" identifier . field_identifier) = (cast_expression "(__node_type *)0x0" ( (type_descriptor "__node_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_91 = bVar4;" (assignment_expression "local_91 = bVar4" identifier = identifier) ;) (expression_statement "cVar5 = is_forced_local;" (assignment_expression "cVar5 = is_forced_local" identifier = identifier) ;) }) (else_clause "else {\n        cVar5 = local_91;\n        if ((local_91 == false) &&\n           (pSVar3 = *(Symbol_table **)\n                      ((long)&((local_b8._M_cur)->\n                              super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                              )._M_storage._M_storage + 0x10), local_91 = is_forced_local,\n           cVar5 = is_forced_local, *(long *)&pSVar3->first_global_index_ == 0)) {\n          local_b8._M_cur = (__node_type *)0x0;\n          *resolve_oldsym = true;\n          this_00 = pSVar3;\n          pSVar7 = (Sized_symbol<64> *)resolve_oldsym;\n          cVar5 = '\0';\n        }\n      }" else (compound_statement "{\n        cVar5 = local_91;\n        if ((local_91 == false) &&\n           (pSVar3 = *(Symbol_table **)\n                      ((long)&((local_b8._M_cur)->\n                              super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                              )._M_storage._M_storage + 0x10), local_91 = is_forced_local,\n           cVar5 = is_forced_local, *(long *)&pSVar3->first_global_index_ == 0)) {\n          local_b8._M_cur = (__node_type *)0x0;\n          *resolve_oldsym = true;\n          this_00 = pSVar3;\n          pSVar7 = (Sized_symbol<64> *)resolve_oldsym;\n          cVar5 = '\0';\n        }\n      }" { (expression_statement "cVar5 = local_91;" (assignment_expression "cVar5 = local_91" identifier = identifier) ;) (if_statement "if ((local_91 == false) &&\n           (pSVar3 = *(Symbol_table **)\n                      ((long)&((local_b8._M_cur)->\n                              super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                              )._M_storage._M_storage + 0x10), local_91 = is_forced_local,\n           cVar5 = is_forced_local, *(long *)&pSVar3->first_global_index_ == 0)) {\n          local_b8._M_cur = (__node_type *)0x0;\n          *resolve_oldsym = true;\n          this_00 = pSVar3;\n          pSVar7 = (Sized_symbol<64> *)resolve_oldsym;\n          cVar5 = '\0';\n        }" if (parenthesized_expression "((local_91 == false) &&\n           (pSVar3 = *(Symbol_table **)\n                      ((long)&((local_b8._M_cur)->\n                              super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                              )._M_storage._M_storage + 0x10), local_91 = is_forced_local,\n           cVar5 = is_forced_local, *(long *)&pSVar3->first_global_index_ == 0))" ( (binary_expression "(local_91 == false) &&\n           (pSVar3 = *(Symbol_table **)\n                      ((long)&((local_b8._M_cur)->\n                              super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                              )._M_storage._M_storage + 0x10), local_91 = is_forced_local,\n           cVar5 = is_forced_local, *(long *)&pSVar3->first_global_index_ == 0)" (parenthesized_expression "(local_91 == false)" ( (binary_expression "local_91 == false" identifier == false) )) && (parenthesized_expression "(pSVar3 = *(Symbol_table **)\n                      ((long)&((local_b8._M_cur)->\n                              super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                              )._M_storage._M_storage + 0x10), local_91 = is_forced_local,\n           cVar5 = is_forced_local, *(long *)&pSVar3->first_global_index_ == 0)" ( (comma_expression "pSVar3 = *(Symbol_table **)\n                      ((long)&((local_b8._M_cur)->\n                              super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                              )._M_storage._M_storage + 0x10), local_91 = is_forced_local,\n           cVar5 = is_forced_local, *(long *)&pSVar3->first_global_index_ == 0" (assignment_expression "pSVar3 = *(Symbol_table **)\n                      ((long)&((local_b8._M_cur)->\n                              super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                              )._M_storage._M_storage + 0x10)" identifier = (pointer_expression "*(Symbol_table **)\n                      ((long)&((local_b8._M_cur)->\n                              super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                              )._M_storage._M_storage + 0x10)" * (cast_expression "(Symbol_table **)\n                      ((long)&((local_b8._M_cur)->\n                              super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                              )._M_storage._M_storage + 0x10)" ( (type_descriptor "Symbol_table **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)&((local_b8._M_cur)->\n                              super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                              )._M_storage._M_storage + 0x10)" ( (binary_expression "(long)&((local_b8._M_cur)->\n                              super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                              )._M_storage._M_storage + 0x10" (cast_expression "(long)&((local_b8._M_cur)->\n                              super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                              )._M_storage._M_storage" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&((local_b8._M_cur)->\n                              super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                              )._M_storage._M_storage" & (field_expression "((local_b8._M_cur)->\n                              super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                              )._M_storage._M_storage" (field_expression "((local_b8._M_cur)->\n                              super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                              )._M_storage" (parenthesized_expression "((local_b8._M_cur)->\n                              super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n                              )" ( (comma_expression "(local_b8._M_cur)->\n                              super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold" (binary_expression "(local_b8._M_cur)->\n                              super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int" (binary_expression "(local_b8._M_cur)->\n                              super__Hash_node_value_base<std::pair<const_std" (binary_expression "(local_b8._M_cur)->\n                              super__Hash_node_value_base<std" (field_expression "(local_b8._M_cur)->\n                              super__Hash_node_value_base" (parenthesized_expression "(local_b8._M_cur)" ( (field_expression "local_b8._M_cur" identifier . field_identifier) )) -> field_identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_long_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier)) (ERROR "::Symbol*>_>" : : identifier * > identifier >) )) . field_identifier) . field_identifier))) + number_literal) ))))) , (comma_expression "local_91 = is_forced_local,\n           cVar5 = is_forced_local, *(long *)&pSVar3->first_global_index_ == 0" (assignment_expression "local_91 = is_forced_local" identifier = identifier) , (comma_expression "cVar5 = is_forced_local, *(long *)&pSVar3->first_global_index_ == 0" (assignment_expression "cVar5 = is_forced_local" identifier = identifier) , (binary_expression "*(long *)&pSVar3->first_global_index_ == 0" (pointer_expression "*(long *)&pSVar3->first_global_index_" * (cast_expression "(long *)&pSVar3->first_global_index_" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pSVar3->first_global_index_" & (field_expression "pSVar3->first_global_index_" identifier -> field_identifier)))) == number_literal)))) ))) )) (compound_statement "{\n          local_b8._M_cur = (__node_type *)0x0;\n          *resolve_oldsym = true;\n          this_00 = pSVar3;\n          pSVar7 = (Sized_symbol<64> *)resolve_oldsym;\n          cVar5 = '\0';\n        }" { (expression_statement "local_b8._M_cur = (__node_type *)0x0;" (assignment_expression "local_b8._M_cur = (__node_type *)0x0" (field_expression "local_b8._M_cur" identifier . field_identifier) = (cast_expression "(__node_type *)0x0" ( (type_descriptor "__node_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*resolve_oldsym = true;" (assignment_expression "*resolve_oldsym = true" (pointer_expression "*resolve_oldsym" * identifier) = true) ;) (expression_statement "this_00 = pSVar3;" (assignment_expression "this_00 = pSVar3" identifier = identifier) ;) (expression_statement "pSVar7 = (Sized_symbol<64> *)resolve_oldsym;" (assignment_expression "pSVar7 = (Sized_symbol<64> *)resolve_oldsym" identifier = (parenthesized_expression "(Sized_symbol<64> *)resolve_oldsym" ( (binary_expression "Sized_symbol<64> *)resolve_oldsym" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*)resolve_oldsym" * (ERROR ")" )) identifier)) ))) ;) (expression_statement "cVar5 = '\0';" (assignment_expression "cVar5 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) })) }))) }))) (labeled_statement "LAB_00291fab:\n    pTVar2 = parameters->target_;" statement_identifier : (expression_statement "pTVar2 = parameters->target_;" (assignment_expression "pTVar2 = parameters->target_" identifier = (field_expression "parameters->target_" identifier -> field_identifier)) ;)) (if_statement "if (pTVar2 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n    }" if (parenthesized_expression "(pTVar2 == (Target *)0x0)" ( (binary_expression "pTVar2 == (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 (pTVar2->pti_->has_make_symbol == false) {\n      pSVar8 = (Sized_symbol<64> *)operator_new(0x50);\n      (pSVar8->super_Symbol).name_ = (char *)0x0;\n      (pSVar8->super_Symbol).version_ = (char *)0x0;\n      (pSVar8->super_Symbol).u1_ = (anon_union_8_3_b0f6f408_for_u1_)0x0;\n      (pSVar8->super_Symbol).u2_ = (anon_union_4_3_b582a2bd_for_u2_)0x0;\n      (pSVar8->super_Symbol).symtab_index_ = 0;\n      (pSVar8->super_Symbol).dynsym_index_ = 0;\n      (pSVar8->super_Symbol).plt_offset_ = 0;\n      (pSVar8->super_Symbol).got_offsets_.got_type_ = 0;\n      (pSVar8->super_Symbol).got_offsets_.got_offset_ = 0;\n      *(undefined1 (*) [16])&(pSVar8->super_Symbol).got_offsets_.got_next_ = (undefined1  [16])0x0;\n    }\n    else {\n      pSVar7 = (Sized_symbol<64> *)*pname;\n      iVar6 = (*pTVar2->_vptr_Target[0x2a])(pTVar2,pSVar7,0,0,0,0);\n      pSVar8 = (Sized_symbol<64> *)CONCAT44(extraout_var,iVar6);\n      if (pSVar8 == (Sized_symbol<64> *)0x0) goto LAB_00292209;\n    }" if (parenthesized_expression "(pTVar2->pti_->has_make_symbol == false)" ( (binary_expression "pTVar2->pti_->has_make_symbol == false" (field_expression "pTVar2->pti_->has_make_symbol" (field_expression "pTVar2->pti_" identifier -> field_identifier) -> field_identifier) == false) )) (compound_statement "{\n      pSVar8 = (Sized_symbol<64> *)operator_new(0x50);\n      (pSVar8->super_Symbol).name_ = (char *)0x0;\n      (pSVar8->super_Symbol).version_ = (char *)0x0;\n      (pSVar8->super_Symbol).u1_ = (anon_union_8_3_b0f6f408_for_u1_)0x0;\n      (pSVar8->super_Symbol).u2_ = (anon_union_4_3_b582a2bd_for_u2_)0x0;\n      (pSVar8->super_Symbol).symtab_index_ = 0;\n      (pSVar8->super_Symbol).dynsym_index_ = 0;\n      (pSVar8->super_Symbol).plt_offset_ = 0;\n      (pSVar8->super_Symbol).got_offsets_.got_type_ = 0;\n      (pSVar8->super_Symbol).got_offsets_.got_offset_ = 0;\n      *(undefined1 (*) [16])&(pSVar8->super_Symbol).got_offsets_.got_next_ = (undefined1  [16])0x0;\n    }" { (expression_statement "pSVar8 = (Sized_symbol<64> *)operator_new(0x50);" (assignment_expression "pSVar8 = (Sized_symbol<64> *)operator_new(0x50)" identifier = (parenthesized_expression "(Sized_symbol<64> *)operator_new(0x50)" ( (binary_expression "Sized_symbol<64> *)operator_new(0x50)" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*)operator_new(0x50)" * (ERROR ")" )) (call_expression "operator_new(0x50)" identifier (argument_list "(0x50)" ( number_literal ))))) ))) ;) (expression_statement "(pSVar8->super_Symbol).name_ = (char *)0x0;" (assignment_expression "(pSVar8->super_Symbol).name_ = (char *)0x0" (field_expression "(pSVar8->super_Symbol).name_" (parenthesized_expression "(pSVar8->super_Symbol)" ( (field_expression "pSVar8->super_Symbol" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(pSVar8->super_Symbol).version_ = (char *)0x0;" (assignment_expression "(pSVar8->super_Symbol).version_ = (char *)0x0" (field_expression "(pSVar8->super_Symbol).version_" (parenthesized_expression "(pSVar8->super_Symbol)" ( (field_expression "pSVar8->super_Symbol" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(pSVar8->super_Symbol).u1_ = (anon_union_8_3_b0f6f408_for_u1_)0x0;" (assignment_expression "(pSVar8->super_Symbol).u1_ = (anon_union_8_3_b0f6f408_for_u1_)0x0" (field_expression "(pSVar8->super_Symbol).u1_" (parenthesized_expression "(pSVar8->super_Symbol)" ( (field_expression "pSVar8->super_Symbol" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(anon_union_8_3_b0f6f408_for_u1_)0x0" ( (type_descriptor "anon_union_8_3_b0f6f408_for_u1_" type_identifier) ) number_literal)) ;) (expression_statement "(pSVar8->super_Symbol).u2_ = (anon_union_4_3_b582a2bd_for_u2_)0x0;" (assignment_expression "(pSVar8->super_Symbol).u2_ = (anon_union_4_3_b582a2bd_for_u2_)0x0" (field_expression "(pSVar8->super_Symbol).u2_" (parenthesized_expression "(pSVar8->super_Symbol)" ( (field_expression "pSVar8->super_Symbol" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(anon_union_4_3_b582a2bd_for_u2_)0x0" ( (type_descriptor "anon_union_4_3_b582a2bd_for_u2_" type_identifier) ) number_literal)) ;) (expression_statement "(pSVar8->super_Symbol).symtab_index_ = 0;" (assignment_expression "(pSVar8->super_Symbol).symtab_index_ = 0" (field_expression "(pSVar8->super_Symbol).symtab_index_" (parenthesized_expression "(pSVar8->super_Symbol)" ( (field_expression "pSVar8->super_Symbol" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(pSVar8->super_Symbol).dynsym_index_ = 0;" (assignment_expression "(pSVar8->super_Symbol).dynsym_index_ = 0" (field_expression "(pSVar8->super_Symbol).dynsym_index_" (parenthesized_expression "(pSVar8->super_Symbol)" ( (field_expression "pSVar8->super_Symbol" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(pSVar8->super_Symbol).plt_offset_ = 0;" (assignment_expression "(pSVar8->super_Symbol).plt_offset_ = 0" (field_expression "(pSVar8->super_Symbol).plt_offset_" (parenthesized_expression "(pSVar8->super_Symbol)" ( (field_expression "pSVar8->super_Symbol" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(pSVar8->super_Symbol).got_offsets_.got_type_ = 0;" (assignment_expression "(pSVar8->super_Symbol).got_offsets_.got_type_ = 0" (field_expression "(pSVar8->super_Symbol).got_offsets_.got_type_" (field_expression "(pSVar8->super_Symbol).got_offsets_" (parenthesized_expression "(pSVar8->super_Symbol)" ( (field_expression "pSVar8->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(pSVar8->super_Symbol).got_offsets_.got_offset_ = 0;" (assignment_expression "(pSVar8->super_Symbol).got_offsets_.got_offset_ = 0" (field_expression "(pSVar8->super_Symbol).got_offsets_.got_offset_" (field_expression "(pSVar8->super_Symbol).got_offsets_" (parenthesized_expression "(pSVar8->super_Symbol)" ( (field_expression "pSVar8->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "*(undefined1 (*) [16])&(pSVar8->super_Symbol).got_offsets_.got_next_ = (undefined1  [16])0x0;" (assignment_expression "*(undefined1 (*) [16])&(pSVar8->super_Symbol).got_offsets_.got_next_ = (undefined1  [16])0x0" (pointer_expression "*(undefined1 (*) [16])&(pSVar8->super_Symbol).got_offsets_.got_next_" * (cast_expression "(undefined1 (*) [16])&(pSVar8->super_Symbol).got_offsets_.got_next_" ( (type_descriptor "undefined1 (*) [16]" type_identifier (abstract_array_declarator "(*) [16]" (abstract_parenthesized_declarator "(*)" ( (abstract_pointer_declarator "*" *) )) [ number_literal ])) ) (pointer_expression "&(pSVar8->super_Symbol).got_offsets_.got_next_" & (field_expression "(pSVar8->super_Symbol).got_offsets_.got_next_" (field_expression "(pSVar8->super_Symbol).got_offsets_" (parenthesized_expression "(pSVar8->super_Symbol)" ( (field_expression "pSVar8->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier)))) = (cast_expression "(undefined1  [16])0x0" ( (type_descriptor "undefined1  [16]" type_identifier (abstract_array_declarator "[16]" [ number_literal ])) ) number_literal)) ;) }) (else_clause "else {\n      pSVar7 = (Sized_symbol<64> *)*pname;\n      iVar6 = (*pTVar2->_vptr_Target[0x2a])(pTVar2,pSVar7,0,0,0,0);\n      pSVar8 = (Sized_symbol<64> *)CONCAT44(extraout_var,iVar6);\n      if (pSVar8 == (Sized_symbol<64> *)0x0) goto LAB_00292209;\n    }" else (compound_statement "{\n      pSVar7 = (Sized_symbol<64> *)*pname;\n      iVar6 = (*pTVar2->_vptr_Target[0x2a])(pTVar2,pSVar7,0,0,0,0);\n      pSVar8 = (Sized_symbol<64> *)CONCAT44(extraout_var,iVar6);\n      if (pSVar8 == (Sized_symbol<64> *)0x0) goto LAB_00292209;\n    }" { (expression_statement "pSVar7 = (Sized_symbol<64> *)*pname;" (assignment_expression "pSVar7 = (Sized_symbol<64> *)*pname" identifier = (binary_expression "(Sized_symbol<64> *)*pname" (parenthesized_expression "(Sized_symbol<64> *)" ( (binary_expression "Sized_symbol<64> *" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*" * identifier)) )) * identifier)) ;) (expression_statement "iVar6 = (*pTVar2->_vptr_Target[0x2a])(pTVar2,pSVar7,0,0,0,0);" (assignment_expression "iVar6 = (*pTVar2->_vptr_Target[0x2a])(pTVar2,pSVar7,0,0,0,0)" identifier = (call_expression "(*pTVar2->_vptr_Target[0x2a])(pTVar2,pSVar7,0,0,0,0)" (parenthesized_expression "(*pTVar2->_vptr_Target[0x2a])" ( (pointer_expression "*pTVar2->_vptr_Target[0x2a]" * (subscript_expression "pTVar2->_vptr_Target[0x2a]" (field_expression "pTVar2->_vptr_Target" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(pTVar2,pSVar7,0,0,0,0)" ( identifier , identifier , number_literal , number_literal , number_literal , number_literal )))) ;) (expression_statement "pSVar8 = (Sized_symbol<64> *)CONCAT44(extraout_var,iVar6);" (assignment_expression "pSVar8 = (Sized_symbol<64> *)CONCAT44(extraout_var,iVar6)" identifier = (parenthesized_expression "(Sized_symbol<64> *)CONCAT44(extraout_var,iVar6)" ( (binary_expression "Sized_symbol<64> *)CONCAT44(extraout_var,iVar6)" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*)CONCAT44(extraout_var,iVar6)" * (ERROR ")" )) (call_expression "CONCAT44(extraout_var,iVar6)" identifier (argument_list "(extraout_var,iVar6)" ( identifier , identifier ))))) ))) ;) (if_statement "if (pSVar8 == (Sized_symbol<64> *)0x0) goto LAB_00292209;" if (parenthesized_expression "(pSVar8 == (Sized_symbol<64> *)0x0)" ( (binary_expression "pSVar8 == (Sized_symbol<64> *)0x0)" identifier == (parenthesized_expression "(Sized_symbol<64> *)0x0)" ( (binary_expression "Sized_symbol<64> *)0x0" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*)0x0" * (ERROR ")" )) number_literal)) ))) )) (goto_statement "goto LAB_00292209;" goto statement_identifier ;)) }))) (if_statement "if (local_91 == false) {\n      if (this_00 == (Symbol_table *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0x794,"define_special_symbol");\n      }\n    }\n    else {\n      *(Sized_symbol<64> **)\n       ((long)&((local_a8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n               )._M_storage._M_storage + 0x10) = pSVar8;\n    }" if (parenthesized_expression "(local_91 == false)" ( (binary_expression "local_91 == false" identifier == false) )) (compound_statement "{\n      if (this_00 == (Symbol_table *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0x794,"define_special_symbol");\n      }\n    }" { (if_statement "if (this_00 == (Symbol_table *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0x794,"define_special_symbol");\n      }" if (parenthesized_expression "(this_00 == (Symbol_table *)0x0)" ( (binary_expression "this_00 == (Symbol_table *)0x0" identifier == (cast_expression "(Symbol_table *)0x0" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0x794,"define_special_symbol");\n      }" { comment (expression_statement "do_gold_unreachable("../../gold/symtab.cc",0x794,"define_special_symbol");" (call_expression "do_gold_unreachable("../../gold/symtab.cc",0x794,"define_special_symbol")" identifier (argument_list "("../../gold/symtab.cc",0x794,"define_special_symbol")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""define_special_symbol"" " string_content ") ))) ;) })) }) (else_clause "else {\n      *(Sized_symbol<64> **)\n       ((long)&((local_a8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n               )._M_storage._M_storage + 0x10) = pSVar8;\n    }" else (compound_statement "{\n      *(Sized_symbol<64> **)\n       ((long)&((local_a8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n               )._M_storage._M_storage + 0x10) = pSVar8;\n    }" { (expression_statement "*(Sized_symbol<64> **)\n       ((long)&((local_a8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n               )._M_storage._M_storage + 0x10) = pSVar8;" (pointer_expression "*(Sized_symbol<64> **)\n       ((long)&((local_a8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n               )._M_storage._M_storage + 0x10) = pSVar8" * (parenthesized_expression "(Sized_symbol<64> **)\n       ((long)&((local_a8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n               )._M_storage._M_storage + 0x10) = pSVar8" ( (binary_expression "Sized_symbol<64> **)\n       ((long)&((local_a8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n               )._M_storage._M_storage + 0x10) = pSVar8" (binary_expression "Sized_symbol<64" identifier < number_literal) > (assignment_expression "**)\n       ((long)&((local_a8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n               )._M_storage._M_storage + 0x10) = pSVar8" (pointer_expression "**)\n       ((long)&((local_a8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n               )._M_storage._M_storage + 0x10)" * (pointer_expression "*)\n       ((long)&((local_a8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n               )._M_storage._M_storage + 0x10)" * (ERROR ")" )) (parenthesized_expression "((long)&((local_a8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n               )._M_storage._M_storage + 0x10)" ( (binary_expression "(long)&((local_a8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n               )._M_storage._M_storage + 0x10" (cast_expression "(long)&((local_a8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n               )._M_storage._M_storage" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&((local_a8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n               )._M_storage._M_storage" & (field_expression "((local_a8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n               )._M_storage._M_storage" (field_expression "((local_a8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n               )._M_storage" (parenthesized_expression "((local_a8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n               )" ( (comma_expression "(local_a8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold" (binary_expression "(local_a8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int" (binary_expression "(local_a8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std" (binary_expression "(local_a8._M_cur)->\n               super__Hash_node_value_base<std" (field_expression "(local_a8._M_cur)->\n               super__Hash_node_value_base" (parenthesized_expression "(local_a8._M_cur)" ( (field_expression "local_a8._M_cur" identifier . field_identifier) )) -> field_identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_long_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier)) (ERROR "::Symbol*>_>" : : identifier * > identifier >) )) . field_identifier) . field_identifier))) + number_literal) )))) = identifier)) ))) ;) }))) (if_statement "if (cVar5 != '\0') {\n      *(Sized_symbol<64> **)\n       ((long)&((local_b8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n               )._M_storage._M_storage + 0x10) = pSVar8;\n    }" if (parenthesized_expression "(cVar5 != '\0')" ( (binary_expression "cVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      *(Sized_symbol<64> **)\n       ((long)&((local_b8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n               )._M_storage._M_storage + 0x10) = pSVar8;\n    }" { (expression_statement "*(Sized_symbol<64> **)\n       ((long)&((local_b8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n               )._M_storage._M_storage + 0x10) = pSVar8;" (pointer_expression "*(Sized_symbol<64> **)\n       ((long)&((local_b8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n               )._M_storage._M_storage + 0x10) = pSVar8" * (parenthesized_expression "(Sized_symbol<64> **)\n       ((long)&((local_b8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n               )._M_storage._M_storage + 0x10) = pSVar8" ( (binary_expression "Sized_symbol<64> **)\n       ((long)&((local_b8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n               )._M_storage._M_storage + 0x10) = pSVar8" (binary_expression "Sized_symbol<64" identifier < number_literal) > (assignment_expression "**)\n       ((long)&((local_b8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n               )._M_storage._M_storage + 0x10) = pSVar8" (pointer_expression "**)\n       ((long)&((local_b8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n               )._M_storage._M_storage + 0x10)" * (pointer_expression "*)\n       ((long)&((local_b8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n               )._M_storage._M_storage + 0x10)" * (ERROR ")" )) (parenthesized_expression "((long)&((local_b8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n               )._M_storage._M_storage + 0x10)" ( (binary_expression "(long)&((local_b8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n               )._M_storage._M_storage + 0x10" (cast_expression "(long)&((local_b8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n               )._M_storage._M_storage" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&((local_b8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n               )._M_storage._M_storage" & (field_expression "((local_b8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n               )._M_storage._M_storage" (field_expression "((local_b8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n               )._M_storage" (parenthesized_expression "((local_b8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold::Symbol*>_>\n               )" ( (comma_expression "(local_b8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int,_long_unsigned_int>,_gold" (binary_expression "(local_b8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std::pair<long_unsigned_int" (binary_expression "(local_b8._M_cur)->\n               super__Hash_node_value_base<std::pair<const_std" (binary_expression "(local_b8._M_cur)->\n               super__Hash_node_value_base<std" (field_expression "(local_b8._M_cur)->\n               super__Hash_node_value_base" (parenthesized_expression "(local_b8._M_cur)" ( (field_expression "local_b8._M_cur" identifier . field_identifier) )) -> field_identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_long_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier)) (ERROR "::Symbol*>_>" : : identifier * > identifier >) )) . field_identifier) . field_identifier))) + number_literal) )))) = identifier)) ))) ;) })) (expression_statement "pSVar7 = get_sized_symbol<64>(this_00,&pSVar7->super_Symbol);" (assignment_expression "pSVar7 = get_sized_symbol<64>(this_00,&pSVar7->super_Symbol)" identifier = (binary_expression "get_sized_symbol<64>(this_00,&pSVar7->super_Symbol)" (binary_expression "get_sized_symbol<64" identifier < number_literal) > (parenthesized_expression "(this_00,&pSVar7->super_Symbol)" ( (comma_expression "this_00,&pSVar7->super_Symbol" identifier , (pointer_expression "&pSVar7->super_Symbol" & (field_expression "pSVar7->super_Symbol" identifier -> field_identifier))) )))) ;) (expression_statement "*poldsym = pSVar7;" (assignment_expression "*poldsym = pSVar7" (pointer_expression "*poldsym" * identifier) = identifier) ;) }) (else_clause "else {\n    if (*pversion == (char *)0x0) {\n      cVar5 = Version_script_info::get_symbol_version\n                        (this->version_script_,(char *)pSVar7,&v,&is_global);\n      if ((((bool)cVar5) && (cVar5 = is_global, is_global != false)) &&\n         (cVar5 = is_forced_local, v._M_string_length != 0)) {\n        *pversion = v._M_dataplus._M_p;\n        cVar5 = is_global;\n      }\n      is_forced_local = (bool)cVar5;\n      pSVar7 = (Sized_symbol<64> *)*pname;\n    }\n    cVar5 = is_forced_local;\n    if (!only_if_ref) goto LAB_0029205d;\nLAB_00291f1e:\n                    /* try { // try from 00291f24 to 0029237e has its CatchHandler @ 0029237f */\n    this_00 = (Symbol_table *)lookup(this,(char *)pSVar7,*pversion);\n    if ((this_00 == (Symbol_table *)0x0) && (cVar5 != '\0')) {\n      pSVar7 = (Sized_symbol<64> *)*pname;\n      this_00 = (Symbol_table *)lookup(this,(char *)pSVar7,(char *)0x0);\n    }\n    if (this_00 != (Symbol_table *)0x0) {\n      bVar1 = *(byte *)((long)&(this_00->table_)._M_h._M_bucket_count + 2);\n      if ((bVar1 & 7) != 0) {\n        if ((bVar1 & 7) == 4) goto LAB_00291f80;\n        goto LAB_00292209;\n      }\n      if (((this_00->output_count_ != 0) ||\n          (((this_00->table_)._M_h._M_bucket_count & 0x20000000) == 0)) &&\n         (((*(byte *)(this_00->offset_ + 0x3c) & 1) == 0 ||\n          ((visibility - STV_INTERNAL < 2 && (-1 < (char)bVar1)))))) goto LAB_00292209;\nLAB_00291f80:\n      *pname = (char *)this_00->saw_undefined_;\n      if (cVar5 == '\0') {\n        *pversion = *(char **)&this_00->first_global_index_;\n        is_forced_local = false;\n        goto LAB_00291f97;\n      }\n      pSVar7 = (Sized_symbol<64> *)*pversion;\n      pcVar9 = Stringpool_template<char>::add(&this->namepool_,(char *)pSVar7,true,(Key *)0x0);\n      *pversion = pcVar9;\n      local_b8._M_cur = (__node_type *)0x0;\n      local_a8._M_cur = (__node_type *)0x0;\n      local_91 = (bool)'\0';\n      cVar5 = '\0';\n      goto LAB_00291fab;\n    }\nLAB_00292209:\n    pSVar8 = (Sized_symbol<64> *)0x0;\n  }" else (compound_statement "{\n    if (*pversion == (char *)0x0) {\n      cVar5 = Version_script_info::get_symbol_version\n                        (this->version_script_,(char *)pSVar7,&v,&is_global);\n      if ((((bool)cVar5) && (cVar5 = is_global, is_global != false)) &&\n         (cVar5 = is_forced_local, v._M_string_length != 0)) {\n        *pversion = v._M_dataplus._M_p;\n        cVar5 = is_global;\n      }\n      is_forced_local = (bool)cVar5;\n      pSVar7 = (Sized_symbol<64> *)*pname;\n    }\n    cVar5 = is_forced_local;\n    if (!only_if_ref) goto LAB_0029205d;\nLAB_00291f1e:\n                    /* try { // try from 00291f24 to 0029237e has its CatchHandler @ 0029237f */\n    this_00 = (Symbol_table *)lookup(this,(char *)pSVar7,*pversion);\n    if ((this_00 == (Symbol_table *)0x0) && (cVar5 != '\0')) {\n      pSVar7 = (Sized_symbol<64> *)*pname;\n      this_00 = (Symbol_table *)lookup(this,(char *)pSVar7,(char *)0x0);\n    }\n    if (this_00 != (Symbol_table *)0x0) {\n      bVar1 = *(byte *)((long)&(this_00->table_)._M_h._M_bucket_count + 2);\n      if ((bVar1 & 7) != 0) {\n        if ((bVar1 & 7) == 4) goto LAB_00291f80;\n        goto LAB_00292209;\n      }\n      if (((this_00->output_count_ != 0) ||\n          (((this_00->table_)._M_h._M_bucket_count & 0x20000000) == 0)) &&\n         (((*(byte *)(this_00->offset_ + 0x3c) & 1) == 0 ||\n          ((visibility - STV_INTERNAL < 2 && (-1 < (char)bVar1)))))) goto LAB_00292209;\nLAB_00291f80:\n      *pname = (char *)this_00->saw_undefined_;\n      if (cVar5 == '\0') {\n        *pversion = *(char **)&this_00->first_global_index_;\n        is_forced_local = false;\n        goto LAB_00291f97;\n      }\n      pSVar7 = (Sized_symbol<64> *)*pversion;\n      pcVar9 = Stringpool_template<char>::add(&this->namepool_,(char *)pSVar7,true,(Key *)0x0);\n      *pversion = pcVar9;\n      local_b8._M_cur = (__node_type *)0x0;\n      local_a8._M_cur = (__node_type *)0x0;\n      local_91 = (bool)'\0';\n      cVar5 = '\0';\n      goto LAB_00291fab;\n    }\nLAB_00292209:\n    pSVar8 = (Sized_symbol<64> *)0x0;\n  }" { (if_statement "if (*pversion == (char *)0x0) {\n      cVar5 = Version_script_info::get_symbol_version\n                        (this->version_script_,(char *)pSVar7,&v,&is_global);\n      if ((((bool)cVar5) && (cVar5 = is_global, is_global != false)) &&\n         (cVar5 = is_forced_local, v._M_string_length != 0)) {\n        *pversion = v._M_dataplus._M_p;\n        cVar5 = is_global;\n      }\n      is_forced_local = (bool)cVar5;\n      pSVar7 = (Sized_symbol<64> *)*pname;\n    }" if (parenthesized_expression "(*pversion == (char *)0x0)" ( (binary_expression "*pversion == (char *)0x0" (pointer_expression "*pversion" * identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      cVar5 = Version_script_info::get_symbol_version\n                        (this->version_script_,(char *)pSVar7,&v,&is_global);\n      if ((((bool)cVar5) && (cVar5 = is_global, is_global != false)) &&\n         (cVar5 = is_forced_local, v._M_string_length != 0)) {\n        *pversion = v._M_dataplus._M_p;\n        cVar5 = is_global;\n      }\n      is_forced_local = (bool)cVar5;\n      pSVar7 = (Sized_symbol<64> *)*pname;\n    }" { (ERROR "cVar5 = Version_script_info::" (assignment_expression "cVar5 = Version_script_info" identifier = identifier) : :) (expression_statement "get_symbol_version\n                        (this->version_script_,(char *)pSVar7,&v,&is_global);" (call_expression "get_symbol_version\n                        (this->version_script_,(char *)pSVar7,&v,&is_global)" identifier (argument_list "(this->version_script_,(char *)pSVar7,&v,&is_global)" ( (field_expression "this->version_script_" identifier -> field_identifier) , (cast_expression "(char *)pSVar7" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&v" & identifier) , (pointer_expression "&is_global" & identifier) ))) ;) (if_statement "if ((((bool)cVar5) && (cVar5 = is_global, is_global != false)) &&\n         (cVar5 = is_forced_local, v._M_string_length != 0)) {\n        *pversion = v._M_dataplus._M_p;\n        cVar5 = is_global;\n      }" if (parenthesized_expression "((((bool)cVar5) && (cVar5 = is_global, is_global != false)) &&\n         (cVar5 = is_forced_local, v._M_string_length != 0))" ( (binary_expression "(((bool)cVar5) && (cVar5 = is_global, is_global != false)) &&\n         (cVar5 = is_forced_local, v._M_string_length != 0)" (parenthesized_expression "(((bool)cVar5) && (cVar5 = is_global, is_global != false))" ( (binary_expression "((bool)cVar5) && (cVar5 = is_global, is_global != false)" (parenthesized_expression "((bool)cVar5)" ( (cast_expression "(bool)cVar5" ( (type_descriptor "bool" primitive_type) ) identifier) )) && (parenthesized_expression "(cVar5 = is_global, is_global != false)" ( (comma_expression "cVar5 = is_global, is_global != false" (assignment_expression "cVar5 = is_global" identifier = identifier) , (binary_expression "is_global != false" identifier != false)) ))) )) && (parenthesized_expression "(cVar5 = is_forced_local, v._M_string_length != 0)" ( (comma_expression "cVar5 = is_forced_local, v._M_string_length != 0" (assignment_expression "cVar5 = is_forced_local" identifier = identifier) , (binary_expression "v._M_string_length != 0" (field_expression "v._M_string_length" identifier . field_identifier) != number_literal)) ))) )) (compound_statement "{\n        *pversion = v._M_dataplus._M_p;\n        cVar5 = is_global;\n      }" { (expression_statement "*pversion = v._M_dataplus._M_p;" (assignment_expression "*pversion = v._M_dataplus._M_p" (pointer_expression "*pversion" * identifier) = (field_expression "v._M_dataplus._M_p" (field_expression "v._M_dataplus" identifier . field_identifier) . field_identifier)) ;) (expression_statement "cVar5 = is_global;" (assignment_expression "cVar5 = is_global" identifier = identifier) ;) })) (expression_statement "is_forced_local = (bool)cVar5;" (assignment_expression "is_forced_local = (bool)cVar5" identifier = (cast_expression "(bool)cVar5" ( (type_descriptor "bool" primitive_type) ) identifier)) ;) (expression_statement "pSVar7 = (Sized_symbol<64> *)*pname;" (assignment_expression "pSVar7 = (Sized_symbol<64> *)*pname" identifier = (binary_expression "(Sized_symbol<64> *)*pname" (parenthesized_expression "(Sized_symbol<64> *)" ( (binary_expression "Sized_symbol<64> *" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*" * identifier)) )) * identifier)) ;) })) (expression_statement "cVar5 = is_forced_local;" (assignment_expression "cVar5 = is_forced_local" identifier = identifier) ;) (if_statement "if (!only_if_ref) goto LAB_0029205d;" if (parenthesized_expression "(!only_if_ref)" ( (unary_expression "!only_if_ref" ! identifier) )) (goto_statement "goto LAB_0029205d;" goto statement_identifier ;)) (labeled_statement "LAB_00291f1e:\n                    /* try { // try from 00291f24 to 0029237e has its CatchHandler @ 0029237f */\n    this_00 = (Symbol_table *)lookup(this,(char *)pSVar7,*pversion);" statement_identifier : comment (expression_statement "this_00 = (Symbol_table *)lookup(this,(char *)pSVar7,*pversion);" (assignment_expression "this_00 = (Symbol_table *)lookup(this,(char *)pSVar7,*pversion)" identifier = (cast_expression "(Symbol_table *)lookup(this,(char *)pSVar7,*pversion)" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "lookup(this,(char *)pSVar7,*pversion)" identifier (argument_list "(this,(char *)pSVar7,*pversion)" ( identifier , (cast_expression "(char *)pSVar7" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "*pversion" * identifier) ))))) ;)) (if_statement "if ((this_00 == (Symbol_table *)0x0) && (cVar5 != '\0')) {\n      pSVar7 = (Sized_symbol<64> *)*pname;\n      this_00 = (Symbol_table *)lookup(this,(char *)pSVar7,(char *)0x0);\n    }" if (parenthesized_expression "((this_00 == (Symbol_table *)0x0) && (cVar5 != '\0'))" ( (binary_expression "(this_00 == (Symbol_table *)0x0) && (cVar5 != '\0')" (parenthesized_expression "(this_00 == (Symbol_table *)0x0)" ( (binary_expression "this_00 == (Symbol_table *)0x0" identifier == (cast_expression "(Symbol_table *)0x0" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(cVar5 != '\0')" ( (binary_expression "cVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      pSVar7 = (Sized_symbol<64> *)*pname;\n      this_00 = (Symbol_table *)lookup(this,(char *)pSVar7,(char *)0x0);\n    }" { (expression_statement "pSVar7 = (Sized_symbol<64> *)*pname;" (assignment_expression "pSVar7 = (Sized_symbol<64> *)*pname" identifier = (binary_expression "(Sized_symbol<64> *)*pname" (parenthesized_expression "(Sized_symbol<64> *)" ( (binary_expression "Sized_symbol<64> *" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*" * identifier)) )) * identifier)) ;) (expression_statement "this_00 = (Symbol_table *)lookup(this,(char *)pSVar7,(char *)0x0);" (assignment_expression "this_00 = (Symbol_table *)lookup(this,(char *)pSVar7,(char *)0x0)" identifier = (cast_expression "(Symbol_table *)lookup(this,(char *)pSVar7,(char *)0x0)" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "lookup(this,(char *)pSVar7,(char *)0x0)" identifier (argument_list "(this,(char *)pSVar7,(char *)0x0)" ( identifier , (cast_expression "(char *)pSVar7" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))))) ;) })) (if_statement "if (this_00 != (Symbol_table *)0x0) {\n      bVar1 = *(byte *)((long)&(this_00->table_)._M_h._M_bucket_count + 2);\n      if ((bVar1 & 7) != 0) {\n        if ((bVar1 & 7) == 4) goto LAB_00291f80;\n        goto LAB_00292209;\n      }\n      if (((this_00->output_count_ != 0) ||\n          (((this_00->table_)._M_h._M_bucket_count & 0x20000000) == 0)) &&\n         (((*(byte *)(this_00->offset_ + 0x3c) & 1) == 0 ||\n          ((visibility - STV_INTERNAL < 2 && (-1 < (char)bVar1)))))) goto LAB_00292209;\nLAB_00291f80:\n      *pname = (char *)this_00->saw_undefined_;\n      if (cVar5 == '\0') {\n        *pversion = *(char **)&this_00->first_global_index_;\n        is_forced_local = false;\n        goto LAB_00291f97;\n      }\n      pSVar7 = (Sized_symbol<64> *)*pversion;\n      pcVar9 = Stringpool_template<char>::add(&this->namepool_,(char *)pSVar7,true,(Key *)0x0);\n      *pversion = pcVar9;\n      local_b8._M_cur = (__node_type *)0x0;\n      local_a8._M_cur = (__node_type *)0x0;\n      local_91 = (bool)'\0';\n      cVar5 = '\0';\n      goto LAB_00291fab;\n    }" if (parenthesized_expression "(this_00 != (Symbol_table *)0x0)" ( (binary_expression "this_00 != (Symbol_table *)0x0" identifier != (cast_expression "(Symbol_table *)0x0" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      bVar1 = *(byte *)((long)&(this_00->table_)._M_h._M_bucket_count + 2);\n      if ((bVar1 & 7) != 0) {\n        if ((bVar1 & 7) == 4) goto LAB_00291f80;\n        goto LAB_00292209;\n      }\n      if (((this_00->output_count_ != 0) ||\n          (((this_00->table_)._M_h._M_bucket_count & 0x20000000) == 0)) &&\n         (((*(byte *)(this_00->offset_ + 0x3c) & 1) == 0 ||\n          ((visibility - STV_INTERNAL < 2 && (-1 < (char)bVar1)))))) goto LAB_00292209;\nLAB_00291f80:\n      *pname = (char *)this_00->saw_undefined_;\n      if (cVar5 == '\0') {\n        *pversion = *(char **)&this_00->first_global_index_;\n        is_forced_local = false;\n        goto LAB_00291f97;\n      }\n      pSVar7 = (Sized_symbol<64> *)*pversion;\n      pcVar9 = Stringpool_template<char>::add(&this->namepool_,(char *)pSVar7,true,(Key *)0x0);\n      *pversion = pcVar9;\n      local_b8._M_cur = (__node_type *)0x0;\n      local_a8._M_cur = (__node_type *)0x0;\n      local_91 = (bool)'\0';\n      cVar5 = '\0';\n      goto LAB_00291fab;\n    }" { (expression_statement "bVar1 = *(byte *)((long)&(this_00->table_)._M_h._M_bucket_count + 2);" (assignment_expression "bVar1 = *(byte *)((long)&(this_00->table_)._M_h._M_bucket_count + 2)" identifier = (pointer_expression "*(byte *)((long)&(this_00->table_)._M_h._M_bucket_count + 2)" * (cast_expression "(byte *)((long)&(this_00->table_)._M_h._M_bucket_count + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&(this_00->table_)._M_h._M_bucket_count + 2)" ( (binary_expression "(long)&(this_00->table_)._M_h._M_bucket_count + 2" (cast_expression "(long)&(this_00->table_)._M_h._M_bucket_count" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&(this_00->table_)._M_h._M_bucket_count" & (field_expression "(this_00->table_)._M_h._M_bucket_count" (field_expression "(this_00->table_)._M_h" (parenthesized_expression "(this_00->table_)" ( (field_expression "this_00->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) ))))) ;) (if_statement "if ((bVar1 & 7) != 0) {\n        if ((bVar1 & 7) == 4) goto LAB_00291f80;\n        goto LAB_00292209;\n      }" if (parenthesized_expression "((bVar1 & 7) != 0)" ( (binary_expression "(bVar1 & 7) != 0" (parenthesized_expression "(bVar1 & 7)" ( (binary_expression "bVar1 & 7" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        if ((bVar1 & 7) == 4) goto LAB_00291f80;\n        goto LAB_00292209;\n      }" { (if_statement "if ((bVar1 & 7) == 4) goto LAB_00291f80;" if (parenthesized_expression "((bVar1 & 7) == 4)" ( (binary_expression "(bVar1 & 7) == 4" (parenthesized_expression "(bVar1 & 7)" ( (binary_expression "bVar1 & 7" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00291f80;" goto statement_identifier ;)) (goto_statement "goto LAB_00292209;" goto statement_identifier ;) })) (if_statement "if (((this_00->output_count_ != 0) ||\n          (((this_00->table_)._M_h._M_bucket_count & 0x20000000) == 0)) &&\n         (((*(byte *)(this_00->offset_ + 0x3c) & 1) == 0 ||\n          ((visibility - STV_INTERNAL < 2 && (-1 < (char)bVar1)))))) goto LAB_00292209;" if (parenthesized_expression "(((this_00->output_count_ != 0) ||\n          (((this_00->table_)._M_h._M_bucket_count & 0x20000000) == 0)) &&\n         (((*(byte *)(this_00->offset_ + 0x3c) & 1) == 0 ||\n          ((visibility - STV_INTERNAL < 2 && (-1 < (char)bVar1))))))" ( (binary_expression "((this_00->output_count_ != 0) ||\n          (((this_00->table_)._M_h._M_bucket_count & 0x20000000) == 0)) &&\n         (((*(byte *)(this_00->offset_ + 0x3c) & 1) == 0 ||\n          ((visibility - STV_INTERNAL < 2 && (-1 < (char)bVar1)))))" (parenthesized_expression "((this_00->output_count_ != 0) ||\n          (((this_00->table_)._M_h._M_bucket_count & 0x20000000) == 0))" ( (binary_expression "(this_00->output_count_ != 0) ||\n          (((this_00->table_)._M_h._M_bucket_count & 0x20000000) == 0)" (parenthesized_expression "(this_00->output_count_ != 0)" ( (binary_expression "this_00->output_count_ != 0" (field_expression "this_00->output_count_" identifier -> field_identifier) != number_literal) )) || (parenthesized_expression "(((this_00->table_)._M_h._M_bucket_count & 0x20000000) == 0)" ( (binary_expression "((this_00->table_)._M_h._M_bucket_count & 0x20000000) == 0" (parenthesized_expression "((this_00->table_)._M_h._M_bucket_count & 0x20000000)" ( (binary_expression "(this_00->table_)._M_h._M_bucket_count & 0x20000000" (field_expression "(this_00->table_)._M_h._M_bucket_count" (field_expression "(this_00->table_)._M_h" (parenthesized_expression "(this_00->table_)" ( (field_expression "this_00->table_" identifier -> field_identifier) )) . field_identifier) . field_identifier) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "(((*(byte *)(this_00->offset_ + 0x3c) & 1) == 0 ||\n          ((visibility - STV_INTERNAL < 2 && (-1 < (char)bVar1)))))" ( (parenthesized_expression "((*(byte *)(this_00->offset_ + 0x3c) & 1) == 0 ||\n          ((visibility - STV_INTERNAL < 2 && (-1 < (char)bVar1))))" ( (binary_expression "(*(byte *)(this_00->offset_ + 0x3c) & 1) == 0 ||\n          ((visibility - STV_INTERNAL < 2 && (-1 < (char)bVar1)))" (binary_expression "(*(byte *)(this_00->offset_ + 0x3c) & 1) == 0" (parenthesized_expression "(*(byte *)(this_00->offset_ + 0x3c) & 1)" ( (binary_expression "*(byte *)(this_00->offset_ + 0x3c) & 1" (pointer_expression "*(byte *)(this_00->offset_ + 0x3c)" * (cast_expression "(byte *)(this_00->offset_ + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this_00->offset_ + 0x3c)" ( (binary_expression "this_00->offset_ + 0x3c" (field_expression "this_00->offset_" identifier -> field_identifier) + number_literal) )))) & number_literal) )) == number_literal) || (parenthesized_expression "((visibility - STV_INTERNAL < 2 && (-1 < (char)bVar1)))" ( (parenthesized_expression "(visibility - STV_INTERNAL < 2 && (-1 < (char)bVar1))" ( (binary_expression "visibility - STV_INTERNAL < 2 && (-1 < (char)bVar1)" (binary_expression "visibility - STV_INTERNAL < 2" (binary_expression "visibility - STV_INTERNAL" identifier - identifier) < number_literal) && (parenthesized_expression "(-1 < (char)bVar1)" ( (binary_expression "-1 < (char)bVar1" number_literal < (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier)) ))) )) ))) )) ))) )) (goto_statement "goto LAB_00292209;" goto statement_identifier ;)) (labeled_statement "LAB_00291f80:\n      *pname = (char *)this_00->saw_undefined_;" statement_identifier : (expression_statement "*pname = (char *)this_00->saw_undefined_;" (assignment_expression "*pname = (char *)this_00->saw_undefined_" (pointer_expression "*pname" * identifier) = (cast_expression "(char *)this_00->saw_undefined_" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "this_00->saw_undefined_" identifier -> field_identifier))) ;)) (if_statement "if (cVar5 == '\0') {\n        *pversion = *(char **)&this_00->first_global_index_;\n        is_forced_local = false;\n        goto LAB_00291f97;\n      }" if (parenthesized_expression "(cVar5 == '\0')" ( (binary_expression "cVar5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        *pversion = *(char **)&this_00->first_global_index_;\n        is_forced_local = false;\n        goto LAB_00291f97;\n      }" { (expression_statement "*pversion = *(char **)&this_00->first_global_index_;" (assignment_expression "*pversion = *(char **)&this_00->first_global_index_" (pointer_expression "*pversion" * identifier) = (pointer_expression "*(char **)&this_00->first_global_index_" * (cast_expression "(char **)&this_00->first_global_index_" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&this_00->first_global_index_" & (field_expression "this_00->first_global_index_" identifier -> field_identifier))))) ;) (expression_statement "is_forced_local = false;" (assignment_expression "is_forced_local = false" identifier = false) ;) (goto_statement "goto LAB_00291f97;" goto statement_identifier ;) })) (expression_statement "pSVar7 = (Sized_symbol<64> *)*pversion;" (assignment_expression "pSVar7 = (Sized_symbol<64> *)*pversion" identifier = (binary_expression "(Sized_symbol<64> *)*pversion" (parenthesized_expression "(Sized_symbol<64> *)" ( (binary_expression "Sized_symbol<64> *" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*" * identifier)) )) * identifier)) ;) (expression_statement "pcVar9 = Stringpool_template<char>::add(&this->namepool_,(char *)pSVar7,true,(Key *)0x0);" (assignment_expression "pcVar9 = Stringpool_template<char>::add(&this->namepool_,(char *)pSVar7,true,(Key *)0x0)" identifier = (binary_expression "Stringpool_template<char>::add(&this->namepool_,(char *)pSVar7,true,(Key *)0x0)" (binary_expression "Stringpool_template<char" identifier < identifier) > (ERROR "::" : :) (call_expression "add(&this->namepool_,(char *)pSVar7,true,(Key *)0x0)" identifier (argument_list "(&this->namepool_,(char *)pSVar7,true,(Key *)0x0)" ( (pointer_expression "&this->namepool_" & (field_expression "this->namepool_" identifier -> field_identifier)) , (cast_expression "(char *)pSVar7" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , true , (cast_expression "(Key *)0x0" ( (type_descriptor "Key *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))))) ;) (expression_statement "*pversion = pcVar9;" (assignment_expression "*pversion = pcVar9" (pointer_expression "*pversion" * identifier) = identifier) ;) (expression_statement "local_b8._M_cur = (__node_type *)0x0;" (assignment_expression "local_b8._M_cur = (__node_type *)0x0" (field_expression "local_b8._M_cur" identifier . field_identifier) = (cast_expression "(__node_type *)0x0" ( (type_descriptor "__node_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_a8._M_cur = (__node_type *)0x0;" (assignment_expression "local_a8._M_cur = (__node_type *)0x0" (field_expression "local_a8._M_cur" identifier . field_identifier) = (cast_expression "(__node_type *)0x0" ( (type_descriptor "__node_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_91 = (bool)'\0';" (assignment_expression "local_91 = (bool)'\0'" identifier = (cast_expression "(bool)'\0'" ( (type_descriptor "bool" primitive_type) ) (char_literal "'\0'" ' escape_sequence '))) ;) (expression_statement "cVar5 = '\0';" (assignment_expression "cVar5 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (goto_statement "goto LAB_00291fab;" goto statement_identifier ;) })) (labeled_statement "LAB_00292209:\n    pSVar8 = (Sized_symbol<64> *)0x0;" statement_identifier : (expression_statement "pSVar8 = (Sized_symbol<64> *)0x0;" (assignment_expression "pSVar8 = (Sized_symbol<64> *)0x0" identifier = (parenthesized_expression "(Sized_symbol<64> *)0x0" ( (binary_expression "Sized_symbol<64> *)0x0" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*)0x0" * (ERROR ")" )) number_literal)) ))) ;)) }))) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)v._M_dataplus._M_p != &v.field_2) {\n    operator_delete(v._M_dataplus._M_p);\n  }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)v._M_dataplus._M_p != &v.field_2)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)v._M_dataplus._M_p != &v.field_2)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_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>_>_9\n       *)v._M_dataplus._M_p != &v.field_2" (binary_expression "allocator<char>_>_9\n       *)v._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n       *)v._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "v._M_dataplus._M_p" (field_expression "v._M_dataplus" identifier . field_identifier) . field_identifier))) != (pointer_expression "&v.field_2" & (field_expression "v.field_2" identifier . field_identifier))) )) )) (compound_statement "{\n    operator_delete(v._M_dataplus._M_p);\n  }" { (expression_statement "operator_delete(v._M_dataplus._M_p);" (call_expression "operator_delete(v._M_dataplus._M_p)" identifier (argument_list "(v._M_dataplus._M_p)" ( (field_expression "v._M_dataplus._M_p" (field_expression "v._M_dataplus" identifier . field_identifier) . field_identifier) ))) ;) })) (return_statement "return pSVar8;" return identifier ;) }))
(translation_unit "undefined1 (*) [16]\nFUN_00291ea0(long param_1,undefined8 *param_2,long *param_3,char param_4,int param_5,\n            undefined8 *param_6,undefined1 *param_7,char param_8)\n\n{\n  byte bVar1;\n  long *plVar2;\n  undefined8 *puVar3;\n  char cVar4;\n  undefined8 *puVar5;\n  undefined1 (*pauVar6) [16];\n  undefined8 uVar7;\n  long lVar8;\n  char extraout_DL;\n  char extraout_DL_00;\n  char cVar9;\n  long local_b8;\n  long local_a8;\n  char local_91;\n  undefined8 local_88;\n  undefined8 local_80;\n  undefined8 local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  undefined1 *local_58;\n  long local_50;\n  undefined1 local_48 [24];\n  \n  uVar7 = *param_2;\n  local_58 = local_48;\n  *param_7 = 0;\n  *param_6 = 0;\n  local_50 = 0;\n  local_48[0] = 0;\n  if (param_8 == '\0') {\n    cVar9 = '\0';\n    if (*param_3 == 0) {\n      cVar4 = FUN_00279db0(*(undefined8 *)(param_1 + 0x288),uVar7,&local_58,&local_78);\n      if (((cVar4 != '\0') && (cVar4 = (char)local_78, (char)local_78 != '\0')) &&\n         (cVar4 = cVar9, local_50 != 0)) {\n        *param_3 = (long)local_58;\n        cVar4 = (char)local_78;\n      }\n      cVar9 = cVar4;\n      uVar7 = *param_2;\n    }\n    cVar4 = cVar9;\n    if (param_4 == '\0') goto LAB_0029205d;\nLAB_00291f1e:\n                    \n    puVar5 = (undefined8 *)FUN_00284d90(param_1,uVar7,*param_3);\n    if ((puVar5 == (undefined8 *)0x0) && (cVar4 != '\0')) {\n      puVar5 = (undefined8 *)FUN_00284d90(param_1,*param_2,0);\n    }\n    if (puVar5 != (undefined8 *)0x0) {\n      bVar1 = *(byte *)((long)puVar5 + 0x3a);\n      if ((bVar1 & 7) != 0) {\n        if ((bVar1 & 7) == 4) goto LAB_00291f80;\n        goto LAB_00292209;\n      }\n      if (((*(int *)(puVar5 + 3) != 0) || ((*(byte *)((long)puVar5 + 0x3b) & 0x20) == 0)) &&\n         (((*(byte *)(puVar5[2] + 0x3c) & 1) == 0 || ((param_5 - 1U < 2 && (-1 < (char)bVar1))))))\n      goto LAB_00292209;\nLAB_00291f80:\n      *param_2 = *puVar5;\n      if (cVar4 == '\0') {\n        *param_3 = puVar5[1];\n        cVar9 = '\0';\n        goto LAB_00291f97;\n      }\n      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,0);\n      *param_3 = lVar8;\n      local_b8 = 0;\n      local_a8 = 0;\n      local_91 = '\0';\n      cVar4 = '\0';\n      goto LAB_00291fab;\n    }\nLAB_00292209:\n    pauVar6 = (undefined1 (*) [16])0x0;\n  }\n  else {\n    cVar4 = '\0';\n    cVar9 = '\0';\n    if (param_4 != '\0') goto LAB_00291f1e;\nLAB_0029205d:\n    uVar7 = FUN_00280180(param_1 + 0x68,uVar7,1,&local_88);\n    *param_2 = uVar7;\n    local_80 = 0;\n    if (*param_3 != 0) {\n      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,&local_80);\n      *param_3 = lVar8;\n    }\n    local_78 = local_88;\n    local_68 = 0;\n    local_70 = local_80;\n    local_a8 = FUN_0028dab0(param_1 + 0x30,&local_78);\n    local_91 = '\0';\n    local_b8 = 0;\n    if (cVar9 != '\0') {\n      local_70 = 0;\n      local_68 = 0;\n      local_78 = local_88;\n      local_b8 = FUN_0028dab0(param_1 + 0x30,&local_78);\n      local_91 = extraout_DL_00;\n    }\n    puVar5 = *(undefined8 **)(local_a8 + 0x18);\n    if (extraout_DL == '\0') {\n      if (puVar5 == (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x75a,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\nLAB_00291f97:\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = '\0';\n        cVar4 = cVar9;\n      }\n      else {\n        uVar7 = FUN_002827c0(puVar5);\n        FUN_0028c430(param_1,uVar7,local_91,local_b8);\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = '\0';\n      }\n    }\n    else {\n      if (puVar5 != (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x768,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\n        local_b8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = cVar9;\n      }\n      else {\n        cVar4 = local_91;\n        if ((local_91 == '\0') &&\n           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0)) {\n          local_b8 = 0;\n          *param_7 = 1;\n          puVar5 = puVar3;\n          cVar4 = '\0';\n        }\n      }\n    }\nLAB_00291fab:\n    plVar2 = *(long **)(PTR_DAT_004586c8 + 0x18);\n    if (plVar2 == (long *)0x0) {\n                    \n      FUN_0018dcf0("../../gold/parameters.h",0x69,"target");\n    }\n    if (*(char *)(plVar2[1] + 0xc) == '\0') {\n      pauVar6 = (undefined1 (*) [16])FUN_002ee780(0x50);\n      *pauVar6 = (undefined1  [16])0x0;\n      pauVar6[1] = (undefined1  [16])0x0;\n      pauVar6[2] = (undefined1  [16])0x0;\n      pauVar6[3] = (undefined1  [16])0x0;\n    }\n    else {\n      pauVar6 = (undefined1 (*) [16])(**(code **)(*plVar2 + 0x150))(plVar2,*param_2,0,0,0,0);\n      if (pauVar6 == (undefined1 (*) [16])0x0) goto LAB_00292209;\n    }\n    if (local_91 == '\0') {\n      if (puVar5 == (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x794,"define_special_symbol");\n      }\n    }\n    else {\n      *(undefined1 (**) [16])(local_a8 + 0x18) = pauVar6;\n    }\n    if (cVar4 != '\0') {\n      *(undefined1 (**) [16])(local_b8 + 0x18) = pauVar6;\n    }\n    uVar7 = FUN_002827c0(puVar5);\n    *param_6 = uVar7;\n  }\n  if (local_58 != local_48) {\n    FUN_002eff50();\n  }\n  return pauVar6;\n}\n\n" (function_definition "undefined1 (*) [16]\nFUN_00291ea0(long param_1,undefined8 *param_2,long *param_3,char param_4,int param_5,\n            undefined8 *param_6,undefined1 *param_7,char param_8)\n\n{\n  byte bVar1;\n  long *plVar2;\n  undefined8 *puVar3;\n  char cVar4;\n  undefined8 *puVar5;\n  undefined1 (*pauVar6) [16];\n  undefined8 uVar7;\n  long lVar8;\n  char extraout_DL;\n  char extraout_DL_00;\n  char cVar9;\n  long local_b8;\n  long local_a8;\n  char local_91;\n  undefined8 local_88;\n  undefined8 local_80;\n  undefined8 local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  undefined1 *local_58;\n  long local_50;\n  undefined1 local_48 [24];\n  \n  uVar7 = *param_2;\n  local_58 = local_48;\n  *param_7 = 0;\n  *param_6 = 0;\n  local_50 = 0;\n  local_48[0] = 0;\n  if (param_8 == '\0') {\n    cVar9 = '\0';\n    if (*param_3 == 0) {\n      cVar4 = FUN_00279db0(*(undefined8 *)(param_1 + 0x288),uVar7,&local_58,&local_78);\n      if (((cVar4 != '\0') && (cVar4 = (char)local_78, (char)local_78 != '\0')) &&\n         (cVar4 = cVar9, local_50 != 0)) {\n        *param_3 = (long)local_58;\n        cVar4 = (char)local_78;\n      }\n      cVar9 = cVar4;\n      uVar7 = *param_2;\n    }\n    cVar4 = cVar9;\n    if (param_4 == '\0') goto LAB_0029205d;\nLAB_00291f1e:\n                    \n    puVar5 = (undefined8 *)FUN_00284d90(param_1,uVar7,*param_3);\n    if ((puVar5 == (undefined8 *)0x0) && (cVar4 != '\0')) {\n      puVar5 = (undefined8 *)FUN_00284d90(param_1,*param_2,0);\n    }\n    if (puVar5 != (undefined8 *)0x0) {\n      bVar1 = *(byte *)((long)puVar5 + 0x3a);\n      if ((bVar1 & 7) != 0) {\n        if ((bVar1 & 7) == 4) goto LAB_00291f80;\n        goto LAB_00292209;\n      }\n      if (((*(int *)(puVar5 + 3) != 0) || ((*(byte *)((long)puVar5 + 0x3b) & 0x20) == 0)) &&\n         (((*(byte *)(puVar5[2] + 0x3c) & 1) == 0 || ((param_5 - 1U < 2 && (-1 < (char)bVar1))))))\n      goto LAB_00292209;\nLAB_00291f80:\n      *param_2 = *puVar5;\n      if (cVar4 == '\0') {\n        *param_3 = puVar5[1];\n        cVar9 = '\0';\n        goto LAB_00291f97;\n      }\n      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,0);\n      *param_3 = lVar8;\n      local_b8 = 0;\n      local_a8 = 0;\n      local_91 = '\0';\n      cVar4 = '\0';\n      goto LAB_00291fab;\n    }\nLAB_00292209:\n    pauVar6 = (undefined1 (*) [16])0x0;\n  }\n  else {\n    cVar4 = '\0';\n    cVar9 = '\0';\n    if (param_4 != '\0') goto LAB_00291f1e;\nLAB_0029205d:\n    uVar7 = FUN_00280180(param_1 + 0x68,uVar7,1,&local_88);\n    *param_2 = uVar7;\n    local_80 = 0;\n    if (*param_3 != 0) {\n      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,&local_80);\n      *param_3 = lVar8;\n    }\n    local_78 = local_88;\n    local_68 = 0;\n    local_70 = local_80;\n    local_a8 = FUN_0028dab0(param_1 + 0x30,&local_78);\n    local_91 = '\0';\n    local_b8 = 0;\n    if (cVar9 != '\0') {\n      local_70 = 0;\n      local_68 = 0;\n      local_78 = local_88;\n      local_b8 = FUN_0028dab0(param_1 + 0x30,&local_78);\n      local_91 = extraout_DL_00;\n    }\n    puVar5 = *(undefined8 **)(local_a8 + 0x18);\n    if (extraout_DL == '\0') {\n      if (puVar5 == (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x75a,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\nLAB_00291f97:\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = '\0';\n        cVar4 = cVar9;\n      }\n      else {\n        uVar7 = FUN_002827c0(puVar5);\n        FUN_0028c430(param_1,uVar7,local_91,local_b8);\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = '\0';\n      }\n    }\n    else {\n      if (puVar5 != (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x768,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\n        local_b8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = cVar9;\n      }\n      else {\n        cVar4 = local_91;\n        if ((local_91 == '\0') &&\n           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0)) {\n          local_b8 = 0;\n          *param_7 = 1;\n          puVar5 = puVar3;\n          cVar4 = '\0';\n        }\n      }\n    }\nLAB_00291fab:\n    plVar2 = *(long **)(PTR_DAT_004586c8 + 0x18);\n    if (plVar2 == (long *)0x0) {\n                    \n      FUN_0018dcf0("../../gold/parameters.h",0x69,"target");\n    }\n    if (*(char *)(plVar2[1] + 0xc) == '\0') {\n      pauVar6 = (undefined1 (*) [16])FUN_002ee780(0x50);\n      *pauVar6 = (undefined1  [16])0x0;\n      pauVar6[1] = (undefined1  [16])0x0;\n      pauVar6[2] = (undefined1  [16])0x0;\n      pauVar6[3] = (undefined1  [16])0x0;\n    }\n    else {\n      pauVar6 = (undefined1 (*) [16])(**(code **)(*plVar2 + 0x150))(plVar2,*param_2,0,0,0,0);\n      if (pauVar6 == (undefined1 (*) [16])0x0) goto LAB_00292209;\n    }\n    if (local_91 == '\0') {\n      if (puVar5 == (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x794,"define_special_symbol");\n      }\n    }\n    else {\n      *(undefined1 (**) [16])(local_a8 + 0x18) = pauVar6;\n    }\n    if (cVar4 != '\0') {\n      *(undefined1 (**) [16])(local_b8 + 0x18) = pauVar6;\n    }\n    uVar7 = FUN_002827c0(puVar5);\n    *param_6 = uVar7;\n  }\n  if (local_58 != local_48) {\n    FUN_002eff50();\n  }\n  return pauVar6;\n}" type_identifier (ERROR "(*) [16]" (array_declarator "(*) [16]" (parenthesized_declarator "(*)" ( (pointer_declarator "*" * identifier) )) [ number_literal ])) (function_declarator "FUN_00291ea0(long param_1,undefined8 *param_2,long *param_3,char param_4,int param_5,\n            undefined8 *param_6,undefined1 *param_7,char param_8)" identifier (parameter_list "(long param_1,undefined8 *param_2,long *param_3,char param_4,int param_5,\n            undefined8 *param_6,undefined1 *param_7,char param_8)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "long *param_3" (sized_type_specifier "long" long) (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "char param_4" primitive_type identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "undefined8 *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "undefined1 *param_7" type_identifier (pointer_declarator "*param_7" * identifier)) , (parameter_declaration "char param_8" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  long *plVar2;\n  undefined8 *puVar3;\n  char cVar4;\n  undefined8 *puVar5;\n  undefined1 (*pauVar6) [16];\n  undefined8 uVar7;\n  long lVar8;\n  char extraout_DL;\n  char extraout_DL_00;\n  char cVar9;\n  long local_b8;\n  long local_a8;\n  char local_91;\n  undefined8 local_88;\n  undefined8 local_80;\n  undefined8 local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  undefined1 *local_58;\n  long local_50;\n  undefined1 local_48 [24];\n  \n  uVar7 = *param_2;\n  local_58 = local_48;\n  *param_7 = 0;\n  *param_6 = 0;\n  local_50 = 0;\n  local_48[0] = 0;\n  if (param_8 == '\0') {\n    cVar9 = '\0';\n    if (*param_3 == 0) {\n      cVar4 = FUN_00279db0(*(undefined8 *)(param_1 + 0x288),uVar7,&local_58,&local_78);\n      if (((cVar4 != '\0') && (cVar4 = (char)local_78, (char)local_78 != '\0')) &&\n         (cVar4 = cVar9, local_50 != 0)) {\n        *param_3 = (long)local_58;\n        cVar4 = (char)local_78;\n      }\n      cVar9 = cVar4;\n      uVar7 = *param_2;\n    }\n    cVar4 = cVar9;\n    if (param_4 == '\0') goto LAB_0029205d;\nLAB_00291f1e:\n                    \n    puVar5 = (undefined8 *)FUN_00284d90(param_1,uVar7,*param_3);\n    if ((puVar5 == (undefined8 *)0x0) && (cVar4 != '\0')) {\n      puVar5 = (undefined8 *)FUN_00284d90(param_1,*param_2,0);\n    }\n    if (puVar5 != (undefined8 *)0x0) {\n      bVar1 = *(byte *)((long)puVar5 + 0x3a);\n      if ((bVar1 & 7) != 0) {\n        if ((bVar1 & 7) == 4) goto LAB_00291f80;\n        goto LAB_00292209;\n      }\n      if (((*(int *)(puVar5 + 3) != 0) || ((*(byte *)((long)puVar5 + 0x3b) & 0x20) == 0)) &&\n         (((*(byte *)(puVar5[2] + 0x3c) & 1) == 0 || ((param_5 - 1U < 2 && (-1 < (char)bVar1))))))\n      goto LAB_00292209;\nLAB_00291f80:\n      *param_2 = *puVar5;\n      if (cVar4 == '\0') {\n        *param_3 = puVar5[1];\n        cVar9 = '\0';\n        goto LAB_00291f97;\n      }\n      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,0);\n      *param_3 = lVar8;\n      local_b8 = 0;\n      local_a8 = 0;\n      local_91 = '\0';\n      cVar4 = '\0';\n      goto LAB_00291fab;\n    }\nLAB_00292209:\n    pauVar6 = (undefined1 (*) [16])0x0;\n  }\n  else {\n    cVar4 = '\0';\n    cVar9 = '\0';\n    if (param_4 != '\0') goto LAB_00291f1e;\nLAB_0029205d:\n    uVar7 = FUN_00280180(param_1 + 0x68,uVar7,1,&local_88);\n    *param_2 = uVar7;\n    local_80 = 0;\n    if (*param_3 != 0) {\n      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,&local_80);\n      *param_3 = lVar8;\n    }\n    local_78 = local_88;\n    local_68 = 0;\n    local_70 = local_80;\n    local_a8 = FUN_0028dab0(param_1 + 0x30,&local_78);\n    local_91 = '\0';\n    local_b8 = 0;\n    if (cVar9 != '\0') {\n      local_70 = 0;\n      local_68 = 0;\n      local_78 = local_88;\n      local_b8 = FUN_0028dab0(param_1 + 0x30,&local_78);\n      local_91 = extraout_DL_00;\n    }\n    puVar5 = *(undefined8 **)(local_a8 + 0x18);\n    if (extraout_DL == '\0') {\n      if (puVar5 == (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x75a,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\nLAB_00291f97:\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = '\0';\n        cVar4 = cVar9;\n      }\n      else {\n        uVar7 = FUN_002827c0(puVar5);\n        FUN_0028c430(param_1,uVar7,local_91,local_b8);\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = '\0';\n      }\n    }\n    else {\n      if (puVar5 != (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x768,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\n        local_b8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = cVar9;\n      }\n      else {\n        cVar4 = local_91;\n        if ((local_91 == '\0') &&\n           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0)) {\n          local_b8 = 0;\n          *param_7 = 1;\n          puVar5 = puVar3;\n          cVar4 = '\0';\n        }\n      }\n    }\nLAB_00291fab:\n    plVar2 = *(long **)(PTR_DAT_004586c8 + 0x18);\n    if (plVar2 == (long *)0x0) {\n                    \n      FUN_0018dcf0("../../gold/parameters.h",0x69,"target");\n    }\n    if (*(char *)(plVar2[1] + 0xc) == '\0') {\n      pauVar6 = (undefined1 (*) [16])FUN_002ee780(0x50);\n      *pauVar6 = (undefined1  [16])0x0;\n      pauVar6[1] = (undefined1  [16])0x0;\n      pauVar6[2] = (undefined1  [16])0x0;\n      pauVar6[3] = (undefined1  [16])0x0;\n    }\n    else {\n      pauVar6 = (undefined1 (*) [16])(**(code **)(*plVar2 + 0x150))(plVar2,*param_2,0,0,0,0);\n      if (pauVar6 == (undefined1 (*) [16])0x0) goto LAB_00292209;\n    }\n    if (local_91 == '\0') {\n      if (puVar5 == (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x794,"define_special_symbol");\n      }\n    }\n    else {\n      *(undefined1 (**) [16])(local_a8 + 0x18) = pauVar6;\n    }\n    if (cVar4 != '\0') {\n      *(undefined1 (**) [16])(local_b8 + 0x18) = pauVar6;\n    }\n    uVar7 = FUN_002827c0(puVar5);\n    *param_6 = uVar7;\n  }\n  if (local_58 != local_48) {\n    FUN_002eff50();\n  }\n  return pauVar6;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "long *plVar2;" (sized_type_specifier "long" long) (pointer_declarator "*plVar2" * identifier) ;) (declaration "undefined8 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "undefined8 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (expression_statement "undefined1 (*pauVar6) [16];" (subscript_expression "undefined1 (*pauVar6) [16]" (call_expression "undefined1 (*pauVar6)" identifier (argument_list "(*pauVar6)" ( (pointer_expression "*pauVar6" * identifier) ))) [ number_literal ]) ;) (declaration "undefined8 uVar7;" type_identifier identifier ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "char extraout_DL;" primitive_type identifier ;) (declaration "char extraout_DL_00;" primitive_type identifier ;) (declaration "char cVar9;" primitive_type identifier ;) (declaration "long local_b8;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_a8;" (sized_type_specifier "long" long) identifier ;) (declaration "char local_91;" primitive_type identifier ;) (declaration "undefined8 local_88;" type_identifier identifier ;) (declaration "undefined8 local_80;" type_identifier identifier ;) (declaration "undefined8 local_78;" type_identifier identifier ;) (declaration "undefined8 local_70;" type_identifier identifier ;) (declaration "undefined8 local_68;" type_identifier identifier ;) (declaration "undefined1 *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "long local_50;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 local_48 [24];" type_identifier (array_declarator "local_48 [24]" identifier [ number_literal ]) ;) (expression_statement "uVar7 = *param_2;" (assignment_expression "uVar7 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "local_58 = local_48;" (assignment_expression "local_58 = local_48" identifier = identifier) ;) (expression_statement "*param_7 = 0;" (assignment_expression "*param_7 = 0" (pointer_expression "*param_7" * identifier) = number_literal) ;) (expression_statement "*param_6 = 0;" (assignment_expression "*param_6 = 0" (pointer_expression "*param_6" * identifier) = number_literal) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "local_48[0] = 0;" (assignment_expression "local_48[0] = 0" (subscript_expression "local_48[0]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (param_8 == '\0') {\n    cVar9 = '\0';\n    if (*param_3 == 0) {\n      cVar4 = FUN_00279db0(*(undefined8 *)(param_1 + 0x288),uVar7,&local_58,&local_78);\n      if (((cVar4 != '\0') && (cVar4 = (char)local_78, (char)local_78 != '\0')) &&\n         (cVar4 = cVar9, local_50 != 0)) {\n        *param_3 = (long)local_58;\n        cVar4 = (char)local_78;\n      }\n      cVar9 = cVar4;\n      uVar7 = *param_2;\n    }\n    cVar4 = cVar9;\n    if (param_4 == '\0') goto LAB_0029205d;\nLAB_00291f1e:\n                    \n    puVar5 = (undefined8 *)FUN_00284d90(param_1,uVar7,*param_3);\n    if ((puVar5 == (undefined8 *)0x0) && (cVar4 != '\0')) {\n      puVar5 = (undefined8 *)FUN_00284d90(param_1,*param_2,0);\n    }\n    if (puVar5 != (undefined8 *)0x0) {\n      bVar1 = *(byte *)((long)puVar5 + 0x3a);\n      if ((bVar1 & 7) != 0) {\n        if ((bVar1 & 7) == 4) goto LAB_00291f80;\n        goto LAB_00292209;\n      }\n      if (((*(int *)(puVar5 + 3) != 0) || ((*(byte *)((long)puVar5 + 0x3b) & 0x20) == 0)) &&\n         (((*(byte *)(puVar5[2] + 0x3c) & 1) == 0 || ((param_5 - 1U < 2 && (-1 < (char)bVar1))))))\n      goto LAB_00292209;\nLAB_00291f80:\n      *param_2 = *puVar5;\n      if (cVar4 == '\0') {\n        *param_3 = puVar5[1];\n        cVar9 = '\0';\n        goto LAB_00291f97;\n      }\n      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,0);\n      *param_3 = lVar8;\n      local_b8 = 0;\n      local_a8 = 0;\n      local_91 = '\0';\n      cVar4 = '\0';\n      goto LAB_00291fab;\n    }\nLAB_00292209:\n    pauVar6 = (undefined1 (*) [16])0x0;\n  }\n  else {\n    cVar4 = '\0';\n    cVar9 = '\0';\n    if (param_4 != '\0') goto LAB_00291f1e;\nLAB_0029205d:\n    uVar7 = FUN_00280180(param_1 + 0x68,uVar7,1,&local_88);\n    *param_2 = uVar7;\n    local_80 = 0;\n    if (*param_3 != 0) {\n      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,&local_80);\n      *param_3 = lVar8;\n    }\n    local_78 = local_88;\n    local_68 = 0;\n    local_70 = local_80;\n    local_a8 = FUN_0028dab0(param_1 + 0x30,&local_78);\n    local_91 = '\0';\n    local_b8 = 0;\n    if (cVar9 != '\0') {\n      local_70 = 0;\n      local_68 = 0;\n      local_78 = local_88;\n      local_b8 = FUN_0028dab0(param_1 + 0x30,&local_78);\n      local_91 = extraout_DL_00;\n    }\n    puVar5 = *(undefined8 **)(local_a8 + 0x18);\n    if (extraout_DL == '\0') {\n      if (puVar5 == (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x75a,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\nLAB_00291f97:\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = '\0';\n        cVar4 = cVar9;\n      }\n      else {\n        uVar7 = FUN_002827c0(puVar5);\n        FUN_0028c430(param_1,uVar7,local_91,local_b8);\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = '\0';\n      }\n    }\n    else {\n      if (puVar5 != (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x768,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\n        local_b8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = cVar9;\n      }\n      else {\n        cVar4 = local_91;\n        if ((local_91 == '\0') &&\n           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0)) {\n          local_b8 = 0;\n          *param_7 = 1;\n          puVar5 = puVar3;\n          cVar4 = '\0';\n        }\n      }\n    }\nLAB_00291fab:\n    plVar2 = *(long **)(PTR_DAT_004586c8 + 0x18);\n    if (plVar2 == (long *)0x0) {\n                    \n      FUN_0018dcf0("../../gold/parameters.h",0x69,"target");\n    }\n    if (*(char *)(plVar2[1] + 0xc) == '\0') {\n      pauVar6 = (undefined1 (*) [16])FUN_002ee780(0x50);\n      *pauVar6 = (undefined1  [16])0x0;\n      pauVar6[1] = (undefined1  [16])0x0;\n      pauVar6[2] = (undefined1  [16])0x0;\n      pauVar6[3] = (undefined1  [16])0x0;\n    }\n    else {\n      pauVar6 = (undefined1 (*) [16])(**(code **)(*plVar2 + 0x150))(plVar2,*param_2,0,0,0,0);\n      if (pauVar6 == (undefined1 (*) [16])0x0) goto LAB_00292209;\n    }\n    if (local_91 == '\0') {\n      if (puVar5 == (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x794,"define_special_symbol");\n      }\n    }\n    else {\n      *(undefined1 (**) [16])(local_a8 + 0x18) = pauVar6;\n    }\n    if (cVar4 != '\0') {\n      *(undefined1 (**) [16])(local_b8 + 0x18) = pauVar6;\n    }\n    uVar7 = FUN_002827c0(puVar5);\n    *param_6 = uVar7;\n  }" if (parenthesized_expression "(param_8 == '\0')" ( (binary_expression "param_8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    cVar9 = '\0';\n    if (*param_3 == 0) {\n      cVar4 = FUN_00279db0(*(undefined8 *)(param_1 + 0x288),uVar7,&local_58,&local_78);\n      if (((cVar4 != '\0') && (cVar4 = (char)local_78, (char)local_78 != '\0')) &&\n         (cVar4 = cVar9, local_50 != 0)) {\n        *param_3 = (long)local_58;\n        cVar4 = (char)local_78;\n      }\n      cVar9 = cVar4;\n      uVar7 = *param_2;\n    }\n    cVar4 = cVar9;\n    if (param_4 == '\0') goto LAB_0029205d;\nLAB_00291f1e:\n                    \n    puVar5 = (undefined8 *)FUN_00284d90(param_1,uVar7,*param_3);\n    if ((puVar5 == (undefined8 *)0x0) && (cVar4 != '\0')) {\n      puVar5 = (undefined8 *)FUN_00284d90(param_1,*param_2,0);\n    }\n    if (puVar5 != (undefined8 *)0x0) {\n      bVar1 = *(byte *)((long)puVar5 + 0x3a);\n      if ((bVar1 & 7) != 0) {\n        if ((bVar1 & 7) == 4) goto LAB_00291f80;\n        goto LAB_00292209;\n      }\n      if (((*(int *)(puVar5 + 3) != 0) || ((*(byte *)((long)puVar5 + 0x3b) & 0x20) == 0)) &&\n         (((*(byte *)(puVar5[2] + 0x3c) & 1) == 0 || ((param_5 - 1U < 2 && (-1 < (char)bVar1))))))\n      goto LAB_00292209;\nLAB_00291f80:\n      *param_2 = *puVar5;\n      if (cVar4 == '\0') {\n        *param_3 = puVar5[1];\n        cVar9 = '\0';\n        goto LAB_00291f97;\n      }\n      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,0);\n      *param_3 = lVar8;\n      local_b8 = 0;\n      local_a8 = 0;\n      local_91 = '\0';\n      cVar4 = '\0';\n      goto LAB_00291fab;\n    }\nLAB_00292209:\n    pauVar6 = (undefined1 (*) [16])0x0;\n  }" { (expression_statement "cVar9 = '\0';" (assignment_expression "cVar9 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (*param_3 == 0) {\n      cVar4 = FUN_00279db0(*(undefined8 *)(param_1 + 0x288),uVar7,&local_58,&local_78);\n      if (((cVar4 != '\0') && (cVar4 = (char)local_78, (char)local_78 != '\0')) &&\n         (cVar4 = cVar9, local_50 != 0)) {\n        *param_3 = (long)local_58;\n        cVar4 = (char)local_78;\n      }\n      cVar9 = cVar4;\n      uVar7 = *param_2;\n    }" if (parenthesized_expression "(*param_3 == 0)" ( (binary_expression "*param_3 == 0" (pointer_expression "*param_3" * identifier) == number_literal) )) (compound_statement "{\n      cVar4 = FUN_00279db0(*(undefined8 *)(param_1 + 0x288),uVar7,&local_58,&local_78);\n      if (((cVar4 != '\0') && (cVar4 = (char)local_78, (char)local_78 != '\0')) &&\n         (cVar4 = cVar9, local_50 != 0)) {\n        *param_3 = (long)local_58;\n        cVar4 = (char)local_78;\n      }\n      cVar9 = cVar4;\n      uVar7 = *param_2;\n    }" { (expression_statement "cVar4 = FUN_00279db0(*(undefined8 *)(param_1 + 0x288),uVar7,&local_58,&local_78);" (assignment_expression "cVar4 = FUN_00279db0(*(undefined8 *)(param_1 + 0x288),uVar7,&local_58,&local_78)" identifier = (call_expression "FUN_00279db0(*(undefined8 *)(param_1 + 0x288),uVar7,&local_58,&local_78)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x288),uVar7,&local_58,&local_78)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x288)" * (cast_expression "(undefined8 *)(param_1 + 0x288)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x288)" ( (binary_expression "param_1 + 0x288" identifier + number_literal) )))) , identifier , (pointer_expression "&local_58" & identifier) , (pointer_expression "&local_78" & identifier) )))) ;) (if_statement "if (((cVar4 != '\0') && (cVar4 = (char)local_78, (char)local_78 != '\0')) &&\n         (cVar4 = cVar9, local_50 != 0)) {\n        *param_3 = (long)local_58;\n        cVar4 = (char)local_78;\n      }" if (parenthesized_expression "(((cVar4 != '\0') && (cVar4 = (char)local_78, (char)local_78 != '\0')) &&\n         (cVar4 = cVar9, local_50 != 0))" ( (binary_expression "((cVar4 != '\0') && (cVar4 = (char)local_78, (char)local_78 != '\0')) &&\n         (cVar4 = cVar9, local_50 != 0)" (parenthesized_expression "((cVar4 != '\0') && (cVar4 = (char)local_78, (char)local_78 != '\0'))" ( (binary_expression "(cVar4 != '\0') && (cVar4 = (char)local_78, (char)local_78 != '\0')" (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(cVar4 = (char)local_78, (char)local_78 != '\0')" ( (comma_expression "cVar4 = (char)local_78, (char)local_78 != '\0'" (assignment_expression "cVar4 = (char)local_78" identifier = (cast_expression "(char)local_78" ( (type_descriptor "char" primitive_type) ) identifier)) , (binary_expression "(char)local_78 != '\0'" (cast_expression "(char)local_78" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence '))) ))) )) && (parenthesized_expression "(cVar4 = cVar9, local_50 != 0)" ( (comma_expression "cVar4 = cVar9, local_50 != 0" (assignment_expression "cVar4 = cVar9" identifier = identifier) , (binary_expression "local_50 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        *param_3 = (long)local_58;\n        cVar4 = (char)local_78;\n      }" { (expression_statement "*param_3 = (long)local_58;" (assignment_expression "*param_3 = (long)local_58" (pointer_expression "*param_3" * identifier) = (cast_expression "(long)local_58" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "cVar4 = (char)local_78;" (assignment_expression "cVar4 = (char)local_78" identifier = (cast_expression "(char)local_78" ( (type_descriptor "char" primitive_type) ) identifier)) ;) })) (expression_statement "cVar9 = cVar4;" (assignment_expression "cVar9 = cVar4" identifier = identifier) ;) (expression_statement "uVar7 = *param_2;" (assignment_expression "uVar7 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) })) (expression_statement "cVar4 = cVar9;" (assignment_expression "cVar4 = cVar9" identifier = identifier) ;) (if_statement "if (param_4 == '\0') goto LAB_0029205d;" if (parenthesized_expression "(param_4 == '\0')" ( (binary_expression "param_4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0029205d;" goto statement_identifier ;)) (labeled_statement "LAB_00291f1e:\n                    \n    puVar5 = (undefined8 *)FUN_00284d90(param_1,uVar7,*param_3);" statement_identifier : (expression_statement "puVar5 = (undefined8 *)FUN_00284d90(param_1,uVar7,*param_3);" (assignment_expression "puVar5 = (undefined8 *)FUN_00284d90(param_1,uVar7,*param_3)" identifier = (cast_expression "(undefined8 *)FUN_00284d90(param_1,uVar7,*param_3)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00284d90(param_1,uVar7,*param_3)" identifier (argument_list "(param_1,uVar7,*param_3)" ( identifier , identifier , (pointer_expression "*param_3" * identifier) ))))) ;)) (if_statement "if ((puVar5 == (undefined8 *)0x0) && (cVar4 != '\0')) {\n      puVar5 = (undefined8 *)FUN_00284d90(param_1,*param_2,0);\n    }" if (parenthesized_expression "((puVar5 == (undefined8 *)0x0) && (cVar4 != '\0'))" ( (binary_expression "(puVar5 == (undefined8 *)0x0) && (cVar4 != '\0')" (parenthesized_expression "(puVar5 == (undefined8 *)0x0)" ( (binary_expression "puVar5 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      puVar5 = (undefined8 *)FUN_00284d90(param_1,*param_2,0);\n    }" { (expression_statement "puVar5 = (undefined8 *)FUN_00284d90(param_1,*param_2,0);" (assignment_expression "puVar5 = (undefined8 *)FUN_00284d90(param_1,*param_2,0)" identifier = (cast_expression "(undefined8 *)FUN_00284d90(param_1,*param_2,0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00284d90(param_1,*param_2,0)" identifier (argument_list "(param_1,*param_2,0)" ( identifier , (pointer_expression "*param_2" * identifier) , number_literal ))))) ;) })) (if_statement "if (puVar5 != (undefined8 *)0x0) {\n      bVar1 = *(byte *)((long)puVar5 + 0x3a);\n      if ((bVar1 & 7) != 0) {\n        if ((bVar1 & 7) == 4) goto LAB_00291f80;\n        goto LAB_00292209;\n      }\n      if (((*(int *)(puVar5 + 3) != 0) || ((*(byte *)((long)puVar5 + 0x3b) & 0x20) == 0)) &&\n         (((*(byte *)(puVar5[2] + 0x3c) & 1) == 0 || ((param_5 - 1U < 2 && (-1 < (char)bVar1))))))\n      goto LAB_00292209;\nLAB_00291f80:\n      *param_2 = *puVar5;\n      if (cVar4 == '\0') {\n        *param_3 = puVar5[1];\n        cVar9 = '\0';\n        goto LAB_00291f97;\n      }\n      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,0);\n      *param_3 = lVar8;\n      local_b8 = 0;\n      local_a8 = 0;\n      local_91 = '\0';\n      cVar4 = '\0';\n      goto LAB_00291fab;\n    }" if (parenthesized_expression "(puVar5 != (undefined8 *)0x0)" ( (binary_expression "puVar5 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      bVar1 = *(byte *)((long)puVar5 + 0x3a);\n      if ((bVar1 & 7) != 0) {\n        if ((bVar1 & 7) == 4) goto LAB_00291f80;\n        goto LAB_00292209;\n      }\n      if (((*(int *)(puVar5 + 3) != 0) || ((*(byte *)((long)puVar5 + 0x3b) & 0x20) == 0)) &&\n         (((*(byte *)(puVar5[2] + 0x3c) & 1) == 0 || ((param_5 - 1U < 2 && (-1 < (char)bVar1))))))\n      goto LAB_00292209;\nLAB_00291f80:\n      *param_2 = *puVar5;\n      if (cVar4 == '\0') {\n        *param_3 = puVar5[1];\n        cVar9 = '\0';\n        goto LAB_00291f97;\n      }\n      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,0);\n      *param_3 = lVar8;\n      local_b8 = 0;\n      local_a8 = 0;\n      local_91 = '\0';\n      cVar4 = '\0';\n      goto LAB_00291fab;\n    }" { (expression_statement "bVar1 = *(byte *)((long)puVar5 + 0x3a);" (assignment_expression "bVar1 = *(byte *)((long)puVar5 + 0x3a)" identifier = (pointer_expression "*(byte *)((long)puVar5 + 0x3a)" * (cast_expression "(byte *)((long)puVar5 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar5 + 0x3a)" ( (binary_expression "(long)puVar5 + 0x3a" (cast_expression "(long)puVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (if_statement "if ((bVar1 & 7) != 0) {\n        if ((bVar1 & 7) == 4) goto LAB_00291f80;\n        goto LAB_00292209;\n      }" if (parenthesized_expression "((bVar1 & 7) != 0)" ( (binary_expression "(bVar1 & 7) != 0" (parenthesized_expression "(bVar1 & 7)" ( (binary_expression "bVar1 & 7" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        if ((bVar1 & 7) == 4) goto LAB_00291f80;\n        goto LAB_00292209;\n      }" { (if_statement "if ((bVar1 & 7) == 4) goto LAB_00291f80;" if (parenthesized_expression "((bVar1 & 7) == 4)" ( (binary_expression "(bVar1 & 7) == 4" (parenthesized_expression "(bVar1 & 7)" ( (binary_expression "bVar1 & 7" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00291f80;" goto statement_identifier ;)) (goto_statement "goto LAB_00292209;" goto statement_identifier ;) })) (if_statement "if (((*(int *)(puVar5 + 3) != 0) || ((*(byte *)((long)puVar5 + 0x3b) & 0x20) == 0)) &&\n         (((*(byte *)(puVar5[2] + 0x3c) & 1) == 0 || ((param_5 - 1U < 2 && (-1 < (char)bVar1))))))\n      goto LAB_00292209;" if (parenthesized_expression "(((*(int *)(puVar5 + 3) != 0) || ((*(byte *)((long)puVar5 + 0x3b) & 0x20) == 0)) &&\n         (((*(byte *)(puVar5[2] + 0x3c) & 1) == 0 || ((param_5 - 1U < 2 && (-1 < (char)bVar1))))))" ( (binary_expression "((*(int *)(puVar5 + 3) != 0) || ((*(byte *)((long)puVar5 + 0x3b) & 0x20) == 0)) &&\n         (((*(byte *)(puVar5[2] + 0x3c) & 1) == 0 || ((param_5 - 1U < 2 && (-1 < (char)bVar1)))))" (parenthesized_expression "((*(int *)(puVar5 + 3) != 0) || ((*(byte *)((long)puVar5 + 0x3b) & 0x20) == 0))" ( (binary_expression "(*(int *)(puVar5 + 3) != 0) || ((*(byte *)((long)puVar5 + 0x3b) & 0x20) == 0)" (parenthesized_expression "(*(int *)(puVar5 + 3) != 0)" ( (binary_expression "*(int *)(puVar5 + 3) != 0" (pointer_expression "*(int *)(puVar5 + 3)" * (cast_expression "(int *)(puVar5 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 3)" ( (binary_expression "puVar5 + 3" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "((*(byte *)((long)puVar5 + 0x3b) & 0x20) == 0)" ( (binary_expression "(*(byte *)((long)puVar5 + 0x3b) & 0x20) == 0" (parenthesized_expression "(*(byte *)((long)puVar5 + 0x3b) & 0x20)" ( (binary_expression "*(byte *)((long)puVar5 + 0x3b) & 0x20" (pointer_expression "*(byte *)((long)puVar5 + 0x3b)" * (cast_expression "(byte *)((long)puVar5 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar5 + 0x3b)" ( (binary_expression "(long)puVar5 + 0x3b" (cast_expression "(long)puVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "(((*(byte *)(puVar5[2] + 0x3c) & 1) == 0 || ((param_5 - 1U < 2 && (-1 < (char)bVar1)))))" ( (parenthesized_expression "((*(byte *)(puVar5[2] + 0x3c) & 1) == 0 || ((param_5 - 1U < 2 && (-1 < (char)bVar1))))" ( (binary_expression "(*(byte *)(puVar5[2] + 0x3c) & 1) == 0 || ((param_5 - 1U < 2 && (-1 < (char)bVar1)))" (binary_expression "(*(byte *)(puVar5[2] + 0x3c) & 1) == 0" (parenthesized_expression "(*(byte *)(puVar5[2] + 0x3c) & 1)" ( (binary_expression "*(byte *)(puVar5[2] + 0x3c) & 1" (pointer_expression "*(byte *)(puVar5[2] + 0x3c)" * (cast_expression "(byte *)(puVar5[2] + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5[2] + 0x3c)" ( (binary_expression "puVar5[2] + 0x3c" (subscript_expression "puVar5[2]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) == number_literal) || (parenthesized_expression "((param_5 - 1U < 2 && (-1 < (char)bVar1)))" ( (parenthesized_expression "(param_5 - 1U < 2 && (-1 < (char)bVar1))" ( (binary_expression "param_5 - 1U < 2 && (-1 < (char)bVar1)" (binary_expression "param_5 - 1U < 2" (binary_expression "param_5 - 1U" identifier - number_literal) < number_literal) && (parenthesized_expression "(-1 < (char)bVar1)" ( (binary_expression "-1 < (char)bVar1" number_literal < (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier)) ))) )) ))) )) ))) )) (goto_statement "goto LAB_00292209;" goto statement_identifier ;)) (labeled_statement "LAB_00291f80:\n      *param_2 = *puVar5;" statement_identifier : (expression_statement "*param_2 = *puVar5;" (assignment_expression "*param_2 = *puVar5" (pointer_expression "*param_2" * identifier) = (pointer_expression "*puVar5" * identifier)) ;)) (if_statement "if (cVar4 == '\0') {\n        *param_3 = puVar5[1];\n        cVar9 = '\0';\n        goto LAB_00291f97;\n      }" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        *param_3 = puVar5[1];\n        cVar9 = '\0';\n        goto LAB_00291f97;\n      }" { (expression_statement "*param_3 = puVar5[1];" (assignment_expression "*param_3 = puVar5[1]" (pointer_expression "*param_3" * identifier) = (subscript_expression "puVar5[1]" identifier [ number_literal ])) ;) (expression_statement "cVar9 = '\0';" (assignment_expression "cVar9 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (goto_statement "goto LAB_00291f97;" goto statement_identifier ;) })) (expression_statement "lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,0);" (assignment_expression "lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,0)" identifier = (call_expression "FUN_00280180(param_1 + 0x68,*param_3,1,0)" identifier (argument_list "(param_1 + 0x68,*param_3,1,0)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) , (pointer_expression "*param_3" * identifier) , number_literal , number_literal )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (expression_statement "local_a8 = 0;" (assignment_expression "local_a8 = 0" identifier = number_literal) ;) (expression_statement "local_91 = '\0';" (assignment_expression "local_91 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "cVar4 = '\0';" (assignment_expression "cVar4 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (goto_statement "goto LAB_00291fab;" goto statement_identifier ;) })) (labeled_statement "LAB_00292209:\n    pauVar6 = (undefined1 (*) [16])0x0;" statement_identifier : (expression_statement "pauVar6 = (undefined1 (*) [16])0x0;" (assignment_expression "pauVar6 = (undefined1 (*) [16])0x0" identifier = (cast_expression "(undefined1 (*) [16])0x0" ( (type_descriptor "undefined1 (*) [16]" type_identifier (abstract_array_declarator "(*) [16]" (abstract_parenthesized_declarator "(*)" ( (abstract_pointer_declarator "*" *) )) [ number_literal ])) ) number_literal)) ;)) }) (else_clause "else {\n    cVar4 = '\0';\n    cVar9 = '\0';\n    if (param_4 != '\0') goto LAB_00291f1e;\nLAB_0029205d:\n    uVar7 = FUN_00280180(param_1 + 0x68,uVar7,1,&local_88);\n    *param_2 = uVar7;\n    local_80 = 0;\n    if (*param_3 != 0) {\n      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,&local_80);\n      *param_3 = lVar8;\n    }\n    local_78 = local_88;\n    local_68 = 0;\n    local_70 = local_80;\n    local_a8 = FUN_0028dab0(param_1 + 0x30,&local_78);\n    local_91 = '\0';\n    local_b8 = 0;\n    if (cVar9 != '\0') {\n      local_70 = 0;\n      local_68 = 0;\n      local_78 = local_88;\n      local_b8 = FUN_0028dab0(param_1 + 0x30,&local_78);\n      local_91 = extraout_DL_00;\n    }\n    puVar5 = *(undefined8 **)(local_a8 + 0x18);\n    if (extraout_DL == '\0') {\n      if (puVar5 == (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x75a,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\nLAB_00291f97:\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = '\0';\n        cVar4 = cVar9;\n      }\n      else {\n        uVar7 = FUN_002827c0(puVar5);\n        FUN_0028c430(param_1,uVar7,local_91,local_b8);\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = '\0';\n      }\n    }\n    else {\n      if (puVar5 != (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x768,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\n        local_b8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = cVar9;\n      }\n      else {\n        cVar4 = local_91;\n        if ((local_91 == '\0') &&\n           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0)) {\n          local_b8 = 0;\n          *param_7 = 1;\n          puVar5 = puVar3;\n          cVar4 = '\0';\n        }\n      }\n    }\nLAB_00291fab:\n    plVar2 = *(long **)(PTR_DAT_004586c8 + 0x18);\n    if (plVar2 == (long *)0x0) {\n                    \n      FUN_0018dcf0("../../gold/parameters.h",0x69,"target");\n    }\n    if (*(char *)(plVar2[1] + 0xc) == '\0') {\n      pauVar6 = (undefined1 (*) [16])FUN_002ee780(0x50);\n      *pauVar6 = (undefined1  [16])0x0;\n      pauVar6[1] = (undefined1  [16])0x0;\n      pauVar6[2] = (undefined1  [16])0x0;\n      pauVar6[3] = (undefined1  [16])0x0;\n    }\n    else {\n      pauVar6 = (undefined1 (*) [16])(**(code **)(*plVar2 + 0x150))(plVar2,*param_2,0,0,0,0);\n      if (pauVar6 == (undefined1 (*) [16])0x0) goto LAB_00292209;\n    }\n    if (local_91 == '\0') {\n      if (puVar5 == (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x794,"define_special_symbol");\n      }\n    }\n    else {\n      *(undefined1 (**) [16])(local_a8 + 0x18) = pauVar6;\n    }\n    if (cVar4 != '\0') {\n      *(undefined1 (**) [16])(local_b8 + 0x18) = pauVar6;\n    }\n    uVar7 = FUN_002827c0(puVar5);\n    *param_6 = uVar7;\n  }" else (compound_statement "{\n    cVar4 = '\0';\n    cVar9 = '\0';\n    if (param_4 != '\0') goto LAB_00291f1e;\nLAB_0029205d:\n    uVar7 = FUN_00280180(param_1 + 0x68,uVar7,1,&local_88);\n    *param_2 = uVar7;\n    local_80 = 0;\n    if (*param_3 != 0) {\n      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,&local_80);\n      *param_3 = lVar8;\n    }\n    local_78 = local_88;\n    local_68 = 0;\n    local_70 = local_80;\n    local_a8 = FUN_0028dab0(param_1 + 0x30,&local_78);\n    local_91 = '\0';\n    local_b8 = 0;\n    if (cVar9 != '\0') {\n      local_70 = 0;\n      local_68 = 0;\n      local_78 = local_88;\n      local_b8 = FUN_0028dab0(param_1 + 0x30,&local_78);\n      local_91 = extraout_DL_00;\n    }\n    puVar5 = *(undefined8 **)(local_a8 + 0x18);\n    if (extraout_DL == '\0') {\n      if (puVar5 == (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x75a,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\nLAB_00291f97:\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = '\0';\n        cVar4 = cVar9;\n      }\n      else {\n        uVar7 = FUN_002827c0(puVar5);\n        FUN_0028c430(param_1,uVar7,local_91,local_b8);\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = '\0';\n      }\n    }\n    else {\n      if (puVar5 != (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x768,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\n        local_b8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = cVar9;\n      }\n      else {\n        cVar4 = local_91;\n        if ((local_91 == '\0') &&\n           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0)) {\n          local_b8 = 0;\n          *param_7 = 1;\n          puVar5 = puVar3;\n          cVar4 = '\0';\n        }\n      }\n    }\nLAB_00291fab:\n    plVar2 = *(long **)(PTR_DAT_004586c8 + 0x18);\n    if (plVar2 == (long *)0x0) {\n                    \n      FUN_0018dcf0("../../gold/parameters.h",0x69,"target");\n    }\n    if (*(char *)(plVar2[1] + 0xc) == '\0') {\n      pauVar6 = (undefined1 (*) [16])FUN_002ee780(0x50);\n      *pauVar6 = (undefined1  [16])0x0;\n      pauVar6[1] = (undefined1  [16])0x0;\n      pauVar6[2] = (undefined1  [16])0x0;\n      pauVar6[3] = (undefined1  [16])0x0;\n    }\n    else {\n      pauVar6 = (undefined1 (*) [16])(**(code **)(*plVar2 + 0x150))(plVar2,*param_2,0,0,0,0);\n      if (pauVar6 == (undefined1 (*) [16])0x0) goto LAB_00292209;\n    }\n    if (local_91 == '\0') {\n      if (puVar5 == (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x794,"define_special_symbol");\n      }\n    }\n    else {\n      *(undefined1 (**) [16])(local_a8 + 0x18) = pauVar6;\n    }\n    if (cVar4 != '\0') {\n      *(undefined1 (**) [16])(local_b8 + 0x18) = pauVar6;\n    }\n    uVar7 = FUN_002827c0(puVar5);\n    *param_6 = uVar7;\n  }" { (expression_statement "cVar4 = '\0';" (assignment_expression "cVar4 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "cVar9 = '\0';" (assignment_expression "cVar9 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (param_4 != '\0') goto LAB_00291f1e;" if (parenthesized_expression "(param_4 != '\0')" ( (binary_expression "param_4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00291f1e;" goto statement_identifier ;)) (labeled_statement "LAB_0029205d:\n    uVar7 = FUN_00280180(param_1 + 0x68,uVar7,1,&local_88);" statement_identifier : (expression_statement "uVar7 = FUN_00280180(param_1 + 0x68,uVar7,1,&local_88);" (assignment_expression "uVar7 = FUN_00280180(param_1 + 0x68,uVar7,1,&local_88)" identifier = (call_expression "FUN_00280180(param_1 + 0x68,uVar7,1,&local_88)" identifier (argument_list "(param_1 + 0x68,uVar7,1,&local_88)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) , identifier , number_literal , (pointer_expression "&local_88" & identifier) )))) ;)) (expression_statement "*param_2 = uVar7;" (assignment_expression "*param_2 = uVar7" (pointer_expression "*param_2" * identifier) = identifier) ;) (expression_statement "local_80 = 0;" (assignment_expression "local_80 = 0" identifier = number_literal) ;) (if_statement "if (*param_3 != 0) {\n      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,&local_80);\n      *param_3 = lVar8;\n    }" if (parenthesized_expression "(*param_3 != 0)" ( (binary_expression "*param_3 != 0" (pointer_expression "*param_3" * identifier) != number_literal) )) (compound_statement "{\n      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,&local_80);\n      *param_3 = lVar8;\n    }" { (expression_statement "lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,&local_80);" (assignment_expression "lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,&local_80)" identifier = (call_expression "FUN_00280180(param_1 + 0x68,*param_3,1,&local_80)" identifier (argument_list "(param_1 + 0x68,*param_3,1,&local_80)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) , (pointer_expression "*param_3" * identifier) , number_literal , (pointer_expression "&local_80" & identifier) )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) })) (expression_statement "local_78 = local_88;" (assignment_expression "local_78 = local_88" identifier = identifier) ;) (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" identifier = number_literal) ;) (expression_statement "local_70 = local_80;" (assignment_expression "local_70 = local_80" identifier = identifier) ;) (expression_statement "local_a8 = FUN_0028dab0(param_1 + 0x30,&local_78);" (assignment_expression "local_a8 = FUN_0028dab0(param_1 + 0x30,&local_78)" identifier = (call_expression "FUN_0028dab0(param_1 + 0x30,&local_78)" identifier (argument_list "(param_1 + 0x30,&local_78)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) , (pointer_expression "&local_78" & identifier) )))) ;) (expression_statement "local_91 = '\0';" (assignment_expression "local_91 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (if_statement "if (cVar9 != '\0') {\n      local_70 = 0;\n      local_68 = 0;\n      local_78 = local_88;\n      local_b8 = FUN_0028dab0(param_1 + 0x30,&local_78);\n      local_91 = extraout_DL_00;\n    }" if (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      local_70 = 0;\n      local_68 = 0;\n      local_78 = local_88;\n      local_b8 = FUN_0028dab0(param_1 + 0x30,&local_78);\n      local_91 = extraout_DL_00;\n    }" { (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" identifier = number_literal) ;) (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" identifier = number_literal) ;) (expression_statement "local_78 = local_88;" (assignment_expression "local_78 = local_88" identifier = identifier) ;) (expression_statement "local_b8 = FUN_0028dab0(param_1 + 0x30,&local_78);" (assignment_expression "local_b8 = FUN_0028dab0(param_1 + 0x30,&local_78)" identifier = (call_expression "FUN_0028dab0(param_1 + 0x30,&local_78)" identifier (argument_list "(param_1 + 0x30,&local_78)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) , (pointer_expression "&local_78" & identifier) )))) ;) (expression_statement "local_91 = extraout_DL_00;" (assignment_expression "local_91 = extraout_DL_00" identifier = identifier) ;) })) (expression_statement "puVar5 = *(undefined8 **)(local_a8 + 0x18);" (assignment_expression "puVar5 = *(undefined8 **)(local_a8 + 0x18)" identifier = (pointer_expression "*(undefined8 **)(local_a8 + 0x18)" * (cast_expression "(undefined8 **)(local_a8 + 0x18)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_a8 + 0x18)" ( (binary_expression "local_a8 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (extraout_DL == '\0') {\n      if (puVar5 == (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x75a,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\nLAB_00291f97:\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = '\0';\n        cVar4 = cVar9;\n      }\n      else {\n        uVar7 = FUN_002827c0(puVar5);\n        FUN_0028c430(param_1,uVar7,local_91,local_b8);\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = '\0';\n      }\n    }\n    else {\n      if (puVar5 != (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x768,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\n        local_b8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = cVar9;\n      }\n      else {\n        cVar4 = local_91;\n        if ((local_91 == '\0') &&\n           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0)) {\n          local_b8 = 0;\n          *param_7 = 1;\n          puVar5 = puVar3;\n          cVar4 = '\0';\n        }\n      }\n    }" if (parenthesized_expression "(extraout_DL == '\0')" ( (binary_expression "extraout_DL == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if (puVar5 == (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x75a,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\nLAB_00291f97:\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = '\0';\n        cVar4 = cVar9;\n      }\n      else {\n        uVar7 = FUN_002827c0(puVar5);\n        FUN_0028c430(param_1,uVar7,local_91,local_b8);\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = '\0';\n      }\n    }" { (if_statement "if (puVar5 == (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x75a,"define_special_symbol");\n      }" if (parenthesized_expression "(puVar5 == (undefined8 *)0x0)" ( (binary_expression "puVar5 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x75a,"define_special_symbol");\n      }" { (expression_statement "FUN_0018dcf0("../../gold/symtab.cc",0x75a,"define_special_symbol");" (call_expression "FUN_0018dcf0("../../gold/symtab.cc",0x75a,"define_special_symbol")" identifier (argument_list "("../../gold/symtab.cc",0x75a,"define_special_symbol")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""define_special_symbol"" " string_content ") ))) ;) })) (if_statement "if (cVar9 == '\0') {\nLAB_00291f97:\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = '\0';\n        cVar4 = cVar9;\n      }\n      else {\n        uVar7 = FUN_002827c0(puVar5);\n        FUN_0028c430(param_1,uVar7,local_91,local_b8);\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = '\0';\n      }" if (parenthesized_expression "(cVar9 == '\0')" ( (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_00291f97:\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = '\0';\n        cVar4 = cVar9;\n      }" { (labeled_statement "LAB_00291f97:\n        local_b8 = 0;" statement_identifier : (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;)) (expression_statement "local_a8 = 0;" (assignment_expression "local_a8 = 0" identifier = number_literal) ;) (expression_statement "local_91 = '\0';" (assignment_expression "local_91 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "cVar4 = cVar9;" (assignment_expression "cVar4 = cVar9" identifier = identifier) ;) }) (else_clause "else {\n        uVar7 = FUN_002827c0(puVar5);\n        FUN_0028c430(param_1,uVar7,local_91,local_b8);\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = '\0';\n      }" else (compound_statement "{\n        uVar7 = FUN_002827c0(puVar5);\n        FUN_0028c430(param_1,uVar7,local_91,local_b8);\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = '\0';\n      }" { (expression_statement "uVar7 = FUN_002827c0(puVar5);" (assignment_expression "uVar7 = FUN_002827c0(puVar5)" identifier = (call_expression "FUN_002827c0(puVar5)" identifier (argument_list "(puVar5)" ( identifier )))) ;) (expression_statement "FUN_0028c430(param_1,uVar7,local_91,local_b8);" (call_expression "FUN_0028c430(param_1,uVar7,local_91,local_b8)" identifier (argument_list "(param_1,uVar7,local_91,local_b8)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (expression_statement "local_a8 = 0;" (assignment_expression "local_a8 = 0" identifier = number_literal) ;) (expression_statement "local_91 = extraout_DL;" (assignment_expression "local_91 = extraout_DL" identifier = identifier) ;) (expression_statement "cVar4 = '\0';" (assignment_expression "cVar4 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) }))) }) (else_clause "else {\n      if (puVar5 != (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x768,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\n        local_b8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = cVar9;\n      }\n      else {\n        cVar4 = local_91;\n        if ((local_91 == '\0') &&\n           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0)) {\n          local_b8 = 0;\n          *param_7 = 1;\n          puVar5 = puVar3;\n          cVar4 = '\0';\n        }\n      }\n    }" else (compound_statement "{\n      if (puVar5 != (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x768,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\n        local_b8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = cVar9;\n      }\n      else {\n        cVar4 = local_91;\n        if ((local_91 == '\0') &&\n           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0)) {\n          local_b8 = 0;\n          *param_7 = 1;\n          puVar5 = puVar3;\n          cVar4 = '\0';\n        }\n      }\n    }" { (if_statement "if (puVar5 != (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x768,"define_special_symbol");\n      }" if (parenthesized_expression "(puVar5 != (undefined8 *)0x0)" ( (binary_expression "puVar5 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x768,"define_special_symbol");\n      }" { (expression_statement "FUN_0018dcf0("../../gold/symtab.cc",0x768,"define_special_symbol");" (call_expression "FUN_0018dcf0("../../gold/symtab.cc",0x768,"define_special_symbol")" identifier (argument_list "("../../gold/symtab.cc",0x768,"define_special_symbol")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""define_special_symbol"" " string_content ") ))) ;) })) (if_statement "if (cVar9 == '\0') {\n        local_b8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = cVar9;\n      }\n      else {\n        cVar4 = local_91;\n        if ((local_91 == '\0') &&\n           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0)) {\n          local_b8 = 0;\n          *param_7 = 1;\n          puVar5 = puVar3;\n          cVar4 = '\0';\n        }\n      }" if (parenthesized_expression "(cVar9 == '\0')" ( (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        local_b8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = cVar9;\n      }" { (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (expression_statement "local_91 = extraout_DL;" (assignment_expression "local_91 = extraout_DL" identifier = identifier) ;) (expression_statement "cVar4 = cVar9;" (assignment_expression "cVar4 = cVar9" identifier = identifier) ;) }) (else_clause "else {\n        cVar4 = local_91;\n        if ((local_91 == '\0') &&\n           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0)) {\n          local_b8 = 0;\n          *param_7 = 1;\n          puVar5 = puVar3;\n          cVar4 = '\0';\n        }\n      }" else (compound_statement "{\n        cVar4 = local_91;\n        if ((local_91 == '\0') &&\n           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0)) {\n          local_b8 = 0;\n          *param_7 = 1;\n          puVar5 = puVar3;\n          cVar4 = '\0';\n        }\n      }" { (expression_statement "cVar4 = local_91;" (assignment_expression "cVar4 = local_91" identifier = identifier) ;) (if_statement "if ((local_91 == '\0') &&\n           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0)) {\n          local_b8 = 0;\n          *param_7 = 1;\n          puVar5 = puVar3;\n          cVar4 = '\0';\n        }" if (parenthesized_expression "((local_91 == '\0') &&\n           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0))" ( (binary_expression "(local_91 == '\0') &&\n           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0)" (parenthesized_expression "(local_91 == '\0')" ( (binary_expression "local_91 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0)" ( (comma_expression "puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0" (assignment_expression "puVar3 = *(undefined8 **)(local_b8 + 0x18)" identifier = (pointer_expression "*(undefined8 **)(local_b8 + 0x18)" * (cast_expression "(undefined8 **)(local_b8 + 0x18)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_b8 + 0x18)" ( (binary_expression "local_b8 + 0x18" identifier + number_literal) ))))) , (comma_expression "local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0" (assignment_expression "local_91 = cVar9" identifier = identifier) , (comma_expression "cVar4 = cVar9,\n           puVar3[1] == 0" (assignment_expression "cVar4 = cVar9" identifier = identifier) , (binary_expression "puVar3[1] == 0" (subscript_expression "puVar3[1]" identifier [ number_literal ]) == number_literal)))) ))) )) (compound_statement "{\n          local_b8 = 0;\n          *param_7 = 1;\n          puVar5 = puVar3;\n          cVar4 = '\0';\n        }" { (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (expression_statement "*param_7 = 1;" (assignment_expression "*param_7 = 1" (pointer_expression "*param_7" * identifier) = number_literal) ;) (expression_statement "puVar5 = puVar3;" (assignment_expression "puVar5 = puVar3" identifier = identifier) ;) (expression_statement "cVar4 = '\0';" (assignment_expression "cVar4 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) })) }))) }))) (labeled_statement "LAB_00291fab:\n    plVar2 = *(long **)(PTR_DAT_004586c8 + 0x18);" statement_identifier : (expression_statement "plVar2 = *(long **)(PTR_DAT_004586c8 + 0x18);" (assignment_expression "plVar2 = *(long **)(PTR_DAT_004586c8 + 0x18)" identifier = (pointer_expression "*(long **)(PTR_DAT_004586c8 + 0x18)" * (cast_expression "(long **)(PTR_DAT_004586c8 + 0x18)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_004586c8 + 0x18)" ( (binary_expression "PTR_DAT_004586c8 + 0x18" identifier + number_literal) ))))) ;)) (if_statement "if (plVar2 == (long *)0x0) {\n                    \n      FUN_0018dcf0("../../gold/parameters.h",0x69,"target");\n    }" if (parenthesized_expression "(plVar2 == (long *)0x0)" ( (binary_expression "plVar2 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n      FUN_0018dcf0("../../gold/parameters.h",0x69,"target");\n    }" { (expression_statement "FUN_0018dcf0("../../gold/parameters.h",0x69,"target");" (call_expression "FUN_0018dcf0("../../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 *)(plVar2[1] + 0xc) == '\0') {\n      pauVar6 = (undefined1 (*) [16])FUN_002ee780(0x50);\n      *pauVar6 = (undefined1  [16])0x0;\n      pauVar6[1] = (undefined1  [16])0x0;\n      pauVar6[2] = (undefined1  [16])0x0;\n      pauVar6[3] = (undefined1  [16])0x0;\n    }\n    else {\n      pauVar6 = (undefined1 (*) [16])(**(code **)(*plVar2 + 0x150))(plVar2,*param_2,0,0,0,0);\n      if (pauVar6 == (undefined1 (*) [16])0x0) goto LAB_00292209;\n    }" if (parenthesized_expression "(*(char *)(plVar2[1] + 0xc) == '\0')" ( (binary_expression "*(char *)(plVar2[1] + 0xc) == '\0'" (pointer_expression "*(char *)(plVar2[1] + 0xc)" * (cast_expression "(char *)(plVar2[1] + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2[1] + 0xc)" ( (binary_expression "plVar2[1] + 0xc" (subscript_expression "plVar2[1]" identifier [ number_literal ]) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pauVar6 = (undefined1 (*) [16])FUN_002ee780(0x50);\n      *pauVar6 = (undefined1  [16])0x0;\n      pauVar6[1] = (undefined1  [16])0x0;\n      pauVar6[2] = (undefined1  [16])0x0;\n      pauVar6[3] = (undefined1  [16])0x0;\n    }" { (expression_statement "pauVar6 = (undefined1 (*) [16])FUN_002ee780(0x50);" (assignment_expression "pauVar6 = (undefined1 (*) [16])FUN_002ee780(0x50)" identifier = (cast_expression "(undefined1 (*) [16])FUN_002ee780(0x50)" ( (type_descriptor "undefined1 (*) [16]" type_identifier (abstract_array_declarator "(*) [16]" (abstract_parenthesized_declarator "(*)" ( (abstract_pointer_declarator "*" *) )) [ number_literal ])) ) (call_expression "FUN_002ee780(0x50)" identifier (argument_list "(0x50)" ( number_literal ))))) ;) (expression_statement "*pauVar6 = (undefined1  [16])0x0;" (assignment_expression "*pauVar6 = (undefined1  [16])0x0" (pointer_expression "*pauVar6" * identifier) = (cast_expression "(undefined1  [16])0x0" ( (type_descriptor "undefined1  [16]" type_identifier (abstract_array_declarator "[16]" [ number_literal ])) ) number_literal)) ;) (expression_statement "pauVar6[1] = (undefined1  [16])0x0;" (assignment_expression "pauVar6[1] = (undefined1  [16])0x0" (subscript_expression "pauVar6[1]" identifier [ number_literal ]) = (cast_expression "(undefined1  [16])0x0" ( (type_descriptor "undefined1  [16]" type_identifier (abstract_array_declarator "[16]" [ number_literal ])) ) number_literal)) ;) (expression_statement "pauVar6[2] = (undefined1  [16])0x0;" (assignment_expression "pauVar6[2] = (undefined1  [16])0x0" (subscript_expression "pauVar6[2]" identifier [ number_literal ]) = (cast_expression "(undefined1  [16])0x0" ( (type_descriptor "undefined1  [16]" type_identifier (abstract_array_declarator "[16]" [ number_literal ])) ) number_literal)) ;) (expression_statement "pauVar6[3] = (undefined1  [16])0x0;" (assignment_expression "pauVar6[3] = (undefined1  [16])0x0" (subscript_expression "pauVar6[3]" identifier [ number_literal ]) = (cast_expression "(undefined1  [16])0x0" ( (type_descriptor "undefined1  [16]" type_identifier (abstract_array_declarator "[16]" [ number_literal ])) ) number_literal)) ;) }) (else_clause "else {\n      pauVar6 = (undefined1 (*) [16])(**(code **)(*plVar2 + 0x150))(plVar2,*param_2,0,0,0,0);\n      if (pauVar6 == (undefined1 (*) [16])0x0) goto LAB_00292209;\n    }" else (compound_statement "{\n      pauVar6 = (undefined1 (*) [16])(**(code **)(*plVar2 + 0x150))(plVar2,*param_2,0,0,0,0);\n      if (pauVar6 == (undefined1 (*) [16])0x0) goto LAB_00292209;\n    }" { (expression_statement "pauVar6 = (undefined1 (*) [16])(**(code **)(*plVar2 + 0x150))(plVar2,*param_2,0,0,0,0);" (assignment_expression "pauVar6 = (undefined1 (*) [16])(**(code **)(*plVar2 + 0x150))(plVar2,*param_2,0,0,0,0)" identifier = (cast_expression "(undefined1 (*) [16])(**(code **)(*plVar2 + 0x150))(plVar2,*param_2,0,0,0,0)" ( (type_descriptor "undefined1 (*) [16]" type_identifier (abstract_array_declarator "(*) [16]" (abstract_parenthesized_declarator "(*)" ( (abstract_pointer_declarator "*" *) )) [ number_literal ])) ) (call_expression "(**(code **)(*plVar2 + 0x150))(plVar2,*param_2,0,0,0,0)" (parenthesized_expression "(**(code **)(*plVar2 + 0x150))" ( (pointer_expression "**(code **)(*plVar2 + 0x150)" * (pointer_expression "*(code **)(*plVar2 + 0x150)" * (cast_expression "(code **)(*plVar2 + 0x150)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar2 + 0x150)" ( (binary_expression "*plVar2 + 0x150" (pointer_expression "*plVar2" * identifier) + number_literal) ))))) )) (argument_list "(plVar2,*param_2,0,0,0,0)" ( identifier , (pointer_expression "*param_2" * identifier) , number_literal , number_literal , number_literal , number_literal ))))) ;) (if_statement "if (pauVar6 == (undefined1 (*) [16])0x0) goto LAB_00292209;" if (parenthesized_expression "(pauVar6 == (undefined1 (*) [16])0x0)" ( (binary_expression "pauVar6 == (undefined1 (*) [16])0x0" identifier == (cast_expression "(undefined1 (*) [16])0x0" ( (type_descriptor "undefined1 (*) [16]" type_identifier (abstract_array_declarator "(*) [16]" (abstract_parenthesized_declarator "(*)" ( (abstract_pointer_declarator "*" *) )) [ number_literal ])) ) number_literal)) )) (goto_statement "goto LAB_00292209;" goto statement_identifier ;)) }))) (if_statement "if (local_91 == '\0') {\n      if (puVar5 == (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x794,"define_special_symbol");\n      }\n    }\n    else {\n      *(undefined1 (**) [16])(local_a8 + 0x18) = pauVar6;\n    }" if (parenthesized_expression "(local_91 == '\0')" ( (binary_expression "local_91 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if (puVar5 == (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x794,"define_special_symbol");\n      }\n    }" { (if_statement "if (puVar5 == (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x794,"define_special_symbol");\n      }" if (parenthesized_expression "(puVar5 == (undefined8 *)0x0)" ( (binary_expression "puVar5 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x794,"define_special_symbol");\n      }" { (expression_statement "FUN_0018dcf0("../../gold/symtab.cc",0x794,"define_special_symbol");" (call_expression "FUN_0018dcf0("../../gold/symtab.cc",0x794,"define_special_symbol")" identifier (argument_list "("../../gold/symtab.cc",0x794,"define_special_symbol")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""define_special_symbol"" " string_content ") ))) ;) })) }) (else_clause "else {\n      *(undefined1 (**) [16])(local_a8 + 0x18) = pauVar6;\n    }" else (compound_statement "{\n      *(undefined1 (**) [16])(local_a8 + 0x18) = pauVar6;\n    }" { (expression_statement "*(undefined1 (**) [16])(local_a8 + 0x18) = pauVar6;" (assignment_expression "*(undefined1 (**) [16])(local_a8 + 0x18) = pauVar6" (pointer_expression "*(undefined1 (**) [16])(local_a8 + 0x18)" * (cast_expression "(undefined1 (**) [16])(local_a8 + 0x18)" ( (type_descriptor "undefined1 (**) [16]" type_identifier (abstract_array_declarator "(**) [16]" (abstract_parenthesized_declarator "(**)" ( (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)) )) [ number_literal ])) ) (parenthesized_expression "(local_a8 + 0x18)" ( (binary_expression "local_a8 + 0x18" identifier + number_literal) )))) = identifier) ;) }))) (if_statement "if (cVar4 != '\0') {\n      *(undefined1 (**) [16])(local_b8 + 0x18) = pauVar6;\n    }" if (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      *(undefined1 (**) [16])(local_b8 + 0x18) = pauVar6;\n    }" { (expression_statement "*(undefined1 (**) [16])(local_b8 + 0x18) = pauVar6;" (assignment_expression "*(undefined1 (**) [16])(local_b8 + 0x18) = pauVar6" (pointer_expression "*(undefined1 (**) [16])(local_b8 + 0x18)" * (cast_expression "(undefined1 (**) [16])(local_b8 + 0x18)" ( (type_descriptor "undefined1 (**) [16]" type_identifier (abstract_array_declarator "(**) [16]" (abstract_parenthesized_declarator "(**)" ( (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)) )) [ number_literal ])) ) (parenthesized_expression "(local_b8 + 0x18)" ( (binary_expression "local_b8 + 0x18" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "uVar7 = FUN_002827c0(puVar5);" (assignment_expression "uVar7 = FUN_002827c0(puVar5)" identifier = (call_expression "FUN_002827c0(puVar5)" identifier (argument_list "(puVar5)" ( identifier )))) ;) (expression_statement "*param_6 = uVar7;" (assignment_expression "*param_6 = uVar7" (pointer_expression "*param_6" * identifier) = identifier) ;) }))) (if_statement "if (local_58 != local_48) {\n    FUN_002eff50();\n  }" if (parenthesized_expression "(local_58 != local_48)" ( (binary_expression "local_58 != local_48" identifier != identifier) )) (compound_statement "{\n    FUN_002eff50();\n  }" { (expression_statement "FUN_002eff50();" (call_expression "FUN_002eff50()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return pauVar6;" return identifier ;) })))
(translation_unit (function_definition TYPE (ERROR (array_declarator (parenthesized_declarator ( (pointer_declarator * IDENT) )) [ LIT ])) (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (subscript_expression (call_expression IDENT (argument_list ( (pointer_expression * IDENT) ))) [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (char_literal ' escape_sequence '))) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression * IDENT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (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) )) || (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 (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT) )) == 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 (subscript_expression IDENT [ LIT ]) + LIT) )))) & LIT) )) == LIT) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT - LIT) < LIT) && (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) ))) )) ))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression * IDENT) , LIT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_array_declarator (abstract_parenthesized_declarator ( (abstract_pointer_declarator *) )) [ LIT ])) ) LIT)) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , LIT , (pointer_expression & IDENT) )))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression * IDENT) , LIT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (subscript_expression IDENT [ LIT ]) == LIT)))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) })) }))) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (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 { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_array_declarator (abstract_parenthesized_declarator ( (abstract_pointer_declarator *) )) [ LIT ])) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_array_declarator [ LIT ])) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_array_declarator [ LIT ])) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_array_declarator [ LIT ])) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_array_declarator [ LIT ])) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_array_declarator (abstract_parenthesized_declarator ( (abstract_pointer_declarator *) )) [ LIT ])) ) (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 , (pointer_expression * IDENT) , LIT , LIT , LIT , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_array_declarator (abstract_parenthesized_declarator ( (abstract_pointer_declarator *) )) [ LIT ])) ) LIT)) )) (goto_statement goto statement_identifier ;)) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_array_declarator (abstract_parenthesized_declarator ( (abstract_pointer_declarator * (abstract_pointer_declarator *)) )) [ LIT ])) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_array_declarator (abstract_parenthesized_declarator ( (abstract_pointer_declarator * (abstract_pointer_declarator *)) )) [ LIT ])) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (return_statement return IDENT ;) })))
(function_definition "undefined1 (*) [16]\nFUN_00291ea0(long param_1,undefined8 *param_2,long *param_3,char param_4,int param_5,\n            undefined8 *param_6,undefined1 *param_7,char param_8)\n\n{\n  byte bVar1;\n  long *plVar2;\n  undefined8 *puVar3;\n  char cVar4;\n  undefined8 *puVar5;\n  undefined1 (*pauVar6) [16];\n  undefined8 uVar7;\n  long lVar8;\n  char extraout_DL;\n  char extraout_DL_00;\n  char cVar9;\n  long local_b8;\n  long local_a8;\n  char local_91;\n  undefined8 local_88;\n  undefined8 local_80;\n  undefined8 local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  undefined1 *local_58;\n  long local_50;\n  undefined1 local_48 [24];\n  \n  uVar7 = *param_2;\n  local_58 = local_48;\n  *param_7 = 0;\n  *param_6 = 0;\n  local_50 = 0;\n  local_48[0] = 0;\n  if (param_8 == '\0') {\n    cVar9 = '\0';\n    if (*param_3 == 0) {\n      cVar4 = FUN_00279db0(*(undefined8 *)(param_1 + 0x288),uVar7,&local_58,&local_78);\n      if (((cVar4 != '\0') && (cVar4 = (char)local_78, (char)local_78 != '\0')) &&\n         (cVar4 = cVar9, local_50 != 0)) {\n        *param_3 = (long)local_58;\n        cVar4 = (char)local_78;\n      }\n      cVar9 = cVar4;\n      uVar7 = *param_2;\n    }\n    cVar4 = cVar9;\n    if (param_4 == '\0') goto LAB_0029205d;\nLAB_00291f1e:\n                    \n    puVar5 = (undefined8 *)FUN_00284d90(param_1,uVar7,*param_3);\n    if ((puVar5 == (undefined8 *)0x0) && (cVar4 != '\0')) {\n      puVar5 = (undefined8 *)FUN_00284d90(param_1,*param_2,0);\n    }\n    if (puVar5 != (undefined8 *)0x0) {\n      bVar1 = *(byte *)((long)puVar5 + 0x3a);\n      if ((bVar1 & 7) != 0) {\n        if ((bVar1 & 7) == 4) goto LAB_00291f80;\n        goto LAB_00292209;\n      }\n      if (((*(int *)(puVar5 + 3) != 0) || ((*(byte *)((long)puVar5 + 0x3b) & 0x20) == 0)) &&\n         (((*(byte *)(puVar5[2] + 0x3c) & 1) == 0 || ((param_5 - 1U < 2 && (-1 < (char)bVar1))))))\n      goto LAB_00292209;\nLAB_00291f80:\n      *param_2 = *puVar5;\n      if (cVar4 == '\0') {\n        *param_3 = puVar5[1];\n        cVar9 = '\0';\n        goto LAB_00291f97;\n      }\n      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,0);\n      *param_3 = lVar8;\n      local_b8 = 0;\n      local_a8 = 0;\n      local_91 = '\0';\n      cVar4 = '\0';\n      goto LAB_00291fab;\n    }\nLAB_00292209:\n    pauVar6 = (undefined1 (*) [16])0x0;\n  }\n  else {\n    cVar4 = '\0';\n    cVar9 = '\0';\n    if (param_4 != '\0') goto LAB_00291f1e;\nLAB_0029205d:\n    uVar7 = FUN_00280180(param_1 + 0x68,uVar7,1,&local_88);\n    *param_2 = uVar7;\n    local_80 = 0;\n    if (*param_3 != 0) {\n      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,&local_80);\n      *param_3 = lVar8;\n    }\n    local_78 = local_88;\n    local_68 = 0;\n    local_70 = local_80;\n    local_a8 = FUN_0028dab0(param_1 + 0x30,&local_78);\n    local_91 = '\0';\n    local_b8 = 0;\n    if (cVar9 != '\0') {\n      local_70 = 0;\n      local_68 = 0;\n      local_78 = local_88;\n      local_b8 = FUN_0028dab0(param_1 + 0x30,&local_78);\n      local_91 = extraout_DL_00;\n    }\n    puVar5 = *(undefined8 **)(local_a8 + 0x18);\n    if (extraout_DL == '\0') {\n      if (puVar5 == (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x75a,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\nLAB_00291f97:\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = '\0';\n        cVar4 = cVar9;\n      }\n      else {\n        uVar7 = FUN_002827c0(puVar5);\n        FUN_0028c430(param_1,uVar7,local_91,local_b8);\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = '\0';\n      }\n    }\n    else {\n      if (puVar5 != (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x768,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\n        local_b8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = cVar9;\n      }\n      else {\n        cVar4 = local_91;\n        if ((local_91 == '\0') &&\n           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0)) {\n          local_b8 = 0;\n          *param_7 = 1;\n          puVar5 = puVar3;\n          cVar4 = '\0';\n        }\n      }\n    }\nLAB_00291fab:\n    plVar2 = *(long **)(PTR_DAT_004586c8 + 0x18);\n    if (plVar2 == (long *)0x0) {\n                    \n      FUN_0018dcf0("../../gold/parameters.h",0x69,"target");\n    }\n    if (*(char *)(plVar2[1] + 0xc) == '\0') {\n      pauVar6 = (undefined1 (*) [16])FUN_002ee780(0x50);\n      *pauVar6 = (undefined1  [16])0x0;\n      pauVar6[1] = (undefined1  [16])0x0;\n      pauVar6[2] = (undefined1  [16])0x0;\n      pauVar6[3] = (undefined1  [16])0x0;\n    }\n    else {\n      pauVar6 = (undefined1 (*) [16])(**(code **)(*plVar2 + 0x150))(plVar2,*param_2,0,0,0,0);\n      if (pauVar6 == (undefined1 (*) [16])0x0) goto LAB_00292209;\n    }\n    if (local_91 == '\0') {\n      if (puVar5 == (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x794,"define_special_symbol");\n      }\n    }\n    else {\n      *(undefined1 (**) [16])(local_a8 + 0x18) = pauVar6;\n    }\n    if (cVar4 != '\0') {\n      *(undefined1 (**) [16])(local_b8 + 0x18) = pauVar6;\n    }\n    uVar7 = FUN_002827c0(puVar5);\n    *param_6 = uVar7;\n  }\n  if (local_58 != local_48) {\n    FUN_002eff50();\n  }\n  return pauVar6;\n}" (type_identifier "undefined1") (ERROR "(*) [16]" (array_declarator "(*) [16]" (parenthesized_declarator "(*)" (( "(") (pointer_declarator "*" (* "*") (identifier "")) () ")")) ([ "[") (number_literal "16") (] "]"))) (function_declarator "FUN_00291ea0(long param_1,undefined8 *param_2,long *param_3,char param_4,int param_5,\n            undefined8 *param_6,undefined1 *param_7,char param_8)" (identifier "FUN_00291ea0") (parameter_list "(long param_1,undefined8 *param_2,long *param_3,char param_4,int param_5,\n            undefined8 *param_6,undefined1 *param_7,char param_8)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "undefined8 *param_2" (type_identifier "undefined8") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "long *param_3" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "char param_4" (primitive_type "char") (identifier "param_4")) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) (, ",") (parameter_declaration "undefined8 *param_6" (type_identifier "undefined8") (pointer_declarator "*param_6" (* "*") (identifier "param_6"))) (, ",") (parameter_declaration "undefined1 *param_7" (type_identifier "undefined1") (pointer_declarator "*param_7" (* "*") (identifier "param_7"))) (, ",") (parameter_declaration "char param_8" (primitive_type "char") (identifier "param_8")) () ")"))) (compound_statement "{\n  byte bVar1;\n  long *plVar2;\n  undefined8 *puVar3;\n  char cVar4;\n  undefined8 *puVar5;\n  undefined1 (*pauVar6) [16];\n  undefined8 uVar7;\n  long lVar8;\n  char extraout_DL;\n  char extraout_DL_00;\n  char cVar9;\n  long local_b8;\n  long local_a8;\n  char local_91;\n  undefined8 local_88;\n  undefined8 local_80;\n  undefined8 local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  undefined1 *local_58;\n  long local_50;\n  undefined1 local_48 [24];\n  \n  uVar7 = *param_2;\n  local_58 = local_48;\n  *param_7 = 0;\n  *param_6 = 0;\n  local_50 = 0;\n  local_48[0] = 0;\n  if (param_8 == '\0') {\n    cVar9 = '\0';\n    if (*param_3 == 0) {\n      cVar4 = FUN_00279db0(*(undefined8 *)(param_1 + 0x288),uVar7,&local_58,&local_78);\n      if (((cVar4 != '\0') && (cVar4 = (char)local_78, (char)local_78 != '\0')) &&\n         (cVar4 = cVar9, local_50 != 0)) {\n        *param_3 = (long)local_58;\n        cVar4 = (char)local_78;\n      }\n      cVar9 = cVar4;\n      uVar7 = *param_2;\n    }\n    cVar4 = cVar9;\n    if (param_4 == '\0') goto LAB_0029205d;\nLAB_00291f1e:\n                    \n    puVar5 = (undefined8 *)FUN_00284d90(param_1,uVar7,*param_3);\n    if ((puVar5 == (undefined8 *)0x0) && (cVar4 != '\0')) {\n      puVar5 = (undefined8 *)FUN_00284d90(param_1,*param_2,0);\n    }\n    if (puVar5 != (undefined8 *)0x0) {\n      bVar1 = *(byte *)((long)puVar5 + 0x3a);\n      if ((bVar1 & 7) != 0) {\n        if ((bVar1 & 7) == 4) goto LAB_00291f80;\n        goto LAB_00292209;\n      }\n      if (((*(int *)(puVar5 + 3) != 0) || ((*(byte *)((long)puVar5 + 0x3b) & 0x20) == 0)) &&\n         (((*(byte *)(puVar5[2] + 0x3c) & 1) == 0 || ((param_5 - 1U < 2 && (-1 < (char)bVar1))))))\n      goto LAB_00292209;\nLAB_00291f80:\n      *param_2 = *puVar5;\n      if (cVar4 == '\0') {\n        *param_3 = puVar5[1];\n        cVar9 = '\0';\n        goto LAB_00291f97;\n      }\n      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,0);\n      *param_3 = lVar8;\n      local_b8 = 0;\n      local_a8 = 0;\n      local_91 = '\0';\n      cVar4 = '\0';\n      goto LAB_00291fab;\n    }\nLAB_00292209:\n    pauVar6 = (undefined1 (*) [16])0x0;\n  }\n  else {\n    cVar4 = '\0';\n    cVar9 = '\0';\n    if (param_4 != '\0') goto LAB_00291f1e;\nLAB_0029205d:\n    uVar7 = FUN_00280180(param_1 + 0x68,uVar7,1,&local_88);\n    *param_2 = uVar7;\n    local_80 = 0;\n    if (*param_3 != 0) {\n      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,&local_80);\n      *param_3 = lVar8;\n    }\n    local_78 = local_88;\n    local_68 = 0;\n    local_70 = local_80;\n    local_a8 = FUN_0028dab0(param_1 + 0x30,&local_78);\n    local_91 = '\0';\n    local_b8 = 0;\n    if (cVar9 != '\0') {\n      local_70 = 0;\n      local_68 = 0;\n      local_78 = local_88;\n      local_b8 = FUN_0028dab0(param_1 + 0x30,&local_78);\n      local_91 = extraout_DL_00;\n    }\n    puVar5 = *(undefined8 **)(local_a8 + 0x18);\n    if (extraout_DL == '\0') {\n      if (puVar5 == (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x75a,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\nLAB_00291f97:\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = '\0';\n        cVar4 = cVar9;\n      }\n      else {\n        uVar7 = FUN_002827c0(puVar5);\n        FUN_0028c430(param_1,uVar7,local_91,local_b8);\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = '\0';\n      }\n    }\n    else {\n      if (puVar5 != (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x768,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\n        local_b8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = cVar9;\n      }\n      else {\n        cVar4 = local_91;\n        if ((local_91 == '\0') &&\n           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0)) {\n          local_b8 = 0;\n          *param_7 = 1;\n          puVar5 = puVar3;\n          cVar4 = '\0';\n        }\n      }\n    }\nLAB_00291fab:\n    plVar2 = *(long **)(PTR_DAT_004586c8 + 0x18);\n    if (plVar2 == (long *)0x0) {\n                    \n      FUN_0018dcf0("../../gold/parameters.h",0x69,"target");\n    }\n    if (*(char *)(plVar2[1] + 0xc) == '\0') {\n      pauVar6 = (undefined1 (*) [16])FUN_002ee780(0x50);\n      *pauVar6 = (undefined1  [16])0x0;\n      pauVar6[1] = (undefined1  [16])0x0;\n      pauVar6[2] = (undefined1  [16])0x0;\n      pauVar6[3] = (undefined1  [16])0x0;\n    }\n    else {\n      pauVar6 = (undefined1 (*) [16])(**(code **)(*plVar2 + 0x150))(plVar2,*param_2,0,0,0,0);\n      if (pauVar6 == (undefined1 (*) [16])0x0) goto LAB_00292209;\n    }\n    if (local_91 == '\0') {\n      if (puVar5 == (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x794,"define_special_symbol");\n      }\n    }\n    else {\n      *(undefined1 (**) [16])(local_a8 + 0x18) = pauVar6;\n    }\n    if (cVar4 != '\0') {\n      *(undefined1 (**) [16])(local_b8 + 0x18) = pauVar6;\n    }\n    uVar7 = FUN_002827c0(puVar5);\n    *param_6 = uVar7;\n  }\n  if (local_58 != local_48) {\n    FUN_002eff50();\n  }\n  return pauVar6;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "long *plVar2;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar2" (* "*") (identifier "plVar2")) (; ";")) (declaration "undefined8 *puVar3;" (type_identifier "undefined8") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "char cVar4;" (primitive_type "char") (identifier "cVar4") (; ";")) (declaration "undefined8 *puVar5;" (type_identifier "undefined8") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (expression_statement "undefined1 (*pauVar6) [16];" (subscript_expression "undefined1 (*pauVar6) [16]" (call_expression "undefined1 (*pauVar6)" (identifier "undefined1") (argument_list "(*pauVar6)" (( "(") (pointer_expression "*pauVar6" (* "*") (identifier "pauVar6")) () ")"))) ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "undefined8 uVar7;" (type_identifier "undefined8") (identifier "uVar7") (; ";")) (declaration "long lVar8;" (sized_type_specifier "long" (long "long")) (identifier "lVar8") (; ";")) (declaration "char extraout_DL;" (primitive_type "char") (identifier "extraout_DL") (; ";")) (declaration "char extraout_DL_00;" (primitive_type "char") (identifier "extraout_DL_00") (; ";")) (declaration "char cVar9;" (primitive_type "char") (identifier "cVar9") (; ";")) (declaration "long local_b8;" (sized_type_specifier "long" (long "long")) (identifier "local_b8") (; ";")) (declaration "long local_a8;" (sized_type_specifier "long" (long "long")) (identifier "local_a8") (; ";")) (declaration "char local_91;" (primitive_type "char") (identifier "local_91") (; ";")) (declaration "undefined8 local_88;" (type_identifier "undefined8") (identifier "local_88") (; ";")) (declaration "undefined8 local_80;" (type_identifier "undefined8") (identifier "local_80") (; ";")) (declaration "undefined8 local_78;" (type_identifier "undefined8") (identifier "local_78") (; ";")) (declaration "undefined8 local_70;" (type_identifier "undefined8") (identifier "local_70") (; ";")) (declaration "undefined8 local_68;" (type_identifier "undefined8") (identifier "local_68") (; ";")) (declaration "undefined1 *local_58;" (type_identifier "undefined1") (pointer_declarator "*local_58" (* "*") (identifier "local_58")) (; ";")) (declaration "long local_50;" (sized_type_specifier "long" (long "long")) (identifier "local_50") (; ";")) (declaration "undefined1 local_48 [24];" (type_identifier "undefined1") (array_declarator "local_48 [24]" (identifier "local_48") ([ "[") (number_literal "24") (] "]")) (; ";")) (expression_statement "uVar7 = *param_2;" (assignment_expression "uVar7 = *param_2" (identifier "uVar7") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "local_58 = local_48;" (assignment_expression "local_58 = local_48" (identifier "local_58") (= "=") (identifier "local_48")) (; ";")) (expression_statement "*param_7 = 0;" (assignment_expression "*param_7 = 0" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_6 = 0;" (assignment_expression "*param_6 = 0" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" (identifier "local_50") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_48[0] = 0;" (assignment_expression "local_48[0] = 0" (subscript_expression "local_48[0]" (identifier "local_48") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_8 == '\0') {\n    cVar9 = '\0';\n    if (*param_3 == 0) {\n      cVar4 = FUN_00279db0(*(undefined8 *)(param_1 + 0x288),uVar7,&local_58,&local_78);\n      if (((cVar4 != '\0') && (cVar4 = (char)local_78, (char)local_78 != '\0')) &&\n         (cVar4 = cVar9, local_50 != 0)) {\n        *param_3 = (long)local_58;\n        cVar4 = (char)local_78;\n      }\n      cVar9 = cVar4;\n      uVar7 = *param_2;\n    }\n    cVar4 = cVar9;\n    if (param_4 == '\0') goto LAB_0029205d;\nLAB_00291f1e:\n                    \n    puVar5 = (undefined8 *)FUN_00284d90(param_1,uVar7,*param_3);\n    if ((puVar5 == (undefined8 *)0x0) && (cVar4 != '\0')) {\n      puVar5 = (undefined8 *)FUN_00284d90(param_1,*param_2,0);\n    }\n    if (puVar5 != (undefined8 *)0x0) {\n      bVar1 = *(byte *)((long)puVar5 + 0x3a);\n      if ((bVar1 & 7) != 0) {\n        if ((bVar1 & 7) == 4) goto LAB_00291f80;\n        goto LAB_00292209;\n      }\n      if (((*(int *)(puVar5 + 3) != 0) || ((*(byte *)((long)puVar5 + 0x3b) & 0x20) == 0)) &&\n         (((*(byte *)(puVar5[2] + 0x3c) & 1) == 0 || ((param_5 - 1U < 2 && (-1 < (char)bVar1))))))\n      goto LAB_00292209;\nLAB_00291f80:\n      *param_2 = *puVar5;\n      if (cVar4 == '\0') {\n        *param_3 = puVar5[1];\n        cVar9 = '\0';\n        goto LAB_00291f97;\n      }\n      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,0);\n      *param_3 = lVar8;\n      local_b8 = 0;\n      local_a8 = 0;\n      local_91 = '\0';\n      cVar4 = '\0';\n      goto LAB_00291fab;\n    }\nLAB_00292209:\n    pauVar6 = (undefined1 (*) [16])0x0;\n  }\n  else {\n    cVar4 = '\0';\n    cVar9 = '\0';\n    if (param_4 != '\0') goto LAB_00291f1e;\nLAB_0029205d:\n    uVar7 = FUN_00280180(param_1 + 0x68,uVar7,1,&local_88);\n    *param_2 = uVar7;\n    local_80 = 0;\n    if (*param_3 != 0) {\n      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,&local_80);\n      *param_3 = lVar8;\n    }\n    local_78 = local_88;\n    local_68 = 0;\n    local_70 = local_80;\n    local_a8 = FUN_0028dab0(param_1 + 0x30,&local_78);\n    local_91 = '\0';\n    local_b8 = 0;\n    if (cVar9 != '\0') {\n      local_70 = 0;\n      local_68 = 0;\n      local_78 = local_88;\n      local_b8 = FUN_0028dab0(param_1 + 0x30,&local_78);\n      local_91 = extraout_DL_00;\n    }\n    puVar5 = *(undefined8 **)(local_a8 + 0x18);\n    if (extraout_DL == '\0') {\n      if (puVar5 == (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x75a,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\nLAB_00291f97:\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = '\0';\n        cVar4 = cVar9;\n      }\n      else {\n        uVar7 = FUN_002827c0(puVar5);\n        FUN_0028c430(param_1,uVar7,local_91,local_b8);\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = '\0';\n      }\n    }\n    else {\n      if (puVar5 != (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x768,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\n        local_b8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = cVar9;\n      }\n      else {\n        cVar4 = local_91;\n        if ((local_91 == '\0') &&\n           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0)) {\n          local_b8 = 0;\n          *param_7 = 1;\n          puVar5 = puVar3;\n          cVar4 = '\0';\n        }\n      }\n    }\nLAB_00291fab:\n    plVar2 = *(long **)(PTR_DAT_004586c8 + 0x18);\n    if (plVar2 == (long *)0x0) {\n                    \n      FUN_0018dcf0("../../gold/parameters.h",0x69,"target");\n    }\n    if (*(char *)(plVar2[1] + 0xc) == '\0') {\n      pauVar6 = (undefined1 (*) [16])FUN_002ee780(0x50);\n      *pauVar6 = (undefined1  [16])0x0;\n      pauVar6[1] = (undefined1  [16])0x0;\n      pauVar6[2] = (undefined1  [16])0x0;\n      pauVar6[3] = (undefined1  [16])0x0;\n    }\n    else {\n      pauVar6 = (undefined1 (*) [16])(**(code **)(*plVar2 + 0x150))(plVar2,*param_2,0,0,0,0);\n      if (pauVar6 == (undefined1 (*) [16])0x0) goto LAB_00292209;\n    }\n    if (local_91 == '\0') {\n      if (puVar5 == (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x794,"define_special_symbol");\n      }\n    }\n    else {\n      *(undefined1 (**) [16])(local_a8 + 0x18) = pauVar6;\n    }\n    if (cVar4 != '\0') {\n      *(undefined1 (**) [16])(local_b8 + 0x18) = pauVar6;\n    }\n    uVar7 = FUN_002827c0(puVar5);\n    *param_6 = uVar7;\n  }" (if "if") (parenthesized_expression "(param_8 == '\0')" (( "(") (binary_expression "param_8 == '\0'" (identifier "param_8") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    cVar9 = '\0';\n    if (*param_3 == 0) {\n      cVar4 = FUN_00279db0(*(undefined8 *)(param_1 + 0x288),uVar7,&local_58,&local_78);\n      if (((cVar4 != '\0') && (cVar4 = (char)local_78, (char)local_78 != '\0')) &&\n         (cVar4 = cVar9, local_50 != 0)) {\n        *param_3 = (long)local_58;\n        cVar4 = (char)local_78;\n      }\n      cVar9 = cVar4;\n      uVar7 = *param_2;\n    }\n    cVar4 = cVar9;\n    if (param_4 == '\0') goto LAB_0029205d;\nLAB_00291f1e:\n                    \n    puVar5 = (undefined8 *)FUN_00284d90(param_1,uVar7,*param_3);\n    if ((puVar5 == (undefined8 *)0x0) && (cVar4 != '\0')) {\n      puVar5 = (undefined8 *)FUN_00284d90(param_1,*param_2,0);\n    }\n    if (puVar5 != (undefined8 *)0x0) {\n      bVar1 = *(byte *)((long)puVar5 + 0x3a);\n      if ((bVar1 & 7) != 0) {\n        if ((bVar1 & 7) == 4) goto LAB_00291f80;\n        goto LAB_00292209;\n      }\n      if (((*(int *)(puVar5 + 3) != 0) || ((*(byte *)((long)puVar5 + 0x3b) & 0x20) == 0)) &&\n         (((*(byte *)(puVar5[2] + 0x3c) & 1) == 0 || ((param_5 - 1U < 2 && (-1 < (char)bVar1))))))\n      goto LAB_00292209;\nLAB_00291f80:\n      *param_2 = *puVar5;\n      if (cVar4 == '\0') {\n        *param_3 = puVar5[1];\n        cVar9 = '\0';\n        goto LAB_00291f97;\n      }\n      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,0);\n      *param_3 = lVar8;\n      local_b8 = 0;\n      local_a8 = 0;\n      local_91 = '\0';\n      cVar4 = '\0';\n      goto LAB_00291fab;\n    }\nLAB_00292209:\n    pauVar6 = (undefined1 (*) [16])0x0;\n  }" ({ "{") (expression_statement "cVar9 = '\0';" (assignment_expression "cVar9 = '\0'" (identifier "cVar9") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (if_statement "if (*param_3 == 0) {\n      cVar4 = FUN_00279db0(*(undefined8 *)(param_1 + 0x288),uVar7,&local_58,&local_78);\n      if (((cVar4 != '\0') && (cVar4 = (char)local_78, (char)local_78 != '\0')) &&\n         (cVar4 = cVar9, local_50 != 0)) {\n        *param_3 = (long)local_58;\n        cVar4 = (char)local_78;\n      }\n      cVar9 = cVar4;\n      uVar7 = *param_2;\n    }" (if "if") (parenthesized_expression "(*param_3 == 0)" (( "(") (binary_expression "*param_3 == 0" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      cVar4 = FUN_00279db0(*(undefined8 *)(param_1 + 0x288),uVar7,&local_58,&local_78);\n      if (((cVar4 != '\0') && (cVar4 = (char)local_78, (char)local_78 != '\0')) &&\n         (cVar4 = cVar9, local_50 != 0)) {\n        *param_3 = (long)local_58;\n        cVar4 = (char)local_78;\n      }\n      cVar9 = cVar4;\n      uVar7 = *param_2;\n    }" ({ "{") (expression_statement "cVar4 = FUN_00279db0(*(undefined8 *)(param_1 + 0x288),uVar7,&local_58,&local_78);" (assignment_expression "cVar4 = FUN_00279db0(*(undefined8 *)(param_1 + 0x288),uVar7,&local_58,&local_78)" (identifier "cVar4") (= "=") (call_expression "FUN_00279db0(*(undefined8 *)(param_1 + 0x288),uVar7,&local_58,&local_78)" (identifier "FUN_00279db0") (argument_list "(*(undefined8 *)(param_1 + 0x288),uVar7,&local_58,&local_78)" (( "(") (pointer_expression "*(undefined8 *)(param_1 + 0x288)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x288)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x288)" (( "(") (binary_expression "param_1 + 0x288" (identifier "param_1") (+ "+") (number_literal "0x288")) () ")")))) (, ",") (identifier "uVar7") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) (, ",") (pointer_expression "&local_78" (& "&") (identifier "local_78")) () ")")))) (; ";")) (if_statement "if (((cVar4 != '\0') && (cVar4 = (char)local_78, (char)local_78 != '\0')) &&\n         (cVar4 = cVar9, local_50 != 0)) {\n        *param_3 = (long)local_58;\n        cVar4 = (char)local_78;\n      }" (if "if") (parenthesized_expression "(((cVar4 != '\0') && (cVar4 = (char)local_78, (char)local_78 != '\0')) &&\n         (cVar4 = cVar9, local_50 != 0))" (( "(") (binary_expression "((cVar4 != '\0') && (cVar4 = (char)local_78, (char)local_78 != '\0')) &&\n         (cVar4 = cVar9, local_50 != 0)" (parenthesized_expression "((cVar4 != '\0') && (cVar4 = (char)local_78, (char)local_78 != '\0'))" (( "(") (binary_expression "(cVar4 != '\0') && (cVar4 = (char)local_78, (char)local_78 != '\0')" (parenthesized_expression "(cVar4 != '\0')" (( "(") (binary_expression "cVar4 != '\0'" (identifier "cVar4") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(cVar4 = (char)local_78, (char)local_78 != '\0')" (( "(") (comma_expression "cVar4 = (char)local_78, (char)local_78 != '\0'" (assignment_expression "cVar4 = (char)local_78" (identifier "cVar4") (= "=") (cast_expression "(char)local_78" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_78"))) (, ",") (binary_expression "(char)local_78 != '\0'" (cast_expression "(char)local_78" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_78")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(cVar4 = cVar9, local_50 != 0)" (( "(") (comma_expression "cVar4 = cVar9, local_50 != 0" (assignment_expression "cVar4 = cVar9" (identifier "cVar4") (= "=") (identifier "cVar9")) (, ",") (binary_expression "local_50 != 0" (identifier "local_50") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        *param_3 = (long)local_58;\n        cVar4 = (char)local_78;\n      }" ({ "{") (expression_statement "*param_3 = (long)local_58;" (assignment_expression "*param_3 = (long)local_58" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (cast_expression "(long)local_58" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_58"))) (; ";")) (expression_statement "cVar4 = (char)local_78;" (assignment_expression "cVar4 = (char)local_78" (identifier "cVar4") (= "=") (cast_expression "(char)local_78" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_78"))) (; ";")) (} "}"))) (expression_statement "cVar9 = cVar4;" (assignment_expression "cVar9 = cVar4" (identifier "cVar9") (= "=") (identifier "cVar4")) (; ";")) (expression_statement "uVar7 = *param_2;" (assignment_expression "uVar7 = *param_2" (identifier "uVar7") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (} "}"))) (expression_statement "cVar4 = cVar9;" (assignment_expression "cVar4 = cVar9" (identifier "cVar4") (= "=") (identifier "cVar9")) (; ";")) (if_statement "if (param_4 == '\0') goto LAB_0029205d;" (if "if") (parenthesized_expression "(param_4 == '\0')" (( "(") (binary_expression "param_4 == '\0'" (identifier "param_4") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0029205d;" (goto "goto") (statement_identifier "LAB_0029205d") (; ";"))) (labeled_statement "LAB_00291f1e:\n                    \n    puVar5 = (undefined8 *)FUN_00284d90(param_1,uVar7,*param_3);" (statement_identifier "LAB_00291f1e") (: ":") (expression_statement "puVar5 = (undefined8 *)FUN_00284d90(param_1,uVar7,*param_3);" (assignment_expression "puVar5 = (undefined8 *)FUN_00284d90(param_1,uVar7,*param_3)" (identifier "puVar5") (= "=") (cast_expression "(undefined8 *)FUN_00284d90(param_1,uVar7,*param_3)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00284d90(param_1,uVar7,*param_3)" (identifier "FUN_00284d90") (argument_list "(param_1,uVar7,*param_3)" (( "(") (identifier "param_1") (, ",") (identifier "uVar7") (, ",") (pointer_expression "*param_3" (* "*") (identifier "param_3")) () ")"))))) (; ";"))) (if_statement "if ((puVar5 == (undefined8 *)0x0) && (cVar4 != '\0')) {\n      puVar5 = (undefined8 *)FUN_00284d90(param_1,*param_2,0);\n    }" (if "if") (parenthesized_expression "((puVar5 == (undefined8 *)0x0) && (cVar4 != '\0'))" (( "(") (binary_expression "(puVar5 == (undefined8 *)0x0) && (cVar4 != '\0')" (parenthesized_expression "(puVar5 == (undefined8 *)0x0)" (( "(") (binary_expression "puVar5 == (undefined8 *)0x0" (identifier "puVar5") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(cVar4 != '\0')" (( "(") (binary_expression "cVar4 != '\0'" (identifier "cVar4") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n      puVar5 = (undefined8 *)FUN_00284d90(param_1,*param_2,0);\n    }" ({ "{") (expression_statement "puVar5 = (undefined8 *)FUN_00284d90(param_1,*param_2,0);" (assignment_expression "puVar5 = (undefined8 *)FUN_00284d90(param_1,*param_2,0)" (identifier "puVar5") (= "=") (cast_expression "(undefined8 *)FUN_00284d90(param_1,*param_2,0)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00284d90(param_1,*param_2,0)" (identifier "FUN_00284d90") (argument_list "(param_1,*param_2,0)" (( "(") (identifier "param_1") (, ",") (pointer_expression "*param_2" (* "*") (identifier "param_2")) (, ",") (number_literal "0") () ")"))))) (; ";")) (} "}"))) (if_statement "if (puVar5 != (undefined8 *)0x0) {\n      bVar1 = *(byte *)((long)puVar5 + 0x3a);\n      if ((bVar1 & 7) != 0) {\n        if ((bVar1 & 7) == 4) goto LAB_00291f80;\n        goto LAB_00292209;\n      }\n      if (((*(int *)(puVar5 + 3) != 0) || ((*(byte *)((long)puVar5 + 0x3b) & 0x20) == 0)) &&\n         (((*(byte *)(puVar5[2] + 0x3c) & 1) == 0 || ((param_5 - 1U < 2 && (-1 < (char)bVar1))))))\n      goto LAB_00292209;\nLAB_00291f80:\n      *param_2 = *puVar5;\n      if (cVar4 == '\0') {\n        *param_3 = puVar5[1];\n        cVar9 = '\0';\n        goto LAB_00291f97;\n      }\n      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,0);\n      *param_3 = lVar8;\n      local_b8 = 0;\n      local_a8 = 0;\n      local_91 = '\0';\n      cVar4 = '\0';\n      goto LAB_00291fab;\n    }" (if "if") (parenthesized_expression "(puVar5 != (undefined8 *)0x0)" (( "(") (binary_expression "puVar5 != (undefined8 *)0x0" (identifier "puVar5") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      bVar1 = *(byte *)((long)puVar5 + 0x3a);\n      if ((bVar1 & 7) != 0) {\n        if ((bVar1 & 7) == 4) goto LAB_00291f80;\n        goto LAB_00292209;\n      }\n      if (((*(int *)(puVar5 + 3) != 0) || ((*(byte *)((long)puVar5 + 0x3b) & 0x20) == 0)) &&\n         (((*(byte *)(puVar5[2] + 0x3c) & 1) == 0 || ((param_5 - 1U < 2 && (-1 < (char)bVar1))))))\n      goto LAB_00292209;\nLAB_00291f80:\n      *param_2 = *puVar5;\n      if (cVar4 == '\0') {\n        *param_3 = puVar5[1];\n        cVar9 = '\0';\n        goto LAB_00291f97;\n      }\n      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,0);\n      *param_3 = lVar8;\n      local_b8 = 0;\n      local_a8 = 0;\n      local_91 = '\0';\n      cVar4 = '\0';\n      goto LAB_00291fab;\n    }" ({ "{") (expression_statement "bVar1 = *(byte *)((long)puVar5 + 0x3a);" (assignment_expression "bVar1 = *(byte *)((long)puVar5 + 0x3a)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)((long)puVar5 + 0x3a)" (* "*") (cast_expression "(byte *)((long)puVar5 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar5 + 0x3a)" (( "(") (binary_expression "(long)puVar5 + 0x3a" (cast_expression "(long)puVar5" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar5")) (+ "+") (number_literal "0x3a")) () ")"))))) (; ";")) (if_statement "if ((bVar1 & 7) != 0) {\n        if ((bVar1 & 7) == 4) goto LAB_00291f80;\n        goto LAB_00292209;\n      }" (if "if") (parenthesized_expression "((bVar1 & 7) != 0)" (( "(") (binary_expression "(bVar1 & 7) != 0" (parenthesized_expression "(bVar1 & 7)" (( "(") (binary_expression "bVar1 & 7" (identifier "bVar1") (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if ((bVar1 & 7) == 4) goto LAB_00291f80;\n        goto LAB_00292209;\n      }" ({ "{") (if_statement "if ((bVar1 & 7) == 4) goto LAB_00291f80;" (if "if") (parenthesized_expression "((bVar1 & 7) == 4)" (( "(") (binary_expression "(bVar1 & 7) == 4" (parenthesized_expression "(bVar1 & 7)" (( "(") (binary_expression "bVar1 & 7" (identifier "bVar1") (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "4")) () ")")) (goto_statement "goto LAB_00291f80;" (goto "goto") (statement_identifier "LAB_00291f80") (; ";"))) (goto_statement "goto LAB_00292209;" (goto "goto") (statement_identifier "LAB_00292209") (; ";")) (} "}"))) (if_statement "if (((*(int *)(puVar5 + 3) != 0) || ((*(byte *)((long)puVar5 + 0x3b) & 0x20) == 0)) &&\n         (((*(byte *)(puVar5[2] + 0x3c) & 1) == 0 || ((param_5 - 1U < 2 && (-1 < (char)bVar1))))))\n      goto LAB_00292209;" (if "if") (parenthesized_expression "(((*(int *)(puVar5 + 3) != 0) || ((*(byte *)((long)puVar5 + 0x3b) & 0x20) == 0)) &&\n         (((*(byte *)(puVar5[2] + 0x3c) & 1) == 0 || ((param_5 - 1U < 2 && (-1 < (char)bVar1))))))" (( "(") (binary_expression "((*(int *)(puVar5 + 3) != 0) || ((*(byte *)((long)puVar5 + 0x3b) & 0x20) == 0)) &&\n         (((*(byte *)(puVar5[2] + 0x3c) & 1) == 0 || ((param_5 - 1U < 2 && (-1 < (char)bVar1)))))" (parenthesized_expression "((*(int *)(puVar5 + 3) != 0) || ((*(byte *)((long)puVar5 + 0x3b) & 0x20) == 0))" (( "(") (binary_expression "(*(int *)(puVar5 + 3) != 0) || ((*(byte *)((long)puVar5 + 0x3b) & 0x20) == 0)" (parenthesized_expression "(*(int *)(puVar5 + 3) != 0)" (( "(") (binary_expression "*(int *)(puVar5 + 3) != 0" (pointer_expression "*(int *)(puVar5 + 3)" (* "*") (cast_expression "(int *)(puVar5 + 3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 3)" (( "(") (binary_expression "puVar5 + 3" (identifier "puVar5") (+ "+") (number_literal "3")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(byte *)((long)puVar5 + 0x3b) & 0x20) == 0)" (( "(") (binary_expression "(*(byte *)((long)puVar5 + 0x3b) & 0x20) == 0" (parenthesized_expression "(*(byte *)((long)puVar5 + 0x3b) & 0x20)" (( "(") (binary_expression "*(byte *)((long)puVar5 + 0x3b) & 0x20" (pointer_expression "*(byte *)((long)puVar5 + 0x3b)" (* "*") (cast_expression "(byte *)((long)puVar5 + 0x3b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar5 + 0x3b)" (( "(") (binary_expression "(long)puVar5 + 0x3b" (cast_expression "(long)puVar5" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar5")) (+ "+") (number_literal "0x3b")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(((*(byte *)(puVar5[2] + 0x3c) & 1) == 0 || ((param_5 - 1U < 2 && (-1 < (char)bVar1)))))" (( "(") (parenthesized_expression "((*(byte *)(puVar5[2] + 0x3c) & 1) == 0 || ((param_5 - 1U < 2 && (-1 < (char)bVar1))))" (( "(") (binary_expression "(*(byte *)(puVar5[2] + 0x3c) & 1) == 0 || ((param_5 - 1U < 2 && (-1 < (char)bVar1)))" (binary_expression "(*(byte *)(puVar5[2] + 0x3c) & 1) == 0" (parenthesized_expression "(*(byte *)(puVar5[2] + 0x3c) & 1)" (( "(") (binary_expression "*(byte *)(puVar5[2] + 0x3c) & 1" (pointer_expression "*(byte *)(puVar5[2] + 0x3c)" (* "*") (cast_expression "(byte *)(puVar5[2] + 0x3c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5[2] + 0x3c)" (( "(") (binary_expression "puVar5[2] + 0x3c" (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "0x3c")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) (|| "||") (parenthesized_expression "((param_5 - 1U < 2 && (-1 < (char)bVar1)))" (( "(") (parenthesized_expression "(param_5 - 1U < 2 && (-1 < (char)bVar1))" (( "(") (binary_expression "param_5 - 1U < 2 && (-1 < (char)bVar1)" (binary_expression "param_5 - 1U < 2" (binary_expression "param_5 - 1U" (identifier "param_5") (- "-") (number_literal "1U")) (< "<") (number_literal "2")) (&& "&&") (parenthesized_expression "(-1 < (char)bVar1)" (( "(") (binary_expression "-1 < (char)bVar1" (number_literal "-1") (< "<") (cast_expression "(char)bVar1" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar1"))) () ")"))) () ")")) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_00292209;" (goto "goto") (statement_identifier "LAB_00292209") (; ";"))) (labeled_statement "LAB_00291f80:\n      *param_2 = *puVar5;" (statement_identifier "LAB_00291f80") (: ":") (expression_statement "*param_2 = *puVar5;" (assignment_expression "*param_2 = *puVar5" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (pointer_expression "*puVar5" (* "*") (identifier "puVar5"))) (; ";"))) (if_statement "if (cVar4 == '\0') {\n        *param_3 = puVar5[1];\n        cVar9 = '\0';\n        goto LAB_00291f97;\n      }" (if "if") (parenthesized_expression "(cVar4 == '\0')" (( "(") (binary_expression "cVar4 == '\0'" (identifier "cVar4") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        *param_3 = puVar5[1];\n        cVar9 = '\0';\n        goto LAB_00291f97;\n      }" ({ "{") (expression_statement "*param_3 = puVar5[1];" (assignment_expression "*param_3 = puVar5[1]" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "cVar9 = '\0';" (assignment_expression "cVar9 = '\0'" (identifier "cVar9") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (goto_statement "goto LAB_00291f97;" (goto "goto") (statement_identifier "LAB_00291f97") (; ";")) (} "}"))) (expression_statement "lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,0);" (assignment_expression "lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,0)" (identifier "lVar8") (= "=") (call_expression "FUN_00280180(param_1 + 0x68,*param_3,1,0)" (identifier "FUN_00280180") (argument_list "(param_1 + 0x68,*param_3,1,0)" (( "(") (binary_expression "param_1 + 0x68" (identifier "param_1") (+ "+") (number_literal "0x68")) (, ",") (pointer_expression "*param_3" (* "*") (identifier "param_3")) (, ",") (number_literal "1") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "lVar8")) (; ";")) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" (identifier "local_b8") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_a8 = 0;" (assignment_expression "local_a8 = 0" (identifier "local_a8") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_91 = '\0';" (assignment_expression "local_91 = '\0'" (identifier "local_91") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "cVar4 = '\0';" (assignment_expression "cVar4 = '\0'" (identifier "cVar4") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (goto_statement "goto LAB_00291fab;" (goto "goto") (statement_identifier "LAB_00291fab") (; ";")) (} "}"))) (labeled_statement "LAB_00292209:\n    pauVar6 = (undefined1 (*) [16])0x0;" (statement_identifier "LAB_00292209") (: ":") (expression_statement "pauVar6 = (undefined1 (*) [16])0x0;" (assignment_expression "pauVar6 = (undefined1 (*) [16])0x0" (identifier "pauVar6") (= "=") (cast_expression "(undefined1 (*) [16])0x0" (( "(") (type_descriptor "undefined1 (*) [16]" (type_identifier "undefined1") (abstract_array_declarator "(*) [16]" (abstract_parenthesized_declarator "(*)" (( "(") (abstract_pointer_declarator "*" (* "*")) () ")")) ([ "[") (number_literal "16") (] "]"))) () ")") (number_literal "0x0"))) (; ";"))) (} "}")) (else_clause "else {\n    cVar4 = '\0';\n    cVar9 = '\0';\n    if (param_4 != '\0') goto LAB_00291f1e;\nLAB_0029205d:\n    uVar7 = FUN_00280180(param_1 + 0x68,uVar7,1,&local_88);\n    *param_2 = uVar7;\n    local_80 = 0;\n    if (*param_3 != 0) {\n      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,&local_80);\n      *param_3 = lVar8;\n    }\n    local_78 = local_88;\n    local_68 = 0;\n    local_70 = local_80;\n    local_a8 = FUN_0028dab0(param_1 + 0x30,&local_78);\n    local_91 = '\0';\n    local_b8 = 0;\n    if (cVar9 != '\0') {\n      local_70 = 0;\n      local_68 = 0;\n      local_78 = local_88;\n      local_b8 = FUN_0028dab0(param_1 + 0x30,&local_78);\n      local_91 = extraout_DL_00;\n    }\n    puVar5 = *(undefined8 **)(local_a8 + 0x18);\n    if (extraout_DL == '\0') {\n      if (puVar5 == (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x75a,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\nLAB_00291f97:\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = '\0';\n        cVar4 = cVar9;\n      }\n      else {\n        uVar7 = FUN_002827c0(puVar5);\n        FUN_0028c430(param_1,uVar7,local_91,local_b8);\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = '\0';\n      }\n    }\n    else {\n      if (puVar5 != (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x768,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\n        local_b8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = cVar9;\n      }\n      else {\n        cVar4 = local_91;\n        if ((local_91 == '\0') &&\n           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0)) {\n          local_b8 = 0;\n          *param_7 = 1;\n          puVar5 = puVar3;\n          cVar4 = '\0';\n        }\n      }\n    }\nLAB_00291fab:\n    plVar2 = *(long **)(PTR_DAT_004586c8 + 0x18);\n    if (plVar2 == (long *)0x0) {\n                    \n      FUN_0018dcf0("../../gold/parameters.h",0x69,"target");\n    }\n    if (*(char *)(plVar2[1] + 0xc) == '\0') {\n      pauVar6 = (undefined1 (*) [16])FUN_002ee780(0x50);\n      *pauVar6 = (undefined1  [16])0x0;\n      pauVar6[1] = (undefined1  [16])0x0;\n      pauVar6[2] = (undefined1  [16])0x0;\n      pauVar6[3] = (undefined1  [16])0x0;\n    }\n    else {\n      pauVar6 = (undefined1 (*) [16])(**(code **)(*plVar2 + 0x150))(plVar2,*param_2,0,0,0,0);\n      if (pauVar6 == (undefined1 (*) [16])0x0) goto LAB_00292209;\n    }\n    if (local_91 == '\0') {\n      if (puVar5 == (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x794,"define_special_symbol");\n      }\n    }\n    else {\n      *(undefined1 (**) [16])(local_a8 + 0x18) = pauVar6;\n    }\n    if (cVar4 != '\0') {\n      *(undefined1 (**) [16])(local_b8 + 0x18) = pauVar6;\n    }\n    uVar7 = FUN_002827c0(puVar5);\n    *param_6 = uVar7;\n  }" (else "else") (compound_statement "{\n    cVar4 = '\0';\n    cVar9 = '\0';\n    if (param_4 != '\0') goto LAB_00291f1e;\nLAB_0029205d:\n    uVar7 = FUN_00280180(param_1 + 0x68,uVar7,1,&local_88);\n    *param_2 = uVar7;\n    local_80 = 0;\n    if (*param_3 != 0) {\n      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,&local_80);\n      *param_3 = lVar8;\n    }\n    local_78 = local_88;\n    local_68 = 0;\n    local_70 = local_80;\n    local_a8 = FUN_0028dab0(param_1 + 0x30,&local_78);\n    local_91 = '\0';\n    local_b8 = 0;\n    if (cVar9 != '\0') {\n      local_70 = 0;\n      local_68 = 0;\n      local_78 = local_88;\n      local_b8 = FUN_0028dab0(param_1 + 0x30,&local_78);\n      local_91 = extraout_DL_00;\n    }\n    puVar5 = *(undefined8 **)(local_a8 + 0x18);\n    if (extraout_DL == '\0') {\n      if (puVar5 == (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x75a,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\nLAB_00291f97:\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = '\0';\n        cVar4 = cVar9;\n      }\n      else {\n        uVar7 = FUN_002827c0(puVar5);\n        FUN_0028c430(param_1,uVar7,local_91,local_b8);\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = '\0';\n      }\n    }\n    else {\n      if (puVar5 != (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x768,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\n        local_b8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = cVar9;\n      }\n      else {\n        cVar4 = local_91;\n        if ((local_91 == '\0') &&\n           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0)) {\n          local_b8 = 0;\n          *param_7 = 1;\n          puVar5 = puVar3;\n          cVar4 = '\0';\n        }\n      }\n    }\nLAB_00291fab:\n    plVar2 = *(long **)(PTR_DAT_004586c8 + 0x18);\n    if (plVar2 == (long *)0x0) {\n                    \n      FUN_0018dcf0("../../gold/parameters.h",0x69,"target");\n    }\n    if (*(char *)(plVar2[1] + 0xc) == '\0') {\n      pauVar6 = (undefined1 (*) [16])FUN_002ee780(0x50);\n      *pauVar6 = (undefined1  [16])0x0;\n      pauVar6[1] = (undefined1  [16])0x0;\n      pauVar6[2] = (undefined1  [16])0x0;\n      pauVar6[3] = (undefined1  [16])0x0;\n    }\n    else {\n      pauVar6 = (undefined1 (*) [16])(**(code **)(*plVar2 + 0x150))(plVar2,*param_2,0,0,0,0);\n      if (pauVar6 == (undefined1 (*) [16])0x0) goto LAB_00292209;\n    }\n    if (local_91 == '\0') {\n      if (puVar5 == (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x794,"define_special_symbol");\n      }\n    }\n    else {\n      *(undefined1 (**) [16])(local_a8 + 0x18) = pauVar6;\n    }\n    if (cVar4 != '\0') {\n      *(undefined1 (**) [16])(local_b8 + 0x18) = pauVar6;\n    }\n    uVar7 = FUN_002827c0(puVar5);\n    *param_6 = uVar7;\n  }" ({ "{") (expression_statement "cVar4 = '\0';" (assignment_expression "cVar4 = '\0'" (identifier "cVar4") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "cVar9 = '\0';" (assignment_expression "cVar9 = '\0'" (identifier "cVar9") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (if_statement "if (param_4 != '\0') goto LAB_00291f1e;" (if "if") (parenthesized_expression "(param_4 != '\0')" (( "(") (binary_expression "param_4 != '\0'" (identifier "param_4") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00291f1e;" (goto "goto") (statement_identifier "LAB_00291f1e") (; ";"))) (labeled_statement "LAB_0029205d:\n    uVar7 = FUN_00280180(param_1 + 0x68,uVar7,1,&local_88);" (statement_identifier "LAB_0029205d") (: ":") (expression_statement "uVar7 = FUN_00280180(param_1 + 0x68,uVar7,1,&local_88);" (assignment_expression "uVar7 = FUN_00280180(param_1 + 0x68,uVar7,1,&local_88)" (identifier "uVar7") (= "=") (call_expression "FUN_00280180(param_1 + 0x68,uVar7,1,&local_88)" (identifier "FUN_00280180") (argument_list "(param_1 + 0x68,uVar7,1,&local_88)" (( "(") (binary_expression "param_1 + 0x68" (identifier "param_1") (+ "+") (number_literal "0x68")) (, ",") (identifier "uVar7") (, ",") (number_literal "1") (, ",") (pointer_expression "&local_88" (& "&") (identifier "local_88")) () ")")))) (; ";"))) (expression_statement "*param_2 = uVar7;" (assignment_expression "*param_2 = uVar7" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "local_80 = 0;" (assignment_expression "local_80 = 0" (identifier "local_80") (= "=") (number_literal "0")) (; ";")) (if_statement "if (*param_3 != 0) {\n      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,&local_80);\n      *param_3 = lVar8;\n    }" (if "if") (parenthesized_expression "(*param_3 != 0)" (( "(") (binary_expression "*param_3 != 0" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,&local_80);\n      *param_3 = lVar8;\n    }" ({ "{") (expression_statement "lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,&local_80);" (assignment_expression "lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,&local_80)" (identifier "lVar8") (= "=") (call_expression "FUN_00280180(param_1 + 0x68,*param_3,1,&local_80)" (identifier "FUN_00280180") (argument_list "(param_1 + 0x68,*param_3,1,&local_80)" (( "(") (binary_expression "param_1 + 0x68" (identifier "param_1") (+ "+") (number_literal "0x68")) (, ",") (pointer_expression "*param_3" (* "*") (identifier "param_3")) (, ",") (number_literal "1") (, ",") (pointer_expression "&local_80" (& "&") (identifier "local_80")) () ")")))) (; ";")) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "lVar8")) (; ";")) (} "}"))) (expression_statement "local_78 = local_88;" (assignment_expression "local_78 = local_88" (identifier "local_78") (= "=") (identifier "local_88")) (; ";")) (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" (identifier "local_68") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_70 = local_80;" (assignment_expression "local_70 = local_80" (identifier "local_70") (= "=") (identifier "local_80")) (; ";")) (expression_statement "local_a8 = FUN_0028dab0(param_1 + 0x30,&local_78);" (assignment_expression "local_a8 = FUN_0028dab0(param_1 + 0x30,&local_78)" (identifier "local_a8") (= "=") (call_expression "FUN_0028dab0(param_1 + 0x30,&local_78)" (identifier "FUN_0028dab0") (argument_list "(param_1 + 0x30,&local_78)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) (, ",") (pointer_expression "&local_78" (& "&") (identifier "local_78")) () ")")))) (; ";")) (expression_statement "local_91 = '\0';" (assignment_expression "local_91 = '\0'" (identifier "local_91") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" (identifier "local_b8") (= "=") (number_literal "0")) (; ";")) (if_statement "if (cVar9 != '\0') {\n      local_70 = 0;\n      local_68 = 0;\n      local_78 = local_88;\n      local_b8 = FUN_0028dab0(param_1 + 0x30,&local_78);\n      local_91 = extraout_DL_00;\n    }" (if "if") (parenthesized_expression "(cVar9 != '\0')" (( "(") (binary_expression "cVar9 != '\0'" (identifier "cVar9") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      local_70 = 0;\n      local_68 = 0;\n      local_78 = local_88;\n      local_b8 = FUN_0028dab0(param_1 + 0x30,&local_78);\n      local_91 = extraout_DL_00;\n    }" ({ "{") (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" (identifier "local_70") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" (identifier "local_68") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_78 = local_88;" (assignment_expression "local_78 = local_88" (identifier "local_78") (= "=") (identifier "local_88")) (; ";")) (expression_statement "local_b8 = FUN_0028dab0(param_1 + 0x30,&local_78);" (assignment_expression "local_b8 = FUN_0028dab0(param_1 + 0x30,&local_78)" (identifier "local_b8") (= "=") (call_expression "FUN_0028dab0(param_1 + 0x30,&local_78)" (identifier "FUN_0028dab0") (argument_list "(param_1 + 0x30,&local_78)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) (, ",") (pointer_expression "&local_78" (& "&") (identifier "local_78")) () ")")))) (; ";")) (expression_statement "local_91 = extraout_DL_00;" (assignment_expression "local_91 = extraout_DL_00" (identifier "local_91") (= "=") (identifier "extraout_DL_00")) (; ";")) (} "}"))) (expression_statement "puVar5 = *(undefined8 **)(local_a8 + 0x18);" (assignment_expression "puVar5 = *(undefined8 **)(local_a8 + 0x18)" (identifier "puVar5") (= "=") (pointer_expression "*(undefined8 **)(local_a8 + 0x18)" (* "*") (cast_expression "(undefined8 **)(local_a8 + 0x18)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_a8 + 0x18)" (( "(") (binary_expression "local_a8 + 0x18" (identifier "local_a8") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (extraout_DL == '\0') {\n      if (puVar5 == (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x75a,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\nLAB_00291f97:\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = '\0';\n        cVar4 = cVar9;\n      }\n      else {\n        uVar7 = FUN_002827c0(puVar5);\n        FUN_0028c430(param_1,uVar7,local_91,local_b8);\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = '\0';\n      }\n    }\n    else {\n      if (puVar5 != (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x768,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\n        local_b8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = cVar9;\n      }\n      else {\n        cVar4 = local_91;\n        if ((local_91 == '\0') &&\n           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0)) {\n          local_b8 = 0;\n          *param_7 = 1;\n          puVar5 = puVar3;\n          cVar4 = '\0';\n        }\n      }\n    }" (if "if") (parenthesized_expression "(extraout_DL == '\0')" (( "(") (binary_expression "extraout_DL == '\0'" (identifier "extraout_DL") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      if (puVar5 == (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x75a,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\nLAB_00291f97:\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = '\0';\n        cVar4 = cVar9;\n      }\n      else {\n        uVar7 = FUN_002827c0(puVar5);\n        FUN_0028c430(param_1,uVar7,local_91,local_b8);\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = '\0';\n      }\n    }" ({ "{") (if_statement "if (puVar5 == (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x75a,"define_special_symbol");\n      }" (if "if") (parenthesized_expression "(puVar5 == (undefined8 *)0x0)" (( "(") (binary_expression "puVar5 == (undefined8 *)0x0" (identifier "puVar5") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x75a,"define_special_symbol");\n      }" ({ "{") (expression_statement "FUN_0018dcf0("../../gold/symtab.cc",0x75a,"define_special_symbol");" (call_expression "FUN_0018dcf0("../../gold/symtab.cc",0x75a,"define_special_symbol")" (identifier "FUN_0018dcf0") (argument_list "("../../gold/symtab.cc",0x75a,"define_special_symbol")" (( "(") (string_literal ""../../gold/symtab.cc"" (" """) (string_content "../../gold/symtab.cc") (" """)) (, ",") (number_literal "0x75a") (, ",") (string_literal ""define_special_symbol"" (" """) (string_content "define_special_symbol") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (cVar9 == '\0') {\nLAB_00291f97:\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = '\0';\n        cVar4 = cVar9;\n      }\n      else {\n        uVar7 = FUN_002827c0(puVar5);\n        FUN_0028c430(param_1,uVar7,local_91,local_b8);\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = '\0';\n      }" (if "if") (parenthesized_expression "(cVar9 == '\0')" (( "(") (binary_expression "cVar9 == '\0'" (identifier "cVar9") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_00291f97:\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = '\0';\n        cVar4 = cVar9;\n      }" ({ "{") (labeled_statement "LAB_00291f97:\n        local_b8 = 0;" (statement_identifier "LAB_00291f97") (: ":") (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" (identifier "local_b8") (= "=") (number_literal "0")) (; ";"))) (expression_statement "local_a8 = 0;" (assignment_expression "local_a8 = 0" (identifier "local_a8") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_91 = '\0';" (assignment_expression "local_91 = '\0'" (identifier "local_91") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "cVar4 = cVar9;" (assignment_expression "cVar4 = cVar9" (identifier "cVar4") (= "=") (identifier "cVar9")) (; ";")) (} "}")) (else_clause "else {\n        uVar7 = FUN_002827c0(puVar5);\n        FUN_0028c430(param_1,uVar7,local_91,local_b8);\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = '\0';\n      }" (else "else") (compound_statement "{\n        uVar7 = FUN_002827c0(puVar5);\n        FUN_0028c430(param_1,uVar7,local_91,local_b8);\n        local_b8 = 0;\n        local_a8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = '\0';\n      }" ({ "{") (expression_statement "uVar7 = FUN_002827c0(puVar5);" (assignment_expression "uVar7 = FUN_002827c0(puVar5)" (identifier "uVar7") (= "=") (call_expression "FUN_002827c0(puVar5)" (identifier "FUN_002827c0") (argument_list "(puVar5)" (( "(") (identifier "puVar5") () ")")))) (; ";")) (expression_statement "FUN_0028c430(param_1,uVar7,local_91,local_b8);" (call_expression "FUN_0028c430(param_1,uVar7,local_91,local_b8)" (identifier "FUN_0028c430") (argument_list "(param_1,uVar7,local_91,local_b8)" (( "(") (identifier "param_1") (, ",") (identifier "uVar7") (, ",") (identifier "local_91") (, ",") (identifier "local_b8") () ")"))) (; ";")) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" (identifier "local_b8") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_a8 = 0;" (assignment_expression "local_a8 = 0" (identifier "local_a8") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_91 = extraout_DL;" (assignment_expression "local_91 = extraout_DL" (identifier "local_91") (= "=") (identifier "extraout_DL")) (; ";")) (expression_statement "cVar4 = '\0';" (assignment_expression "cVar4 = '\0'" (identifier "cVar4") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      if (puVar5 != (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x768,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\n        local_b8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = cVar9;\n      }\n      else {\n        cVar4 = local_91;\n        if ((local_91 == '\0') &&\n           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0)) {\n          local_b8 = 0;\n          *param_7 = 1;\n          puVar5 = puVar3;\n          cVar4 = '\0';\n        }\n      }\n    }" (else "else") (compound_statement "{\n      if (puVar5 != (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x768,"define_special_symbol");\n      }\n      if (cVar9 == '\0') {\n        local_b8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = cVar9;\n      }\n      else {\n        cVar4 = local_91;\n        if ((local_91 == '\0') &&\n           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0)) {\n          local_b8 = 0;\n          *param_7 = 1;\n          puVar5 = puVar3;\n          cVar4 = '\0';\n        }\n      }\n    }" ({ "{") (if_statement "if (puVar5 != (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x768,"define_special_symbol");\n      }" (if "if") (parenthesized_expression "(puVar5 != (undefined8 *)0x0)" (( "(") (binary_expression "puVar5 != (undefined8 *)0x0" (identifier "puVar5") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x768,"define_special_symbol");\n      }" ({ "{") (expression_statement "FUN_0018dcf0("../../gold/symtab.cc",0x768,"define_special_symbol");" (call_expression "FUN_0018dcf0("../../gold/symtab.cc",0x768,"define_special_symbol")" (identifier "FUN_0018dcf0") (argument_list "("../../gold/symtab.cc",0x768,"define_special_symbol")" (( "(") (string_literal ""../../gold/symtab.cc"" (" """) (string_content "../../gold/symtab.cc") (" """)) (, ",") (number_literal "0x768") (, ",") (string_literal ""define_special_symbol"" (" """) (string_content "define_special_symbol") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (cVar9 == '\0') {\n        local_b8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = cVar9;\n      }\n      else {\n        cVar4 = local_91;\n        if ((local_91 == '\0') &&\n           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0)) {\n          local_b8 = 0;\n          *param_7 = 1;\n          puVar5 = puVar3;\n          cVar4 = '\0';\n        }\n      }" (if "if") (parenthesized_expression "(cVar9 == '\0')" (( "(") (binary_expression "cVar9 == '\0'" (identifier "cVar9") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        local_b8 = 0;\n        local_91 = extraout_DL;\n        cVar4 = cVar9;\n      }" ({ "{") (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" (identifier "local_b8") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_91 = extraout_DL;" (assignment_expression "local_91 = extraout_DL" (identifier "local_91") (= "=") (identifier "extraout_DL")) (; ";")) (expression_statement "cVar4 = cVar9;" (assignment_expression "cVar4 = cVar9" (identifier "cVar4") (= "=") (identifier "cVar9")) (; ";")) (} "}")) (else_clause "else {\n        cVar4 = local_91;\n        if ((local_91 == '\0') &&\n           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0)) {\n          local_b8 = 0;\n          *param_7 = 1;\n          puVar5 = puVar3;\n          cVar4 = '\0';\n        }\n      }" (else "else") (compound_statement "{\n        cVar4 = local_91;\n        if ((local_91 == '\0') &&\n           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0)) {\n          local_b8 = 0;\n          *param_7 = 1;\n          puVar5 = puVar3;\n          cVar4 = '\0';\n        }\n      }" ({ "{") (expression_statement "cVar4 = local_91;" (assignment_expression "cVar4 = local_91" (identifier "cVar4") (= "=") (identifier "local_91")) (; ";")) (if_statement "if ((local_91 == '\0') &&\n           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0)) {\n          local_b8 = 0;\n          *param_7 = 1;\n          puVar5 = puVar3;\n          cVar4 = '\0';\n        }" (if "if") (parenthesized_expression "((local_91 == '\0') &&\n           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0))" (( "(") (binary_expression "(local_91 == '\0') &&\n           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0)" (parenthesized_expression "(local_91 == '\0')" (( "(") (binary_expression "local_91 == '\0'" (identifier "local_91") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0)" (( "(") (comma_expression "puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0" (assignment_expression "puVar3 = *(undefined8 **)(local_b8 + 0x18)" (identifier "puVar3") (= "=") (pointer_expression "*(undefined8 **)(local_b8 + 0x18)" (* "*") (cast_expression "(undefined8 **)(local_b8 + 0x18)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_b8 + 0x18)" (( "(") (binary_expression "local_b8 + 0x18" (identifier "local_b8") (+ "+") (number_literal "0x18")) () ")"))))) (, ",") (comma_expression "local_91 = cVar9, cVar4 = cVar9,\n           puVar3[1] == 0" (assignment_expression "local_91 = cVar9" (identifier "local_91") (= "=") (identifier "cVar9")) (, ",") (comma_expression "cVar4 = cVar9,\n           puVar3[1] == 0" (assignment_expression "cVar4 = cVar9" (identifier "cVar4") (= "=") (identifier "cVar9")) (, ",") (binary_expression "puVar3[1] == 0" (subscript_expression "puVar3[1]" (identifier "puVar3") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0"))))) () ")"))) () ")")) (compound_statement "{\n          local_b8 = 0;\n          *param_7 = 1;\n          puVar5 = puVar3;\n          cVar4 = '\0';\n        }" ({ "{") (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" (identifier "local_b8") (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_7 = 1;" (assignment_expression "*param_7 = 1" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar5 = puVar3;" (assignment_expression "puVar5 = puVar3" (identifier "puVar5") (= "=") (identifier "puVar3")) (; ";")) (expression_statement "cVar4 = '\0';" (assignment_expression "cVar4 = '\0'" (identifier "cVar4") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}"))) (} "}")))) (} "}")))) (labeled_statement "LAB_00291fab:\n    plVar2 = *(long **)(PTR_DAT_004586c8 + 0x18);" (statement_identifier "LAB_00291fab") (: ":") (expression_statement "plVar2 = *(long **)(PTR_DAT_004586c8 + 0x18);" (assignment_expression "plVar2 = *(long **)(PTR_DAT_004586c8 + 0x18)" (identifier "plVar2") (= "=") (pointer_expression "*(long **)(PTR_DAT_004586c8 + 0x18)" (* "*") (cast_expression "(long **)(PTR_DAT_004586c8 + 0x18)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_DAT_004586c8 + 0x18)" (( "(") (binary_expression "PTR_DAT_004586c8 + 0x18" (identifier "PTR_DAT_004586c8") (+ "+") (number_literal "0x18")) () ")"))))) (; ";"))) (if_statement "if (plVar2 == (long *)0x0) {\n                    \n      FUN_0018dcf0("../../gold/parameters.h",0x69,"target");\n    }" (if "if") (parenthesized_expression "(plVar2 == (long *)0x0)" (( "(") (binary_expression "plVar2 == (long *)0x0" (identifier "plVar2") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n      FUN_0018dcf0("../../gold/parameters.h",0x69,"target");\n    }" ({ "{") (expression_statement "FUN_0018dcf0("../../gold/parameters.h",0x69,"target");" (call_expression "FUN_0018dcf0("../../gold/parameters.h",0x69,"target")" (identifier "FUN_0018dcf0") (argument_list "("../../gold/parameters.h",0x69,"target")" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x69") (, ",") (string_literal ""target"" (" """) (string_content "target") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(char *)(plVar2[1] + 0xc) == '\0') {\n      pauVar6 = (undefined1 (*) [16])FUN_002ee780(0x50);\n      *pauVar6 = (undefined1  [16])0x0;\n      pauVar6[1] = (undefined1  [16])0x0;\n      pauVar6[2] = (undefined1  [16])0x0;\n      pauVar6[3] = (undefined1  [16])0x0;\n    }\n    else {\n      pauVar6 = (undefined1 (*) [16])(**(code **)(*plVar2 + 0x150))(plVar2,*param_2,0,0,0,0);\n      if (pauVar6 == (undefined1 (*) [16])0x0) goto LAB_00292209;\n    }" (if "if") (parenthesized_expression "(*(char *)(plVar2[1] + 0xc) == '\0')" (( "(") (binary_expression "*(char *)(plVar2[1] + 0xc) == '\0'" (pointer_expression "*(char *)(plVar2[1] + 0xc)" (* "*") (cast_expression "(char *)(plVar2[1] + 0xc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar2[1] + 0xc)" (( "(") (binary_expression "plVar2[1] + 0xc" (subscript_expression "plVar2[1]" (identifier "plVar2") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0xc")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      pauVar6 = (undefined1 (*) [16])FUN_002ee780(0x50);\n      *pauVar6 = (undefined1  [16])0x0;\n      pauVar6[1] = (undefined1  [16])0x0;\n      pauVar6[2] = (undefined1  [16])0x0;\n      pauVar6[3] = (undefined1  [16])0x0;\n    }" ({ "{") (expression_statement "pauVar6 = (undefined1 (*) [16])FUN_002ee780(0x50);" (assignment_expression "pauVar6 = (undefined1 (*) [16])FUN_002ee780(0x50)" (identifier "pauVar6") (= "=") (cast_expression "(undefined1 (*) [16])FUN_002ee780(0x50)" (( "(") (type_descriptor "undefined1 (*) [16]" (type_identifier "undefined1") (abstract_array_declarator "(*) [16]" (abstract_parenthesized_declarator "(*)" (( "(") (abstract_pointer_declarator "*" (* "*")) () ")")) ([ "[") (number_literal "16") (] "]"))) () ")") (call_expression "FUN_002ee780(0x50)" (identifier "FUN_002ee780") (argument_list "(0x50)" (( "(") (number_literal "0x50") () ")"))))) (; ";")) (expression_statement "*pauVar6 = (undefined1  [16])0x0;" (assignment_expression "*pauVar6 = (undefined1  [16])0x0" (pointer_expression "*pauVar6" (* "*") (identifier "pauVar6")) (= "=") (cast_expression "(undefined1  [16])0x0" (( "(") (type_descriptor "undefined1  [16]" (type_identifier "undefined1") (abstract_array_declarator "[16]" ([ "[") (number_literal "16") (] "]"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pauVar6[1] = (undefined1  [16])0x0;" (assignment_expression "pauVar6[1] = (undefined1  [16])0x0" (subscript_expression "pauVar6[1]" (identifier "pauVar6") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(undefined1  [16])0x0" (( "(") (type_descriptor "undefined1  [16]" (type_identifier "undefined1") (abstract_array_declarator "[16]" ([ "[") (number_literal "16") (] "]"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pauVar6[2] = (undefined1  [16])0x0;" (assignment_expression "pauVar6[2] = (undefined1  [16])0x0" (subscript_expression "pauVar6[2]" (identifier "pauVar6") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(undefined1  [16])0x0" (( "(") (type_descriptor "undefined1  [16]" (type_identifier "undefined1") (abstract_array_declarator "[16]" ([ "[") (number_literal "16") (] "]"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pauVar6[3] = (undefined1  [16])0x0;" (assignment_expression "pauVar6[3] = (undefined1  [16])0x0" (subscript_expression "pauVar6[3]" (identifier "pauVar6") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(undefined1  [16])0x0" (( "(") (type_descriptor "undefined1  [16]" (type_identifier "undefined1") (abstract_array_declarator "[16]" ([ "[") (number_literal "16") (] "]"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n      pauVar6 = (undefined1 (*) [16])(**(code **)(*plVar2 + 0x150))(plVar2,*param_2,0,0,0,0);\n      if (pauVar6 == (undefined1 (*) [16])0x0) goto LAB_00292209;\n    }" (else "else") (compound_statement "{\n      pauVar6 = (undefined1 (*) [16])(**(code **)(*plVar2 + 0x150))(plVar2,*param_2,0,0,0,0);\n      if (pauVar6 == (undefined1 (*) [16])0x0) goto LAB_00292209;\n    }" ({ "{") (expression_statement "pauVar6 = (undefined1 (*) [16])(**(code **)(*plVar2 + 0x150))(plVar2,*param_2,0,0,0,0);" (assignment_expression "pauVar6 = (undefined1 (*) [16])(**(code **)(*plVar2 + 0x150))(plVar2,*param_2,0,0,0,0)" (identifier "pauVar6") (= "=") (cast_expression "(undefined1 (*) [16])(**(code **)(*plVar2 + 0x150))(plVar2,*param_2,0,0,0,0)" (( "(") (type_descriptor "undefined1 (*) [16]" (type_identifier "undefined1") (abstract_array_declarator "(*) [16]" (abstract_parenthesized_declarator "(*)" (( "(") (abstract_pointer_declarator "*" (* "*")) () ")")) ([ "[") (number_literal "16") (] "]"))) () ")") (call_expression "(**(code **)(*plVar2 + 0x150))(plVar2,*param_2,0,0,0,0)" (parenthesized_expression "(**(code **)(*plVar2 + 0x150))" (( "(") (pointer_expression "**(code **)(*plVar2 + 0x150)" (* "*") (pointer_expression "*(code **)(*plVar2 + 0x150)" (* "*") (cast_expression "(code **)(*plVar2 + 0x150)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar2 + 0x150)" (( "(") (binary_expression "*plVar2 + 0x150" (pointer_expression "*plVar2" (* "*") (identifier "plVar2")) (+ "+") (number_literal "0x150")) () ")"))))) () ")")) (argument_list "(plVar2,*param_2,0,0,0,0)" (( "(") (identifier "plVar2") (, ",") (pointer_expression "*param_2" (* "*") (identifier "param_2")) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))))) (; ";")) (if_statement "if (pauVar6 == (undefined1 (*) [16])0x0) goto LAB_00292209;" (if "if") (parenthesized_expression "(pauVar6 == (undefined1 (*) [16])0x0)" (( "(") (binary_expression "pauVar6 == (undefined1 (*) [16])0x0" (identifier "pauVar6") (== "==") (cast_expression "(undefined1 (*) [16])0x0" (( "(") (type_descriptor "undefined1 (*) [16]" (type_identifier "undefined1") (abstract_array_declarator "(*) [16]" (abstract_parenthesized_declarator "(*)" (( "(") (abstract_pointer_declarator "*" (* "*")) () ")")) ([ "[") (number_literal "16") (] "]"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00292209;" (goto "goto") (statement_identifier "LAB_00292209") (; ";"))) (} "}")))) (if_statement "if (local_91 == '\0') {\n      if (puVar5 == (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x794,"define_special_symbol");\n      }\n    }\n    else {\n      *(undefined1 (**) [16])(local_a8 + 0x18) = pauVar6;\n    }" (if "if") (parenthesized_expression "(local_91 == '\0')" (( "(") (binary_expression "local_91 == '\0'" (identifier "local_91") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      if (puVar5 == (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x794,"define_special_symbol");\n      }\n    }" ({ "{") (if_statement "if (puVar5 == (undefined8 *)0x0) {\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x794,"define_special_symbol");\n      }" (if "if") (parenthesized_expression "(puVar5 == (undefined8 *)0x0)" (( "(") (binary_expression "puVar5 == (undefined8 *)0x0" (identifier "puVar5") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n        FUN_0018dcf0("../../gold/symtab.cc",0x794,"define_special_symbol");\n      }" ({ "{") (expression_statement "FUN_0018dcf0("../../gold/symtab.cc",0x794,"define_special_symbol");" (call_expression "FUN_0018dcf0("../../gold/symtab.cc",0x794,"define_special_symbol")" (identifier "FUN_0018dcf0") (argument_list "("../../gold/symtab.cc",0x794,"define_special_symbol")" (( "(") (string_literal ""../../gold/symtab.cc"" (" """) (string_content "../../gold/symtab.cc") (" """)) (, ",") (number_literal "0x794") (, ",") (string_literal ""define_special_symbol"" (" """) (string_content "define_special_symbol") (" """)) () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      *(undefined1 (**) [16])(local_a8 + 0x18) = pauVar6;\n    }" (else "else") (compound_statement "{\n      *(undefined1 (**) [16])(local_a8 + 0x18) = pauVar6;\n    }" ({ "{") (expression_statement "*(undefined1 (**) [16])(local_a8 + 0x18) = pauVar6;" (assignment_expression "*(undefined1 (**) [16])(local_a8 + 0x18) = pauVar6" (pointer_expression "*(undefined1 (**) [16])(local_a8 + 0x18)" (* "*") (cast_expression "(undefined1 (**) [16])(local_a8 + 0x18)" (( "(") (type_descriptor "undefined1 (**) [16]" (type_identifier "undefined1") (abstract_array_declarator "(**) [16]" (abstract_parenthesized_declarator "(**)" (( "(") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))) () ")")) ([ "[") (number_literal "16") (] "]"))) () ")") (parenthesized_expression "(local_a8 + 0x18)" (( "(") (binary_expression "local_a8 + 0x18" (identifier "local_a8") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "pauVar6")) (; ";")) (} "}")))) (if_statement "if (cVar4 != '\0') {\n      *(undefined1 (**) [16])(local_b8 + 0x18) = pauVar6;\n    }" (if "if") (parenthesized_expression "(cVar4 != '\0')" (( "(") (binary_expression "cVar4 != '\0'" (identifier "cVar4") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      *(undefined1 (**) [16])(local_b8 + 0x18) = pauVar6;\n    }" ({ "{") (expression_statement "*(undefined1 (**) [16])(local_b8 + 0x18) = pauVar6;" (assignment_expression "*(undefined1 (**) [16])(local_b8 + 0x18) = pauVar6" (pointer_expression "*(undefined1 (**) [16])(local_b8 + 0x18)" (* "*") (cast_expression "(undefined1 (**) [16])(local_b8 + 0x18)" (( "(") (type_descriptor "undefined1 (**) [16]" (type_identifier "undefined1") (abstract_array_declarator "(**) [16]" (abstract_parenthesized_declarator "(**)" (( "(") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))) () ")")) ([ "[") (number_literal "16") (] "]"))) () ")") (parenthesized_expression "(local_b8 + 0x18)" (( "(") (binary_expression "local_b8 + 0x18" (identifier "local_b8") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "pauVar6")) (; ";")) (} "}"))) (expression_statement "uVar7 = FUN_002827c0(puVar5);" (assignment_expression "uVar7 = FUN_002827c0(puVar5)" (identifier "uVar7") (= "=") (call_expression "FUN_002827c0(puVar5)" (identifier "FUN_002827c0") (argument_list "(puVar5)" (( "(") (identifier "puVar5") () ")")))) (; ";")) (expression_statement "*param_6 = uVar7;" (assignment_expression "*param_6 = uVar7" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "uVar7")) (; ";")) (} "}")))) (if_statement "if (local_58 != local_48) {\n    FUN_002eff50();\n  }" (if "if") (parenthesized_expression "(local_58 != local_48)" (( "(") (binary_expression "local_58 != local_48" (identifier "local_58") (!= "!=") (identifier "local_48")) () ")")) (compound_statement "{\n    FUN_002eff50();\n  }" ({ "{") (expression_statement "FUN_002eff50();" (call_expression "FUN_002eff50()" (identifier "FUN_002eff50") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return pauVar6;" (return "return") (identifier "pauVar6") (; ";")) (} "}")))

/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* DWARF original name: define_special_symbol<64, true>
   DWARF original prototype: Sized_symbol<64> * define_special_symbol<64,_true>(Symbol_table * this,
   char * * pname, char * * pversion, bool only_if_ref, STV visibility, Sized_symbol<64> * *
   poldsym, bool * resolve_oldsym, bool is_forced_local) */

var_1<64> * __thiscall
gold::type_3::define_special_symbol<64,var_4>
          (type_3 *this,var_12 **var_10,var_12 **var_40,bool only_if_ref,STV var_38,
          var_1<64> **poldsym,bool *resolve_oldsym,bool var_18)

{
  type_1 var_37;
  type_2 *var_30;
  type_3 *pSVar3;
  bool var_19;
  char var_34;
  int iVar6;
  type_3 *var_20;
  type_4 extraout_var;
  var_1<64> *pSVar7;
  var_1<64> *var_33;
  char *pcVar9;
  pair<var_25::__detail::_Node_iterator<var_25::pair<var_26::pair<var_27,var_28>,var_29::var_2*>,var_3,var_4>,var_5>
  var_6;
  pair<var_25::__detail::_Node_iterator<var_25::pair<var_26::pair<var_27,var_28>,var_29::var_2*>,var_3,var_4>,var_5>
  var_7;
  _Node_iterator_base<var_25::pair<var_26::pair<var_27,var_28>,var_29::var_2*>,var_4>
  var_8;
  _Node_iterator_base<var_25::pair<var_26::pair<var_27,var_28>,var_29::var_2*>,var_4>
  var_9;
  bool var_24;
  type_5 name_key;
  type_5 version_key;
  bool var_14;
  char *local_70;
  type_6 local_68;
  type_7 v;
  
  pSVar7 = (var_1<64> *)*var_10;
  v._M_dataplus._M_p = (pointer)&v.field_2;
  *resolve_oldsym = false;
  *poldsym = (var_1<64> *)0x0;
  v._M_string_length = 0;
  v.field_2._M_local_buf[0] = '\0';
  if (var_18) {
    var_34 = '\0';
    var_18 = false;
    if (only_if_ref) goto LAB_00291f1e;
LAB_0029205d:
    pcVar9 = var_11<var_12>::var_13(&this->namepool_,(char *)pSVar7,true,&name_key);
    *var_10 = pcVar9;
    version_key = 0;
    if (*var_40 != (char *)0x0) {
      pcVar9 = var_11<var_12>::var_13(&this->namepool_,*var_40,true,&version_key);
      *var_40 = pcVar9;
    }
    var_33 = (var_1<64> *)&var_14;
    _is_global = (char *)name_key;
    local_68.object = (type_8 *)0x0;
    pSVar7 = var_33;
    local_70 = (char *)version_key;
    var_6 = var_25::
             _Hashtable<var_25::pair<var_27,var_28>,_std::pair<var_26::pair<var_27,var_28>,var_29::var_2*>,_std::var_41<var_25::pair<var_26::pair<var_27,var_28>,var_29::var_2*>var_16>,_std::__detail::_Select1st,var_29::Symbol_table::Symbol_table_eq,var_29::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::var_15::var_17<true,var_3,var_4>var_16>
             ::
             _M_emplace<var_25::pair<var_25::pair<var_27,var_28>,var_29::var_2*>var_16>
                       ((_Hashtable<var_25::pair<var_27,var_28>,_std::pair<var_26::pair<var_27,var_28>,var_29::var_2*>,_std::var_41<var_25::pair<var_26::pair<var_27,var_28>,var_29::var_2*>var_16>,_std::var_15::_Select1st,var_29::type_3::Symbol_table_eq,var_29::type_3::Symbol_table_hash,_std::var_15::_Mod_range_hashing,_std::var_15::_Default_ranged_hash,_std::var_15::_Prime_rehash_policy,_std::var_15::var_17<true,var_3,var_4>var_16>
                         *)&this->table_);
    var_9._M_cur = (type_9 *)var_6.first;
    var_24 = false;
    var_8._M_cur = (type_9 *)0x0;
    if (var_18 != false) {
      local_70 = (char *)0x0;
      local_68.object = (type_8 *)0x0;
      _is_global = (char *)name_key;
      var_7 = var_25::
               _Hashtable<var_25::pair<var_27,var_28>,_std::pair<var_26::pair<var_27,var_28>,var_29::var_2*>,_std::var_41<var_25::pair<var_26::pair<var_27,var_28>,var_29::var_2*>var_16>,_std::__detail::_Select1st,var_29::Symbol_table::Symbol_table_eq,var_29::Symbol_table::Symbol_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::var_15::var_17<true,var_3,var_4>var_16>
               ::
               _M_emplace<var_25::pair<var_25::pair<var_27,var_28>,var_29::var_2*>var_16>
                         ((_Hashtable<var_25::pair<var_27,var_28>,_std::pair<var_26::pair<var_27,var_28>,var_29::var_2*>,_std::var_41<var_25::pair<var_26::pair<var_27,var_28>,var_29::var_2*>var_16>,_std::var_15::_Select1st,var_29::type_3::Symbol_table_eq,var_29::type_3::Symbol_table_hash,_std::var_15::_Mod_range_hashing,_std::var_15::_Default_ranged_hash,_std::var_15::_Prime_rehash_policy,_std::var_15::var_17<true,var_3,var_4>var_16>
                           *)&this->table_);
      var_8._M_cur = (type_9 *)var_7.first;
      var_24 = var_7.second;
      pSVar7 = var_33;
    }
    var_20 = *(type_3 **)((long)var_9._M_cur + 0x18);
    var_19 = var_6.second;
    if (var_19 == false) {
      if (var_20 == (type_3 *)0x0) {
                    /* WARNING: Subroutine does not return */
        var_21("../../gold/symtab.cc",0x75a,"define_special_symbol");
      }
      if (var_18 == false) {
LAB_00291f97:
        var_8._M_cur = (type_9 *)0x0;
        var_9._M_cur = (type_9 *)0x0;
        var_24 = (bool)'\0';
        var_34 = var_18;
      }
      else {
        pSVar7 = var_22<64>(var_20,&pSVar7->super_Symbol);
        var_23<64,var_4>(this,pSVar7,var_24,(type_10)var_8._M_cur);
        var_8._M_cur = (type_9 *)0x0;
        var_9._M_cur = (type_9 *)0x0;
        var_24 = var_19;
        var_34 = '\0';
      }
    }
    else {
      if (var_20 != (type_3 *)0x0) {
                    /* WARNING: Subroutine does not return */
        var_21("../../gold/symtab.cc",0x768,"define_special_symbol");
      }
      if (var_18 == false) {
        var_8._M_cur = (type_9 *)0x0;
        var_24 = var_19;
        var_34 = var_18;
      }
      else {
        var_34 = var_24;
        if ((var_24 == false) &&
           (pSVar3 = *(type_3 **)
                      ((long)&((var_8._M_cur)->
                              super__Hash_node_value_base<var_25::pair<var_26::pair<var_27,var_28>,var_29::var_2*>var_16>
                              )._M_storage._M_storage + 0x10), var_24 = var_18,
           var_34 = var_18, *(long *)&pSVar3->first_global_index_ == 0)) {
          var_8._M_cur = (type_9 *)0x0;
          *resolve_oldsym = true;
          var_20 = pSVar3;
          pSVar7 = (var_1<64> *)resolve_oldsym;
          var_34 = '\0';
        }
      }
    }
LAB_00291fab:
    var_30 = parameters->target_;
    if (var_30 == (type_2 *)0x0) {
                    /* WARNING: Subroutine does not return */
      var_21("../../gold/parameters.h",0x69,"target");
    }
    if (var_30->pti_->has_make_symbol == false) {
      var_33 = (var_1<64> *)var_31(0x50);
      (var_33->super_Symbol).name_ = (char *)0x0;
      (var_33->super_Symbol).version_ = (char *)0x0;
      (var_33->super_Symbol).u1_ = (type_6)0x0;
      (var_33->super_Symbol).u2_ = (type_11)0x0;
      (var_33->super_Symbol).symtab_index_ = 0;
      (var_33->super_Symbol).dynsym_index_ = 0;
      (var_33->super_Symbol).plt_offset_ = 0;
      (var_33->super_Symbol).got_offsets_.got_type_ = 0;
      (var_33->super_Symbol).got_offsets_.got_offset_ = 0;
      *(type_12 (*) [16])&(var_33->super_Symbol).got_offsets_.got_next_ = (type_12  [16])0x0;
    }
    else {
      pSVar7 = (var_1<64> *)*var_10;
      iVar6 = (*var_30->_vptr_Target[0x2a])(var_30,pSVar7,0,0,0,0);
      var_33 = (var_1<64> *)var_32(extraout_var,iVar6);
      if (var_33 == (var_1<64> *)0x0) goto LAB_00292209;
    }
    if (var_24 == false) {
      if (var_20 == (type_3 *)0x0) {
                    /* WARNING: Subroutine does not return */
        var_21("../../gold/symtab.cc",0x794,"define_special_symbol");
      }
    }
    else {
      *(var_1<64> **)
       ((long)&((var_9._M_cur)->
               super__Hash_node_value_base<var_25::pair<var_26::pair<var_27,var_28>,var_29::var_2*>var_16>
               )._M_storage._M_storage + 0x10) = var_33;
    }
    if (var_34 != '\0') {
      *(var_1<64> **)
       ((long)&((var_8._M_cur)->
               super__Hash_node_value_base<var_25::pair<var_26::pair<var_27,var_28>,var_29::var_2*>var_16>
               )._M_storage._M_storage + 0x10) = var_33;
    }
    pSVar7 = var_22<64>(var_20,&pSVar7->super_Symbol);
    *poldsym = pSVar7;
  }
  else {
    if (*var_40 == (char *)0x0) {
      var_34 = Version_script_info::var_35
                        (this->version_script_,(char *)pSVar7,&v,&var_14);
      if ((((bool)var_34) && (var_34 = var_14, var_14 != false)) &&
         (var_34 = var_18, v._M_string_length != 0)) {
        *var_40 = v._M_dataplus._M_p;
        var_34 = var_14;
      }
      var_18 = (bool)var_34;
      pSVar7 = (var_1<64> *)*var_10;
    }
    var_34 = var_18;
    if (!only_if_ref) goto LAB_0029205d;
LAB_00291f1e:
                    /* try { // try from 00291f24 to 0029237e has its CatchHandler @ 0029237f */
    var_20 = (type_3 *)var_36(this,(char *)pSVar7,*var_40);
    if ((var_20 == (type_3 *)0x0) && (var_34 != '\0')) {
      pSVar7 = (var_1<64> *)*var_10;
      var_20 = (type_3 *)var_36(this,(char *)pSVar7,(char *)0x0);
    }
    if (var_20 != (type_3 *)0x0) {
      var_37 = *(type_1 *)((long)&(var_20->table_)._M_h._M_bucket_count + 2);
      if ((var_37 & 7) != 0) {
        if ((var_37 & 7) == 4) goto LAB_00291f80;
        goto LAB_00292209;
      }
      if (((var_20->output_count_ != 0) ||
          (((var_20->table_)._M_h._M_bucket_count & 0x20000000) == 0)) &&
         (((*(type_1 *)(var_20->offset_ + 0x3c) & 1) == 0 ||
          ((var_38 - var_39 < 2 && (-1 < (char)var_37)))))) goto LAB_00292209;
LAB_00291f80:
      *var_10 = (char *)var_20->saw_undefined_;
      if (var_34 == '\0') {
        *var_40 = *(char **)&var_20->first_global_index_;
        var_18 = false;
        goto LAB_00291f97;
      }
      pSVar7 = (var_1<64> *)*var_40;
      pcVar9 = var_11<var_12>::var_13(&this->namepool_,(char *)pSVar7,true,(type_5 *)0x0);
      *var_40 = pcVar9;
      var_8._M_cur = (type_9 *)0x0;
      var_9._M_cur = (type_9 *)0x0;
      var_24 = (bool)'\0';
      var_34 = '\0';
      goto LAB_00291fab;
    }
LAB_00292209:
    var_33 = (var_1<64> *)0x0;
  }
  if ((anon_union_16_2_edb7204a_for_basic_string<var_12,_std::char_traits<var_12>,_std::var_41<var_12>var_16>var_42
       *)v._M_dataplus._M_p != &v.field_2) {
    var_43(v._M_dataplus._M_p);
  }
  return var_33;
}


(translation_unit (function_definition type: (type_identifier) (ERROR (array_declarator declarator: (parenthesized_declarator (pointer_declarator declarator: (MISSING identifier))) size: (number_literal))) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (sized_type_specifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (subscript_expression argument: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))) index: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (identifier) (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (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: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier))) (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: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (pointer_expression argument: (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (sized_type_specifier)) value: (identifier)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) 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: (sized_type_specifier)) value: (identifier)) right: (number_literal))))) right: (number_literal))) right: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (number_literal))) right: (number_literal)) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))))))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (identifier)) (number_literal) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence)))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_array_declarator declarator: (abstract_parenthesized_declarator (abstract_pointer_declarator)) size: (number_literal))) value: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier) (number_literal) (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (identifier)) (number_literal) (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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)) (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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)) (pointer_expression argument: (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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence)))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (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 (comma_expression left: (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)))))) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence)))))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (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 (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_array_declarator declarator: (abstract_parenthesized_declarator (abstract_pointer_declarator)) size: (number_literal))) value: (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_array_declarator size: (number_literal))) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_array_declarator size: (number_literal))) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_array_declarator size: (number_literal))) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_array_declarator size: (number_literal))) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_array_declarator declarator: (abstract_parenthesized_declarator (abstract_pointer_declarator)) size: (number_literal))) 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) (pointer_expression argument: (identifier)) (number_literal) (number_literal) (number_literal) (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_array_declarator declarator: (abstract_parenthesized_declarator (abstract_pointer_declarator)) size: (number_literal))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_array_declarator declarator: (abstract_parenthesized_declarator (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) size: (number_literal))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_array_declarator declarator: (abstract_parenthesized_declarator (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) size: (number_literal))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (return_statement (identifier)))))

undefined1 (*) [16]
MASKED(long param_1,undefined8 *param_2,long *param_3,char param_4,int param_5,
            undefined8 *param_6,undefined1 *param_7,char param_8)

{
  byte bVar1;
  long *plVar2;
  undefined8 *puVar3;
  char cVar4;
  undefined8 *puVar5;
  undefined1 (*pauVar6) [16];
  undefined8 uVar7;
  long lVar8;
  char extraout_DL;
  char extraout_DL_00;
  char cVar9;
  long local_b8;
  long local_a8;
  char local_91;
  undefined8 local_88;
  undefined8 local_80;
  undefined8 local_78;
  undefined8 local_70;
  undefined8 local_68;
  undefined1 *local_58;
  long local_50;
  undefined1 local_48 [24];
  
  uVar7 = *param_2;
  local_58 = local_48;
  *param_7 = 0;
  *param_6 = 0;
  local_50 = 0;
  local_48[0] = 0;
  if (param_8 == '\0') {
    cVar9 = '\0';
    if (*param_3 == 0) {
      cVar4 = FUN_00279db0(*(undefined8 *)(param_1 + 0x288),uVar7,&local_58,&local_78);
      if (((cVar4 != '\0') && (cVar4 = (char)local_78, (char)local_78 != '\0')) &&
         (cVar4 = cVar9, local_50 != 0)) {
        *param_3 = (long)local_58;
        cVar4 = (char)local_78;
      }
      cVar9 = cVar4;
      uVar7 = *param_2;
    }
    cVar4 = cVar9;
    if (param_4 == '\0') goto LAB_0029205d;
LAB_00291f1e:
                    /* try { // try from 00291f24 to 0029237e has its CatchHandler @ 0029237f */
    puVar5 = (undefined8 *)FUN_00284d90(param_1,uVar7,*param_3);
    if ((puVar5 == (undefined8 *)0x0) && (cVar4 != '\0')) {
      puVar5 = (undefined8 *)FUN_00284d90(param_1,*param_2,0);
    }
    if (puVar5 != (undefined8 *)0x0) {
      bVar1 = *(byte *)((long)puVar5 + 0x3a);
      if ((bVar1 & 7) != 0) {
        if ((bVar1 & 7) == 4) goto LAB_00291f80;
        goto LAB_00292209;
      }
      if (((*(int *)(puVar5 + 3) != 0) || ((*(byte *)((long)puVar5 + 0x3b) & 0x20) == 0)) &&
         (((*(byte *)(puVar5[2] + 0x3c) & 1) == 0 || ((param_5 - 1U < 2 && (-1 < (char)bVar1))))))
      goto LAB_00292209;
LAB_00291f80:
      *param_2 = *puVar5;
      if (cVar4 == '\0') {
        *param_3 = puVar5[1];
        cVar9 = '\0';
        goto LAB_00291f97;
      }
      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,0);
      *param_3 = lVar8;
      local_b8 = 0;
      local_a8 = 0;
      local_91 = '\0';
      cVar4 = '\0';
      goto LAB_00291fab;
    }
LAB_00292209:
    pauVar6 = (undefined1 (*) [16])0x0;
  }
  else {
    cVar4 = '\0';
    cVar9 = '\0';
    if (param_4 != '\0') goto LAB_00291f1e;
LAB_0029205d:
    uVar7 = FUN_00280180(param_1 + 0x68,uVar7,1,&local_88);
    *param_2 = uVar7;
    local_80 = 0;
    if (*param_3 != 0) {
      lVar8 = FUN_00280180(param_1 + 0x68,*param_3,1,&local_80);
      *param_3 = lVar8;
    }
    local_78 = local_88;
    local_68 = 0;
    local_70 = local_80;
    local_a8 = FUN_0028dab0(param_1 + 0x30,&local_78);
    local_91 = '\0';
    local_b8 = 0;
    if (cVar9 != '\0') {
      local_70 = 0;
      local_68 = 0;
      local_78 = local_88;
      local_b8 = FUN_0028dab0(param_1 + 0x30,&local_78);
      local_91 = extraout_DL_00;
    }
    puVar5 = *(undefined8 **)(local_a8 + 0x18);
    if (extraout_DL == '\0') {
      if (puVar5 == (undefined8 *)0x0) {
                    /* WARNING: Subroutine does not return */
        FUN_0018dcf0("../../gold/symtab.cc",0x75a,"define_special_symbol");
      }
      if (cVar9 == '\0') {
LAB_00291f97:
        local_b8 = 0;
        local_a8 = 0;
        local_91 = '\0';
        cVar4 = cVar9;
      }
      else {
        uVar7 = FUN_002827c0(puVar5);
        FUN_0028c430(param_1,uVar7,local_91,local_b8);
        local_b8 = 0;
        local_a8 = 0;
        local_91 = extraout_DL;
        cVar4 = '\0';
      }
    }
    else {
      if (puVar5 != (undefined8 *)0x0) {
                    /* WARNING: Subroutine does not return */
        FUN_0018dcf0("../../gold/symtab.cc",0x768,"define_special_symbol");
      }
      if (cVar9 == '\0') {
        local_b8 = 0;
        local_91 = extraout_DL;
        cVar4 = cVar9;
      }
      else {
        cVar4 = local_91;
        if ((local_91 == '\0') &&
           (puVar3 = *(undefined8 **)(local_b8 + 0x18), local_91 = cVar9, cVar4 = cVar9,
           puVar3[1] == 0)) {
          local_b8 = 0;
          *param_7 = 1;
          puVar5 = puVar3;
          cVar4 = '\0';
        }
      }
    }
LAB_00291fab:
    plVar2 = *(long **)(PTR_DAT_004586c8 + 0x18);
    if (plVar2 == (long *)0x0) {
                    /* WARNING: Subroutine does not return */
      FUN_0018dcf0("../../gold/parameters.h",0x69,"target");
    }
    if (*(char *)(plVar2[1] + 0xc) == '\0') {
      pauVar6 = (undefined1 (*) [16])FUN_002ee780(0x50);
      *pauVar6 = (undefined1  [16])0x0;
      pauVar6[1] = (undefined1  [16])0x0;
      pauVar6[2] = (undefined1  [16])0x0;
      pauVar6[3] = (undefined1  [16])0x0;
    }
    else {
      pauVar6 = (undefined1 (*) [16])(**(code **)(*plVar2 + 0x150))(plVar2,*param_2,0,0,0,0);
      if (pauVar6 == (undefined1 (*) [16])0x0) goto LAB_00292209;
    }
    if (local_91 == '\0') {
      if (puVar5 == (undefined8 *)0x0) {
                    /* WARNING: Subroutine does not return */
        FUN_0018dcf0("../../gold/symtab.cc",0x794,"define_special_symbol");
      }
    }
    else {
      *(undefined1 (**) [16])(local_a8 + 0x18) = pauVar6;
    }
    if (cVar4 != '\0') {
      *(undefined1 (**) [16])(local_b8 + 0x18) = pauVar6;
    }
    uVar7 = FUN_002827c0(puVar5);
    *param_6 = uVar7;
  }
  if (local_58 != local_48) {
    FUN_002eff50();
  }
  return pauVar6;
}

