
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */

Should_include
gold::Library_base::should_include_member
          (Symbol_table *symtab,Layout *layout,char *sym_name,Symbol **symp,string *why,
          char **tmpbufp,size_t *tmpbuflen)

{
  size_t size;
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *paVar1;
  General_options *pGVar2;
  byte bVar3;
  bool bVar4;
  int iVar5;
  char *pcVar6;
  Symbol *pSVar7;
  char *name;
  const_iterator cVar8;
  char *__format;
  ulong uVar9;
  size_t sVar10;
  ulong uVar11;
  Script_options *pSVar12;
  key_type local_58;
  
  pcVar6 = strchr(sym_name,0x40);
  name = sym_name;
  if (pcVar6 == (char *)0x0) {
LAB_001c7f12:
    pSVar7 = Symbol_table::lookup(symtab,name,pcVar6);
    *symp = pSVar7;
joined_r0x001c805a:
    if (pSVar7 != (Symbol *)0x0) {
      bVar3 = pSVar7->field_0x3a & 7;
      if (bVar3 == 0) goto LAB_001c7f3f;
LAB_001c7fc0:
      if (bVar3 != 4) {
        return SHOULD_INCLUDE_NO;
      }
      goto LAB_001c7fc4;
    }
  }
  else {
    sVar10 = (long)pcVar6 - (long)sym_name;
    name = *tmpbufp;
    size = sVar10 + 1;
    if (*tmpbuflen < size) {
      name = (char *)xrealloc(name,size);
      *tmpbufp = name;
      *tmpbuflen = size;
    }
    memcpy(name,sym_name,sVar10);
    name[sVar10] = '\0';
    if (pcVar6[1] != '@') {
      pcVar6 = pcVar6 + 1;
      goto LAB_001c7f12;
    }
    pSVar7 = Symbol_table::lookup(symtab,name,pcVar6 + 2);
    if (pSVar7 == (Symbol *)0x0) {
LAB_001c8040:
      pSVar7 = Symbol_table::lookup(symtab,name,(char *)0x0);
      *symp = pSVar7;
      goto joined_r0x001c805a;
    }
    bVar3 = pSVar7->field_0x3a & 7;
    if ((pSVar7->field_0x3a & 7) != 0) {
      if (bVar3 == 4) goto LAB_001c7f9d;
      goto LAB_001c8040;
    }
    if (((pSVar7->u2_).shndx != 0) || ((pSVar7->field_0x3b & 0x20) == 0)) goto LAB_001c8040;
LAB_001c7f9d:
    if ((byte)pSVar7->field_0x38 >> 4 == 2) goto LAB_001c8040;
    *symp = pSVar7;
    if (bVar3 != 0) goto LAB_001c7fc0;
LAB_001c7f3f:
    if ((pSVar7->u2_).shndx != 0) {
      return SHOULD_INCLUDE_NO;
    }
    if ((pSVar7->field_0x3b & 0x20) == 0) {
      return SHOULD_INCLUDE_NO;
    }
LAB_001c7fc4:
    bVar4 = Script_options::is_pending_assignment(layout->script_options_,name);
    if (bVar4) {
      return SHOULD_INCLUDE_NO;
    }
    if ((byte)pSVar7->field_0x38 >> 4 != 2) {
      return SHOULD_INCLUDE_YES;
    }
  }
  pGVar2 = parameters->options_;
  if (pGVar2 != (General_options *)0x0) {
    if ((pGVar2->undefined_).value._M_h._M_element_count != 0) {
      paVar1 = &local_58.field_2;
      local_58._M_dataplus._M_p = (pointer)paVar1;
      sVar10 = strlen(name);
      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
      _M_construct<char_const*>(&local_58,name,name + sVar10);
      cVar8 = std::
              _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
              ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
                      *)&(pGVar2->undefined_).value,&local_58);
      if (cVar8.
          super__Node_iterator_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>
          ._M_cur != (__node_type *)0x0) {
        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
             *)local_58._M_dataplus._M_p != paVar1) {
          operator_delete(local_58._M_dataplus._M_p);
        }
        uVar9 = why->_M_string_length;
        uVar11 = 3;
        pcVar6 = "-u ";
        goto LAB_001c8211;
      }
      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
           *)local_58._M_dataplus._M_p != paVar1) {
        operator_delete(local_58._M_dataplus._M_p);
      }
    }
    pGVar2 = parameters->options_;
    if (pGVar2 == (General_options *)0x0) goto LAB_001c830c;
    if ((pGVar2->export_dynamic_symbol_).value._M_h._M_element_count == 0) {
      pSVar12 = layout->script_options_;
    }
    else {
      local_58._M_dataplus._M_p = (pointer)&local_58.field_2;
      sVar10 = strlen(name);
      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
      _M_construct<char_const*>(&local_58,name,name + sVar10);
      cVar8 = std::
              _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
              ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
                      *)&(pGVar2->export_dynamic_symbol_).value,&local_58);
      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
           *)local_58._M_dataplus._M_p != &local_58.field_2) {
        operator_delete(local_58._M_dataplus._M_p);
      }
      if (cVar8.
          super__Node_iterator_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>
          ._M_cur != (__node_type *)0x0) {
        uVar9 = why->_M_string_length;
        uVar11 = 0x18;
        pcVar6 = "--export-dynamic-symbol ";
        goto LAB_001c8211;
      }
      pSVar12 = layout->script_options_;
    }
    local_58._M_dataplus._M_p = (pointer)&local_58.field_2;
    sVar10 = strlen(name);
    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
    _M_construct<char_const*>(&local_58,name,name + sVar10);
    cVar8 = std::
            _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
            ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
                    *)&pSVar12->symbol_references_,&local_58);
    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
         *)local_58._M_dataplus._M_p != &local_58.field_2) {
      operator_delete(local_58._M_dataplus._M_p);
    }
    if (cVar8.
        super__Node_iterator_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>
        ._M_cur != (__node_type *)0x0) {
      sVar10 = strlen(name);
      pcVar6 = (char *)operator_new__(sVar10 + 100);
      __format = (char *)gettext("script or expression reference to %s");
      snprintf(pcVar6,sVar10 + 100,__format,name);
      sVar10 = strlen(pcVar6);
      std::string::_M_replace((string *)why,0,why->_M_string_length,pcVar6,sVar10);
      operator_delete__(pcVar6);
      return SHOULD_INCLUDE_YES;
    }
    if (parameters->options_ != (General_options *)0x0) {
      if ((((parameters->options_->relocatable_).value != false) ||
          (pcVar6 = Parameters::entry(parameters), pcVar6 == (char *)0x0)) ||
         (iVar5 = strcmp(name,pcVar6), iVar5 != 0)) {
        return SHOULD_INCLUDE_UNKNOWN;
      }
      uVar9 = why->_M_string_length;
      uVar11 = 0xd;
      pcVar6 = "entry symbol ";
LAB_001c8211:
      std::string::_M_replace((string *)why,0,uVar9,pcVar6,uVar11);
      sVar10 = strlen(name);
      if (sVar10 <= 0x7fffffffffffffff - why->_M_string_length) {
        std::string::_M_append((string *)why,name,sVar10);
        return SHOULD_INCLUDE_YES;
      }
                    /* WARNING: Subroutine does not return */
      std::__throw_length_error("basic_string::append");
    }
  }
LAB_001c830c:
                    /* WARNING: Subroutine does not return */
  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
}



undefined8
FUN_001c7e90(undefined8 param_1,long param_2,char *param_3,long *param_4,long param_5,
            undefined8 *param_6,ulong *param_7)

{
  ulong uVar1;
  byte bVar2;
  char cVar3;
  int iVar4;
  char *pcVar5;
  long lVar6;
  char *__s;
  char *__format;
  undefined8 uVar7;
  size_t sVar8;
  undefined8 uVar9;
  undefined1 *local_58 [2];
  undefined1 local_48 [24];
  
  pcVar5 = strchr(param_3,0x40);
  __s = param_3;
  if (pcVar5 == (char *)0x0) {
LAB_001c7f12:
    lVar6 = FUN_002df9a0(param_1,__s,pcVar5);
    *param_4 = lVar6;
joined_r0x001c805a:
    if (lVar6 != 0) {
      bVar2 = *(byte *)(lVar6 + 0x3a) & 7;
      if (bVar2 == 0) goto LAB_001c7f3f;
LAB_001c7fc0:
      if (bVar2 != 4) {
        return 0;
      }
      goto LAB_001c7fc4;
    }
  }
  else {
    sVar8 = (long)pcVar5 - (long)param_3;
    __s = (char *)*param_6;
    uVar1 = sVar8 + 1;
    if (*param_7 < uVar1) {
      __s = (char *)FUN_00336eb0(__s,uVar1);
      *param_6 = __s;
      *param_7 = uVar1;
    }
    memcpy(__s,param_3,sVar8);
    __s[sVar8] = '\0';
    if (pcVar5[1] != '@') {
      pcVar5 = pcVar5 + 1;
      goto LAB_001c7f12;
    }
    lVar6 = FUN_002df9a0(param_1,__s,pcVar5 + 2);
    if (lVar6 == 0) {
LAB_001c8040:
      lVar6 = FUN_002df9a0(param_1,__s,0);
      *param_4 = lVar6;
      goto joined_r0x001c805a;
    }
    bVar2 = *(byte *)(lVar6 + 0x3a) & 7;
    if ((*(byte *)(lVar6 + 0x3a) & 7) != 0) {
      if (bVar2 == 4) goto LAB_001c7f9d;
      goto LAB_001c8040;
    }
    if ((*(int *)(lVar6 + 0x18) != 0) || ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0)) goto LAB_001c8040;
LAB_001c7f9d:
    if (*(byte *)(lVar6 + 0x38) >> 4 == 2) goto LAB_001c8040;
    *param_4 = lVar6;
    if (bVar2 != 0) goto LAB_001c7fc0;
LAB_001c7f3f:
    if (*(int *)(lVar6 + 0x18) != 0) {
      return 0;
    }
    if ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0) {
      return 0;
    }
LAB_001c7fc4:
    cVar3 = FUN_002d0d40(*(undefined8 *)(param_2 + 8),__s);
    if (cVar3 != '\0') {
      return 0;
    }
    if (*(byte *)(lVar6 + 0x38) >> 4 != 2) {
      return 1;
    }
  }
  lVar6 = *(long *)(PTR_DAT_004ba7c8 + 0x10);
  if (lVar6 != 0) {
    if (*(long *)(lVar6 + 0x6bb8) != 0) {
      local_58[0] = local_48;
      sVar8 = strlen(__s);
      FUN_001bc4c0(local_58,__s,__s + sVar8);
      lVar6 = FUN_001ca390(lVar6 + 0x6ba0,local_58);
      if (lVar6 != 0) {
        if (local_58[0] != local_48) {
          FUN_00338a40();
        }
        uVar7 = *(undefined8 *)(param_5 + 8);
        uVar9 = 3;
        pcVar5 = "-u ";
        goto LAB_001c8211;
      }
      if (local_58[0] != local_48) {
        FUN_00338a40();
      }
    }
    lVar6 = *(long *)(PTR_DAT_004ba7c8 + 0x10);
    if (lVar6 == 0) goto LAB_001c830c;
    if (*(long *)(lVar6 + 0x1f28) == 0) {
      lVar6 = *(long *)(param_2 + 8);
    }
    else {
      local_58[0] = local_48;
      sVar8 = strlen(__s);
      FUN_001bc4c0(local_58,__s,__s + sVar8);
      lVar6 = FUN_001ca390(lVar6 + 0x1f10,local_58);
      if (local_58[0] != local_48) {
        FUN_00338a40();
      }
      if (lVar6 != 0) {
        uVar7 = *(undefined8 *)(param_5 + 8);
        uVar9 = 0x18;
        pcVar5 = "--export-dynamic-symbol ";
        goto LAB_001c8211;
      }
      lVar6 = *(long *)(param_2 + 8);
    }
    local_58[0] = local_48;
    sVar8 = strlen(__s);
    FUN_001bc4c0(local_58,__s,__s + sVar8);
    lVar6 = FUN_001ca390(lVar6 + 0x70,local_58);
    if (local_58[0] != local_48) {
      FUN_00338a40();
    }
    if (lVar6 != 0) {
      sVar8 = strlen(__s);
      pcVar5 = (char *)thunk_FUN_00337270(sVar8 + 100);
      __format = (char *)gettext("script or expression reference to %s");
      snprintf(pcVar5,sVar8 + 100,__format,__s);
      sVar8 = strlen(pcVar5);
      FUN_00340370(param_5,0,*(undefined8 *)(param_5 + 8),pcVar5,sVar8);
      thunk_FUN_00338a40(pcVar5);
      return 1;
    }
    if (*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) {
      if (((*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051) != '\0') ||
          (pcVar5 = (char *)FUN_002a09b0(), pcVar5 == (char *)0x0)) ||
         (iVar4 = strcmp(__s,pcVar5), iVar4 != 0)) {
        return 2;
      }
      uVar7 = *(undefined8 *)(param_5 + 8);
      uVar9 = 0xd;
      pcVar5 = "entry symbol ";
LAB_001c8211:
      FUN_00340370(param_5,0,uVar7,pcVar5,uVar9);
      sVar8 = strlen(__s);
      if (sVar8 <= 0x7fffffffffffffffU - *(long *)(param_5 + 8)) {
        FUN_00340cc0(param_5,__s,sVar8);
        return 1;
      }
                    /* WARNING: Subroutine does not return */
      FUN_00377370("basic_string::append");
    }
  }
LAB_001c830c:
                    /* WARNING: Subroutine does not return */
  FUN_001e9890("../../gold/parameters.h",0x5c,"options");
}


PUSH R15
PUSH R14
MOV R14,R8
PUSH R13
MOV R13,RCX
PUSH R12
MOV R12,RDI
MOV RDI,RDX
PUSH RBP
PUSH RBX
MOV RBX,RDX
SUB RSP,0x48
MOV qword ptr [RSP + 0x8],RSI
MOV ESI,0x40
MOV qword ptr [RSP],R9
CALL 0x001506e0
MOV RBP,RAX
TEST RAX,RAX
JZ 0x001c7f12
MOV R8,RAX
MOV R9,qword ptr [RSP]
MOV RAX,qword ptr [RSP + 0x80]
SUB R8,RBX
MOV R15,qword ptr [R9]
LEA RDX,[R8 + 0x1]
CMP RDX,qword ptr [RAX]
JA 0x001c7ff8
MOV RDX,R8
MOV RSI,RBX
MOV RDI,R15
MOV qword ptr [RSP],R8
CALL 0x00150a90
MOV R8,qword ptr [RSP]
MOV byte ptr [R15 + R8*0x1],0x0
CMP byte ptr [RBP + 0x1],0x40
JZ 0x001c7f60
ADD RBP,0x1
MOV RBX,R15
MOV RDX,RBP
MOV RSI,RBX
MOV RDI,R12
CALL 0x002df9a0
MOV RBP,RAX
MOV qword ptr [R13],RBP
TEST RBP,RBP
JZ 0x001c8060
MOVZX EAX,byte ptr [RBP + 0x3a]
AND EAX,0x7
TEST AL,AL
JNZ 0x001c7fc0
MOV EAX,dword ptr [RBP + 0x18]
TEST EAX,EAX
JNZ 0x001c7f4c
TEST byte ptr [RBP + 0x3b],0x20
JNZ 0x001c7fc4
XOR EAX,EAX
ADD RSP,0x48
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
LEA RDX,[RBP + 0x2]
MOV RSI,R15
MOV RDI,R12
CALL 0x002df9a0
MOV RBP,RAX
TEST RAX,RAX
JZ 0x001c8040
MOVZX EAX,byte ptr [RAX + 0x3a]
AND EAX,0x7
JNZ 0x001c8038
MOV EDX,dword ptr [RBP + 0x18]
TEST EDX,EDX
JNZ 0x001c8040
TEST byte ptr [RBP + 0x3b],0x20
JZ 0x001c8040
MOVZX EDX,byte ptr [RBP + 0x38]
SHR DL,0x4
CMP DL,0x2
JZ 0x001c8040
MOV qword ptr [R13],RBP
MOV RBX,R15
TEST AL,AL
JZ 0x001c7f3f
NOP dword ptr [RAX + RAX*0x1]
CMP AL,0x4
JNZ 0x001c7f4c
MOV RAX,qword ptr [RSP + 0x8]
MOV RSI,RBX
MOV RDI,qword ptr [RAX + 0x8]
CALL 0x002d0d40
TEST AL,AL
JNZ 0x001c7f4c
MOVZX EAX,byte ptr [RBP + 0x38]
SHR AL,0x4
CMP AL,0x2
JZ 0x001c8060
MOV EAX,0x1
JMP 0x001c7f4e
MOV RSI,RDX
MOV RDI,R15
MOV qword ptr [RSP + 0x18],R9
MOV qword ptr [RSP + 0x10],R8
MOV qword ptr [RSP],RDX
CALL 0x00336eb0
MOV R9,qword ptr [RSP + 0x18]
MOV RDX,qword ptr [RSP]
MOV R15,RAX
MOV R8,qword ptr [RSP + 0x10]
MOV qword ptr [R9],RAX
MOV RAX,qword ptr [RSP + 0x80]
MOV qword ptr [RAX],RDX
JMP 0x001c7eea
CMP AL,0x4
JZ 0x001c7f9d
XOR EDX,EDX
MOV RSI,R15
MOV RDI,R12
MOV RBX,R15
CALL 0x002df9a0
MOV RBP,RAX
MOV qword ptr [R13],RBP
TEST RBP,RBP
JNZ 0x001c7f30
MOV RAX,qword ptr [0x004ba7c8]
MOV RBP,qword ptr [RAX + 0x10]
TEST RBP,RBP
JZ 0x001c830c
CMP qword ptr [RBP + 0x6bb8],0x0
JNZ 0x001c8260
MOV R12,qword ptr [RAX + 0x10]
TEST R12,R12
JZ 0x001c830c
CMP qword ptr [R12 + 0x1f28],0x0
JNZ 0x001c81b0
MOV RAX,qword ptr [RSP + 0x8]
LEA RBP,[RSP + 0x20]
MOV R12,qword ptr [RAX + 0x8]
LEA RAX,[RBP + 0x10]
MOV qword ptr [RSP + 0x20],RAX
MOV RDI,RBX
CALL 0x00150490
MOV RDI,RBP
MOV RSI,RBX
LEA RDX,[RBX + RAX*0x1]
CALL 0x001bc4c0
LEA RDI,[R12 + 0x70]
MOV RSI,RBP
ADD RBP,0x10
CALL 0x001ca390
MOV RDI,qword ptr [RSP + 0x20]
MOV R12,RAX
CMP RDI,RBP
JZ 0x001c80ef
CALL 0x00338a40
TEST R12,R12
JNZ 0x001c8148
MOV RDI,qword ptr [0x004ba7c8]
MOV RAX,qword ptr [RDI + 0x10]
TEST RAX,RAX
JZ 0x001c830c
CMP byte ptr [RAX + 0x5051],0x0
JNZ 0x001c812e
CALL 0x002a09b0
TEST RAX,RAX
JZ 0x001c812e
MOV RSI,RAX
MOV RDI,RBX
CALL 0x00150790
TEST EAX,EAX
JZ 0x001c82c0
ADD RSP,0x48
MOV EAX,0x2
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV RDI,RBX
CALL 0x00150490
LEA R12,[RAX + 0x64]
MOV RDI,R12
CALL 0x00337210
LEA RDI,[0x3dff80]
MOV RBP,RAX
CALL 0x00150320
MOV RCX,RBX
MOV RSI,R12
MOV RDI,RBP
MOV RDX,RAX
XOR EAX,EAX
CALL 0x00150130
MOV RDI,RBP
CALL 0x00150490
MOV RDX,qword ptr [R14 + 0x8]
MOV RCX,RBP
XOR ESI,ESI
MOV R8,RAX
MOV RDI,R14
CALL 0x00340370
MOV RDI,RBP
CALL 0x00338a10
MOV EAX,0x1
JMP 0x001c7f4e
LEA RBP,[RSP + 0x20]
MOV RDI,RBX
LEA R13,[RBP + 0x10]
MOV qword ptr [RSP + 0x20],R13
CALL 0x00150490
MOV RSI,RBX
MOV RDI,RBP
LEA RDX,[RBX + RAX*0x1]
CALL 0x001bc4c0
LEA RDI,[R12 + 0x1f10]
MOV RSI,RBP
CALL 0x001ca390
MOV RDI,qword ptr [RSP + 0x20]
MOV R12,RAX
CMP RDI,R13
JZ 0x001c81f7
CALL 0x00338a40
TEST R12,R12
JZ 0x001c8330
MOV RDX,qword ptr [R14 + 0x8]
MOV R8D,0x18
LEA RCX,[0x3dfd9f]
XOR ESI,ESI
MOV RDI,R14
CALL 0x00340370
MOV RDI,RBX
CALL 0x00150490
MOV RCX,0x7fffffffffffffff
SUB RCX,qword ptr [R14 + 0x8]
CMP RAX,RCX
JA 0x001c8324
MOV RSI,RBX
MOV RDI,R14
MOV RDX,RAX
CALL 0x00340cc0
ADD RSP,0x48
MOV EAX,0x1
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV RDI,RBX
LEA R13,[RSP + 0x30]
LEA R12,[RSP + 0x20]
MOV qword ptr [RSP + 0x20],R13
CALL 0x00150490
MOV RSI,RBX
MOV RDI,R12
LEA RDX,[RBX + RAX*0x1]
CALL 0x001bc4c0
LEA RDI,[RBP + 0x6ba0]
MOV RSI,R12
CALL 0x001ca390
MOV RDI,qword ptr [RSP + 0x20]
TEST RAX,RAX
JZ 0x001c82e0
CMP RDI,R13
JZ 0x001c82a9
CALL 0x00338a40
MOV RDX,qword ptr [R14 + 0x8]
MOV R8D,0x3
LEA RCX,[0x3dfd9b]
JMP 0x001c8211
MOV RDX,qword ptr [R14 + 0x8]
MOV R8D,0xd
LEA RCX,[0x3dfdb8]
JMP 0x001c8211
CMP RDI,R13
JZ 0x001c8300
CALL 0x00338a40
MOV RAX,qword ptr [0x004ba7c8]
JMP 0x001c8082
MOV RAX,qword ptr [0x004ba7c8]
JMP 0x001c8082
LEA RDX,[0x3e0108]
MOV ESI,0x5c
LEA RDI,[0x3c9279]
CALL 0x001e9890
LEA RDI,[0x3e0023]
CALL 0x00377370
MOV RAX,qword ptr [RSP + 0x8]
MOV R12,qword ptr [RAX + 0x8]
LEA RAX,[RBP + 0x10]
MOV qword ptr [RSP + 0x20],RAX
JMP 0x001c80b5
(translation_unit "undefined8\nFUN_001c7e90(undefined8 param_1,long param_2,char *param_3,long *param_4,long param_5,\n            undefined8 *param_6,ulong *param_7)\n\n{\n  ulong uVar1;\n  byte bVar2;\n  char cVar3;\n  int iVar4;\n  char *pcVar5;\n  long lVar6;\n  char *__s;\n  char *__format;\n  undefined8 uVar7;\n  size_t sVar8;\n  undefined8 uVar9;\n  undefined1 *local_58 [2];\n  undefined1 local_48 [24];\n  \n  pcVar5 = strchr(param_3,0x40);\n  __s = param_3;\n  if (pcVar5 == (char *)0x0) {\nLAB_001c7f12:\n    lVar6 = FUN_002df9a0(param_1,__s,pcVar5);\n    *param_4 = lVar6;\njoined_r0x001c805a:\n    if (lVar6 != 0) {\n      bVar2 = *(byte *)(lVar6 + 0x3a) & 7;\n      if (bVar2 == 0) goto LAB_001c7f3f;\nLAB_001c7fc0:\n      if (bVar2 != 4) {\n        return 0;\n      }\n      goto LAB_001c7fc4;\n    }\n  }\n  else {\n    sVar8 = (long)pcVar5 - (long)param_3;\n    __s = (char *)*param_6;\n    uVar1 = sVar8 + 1;\n    if (*param_7 < uVar1) {\n      __s = (char *)FUN_00336eb0(__s,uVar1);\n      *param_6 = __s;\n      *param_7 = uVar1;\n    }\n    memcpy(__s,param_3,sVar8);\n    __s[sVar8] = '\0';\n    if (pcVar5[1] != '@') {\n      pcVar5 = pcVar5 + 1;\n      goto LAB_001c7f12;\n    }\n    lVar6 = FUN_002df9a0(param_1,__s,pcVar5 + 2);\n    if (lVar6 == 0) {\nLAB_001c8040:\n      lVar6 = FUN_002df9a0(param_1,__s,0);\n      *param_4 = lVar6;\n      goto joined_r0x001c805a;\n    }\n    bVar2 = *(byte *)(lVar6 + 0x3a) & 7;\n    if ((*(byte *)(lVar6 + 0x3a) & 7) != 0) {\n      if (bVar2 == 4) goto LAB_001c7f9d;\n      goto LAB_001c8040;\n    }\n    if ((*(int *)(lVar6 + 0x18) != 0) || ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0)) goto LAB_001c8040;\nLAB_001c7f9d:\n    if (*(byte *)(lVar6 + 0x38) >> 4 == 2) goto LAB_001c8040;\n    *param_4 = lVar6;\n    if (bVar2 != 0) goto LAB_001c7fc0;\nLAB_001c7f3f:\n    if (*(int *)(lVar6 + 0x18) != 0) {\n      return 0;\n    }\n    if ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0) {\n      return 0;\n    }\nLAB_001c7fc4:\n    cVar3 = FUN_002d0d40(*(undefined8 *)(param_2 + 8),__s);\n    if (cVar3 != '\0') {\n      return 0;\n    }\n    if (*(byte *)(lVar6 + 0x38) >> 4 != 2) {\n      return 1;\n    }\n  }\n  lVar6 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n  if (lVar6 != 0) {\n    if (*(long *)(lVar6 + 0x6bb8) != 0) {\n      local_58[0] = local_48;\n      sVar8 = strlen(__s);\n      FUN_001bc4c0(local_58,__s,__s + sVar8);\n      lVar6 = FUN_001ca390(lVar6 + 0x6ba0,local_58);\n      if (lVar6 != 0) {\n        if (local_58[0] != local_48) {\n          FUN_00338a40();\n        }\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 3;\n        pcVar5 = "-u ";\n        goto LAB_001c8211;\n      }\n      if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }\n    }\n    lVar6 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n    if (lVar6 == 0) goto LAB_001c830c;\n    if (*(long *)(lVar6 + 0x1f28) == 0) {\n      lVar6 = *(long *)(param_2 + 8);\n    }\n    else {\n      local_58[0] = local_48;\n      sVar8 = strlen(__s);\n      FUN_001bc4c0(local_58,__s,__s + sVar8);\n      lVar6 = FUN_001ca390(lVar6 + 0x1f10,local_58);\n      if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }\n      if (lVar6 != 0) {\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 0x18;\n        pcVar5 = "--export-dynamic-symbol ";\n        goto LAB_001c8211;\n      }\n      lVar6 = *(long *)(param_2 + 8);\n    }\n    local_58[0] = local_48;\n    sVar8 = strlen(__s);\n    FUN_001bc4c0(local_58,__s,__s + sVar8);\n    lVar6 = FUN_001ca390(lVar6 + 0x70,local_58);\n    if (local_58[0] != local_48) {\n      FUN_00338a40();\n    }\n    if (lVar6 != 0) {\n      sVar8 = strlen(__s);\n      pcVar5 = (char *)thunk_FUN_00337270(sVar8 + 100);\n      __format = (char *)gettext("script or expression reference to %s");\n      snprintf(pcVar5,sVar8 + 100,__format,__s);\n      sVar8 = strlen(pcVar5);\n      FUN_00340370(param_5,0,*(undefined8 *)(param_5 + 8),pcVar5,sVar8);\n      thunk_FUN_00338a40(pcVar5);\n      return 1;\n    }\n    if (*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) {\n      if (((*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051) != '\0') ||\n          (pcVar5 = (char *)FUN_002a09b0(), pcVar5 == (char *)0x0)) ||\n         (iVar4 = strcmp(__s,pcVar5), iVar4 != 0)) {\n        return 2;\n      }\n      uVar7 = *(undefined8 *)(param_5 + 8);\n      uVar9 = 0xd;\n      pcVar5 = "entry symbol ";\nLAB_001c8211:\n      FUN_00340370(param_5,0,uVar7,pcVar5,uVar9);\n      sVar8 = strlen(__s);\n      if (sVar8 <= 0x7fffffffffffffffU - *(long *)(param_5 + 8)) {\n        FUN_00340cc0(param_5,__s,sVar8);\n        return 1;\n      }\n                    /* WARNING: Subroutine does not return */\n      FUN_00377370("basic_string::append");\n    }\n  }\nLAB_001c830c:\n                    /* WARNING: Subroutine does not return */\n  FUN_001e9890("../../gold/parameters.h",0x5c,"options");\n}\n\n" (function_definition "undefined8\nFUN_001c7e90(undefined8 param_1,long param_2,char *param_3,long *param_4,long param_5,\n            undefined8 *param_6,ulong *param_7)\n\n{\n  ulong uVar1;\n  byte bVar2;\n  char cVar3;\n  int iVar4;\n  char *pcVar5;\n  long lVar6;\n  char *__s;\n  char *__format;\n  undefined8 uVar7;\n  size_t sVar8;\n  undefined8 uVar9;\n  undefined1 *local_58 [2];\n  undefined1 local_48 [24];\n  \n  pcVar5 = strchr(param_3,0x40);\n  __s = param_3;\n  if (pcVar5 == (char *)0x0) {\nLAB_001c7f12:\n    lVar6 = FUN_002df9a0(param_1,__s,pcVar5);\n    *param_4 = lVar6;\njoined_r0x001c805a:\n    if (lVar6 != 0) {\n      bVar2 = *(byte *)(lVar6 + 0x3a) & 7;\n      if (bVar2 == 0) goto LAB_001c7f3f;\nLAB_001c7fc0:\n      if (bVar2 != 4) {\n        return 0;\n      }\n      goto LAB_001c7fc4;\n    }\n  }\n  else {\n    sVar8 = (long)pcVar5 - (long)param_3;\n    __s = (char *)*param_6;\n    uVar1 = sVar8 + 1;\n    if (*param_7 < uVar1) {\n      __s = (char *)FUN_00336eb0(__s,uVar1);\n      *param_6 = __s;\n      *param_7 = uVar1;\n    }\n    memcpy(__s,param_3,sVar8);\n    __s[sVar8] = '\0';\n    if (pcVar5[1] != '@') {\n      pcVar5 = pcVar5 + 1;\n      goto LAB_001c7f12;\n    }\n    lVar6 = FUN_002df9a0(param_1,__s,pcVar5 + 2);\n    if (lVar6 == 0) {\nLAB_001c8040:\n      lVar6 = FUN_002df9a0(param_1,__s,0);\n      *param_4 = lVar6;\n      goto joined_r0x001c805a;\n    }\n    bVar2 = *(byte *)(lVar6 + 0x3a) & 7;\n    if ((*(byte *)(lVar6 + 0x3a) & 7) != 0) {\n      if (bVar2 == 4) goto LAB_001c7f9d;\n      goto LAB_001c8040;\n    }\n    if ((*(int *)(lVar6 + 0x18) != 0) || ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0)) goto LAB_001c8040;\nLAB_001c7f9d:\n    if (*(byte *)(lVar6 + 0x38) >> 4 == 2) goto LAB_001c8040;\n    *param_4 = lVar6;\n    if (bVar2 != 0) goto LAB_001c7fc0;\nLAB_001c7f3f:\n    if (*(int *)(lVar6 + 0x18) != 0) {\n      return 0;\n    }\n    if ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0) {\n      return 0;\n    }\nLAB_001c7fc4:\n    cVar3 = FUN_002d0d40(*(undefined8 *)(param_2 + 8),__s);\n    if (cVar3 != '\0') {\n      return 0;\n    }\n    if (*(byte *)(lVar6 + 0x38) >> 4 != 2) {\n      return 1;\n    }\n  }\n  lVar6 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n  if (lVar6 != 0) {\n    if (*(long *)(lVar6 + 0x6bb8) != 0) {\n      local_58[0] = local_48;\n      sVar8 = strlen(__s);\n      FUN_001bc4c0(local_58,__s,__s + sVar8);\n      lVar6 = FUN_001ca390(lVar6 + 0x6ba0,local_58);\n      if (lVar6 != 0) {\n        if (local_58[0] != local_48) {\n          FUN_00338a40();\n        }\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 3;\n        pcVar5 = "-u ";\n        goto LAB_001c8211;\n      }\n      if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }\n    }\n    lVar6 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n    if (lVar6 == 0) goto LAB_001c830c;\n    if (*(long *)(lVar6 + 0x1f28) == 0) {\n      lVar6 = *(long *)(param_2 + 8);\n    }\n    else {\n      local_58[0] = local_48;\n      sVar8 = strlen(__s);\n      FUN_001bc4c0(local_58,__s,__s + sVar8);\n      lVar6 = FUN_001ca390(lVar6 + 0x1f10,local_58);\n      if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }\n      if (lVar6 != 0) {\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 0x18;\n        pcVar5 = "--export-dynamic-symbol ";\n        goto LAB_001c8211;\n      }\n      lVar6 = *(long *)(param_2 + 8);\n    }\n    local_58[0] = local_48;\n    sVar8 = strlen(__s);\n    FUN_001bc4c0(local_58,__s,__s + sVar8);\n    lVar6 = FUN_001ca390(lVar6 + 0x70,local_58);\n    if (local_58[0] != local_48) {\n      FUN_00338a40();\n    }\n    if (lVar6 != 0) {\n      sVar8 = strlen(__s);\n      pcVar5 = (char *)thunk_FUN_00337270(sVar8 + 100);\n      __format = (char *)gettext("script or expression reference to %s");\n      snprintf(pcVar5,sVar8 + 100,__format,__s);\n      sVar8 = strlen(pcVar5);\n      FUN_00340370(param_5,0,*(undefined8 *)(param_5 + 8),pcVar5,sVar8);\n      thunk_FUN_00338a40(pcVar5);\n      return 1;\n    }\n    if (*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) {\n      if (((*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051) != '\0') ||\n          (pcVar5 = (char *)FUN_002a09b0(), pcVar5 == (char *)0x0)) ||\n         (iVar4 = strcmp(__s,pcVar5), iVar4 != 0)) {\n        return 2;\n      }\n      uVar7 = *(undefined8 *)(param_5 + 8);\n      uVar9 = 0xd;\n      pcVar5 = "entry symbol ";\nLAB_001c8211:\n      FUN_00340370(param_5,0,uVar7,pcVar5,uVar9);\n      sVar8 = strlen(__s);\n      if (sVar8 <= 0x7fffffffffffffffU - *(long *)(param_5 + 8)) {\n        FUN_00340cc0(param_5,__s,sVar8);\n        return 1;\n      }\n                    /* WARNING: Subroutine does not return */\n      FUN_00377370("basic_string::append");\n    }\n  }\nLAB_001c830c:\n                    /* WARNING: Subroutine does not return */\n  FUN_001e9890("../../gold/parameters.h",0x5c,"options");\n}" type_identifier (function_declarator "FUN_001c7e90(undefined8 param_1,long param_2,char *param_3,long *param_4,long param_5,\n            undefined8 *param_6,ulong *param_7)" identifier (parameter_list "(undefined8 param_1,long param_2,char *param_3,long *param_4,long param_5,\n            undefined8 *param_6,ulong *param_7)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "long *param_4" (sized_type_specifier "long" long) (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "long param_5" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "ulong *param_7" type_identifier (pointer_declarator "*param_7" * identifier)) ))) (compound_statement "{\n  ulong uVar1;\n  byte bVar2;\n  char cVar3;\n  int iVar4;\n  char *pcVar5;\n  long lVar6;\n  char *__s;\n  char *__format;\n  undefined8 uVar7;\n  size_t sVar8;\n  undefined8 uVar9;\n  undefined1 *local_58 [2];\n  undefined1 local_48 [24];\n  \n  pcVar5 = strchr(param_3,0x40);\n  __s = param_3;\n  if (pcVar5 == (char *)0x0) {\nLAB_001c7f12:\n    lVar6 = FUN_002df9a0(param_1,__s,pcVar5);\n    *param_4 = lVar6;\njoined_r0x001c805a:\n    if (lVar6 != 0) {\n      bVar2 = *(byte *)(lVar6 + 0x3a) & 7;\n      if (bVar2 == 0) goto LAB_001c7f3f;\nLAB_001c7fc0:\n      if (bVar2 != 4) {\n        return 0;\n      }\n      goto LAB_001c7fc4;\n    }\n  }\n  else {\n    sVar8 = (long)pcVar5 - (long)param_3;\n    __s = (char *)*param_6;\n    uVar1 = sVar8 + 1;\n    if (*param_7 < uVar1) {\n      __s = (char *)FUN_00336eb0(__s,uVar1);\n      *param_6 = __s;\n      *param_7 = uVar1;\n    }\n    memcpy(__s,param_3,sVar8);\n    __s[sVar8] = '\0';\n    if (pcVar5[1] != '@') {\n      pcVar5 = pcVar5 + 1;\n      goto LAB_001c7f12;\n    }\n    lVar6 = FUN_002df9a0(param_1,__s,pcVar5 + 2);\n    if (lVar6 == 0) {\nLAB_001c8040:\n      lVar6 = FUN_002df9a0(param_1,__s,0);\n      *param_4 = lVar6;\n      goto joined_r0x001c805a;\n    }\n    bVar2 = *(byte *)(lVar6 + 0x3a) & 7;\n    if ((*(byte *)(lVar6 + 0x3a) & 7) != 0) {\n      if (bVar2 == 4) goto LAB_001c7f9d;\n      goto LAB_001c8040;\n    }\n    if ((*(int *)(lVar6 + 0x18) != 0) || ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0)) goto LAB_001c8040;\nLAB_001c7f9d:\n    if (*(byte *)(lVar6 + 0x38) >> 4 == 2) goto LAB_001c8040;\n    *param_4 = lVar6;\n    if (bVar2 != 0) goto LAB_001c7fc0;\nLAB_001c7f3f:\n    if (*(int *)(lVar6 + 0x18) != 0) {\n      return 0;\n    }\n    if ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0) {\n      return 0;\n    }\nLAB_001c7fc4:\n    cVar3 = FUN_002d0d40(*(undefined8 *)(param_2 + 8),__s);\n    if (cVar3 != '\0') {\n      return 0;\n    }\n    if (*(byte *)(lVar6 + 0x38) >> 4 != 2) {\n      return 1;\n    }\n  }\n  lVar6 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n  if (lVar6 != 0) {\n    if (*(long *)(lVar6 + 0x6bb8) != 0) {\n      local_58[0] = local_48;\n      sVar8 = strlen(__s);\n      FUN_001bc4c0(local_58,__s,__s + sVar8);\n      lVar6 = FUN_001ca390(lVar6 + 0x6ba0,local_58);\n      if (lVar6 != 0) {\n        if (local_58[0] != local_48) {\n          FUN_00338a40();\n        }\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 3;\n        pcVar5 = "-u ";\n        goto LAB_001c8211;\n      }\n      if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }\n    }\n    lVar6 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n    if (lVar6 == 0) goto LAB_001c830c;\n    if (*(long *)(lVar6 + 0x1f28) == 0) {\n      lVar6 = *(long *)(param_2 + 8);\n    }\n    else {\n      local_58[0] = local_48;\n      sVar8 = strlen(__s);\n      FUN_001bc4c0(local_58,__s,__s + sVar8);\n      lVar6 = FUN_001ca390(lVar6 + 0x1f10,local_58);\n      if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }\n      if (lVar6 != 0) {\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 0x18;\n        pcVar5 = "--export-dynamic-symbol ";\n        goto LAB_001c8211;\n      }\n      lVar6 = *(long *)(param_2 + 8);\n    }\n    local_58[0] = local_48;\n    sVar8 = strlen(__s);\n    FUN_001bc4c0(local_58,__s,__s + sVar8);\n    lVar6 = FUN_001ca390(lVar6 + 0x70,local_58);\n    if (local_58[0] != local_48) {\n      FUN_00338a40();\n    }\n    if (lVar6 != 0) {\n      sVar8 = strlen(__s);\n      pcVar5 = (char *)thunk_FUN_00337270(sVar8 + 100);\n      __format = (char *)gettext("script or expression reference to %s");\n      snprintf(pcVar5,sVar8 + 100,__format,__s);\n      sVar8 = strlen(pcVar5);\n      FUN_00340370(param_5,0,*(undefined8 *)(param_5 + 8),pcVar5,sVar8);\n      thunk_FUN_00338a40(pcVar5);\n      return 1;\n    }\n    if (*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) {\n      if (((*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051) != '\0') ||\n          (pcVar5 = (char *)FUN_002a09b0(), pcVar5 == (char *)0x0)) ||\n         (iVar4 = strcmp(__s,pcVar5), iVar4 != 0)) {\n        return 2;\n      }\n      uVar7 = *(undefined8 *)(param_5 + 8);\n      uVar9 = 0xd;\n      pcVar5 = "entry symbol ";\nLAB_001c8211:\n      FUN_00340370(param_5,0,uVar7,pcVar5,uVar9);\n      sVar8 = strlen(__s);\n      if (sVar8 <= 0x7fffffffffffffffU - *(long *)(param_5 + 8)) {\n        FUN_00340cc0(param_5,__s,sVar8);\n        return 1;\n      }\n                    /* WARNING: Subroutine does not return */\n      FUN_00377370("basic_string::append");\n    }\n  }\nLAB_001c830c:\n                    /* WARNING: Subroutine does not return */\n  FUN_001e9890("../../gold/parameters.h",0x5c,"options");\n}" { (declaration "ulong uVar1;" type_identifier identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "char *__format;" primitive_type (pointer_declarator "*__format" * identifier) ;) (declaration "undefined8 uVar7;" type_identifier identifier ;) (declaration "size_t sVar8;" primitive_type identifier ;) (declaration "undefined8 uVar9;" type_identifier identifier ;) (declaration "undefined1 *local_58 [2];" type_identifier (pointer_declarator "*local_58 [2]" * (array_declarator "local_58 [2]" identifier [ number_literal ])) ;) (declaration "undefined1 local_48 [24];" type_identifier (array_declarator "local_48 [24]" identifier [ number_literal ]) ;) (expression_statement "pcVar5 = strchr(param_3,0x40);" (assignment_expression "pcVar5 = strchr(param_3,0x40)" identifier = (call_expression "strchr(param_3,0x40)" identifier (argument_list "(param_3,0x40)" ( identifier , number_literal )))) ;) (expression_statement "__s = param_3;" (assignment_expression "__s = param_3" identifier = identifier) ;) (if_statement "if (pcVar5 == (char *)0x0) {\nLAB_001c7f12:\n    lVar6 = FUN_002df9a0(param_1,__s,pcVar5);\n    *param_4 = lVar6;\njoined_r0x001c805a:\n    if (lVar6 != 0) {\n      bVar2 = *(byte *)(lVar6 + 0x3a) & 7;\n      if (bVar2 == 0) goto LAB_001c7f3f;\nLAB_001c7fc0:\n      if (bVar2 != 4) {\n        return 0;\n      }\n      goto LAB_001c7fc4;\n    }\n  }\n  else {\n    sVar8 = (long)pcVar5 - (long)param_3;\n    __s = (char *)*param_6;\n    uVar1 = sVar8 + 1;\n    if (*param_7 < uVar1) {\n      __s = (char *)FUN_00336eb0(__s,uVar1);\n      *param_6 = __s;\n      *param_7 = uVar1;\n    }\n    memcpy(__s,param_3,sVar8);\n    __s[sVar8] = '\0';\n    if (pcVar5[1] != '@') {\n      pcVar5 = pcVar5 + 1;\n      goto LAB_001c7f12;\n    }\n    lVar6 = FUN_002df9a0(param_1,__s,pcVar5 + 2);\n    if (lVar6 == 0) {\nLAB_001c8040:\n      lVar6 = FUN_002df9a0(param_1,__s,0);\n      *param_4 = lVar6;\n      goto joined_r0x001c805a;\n    }\n    bVar2 = *(byte *)(lVar6 + 0x3a) & 7;\n    if ((*(byte *)(lVar6 + 0x3a) & 7) != 0) {\n      if (bVar2 == 4) goto LAB_001c7f9d;\n      goto LAB_001c8040;\n    }\n    if ((*(int *)(lVar6 + 0x18) != 0) || ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0)) goto LAB_001c8040;\nLAB_001c7f9d:\n    if (*(byte *)(lVar6 + 0x38) >> 4 == 2) goto LAB_001c8040;\n    *param_4 = lVar6;\n    if (bVar2 != 0) goto LAB_001c7fc0;\nLAB_001c7f3f:\n    if (*(int *)(lVar6 + 0x18) != 0) {\n      return 0;\n    }\n    if ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0) {\n      return 0;\n    }\nLAB_001c7fc4:\n    cVar3 = FUN_002d0d40(*(undefined8 *)(param_2 + 8),__s);\n    if (cVar3 != '\0') {\n      return 0;\n    }\n    if (*(byte *)(lVar6 + 0x38) >> 4 != 2) {\n      return 1;\n    }\n  }" if (parenthesized_expression "(pcVar5 == (char *)0x0)" ( (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_001c7f12:\n    lVar6 = FUN_002df9a0(param_1,__s,pcVar5);\n    *param_4 = lVar6;\njoined_r0x001c805a:\n    if (lVar6 != 0) {\n      bVar2 = *(byte *)(lVar6 + 0x3a) & 7;\n      if (bVar2 == 0) goto LAB_001c7f3f;\nLAB_001c7fc0:\n      if (bVar2 != 4) {\n        return 0;\n      }\n      goto LAB_001c7fc4;\n    }\n  }" { (labeled_statement "LAB_001c7f12:\n    lVar6 = FUN_002df9a0(param_1,__s,pcVar5);" statement_identifier : (expression_statement "lVar6 = FUN_002df9a0(param_1,__s,pcVar5);" (assignment_expression "lVar6 = FUN_002df9a0(param_1,__s,pcVar5)" identifier = (call_expression "FUN_002df9a0(param_1,__s,pcVar5)" identifier (argument_list "(param_1,__s,pcVar5)" ( identifier , identifier , identifier )))) ;)) (expression_statement "*param_4 = lVar6;" (assignment_expression "*param_4 = lVar6" (pointer_expression "*param_4" * identifier) = identifier) ;) (labeled_statement "joined_r0x001c805a:\n    if (lVar6 != 0) {\n      bVar2 = *(byte *)(lVar6 + 0x3a) & 7;\n      if (bVar2 == 0) goto LAB_001c7f3f;\nLAB_001c7fc0:\n      if (bVar2 != 4) {\n        return 0;\n      }\n      goto LAB_001c7fc4;\n    }" statement_identifier : (if_statement "if (lVar6 != 0) {\n      bVar2 = *(byte *)(lVar6 + 0x3a) & 7;\n      if (bVar2 == 0) goto LAB_001c7f3f;\nLAB_001c7fc0:\n      if (bVar2 != 4) {\n        return 0;\n      }\n      goto LAB_001c7fc4;\n    }" if (parenthesized_expression "(lVar6 != 0)" ( (binary_expression "lVar6 != 0" identifier != number_literal) )) (compound_statement "{\n      bVar2 = *(byte *)(lVar6 + 0x3a) & 7;\n      if (bVar2 == 0) goto LAB_001c7f3f;\nLAB_001c7fc0:\n      if (bVar2 != 4) {\n        return 0;\n      }\n      goto LAB_001c7fc4;\n    }" { (expression_statement "bVar2 = *(byte *)(lVar6 + 0x3a) & 7;" (assignment_expression "bVar2 = *(byte *)(lVar6 + 0x3a) & 7" identifier = (binary_expression "*(byte *)(lVar6 + 0x3a) & 7" (pointer_expression "*(byte *)(lVar6 + 0x3a)" * (cast_expression "(byte *)(lVar6 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x3a)" ( (binary_expression "lVar6 + 0x3a" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (bVar2 == 0) goto LAB_001c7f3f;" if (parenthesized_expression "(bVar2 == 0)" ( (binary_expression "bVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001c7f3f;" goto statement_identifier ;)) (labeled_statement "LAB_001c7fc0:\n      if (bVar2 != 4) {\n        return 0;\n      }" statement_identifier : (if_statement "if (bVar2 != 4) {\n        return 0;\n      }" if (parenthesized_expression "(bVar2 != 4)" ( (binary_expression "bVar2 != 4" identifier != number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) }))) (goto_statement "goto LAB_001c7fc4;" goto statement_identifier ;) }))) }) (else_clause "else {\n    sVar8 = (long)pcVar5 - (long)param_3;\n    __s = (char *)*param_6;\n    uVar1 = sVar8 + 1;\n    if (*param_7 < uVar1) {\n      __s = (char *)FUN_00336eb0(__s,uVar1);\n      *param_6 = __s;\n      *param_7 = uVar1;\n    }\n    memcpy(__s,param_3,sVar8);\n    __s[sVar8] = '\0';\n    if (pcVar5[1] != '@') {\n      pcVar5 = pcVar5 + 1;\n      goto LAB_001c7f12;\n    }\n    lVar6 = FUN_002df9a0(param_1,__s,pcVar5 + 2);\n    if (lVar6 == 0) {\nLAB_001c8040:\n      lVar6 = FUN_002df9a0(param_1,__s,0);\n      *param_4 = lVar6;\n      goto joined_r0x001c805a;\n    }\n    bVar2 = *(byte *)(lVar6 + 0x3a) & 7;\n    if ((*(byte *)(lVar6 + 0x3a) & 7) != 0) {\n      if (bVar2 == 4) goto LAB_001c7f9d;\n      goto LAB_001c8040;\n    }\n    if ((*(int *)(lVar6 + 0x18) != 0) || ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0)) goto LAB_001c8040;\nLAB_001c7f9d:\n    if (*(byte *)(lVar6 + 0x38) >> 4 == 2) goto LAB_001c8040;\n    *param_4 = lVar6;\n    if (bVar2 != 0) goto LAB_001c7fc0;\nLAB_001c7f3f:\n    if (*(int *)(lVar6 + 0x18) != 0) {\n      return 0;\n    }\n    if ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0) {\n      return 0;\n    }\nLAB_001c7fc4:\n    cVar3 = FUN_002d0d40(*(undefined8 *)(param_2 + 8),__s);\n    if (cVar3 != '\0') {\n      return 0;\n    }\n    if (*(byte *)(lVar6 + 0x38) >> 4 != 2) {\n      return 1;\n    }\n  }" else (compound_statement "{\n    sVar8 = (long)pcVar5 - (long)param_3;\n    __s = (char *)*param_6;\n    uVar1 = sVar8 + 1;\n    if (*param_7 < uVar1) {\n      __s = (char *)FUN_00336eb0(__s,uVar1);\n      *param_6 = __s;\n      *param_7 = uVar1;\n    }\n    memcpy(__s,param_3,sVar8);\n    __s[sVar8] = '\0';\n    if (pcVar5[1] != '@') {\n      pcVar5 = pcVar5 + 1;\n      goto LAB_001c7f12;\n    }\n    lVar6 = FUN_002df9a0(param_1,__s,pcVar5 + 2);\n    if (lVar6 == 0) {\nLAB_001c8040:\n      lVar6 = FUN_002df9a0(param_1,__s,0);\n      *param_4 = lVar6;\n      goto joined_r0x001c805a;\n    }\n    bVar2 = *(byte *)(lVar6 + 0x3a) & 7;\n    if ((*(byte *)(lVar6 + 0x3a) & 7) != 0) {\n      if (bVar2 == 4) goto LAB_001c7f9d;\n      goto LAB_001c8040;\n    }\n    if ((*(int *)(lVar6 + 0x18) != 0) || ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0)) goto LAB_001c8040;\nLAB_001c7f9d:\n    if (*(byte *)(lVar6 + 0x38) >> 4 == 2) goto LAB_001c8040;\n    *param_4 = lVar6;\n    if (bVar2 != 0) goto LAB_001c7fc0;\nLAB_001c7f3f:\n    if (*(int *)(lVar6 + 0x18) != 0) {\n      return 0;\n    }\n    if ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0) {\n      return 0;\n    }\nLAB_001c7fc4:\n    cVar3 = FUN_002d0d40(*(undefined8 *)(param_2 + 8),__s);\n    if (cVar3 != '\0') {\n      return 0;\n    }\n    if (*(byte *)(lVar6 + 0x38) >> 4 != 2) {\n      return 1;\n    }\n  }" { (expression_statement "sVar8 = (long)pcVar5 - (long)param_3;" (assignment_expression "sVar8 = (long)pcVar5 - (long)param_3" identifier = (binary_expression "(long)pcVar5 - (long)param_3" (cast_expression "(long)pcVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "__s = (char *)*param_6;" (assignment_expression "__s = (char *)*param_6" identifier = (cast_expression "(char *)*param_6" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_6" * identifier))) ;) (expression_statement "uVar1 = sVar8 + 1;" (assignment_expression "uVar1 = sVar8 + 1" identifier = (binary_expression "sVar8 + 1" identifier + number_literal)) ;) (if_statement "if (*param_7 < uVar1) {\n      __s = (char *)FUN_00336eb0(__s,uVar1);\n      *param_6 = __s;\n      *param_7 = uVar1;\n    }" if (parenthesized_expression "(*param_7 < uVar1)" ( (binary_expression "*param_7 < uVar1" (pointer_expression "*param_7" * identifier) < identifier) )) (compound_statement "{\n      __s = (char *)FUN_00336eb0(__s,uVar1);\n      *param_6 = __s;\n      *param_7 = uVar1;\n    }" { (expression_statement "__s = (char *)FUN_00336eb0(__s,uVar1);" (assignment_expression "__s = (char *)FUN_00336eb0(__s,uVar1)" identifier = (cast_expression "(char *)FUN_00336eb0(__s,uVar1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00336eb0(__s,uVar1)" identifier (argument_list "(__s,uVar1)" ( identifier , identifier ))))) ;) (expression_statement "*param_6 = __s;" (assignment_expression "*param_6 = __s" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "*param_7 = uVar1;" (assignment_expression "*param_7 = uVar1" (pointer_expression "*param_7" * identifier) = identifier) ;) })) (expression_statement "memcpy(__s,param_3,sVar8);" (call_expression "memcpy(__s,param_3,sVar8)" identifier (argument_list "(__s,param_3,sVar8)" ( identifier , identifier , identifier ))) ;) (expression_statement "__s[sVar8] = '\0';" (assignment_expression "__s[sVar8] = '\0'" (subscript_expression "__s[sVar8]" identifier [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (pcVar5[1] != '@') {\n      pcVar5 = pcVar5 + 1;\n      goto LAB_001c7f12;\n    }" if (parenthesized_expression "(pcVar5[1] != '@')" ( (binary_expression "pcVar5[1] != '@'" (subscript_expression "pcVar5[1]" identifier [ number_literal ]) != (char_literal "'@'" ' character ')) )) (compound_statement "{\n      pcVar5 = pcVar5 + 1;\n      goto LAB_001c7f12;\n    }" { (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_001c7f12;" goto statement_identifier ;) })) (expression_statement "lVar6 = FUN_002df9a0(param_1,__s,pcVar5 + 2);" (assignment_expression "lVar6 = FUN_002df9a0(param_1,__s,pcVar5 + 2)" identifier = (call_expression "FUN_002df9a0(param_1,__s,pcVar5 + 2)" identifier (argument_list "(param_1,__s,pcVar5 + 2)" ( identifier , identifier , (binary_expression "pcVar5 + 2" identifier + number_literal) )))) ;) (if_statement "if (lVar6 == 0) {\nLAB_001c8040:\n      lVar6 = FUN_002df9a0(param_1,__s,0);\n      *param_4 = lVar6;\n      goto joined_r0x001c805a;\n    }" if (parenthesized_expression "(lVar6 == 0)" ( (binary_expression "lVar6 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_001c8040:\n      lVar6 = FUN_002df9a0(param_1,__s,0);\n      *param_4 = lVar6;\n      goto joined_r0x001c805a;\n    }" { (labeled_statement "LAB_001c8040:\n      lVar6 = FUN_002df9a0(param_1,__s,0);" statement_identifier : (expression_statement "lVar6 = FUN_002df9a0(param_1,__s,0);" (assignment_expression "lVar6 = FUN_002df9a0(param_1,__s,0)" identifier = (call_expression "FUN_002df9a0(param_1,__s,0)" identifier (argument_list "(param_1,__s,0)" ( identifier , identifier , number_literal )))) ;)) (expression_statement "*param_4 = lVar6;" (assignment_expression "*param_4 = lVar6" (pointer_expression "*param_4" * identifier) = identifier) ;) (goto_statement "goto joined_r0x001c805a;" goto statement_identifier ;) })) (expression_statement "bVar2 = *(byte *)(lVar6 + 0x3a) & 7;" (assignment_expression "bVar2 = *(byte *)(lVar6 + 0x3a) & 7" identifier = (binary_expression "*(byte *)(lVar6 + 0x3a) & 7" (pointer_expression "*(byte *)(lVar6 + 0x3a)" * (cast_expression "(byte *)(lVar6 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x3a)" ( (binary_expression "lVar6 + 0x3a" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if ((*(byte *)(lVar6 + 0x3a) & 7) != 0) {\n      if (bVar2 == 4) goto LAB_001c7f9d;\n      goto LAB_001c8040;\n    }" if (parenthesized_expression "((*(byte *)(lVar6 + 0x3a) & 7) != 0)" ( (binary_expression "(*(byte *)(lVar6 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)(lVar6 + 0x3a) & 7)" ( (binary_expression "*(byte *)(lVar6 + 0x3a) & 7" (pointer_expression "*(byte *)(lVar6 + 0x3a)" * (cast_expression "(byte *)(lVar6 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x3a)" ( (binary_expression "lVar6 + 0x3a" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      if (bVar2 == 4) goto LAB_001c7f9d;\n      goto LAB_001c8040;\n    }" { (if_statement "if (bVar2 == 4) goto LAB_001c7f9d;" if (parenthesized_expression "(bVar2 == 4)" ( (binary_expression "bVar2 == 4" identifier == number_literal) )) (goto_statement "goto LAB_001c7f9d;" goto statement_identifier ;)) (goto_statement "goto LAB_001c8040;" goto statement_identifier ;) })) (if_statement "if ((*(int *)(lVar6 + 0x18) != 0) || ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0)) goto LAB_001c8040;" if (parenthesized_expression "((*(int *)(lVar6 + 0x18) != 0) || ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0))" ( (binary_expression "(*(int *)(lVar6 + 0x18) != 0) || ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0)" (parenthesized_expression "(*(int *)(lVar6 + 0x18) != 0)" ( (binary_expression "*(int *)(lVar6 + 0x18) != 0" (pointer_expression "*(int *)(lVar6 + 0x18)" * (cast_expression "(int *)(lVar6 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x18)" ( (binary_expression "lVar6 + 0x18" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "((*(byte *)(lVar6 + 0x3b) & 0x20) == 0)" ( (binary_expression "(*(byte *)(lVar6 + 0x3b) & 0x20) == 0" (parenthesized_expression "(*(byte *)(lVar6 + 0x3b) & 0x20)" ( (binary_expression "*(byte *)(lVar6 + 0x3b) & 0x20" (pointer_expression "*(byte *)(lVar6 + 0x3b)" * (cast_expression "(byte *)(lVar6 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x3b)" ( (binary_expression "lVar6 + 0x3b" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_001c8040;" goto statement_identifier ;)) (labeled_statement "LAB_001c7f9d:\n    if (*(byte *)(lVar6 + 0x38) >> 4 == 2) goto LAB_001c8040;" statement_identifier : (if_statement "if (*(byte *)(lVar6 + 0x38) >> 4 == 2) goto LAB_001c8040;" if (parenthesized_expression "(*(byte *)(lVar6 + 0x38) >> 4 == 2)" ( (binary_expression "*(byte *)(lVar6 + 0x38) >> 4 == 2" (binary_expression "*(byte *)(lVar6 + 0x38) >> 4" (pointer_expression "*(byte *)(lVar6 + 0x38)" * (cast_expression "(byte *)(lVar6 + 0x38)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x38)" ( (binary_expression "lVar6 + 0x38" identifier + number_literal) )))) >> number_literal) == number_literal) )) (goto_statement "goto LAB_001c8040;" goto statement_identifier ;))) (expression_statement "*param_4 = lVar6;" (assignment_expression "*param_4 = lVar6" (pointer_expression "*param_4" * identifier) = identifier) ;) (if_statement "if (bVar2 != 0) goto LAB_001c7fc0;" if (parenthesized_expression "(bVar2 != 0)" ( (binary_expression "bVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_001c7fc0;" goto statement_identifier ;)) (labeled_statement "LAB_001c7f3f:\n    if (*(int *)(lVar6 + 0x18) != 0) {\n      return 0;\n    }" statement_identifier : (if_statement "if (*(int *)(lVar6 + 0x18) != 0) {\n      return 0;\n    }" if (parenthesized_expression "(*(int *)(lVar6 + 0x18) != 0)" ( (binary_expression "*(int *)(lVar6 + 0x18) != 0" (pointer_expression "*(int *)(lVar6 + 0x18)" * (cast_expression "(int *)(lVar6 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x18)" ( (binary_expression "lVar6 + 0x18" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) }))) (if_statement "if ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0) {\n      return 0;\n    }" if (parenthesized_expression "((*(byte *)(lVar6 + 0x3b) & 0x20) == 0)" ( (binary_expression "(*(byte *)(lVar6 + 0x3b) & 0x20) == 0" (parenthesized_expression "(*(byte *)(lVar6 + 0x3b) & 0x20)" ( (binary_expression "*(byte *)(lVar6 + 0x3b) & 0x20" (pointer_expression "*(byte *)(lVar6 + 0x3b)" * (cast_expression "(byte *)(lVar6 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x3b)" ( (binary_expression "lVar6 + 0x3b" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (labeled_statement "LAB_001c7fc4:\n    cVar3 = FUN_002d0d40(*(undefined8 *)(param_2 + 8),__s);" statement_identifier : (expression_statement "cVar3 = FUN_002d0d40(*(undefined8 *)(param_2 + 8),__s);" (assignment_expression "cVar3 = FUN_002d0d40(*(undefined8 *)(param_2 + 8),__s)" identifier = (call_expression "FUN_002d0d40(*(undefined8 *)(param_2 + 8),__s)" identifier (argument_list "(*(undefined8 *)(param_2 + 8),__s)" ( (pointer_expression "*(undefined8 *)(param_2 + 8)" * (cast_expression "(undefined8 *)(param_2 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) , identifier )))) ;)) (if_statement "if (cVar3 != '\0') {\n      return 0;\n    }" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (*(byte *)(lVar6 + 0x38) >> 4 != 2) {\n      return 1;\n    }" if (parenthesized_expression "(*(byte *)(lVar6 + 0x38) >> 4 != 2)" ( (binary_expression "*(byte *)(lVar6 + 0x38) >> 4 != 2" (binary_expression "*(byte *)(lVar6 + 0x38) >> 4" (pointer_expression "*(byte *)(lVar6 + 0x38)" * (cast_expression "(byte *)(lVar6 + 0x38)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x38)" ( (binary_expression "lVar6 + 0x38" identifier + number_literal) )))) >> number_literal) != number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) }))) (expression_statement "lVar6 = *(long *)(PTR_DAT_004ba7c8 + 0x10);" (assignment_expression "lVar6 = *(long *)(PTR_DAT_004ba7c8 + 0x10)" identifier = (pointer_expression "*(long *)(PTR_DAT_004ba7c8 + 0x10)" * (cast_expression "(long *)(PTR_DAT_004ba7c8 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_004ba7c8 + 0x10)" ( (binary_expression "PTR_DAT_004ba7c8 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (lVar6 != 0) {\n    if (*(long *)(lVar6 + 0x6bb8) != 0) {\n      local_58[0] = local_48;\n      sVar8 = strlen(__s);\n      FUN_001bc4c0(local_58,__s,__s + sVar8);\n      lVar6 = FUN_001ca390(lVar6 + 0x6ba0,local_58);\n      if (lVar6 != 0) {\n        if (local_58[0] != local_48) {\n          FUN_00338a40();\n        }\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 3;\n        pcVar5 = "-u ";\n        goto LAB_001c8211;\n      }\n      if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }\n    }\n    lVar6 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n    if (lVar6 == 0) goto LAB_001c830c;\n    if (*(long *)(lVar6 + 0x1f28) == 0) {\n      lVar6 = *(long *)(param_2 + 8);\n    }\n    else {\n      local_58[0] = local_48;\n      sVar8 = strlen(__s);\n      FUN_001bc4c0(local_58,__s,__s + sVar8);\n      lVar6 = FUN_001ca390(lVar6 + 0x1f10,local_58);\n      if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }\n      if (lVar6 != 0) {\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 0x18;\n        pcVar5 = "--export-dynamic-symbol ";\n        goto LAB_001c8211;\n      }\n      lVar6 = *(long *)(param_2 + 8);\n    }\n    local_58[0] = local_48;\n    sVar8 = strlen(__s);\n    FUN_001bc4c0(local_58,__s,__s + sVar8);\n    lVar6 = FUN_001ca390(lVar6 + 0x70,local_58);\n    if (local_58[0] != local_48) {\n      FUN_00338a40();\n    }\n    if (lVar6 != 0) {\n      sVar8 = strlen(__s);\n      pcVar5 = (char *)thunk_FUN_00337270(sVar8 + 100);\n      __format = (char *)gettext("script or expression reference to %s");\n      snprintf(pcVar5,sVar8 + 100,__format,__s);\n      sVar8 = strlen(pcVar5);\n      FUN_00340370(param_5,0,*(undefined8 *)(param_5 + 8),pcVar5,sVar8);\n      thunk_FUN_00338a40(pcVar5);\n      return 1;\n    }\n    if (*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) {\n      if (((*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051) != '\0') ||\n          (pcVar5 = (char *)FUN_002a09b0(), pcVar5 == (char *)0x0)) ||\n         (iVar4 = strcmp(__s,pcVar5), iVar4 != 0)) {\n        return 2;\n      }\n      uVar7 = *(undefined8 *)(param_5 + 8);\n      uVar9 = 0xd;\n      pcVar5 = "entry symbol ";\nLAB_001c8211:\n      FUN_00340370(param_5,0,uVar7,pcVar5,uVar9);\n      sVar8 = strlen(__s);\n      if (sVar8 <= 0x7fffffffffffffffU - *(long *)(param_5 + 8)) {\n        FUN_00340cc0(param_5,__s,sVar8);\n        return 1;\n      }\n                    /* WARNING: Subroutine does not return */\n      FUN_00377370("basic_string::append");\n    }\n  }" if (parenthesized_expression "(lVar6 != 0)" ( (binary_expression "lVar6 != 0" identifier != number_literal) )) (compound_statement "{\n    if (*(long *)(lVar6 + 0x6bb8) != 0) {\n      local_58[0] = local_48;\n      sVar8 = strlen(__s);\n      FUN_001bc4c0(local_58,__s,__s + sVar8);\n      lVar6 = FUN_001ca390(lVar6 + 0x6ba0,local_58);\n      if (lVar6 != 0) {\n        if (local_58[0] != local_48) {\n          FUN_00338a40();\n        }\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 3;\n        pcVar5 = "-u ";\n        goto LAB_001c8211;\n      }\n      if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }\n    }\n    lVar6 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n    if (lVar6 == 0) goto LAB_001c830c;\n    if (*(long *)(lVar6 + 0x1f28) == 0) {\n      lVar6 = *(long *)(param_2 + 8);\n    }\n    else {\n      local_58[0] = local_48;\n      sVar8 = strlen(__s);\n      FUN_001bc4c0(local_58,__s,__s + sVar8);\n      lVar6 = FUN_001ca390(lVar6 + 0x1f10,local_58);\n      if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }\n      if (lVar6 != 0) {\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 0x18;\n        pcVar5 = "--export-dynamic-symbol ";\n        goto LAB_001c8211;\n      }\n      lVar6 = *(long *)(param_2 + 8);\n    }\n    local_58[0] = local_48;\n    sVar8 = strlen(__s);\n    FUN_001bc4c0(local_58,__s,__s + sVar8);\n    lVar6 = FUN_001ca390(lVar6 + 0x70,local_58);\n    if (local_58[0] != local_48) {\n      FUN_00338a40();\n    }\n    if (lVar6 != 0) {\n      sVar8 = strlen(__s);\n      pcVar5 = (char *)thunk_FUN_00337270(sVar8 + 100);\n      __format = (char *)gettext("script or expression reference to %s");\n      snprintf(pcVar5,sVar8 + 100,__format,__s);\n      sVar8 = strlen(pcVar5);\n      FUN_00340370(param_5,0,*(undefined8 *)(param_5 + 8),pcVar5,sVar8);\n      thunk_FUN_00338a40(pcVar5);\n      return 1;\n    }\n    if (*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) {\n      if (((*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051) != '\0') ||\n          (pcVar5 = (char *)FUN_002a09b0(), pcVar5 == (char *)0x0)) ||\n         (iVar4 = strcmp(__s,pcVar5), iVar4 != 0)) {\n        return 2;\n      }\n      uVar7 = *(undefined8 *)(param_5 + 8);\n      uVar9 = 0xd;\n      pcVar5 = "entry symbol ";\nLAB_001c8211:\n      FUN_00340370(param_5,0,uVar7,pcVar5,uVar9);\n      sVar8 = strlen(__s);\n      if (sVar8 <= 0x7fffffffffffffffU - *(long *)(param_5 + 8)) {\n        FUN_00340cc0(param_5,__s,sVar8);\n        return 1;\n      }\n                    /* WARNING: Subroutine does not return */\n      FUN_00377370("basic_string::append");\n    }\n  }" { (if_statement "if (*(long *)(lVar6 + 0x6bb8) != 0) {\n      local_58[0] = local_48;\n      sVar8 = strlen(__s);\n      FUN_001bc4c0(local_58,__s,__s + sVar8);\n      lVar6 = FUN_001ca390(lVar6 + 0x6ba0,local_58);\n      if (lVar6 != 0) {\n        if (local_58[0] != local_48) {\n          FUN_00338a40();\n        }\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 3;\n        pcVar5 = "-u ";\n        goto LAB_001c8211;\n      }\n      if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }\n    }" if (parenthesized_expression "(*(long *)(lVar6 + 0x6bb8) != 0)" ( (binary_expression "*(long *)(lVar6 + 0x6bb8) != 0" (pointer_expression "*(long *)(lVar6 + 0x6bb8)" * (cast_expression "(long *)(lVar6 + 0x6bb8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x6bb8)" ( (binary_expression "lVar6 + 0x6bb8" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      local_58[0] = local_48;\n      sVar8 = strlen(__s);\n      FUN_001bc4c0(local_58,__s,__s + sVar8);\n      lVar6 = FUN_001ca390(lVar6 + 0x6ba0,local_58);\n      if (lVar6 != 0) {\n        if (local_58[0] != local_48) {\n          FUN_00338a40();\n        }\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 3;\n        pcVar5 = "-u ";\n        goto LAB_001c8211;\n      }\n      if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }\n    }" { (expression_statement "local_58[0] = local_48;" (assignment_expression "local_58[0] = local_48" (subscript_expression "local_58[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "sVar8 = strlen(__s);" (assignment_expression "sVar8 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (expression_statement "FUN_001bc4c0(local_58,__s,__s + sVar8);" (call_expression "FUN_001bc4c0(local_58,__s,__s + sVar8)" identifier (argument_list "(local_58,__s,__s + sVar8)" ( identifier , identifier , (binary_expression "__s + sVar8" identifier + identifier) ))) ;) (expression_statement "lVar6 = FUN_001ca390(lVar6 + 0x6ba0,local_58);" (assignment_expression "lVar6 = FUN_001ca390(lVar6 + 0x6ba0,local_58)" identifier = (call_expression "FUN_001ca390(lVar6 + 0x6ba0,local_58)" identifier (argument_list "(lVar6 + 0x6ba0,local_58)" ( (binary_expression "lVar6 + 0x6ba0" identifier + number_literal) , identifier )))) ;) (if_statement "if (lVar6 != 0) {\n        if (local_58[0] != local_48) {\n          FUN_00338a40();\n        }\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 3;\n        pcVar5 = "-u ";\n        goto LAB_001c8211;\n      }" if (parenthesized_expression "(lVar6 != 0)" ( (binary_expression "lVar6 != 0" identifier != number_literal) )) (compound_statement "{\n        if (local_58[0] != local_48) {\n          FUN_00338a40();\n        }\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 3;\n        pcVar5 = "-u ";\n        goto LAB_001c8211;\n      }" { (if_statement "if (local_58[0] != local_48) {\n          FUN_00338a40();\n        }" if (parenthesized_expression "(local_58[0] != local_48)" ( (binary_expression "local_58[0] != local_48" (subscript_expression "local_58[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n          FUN_00338a40();\n        }" { (expression_statement "FUN_00338a40();" (call_expression "FUN_00338a40()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar7 = *(undefined8 *)(param_5 + 8);" (assignment_expression "uVar7 = *(undefined8 *)(param_5 + 8)" identifier = (pointer_expression "*(undefined8 *)(param_5 + 8)" * (cast_expression "(undefined8 *)(param_5 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 8)" ( (binary_expression "param_5 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = 3;" (assignment_expression "uVar9 = 3" identifier = number_literal) ;) (expression_statement "pcVar5 = "-u ";" (assignment_expression "pcVar5 = "-u "" identifier = (string_literal ""-u "" " string_content ")) ;) (goto_statement "goto LAB_001c8211;" goto statement_identifier ;) })) (if_statement "if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }" if (parenthesized_expression "(local_58[0] != local_48)" ( (binary_expression "local_58[0] != local_48" (subscript_expression "local_58[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n        FUN_00338a40();\n      }" { (expression_statement "FUN_00338a40();" (call_expression "FUN_00338a40()" identifier (argument_list "()" ( ))) ;) })) })) (expression_statement "lVar6 = *(long *)(PTR_DAT_004ba7c8 + 0x10);" (assignment_expression "lVar6 = *(long *)(PTR_DAT_004ba7c8 + 0x10)" identifier = (pointer_expression "*(long *)(PTR_DAT_004ba7c8 + 0x10)" * (cast_expression "(long *)(PTR_DAT_004ba7c8 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_004ba7c8 + 0x10)" ( (binary_expression "PTR_DAT_004ba7c8 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (lVar6 == 0) goto LAB_001c830c;" if (parenthesized_expression "(lVar6 == 0)" ( (binary_expression "lVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001c830c;" goto statement_identifier ;)) (if_statement "if (*(long *)(lVar6 + 0x1f28) == 0) {\n      lVar6 = *(long *)(param_2 + 8);\n    }\n    else {\n      local_58[0] = local_48;\n      sVar8 = strlen(__s);\n      FUN_001bc4c0(local_58,__s,__s + sVar8);\n      lVar6 = FUN_001ca390(lVar6 + 0x1f10,local_58);\n      if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }\n      if (lVar6 != 0) {\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 0x18;\n        pcVar5 = "--export-dynamic-symbol ";\n        goto LAB_001c8211;\n      }\n      lVar6 = *(long *)(param_2 + 8);\n    }" if (parenthesized_expression "(*(long *)(lVar6 + 0x1f28) == 0)" ( (binary_expression "*(long *)(lVar6 + 0x1f28) == 0" (pointer_expression "*(long *)(lVar6 + 0x1f28)" * (cast_expression "(long *)(lVar6 + 0x1f28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x1f28)" ( (binary_expression "lVar6 + 0x1f28" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      lVar6 = *(long *)(param_2 + 8);\n    }" { (expression_statement "lVar6 = *(long *)(param_2 + 8);" (assignment_expression "lVar6 = *(long *)(param_2 + 8)" identifier = (pointer_expression "*(long *)(param_2 + 8)" * (cast_expression "(long *)(param_2 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      local_58[0] = local_48;\n      sVar8 = strlen(__s);\n      FUN_001bc4c0(local_58,__s,__s + sVar8);\n      lVar6 = FUN_001ca390(lVar6 + 0x1f10,local_58);\n      if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }\n      if (lVar6 != 0) {\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 0x18;\n        pcVar5 = "--export-dynamic-symbol ";\n        goto LAB_001c8211;\n      }\n      lVar6 = *(long *)(param_2 + 8);\n    }" else (compound_statement "{\n      local_58[0] = local_48;\n      sVar8 = strlen(__s);\n      FUN_001bc4c0(local_58,__s,__s + sVar8);\n      lVar6 = FUN_001ca390(lVar6 + 0x1f10,local_58);\n      if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }\n      if (lVar6 != 0) {\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 0x18;\n        pcVar5 = "--export-dynamic-symbol ";\n        goto LAB_001c8211;\n      }\n      lVar6 = *(long *)(param_2 + 8);\n    }" { (expression_statement "local_58[0] = local_48;" (assignment_expression "local_58[0] = local_48" (subscript_expression "local_58[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "sVar8 = strlen(__s);" (assignment_expression "sVar8 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (expression_statement "FUN_001bc4c0(local_58,__s,__s + sVar8);" (call_expression "FUN_001bc4c0(local_58,__s,__s + sVar8)" identifier (argument_list "(local_58,__s,__s + sVar8)" ( identifier , identifier , (binary_expression "__s + sVar8" identifier + identifier) ))) ;) (expression_statement "lVar6 = FUN_001ca390(lVar6 + 0x1f10,local_58);" (assignment_expression "lVar6 = FUN_001ca390(lVar6 + 0x1f10,local_58)" identifier = (call_expression "FUN_001ca390(lVar6 + 0x1f10,local_58)" identifier (argument_list "(lVar6 + 0x1f10,local_58)" ( (binary_expression "lVar6 + 0x1f10" identifier + number_literal) , identifier )))) ;) (if_statement "if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }" if (parenthesized_expression "(local_58[0] != local_48)" ( (binary_expression "local_58[0] != local_48" (subscript_expression "local_58[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n        FUN_00338a40();\n      }" { (expression_statement "FUN_00338a40();" (call_expression "FUN_00338a40()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (lVar6 != 0) {\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 0x18;\n        pcVar5 = "--export-dynamic-symbol ";\n        goto LAB_001c8211;\n      }" if (parenthesized_expression "(lVar6 != 0)" ( (binary_expression "lVar6 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 0x18;\n        pcVar5 = "--export-dynamic-symbol ";\n        goto LAB_001c8211;\n      }" { (expression_statement "uVar7 = *(undefined8 *)(param_5 + 8);" (assignment_expression "uVar7 = *(undefined8 *)(param_5 + 8)" identifier = (pointer_expression "*(undefined8 *)(param_5 + 8)" * (cast_expression "(undefined8 *)(param_5 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 8)" ( (binary_expression "param_5 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = 0x18;" (assignment_expression "uVar9 = 0x18" identifier = number_literal) ;) (expression_statement "pcVar5 = "--export-dynamic-symbol ";" (assignment_expression "pcVar5 = "--export-dynamic-symbol "" identifier = (string_literal ""--export-dynamic-symbol "" " string_content ")) ;) (goto_statement "goto LAB_001c8211;" goto statement_identifier ;) })) (expression_statement "lVar6 = *(long *)(param_2 + 8);" (assignment_expression "lVar6 = *(long *)(param_2 + 8)" identifier = (pointer_expression "*(long *)(param_2 + 8)" * (cast_expression "(long *)(param_2 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) ))))) ;) }))) (expression_statement "local_58[0] = local_48;" (assignment_expression "local_58[0] = local_48" (subscript_expression "local_58[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "sVar8 = strlen(__s);" (assignment_expression "sVar8 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (expression_statement "FUN_001bc4c0(local_58,__s,__s + sVar8);" (call_expression "FUN_001bc4c0(local_58,__s,__s + sVar8)" identifier (argument_list "(local_58,__s,__s + sVar8)" ( identifier , identifier , (binary_expression "__s + sVar8" identifier + identifier) ))) ;) (expression_statement "lVar6 = FUN_001ca390(lVar6 + 0x70,local_58);" (assignment_expression "lVar6 = FUN_001ca390(lVar6 + 0x70,local_58)" identifier = (call_expression "FUN_001ca390(lVar6 + 0x70,local_58)" identifier (argument_list "(lVar6 + 0x70,local_58)" ( (binary_expression "lVar6 + 0x70" identifier + number_literal) , identifier )))) ;) (if_statement "if (local_58[0] != local_48) {\n      FUN_00338a40();\n    }" if (parenthesized_expression "(local_58[0] != local_48)" ( (binary_expression "local_58[0] != local_48" (subscript_expression "local_58[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n      FUN_00338a40();\n    }" { (expression_statement "FUN_00338a40();" (call_expression "FUN_00338a40()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (lVar6 != 0) {\n      sVar8 = strlen(__s);\n      pcVar5 = (char *)thunk_FUN_00337270(sVar8 + 100);\n      __format = (char *)gettext("script or expression reference to %s");\n      snprintf(pcVar5,sVar8 + 100,__format,__s);\n      sVar8 = strlen(pcVar5);\n      FUN_00340370(param_5,0,*(undefined8 *)(param_5 + 8),pcVar5,sVar8);\n      thunk_FUN_00338a40(pcVar5);\n      return 1;\n    }" if (parenthesized_expression "(lVar6 != 0)" ( (binary_expression "lVar6 != 0" identifier != number_literal) )) (compound_statement "{\n      sVar8 = strlen(__s);\n      pcVar5 = (char *)thunk_FUN_00337270(sVar8 + 100);\n      __format = (char *)gettext("script or expression reference to %s");\n      snprintf(pcVar5,sVar8 + 100,__format,__s);\n      sVar8 = strlen(pcVar5);\n      FUN_00340370(param_5,0,*(undefined8 *)(param_5 + 8),pcVar5,sVar8);\n      thunk_FUN_00338a40(pcVar5);\n      return 1;\n    }" { (expression_statement "sVar8 = strlen(__s);" (assignment_expression "sVar8 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (expression_statement "pcVar5 = (char *)thunk_FUN_00337270(sVar8 + 100);" (assignment_expression "pcVar5 = (char *)thunk_FUN_00337270(sVar8 + 100)" identifier = (cast_expression "(char *)thunk_FUN_00337270(sVar8 + 100)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "thunk_FUN_00337270(sVar8 + 100)" identifier (argument_list "(sVar8 + 100)" ( (binary_expression "sVar8 + 100" identifier + number_literal) ))))) ;) (expression_statement "__format = (char *)gettext("script or expression reference to %s");" (assignment_expression "__format = (char *)gettext("script or expression reference to %s")" identifier = (cast_expression "(char *)gettext("script or expression reference to %s")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("script or expression reference to %s")" identifier (argument_list "("script or expression reference to %s")" ( (string_literal ""script or expression reference to %s"" " string_content ") ))))) ;) (expression_statement "snprintf(pcVar5,sVar8 + 100,__format,__s);" (call_expression "snprintf(pcVar5,sVar8 + 100,__format,__s)" identifier (argument_list "(pcVar5,sVar8 + 100,__format,__s)" ( identifier , (binary_expression "sVar8 + 100" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "sVar8 = strlen(pcVar5);" (assignment_expression "sVar8 = strlen(pcVar5)" identifier = (call_expression "strlen(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier )))) ;) (expression_statement "FUN_00340370(param_5,0,*(undefined8 *)(param_5 + 8),pcVar5,sVar8);" (call_expression "FUN_00340370(param_5,0,*(undefined8 *)(param_5 + 8),pcVar5,sVar8)" identifier (argument_list "(param_5,0,*(undefined8 *)(param_5 + 8),pcVar5,sVar8)" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_5 + 8)" * (cast_expression "(undefined8 *)(param_5 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 8)" ( (binary_expression "param_5 + 8" identifier + number_literal) )))) , identifier , identifier ))) ;) (expression_statement "thunk_FUN_00338a40(pcVar5);" (call_expression "thunk_FUN_00338a40(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) (if_statement "if (*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) {\n      if (((*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051) != '\0') ||\n          (pcVar5 = (char *)FUN_002a09b0(), pcVar5 == (char *)0x0)) ||\n         (iVar4 = strcmp(__s,pcVar5), iVar4 != 0)) {\n        return 2;\n      }\n      uVar7 = *(undefined8 *)(param_5 + 8);\n      uVar9 = 0xd;\n      pcVar5 = "entry symbol ";\nLAB_001c8211:\n      FUN_00340370(param_5,0,uVar7,pcVar5,uVar9);\n      sVar8 = strlen(__s);\n      if (sVar8 <= 0x7fffffffffffffffU - *(long *)(param_5 + 8)) {\n        FUN_00340cc0(param_5,__s,sVar8);\n        return 1;\n      }\n                    /* WARNING: Subroutine does not return */\n      FUN_00377370("basic_string::append");\n    }" if (parenthesized_expression "(*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0)" ( (binary_expression "*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0" (pointer_expression "*(long *)(PTR_DAT_004ba7c8 + 0x10)" * (cast_expression "(long *)(PTR_DAT_004ba7c8 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_004ba7c8 + 0x10)" ( (binary_expression "PTR_DAT_004ba7c8 + 0x10" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      if (((*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051) != '\0') ||\n          (pcVar5 = (char *)FUN_002a09b0(), pcVar5 == (char *)0x0)) ||\n         (iVar4 = strcmp(__s,pcVar5), iVar4 != 0)) {\n        return 2;\n      }\n      uVar7 = *(undefined8 *)(param_5 + 8);\n      uVar9 = 0xd;\n      pcVar5 = "entry symbol ";\nLAB_001c8211:\n      FUN_00340370(param_5,0,uVar7,pcVar5,uVar9);\n      sVar8 = strlen(__s);\n      if (sVar8 <= 0x7fffffffffffffffU - *(long *)(param_5 + 8)) {\n        FUN_00340cc0(param_5,__s,sVar8);\n        return 1;\n      }\n                    /* WARNING: Subroutine does not return */\n      FUN_00377370("basic_string::append");\n    }" { (if_statement "if (((*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051) != '\0') ||\n          (pcVar5 = (char *)FUN_002a09b0(), pcVar5 == (char *)0x0)) ||\n         (iVar4 = strcmp(__s,pcVar5), iVar4 != 0)) {\n        return 2;\n      }" if (parenthesized_expression "(((*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051) != '\0') ||\n          (pcVar5 = (char *)FUN_002a09b0(), pcVar5 == (char *)0x0)) ||\n         (iVar4 = strcmp(__s,pcVar5), iVar4 != 0))" ( (binary_expression "((*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051) != '\0') ||\n          (pcVar5 = (char *)FUN_002a09b0(), pcVar5 == (char *)0x0)) ||\n         (iVar4 = strcmp(__s,pcVar5), iVar4 != 0)" (parenthesized_expression "((*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051) != '\0') ||\n          (pcVar5 = (char *)FUN_002a09b0(), pcVar5 == (char *)0x0))" ( (binary_expression "(*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051) != '\0') ||\n          (pcVar5 = (char *)FUN_002a09b0(), pcVar5 == (char *)0x0)" (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051) != '\0')" ( (binary_expression "*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051) != '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051)" * (cast_expression "(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051)" ( (binary_expression "*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051" (pointer_expression "*(long *)(PTR_DAT_004ba7c8 + 0x10)" * (cast_expression "(long *)(PTR_DAT_004ba7c8 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_004ba7c8 + 0x10)" ( (binary_expression "PTR_DAT_004ba7c8 + 0x10" identifier + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(pcVar5 = (char *)FUN_002a09b0(), pcVar5 == (char *)0x0)" ( (comma_expression "pcVar5 = (char *)FUN_002a09b0(), pcVar5 == (char *)0x0" (assignment_expression "pcVar5 = (char *)FUN_002a09b0()" identifier = (cast_expression "(char *)FUN_002a09b0()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002a09b0()" identifier (argument_list "()" ( ))))) , (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) || (parenthesized_expression "(iVar4 = strcmp(__s,pcVar5), iVar4 != 0)" ( (comma_expression "iVar4 = strcmp(__s,pcVar5), iVar4 != 0" (assignment_expression "iVar4 = strcmp(__s,pcVar5)" identifier = (call_expression "strcmp(__s,pcVar5)" identifier (argument_list "(__s,pcVar5)" ( identifier , identifier )))) , (binary_expression "iVar4 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        return 2;\n      }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "uVar7 = *(undefined8 *)(param_5 + 8);" (assignment_expression "uVar7 = *(undefined8 *)(param_5 + 8)" identifier = (pointer_expression "*(undefined8 *)(param_5 + 8)" * (cast_expression "(undefined8 *)(param_5 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 8)" ( (binary_expression "param_5 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = 0xd;" (assignment_expression "uVar9 = 0xd" identifier = number_literal) ;) (expression_statement "pcVar5 = "entry symbol ";" (assignment_expression "pcVar5 = "entry symbol "" identifier = (string_literal ""entry symbol "" " string_content ")) ;) (labeled_statement "LAB_001c8211:\n      FUN_00340370(param_5,0,uVar7,pcVar5,uVar9);" statement_identifier : (expression_statement "FUN_00340370(param_5,0,uVar7,pcVar5,uVar9);" (call_expression "FUN_00340370(param_5,0,uVar7,pcVar5,uVar9)" identifier (argument_list "(param_5,0,uVar7,pcVar5,uVar9)" ( identifier , number_literal , identifier , identifier , identifier ))) ;)) (expression_statement "sVar8 = strlen(__s);" (assignment_expression "sVar8 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (if_statement "if (sVar8 <= 0x7fffffffffffffffU - *(long *)(param_5 + 8)) {\n        FUN_00340cc0(param_5,__s,sVar8);\n        return 1;\n      }" if (parenthesized_expression "(sVar8 <= 0x7fffffffffffffffU - *(long *)(param_5 + 8))" ( (binary_expression "sVar8 <= 0x7fffffffffffffffU - *(long *)(param_5 + 8)" identifier <= (binary_expression "0x7fffffffffffffffU - *(long *)(param_5 + 8)" number_literal - (pointer_expression "*(long *)(param_5 + 8)" * (cast_expression "(long *)(param_5 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 8)" ( (binary_expression "param_5 + 8" identifier + number_literal) )))))) )) (compound_statement "{\n        FUN_00340cc0(param_5,__s,sVar8);\n        return 1;\n      }" { (expression_statement "FUN_00340cc0(param_5,__s,sVar8);" (call_expression "FUN_00340cc0(param_5,__s,sVar8)" identifier (argument_list "(param_5,__s,sVar8)" ( identifier , identifier , identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) comment (expression_statement "FUN_00377370("basic_string::append");" (call_expression "FUN_00377370("basic_string::append")" identifier (argument_list "("basic_string::append")" ( (string_literal ""basic_string::append"" " string_content ") ))) ;) })) })) (labeled_statement "LAB_001c830c:\n                    /* WARNING: Subroutine does not return */\n  FUN_001e9890("../../gold/parameters.h",0x5c,"options");" statement_identifier : comment (expression_statement "FUN_001e9890("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_001e9890("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;)) })))
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Enum "ELFOSABI": Some values do not have unique names */\n\nShould_include\ngold::Library_base::should_include_member\n          (Symbol_table *symtab,Layout *layout,char *sym_name,Symbol **symp,string *why,\n          char **tmpbufp,size_t *tmpbuflen)\n\n{\n  size_t size;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar1;\n  General_options *pGVar2;\n  byte bVar3;\n  bool bVar4;\n  int iVar5;\n  char *pcVar6;\n  Symbol *pSVar7;\n  char *name;\n  const_iterator cVar8;\n  char *__format;\n  ulong uVar9;\n  size_t sVar10;\n  ulong uVar11;\n  Script_options *pSVar12;\n  key_type local_58;\n  \n  pcVar6 = strchr(sym_name,0x40);\n  name = sym_name;\n  if (pcVar6 == (char *)0x0) {\nLAB_001c7f12:\n    pSVar7 = Symbol_table::lookup(symtab,name,pcVar6);\n    *symp = pSVar7;\njoined_r0x001c805a:\n    if (pSVar7 != (Symbol *)0x0) {\n      bVar3 = pSVar7->field_0x3a & 7;\n      if (bVar3 == 0) goto LAB_001c7f3f;\nLAB_001c7fc0:\n      if (bVar3 != 4) {\n        return SHOULD_INCLUDE_NO;\n      }\n      goto LAB_001c7fc4;\n    }\n  }\n  else {\n    sVar10 = (long)pcVar6 - (long)sym_name;\n    name = *tmpbufp;\n    size = sVar10 + 1;\n    if (*tmpbuflen < size) {\n      name = (char *)xrealloc(name,size);\n      *tmpbufp = name;\n      *tmpbuflen = size;\n    }\n    memcpy(name,sym_name,sVar10);\n    name[sVar10] = '\0';\n    if (pcVar6[1] != '@') {\n      pcVar6 = pcVar6 + 1;\n      goto LAB_001c7f12;\n    }\n    pSVar7 = Symbol_table::lookup(symtab,name,pcVar6 + 2);\n    if (pSVar7 == (Symbol *)0x0) {\nLAB_001c8040:\n      pSVar7 = Symbol_table::lookup(symtab,name,(char *)0x0);\n      *symp = pSVar7;\n      goto joined_r0x001c805a;\n    }\n    bVar3 = pSVar7->field_0x3a & 7;\n    if ((pSVar7->field_0x3a & 7) != 0) {\n      if (bVar3 == 4) goto LAB_001c7f9d;\n      goto LAB_001c8040;\n    }\n    if (((pSVar7->u2_).shndx != 0) || ((pSVar7->field_0x3b & 0x20) == 0)) goto LAB_001c8040;\nLAB_001c7f9d:\n    if ((byte)pSVar7->field_0x38 >> 4 == 2) goto LAB_001c8040;\n    *symp = pSVar7;\n    if (bVar3 != 0) goto LAB_001c7fc0;\nLAB_001c7f3f:\n    if ((pSVar7->u2_).shndx != 0) {\n      return SHOULD_INCLUDE_NO;\n    }\n    if ((pSVar7->field_0x3b & 0x20) == 0) {\n      return SHOULD_INCLUDE_NO;\n    }\nLAB_001c7fc4:\n    bVar4 = Script_options::is_pending_assignment(layout->script_options_,name);\n    if (bVar4) {\n      return SHOULD_INCLUDE_NO;\n    }\n    if ((byte)pSVar7->field_0x38 >> 4 != 2) {\n      return SHOULD_INCLUDE_YES;\n    }\n  }\n  pGVar2 = parameters->options_;\n  if (pGVar2 != (General_options *)0x0) {\n    if ((pGVar2->undefined_).value._M_h._M_element_count != 0) {\n      paVar1 = &local_58.field_2;\n      local_58._M_dataplus._M_p = (pointer)paVar1;\n      sVar10 = strlen(name);\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&local_58,name,name + sVar10);\n      cVar8 = std::\n              _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      *)&(pGVar2->undefined_).value,&local_58);\n      if (cVar8.\n          super__Node_iterator_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>\n          ._M_cur != (__node_type *)0x0) {\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)local_58._M_dataplus._M_p != paVar1) {\n          operator_delete(local_58._M_dataplus._M_p);\n        }\n        uVar9 = why->_M_string_length;\n        uVar11 = 3;\n        pcVar6 = "-u ";\n        goto LAB_001c8211;\n      }\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_58._M_dataplus._M_p != paVar1) {\n        operator_delete(local_58._M_dataplus._M_p);\n      }\n    }\n    pGVar2 = parameters->options_;\n    if (pGVar2 == (General_options *)0x0) goto LAB_001c830c;\n    if ((pGVar2->export_dynamic_symbol_).value._M_h._M_element_count == 0) {\n      pSVar12 = layout->script_options_;\n    }\n    else {\n      local_58._M_dataplus._M_p = (pointer)&local_58.field_2;\n      sVar10 = strlen(name);\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&local_58,name,name + sVar10);\n      cVar8 = std::\n              _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      *)&(pGVar2->export_dynamic_symbol_).value,&local_58);\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_58._M_dataplus._M_p != &local_58.field_2) {\n        operator_delete(local_58._M_dataplus._M_p);\n      }\n      if (cVar8.\n          super__Node_iterator_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>\n          ._M_cur != (__node_type *)0x0) {\n        uVar9 = why->_M_string_length;\n        uVar11 = 0x18;\n        pcVar6 = "--export-dynamic-symbol ";\n        goto LAB_001c8211;\n      }\n      pSVar12 = layout->script_options_;\n    }\n    local_58._M_dataplus._M_p = (pointer)&local_58.field_2;\n    sVar10 = strlen(name);\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>(&local_58,name,name + sVar10);\n    cVar8 = std::\n            _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                    *)&pSVar12->symbol_references_,&local_58);\n    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)local_58._M_dataplus._M_p != &local_58.field_2) {\n      operator_delete(local_58._M_dataplus._M_p);\n    }\n    if (cVar8.\n        super__Node_iterator_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>\n        ._M_cur != (__node_type *)0x0) {\n      sVar10 = strlen(name);\n      pcVar6 = (char *)operator_new__(sVar10 + 100);\n      __format = (char *)gettext("script or expression reference to %s");\n      snprintf(pcVar6,sVar10 + 100,__format,name);\n      sVar10 = strlen(pcVar6);\n      std::string::_M_replace((string *)why,0,why->_M_string_length,pcVar6,sVar10);\n      operator_delete__(pcVar6);\n      return SHOULD_INCLUDE_YES;\n    }\n    if (parameters->options_ != (General_options *)0x0) {\n      if ((((parameters->options_->relocatable_).value != false) ||\n          (pcVar6 = Parameters::entry(parameters), pcVar6 == (char *)0x0)) ||\n         (iVar5 = strcmp(name,pcVar6), iVar5 != 0)) {\n        return SHOULD_INCLUDE_UNKNOWN;\n      }\n      uVar9 = why->_M_string_length;\n      uVar11 = 0xd;\n      pcVar6 = "entry symbol ";\nLAB_001c8211:\n      std::string::_M_replace((string *)why,0,uVar9,pcVar6,uVar11);\n      sVar10 = strlen(name);\n      if (sVar10 <= 0x7fffffffffffffff - why->_M_string_length) {\n        std::string::_M_append((string *)why,name,sVar10);\n        return SHOULD_INCLUDE_YES;\n      }\n                    /* WARNING: Subroutine does not return */\n      std::__throw_length_error("basic_string::append");\n    }\n  }\nLAB_001c830c:\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n}\n\n" comment comment comment (function_definition "Should_include\ngold::Library_base::should_include_member\n          (Symbol_table *symtab,Layout *layout,char *sym_name,Symbol **symp,string *why,\n          char **tmpbufp,size_t *tmpbuflen)\n\n{\n  size_t size;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar1;\n  General_options *pGVar2;\n  byte bVar3;\n  bool bVar4;\n  int iVar5;\n  char *pcVar6;\n  Symbol *pSVar7;\n  char *name;\n  const_iterator cVar8;\n  char *__format;\n  ulong uVar9;\n  size_t sVar10;\n  ulong uVar11;\n  Script_options *pSVar12;\n  key_type local_58;\n  \n  pcVar6 = strchr(sym_name,0x40);\n  name = sym_name;\n  if (pcVar6 == (char *)0x0) {\nLAB_001c7f12:\n    pSVar7 = Symbol_table::lookup(symtab,name,pcVar6);\n    *symp = pSVar7;\njoined_r0x001c805a:\n    if (pSVar7 != (Symbol *)0x0) {\n      bVar3 = pSVar7->field_0x3a & 7;\n      if (bVar3 == 0) goto LAB_001c7f3f;\nLAB_001c7fc0:\n      if (bVar3 != 4) {\n        return SHOULD_INCLUDE_NO;\n      }\n      goto LAB_001c7fc4;\n    }\n  }\n  else {\n    sVar10 = (long)pcVar6 - (long)sym_name;\n    name = *tmpbufp;\n    size = sVar10 + 1;\n    if (*tmpbuflen < size) {\n      name = (char *)xrealloc(name,size);\n      *tmpbufp = name;\n      *tmpbuflen = size;\n    }\n    memcpy(name,sym_name,sVar10);\n    name[sVar10] = '\0';\n    if (pcVar6[1] != '@') {\n      pcVar6 = pcVar6 + 1;\n      goto LAB_001c7f12;\n    }\n    pSVar7 = Symbol_table::lookup(symtab,name,pcVar6 + 2);\n    if (pSVar7 == (Symbol *)0x0) {\nLAB_001c8040:\n      pSVar7 = Symbol_table::lookup(symtab,name,(char *)0x0);\n      *symp = pSVar7;\n      goto joined_r0x001c805a;\n    }\n    bVar3 = pSVar7->field_0x3a & 7;\n    if ((pSVar7->field_0x3a & 7) != 0) {\n      if (bVar3 == 4) goto LAB_001c7f9d;\n      goto LAB_001c8040;\n    }\n    if (((pSVar7->u2_).shndx != 0) || ((pSVar7->field_0x3b & 0x20) == 0)) goto LAB_001c8040;\nLAB_001c7f9d:\n    if ((byte)pSVar7->field_0x38 >> 4 == 2) goto LAB_001c8040;\n    *symp = pSVar7;\n    if (bVar3 != 0) goto LAB_001c7fc0;\nLAB_001c7f3f:\n    if ((pSVar7->u2_).shndx != 0) {\n      return SHOULD_INCLUDE_NO;\n    }\n    if ((pSVar7->field_0x3b & 0x20) == 0) {\n      return SHOULD_INCLUDE_NO;\n    }\nLAB_001c7fc4:\n    bVar4 = Script_options::is_pending_assignment(layout->script_options_,name);\n    if (bVar4) {\n      return SHOULD_INCLUDE_NO;\n    }\n    if ((byte)pSVar7->field_0x38 >> 4 != 2) {\n      return SHOULD_INCLUDE_YES;\n    }\n  }\n  pGVar2 = parameters->options_;\n  if (pGVar2 != (General_options *)0x0) {\n    if ((pGVar2->undefined_).value._M_h._M_element_count != 0) {\n      paVar1 = &local_58.field_2;\n      local_58._M_dataplus._M_p = (pointer)paVar1;\n      sVar10 = strlen(name);\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&local_58,name,name + sVar10);\n      cVar8 = std::\n              _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      *)&(pGVar2->undefined_).value,&local_58);\n      if (cVar8.\n          super__Node_iterator_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>\n          ._M_cur != (__node_type *)0x0) {\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)local_58._M_dataplus._M_p != paVar1) {\n          operator_delete(local_58._M_dataplus._M_p);\n        }\n        uVar9 = why->_M_string_length;\n        uVar11 = 3;\n        pcVar6 = "-u ";\n        goto LAB_001c8211;\n      }\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_58._M_dataplus._M_p != paVar1) {\n        operator_delete(local_58._M_dataplus._M_p);\n      }\n    }\n    pGVar2 = parameters->options_;\n    if (pGVar2 == (General_options *)0x0) goto LAB_001c830c;\n    if ((pGVar2->export_dynamic_symbol_).value._M_h._M_element_count == 0) {\n      pSVar12 = layout->script_options_;\n    }\n    else {\n      local_58._M_dataplus._M_p = (pointer)&local_58.field_2;\n      sVar10 = strlen(name);\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&local_58,name,name + sVar10);\n      cVar8 = std::\n              _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      *)&(pGVar2->export_dynamic_symbol_).value,&local_58);\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_58._M_dataplus._M_p != &local_58.field_2) {\n        operator_delete(local_58._M_dataplus._M_p);\n      }\n      if (cVar8.\n          super__Node_iterator_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>\n          ._M_cur != (__node_type *)0x0) {\n        uVar9 = why->_M_string_length;\n        uVar11 = 0x18;\n        pcVar6 = "--export-dynamic-symbol ";\n        goto LAB_001c8211;\n      }\n      pSVar12 = layout->script_options_;\n    }\n    local_58._M_dataplus._M_p = (pointer)&local_58.field_2;\n    sVar10 = strlen(name);\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>(&local_58,name,name + sVar10);\n    cVar8 = std::\n            _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                    *)&pSVar12->symbol_references_,&local_58);\n    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)local_58._M_dataplus._M_p != &local_58.field_2) {\n      operator_delete(local_58._M_dataplus._M_p);\n    }\n    if (cVar8.\n        super__Node_iterator_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>\n        ._M_cur != (__node_type *)0x0) {\n      sVar10 = strlen(name);\n      pcVar6 = (char *)operator_new__(sVar10 + 100);\n      __format = (char *)gettext("script or expression reference to %s");\n      snprintf(pcVar6,sVar10 + 100,__format,name);\n      sVar10 = strlen(pcVar6);\n      std::string::_M_replace((string *)why,0,why->_M_string_length,pcVar6,sVar10);\n      operator_delete__(pcVar6);\n      return SHOULD_INCLUDE_YES;\n    }\n    if (parameters->options_ != (General_options *)0x0) {\n      if ((((parameters->options_->relocatable_).value != false) ||\n          (pcVar6 = Parameters::entry(parameters), pcVar6 == (char *)0x0)) ||\n         (iVar5 = strcmp(name,pcVar6), iVar5 != 0)) {\n        return SHOULD_INCLUDE_UNKNOWN;\n      }\n      uVar9 = why->_M_string_length;\n      uVar11 = 0xd;\n      pcVar6 = "entry symbol ";\nLAB_001c8211:\n      std::string::_M_replace((string *)why,0,uVar9,pcVar6,uVar11);\n      sVar10 = strlen(name);\n      if (sVar10 <= 0x7fffffffffffffff - why->_M_string_length) {\n        std::string::_M_append((string *)why,name,sVar10);\n        return SHOULD_INCLUDE_YES;\n      }\n                    /* WARNING: Subroutine does not return */\n      std::__throw_length_error("basic_string::append");\n    }\n  }\nLAB_001c830c:\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n}" type_identifier (ERROR "gold::Library_base::" identifier : : identifier : :) (function_declarator "should_include_member\n          (Symbol_table *symtab,Layout *layout,char *sym_name,Symbol **symp,string *why,\n          char **tmpbufp,size_t *tmpbuflen)" identifier (parameter_list "(Symbol_table *symtab,Layout *layout,char *sym_name,Symbol **symp,string *why,\n          char **tmpbufp,size_t *tmpbuflen)" ( (parameter_declaration "Symbol_table *symtab" type_identifier (pointer_declarator "*symtab" * identifier)) , (parameter_declaration "Layout *layout" type_identifier (pointer_declarator "*layout" * identifier)) , (parameter_declaration "char *sym_name" primitive_type (pointer_declarator "*sym_name" * identifier)) , (parameter_declaration "Symbol **symp" type_identifier (pointer_declarator "**symp" * (pointer_declarator "*symp" * identifier))) , (parameter_declaration "string *why" type_identifier (pointer_declarator "*why" * identifier)) , (parameter_declaration "char **tmpbufp" primitive_type (pointer_declarator "**tmpbufp" * (pointer_declarator "*tmpbufp" * identifier))) , (parameter_declaration "size_t *tmpbuflen" primitive_type (pointer_declarator "*tmpbuflen" * identifier)) ))) (compound_statement "{\n  size_t size;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar1;\n  General_options *pGVar2;\n  byte bVar3;\n  bool bVar4;\n  int iVar5;\n  char *pcVar6;\n  Symbol *pSVar7;\n  char *name;\n  const_iterator cVar8;\n  char *__format;\n  ulong uVar9;\n  size_t sVar10;\n  ulong uVar11;\n  Script_options *pSVar12;\n  key_type local_58;\n  \n  pcVar6 = strchr(sym_name,0x40);\n  name = sym_name;\n  if (pcVar6 == (char *)0x0) {\nLAB_001c7f12:\n    pSVar7 = Symbol_table::lookup(symtab,name,pcVar6);\n    *symp = pSVar7;\njoined_r0x001c805a:\n    if (pSVar7 != (Symbol *)0x0) {\n      bVar3 = pSVar7->field_0x3a & 7;\n      if (bVar3 == 0) goto LAB_001c7f3f;\nLAB_001c7fc0:\n      if (bVar3 != 4) {\n        return SHOULD_INCLUDE_NO;\n      }\n      goto LAB_001c7fc4;\n    }\n  }\n  else {\n    sVar10 = (long)pcVar6 - (long)sym_name;\n    name = *tmpbufp;\n    size = sVar10 + 1;\n    if (*tmpbuflen < size) {\n      name = (char *)xrealloc(name,size);\n      *tmpbufp = name;\n      *tmpbuflen = size;\n    }\n    memcpy(name,sym_name,sVar10);\n    name[sVar10] = '\0';\n    if (pcVar6[1] != '@') {\n      pcVar6 = pcVar6 + 1;\n      goto LAB_001c7f12;\n    }\n    pSVar7 = Symbol_table::lookup(symtab,name,pcVar6 + 2);\n    if (pSVar7 == (Symbol *)0x0) {\nLAB_001c8040:\n      pSVar7 = Symbol_table::lookup(symtab,name,(char *)0x0);\n      *symp = pSVar7;\n      goto joined_r0x001c805a;\n    }\n    bVar3 = pSVar7->field_0x3a & 7;\n    if ((pSVar7->field_0x3a & 7) != 0) {\n      if (bVar3 == 4) goto LAB_001c7f9d;\n      goto LAB_001c8040;\n    }\n    if (((pSVar7->u2_).shndx != 0) || ((pSVar7->field_0x3b & 0x20) == 0)) goto LAB_001c8040;\nLAB_001c7f9d:\n    if ((byte)pSVar7->field_0x38 >> 4 == 2) goto LAB_001c8040;\n    *symp = pSVar7;\n    if (bVar3 != 0) goto LAB_001c7fc0;\nLAB_001c7f3f:\n    if ((pSVar7->u2_).shndx != 0) {\n      return SHOULD_INCLUDE_NO;\n    }\n    if ((pSVar7->field_0x3b & 0x20) == 0) {\n      return SHOULD_INCLUDE_NO;\n    }\nLAB_001c7fc4:\n    bVar4 = Script_options::is_pending_assignment(layout->script_options_,name);\n    if (bVar4) {\n      return SHOULD_INCLUDE_NO;\n    }\n    if ((byte)pSVar7->field_0x38 >> 4 != 2) {\n      return SHOULD_INCLUDE_YES;\n    }\n  }\n  pGVar2 = parameters->options_;\n  if (pGVar2 != (General_options *)0x0) {\n    if ((pGVar2->undefined_).value._M_h._M_element_count != 0) {\n      paVar1 = &local_58.field_2;\n      local_58._M_dataplus._M_p = (pointer)paVar1;\n      sVar10 = strlen(name);\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&local_58,name,name + sVar10);\n      cVar8 = std::\n              _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      *)&(pGVar2->undefined_).value,&local_58);\n      if (cVar8.\n          super__Node_iterator_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>\n          ._M_cur != (__node_type *)0x0) {\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)local_58._M_dataplus._M_p != paVar1) {\n          operator_delete(local_58._M_dataplus._M_p);\n        }\n        uVar9 = why->_M_string_length;\n        uVar11 = 3;\n        pcVar6 = "-u ";\n        goto LAB_001c8211;\n      }\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_58._M_dataplus._M_p != paVar1) {\n        operator_delete(local_58._M_dataplus._M_p);\n      }\n    }\n    pGVar2 = parameters->options_;\n    if (pGVar2 == (General_options *)0x0) goto LAB_001c830c;\n    if ((pGVar2->export_dynamic_symbol_).value._M_h._M_element_count == 0) {\n      pSVar12 = layout->script_options_;\n    }\n    else {\n      local_58._M_dataplus._M_p = (pointer)&local_58.field_2;\n      sVar10 = strlen(name);\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&local_58,name,name + sVar10);\n      cVar8 = std::\n              _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      *)&(pGVar2->export_dynamic_symbol_).value,&local_58);\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_58._M_dataplus._M_p != &local_58.field_2) {\n        operator_delete(local_58._M_dataplus._M_p);\n      }\n      if (cVar8.\n          super__Node_iterator_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>\n          ._M_cur != (__node_type *)0x0) {\n        uVar9 = why->_M_string_length;\n        uVar11 = 0x18;\n        pcVar6 = "--export-dynamic-symbol ";\n        goto LAB_001c8211;\n      }\n      pSVar12 = layout->script_options_;\n    }\n    local_58._M_dataplus._M_p = (pointer)&local_58.field_2;\n    sVar10 = strlen(name);\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>(&local_58,name,name + sVar10);\n    cVar8 = std::\n            _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                    *)&pSVar12->symbol_references_,&local_58);\n    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)local_58._M_dataplus._M_p != &local_58.field_2) {\n      operator_delete(local_58._M_dataplus._M_p);\n    }\n    if (cVar8.\n        super__Node_iterator_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>\n        ._M_cur != (__node_type *)0x0) {\n      sVar10 = strlen(name);\n      pcVar6 = (char *)operator_new__(sVar10 + 100);\n      __format = (char *)gettext("script or expression reference to %s");\n      snprintf(pcVar6,sVar10 + 100,__format,name);\n      sVar10 = strlen(pcVar6);\n      std::string::_M_replace((string *)why,0,why->_M_string_length,pcVar6,sVar10);\n      operator_delete__(pcVar6);\n      return SHOULD_INCLUDE_YES;\n    }\n    if (parameters->options_ != (General_options *)0x0) {\n      if ((((parameters->options_->relocatable_).value != false) ||\n          (pcVar6 = Parameters::entry(parameters), pcVar6 == (char *)0x0)) ||\n         (iVar5 = strcmp(name,pcVar6), iVar5 != 0)) {\n        return SHOULD_INCLUDE_UNKNOWN;\n      }\n      uVar9 = why->_M_string_length;\n      uVar11 = 0xd;\n      pcVar6 = "entry symbol ";\nLAB_001c8211:\n      std::string::_M_replace((string *)why,0,uVar9,pcVar6,uVar11);\n      sVar10 = strlen(name);\n      if (sVar10 <= 0x7fffffffffffffff - why->_M_string_length) {\n        std::string::_M_append((string *)why,name,sVar10);\n        return SHOULD_INCLUDE_YES;\n      }\n                    /* WARNING: Subroutine does not return */\n      std::__throw_length_error("basic_string::append");\n    }\n  }\nLAB_001c830c:\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n}" { (declaration "size_t size;" primitive_type identifier ;) (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) : :) (expression_statement "allocator<char>_>_9\n  *paVar1;" (binary_expression "allocator<char>_>_9\n  *paVar1" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *paVar1" identifier * identifier)) ;) (declaration "General_options *pGVar2;" type_identifier (pointer_declarator "*pGVar2" * identifier) ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "Symbol *pSVar7;" type_identifier (pointer_declarator "*pSVar7" * identifier) ;) (declaration "char *name;" primitive_type (pointer_declarator "*name" * identifier) ;) (declaration "const_iterator cVar8;" type_identifier identifier ;) (declaration "char *__format;" primitive_type (pointer_declarator "*__format" * identifier) ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "size_t sVar10;" primitive_type identifier ;) (declaration "ulong uVar11;" type_identifier identifier ;) (declaration "Script_options *pSVar12;" type_identifier (pointer_declarator "*pSVar12" * identifier) ;) (declaration "key_type local_58;" type_identifier identifier ;) (expression_statement "pcVar6 = strchr(sym_name,0x40);" (assignment_expression "pcVar6 = strchr(sym_name,0x40)" identifier = (call_expression "strchr(sym_name,0x40)" identifier (argument_list "(sym_name,0x40)" ( identifier , number_literal )))) ;) (expression_statement "name = sym_name;" (assignment_expression "name = sym_name" identifier = identifier) ;) (if_statement "if (pcVar6 == (char *)0x0) {\nLAB_001c7f12:\n    pSVar7 = Symbol_table::lookup(symtab,name,pcVar6);\n    *symp = pSVar7;\njoined_r0x001c805a:\n    if (pSVar7 != (Symbol *)0x0) {\n      bVar3 = pSVar7->field_0x3a & 7;\n      if (bVar3 == 0) goto LAB_001c7f3f;\nLAB_001c7fc0:\n      if (bVar3 != 4) {\n        return SHOULD_INCLUDE_NO;\n      }\n      goto LAB_001c7fc4;\n    }\n  }\n  else {\n    sVar10 = (long)pcVar6 - (long)sym_name;\n    name = *tmpbufp;\n    size = sVar10 + 1;\n    if (*tmpbuflen < size) {\n      name = (char *)xrealloc(name,size);\n      *tmpbufp = name;\n      *tmpbuflen = size;\n    }\n    memcpy(name,sym_name,sVar10);\n    name[sVar10] = '\0';\n    if (pcVar6[1] != '@') {\n      pcVar6 = pcVar6 + 1;\n      goto LAB_001c7f12;\n    }\n    pSVar7 = Symbol_table::lookup(symtab,name,pcVar6 + 2);\n    if (pSVar7 == (Symbol *)0x0) {\nLAB_001c8040:\n      pSVar7 = Symbol_table::lookup(symtab,name,(char *)0x0);\n      *symp = pSVar7;\n      goto joined_r0x001c805a;\n    }\n    bVar3 = pSVar7->field_0x3a & 7;\n    if ((pSVar7->field_0x3a & 7) != 0) {\n      if (bVar3 == 4) goto LAB_001c7f9d;\n      goto LAB_001c8040;\n    }\n    if (((pSVar7->u2_).shndx != 0) || ((pSVar7->field_0x3b & 0x20) == 0)) goto LAB_001c8040;\nLAB_001c7f9d:\n    if ((byte)pSVar7->field_0x38 >> 4 == 2) goto LAB_001c8040;\n    *symp = pSVar7;\n    if (bVar3 != 0) goto LAB_001c7fc0;\nLAB_001c7f3f:\n    if ((pSVar7->u2_).shndx != 0) {\n      return SHOULD_INCLUDE_NO;\n    }\n    if ((pSVar7->field_0x3b & 0x20) == 0) {\n      return SHOULD_INCLUDE_NO;\n    }\nLAB_001c7fc4:\n    bVar4 = Script_options::is_pending_assignment(layout->script_options_,name);\n    if (bVar4) {\n      return SHOULD_INCLUDE_NO;\n    }\n    if ((byte)pSVar7->field_0x38 >> 4 != 2) {\n      return SHOULD_INCLUDE_YES;\n    }\n  }" if (parenthesized_expression "(pcVar6 == (char *)0x0)" ( (binary_expression "pcVar6 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_001c7f12:\n    pSVar7 = Symbol_table::lookup(symtab,name,pcVar6);\n    *symp = pSVar7;\njoined_r0x001c805a:\n    if (pSVar7 != (Symbol *)0x0) {\n      bVar3 = pSVar7->field_0x3a & 7;\n      if (bVar3 == 0) goto LAB_001c7f3f;\nLAB_001c7fc0:\n      if (bVar3 != 4) {\n        return SHOULD_INCLUDE_NO;\n      }\n      goto LAB_001c7fc4;\n    }\n  }" { (labeled_statement "LAB_001c7f12:\n    pSVar7 = Symbol_table::lookup(symtab,name,pcVar6);" statement_identifier : (ERROR "pSVar7 = Symbol_table::" (assignment_expression "pSVar7 = Symbol_table" identifier = identifier) : :) (expression_statement "lookup(symtab,name,pcVar6);" (call_expression "lookup(symtab,name,pcVar6)" identifier (argument_list "(symtab,name,pcVar6)" ( identifier , identifier , identifier ))) ;)) (expression_statement "*symp = pSVar7;" (assignment_expression "*symp = pSVar7" (pointer_expression "*symp" * identifier) = identifier) ;) (labeled_statement "joined_r0x001c805a:\n    if (pSVar7 != (Symbol *)0x0) {\n      bVar3 = pSVar7->field_0x3a & 7;\n      if (bVar3 == 0) goto LAB_001c7f3f;\nLAB_001c7fc0:\n      if (bVar3 != 4) {\n        return SHOULD_INCLUDE_NO;\n      }\n      goto LAB_001c7fc4;\n    }" statement_identifier : (if_statement "if (pSVar7 != (Symbol *)0x0) {\n      bVar3 = pSVar7->field_0x3a & 7;\n      if (bVar3 == 0) goto LAB_001c7f3f;\nLAB_001c7fc0:\n      if (bVar3 != 4) {\n        return SHOULD_INCLUDE_NO;\n      }\n      goto LAB_001c7fc4;\n    }" if (parenthesized_expression "(pSVar7 != (Symbol *)0x0)" ( (binary_expression "pSVar7 != (Symbol *)0x0" identifier != (cast_expression "(Symbol *)0x0" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      bVar3 = pSVar7->field_0x3a & 7;\n      if (bVar3 == 0) goto LAB_001c7f3f;\nLAB_001c7fc0:\n      if (bVar3 != 4) {\n        return SHOULD_INCLUDE_NO;\n      }\n      goto LAB_001c7fc4;\n    }" { (expression_statement "bVar3 = pSVar7->field_0x3a & 7;" (assignment_expression "bVar3 = pSVar7->field_0x3a & 7" identifier = (binary_expression "pSVar7->field_0x3a & 7" (field_expression "pSVar7->field_0x3a" identifier -> field_identifier) & number_literal)) ;) (if_statement "if (bVar3 == 0) goto LAB_001c7f3f;" if (parenthesized_expression "(bVar3 == 0)" ( (binary_expression "bVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001c7f3f;" goto statement_identifier ;)) (labeled_statement "LAB_001c7fc0:\n      if (bVar3 != 4) {\n        return SHOULD_INCLUDE_NO;\n      }" statement_identifier : (if_statement "if (bVar3 != 4) {\n        return SHOULD_INCLUDE_NO;\n      }" if (parenthesized_expression "(bVar3 != 4)" ( (binary_expression "bVar3 != 4" identifier != number_literal) )) (compound_statement "{\n        return SHOULD_INCLUDE_NO;\n      }" { (return_statement "return SHOULD_INCLUDE_NO;" return identifier ;) }))) (goto_statement "goto LAB_001c7fc4;" goto statement_identifier ;) }))) }) (else_clause "else {\n    sVar10 = (long)pcVar6 - (long)sym_name;\n    name = *tmpbufp;\n    size = sVar10 + 1;\n    if (*tmpbuflen < size) {\n      name = (char *)xrealloc(name,size);\n      *tmpbufp = name;\n      *tmpbuflen = size;\n    }\n    memcpy(name,sym_name,sVar10);\n    name[sVar10] = '\0';\n    if (pcVar6[1] != '@') {\n      pcVar6 = pcVar6 + 1;\n      goto LAB_001c7f12;\n    }\n    pSVar7 = Symbol_table::lookup(symtab,name,pcVar6 + 2);\n    if (pSVar7 == (Symbol *)0x0) {\nLAB_001c8040:\n      pSVar7 = Symbol_table::lookup(symtab,name,(char *)0x0);\n      *symp = pSVar7;\n      goto joined_r0x001c805a;\n    }\n    bVar3 = pSVar7->field_0x3a & 7;\n    if ((pSVar7->field_0x3a & 7) != 0) {\n      if (bVar3 == 4) goto LAB_001c7f9d;\n      goto LAB_001c8040;\n    }\n    if (((pSVar7->u2_).shndx != 0) || ((pSVar7->field_0x3b & 0x20) == 0)) goto LAB_001c8040;\nLAB_001c7f9d:\n    if ((byte)pSVar7->field_0x38 >> 4 == 2) goto LAB_001c8040;\n    *symp = pSVar7;\n    if (bVar3 != 0) goto LAB_001c7fc0;\nLAB_001c7f3f:\n    if ((pSVar7->u2_).shndx != 0) {\n      return SHOULD_INCLUDE_NO;\n    }\n    if ((pSVar7->field_0x3b & 0x20) == 0) {\n      return SHOULD_INCLUDE_NO;\n    }\nLAB_001c7fc4:\n    bVar4 = Script_options::is_pending_assignment(layout->script_options_,name);\n    if (bVar4) {\n      return SHOULD_INCLUDE_NO;\n    }\n    if ((byte)pSVar7->field_0x38 >> 4 != 2) {\n      return SHOULD_INCLUDE_YES;\n    }\n  }" else (compound_statement "{\n    sVar10 = (long)pcVar6 - (long)sym_name;\n    name = *tmpbufp;\n    size = sVar10 + 1;\n    if (*tmpbuflen < size) {\n      name = (char *)xrealloc(name,size);\n      *tmpbufp = name;\n      *tmpbuflen = size;\n    }\n    memcpy(name,sym_name,sVar10);\n    name[sVar10] = '\0';\n    if (pcVar6[1] != '@') {\n      pcVar6 = pcVar6 + 1;\n      goto LAB_001c7f12;\n    }\n    pSVar7 = Symbol_table::lookup(symtab,name,pcVar6 + 2);\n    if (pSVar7 == (Symbol *)0x0) {\nLAB_001c8040:\n      pSVar7 = Symbol_table::lookup(symtab,name,(char *)0x0);\n      *symp = pSVar7;\n      goto joined_r0x001c805a;\n    }\n    bVar3 = pSVar7->field_0x3a & 7;\n    if ((pSVar7->field_0x3a & 7) != 0) {\n      if (bVar3 == 4) goto LAB_001c7f9d;\n      goto LAB_001c8040;\n    }\n    if (((pSVar7->u2_).shndx != 0) || ((pSVar7->field_0x3b & 0x20) == 0)) goto LAB_001c8040;\nLAB_001c7f9d:\n    if ((byte)pSVar7->field_0x38 >> 4 == 2) goto LAB_001c8040;\n    *symp = pSVar7;\n    if (bVar3 != 0) goto LAB_001c7fc0;\nLAB_001c7f3f:\n    if ((pSVar7->u2_).shndx != 0) {\n      return SHOULD_INCLUDE_NO;\n    }\n    if ((pSVar7->field_0x3b & 0x20) == 0) {\n      return SHOULD_INCLUDE_NO;\n    }\nLAB_001c7fc4:\n    bVar4 = Script_options::is_pending_assignment(layout->script_options_,name);\n    if (bVar4) {\n      return SHOULD_INCLUDE_NO;\n    }\n    if ((byte)pSVar7->field_0x38 >> 4 != 2) {\n      return SHOULD_INCLUDE_YES;\n    }\n  }" { (expression_statement "sVar10 = (long)pcVar6 - (long)sym_name;" (assignment_expression "sVar10 = (long)pcVar6 - (long)sym_name" identifier = (binary_expression "(long)pcVar6 - (long)sym_name" (cast_expression "(long)pcVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)sym_name" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "name = *tmpbufp;" (assignment_expression "name = *tmpbufp" identifier = (pointer_expression "*tmpbufp" * identifier)) ;) (expression_statement "size = sVar10 + 1;" (assignment_expression "size = sVar10 + 1" identifier = (binary_expression "sVar10 + 1" identifier + number_literal)) ;) (if_statement "if (*tmpbuflen < size) {\n      name = (char *)xrealloc(name,size);\n      *tmpbufp = name;\n      *tmpbuflen = size;\n    }" if (parenthesized_expression "(*tmpbuflen < size)" ( (binary_expression "*tmpbuflen < size" (pointer_expression "*tmpbuflen" * identifier) < identifier) )) (compound_statement "{\n      name = (char *)xrealloc(name,size);\n      *tmpbufp = name;\n      *tmpbuflen = size;\n    }" { (expression_statement "name = (char *)xrealloc(name,size);" (assignment_expression "name = (char *)xrealloc(name,size)" identifier = (cast_expression "(char *)xrealloc(name,size)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(name,size)" identifier (argument_list "(name,size)" ( identifier , identifier ))))) ;) (expression_statement "*tmpbufp = name;" (assignment_expression "*tmpbufp = name" (pointer_expression "*tmpbufp" * identifier) = identifier) ;) (expression_statement "*tmpbuflen = size;" (assignment_expression "*tmpbuflen = size" (pointer_expression "*tmpbuflen" * identifier) = identifier) ;) })) (expression_statement "memcpy(name,sym_name,sVar10);" (call_expression "memcpy(name,sym_name,sVar10)" identifier (argument_list "(name,sym_name,sVar10)" ( identifier , identifier , identifier ))) ;) (expression_statement "name[sVar10] = '\0';" (assignment_expression "name[sVar10] = '\0'" (subscript_expression "name[sVar10]" identifier [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (pcVar6[1] != '@') {\n      pcVar6 = pcVar6 + 1;\n      goto LAB_001c7f12;\n    }" if (parenthesized_expression "(pcVar6[1] != '@')" ( (binary_expression "pcVar6[1] != '@'" (subscript_expression "pcVar6[1]" identifier [ number_literal ]) != (char_literal "'@'" ' character ')) )) (compound_statement "{\n      pcVar6 = pcVar6 + 1;\n      goto LAB_001c7f12;\n    }" { (expression_statement "pcVar6 = pcVar6 + 1;" (assignment_expression "pcVar6 = pcVar6 + 1" identifier = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_001c7f12;" goto statement_identifier ;) })) (ERROR "pSVar7 = Symbol_table::" (assignment_expression "pSVar7 = Symbol_table" identifier = identifier) : :) (expression_statement "lookup(symtab,name,pcVar6 + 2);" (call_expression "lookup(symtab,name,pcVar6 + 2)" identifier (argument_list "(symtab,name,pcVar6 + 2)" ( identifier , identifier , (binary_expression "pcVar6 + 2" identifier + number_literal) ))) ;) (if_statement "if (pSVar7 == (Symbol *)0x0) {\nLAB_001c8040:\n      pSVar7 = Symbol_table::lookup(symtab,name,(char *)0x0);\n      *symp = pSVar7;\n      goto joined_r0x001c805a;\n    }" if (parenthesized_expression "(pSVar7 == (Symbol *)0x0)" ( (binary_expression "pSVar7 == (Symbol *)0x0" identifier == (cast_expression "(Symbol *)0x0" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_001c8040:\n      pSVar7 = Symbol_table::lookup(symtab,name,(char *)0x0);\n      *symp = pSVar7;\n      goto joined_r0x001c805a;\n    }" { (labeled_statement "LAB_001c8040:\n      pSVar7 = Symbol_table::lookup(symtab,name,(char *)0x0);" statement_identifier : (ERROR "pSVar7 = Symbol_table::" (assignment_expression "pSVar7 = Symbol_table" identifier = identifier) : :) (expression_statement "lookup(symtab,name,(char *)0x0);" (call_expression "lookup(symtab,name,(char *)0x0)" identifier (argument_list "(symtab,name,(char *)0x0)" ( identifier , identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;)) (expression_statement "*symp = pSVar7;" (assignment_expression "*symp = pSVar7" (pointer_expression "*symp" * identifier) = identifier) ;) (goto_statement "goto joined_r0x001c805a;" goto statement_identifier ;) })) (expression_statement "bVar3 = pSVar7->field_0x3a & 7;" (assignment_expression "bVar3 = pSVar7->field_0x3a & 7" identifier = (binary_expression "pSVar7->field_0x3a & 7" (field_expression "pSVar7->field_0x3a" identifier -> field_identifier) & number_literal)) ;) (if_statement "if ((pSVar7->field_0x3a & 7) != 0) {\n      if (bVar3 == 4) goto LAB_001c7f9d;\n      goto LAB_001c8040;\n    }" if (parenthesized_expression "((pSVar7->field_0x3a & 7) != 0)" ( (binary_expression "(pSVar7->field_0x3a & 7) != 0" (parenthesized_expression "(pSVar7->field_0x3a & 7)" ( (binary_expression "pSVar7->field_0x3a & 7" (field_expression "pSVar7->field_0x3a" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      if (bVar3 == 4) goto LAB_001c7f9d;\n      goto LAB_001c8040;\n    }" { (if_statement "if (bVar3 == 4) goto LAB_001c7f9d;" if (parenthesized_expression "(bVar3 == 4)" ( (binary_expression "bVar3 == 4" identifier == number_literal) )) (goto_statement "goto LAB_001c7f9d;" goto statement_identifier ;)) (goto_statement "goto LAB_001c8040;" goto statement_identifier ;) })) (if_statement "if (((pSVar7->u2_).shndx != 0) || ((pSVar7->field_0x3b & 0x20) == 0)) goto LAB_001c8040;" if (parenthesized_expression "(((pSVar7->u2_).shndx != 0) || ((pSVar7->field_0x3b & 0x20) == 0))" ( (binary_expression "((pSVar7->u2_).shndx != 0) || ((pSVar7->field_0x3b & 0x20) == 0)" (parenthesized_expression "((pSVar7->u2_).shndx != 0)" ( (binary_expression "(pSVar7->u2_).shndx != 0" (field_expression "(pSVar7->u2_).shndx" (parenthesized_expression "(pSVar7->u2_)" ( (field_expression "pSVar7->u2_" identifier -> field_identifier) )) . field_identifier) != number_literal) )) || (parenthesized_expression "((pSVar7->field_0x3b & 0x20) == 0)" ( (binary_expression "(pSVar7->field_0x3b & 0x20) == 0" (parenthesized_expression "(pSVar7->field_0x3b & 0x20)" ( (binary_expression "pSVar7->field_0x3b & 0x20" (field_expression "pSVar7->field_0x3b" identifier -> field_identifier) & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_001c8040;" goto statement_identifier ;)) (labeled_statement "LAB_001c7f9d:\n    if ((byte)pSVar7->field_0x38 >> 4 == 2) goto LAB_001c8040;" statement_identifier : (if_statement "if ((byte)pSVar7->field_0x38 >> 4 == 2) goto LAB_001c8040;" if (parenthesized_expression "((byte)pSVar7->field_0x38 >> 4 == 2)" ( (binary_expression "(byte)pSVar7->field_0x38 >> 4 == 2" (binary_expression "(byte)pSVar7->field_0x38 >> 4" (cast_expression "(byte)pSVar7->field_0x38" ( (type_descriptor "byte" type_identifier) ) (field_expression "pSVar7->field_0x38" identifier -> field_identifier)) >> number_literal) == number_literal) )) (goto_statement "goto LAB_001c8040;" goto statement_identifier ;))) (expression_statement "*symp = pSVar7;" (assignment_expression "*symp = pSVar7" (pointer_expression "*symp" * identifier) = identifier) ;) (if_statement "if (bVar3 != 0) goto LAB_001c7fc0;" if (parenthesized_expression "(bVar3 != 0)" ( (binary_expression "bVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_001c7fc0;" goto statement_identifier ;)) (labeled_statement "LAB_001c7f3f:\n    if ((pSVar7->u2_).shndx != 0) {\n      return SHOULD_INCLUDE_NO;\n    }" statement_identifier : (if_statement "if ((pSVar7->u2_).shndx != 0) {\n      return SHOULD_INCLUDE_NO;\n    }" if (parenthesized_expression "((pSVar7->u2_).shndx != 0)" ( (binary_expression "(pSVar7->u2_).shndx != 0" (field_expression "(pSVar7->u2_).shndx" (parenthesized_expression "(pSVar7->u2_)" ( (field_expression "pSVar7->u2_" identifier -> field_identifier) )) . field_identifier) != number_literal) )) (compound_statement "{\n      return SHOULD_INCLUDE_NO;\n    }" { (return_statement "return SHOULD_INCLUDE_NO;" return identifier ;) }))) (if_statement "if ((pSVar7->field_0x3b & 0x20) == 0) {\n      return SHOULD_INCLUDE_NO;\n    }" if (parenthesized_expression "((pSVar7->field_0x3b & 0x20) == 0)" ( (binary_expression "(pSVar7->field_0x3b & 0x20) == 0" (parenthesized_expression "(pSVar7->field_0x3b & 0x20)" ( (binary_expression "pSVar7->field_0x3b & 0x20" (field_expression "pSVar7->field_0x3b" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      return SHOULD_INCLUDE_NO;\n    }" { (return_statement "return SHOULD_INCLUDE_NO;" return identifier ;) })) (labeled_statement "LAB_001c7fc4:\n    bVar4 = Script_options::is_pending_assignment(layout->script_options_,name);" statement_identifier : (ERROR "bVar4 = Script_options::" (assignment_expression "bVar4 = Script_options" identifier = identifier) : :) (expression_statement "is_pending_assignment(layout->script_options_,name);" (call_expression "is_pending_assignment(layout->script_options_,name)" identifier (argument_list "(layout->script_options_,name)" ( (field_expression "layout->script_options_" identifier -> field_identifier) , identifier ))) ;)) (if_statement "if (bVar4) {\n      return SHOULD_INCLUDE_NO;\n    }" if (parenthesized_expression "(bVar4)" ( identifier )) (compound_statement "{\n      return SHOULD_INCLUDE_NO;\n    }" { (return_statement "return SHOULD_INCLUDE_NO;" return identifier ;) })) (if_statement "if ((byte)pSVar7->field_0x38 >> 4 != 2) {\n      return SHOULD_INCLUDE_YES;\n    }" if (parenthesized_expression "((byte)pSVar7->field_0x38 >> 4 != 2)" ( (binary_expression "(byte)pSVar7->field_0x38 >> 4 != 2" (binary_expression "(byte)pSVar7->field_0x38 >> 4" (cast_expression "(byte)pSVar7->field_0x38" ( (type_descriptor "byte" type_identifier) ) (field_expression "pSVar7->field_0x38" identifier -> field_identifier)) >> number_literal) != number_literal) )) (compound_statement "{\n      return SHOULD_INCLUDE_YES;\n    }" { (return_statement "return SHOULD_INCLUDE_YES;" return identifier ;) })) }))) (expression_statement "pGVar2 = parameters->options_;" (assignment_expression "pGVar2 = parameters->options_" identifier = (field_expression "parameters->options_" identifier -> field_identifier)) ;) (if_statement "if (pGVar2 != (General_options *)0x0) {\n    if ((pGVar2->undefined_).value._M_h._M_element_count != 0) {\n      paVar1 = &local_58.field_2;\n      local_58._M_dataplus._M_p = (pointer)paVar1;\n      sVar10 = strlen(name);\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&local_58,name,name + sVar10);\n      cVar8 = std::\n              _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      *)&(pGVar2->undefined_).value,&local_58);\n      if (cVar8.\n          super__Node_iterator_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>\n          ._M_cur != (__node_type *)0x0) {\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)local_58._M_dataplus._M_p != paVar1) {\n          operator_delete(local_58._M_dataplus._M_p);\n        }\n        uVar9 = why->_M_string_length;\n        uVar11 = 3;\n        pcVar6 = "-u ";\n        goto LAB_001c8211;\n      }\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_58._M_dataplus._M_p != paVar1) {\n        operator_delete(local_58._M_dataplus._M_p);\n      }\n    }\n    pGVar2 = parameters->options_;\n    if (pGVar2 == (General_options *)0x0) goto LAB_001c830c;\n    if ((pGVar2->export_dynamic_symbol_).value._M_h._M_element_count == 0) {\n      pSVar12 = layout->script_options_;\n    }\n    else {\n      local_58._M_dataplus._M_p = (pointer)&local_58.field_2;\n      sVar10 = strlen(name);\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&local_58,name,name + sVar10);\n      cVar8 = std::\n              _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      *)&(pGVar2->export_dynamic_symbol_).value,&local_58);\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_58._M_dataplus._M_p != &local_58.field_2) {\n        operator_delete(local_58._M_dataplus._M_p);\n      }\n      if (cVar8.\n          super__Node_iterator_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>\n          ._M_cur != (__node_type *)0x0) {\n        uVar9 = why->_M_string_length;\n        uVar11 = 0x18;\n        pcVar6 = "--export-dynamic-symbol ";\n        goto LAB_001c8211;\n      }\n      pSVar12 = layout->script_options_;\n    }\n    local_58._M_dataplus._M_p = (pointer)&local_58.field_2;\n    sVar10 = strlen(name);\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>(&local_58,name,name + sVar10);\n    cVar8 = std::\n            _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                    *)&pSVar12->symbol_references_,&local_58);\n    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)local_58._M_dataplus._M_p != &local_58.field_2) {\n      operator_delete(local_58._M_dataplus._M_p);\n    }\n    if (cVar8.\n        super__Node_iterator_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>\n        ._M_cur != (__node_type *)0x0) {\n      sVar10 = strlen(name);\n      pcVar6 = (char *)operator_new__(sVar10 + 100);\n      __format = (char *)gettext("script or expression reference to %s");\n      snprintf(pcVar6,sVar10 + 100,__format,name);\n      sVar10 = strlen(pcVar6);\n      std::string::_M_replace((string *)why,0,why->_M_string_length,pcVar6,sVar10);\n      operator_delete__(pcVar6);\n      return SHOULD_INCLUDE_YES;\n    }\n    if (parameters->options_ != (General_options *)0x0) {\n      if ((((parameters->options_->relocatable_).value != false) ||\n          (pcVar6 = Parameters::entry(parameters), pcVar6 == (char *)0x0)) ||\n         (iVar5 = strcmp(name,pcVar6), iVar5 != 0)) {\n        return SHOULD_INCLUDE_UNKNOWN;\n      }\n      uVar9 = why->_M_string_length;\n      uVar11 = 0xd;\n      pcVar6 = "entry symbol ";\nLAB_001c8211:\n      std::string::_M_replace((string *)why,0,uVar9,pcVar6,uVar11);\n      sVar10 = strlen(name);\n      if (sVar10 <= 0x7fffffffffffffff - why->_M_string_length) {\n        std::string::_M_append((string *)why,name,sVar10);\n        return SHOULD_INCLUDE_YES;\n      }\n                    /* WARNING: Subroutine does not return */\n      std::__throw_length_error("basic_string::append");\n    }\n  }" if (parenthesized_expression "(pGVar2 != (General_options *)0x0)" ( (binary_expression "pGVar2 != (General_options *)0x0" identifier != (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if ((pGVar2->undefined_).value._M_h._M_element_count != 0) {\n      paVar1 = &local_58.field_2;\n      local_58._M_dataplus._M_p = (pointer)paVar1;\n      sVar10 = strlen(name);\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&local_58,name,name + sVar10);\n      cVar8 = std::\n              _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      *)&(pGVar2->undefined_).value,&local_58);\n      if (cVar8.\n          super__Node_iterator_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>\n          ._M_cur != (__node_type *)0x0) {\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)local_58._M_dataplus._M_p != paVar1) {\n          operator_delete(local_58._M_dataplus._M_p);\n        }\n        uVar9 = why->_M_string_length;\n        uVar11 = 3;\n        pcVar6 = "-u ";\n        goto LAB_001c8211;\n      }\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_58._M_dataplus._M_p != paVar1) {\n        operator_delete(local_58._M_dataplus._M_p);\n      }\n    }\n    pGVar2 = parameters->options_;\n    if (pGVar2 == (General_options *)0x0) goto LAB_001c830c;\n    if ((pGVar2->export_dynamic_symbol_).value._M_h._M_element_count == 0) {\n      pSVar12 = layout->script_options_;\n    }\n    else {\n      local_58._M_dataplus._M_p = (pointer)&local_58.field_2;\n      sVar10 = strlen(name);\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&local_58,name,name + sVar10);\n      cVar8 = std::\n              _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      *)&(pGVar2->export_dynamic_symbol_).value,&local_58);\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_58._M_dataplus._M_p != &local_58.field_2) {\n        operator_delete(local_58._M_dataplus._M_p);\n      }\n      if (cVar8.\n          super__Node_iterator_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>\n          ._M_cur != (__node_type *)0x0) {\n        uVar9 = why->_M_string_length;\n        uVar11 = 0x18;\n        pcVar6 = "--export-dynamic-symbol ";\n        goto LAB_001c8211;\n      }\n      pSVar12 = layout->script_options_;\n    }\n    local_58._M_dataplus._M_p = (pointer)&local_58.field_2;\n    sVar10 = strlen(name);\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>(&local_58,name,name + sVar10);\n    cVar8 = std::\n            _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                    *)&pSVar12->symbol_references_,&local_58);\n    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)local_58._M_dataplus._M_p != &local_58.field_2) {\n      operator_delete(local_58._M_dataplus._M_p);\n    }\n    if (cVar8.\n        super__Node_iterator_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>\n        ._M_cur != (__node_type *)0x0) {\n      sVar10 = strlen(name);\n      pcVar6 = (char *)operator_new__(sVar10 + 100);\n      __format = (char *)gettext("script or expression reference to %s");\n      snprintf(pcVar6,sVar10 + 100,__format,name);\n      sVar10 = strlen(pcVar6);\n      std::string::_M_replace((string *)why,0,why->_M_string_length,pcVar6,sVar10);\n      operator_delete__(pcVar6);\n      return SHOULD_INCLUDE_YES;\n    }\n    if (parameters->options_ != (General_options *)0x0) {\n      if ((((parameters->options_->relocatable_).value != false) ||\n          (pcVar6 = Parameters::entry(parameters), pcVar6 == (char *)0x0)) ||\n         (iVar5 = strcmp(name,pcVar6), iVar5 != 0)) {\n        return SHOULD_INCLUDE_UNKNOWN;\n      }\n      uVar9 = why->_M_string_length;\n      uVar11 = 0xd;\n      pcVar6 = "entry symbol ";\nLAB_001c8211:\n      std::string::_M_replace((string *)why,0,uVar9,pcVar6,uVar11);\n      sVar10 = strlen(name);\n      if (sVar10 <= 0x7fffffffffffffff - why->_M_string_length) {\n        std::string::_M_append((string *)why,name,sVar10);\n        return SHOULD_INCLUDE_YES;\n      }\n                    /* WARNING: Subroutine does not return */\n      std::__throw_length_error("basic_string::append");\n    }\n  }" { (if_statement "if ((pGVar2->undefined_).value._M_h._M_element_count != 0) {\n      paVar1 = &local_58.field_2;\n      local_58._M_dataplus._M_p = (pointer)paVar1;\n      sVar10 = strlen(name);\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&local_58,name,name + sVar10);\n      cVar8 = std::\n              _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      *)&(pGVar2->undefined_).value,&local_58);\n      if (cVar8.\n          super__Node_iterator_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>\n          ._M_cur != (__node_type *)0x0) {\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)local_58._M_dataplus._M_p != paVar1) {\n          operator_delete(local_58._M_dataplus._M_p);\n        }\n        uVar9 = why->_M_string_length;\n        uVar11 = 3;\n        pcVar6 = "-u ";\n        goto LAB_001c8211;\n      }\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_58._M_dataplus._M_p != paVar1) {\n        operator_delete(local_58._M_dataplus._M_p);\n      }\n    }" if (parenthesized_expression "((pGVar2->undefined_).value._M_h._M_element_count != 0)" ( (binary_expression "(pGVar2->undefined_).value._M_h._M_element_count != 0" (field_expression "(pGVar2->undefined_).value._M_h._M_element_count" (field_expression "(pGVar2->undefined_).value._M_h" (field_expression "(pGVar2->undefined_).value" (parenthesized_expression "(pGVar2->undefined_)" ( (field_expression "pGVar2->undefined_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) != number_literal) )) (compound_statement "{\n      paVar1 = &local_58.field_2;\n      local_58._M_dataplus._M_p = (pointer)paVar1;\n      sVar10 = strlen(name);\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&local_58,name,name + sVar10);\n      cVar8 = std::\n              _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      *)&(pGVar2->undefined_).value,&local_58);\n      if (cVar8.\n          super__Node_iterator_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>\n          ._M_cur != (__node_type *)0x0) {\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)local_58._M_dataplus._M_p != paVar1) {\n          operator_delete(local_58._M_dataplus._M_p);\n        }\n        uVar9 = why->_M_string_length;\n        uVar11 = 3;\n        pcVar6 = "-u ";\n        goto LAB_001c8211;\n      }\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_58._M_dataplus._M_p != paVar1) {\n        operator_delete(local_58._M_dataplus._M_p);\n      }\n    }" { (expression_statement "paVar1 = &local_58.field_2;" (assignment_expression "paVar1 = &local_58.field_2" identifier = (pointer_expression "&local_58.field_2" & (field_expression "local_58.field_2" identifier . field_identifier))) ;) (expression_statement "local_58._M_dataplus._M_p = (pointer)paVar1;" (assignment_expression "local_58._M_dataplus._M_p = (pointer)paVar1" (field_expression "local_58._M_dataplus._M_p" (field_expression "local_58._M_dataplus" identifier . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar1" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "sVar10 = strlen(name);" (assignment_expression "sVar10 = strlen(name)" identifier = (call_expression "strlen(name)" identifier (argument_list "(name)" ( identifier )))) ;) (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&local_58,name,name + sVar10);" statement_identifier (ERROR "::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>:" : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > :) : (expression_statement "_M_construct<char_const*>(&local_58,name,name + sVar10);" (binary_expression "_M_construct<char_const*>(&local_58,name,name + sVar10)" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "(&local_58,name,name + sVar10)" ( (comma_expression "&local_58,name,name + sVar10" (pointer_expression "&local_58" & identifier) , (comma_expression "name,name + sVar10" identifier , (binary_expression "name + sVar10" identifier + identifier))) ))) ;)) (ERROR "cVar8 = std::\n              _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::" (assignment_expression "cVar8 = std" identifier = identifier) : : (binary_expression "_Hashtable<std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (comma_expression "__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std" identifier (ERROR "::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>" : : (comma_expression "_Identity,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) >) , identifier) : : (binary_expression "hash<std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : :) (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      *)&(pGVar2->undefined_).value,&local_58);" statement_identifier (ERROR "::_Mod_range_hashing,_std:" : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      *)&(pGVar2->undefined_).value,&local_58);" statement_identifier (ERROR "::_Default_ranged_hash,_std:" : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      *)&(pGVar2->undefined_).value,&local_58);" statement_identifier (ERROR "::_Prime_rehash_policy,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) :) : (labeled_statement "__detail::_Hashtable_traits<true,_true,_true>_>\n              ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      *)&(pGVar2->undefined_).value,&local_58);" statement_identifier : (ERROR ":" :) (expression_statement "_Hashtable_traits<true,_true,_true>_>\n              ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      *)&(pGVar2->undefined_).value,&local_58);" (comma_expression "_Hashtable_traits<true,_true,_true>_>\n              ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      *)&(pGVar2->undefined_).value,&local_58)" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n              ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      *)&(pGVar2->undefined_).value,&local_58)" identifier , (binary_expression "_true>_>\n              ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      *)&(pGVar2->undefined_).value,&local_58)" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) (call_expression "find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      *)&(pGVar2->undefined_).value,&local_58)" identifier (argument_list "((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      *)&(pGVar2->undefined_).value,&local_58)" ( (binary_expression "(_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      *)&(pGVar2->undefined_).value" (parenthesized_expression "(_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      *)" ( (ERROR "_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "_Hashtable<std::__cxx11::basic_string<char,_std" (binary_expression "_Hashtable<std::__cxx11::basic_string<char" (binary_expression "_Hashtable<std" identifier < identifier) (ERROR "::__cxx11::basic_string" : : identifier : : identifier) < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : identifier : : (comma_expression "_Identity,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "hash<std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : identifier : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<true,_true,_true>_>\n                      *" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n                      *" identifier , (binary_expression "_true>_>\n                      *" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "*" * identifier)))) )) & (field_expression "(pGVar2->undefined_).value" (parenthesized_expression "(pGVar2->undefined_)" ( (field_expression "pGVar2->undefined_" identifier -> field_identifier) )) . field_identifier)) , (pointer_expression "&local_58" & identifier) )))))) ;))))) (if_statement "if (cVar8.\n          super__Node_iterator_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>\n          ._M_cur != (__node_type *)0x0) {\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)local_58._M_dataplus._M_p != paVar1) {\n          operator_delete(local_58._M_dataplus._M_p);\n        }\n        uVar9 = why->_M_string_length;\n        uVar11 = 3;\n        pcVar6 = "-u ";\n        goto LAB_001c8211;\n      }" if (parenthesized_expression "(cVar8.\n          super__Node_iterator_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>\n          ._M_cur != (__node_type *)0x0)" ( (ERROR "cVar8.\n          super__Node_iterator_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::" (comma_expression "cVar8.\n          super__Node_iterator_base<std::__cxx11::basic_string<char,_std" (binary_expression "cVar8.\n          super__Node_iterator_base<std::__cxx11::basic_string<char" (binary_expression "cVar8.\n          super__Node_iterator_base<std" (field_expression "cVar8.\n          super__Node_iterator_base" identifier . field_identifier) < identifier) (ERROR "::__cxx11::basic_string" : : identifier : : identifier) < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>,_true>\n          ._M_cur != (__node_type *)0x0" (field_expression "allocator<char>_>,_true>\n          ._M_cur" (binary_expression "allocator<char>_>,_true" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) (ERROR ">" >) . field_identifier) != (cast_expression "(__node_type *)0x0" ( (type_descriptor "__node_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)local_58._M_dataplus._M_p != paVar1) {\n          operator_delete(local_58._M_dataplus._M_p);\n        }\n        uVar9 = why->_M_string_length;\n        uVar11 = 3;\n        pcVar6 = "-u ";\n        goto LAB_001c8211;\n      }" { (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)local_58._M_dataplus._M_p != paVar1) {\n          operator_delete(local_58._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             *)local_58._M_dataplus._M_p != paVar1)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)local_58._M_dataplus._M_p != paVar1)" ( (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             *)local_58._M_dataplus._M_p != paVar1" (binary_expression "allocator<char>_>_9\n             *)local_58._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n             *)local_58._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "local_58._M_dataplus._M_p" (field_expression "local_58._M_dataplus" identifier . field_identifier) . field_identifier))) != identifier) )) )) (compound_statement "{\n          operator_delete(local_58._M_dataplus._M_p);\n        }" { (expression_statement "operator_delete(local_58._M_dataplus._M_p);" (call_expression "operator_delete(local_58._M_dataplus._M_p)" identifier (argument_list "(local_58._M_dataplus._M_p)" ( (field_expression "local_58._M_dataplus._M_p" (field_expression "local_58._M_dataplus" identifier . field_identifier) . field_identifier) ))) ;) })) (expression_statement "uVar9 = why->_M_string_length;" (assignment_expression "uVar9 = why->_M_string_length" identifier = (field_expression "why->_M_string_length" identifier -> field_identifier)) ;) (expression_statement "uVar11 = 3;" (assignment_expression "uVar11 = 3" identifier = number_literal) ;) (expression_statement "pcVar6 = "-u ";" (assignment_expression "pcVar6 = "-u "" identifier = (string_literal ""-u "" " string_content ")) ;) (goto_statement "goto LAB_001c8211;" goto statement_identifier ;) })) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_58._M_dataplus._M_p != paVar1) {\n        operator_delete(local_58._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           *)local_58._M_dataplus._M_p != paVar1)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_58._M_dataplus._M_p != paVar1)" ( (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           *)local_58._M_dataplus._M_p != paVar1" (binary_expression "allocator<char>_>_9\n           *)local_58._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n           *)local_58._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "local_58._M_dataplus._M_p" (field_expression "local_58._M_dataplus" identifier . field_identifier) . field_identifier))) != identifier) )) )) (compound_statement "{\n        operator_delete(local_58._M_dataplus._M_p);\n      }" { (expression_statement "operator_delete(local_58._M_dataplus._M_p);" (call_expression "operator_delete(local_58._M_dataplus._M_p)" identifier (argument_list "(local_58._M_dataplus._M_p)" ( (field_expression "local_58._M_dataplus._M_p" (field_expression "local_58._M_dataplus" identifier . field_identifier) . field_identifier) ))) ;) })) })) (expression_statement "pGVar2 = parameters->options_;" (assignment_expression "pGVar2 = parameters->options_" identifier = (field_expression "parameters->options_" identifier -> field_identifier)) ;) (if_statement "if (pGVar2 == (General_options *)0x0) goto LAB_001c830c;" if (parenthesized_expression "(pGVar2 == (General_options *)0x0)" ( (binary_expression "pGVar2 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001c830c;" goto statement_identifier ;)) (if_statement "if ((pGVar2->export_dynamic_symbol_).value._M_h._M_element_count == 0) {\n      pSVar12 = layout->script_options_;\n    }\n    else {\n      local_58._M_dataplus._M_p = (pointer)&local_58.field_2;\n      sVar10 = strlen(name);\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&local_58,name,name + sVar10);\n      cVar8 = std::\n              _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      *)&(pGVar2->export_dynamic_symbol_).value,&local_58);\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_58._M_dataplus._M_p != &local_58.field_2) {\n        operator_delete(local_58._M_dataplus._M_p);\n      }\n      if (cVar8.\n          super__Node_iterator_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>\n          ._M_cur != (__node_type *)0x0) {\n        uVar9 = why->_M_string_length;\n        uVar11 = 0x18;\n        pcVar6 = "--export-dynamic-symbol ";\n        goto LAB_001c8211;\n      }\n      pSVar12 = layout->script_options_;\n    }" if (parenthesized_expression "((pGVar2->export_dynamic_symbol_).value._M_h._M_element_count == 0)" ( (binary_expression "(pGVar2->export_dynamic_symbol_).value._M_h._M_element_count == 0" (field_expression "(pGVar2->export_dynamic_symbol_).value._M_h._M_element_count" (field_expression "(pGVar2->export_dynamic_symbol_).value._M_h" (field_expression "(pGVar2->export_dynamic_symbol_).value" (parenthesized_expression "(pGVar2->export_dynamic_symbol_)" ( (field_expression "pGVar2->export_dynamic_symbol_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) == number_literal) )) (compound_statement "{\n      pSVar12 = layout->script_options_;\n    }" { (expression_statement "pSVar12 = layout->script_options_;" (assignment_expression "pSVar12 = layout->script_options_" identifier = (field_expression "layout->script_options_" identifier -> field_identifier)) ;) }) (else_clause "else {\n      local_58._M_dataplus._M_p = (pointer)&local_58.field_2;\n      sVar10 = strlen(name);\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&local_58,name,name + sVar10);\n      cVar8 = std::\n              _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      *)&(pGVar2->export_dynamic_symbol_).value,&local_58);\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_58._M_dataplus._M_p != &local_58.field_2) {\n        operator_delete(local_58._M_dataplus._M_p);\n      }\n      if (cVar8.\n          super__Node_iterator_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>\n          ._M_cur != (__node_type *)0x0) {\n        uVar9 = why->_M_string_length;\n        uVar11 = 0x18;\n        pcVar6 = "--export-dynamic-symbol ";\n        goto LAB_001c8211;\n      }\n      pSVar12 = layout->script_options_;\n    }" else (compound_statement "{\n      local_58._M_dataplus._M_p = (pointer)&local_58.field_2;\n      sVar10 = strlen(name);\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&local_58,name,name + sVar10);\n      cVar8 = std::\n              _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      *)&(pGVar2->export_dynamic_symbol_).value,&local_58);\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_58._M_dataplus._M_p != &local_58.field_2) {\n        operator_delete(local_58._M_dataplus._M_p);\n      }\n      if (cVar8.\n          super__Node_iterator_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>\n          ._M_cur != (__node_type *)0x0) {\n        uVar9 = why->_M_string_length;\n        uVar11 = 0x18;\n        pcVar6 = "--export-dynamic-symbol ";\n        goto LAB_001c8211;\n      }\n      pSVar12 = layout->script_options_;\n    }" { (expression_statement "local_58._M_dataplus._M_p = (pointer)&local_58.field_2;" (assignment_expression "local_58._M_dataplus._M_p = (pointer)&local_58.field_2" (field_expression "local_58._M_dataplus._M_p" (field_expression "local_58._M_dataplus" identifier . field_identifier) . field_identifier) = (binary_expression "(pointer)&local_58.field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "local_58.field_2" identifier . field_identifier))) ;) (expression_statement "sVar10 = strlen(name);" (assignment_expression "sVar10 = strlen(name)" identifier = (call_expression "strlen(name)" identifier (argument_list "(name)" ( identifier )))) ;) (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&local_58,name,name + sVar10);" statement_identifier (ERROR "::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>:" : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > :) : (expression_statement "_M_construct<char_const*>(&local_58,name,name + sVar10);" (binary_expression "_M_construct<char_const*>(&local_58,name,name + sVar10)" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "(&local_58,name,name + sVar10)" ( (comma_expression "&local_58,name,name + sVar10" (pointer_expression "&local_58" & identifier) , (comma_expression "name,name + sVar10" identifier , (binary_expression "name + sVar10" identifier + identifier))) ))) ;)) (ERROR "cVar8 = std::\n              _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::" (assignment_expression "cVar8 = std" identifier = identifier) : : (binary_expression "_Hashtable<std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (comma_expression "__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std" identifier (ERROR "::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>" : : (comma_expression "_Identity,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) >) , identifier) : : (binary_expression "hash<std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : :) (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      *)&(pGVar2->export_dynamic_symbol_).value,&local_58);" statement_identifier (ERROR "::_Mod_range_hashing,_std:" : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      *)&(pGVar2->export_dynamic_symbol_).value,&local_58);" statement_identifier (ERROR "::_Default_ranged_hash,_std:" : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n              ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      *)&(pGVar2->export_dynamic_symbol_).value,&local_58);" statement_identifier (ERROR "::_Prime_rehash_policy,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) :) : (labeled_statement "__detail::_Hashtable_traits<true,_true,_true>_>\n              ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      *)&(pGVar2->export_dynamic_symbol_).value,&local_58);" statement_identifier : (ERROR ":" :) (expression_statement "_Hashtable_traits<true,_true,_true>_>\n              ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      *)&(pGVar2->export_dynamic_symbol_).value,&local_58);" (comma_expression "_Hashtable_traits<true,_true,_true>_>\n              ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      *)&(pGVar2->export_dynamic_symbol_).value,&local_58)" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n              ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      *)&(pGVar2->export_dynamic_symbol_).value,&local_58)" identifier , (binary_expression "_true>_>\n              ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      *)&(pGVar2->export_dynamic_symbol_).value,&local_58)" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) (call_expression "find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      *)&(pGVar2->export_dynamic_symbol_).value,&local_58)" identifier (argument_list "((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      *)&(pGVar2->export_dynamic_symbol_).value,&local_58)" ( (binary_expression "(_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      *)&(pGVar2->export_dynamic_symbol_).value" (parenthesized_expression "(_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                      *)" ( (ERROR "_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "_Hashtable<std::__cxx11::basic_string<char,_std" (binary_expression "_Hashtable<std::__cxx11::basic_string<char" (binary_expression "_Hashtable<std" identifier < identifier) (ERROR "::__cxx11::basic_string" : : identifier : : identifier) < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : identifier : : (comma_expression "_Identity,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "hash<std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : identifier : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<true,_true,_true>_>\n                      *" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n                      *" identifier , (binary_expression "_true>_>\n                      *" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "*" * identifier)))) )) & (field_expression "(pGVar2->export_dynamic_symbol_).value" (parenthesized_expression "(pGVar2->export_dynamic_symbol_)" ( (field_expression "pGVar2->export_dynamic_symbol_" identifier -> field_identifier) )) . field_identifier)) , (pointer_expression "&local_58" & identifier) )))))) ;))))) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_58._M_dataplus._M_p != &local_58.field_2) {\n        operator_delete(local_58._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           *)local_58._M_dataplus._M_p != &local_58.field_2)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_58._M_dataplus._M_p != &local_58.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           *)local_58._M_dataplus._M_p != &local_58.field_2" (binary_expression "allocator<char>_>_9\n           *)local_58._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n           *)local_58._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "local_58._M_dataplus._M_p" (field_expression "local_58._M_dataplus" identifier . field_identifier) . field_identifier))) != (pointer_expression "&local_58.field_2" & (field_expression "local_58.field_2" identifier . field_identifier))) )) )) (compound_statement "{\n        operator_delete(local_58._M_dataplus._M_p);\n      }" { (expression_statement "operator_delete(local_58._M_dataplus._M_p);" (call_expression "operator_delete(local_58._M_dataplus._M_p)" identifier (argument_list "(local_58._M_dataplus._M_p)" ( (field_expression "local_58._M_dataplus._M_p" (field_expression "local_58._M_dataplus" identifier . field_identifier) . field_identifier) ))) ;) })) (if_statement "if (cVar8.\n          super__Node_iterator_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>\n          ._M_cur != (__node_type *)0x0) {\n        uVar9 = why->_M_string_length;\n        uVar11 = 0x18;\n        pcVar6 = "--export-dynamic-symbol ";\n        goto LAB_001c8211;\n      }" if (parenthesized_expression "(cVar8.\n          super__Node_iterator_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>\n          ._M_cur != (__node_type *)0x0)" ( (ERROR "cVar8.\n          super__Node_iterator_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::" (comma_expression "cVar8.\n          super__Node_iterator_base<std::__cxx11::basic_string<char,_std" (binary_expression "cVar8.\n          super__Node_iterator_base<std::__cxx11::basic_string<char" (binary_expression "cVar8.\n          super__Node_iterator_base<std" (field_expression "cVar8.\n          super__Node_iterator_base" identifier . field_identifier) < identifier) (ERROR "::__cxx11::basic_string" : : identifier : : identifier) < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>,_true>\n          ._M_cur != (__node_type *)0x0" (field_expression "allocator<char>_>,_true>\n          ._M_cur" (binary_expression "allocator<char>_>,_true" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) (ERROR ">" >) . field_identifier) != (cast_expression "(__node_type *)0x0" ( (type_descriptor "__node_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar9 = why->_M_string_length;\n        uVar11 = 0x18;\n        pcVar6 = "--export-dynamic-symbol ";\n        goto LAB_001c8211;\n      }" { (expression_statement "uVar9 = why->_M_string_length;" (assignment_expression "uVar9 = why->_M_string_length" identifier = (field_expression "why->_M_string_length" identifier -> field_identifier)) ;) (expression_statement "uVar11 = 0x18;" (assignment_expression "uVar11 = 0x18" identifier = number_literal) ;) (expression_statement "pcVar6 = "--export-dynamic-symbol ";" (assignment_expression "pcVar6 = "--export-dynamic-symbol "" identifier = (string_literal ""--export-dynamic-symbol "" " string_content ")) ;) (goto_statement "goto LAB_001c8211;" goto statement_identifier ;) })) (expression_statement "pSVar12 = layout->script_options_;" (assignment_expression "pSVar12 = layout->script_options_" identifier = (field_expression "layout->script_options_" identifier -> field_identifier)) ;) }))) (expression_statement "local_58._M_dataplus._M_p = (pointer)&local_58.field_2;" (assignment_expression "local_58._M_dataplus._M_p = (pointer)&local_58.field_2" (field_expression "local_58._M_dataplus._M_p" (field_expression "local_58._M_dataplus" identifier . field_identifier) . field_identifier) = (binary_expression "(pointer)&local_58.field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "local_58.field_2" identifier . field_identifier))) ;) (expression_statement "sVar10 = strlen(name);" (assignment_expression "sVar10 = strlen(name)" identifier = (call_expression "strlen(name)" identifier (argument_list "(name)" ( identifier )))) ;) (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char_const*>(&local_58,name,name + sVar10);" statement_identifier (ERROR "::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>:" : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > :) : (expression_statement "_M_construct<char_const*>(&local_58,name,name + sVar10);" (binary_expression "_M_construct<char_const*>(&local_58,name,name + sVar10)" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "(&local_58,name,name + sVar10)" ( (comma_expression "&local_58,name,name + sVar10" (pointer_expression "&local_58" & identifier) , (comma_expression "name,name + sVar10" identifier , (binary_expression "name + sVar10" identifier + identifier))) ))) ;)) (ERROR "cVar8 = std::\n            _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::" (assignment_expression "cVar8 = std" identifier = identifier) : : (binary_expression "_Hashtable<std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (comma_expression "__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std" identifier (ERROR "::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>" : : (comma_expression "_Identity,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) >) , identifier) : : (binary_expression "hash<std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : :) (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                    *)&pSVar12->symbol_references_,&local_58);" statement_identifier (ERROR "::_Mod_range_hashing,_std:" : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                    *)&pSVar12->symbol_references_,&local_58);" statement_identifier (ERROR "::_Default_ranged_hash,_std:" : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n            ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                    *)&pSVar12->symbol_references_,&local_58);" statement_identifier (ERROR "::_Prime_rehash_policy,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) :) : (labeled_statement "__detail::_Hashtable_traits<true,_true,_true>_>\n            ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                    *)&pSVar12->symbol_references_,&local_58);" statement_identifier : (ERROR ":" :) (expression_statement "_Hashtable_traits<true,_true,_true>_>\n            ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                    *)&pSVar12->symbol_references_,&local_58);" (comma_expression "_Hashtable_traits<true,_true,_true>_>\n            ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                    *)&pSVar12->symbol_references_,&local_58)" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n            ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                    *)&pSVar12->symbol_references_,&local_58)" identifier , (binary_expression "_true>_>\n            ::find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                    *)&pSVar12->symbol_references_,&local_58)" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) (call_expression "find((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                    *)&pSVar12->symbol_references_,&local_58)" identifier (argument_list "((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                    *)&pSVar12->symbol_references_,&local_58)" ( (binary_expression "(_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                    *)&pSVar12->symbol_references_" (parenthesized_expression "(_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                    *)" ( (ERROR "_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "_Hashtable<std::__cxx11::basic_string<char,_std" (binary_expression "_Hashtable<std::__cxx11::basic_string<char" (binary_expression "_Hashtable<std" identifier < identifier) (ERROR "::__cxx11::basic_string" : : identifier : : identifier) < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : identifier : : (comma_expression "_Identity,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "hash<std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : identifier : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<true,_true,_true>_>\n                    *" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n                    *" identifier , (binary_expression "_true>_>\n                    *" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "*" * identifier)))) )) & (field_expression "pSVar12->symbol_references_" identifier -> field_identifier)) , (pointer_expression "&local_58" & identifier) )))))) ;))))) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)local_58._M_dataplus._M_p != &local_58.field_2) {\n      operator_delete(local_58._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         *)local_58._M_dataplus._M_p != &local_58.field_2)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)local_58._M_dataplus._M_p != &local_58.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         *)local_58._M_dataplus._M_p != &local_58.field_2" (binary_expression "allocator<char>_>_9\n         *)local_58._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n         *)local_58._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "local_58._M_dataplus._M_p" (field_expression "local_58._M_dataplus" identifier . field_identifier) . field_identifier))) != (pointer_expression "&local_58.field_2" & (field_expression "local_58.field_2" identifier . field_identifier))) )) )) (compound_statement "{\n      operator_delete(local_58._M_dataplus._M_p);\n    }" { (expression_statement "operator_delete(local_58._M_dataplus._M_p);" (call_expression "operator_delete(local_58._M_dataplus._M_p)" identifier (argument_list "(local_58._M_dataplus._M_p)" ( (field_expression "local_58._M_dataplus._M_p" (field_expression "local_58._M_dataplus" identifier . field_identifier) . field_identifier) ))) ;) })) (if_statement "if (cVar8.\n        super__Node_iterator_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>\n        ._M_cur != (__node_type *)0x0) {\n      sVar10 = strlen(name);\n      pcVar6 = (char *)operator_new__(sVar10 + 100);\n      __format = (char *)gettext("script or expression reference to %s");\n      snprintf(pcVar6,sVar10 + 100,__format,name);\n      sVar10 = strlen(pcVar6);\n      std::string::_M_replace((string *)why,0,why->_M_string_length,pcVar6,sVar10);\n      operator_delete__(pcVar6);\n      return SHOULD_INCLUDE_YES;\n    }" if (parenthesized_expression "(cVar8.\n        super__Node_iterator_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>\n        ._M_cur != (__node_type *)0x0)" ( (ERROR "cVar8.\n        super__Node_iterator_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::" (comma_expression "cVar8.\n        super__Node_iterator_base<std::__cxx11::basic_string<char,_std" (binary_expression "cVar8.\n        super__Node_iterator_base<std::__cxx11::basic_string<char" (binary_expression "cVar8.\n        super__Node_iterator_base<std" (field_expression "cVar8.\n        super__Node_iterator_base" identifier . field_identifier) < identifier) (ERROR "::__cxx11::basic_string" : : identifier : : identifier) < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>,_true>\n        ._M_cur != (__node_type *)0x0" (field_expression "allocator<char>_>,_true>\n        ._M_cur" (binary_expression "allocator<char>_>,_true" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) (ERROR ">" >) . field_identifier) != (cast_expression "(__node_type *)0x0" ( (type_descriptor "__node_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      sVar10 = strlen(name);\n      pcVar6 = (char *)operator_new__(sVar10 + 100);\n      __format = (char *)gettext("script or expression reference to %s");\n      snprintf(pcVar6,sVar10 + 100,__format,name);\n      sVar10 = strlen(pcVar6);\n      std::string::_M_replace((string *)why,0,why->_M_string_length,pcVar6,sVar10);\n      operator_delete__(pcVar6);\n      return SHOULD_INCLUDE_YES;\n    }" { (expression_statement "sVar10 = strlen(name);" (assignment_expression "sVar10 = strlen(name)" identifier = (call_expression "strlen(name)" identifier (argument_list "(name)" ( identifier )))) ;) (expression_statement "pcVar6 = (char *)operator_new__(sVar10 + 100);" (assignment_expression "pcVar6 = (char *)operator_new__(sVar10 + 100)" identifier = (cast_expression "(char *)operator_new__(sVar10 + 100)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new__(sVar10 + 100)" identifier (argument_list "(sVar10 + 100)" ( (binary_expression "sVar10 + 100" identifier + number_literal) ))))) ;) (expression_statement "__format = (char *)gettext("script or expression reference to %s");" (assignment_expression "__format = (char *)gettext("script or expression reference to %s")" identifier = (cast_expression "(char *)gettext("script or expression reference to %s")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("script or expression reference to %s")" identifier (argument_list "("script or expression reference to %s")" ( (string_literal ""script or expression reference to %s"" " string_content ") ))))) ;) (expression_statement "snprintf(pcVar6,sVar10 + 100,__format,name);" (call_expression "snprintf(pcVar6,sVar10 + 100,__format,name)" identifier (argument_list "(pcVar6,sVar10 + 100,__format,name)" ( identifier , (binary_expression "sVar10 + 100" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "sVar10 = strlen(pcVar6);" (assignment_expression "sVar10 = strlen(pcVar6)" identifier = (call_expression "strlen(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier )))) ;) (labeled_statement "std::string::_M_replace((string *)why,0,why->_M_string_length,pcVar6,sVar10);" statement_identifier : (ERROR ":" :) (labeled_statement "string::_M_replace((string *)why,0,why->_M_string_length,pcVar6,sVar10);" statement_identifier : (ERROR ":" :) (expression_statement "_M_replace((string *)why,0,why->_M_string_length,pcVar6,sVar10);" (call_expression "_M_replace((string *)why,0,why->_M_string_length,pcVar6,sVar10)" identifier (argument_list "((string *)why,0,why->_M_string_length,pcVar6,sVar10)" ( (cast_expression "(string *)why" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , (field_expression "why->_M_string_length" identifier -> field_identifier) , identifier , identifier ))) ;))) (expression_statement "operator_delete__(pcVar6);" (call_expression "operator_delete__(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) (return_statement "return SHOULD_INCLUDE_YES;" return identifier ;) })) (if_statement "if (parameters->options_ != (General_options *)0x0) {\n      if ((((parameters->options_->relocatable_).value != false) ||\n          (pcVar6 = Parameters::entry(parameters), pcVar6 == (char *)0x0)) ||\n         (iVar5 = strcmp(name,pcVar6), iVar5 != 0)) {\n        return SHOULD_INCLUDE_UNKNOWN;\n      }\n      uVar9 = why->_M_string_length;\n      uVar11 = 0xd;\n      pcVar6 = "entry symbol ";\nLAB_001c8211:\n      std::string::_M_replace((string *)why,0,uVar9,pcVar6,uVar11);\n      sVar10 = strlen(name);\n      if (sVar10 <= 0x7fffffffffffffff - why->_M_string_length) {\n        std::string::_M_append((string *)why,name,sVar10);\n        return SHOULD_INCLUDE_YES;\n      }\n                    /* WARNING: Subroutine does not return */\n      std::__throw_length_error("basic_string::append");\n    }" if (parenthesized_expression "(parameters->options_ != (General_options *)0x0)" ( (binary_expression "parameters->options_ != (General_options *)0x0" (field_expression "parameters->options_" identifier -> field_identifier) != (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if ((((parameters->options_->relocatable_).value != false) ||\n          (pcVar6 = Parameters::entry(parameters), pcVar6 == (char *)0x0)) ||\n         (iVar5 = strcmp(name,pcVar6), iVar5 != 0)) {\n        return SHOULD_INCLUDE_UNKNOWN;\n      }\n      uVar9 = why->_M_string_length;\n      uVar11 = 0xd;\n      pcVar6 = "entry symbol ";\nLAB_001c8211:\n      std::string::_M_replace((string *)why,0,uVar9,pcVar6,uVar11);\n      sVar10 = strlen(name);\n      if (sVar10 <= 0x7fffffffffffffff - why->_M_string_length) {\n        std::string::_M_append((string *)why,name,sVar10);\n        return SHOULD_INCLUDE_YES;\n      }\n                    /* WARNING: Subroutine does not return */\n      std::__throw_length_error("basic_string::append");\n    }" { (if_statement "if ((((parameters->options_->relocatable_).value != false) ||\n          (pcVar6 = Parameters::entry(parameters), pcVar6 == (char *)0x0)) ||\n         (iVar5 = strcmp(name,pcVar6), iVar5 != 0)) {\n        return SHOULD_INCLUDE_UNKNOWN;\n      }" if (parenthesized_expression "((((parameters->options_->relocatable_).value != false) ||\n          (pcVar6 = Parameters::entry(parameters), pcVar6 == (char *)0x0)) ||\n         (iVar5 = strcmp(name,pcVar6), iVar5 != 0))" ( (binary_expression "(((parameters->options_->relocatable_).value != false) ||\n          (pcVar6 = Parameters::entry(parameters), pcVar6 == (char *)0x0)) ||\n         (iVar5 = strcmp(name,pcVar6), iVar5 != 0)" (parenthesized_expression "(((parameters->options_->relocatable_).value != false) ||\n          (pcVar6 = Parameters::entry(parameters), pcVar6 == (char *)0x0))" ( (binary_expression "((parameters->options_->relocatable_).value != false) ||\n          (pcVar6 = Parameters::entry(parameters), pcVar6 == (char *)0x0)" (parenthesized_expression "((parameters->options_->relocatable_).value != false)" ( (binary_expression "(parameters->options_->relocatable_).value != false" (field_expression "(parameters->options_->relocatable_).value" (parenthesized_expression "(parameters->options_->relocatable_)" ( (field_expression "parameters->options_->relocatable_" (field_expression "parameters->options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) != false) )) || (parenthesized_expression "(pcVar6 = Parameters::entry(parameters), pcVar6 == (char *)0x0)" ( (ERROR "pcVar6 = Parameters::" (assignment_expression "pcVar6 = Parameters" identifier = identifier) : :) (comma_expression "entry(parameters), pcVar6 == (char *)0x0" (call_expression "entry(parameters)" identifier (argument_list "(parameters)" ( identifier ))) , (binary_expression "pcVar6 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) || (parenthesized_expression "(iVar5 = strcmp(name,pcVar6), iVar5 != 0)" ( (comma_expression "iVar5 = strcmp(name,pcVar6), iVar5 != 0" (assignment_expression "iVar5 = strcmp(name,pcVar6)" identifier = (call_expression "strcmp(name,pcVar6)" identifier (argument_list "(name,pcVar6)" ( identifier , identifier )))) , (binary_expression "iVar5 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        return SHOULD_INCLUDE_UNKNOWN;\n      }" { (return_statement "return SHOULD_INCLUDE_UNKNOWN;" return identifier ;) })) (expression_statement "uVar9 = why->_M_string_length;" (assignment_expression "uVar9 = why->_M_string_length" identifier = (field_expression "why->_M_string_length" identifier -> field_identifier)) ;) (expression_statement "uVar11 = 0xd;" (assignment_expression "uVar11 = 0xd" identifier = number_literal) ;) (expression_statement "pcVar6 = "entry symbol ";" (assignment_expression "pcVar6 = "entry symbol "" identifier = (string_literal ""entry symbol "" " string_content ")) ;) (labeled_statement "LAB_001c8211:\n      std::string::_M_replace((string *)why,0,uVar9,pcVar6,uVar11);" statement_identifier : (labeled_statement "std::string::_M_replace((string *)why,0,uVar9,pcVar6,uVar11);" statement_identifier : (ERROR ":" :) (labeled_statement "string::_M_replace((string *)why,0,uVar9,pcVar6,uVar11);" statement_identifier : (ERROR ":" :) (expression_statement "_M_replace((string *)why,0,uVar9,pcVar6,uVar11);" (call_expression "_M_replace((string *)why,0,uVar9,pcVar6,uVar11)" identifier (argument_list "((string *)why,0,uVar9,pcVar6,uVar11)" ( (cast_expression "(string *)why" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , identifier , identifier , identifier ))) ;)))) (expression_statement "sVar10 = strlen(name);" (assignment_expression "sVar10 = strlen(name)" identifier = (call_expression "strlen(name)" identifier (argument_list "(name)" ( identifier )))) ;) (if_statement "if (sVar10 <= 0x7fffffffffffffff - why->_M_string_length) {\n        std::string::_M_append((string *)why,name,sVar10);\n        return SHOULD_INCLUDE_YES;\n      }" if (parenthesized_expression "(sVar10 <= 0x7fffffffffffffff - why->_M_string_length)" ( (binary_expression "sVar10 <= 0x7fffffffffffffff - why->_M_string_length" identifier <= (binary_expression "0x7fffffffffffffff - why->_M_string_length" number_literal - (field_expression "why->_M_string_length" identifier -> field_identifier))) )) (compound_statement "{\n        std::string::_M_append((string *)why,name,sVar10);\n        return SHOULD_INCLUDE_YES;\n      }" { (labeled_statement "std::string::_M_append((string *)why,name,sVar10);" statement_identifier : (ERROR ":" :) (labeled_statement "string::_M_append((string *)why,name,sVar10);" statement_identifier : (ERROR ":" :) (expression_statement "_M_append((string *)why,name,sVar10);" (call_expression "_M_append((string *)why,name,sVar10)" identifier (argument_list "((string *)why,name,sVar10)" ( (cast_expression "(string *)why" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier ))) ;))) (return_statement "return SHOULD_INCLUDE_YES;" return identifier ;) })) comment (labeled_statement "std::__throw_length_error("basic_string::append");" statement_identifier : (ERROR ":" :) (expression_statement "__throw_length_error("basic_string::append");" (call_expression "__throw_length_error("basic_string::append")" identifier (argument_list "("basic_string::append")" ( (string_literal ""basic_string::append"" " string_content ") ))) ;)) })) })) (labeled_statement "LAB_001c830c:\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;)) })))
(translation_unit "undefined8\nFUN_001c7e90(undefined8 param_1,long param_2,char *param_3,long *param_4,long param_5,\n            undefined8 *param_6,ulong *param_7)\n\n{\n  ulong uVar1;\n  byte bVar2;\n  char cVar3;\n  int iVar4;\n  char *pcVar5;\n  long lVar6;\n  char *__s;\n  char *__format;\n  undefined8 uVar7;\n  size_t sVar8;\n  undefined8 uVar9;\n  undefined1 *local_58 [2];\n  undefined1 local_48 [24];\n  \n  pcVar5 = strchr(param_3,0x40);\n  __s = param_3;\n  if (pcVar5 == (char *)0x0) {\nLAB_001c7f12:\n    lVar6 = FUN_002df9a0(param_1,__s,pcVar5);\n    *param_4 = lVar6;\njoined_r0x001c805a:\n    if (lVar6 != 0) {\n      bVar2 = *(byte *)(lVar6 + 0x3a) & 7;\n      if (bVar2 == 0) goto LAB_001c7f3f;\nLAB_001c7fc0:\n      if (bVar2 != 4) {\n        return 0;\n      }\n      goto LAB_001c7fc4;\n    }\n  }\n  else {\n    sVar8 = (long)pcVar5 - (long)param_3;\n    __s = (char *)*param_6;\n    uVar1 = sVar8 + 1;\n    if (*param_7 < uVar1) {\n      __s = (char *)FUN_00336eb0(__s,uVar1);\n      *param_6 = __s;\n      *param_7 = uVar1;\n    }\n    memcpy(__s,param_3,sVar8);\n    __s[sVar8] = '\0';\n    if (pcVar5[1] != '@') {\n      pcVar5 = pcVar5 + 1;\n      goto LAB_001c7f12;\n    }\n    lVar6 = FUN_002df9a0(param_1,__s,pcVar5 + 2);\n    if (lVar6 == 0) {\nLAB_001c8040:\n      lVar6 = FUN_002df9a0(param_1,__s,0);\n      *param_4 = lVar6;\n      goto joined_r0x001c805a;\n    }\n    bVar2 = *(byte *)(lVar6 + 0x3a) & 7;\n    if ((*(byte *)(lVar6 + 0x3a) & 7) != 0) {\n      if (bVar2 == 4) goto LAB_001c7f9d;\n      goto LAB_001c8040;\n    }\n    if ((*(int *)(lVar6 + 0x18) != 0) || ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0)) goto LAB_001c8040;\nLAB_001c7f9d:\n    if (*(byte *)(lVar6 + 0x38) >> 4 == 2) goto LAB_001c8040;\n    *param_4 = lVar6;\n    if (bVar2 != 0) goto LAB_001c7fc0;\nLAB_001c7f3f:\n    if (*(int *)(lVar6 + 0x18) != 0) {\n      return 0;\n    }\n    if ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0) {\n      return 0;\n    }\nLAB_001c7fc4:\n    cVar3 = FUN_002d0d40(*(undefined8 *)(param_2 + 8),__s);\n    if (cVar3 != '\0') {\n      return 0;\n    }\n    if (*(byte *)(lVar6 + 0x38) >> 4 != 2) {\n      return 1;\n    }\n  }\n  lVar6 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n  if (lVar6 != 0) {\n    if (*(long *)(lVar6 + 0x6bb8) != 0) {\n      local_58[0] = local_48;\n      sVar8 = strlen(__s);\n      FUN_001bc4c0(local_58,__s,__s + sVar8);\n      lVar6 = FUN_001ca390(lVar6 + 0x6ba0,local_58);\n      if (lVar6 != 0) {\n        if (local_58[0] != local_48) {\n          FUN_00338a40();\n        }\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 3;\n        pcVar5 = "-u ";\n        goto LAB_001c8211;\n      }\n      if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }\n    }\n    lVar6 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n    if (lVar6 == 0) goto LAB_001c830c;\n    if (*(long *)(lVar6 + 0x1f28) == 0) {\n      lVar6 = *(long *)(param_2 + 8);\n    }\n    else {\n      local_58[0] = local_48;\n      sVar8 = strlen(__s);\n      FUN_001bc4c0(local_58,__s,__s + sVar8);\n      lVar6 = FUN_001ca390(lVar6 + 0x1f10,local_58);\n      if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }\n      if (lVar6 != 0) {\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 0x18;\n        pcVar5 = "--export-dynamic-symbol ";\n        goto LAB_001c8211;\n      }\n      lVar6 = *(long *)(param_2 + 8);\n    }\n    local_58[0] = local_48;\n    sVar8 = strlen(__s);\n    FUN_001bc4c0(local_58,__s,__s + sVar8);\n    lVar6 = FUN_001ca390(lVar6 + 0x70,local_58);\n    if (local_58[0] != local_48) {\n      FUN_00338a40();\n    }\n    if (lVar6 != 0) {\n      sVar8 = strlen(__s);\n      pcVar5 = (char *)thunk_FUN_00337270(sVar8 + 100);\n      __format = (char *)gettext("script or expression reference to %s");\n      snprintf(pcVar5,sVar8 + 100,__format,__s);\n      sVar8 = strlen(pcVar5);\n      FUN_00340370(param_5,0,*(undefined8 *)(param_5 + 8),pcVar5,sVar8);\n      thunk_FUN_00338a40(pcVar5);\n      return 1;\n    }\n    if (*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) {\n      if (((*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051) != '\0') ||\n          (pcVar5 = (char *)FUN_002a09b0(), pcVar5 == (char *)0x0)) ||\n         (iVar4 = strcmp(__s,pcVar5), iVar4 != 0)) {\n        return 2;\n      }\n      uVar7 = *(undefined8 *)(param_5 + 8);\n      uVar9 = 0xd;\n      pcVar5 = "entry symbol ";\nLAB_001c8211:\n      FUN_00340370(param_5,0,uVar7,pcVar5,uVar9);\n      sVar8 = strlen(__s);\n      if (sVar8 <= 0x7fffffffffffffffU - *(long *)(param_5 + 8)) {\n        FUN_00340cc0(param_5,__s,sVar8);\n        return 1;\n      }\n                    \n      FUN_00377370("basic_string::append");\n    }\n  }\nLAB_001c830c:\n                    \n  FUN_001e9890("../../gold/parameters.h",0x5c,"options");\n}\n\n" (function_definition "undefined8\nFUN_001c7e90(undefined8 param_1,long param_2,char *param_3,long *param_4,long param_5,\n            undefined8 *param_6,ulong *param_7)\n\n{\n  ulong uVar1;\n  byte bVar2;\n  char cVar3;\n  int iVar4;\n  char *pcVar5;\n  long lVar6;\n  char *__s;\n  char *__format;\n  undefined8 uVar7;\n  size_t sVar8;\n  undefined8 uVar9;\n  undefined1 *local_58 [2];\n  undefined1 local_48 [24];\n  \n  pcVar5 = strchr(param_3,0x40);\n  __s = param_3;\n  if (pcVar5 == (char *)0x0) {\nLAB_001c7f12:\n    lVar6 = FUN_002df9a0(param_1,__s,pcVar5);\n    *param_4 = lVar6;\njoined_r0x001c805a:\n    if (lVar6 != 0) {\n      bVar2 = *(byte *)(lVar6 + 0x3a) & 7;\n      if (bVar2 == 0) goto LAB_001c7f3f;\nLAB_001c7fc0:\n      if (bVar2 != 4) {\n        return 0;\n      }\n      goto LAB_001c7fc4;\n    }\n  }\n  else {\n    sVar8 = (long)pcVar5 - (long)param_3;\n    __s = (char *)*param_6;\n    uVar1 = sVar8 + 1;\n    if (*param_7 < uVar1) {\n      __s = (char *)FUN_00336eb0(__s,uVar1);\n      *param_6 = __s;\n      *param_7 = uVar1;\n    }\n    memcpy(__s,param_3,sVar8);\n    __s[sVar8] = '\0';\n    if (pcVar5[1] != '@') {\n      pcVar5 = pcVar5 + 1;\n      goto LAB_001c7f12;\n    }\n    lVar6 = FUN_002df9a0(param_1,__s,pcVar5 + 2);\n    if (lVar6 == 0) {\nLAB_001c8040:\n      lVar6 = FUN_002df9a0(param_1,__s,0);\n      *param_4 = lVar6;\n      goto joined_r0x001c805a;\n    }\n    bVar2 = *(byte *)(lVar6 + 0x3a) & 7;\n    if ((*(byte *)(lVar6 + 0x3a) & 7) != 0) {\n      if (bVar2 == 4) goto LAB_001c7f9d;\n      goto LAB_001c8040;\n    }\n    if ((*(int *)(lVar6 + 0x18) != 0) || ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0)) goto LAB_001c8040;\nLAB_001c7f9d:\n    if (*(byte *)(lVar6 + 0x38) >> 4 == 2) goto LAB_001c8040;\n    *param_4 = lVar6;\n    if (bVar2 != 0) goto LAB_001c7fc0;\nLAB_001c7f3f:\n    if (*(int *)(lVar6 + 0x18) != 0) {\n      return 0;\n    }\n    if ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0) {\n      return 0;\n    }\nLAB_001c7fc4:\n    cVar3 = FUN_002d0d40(*(undefined8 *)(param_2 + 8),__s);\n    if (cVar3 != '\0') {\n      return 0;\n    }\n    if (*(byte *)(lVar6 + 0x38) >> 4 != 2) {\n      return 1;\n    }\n  }\n  lVar6 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n  if (lVar6 != 0) {\n    if (*(long *)(lVar6 + 0x6bb8) != 0) {\n      local_58[0] = local_48;\n      sVar8 = strlen(__s);\n      FUN_001bc4c0(local_58,__s,__s + sVar8);\n      lVar6 = FUN_001ca390(lVar6 + 0x6ba0,local_58);\n      if (lVar6 != 0) {\n        if (local_58[0] != local_48) {\n          FUN_00338a40();\n        }\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 3;\n        pcVar5 = "-u ";\n        goto LAB_001c8211;\n      }\n      if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }\n    }\n    lVar6 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n    if (lVar6 == 0) goto LAB_001c830c;\n    if (*(long *)(lVar6 + 0x1f28) == 0) {\n      lVar6 = *(long *)(param_2 + 8);\n    }\n    else {\n      local_58[0] = local_48;\n      sVar8 = strlen(__s);\n      FUN_001bc4c0(local_58,__s,__s + sVar8);\n      lVar6 = FUN_001ca390(lVar6 + 0x1f10,local_58);\n      if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }\n      if (lVar6 != 0) {\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 0x18;\n        pcVar5 = "--export-dynamic-symbol ";\n        goto LAB_001c8211;\n      }\n      lVar6 = *(long *)(param_2 + 8);\n    }\n    local_58[0] = local_48;\n    sVar8 = strlen(__s);\n    FUN_001bc4c0(local_58,__s,__s + sVar8);\n    lVar6 = FUN_001ca390(lVar6 + 0x70,local_58);\n    if (local_58[0] != local_48) {\n      FUN_00338a40();\n    }\n    if (lVar6 != 0) {\n      sVar8 = strlen(__s);\n      pcVar5 = (char *)thunk_FUN_00337270(sVar8 + 100);\n      __format = (char *)gettext("script or expression reference to %s");\n      snprintf(pcVar5,sVar8 + 100,__format,__s);\n      sVar8 = strlen(pcVar5);\n      FUN_00340370(param_5,0,*(undefined8 *)(param_5 + 8),pcVar5,sVar8);\n      thunk_FUN_00338a40(pcVar5);\n      return 1;\n    }\n    if (*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) {\n      if (((*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051) != '\0') ||\n          (pcVar5 = (char *)FUN_002a09b0(), pcVar5 == (char *)0x0)) ||\n         (iVar4 = strcmp(__s,pcVar5), iVar4 != 0)) {\n        return 2;\n      }\n      uVar7 = *(undefined8 *)(param_5 + 8);\n      uVar9 = 0xd;\n      pcVar5 = "entry symbol ";\nLAB_001c8211:\n      FUN_00340370(param_5,0,uVar7,pcVar5,uVar9);\n      sVar8 = strlen(__s);\n      if (sVar8 <= 0x7fffffffffffffffU - *(long *)(param_5 + 8)) {\n        FUN_00340cc0(param_5,__s,sVar8);\n        return 1;\n      }\n                    \n      FUN_00377370("basic_string::append");\n    }\n  }\nLAB_001c830c:\n                    \n  FUN_001e9890("../../gold/parameters.h",0x5c,"options");\n}" type_identifier (function_declarator "FUN_001c7e90(undefined8 param_1,long param_2,char *param_3,long *param_4,long param_5,\n            undefined8 *param_6,ulong *param_7)" identifier (parameter_list "(undefined8 param_1,long param_2,char *param_3,long *param_4,long param_5,\n            undefined8 *param_6,ulong *param_7)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "long *param_4" (sized_type_specifier "long" long) (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "long param_5" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "ulong *param_7" type_identifier (pointer_declarator "*param_7" * identifier)) ))) (compound_statement "{\n  ulong uVar1;\n  byte bVar2;\n  char cVar3;\n  int iVar4;\n  char *pcVar5;\n  long lVar6;\n  char *__s;\n  char *__format;\n  undefined8 uVar7;\n  size_t sVar8;\n  undefined8 uVar9;\n  undefined1 *local_58 [2];\n  undefined1 local_48 [24];\n  \n  pcVar5 = strchr(param_3,0x40);\n  __s = param_3;\n  if (pcVar5 == (char *)0x0) {\nLAB_001c7f12:\n    lVar6 = FUN_002df9a0(param_1,__s,pcVar5);\n    *param_4 = lVar6;\njoined_r0x001c805a:\n    if (lVar6 != 0) {\n      bVar2 = *(byte *)(lVar6 + 0x3a) & 7;\n      if (bVar2 == 0) goto LAB_001c7f3f;\nLAB_001c7fc0:\n      if (bVar2 != 4) {\n        return 0;\n      }\n      goto LAB_001c7fc4;\n    }\n  }\n  else {\n    sVar8 = (long)pcVar5 - (long)param_3;\n    __s = (char *)*param_6;\n    uVar1 = sVar8 + 1;\n    if (*param_7 < uVar1) {\n      __s = (char *)FUN_00336eb0(__s,uVar1);\n      *param_6 = __s;\n      *param_7 = uVar1;\n    }\n    memcpy(__s,param_3,sVar8);\n    __s[sVar8] = '\0';\n    if (pcVar5[1] != '@') {\n      pcVar5 = pcVar5 + 1;\n      goto LAB_001c7f12;\n    }\n    lVar6 = FUN_002df9a0(param_1,__s,pcVar5 + 2);\n    if (lVar6 == 0) {\nLAB_001c8040:\n      lVar6 = FUN_002df9a0(param_1,__s,0);\n      *param_4 = lVar6;\n      goto joined_r0x001c805a;\n    }\n    bVar2 = *(byte *)(lVar6 + 0x3a) & 7;\n    if ((*(byte *)(lVar6 + 0x3a) & 7) != 0) {\n      if (bVar2 == 4) goto LAB_001c7f9d;\n      goto LAB_001c8040;\n    }\n    if ((*(int *)(lVar6 + 0x18) != 0) || ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0)) goto LAB_001c8040;\nLAB_001c7f9d:\n    if (*(byte *)(lVar6 + 0x38) >> 4 == 2) goto LAB_001c8040;\n    *param_4 = lVar6;\n    if (bVar2 != 0) goto LAB_001c7fc0;\nLAB_001c7f3f:\n    if (*(int *)(lVar6 + 0x18) != 0) {\n      return 0;\n    }\n    if ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0) {\n      return 0;\n    }\nLAB_001c7fc4:\n    cVar3 = FUN_002d0d40(*(undefined8 *)(param_2 + 8),__s);\n    if (cVar3 != '\0') {\n      return 0;\n    }\n    if (*(byte *)(lVar6 + 0x38) >> 4 != 2) {\n      return 1;\n    }\n  }\n  lVar6 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n  if (lVar6 != 0) {\n    if (*(long *)(lVar6 + 0x6bb8) != 0) {\n      local_58[0] = local_48;\n      sVar8 = strlen(__s);\n      FUN_001bc4c0(local_58,__s,__s + sVar8);\n      lVar6 = FUN_001ca390(lVar6 + 0x6ba0,local_58);\n      if (lVar6 != 0) {\n        if (local_58[0] != local_48) {\n          FUN_00338a40();\n        }\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 3;\n        pcVar5 = "-u ";\n        goto LAB_001c8211;\n      }\n      if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }\n    }\n    lVar6 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n    if (lVar6 == 0) goto LAB_001c830c;\n    if (*(long *)(lVar6 + 0x1f28) == 0) {\n      lVar6 = *(long *)(param_2 + 8);\n    }\n    else {\n      local_58[0] = local_48;\n      sVar8 = strlen(__s);\n      FUN_001bc4c0(local_58,__s,__s + sVar8);\n      lVar6 = FUN_001ca390(lVar6 + 0x1f10,local_58);\n      if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }\n      if (lVar6 != 0) {\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 0x18;\n        pcVar5 = "--export-dynamic-symbol ";\n        goto LAB_001c8211;\n      }\n      lVar6 = *(long *)(param_2 + 8);\n    }\n    local_58[0] = local_48;\n    sVar8 = strlen(__s);\n    FUN_001bc4c0(local_58,__s,__s + sVar8);\n    lVar6 = FUN_001ca390(lVar6 + 0x70,local_58);\n    if (local_58[0] != local_48) {\n      FUN_00338a40();\n    }\n    if (lVar6 != 0) {\n      sVar8 = strlen(__s);\n      pcVar5 = (char *)thunk_FUN_00337270(sVar8 + 100);\n      __format = (char *)gettext("script or expression reference to %s");\n      snprintf(pcVar5,sVar8 + 100,__format,__s);\n      sVar8 = strlen(pcVar5);\n      FUN_00340370(param_5,0,*(undefined8 *)(param_5 + 8),pcVar5,sVar8);\n      thunk_FUN_00338a40(pcVar5);\n      return 1;\n    }\n    if (*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) {\n      if (((*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051) != '\0') ||\n          (pcVar5 = (char *)FUN_002a09b0(), pcVar5 == (char *)0x0)) ||\n         (iVar4 = strcmp(__s,pcVar5), iVar4 != 0)) {\n        return 2;\n      }\n      uVar7 = *(undefined8 *)(param_5 + 8);\n      uVar9 = 0xd;\n      pcVar5 = "entry symbol ";\nLAB_001c8211:\n      FUN_00340370(param_5,0,uVar7,pcVar5,uVar9);\n      sVar8 = strlen(__s);\n      if (sVar8 <= 0x7fffffffffffffffU - *(long *)(param_5 + 8)) {\n        FUN_00340cc0(param_5,__s,sVar8);\n        return 1;\n      }\n                    \n      FUN_00377370("basic_string::append");\n    }\n  }\nLAB_001c830c:\n                    \n  FUN_001e9890("../../gold/parameters.h",0x5c,"options");\n}" { (declaration "ulong uVar1;" type_identifier identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "char *__format;" primitive_type (pointer_declarator "*__format" * identifier) ;) (declaration "undefined8 uVar7;" type_identifier identifier ;) (declaration "size_t sVar8;" primitive_type identifier ;) (declaration "undefined8 uVar9;" type_identifier identifier ;) (declaration "undefined1 *local_58 [2];" type_identifier (pointer_declarator "*local_58 [2]" * (array_declarator "local_58 [2]" identifier [ number_literal ])) ;) (declaration "undefined1 local_48 [24];" type_identifier (array_declarator "local_48 [24]" identifier [ number_literal ]) ;) (expression_statement "pcVar5 = strchr(param_3,0x40);" (assignment_expression "pcVar5 = strchr(param_3,0x40)" identifier = (call_expression "strchr(param_3,0x40)" identifier (argument_list "(param_3,0x40)" ( identifier , number_literal )))) ;) (expression_statement "__s = param_3;" (assignment_expression "__s = param_3" identifier = identifier) ;) (if_statement "if (pcVar5 == (char *)0x0) {\nLAB_001c7f12:\n    lVar6 = FUN_002df9a0(param_1,__s,pcVar5);\n    *param_4 = lVar6;\njoined_r0x001c805a:\n    if (lVar6 != 0) {\n      bVar2 = *(byte *)(lVar6 + 0x3a) & 7;\n      if (bVar2 == 0) goto LAB_001c7f3f;\nLAB_001c7fc0:\n      if (bVar2 != 4) {\n        return 0;\n      }\n      goto LAB_001c7fc4;\n    }\n  }\n  else {\n    sVar8 = (long)pcVar5 - (long)param_3;\n    __s = (char *)*param_6;\n    uVar1 = sVar8 + 1;\n    if (*param_7 < uVar1) {\n      __s = (char *)FUN_00336eb0(__s,uVar1);\n      *param_6 = __s;\n      *param_7 = uVar1;\n    }\n    memcpy(__s,param_3,sVar8);\n    __s[sVar8] = '\0';\n    if (pcVar5[1] != '@') {\n      pcVar5 = pcVar5 + 1;\n      goto LAB_001c7f12;\n    }\n    lVar6 = FUN_002df9a0(param_1,__s,pcVar5 + 2);\n    if (lVar6 == 0) {\nLAB_001c8040:\n      lVar6 = FUN_002df9a0(param_1,__s,0);\n      *param_4 = lVar6;\n      goto joined_r0x001c805a;\n    }\n    bVar2 = *(byte *)(lVar6 + 0x3a) & 7;\n    if ((*(byte *)(lVar6 + 0x3a) & 7) != 0) {\n      if (bVar2 == 4) goto LAB_001c7f9d;\n      goto LAB_001c8040;\n    }\n    if ((*(int *)(lVar6 + 0x18) != 0) || ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0)) goto LAB_001c8040;\nLAB_001c7f9d:\n    if (*(byte *)(lVar6 + 0x38) >> 4 == 2) goto LAB_001c8040;\n    *param_4 = lVar6;\n    if (bVar2 != 0) goto LAB_001c7fc0;\nLAB_001c7f3f:\n    if (*(int *)(lVar6 + 0x18) != 0) {\n      return 0;\n    }\n    if ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0) {\n      return 0;\n    }\nLAB_001c7fc4:\n    cVar3 = FUN_002d0d40(*(undefined8 *)(param_2 + 8),__s);\n    if (cVar3 != '\0') {\n      return 0;\n    }\n    if (*(byte *)(lVar6 + 0x38) >> 4 != 2) {\n      return 1;\n    }\n  }" if (parenthesized_expression "(pcVar5 == (char *)0x0)" ( (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_001c7f12:\n    lVar6 = FUN_002df9a0(param_1,__s,pcVar5);\n    *param_4 = lVar6;\njoined_r0x001c805a:\n    if (lVar6 != 0) {\n      bVar2 = *(byte *)(lVar6 + 0x3a) & 7;\n      if (bVar2 == 0) goto LAB_001c7f3f;\nLAB_001c7fc0:\n      if (bVar2 != 4) {\n        return 0;\n      }\n      goto LAB_001c7fc4;\n    }\n  }" { (labeled_statement "LAB_001c7f12:\n    lVar6 = FUN_002df9a0(param_1,__s,pcVar5);" statement_identifier : (expression_statement "lVar6 = FUN_002df9a0(param_1,__s,pcVar5);" (assignment_expression "lVar6 = FUN_002df9a0(param_1,__s,pcVar5)" identifier = (call_expression "FUN_002df9a0(param_1,__s,pcVar5)" identifier (argument_list "(param_1,__s,pcVar5)" ( identifier , identifier , identifier )))) ;)) (expression_statement "*param_4 = lVar6;" (assignment_expression "*param_4 = lVar6" (pointer_expression "*param_4" * identifier) = identifier) ;) (labeled_statement "joined_r0x001c805a:\n    if (lVar6 != 0) {\n      bVar2 = *(byte *)(lVar6 + 0x3a) & 7;\n      if (bVar2 == 0) goto LAB_001c7f3f;\nLAB_001c7fc0:\n      if (bVar2 != 4) {\n        return 0;\n      }\n      goto LAB_001c7fc4;\n    }" statement_identifier : (if_statement "if (lVar6 != 0) {\n      bVar2 = *(byte *)(lVar6 + 0x3a) & 7;\n      if (bVar2 == 0) goto LAB_001c7f3f;\nLAB_001c7fc0:\n      if (bVar2 != 4) {\n        return 0;\n      }\n      goto LAB_001c7fc4;\n    }" if (parenthesized_expression "(lVar6 != 0)" ( (binary_expression "lVar6 != 0" identifier != number_literal) )) (compound_statement "{\n      bVar2 = *(byte *)(lVar6 + 0x3a) & 7;\n      if (bVar2 == 0) goto LAB_001c7f3f;\nLAB_001c7fc0:\n      if (bVar2 != 4) {\n        return 0;\n      }\n      goto LAB_001c7fc4;\n    }" { (expression_statement "bVar2 = *(byte *)(lVar6 + 0x3a) & 7;" (assignment_expression "bVar2 = *(byte *)(lVar6 + 0x3a) & 7" identifier = (binary_expression "*(byte *)(lVar6 + 0x3a) & 7" (pointer_expression "*(byte *)(lVar6 + 0x3a)" * (cast_expression "(byte *)(lVar6 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x3a)" ( (binary_expression "lVar6 + 0x3a" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (bVar2 == 0) goto LAB_001c7f3f;" if (parenthesized_expression "(bVar2 == 0)" ( (binary_expression "bVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001c7f3f;" goto statement_identifier ;)) (labeled_statement "LAB_001c7fc0:\n      if (bVar2 != 4) {\n        return 0;\n      }" statement_identifier : (if_statement "if (bVar2 != 4) {\n        return 0;\n      }" if (parenthesized_expression "(bVar2 != 4)" ( (binary_expression "bVar2 != 4" identifier != number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) }))) (goto_statement "goto LAB_001c7fc4;" goto statement_identifier ;) }))) }) (else_clause "else {\n    sVar8 = (long)pcVar5 - (long)param_3;\n    __s = (char *)*param_6;\n    uVar1 = sVar8 + 1;\n    if (*param_7 < uVar1) {\n      __s = (char *)FUN_00336eb0(__s,uVar1);\n      *param_6 = __s;\n      *param_7 = uVar1;\n    }\n    memcpy(__s,param_3,sVar8);\n    __s[sVar8] = '\0';\n    if (pcVar5[1] != '@') {\n      pcVar5 = pcVar5 + 1;\n      goto LAB_001c7f12;\n    }\n    lVar6 = FUN_002df9a0(param_1,__s,pcVar5 + 2);\n    if (lVar6 == 0) {\nLAB_001c8040:\n      lVar6 = FUN_002df9a0(param_1,__s,0);\n      *param_4 = lVar6;\n      goto joined_r0x001c805a;\n    }\n    bVar2 = *(byte *)(lVar6 + 0x3a) & 7;\n    if ((*(byte *)(lVar6 + 0x3a) & 7) != 0) {\n      if (bVar2 == 4) goto LAB_001c7f9d;\n      goto LAB_001c8040;\n    }\n    if ((*(int *)(lVar6 + 0x18) != 0) || ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0)) goto LAB_001c8040;\nLAB_001c7f9d:\n    if (*(byte *)(lVar6 + 0x38) >> 4 == 2) goto LAB_001c8040;\n    *param_4 = lVar6;\n    if (bVar2 != 0) goto LAB_001c7fc0;\nLAB_001c7f3f:\n    if (*(int *)(lVar6 + 0x18) != 0) {\n      return 0;\n    }\n    if ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0) {\n      return 0;\n    }\nLAB_001c7fc4:\n    cVar3 = FUN_002d0d40(*(undefined8 *)(param_2 + 8),__s);\n    if (cVar3 != '\0') {\n      return 0;\n    }\n    if (*(byte *)(lVar6 + 0x38) >> 4 != 2) {\n      return 1;\n    }\n  }" else (compound_statement "{\n    sVar8 = (long)pcVar5 - (long)param_3;\n    __s = (char *)*param_6;\n    uVar1 = sVar8 + 1;\n    if (*param_7 < uVar1) {\n      __s = (char *)FUN_00336eb0(__s,uVar1);\n      *param_6 = __s;\n      *param_7 = uVar1;\n    }\n    memcpy(__s,param_3,sVar8);\n    __s[sVar8] = '\0';\n    if (pcVar5[1] != '@') {\n      pcVar5 = pcVar5 + 1;\n      goto LAB_001c7f12;\n    }\n    lVar6 = FUN_002df9a0(param_1,__s,pcVar5 + 2);\n    if (lVar6 == 0) {\nLAB_001c8040:\n      lVar6 = FUN_002df9a0(param_1,__s,0);\n      *param_4 = lVar6;\n      goto joined_r0x001c805a;\n    }\n    bVar2 = *(byte *)(lVar6 + 0x3a) & 7;\n    if ((*(byte *)(lVar6 + 0x3a) & 7) != 0) {\n      if (bVar2 == 4) goto LAB_001c7f9d;\n      goto LAB_001c8040;\n    }\n    if ((*(int *)(lVar6 + 0x18) != 0) || ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0)) goto LAB_001c8040;\nLAB_001c7f9d:\n    if (*(byte *)(lVar6 + 0x38) >> 4 == 2) goto LAB_001c8040;\n    *param_4 = lVar6;\n    if (bVar2 != 0) goto LAB_001c7fc0;\nLAB_001c7f3f:\n    if (*(int *)(lVar6 + 0x18) != 0) {\n      return 0;\n    }\n    if ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0) {\n      return 0;\n    }\nLAB_001c7fc4:\n    cVar3 = FUN_002d0d40(*(undefined8 *)(param_2 + 8),__s);\n    if (cVar3 != '\0') {\n      return 0;\n    }\n    if (*(byte *)(lVar6 + 0x38) >> 4 != 2) {\n      return 1;\n    }\n  }" { (expression_statement "sVar8 = (long)pcVar5 - (long)param_3;" (assignment_expression "sVar8 = (long)pcVar5 - (long)param_3" identifier = (binary_expression "(long)pcVar5 - (long)param_3" (cast_expression "(long)pcVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)param_3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "__s = (char *)*param_6;" (assignment_expression "__s = (char *)*param_6" identifier = (cast_expression "(char *)*param_6" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_6" * identifier))) ;) (expression_statement "uVar1 = sVar8 + 1;" (assignment_expression "uVar1 = sVar8 + 1" identifier = (binary_expression "sVar8 + 1" identifier + number_literal)) ;) (if_statement "if (*param_7 < uVar1) {\n      __s = (char *)FUN_00336eb0(__s,uVar1);\n      *param_6 = __s;\n      *param_7 = uVar1;\n    }" if (parenthesized_expression "(*param_7 < uVar1)" ( (binary_expression "*param_7 < uVar1" (pointer_expression "*param_7" * identifier) < identifier) )) (compound_statement "{\n      __s = (char *)FUN_00336eb0(__s,uVar1);\n      *param_6 = __s;\n      *param_7 = uVar1;\n    }" { (expression_statement "__s = (char *)FUN_00336eb0(__s,uVar1);" (assignment_expression "__s = (char *)FUN_00336eb0(__s,uVar1)" identifier = (cast_expression "(char *)FUN_00336eb0(__s,uVar1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00336eb0(__s,uVar1)" identifier (argument_list "(__s,uVar1)" ( identifier , identifier ))))) ;) (expression_statement "*param_6 = __s;" (assignment_expression "*param_6 = __s" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "*param_7 = uVar1;" (assignment_expression "*param_7 = uVar1" (pointer_expression "*param_7" * identifier) = identifier) ;) })) (expression_statement "memcpy(__s,param_3,sVar8);" (call_expression "memcpy(__s,param_3,sVar8)" identifier (argument_list "(__s,param_3,sVar8)" ( identifier , identifier , identifier ))) ;) (expression_statement "__s[sVar8] = '\0';" (assignment_expression "__s[sVar8] = '\0'" (subscript_expression "__s[sVar8]" identifier [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (pcVar5[1] != '@') {\n      pcVar5 = pcVar5 + 1;\n      goto LAB_001c7f12;\n    }" if (parenthesized_expression "(pcVar5[1] != '@')" ( (binary_expression "pcVar5[1] != '@'" (subscript_expression "pcVar5[1]" identifier [ number_literal ]) != (char_literal "'@'" ' character ')) )) (compound_statement "{\n      pcVar5 = pcVar5 + 1;\n      goto LAB_001c7f12;\n    }" { (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_001c7f12;" goto statement_identifier ;) })) (expression_statement "lVar6 = FUN_002df9a0(param_1,__s,pcVar5 + 2);" (assignment_expression "lVar6 = FUN_002df9a0(param_1,__s,pcVar5 + 2)" identifier = (call_expression "FUN_002df9a0(param_1,__s,pcVar5 + 2)" identifier (argument_list "(param_1,__s,pcVar5 + 2)" ( identifier , identifier , (binary_expression "pcVar5 + 2" identifier + number_literal) )))) ;) (if_statement "if (lVar6 == 0) {\nLAB_001c8040:\n      lVar6 = FUN_002df9a0(param_1,__s,0);\n      *param_4 = lVar6;\n      goto joined_r0x001c805a;\n    }" if (parenthesized_expression "(lVar6 == 0)" ( (binary_expression "lVar6 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_001c8040:\n      lVar6 = FUN_002df9a0(param_1,__s,0);\n      *param_4 = lVar6;\n      goto joined_r0x001c805a;\n    }" { (labeled_statement "LAB_001c8040:\n      lVar6 = FUN_002df9a0(param_1,__s,0);" statement_identifier : (expression_statement "lVar6 = FUN_002df9a0(param_1,__s,0);" (assignment_expression "lVar6 = FUN_002df9a0(param_1,__s,0)" identifier = (call_expression "FUN_002df9a0(param_1,__s,0)" identifier (argument_list "(param_1,__s,0)" ( identifier , identifier , number_literal )))) ;)) (expression_statement "*param_4 = lVar6;" (assignment_expression "*param_4 = lVar6" (pointer_expression "*param_4" * identifier) = identifier) ;) (goto_statement "goto joined_r0x001c805a;" goto statement_identifier ;) })) (expression_statement "bVar2 = *(byte *)(lVar6 + 0x3a) & 7;" (assignment_expression "bVar2 = *(byte *)(lVar6 + 0x3a) & 7" identifier = (binary_expression "*(byte *)(lVar6 + 0x3a) & 7" (pointer_expression "*(byte *)(lVar6 + 0x3a)" * (cast_expression "(byte *)(lVar6 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x3a)" ( (binary_expression "lVar6 + 0x3a" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if ((*(byte *)(lVar6 + 0x3a) & 7) != 0) {\n      if (bVar2 == 4) goto LAB_001c7f9d;\n      goto LAB_001c8040;\n    }" if (parenthesized_expression "((*(byte *)(lVar6 + 0x3a) & 7) != 0)" ( (binary_expression "(*(byte *)(lVar6 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)(lVar6 + 0x3a) & 7)" ( (binary_expression "*(byte *)(lVar6 + 0x3a) & 7" (pointer_expression "*(byte *)(lVar6 + 0x3a)" * (cast_expression "(byte *)(lVar6 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x3a)" ( (binary_expression "lVar6 + 0x3a" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      if (bVar2 == 4) goto LAB_001c7f9d;\n      goto LAB_001c8040;\n    }" { (if_statement "if (bVar2 == 4) goto LAB_001c7f9d;" if (parenthesized_expression "(bVar2 == 4)" ( (binary_expression "bVar2 == 4" identifier == number_literal) )) (goto_statement "goto LAB_001c7f9d;" goto statement_identifier ;)) (goto_statement "goto LAB_001c8040;" goto statement_identifier ;) })) (if_statement "if ((*(int *)(lVar6 + 0x18) != 0) || ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0)) goto LAB_001c8040;" if (parenthesized_expression "((*(int *)(lVar6 + 0x18) != 0) || ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0))" ( (binary_expression "(*(int *)(lVar6 + 0x18) != 0) || ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0)" (parenthesized_expression "(*(int *)(lVar6 + 0x18) != 0)" ( (binary_expression "*(int *)(lVar6 + 0x18) != 0" (pointer_expression "*(int *)(lVar6 + 0x18)" * (cast_expression "(int *)(lVar6 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x18)" ( (binary_expression "lVar6 + 0x18" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "((*(byte *)(lVar6 + 0x3b) & 0x20) == 0)" ( (binary_expression "(*(byte *)(lVar6 + 0x3b) & 0x20) == 0" (parenthesized_expression "(*(byte *)(lVar6 + 0x3b) & 0x20)" ( (binary_expression "*(byte *)(lVar6 + 0x3b) & 0x20" (pointer_expression "*(byte *)(lVar6 + 0x3b)" * (cast_expression "(byte *)(lVar6 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x3b)" ( (binary_expression "lVar6 + 0x3b" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_001c8040;" goto statement_identifier ;)) (labeled_statement "LAB_001c7f9d:\n    if (*(byte *)(lVar6 + 0x38) >> 4 == 2) goto LAB_001c8040;" statement_identifier : (if_statement "if (*(byte *)(lVar6 + 0x38) >> 4 == 2) goto LAB_001c8040;" if (parenthesized_expression "(*(byte *)(lVar6 + 0x38) >> 4 == 2)" ( (binary_expression "*(byte *)(lVar6 + 0x38) >> 4 == 2" (binary_expression "*(byte *)(lVar6 + 0x38) >> 4" (pointer_expression "*(byte *)(lVar6 + 0x38)" * (cast_expression "(byte *)(lVar6 + 0x38)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x38)" ( (binary_expression "lVar6 + 0x38" identifier + number_literal) )))) >> number_literal) == number_literal) )) (goto_statement "goto LAB_001c8040;" goto statement_identifier ;))) (expression_statement "*param_4 = lVar6;" (assignment_expression "*param_4 = lVar6" (pointer_expression "*param_4" * identifier) = identifier) ;) (if_statement "if (bVar2 != 0) goto LAB_001c7fc0;" if (parenthesized_expression "(bVar2 != 0)" ( (binary_expression "bVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_001c7fc0;" goto statement_identifier ;)) (labeled_statement "LAB_001c7f3f:\n    if (*(int *)(lVar6 + 0x18) != 0) {\n      return 0;\n    }" statement_identifier : (if_statement "if (*(int *)(lVar6 + 0x18) != 0) {\n      return 0;\n    }" if (parenthesized_expression "(*(int *)(lVar6 + 0x18) != 0)" ( (binary_expression "*(int *)(lVar6 + 0x18) != 0" (pointer_expression "*(int *)(lVar6 + 0x18)" * (cast_expression "(int *)(lVar6 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x18)" ( (binary_expression "lVar6 + 0x18" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) }))) (if_statement "if ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0) {\n      return 0;\n    }" if (parenthesized_expression "((*(byte *)(lVar6 + 0x3b) & 0x20) == 0)" ( (binary_expression "(*(byte *)(lVar6 + 0x3b) & 0x20) == 0" (parenthesized_expression "(*(byte *)(lVar6 + 0x3b) & 0x20)" ( (binary_expression "*(byte *)(lVar6 + 0x3b) & 0x20" (pointer_expression "*(byte *)(lVar6 + 0x3b)" * (cast_expression "(byte *)(lVar6 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x3b)" ( (binary_expression "lVar6 + 0x3b" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (labeled_statement "LAB_001c7fc4:\n    cVar3 = FUN_002d0d40(*(undefined8 *)(param_2 + 8),__s);" statement_identifier : (expression_statement "cVar3 = FUN_002d0d40(*(undefined8 *)(param_2 + 8),__s);" (assignment_expression "cVar3 = FUN_002d0d40(*(undefined8 *)(param_2 + 8),__s)" identifier = (call_expression "FUN_002d0d40(*(undefined8 *)(param_2 + 8),__s)" identifier (argument_list "(*(undefined8 *)(param_2 + 8),__s)" ( (pointer_expression "*(undefined8 *)(param_2 + 8)" * (cast_expression "(undefined8 *)(param_2 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) , identifier )))) ;)) (if_statement "if (cVar3 != '\0') {\n      return 0;\n    }" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (*(byte *)(lVar6 + 0x38) >> 4 != 2) {\n      return 1;\n    }" if (parenthesized_expression "(*(byte *)(lVar6 + 0x38) >> 4 != 2)" ( (binary_expression "*(byte *)(lVar6 + 0x38) >> 4 != 2" (binary_expression "*(byte *)(lVar6 + 0x38) >> 4" (pointer_expression "*(byte *)(lVar6 + 0x38)" * (cast_expression "(byte *)(lVar6 + 0x38)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x38)" ( (binary_expression "lVar6 + 0x38" identifier + number_literal) )))) >> number_literal) != number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) }))) (expression_statement "lVar6 = *(long *)(PTR_DAT_004ba7c8 + 0x10);" (assignment_expression "lVar6 = *(long *)(PTR_DAT_004ba7c8 + 0x10)" identifier = (pointer_expression "*(long *)(PTR_DAT_004ba7c8 + 0x10)" * (cast_expression "(long *)(PTR_DAT_004ba7c8 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_004ba7c8 + 0x10)" ( (binary_expression "PTR_DAT_004ba7c8 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (lVar6 != 0) {\n    if (*(long *)(lVar6 + 0x6bb8) != 0) {\n      local_58[0] = local_48;\n      sVar8 = strlen(__s);\n      FUN_001bc4c0(local_58,__s,__s + sVar8);\n      lVar6 = FUN_001ca390(lVar6 + 0x6ba0,local_58);\n      if (lVar6 != 0) {\n        if (local_58[0] != local_48) {\n          FUN_00338a40();\n        }\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 3;\n        pcVar5 = "-u ";\n        goto LAB_001c8211;\n      }\n      if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }\n    }\n    lVar6 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n    if (lVar6 == 0) goto LAB_001c830c;\n    if (*(long *)(lVar6 + 0x1f28) == 0) {\n      lVar6 = *(long *)(param_2 + 8);\n    }\n    else {\n      local_58[0] = local_48;\n      sVar8 = strlen(__s);\n      FUN_001bc4c0(local_58,__s,__s + sVar8);\n      lVar6 = FUN_001ca390(lVar6 + 0x1f10,local_58);\n      if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }\n      if (lVar6 != 0) {\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 0x18;\n        pcVar5 = "--export-dynamic-symbol ";\n        goto LAB_001c8211;\n      }\n      lVar6 = *(long *)(param_2 + 8);\n    }\n    local_58[0] = local_48;\n    sVar8 = strlen(__s);\n    FUN_001bc4c0(local_58,__s,__s + sVar8);\n    lVar6 = FUN_001ca390(lVar6 + 0x70,local_58);\n    if (local_58[0] != local_48) {\n      FUN_00338a40();\n    }\n    if (lVar6 != 0) {\n      sVar8 = strlen(__s);\n      pcVar5 = (char *)thunk_FUN_00337270(sVar8 + 100);\n      __format = (char *)gettext("script or expression reference to %s");\n      snprintf(pcVar5,sVar8 + 100,__format,__s);\n      sVar8 = strlen(pcVar5);\n      FUN_00340370(param_5,0,*(undefined8 *)(param_5 + 8),pcVar5,sVar8);\n      thunk_FUN_00338a40(pcVar5);\n      return 1;\n    }\n    if (*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) {\n      if (((*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051) != '\0') ||\n          (pcVar5 = (char *)FUN_002a09b0(), pcVar5 == (char *)0x0)) ||\n         (iVar4 = strcmp(__s,pcVar5), iVar4 != 0)) {\n        return 2;\n      }\n      uVar7 = *(undefined8 *)(param_5 + 8);\n      uVar9 = 0xd;\n      pcVar5 = "entry symbol ";\nLAB_001c8211:\n      FUN_00340370(param_5,0,uVar7,pcVar5,uVar9);\n      sVar8 = strlen(__s);\n      if (sVar8 <= 0x7fffffffffffffffU - *(long *)(param_5 + 8)) {\n        FUN_00340cc0(param_5,__s,sVar8);\n        return 1;\n      }\n                    \n      FUN_00377370("basic_string::append");\n    }\n  }" if (parenthesized_expression "(lVar6 != 0)" ( (binary_expression "lVar6 != 0" identifier != number_literal) )) (compound_statement "{\n    if (*(long *)(lVar6 + 0x6bb8) != 0) {\n      local_58[0] = local_48;\n      sVar8 = strlen(__s);\n      FUN_001bc4c0(local_58,__s,__s + sVar8);\n      lVar6 = FUN_001ca390(lVar6 + 0x6ba0,local_58);\n      if (lVar6 != 0) {\n        if (local_58[0] != local_48) {\n          FUN_00338a40();\n        }\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 3;\n        pcVar5 = "-u ";\n        goto LAB_001c8211;\n      }\n      if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }\n    }\n    lVar6 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n    if (lVar6 == 0) goto LAB_001c830c;\n    if (*(long *)(lVar6 + 0x1f28) == 0) {\n      lVar6 = *(long *)(param_2 + 8);\n    }\n    else {\n      local_58[0] = local_48;\n      sVar8 = strlen(__s);\n      FUN_001bc4c0(local_58,__s,__s + sVar8);\n      lVar6 = FUN_001ca390(lVar6 + 0x1f10,local_58);\n      if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }\n      if (lVar6 != 0) {\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 0x18;\n        pcVar5 = "--export-dynamic-symbol ";\n        goto LAB_001c8211;\n      }\n      lVar6 = *(long *)(param_2 + 8);\n    }\n    local_58[0] = local_48;\n    sVar8 = strlen(__s);\n    FUN_001bc4c0(local_58,__s,__s + sVar8);\n    lVar6 = FUN_001ca390(lVar6 + 0x70,local_58);\n    if (local_58[0] != local_48) {\n      FUN_00338a40();\n    }\n    if (lVar6 != 0) {\n      sVar8 = strlen(__s);\n      pcVar5 = (char *)thunk_FUN_00337270(sVar8 + 100);\n      __format = (char *)gettext("script or expression reference to %s");\n      snprintf(pcVar5,sVar8 + 100,__format,__s);\n      sVar8 = strlen(pcVar5);\n      FUN_00340370(param_5,0,*(undefined8 *)(param_5 + 8),pcVar5,sVar8);\n      thunk_FUN_00338a40(pcVar5);\n      return 1;\n    }\n    if (*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) {\n      if (((*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051) != '\0') ||\n          (pcVar5 = (char *)FUN_002a09b0(), pcVar5 == (char *)0x0)) ||\n         (iVar4 = strcmp(__s,pcVar5), iVar4 != 0)) {\n        return 2;\n      }\n      uVar7 = *(undefined8 *)(param_5 + 8);\n      uVar9 = 0xd;\n      pcVar5 = "entry symbol ";\nLAB_001c8211:\n      FUN_00340370(param_5,0,uVar7,pcVar5,uVar9);\n      sVar8 = strlen(__s);\n      if (sVar8 <= 0x7fffffffffffffffU - *(long *)(param_5 + 8)) {\n        FUN_00340cc0(param_5,__s,sVar8);\n        return 1;\n      }\n                    \n      FUN_00377370("basic_string::append");\n    }\n  }" { (if_statement "if (*(long *)(lVar6 + 0x6bb8) != 0) {\n      local_58[0] = local_48;\n      sVar8 = strlen(__s);\n      FUN_001bc4c0(local_58,__s,__s + sVar8);\n      lVar6 = FUN_001ca390(lVar6 + 0x6ba0,local_58);\n      if (lVar6 != 0) {\n        if (local_58[0] != local_48) {\n          FUN_00338a40();\n        }\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 3;\n        pcVar5 = "-u ";\n        goto LAB_001c8211;\n      }\n      if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }\n    }" if (parenthesized_expression "(*(long *)(lVar6 + 0x6bb8) != 0)" ( (binary_expression "*(long *)(lVar6 + 0x6bb8) != 0" (pointer_expression "*(long *)(lVar6 + 0x6bb8)" * (cast_expression "(long *)(lVar6 + 0x6bb8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x6bb8)" ( (binary_expression "lVar6 + 0x6bb8" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      local_58[0] = local_48;\n      sVar8 = strlen(__s);\n      FUN_001bc4c0(local_58,__s,__s + sVar8);\n      lVar6 = FUN_001ca390(lVar6 + 0x6ba0,local_58);\n      if (lVar6 != 0) {\n        if (local_58[0] != local_48) {\n          FUN_00338a40();\n        }\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 3;\n        pcVar5 = "-u ";\n        goto LAB_001c8211;\n      }\n      if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }\n    }" { (expression_statement "local_58[0] = local_48;" (assignment_expression "local_58[0] = local_48" (subscript_expression "local_58[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "sVar8 = strlen(__s);" (assignment_expression "sVar8 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (expression_statement "FUN_001bc4c0(local_58,__s,__s + sVar8);" (call_expression "FUN_001bc4c0(local_58,__s,__s + sVar8)" identifier (argument_list "(local_58,__s,__s + sVar8)" ( identifier , identifier , (binary_expression "__s + sVar8" identifier + identifier) ))) ;) (expression_statement "lVar6 = FUN_001ca390(lVar6 + 0x6ba0,local_58);" (assignment_expression "lVar6 = FUN_001ca390(lVar6 + 0x6ba0,local_58)" identifier = (call_expression "FUN_001ca390(lVar6 + 0x6ba0,local_58)" identifier (argument_list "(lVar6 + 0x6ba0,local_58)" ( (binary_expression "lVar6 + 0x6ba0" identifier + number_literal) , identifier )))) ;) (if_statement "if (lVar6 != 0) {\n        if (local_58[0] != local_48) {\n          FUN_00338a40();\n        }\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 3;\n        pcVar5 = "-u ";\n        goto LAB_001c8211;\n      }" if (parenthesized_expression "(lVar6 != 0)" ( (binary_expression "lVar6 != 0" identifier != number_literal) )) (compound_statement "{\n        if (local_58[0] != local_48) {\n          FUN_00338a40();\n        }\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 3;\n        pcVar5 = "-u ";\n        goto LAB_001c8211;\n      }" { (if_statement "if (local_58[0] != local_48) {\n          FUN_00338a40();\n        }" if (parenthesized_expression "(local_58[0] != local_48)" ( (binary_expression "local_58[0] != local_48" (subscript_expression "local_58[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n          FUN_00338a40();\n        }" { (expression_statement "FUN_00338a40();" (call_expression "FUN_00338a40()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar7 = *(undefined8 *)(param_5 + 8);" (assignment_expression "uVar7 = *(undefined8 *)(param_5 + 8)" identifier = (pointer_expression "*(undefined8 *)(param_5 + 8)" * (cast_expression "(undefined8 *)(param_5 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 8)" ( (binary_expression "param_5 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = 3;" (assignment_expression "uVar9 = 3" identifier = number_literal) ;) (expression_statement "pcVar5 = "-u ";" (assignment_expression "pcVar5 = "-u "" identifier = (string_literal ""-u "" " string_content ")) ;) (goto_statement "goto LAB_001c8211;" goto statement_identifier ;) })) (if_statement "if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }" if (parenthesized_expression "(local_58[0] != local_48)" ( (binary_expression "local_58[0] != local_48" (subscript_expression "local_58[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n        FUN_00338a40();\n      }" { (expression_statement "FUN_00338a40();" (call_expression "FUN_00338a40()" identifier (argument_list "()" ( ))) ;) })) })) (expression_statement "lVar6 = *(long *)(PTR_DAT_004ba7c8 + 0x10);" (assignment_expression "lVar6 = *(long *)(PTR_DAT_004ba7c8 + 0x10)" identifier = (pointer_expression "*(long *)(PTR_DAT_004ba7c8 + 0x10)" * (cast_expression "(long *)(PTR_DAT_004ba7c8 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_004ba7c8 + 0x10)" ( (binary_expression "PTR_DAT_004ba7c8 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (lVar6 == 0) goto LAB_001c830c;" if (parenthesized_expression "(lVar6 == 0)" ( (binary_expression "lVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001c830c;" goto statement_identifier ;)) (if_statement "if (*(long *)(lVar6 + 0x1f28) == 0) {\n      lVar6 = *(long *)(param_2 + 8);\n    }\n    else {\n      local_58[0] = local_48;\n      sVar8 = strlen(__s);\n      FUN_001bc4c0(local_58,__s,__s + sVar8);\n      lVar6 = FUN_001ca390(lVar6 + 0x1f10,local_58);\n      if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }\n      if (lVar6 != 0) {\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 0x18;\n        pcVar5 = "--export-dynamic-symbol ";\n        goto LAB_001c8211;\n      }\n      lVar6 = *(long *)(param_2 + 8);\n    }" if (parenthesized_expression "(*(long *)(lVar6 + 0x1f28) == 0)" ( (binary_expression "*(long *)(lVar6 + 0x1f28) == 0" (pointer_expression "*(long *)(lVar6 + 0x1f28)" * (cast_expression "(long *)(lVar6 + 0x1f28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x1f28)" ( (binary_expression "lVar6 + 0x1f28" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      lVar6 = *(long *)(param_2 + 8);\n    }" { (expression_statement "lVar6 = *(long *)(param_2 + 8);" (assignment_expression "lVar6 = *(long *)(param_2 + 8)" identifier = (pointer_expression "*(long *)(param_2 + 8)" * (cast_expression "(long *)(param_2 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      local_58[0] = local_48;\n      sVar8 = strlen(__s);\n      FUN_001bc4c0(local_58,__s,__s + sVar8);\n      lVar6 = FUN_001ca390(lVar6 + 0x1f10,local_58);\n      if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }\n      if (lVar6 != 0) {\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 0x18;\n        pcVar5 = "--export-dynamic-symbol ";\n        goto LAB_001c8211;\n      }\n      lVar6 = *(long *)(param_2 + 8);\n    }" else (compound_statement "{\n      local_58[0] = local_48;\n      sVar8 = strlen(__s);\n      FUN_001bc4c0(local_58,__s,__s + sVar8);\n      lVar6 = FUN_001ca390(lVar6 + 0x1f10,local_58);\n      if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }\n      if (lVar6 != 0) {\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 0x18;\n        pcVar5 = "--export-dynamic-symbol ";\n        goto LAB_001c8211;\n      }\n      lVar6 = *(long *)(param_2 + 8);\n    }" { (expression_statement "local_58[0] = local_48;" (assignment_expression "local_58[0] = local_48" (subscript_expression "local_58[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "sVar8 = strlen(__s);" (assignment_expression "sVar8 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (expression_statement "FUN_001bc4c0(local_58,__s,__s + sVar8);" (call_expression "FUN_001bc4c0(local_58,__s,__s + sVar8)" identifier (argument_list "(local_58,__s,__s + sVar8)" ( identifier , identifier , (binary_expression "__s + sVar8" identifier + identifier) ))) ;) (expression_statement "lVar6 = FUN_001ca390(lVar6 + 0x1f10,local_58);" (assignment_expression "lVar6 = FUN_001ca390(lVar6 + 0x1f10,local_58)" identifier = (call_expression "FUN_001ca390(lVar6 + 0x1f10,local_58)" identifier (argument_list "(lVar6 + 0x1f10,local_58)" ( (binary_expression "lVar6 + 0x1f10" identifier + number_literal) , identifier )))) ;) (if_statement "if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }" if (parenthesized_expression "(local_58[0] != local_48)" ( (binary_expression "local_58[0] != local_48" (subscript_expression "local_58[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n        FUN_00338a40();\n      }" { (expression_statement "FUN_00338a40();" (call_expression "FUN_00338a40()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (lVar6 != 0) {\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 0x18;\n        pcVar5 = "--export-dynamic-symbol ";\n        goto LAB_001c8211;\n      }" if (parenthesized_expression "(lVar6 != 0)" ( (binary_expression "lVar6 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 0x18;\n        pcVar5 = "--export-dynamic-symbol ";\n        goto LAB_001c8211;\n      }" { (expression_statement "uVar7 = *(undefined8 *)(param_5 + 8);" (assignment_expression "uVar7 = *(undefined8 *)(param_5 + 8)" identifier = (pointer_expression "*(undefined8 *)(param_5 + 8)" * (cast_expression "(undefined8 *)(param_5 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 8)" ( (binary_expression "param_5 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = 0x18;" (assignment_expression "uVar9 = 0x18" identifier = number_literal) ;) (expression_statement "pcVar5 = "--export-dynamic-symbol ";" (assignment_expression "pcVar5 = "--export-dynamic-symbol "" identifier = (string_literal ""--export-dynamic-symbol "" " string_content ")) ;) (goto_statement "goto LAB_001c8211;" goto statement_identifier ;) })) (expression_statement "lVar6 = *(long *)(param_2 + 8);" (assignment_expression "lVar6 = *(long *)(param_2 + 8)" identifier = (pointer_expression "*(long *)(param_2 + 8)" * (cast_expression "(long *)(param_2 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) ))))) ;) }))) (expression_statement "local_58[0] = local_48;" (assignment_expression "local_58[0] = local_48" (subscript_expression "local_58[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "sVar8 = strlen(__s);" (assignment_expression "sVar8 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (expression_statement "FUN_001bc4c0(local_58,__s,__s + sVar8);" (call_expression "FUN_001bc4c0(local_58,__s,__s + sVar8)" identifier (argument_list "(local_58,__s,__s + sVar8)" ( identifier , identifier , (binary_expression "__s + sVar8" identifier + identifier) ))) ;) (expression_statement "lVar6 = FUN_001ca390(lVar6 + 0x70,local_58);" (assignment_expression "lVar6 = FUN_001ca390(lVar6 + 0x70,local_58)" identifier = (call_expression "FUN_001ca390(lVar6 + 0x70,local_58)" identifier (argument_list "(lVar6 + 0x70,local_58)" ( (binary_expression "lVar6 + 0x70" identifier + number_literal) , identifier )))) ;) (if_statement "if (local_58[0] != local_48) {\n      FUN_00338a40();\n    }" if (parenthesized_expression "(local_58[0] != local_48)" ( (binary_expression "local_58[0] != local_48" (subscript_expression "local_58[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n      FUN_00338a40();\n    }" { (expression_statement "FUN_00338a40();" (call_expression "FUN_00338a40()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (lVar6 != 0) {\n      sVar8 = strlen(__s);\n      pcVar5 = (char *)thunk_FUN_00337270(sVar8 + 100);\n      __format = (char *)gettext("script or expression reference to %s");\n      snprintf(pcVar5,sVar8 + 100,__format,__s);\n      sVar8 = strlen(pcVar5);\n      FUN_00340370(param_5,0,*(undefined8 *)(param_5 + 8),pcVar5,sVar8);\n      thunk_FUN_00338a40(pcVar5);\n      return 1;\n    }" if (parenthesized_expression "(lVar6 != 0)" ( (binary_expression "lVar6 != 0" identifier != number_literal) )) (compound_statement "{\n      sVar8 = strlen(__s);\n      pcVar5 = (char *)thunk_FUN_00337270(sVar8 + 100);\n      __format = (char *)gettext("script or expression reference to %s");\n      snprintf(pcVar5,sVar8 + 100,__format,__s);\n      sVar8 = strlen(pcVar5);\n      FUN_00340370(param_5,0,*(undefined8 *)(param_5 + 8),pcVar5,sVar8);\n      thunk_FUN_00338a40(pcVar5);\n      return 1;\n    }" { (expression_statement "sVar8 = strlen(__s);" (assignment_expression "sVar8 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (expression_statement "pcVar5 = (char *)thunk_FUN_00337270(sVar8 + 100);" (assignment_expression "pcVar5 = (char *)thunk_FUN_00337270(sVar8 + 100)" identifier = (cast_expression "(char *)thunk_FUN_00337270(sVar8 + 100)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "thunk_FUN_00337270(sVar8 + 100)" identifier (argument_list "(sVar8 + 100)" ( (binary_expression "sVar8 + 100" identifier + number_literal) ))))) ;) (expression_statement "__format = (char *)gettext("script or expression reference to %s");" (assignment_expression "__format = (char *)gettext("script or expression reference to %s")" identifier = (cast_expression "(char *)gettext("script or expression reference to %s")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("script or expression reference to %s")" identifier (argument_list "("script or expression reference to %s")" ( (string_literal ""script or expression reference to %s"" " string_content ") ))))) ;) (expression_statement "snprintf(pcVar5,sVar8 + 100,__format,__s);" (call_expression "snprintf(pcVar5,sVar8 + 100,__format,__s)" identifier (argument_list "(pcVar5,sVar8 + 100,__format,__s)" ( identifier , (binary_expression "sVar8 + 100" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "sVar8 = strlen(pcVar5);" (assignment_expression "sVar8 = strlen(pcVar5)" identifier = (call_expression "strlen(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier )))) ;) (expression_statement "FUN_00340370(param_5,0,*(undefined8 *)(param_5 + 8),pcVar5,sVar8);" (call_expression "FUN_00340370(param_5,0,*(undefined8 *)(param_5 + 8),pcVar5,sVar8)" identifier (argument_list "(param_5,0,*(undefined8 *)(param_5 + 8),pcVar5,sVar8)" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_5 + 8)" * (cast_expression "(undefined8 *)(param_5 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 8)" ( (binary_expression "param_5 + 8" identifier + number_literal) )))) , identifier , identifier ))) ;) (expression_statement "thunk_FUN_00338a40(pcVar5);" (call_expression "thunk_FUN_00338a40(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) (if_statement "if (*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) {\n      if (((*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051) != '\0') ||\n          (pcVar5 = (char *)FUN_002a09b0(), pcVar5 == (char *)0x0)) ||\n         (iVar4 = strcmp(__s,pcVar5), iVar4 != 0)) {\n        return 2;\n      }\n      uVar7 = *(undefined8 *)(param_5 + 8);\n      uVar9 = 0xd;\n      pcVar5 = "entry symbol ";\nLAB_001c8211:\n      FUN_00340370(param_5,0,uVar7,pcVar5,uVar9);\n      sVar8 = strlen(__s);\n      if (sVar8 <= 0x7fffffffffffffffU - *(long *)(param_5 + 8)) {\n        FUN_00340cc0(param_5,__s,sVar8);\n        return 1;\n      }\n                    \n      FUN_00377370("basic_string::append");\n    }" if (parenthesized_expression "(*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0)" ( (binary_expression "*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0" (pointer_expression "*(long *)(PTR_DAT_004ba7c8 + 0x10)" * (cast_expression "(long *)(PTR_DAT_004ba7c8 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_004ba7c8 + 0x10)" ( (binary_expression "PTR_DAT_004ba7c8 + 0x10" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      if (((*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051) != '\0') ||\n          (pcVar5 = (char *)FUN_002a09b0(), pcVar5 == (char *)0x0)) ||\n         (iVar4 = strcmp(__s,pcVar5), iVar4 != 0)) {\n        return 2;\n      }\n      uVar7 = *(undefined8 *)(param_5 + 8);\n      uVar9 = 0xd;\n      pcVar5 = "entry symbol ";\nLAB_001c8211:\n      FUN_00340370(param_5,0,uVar7,pcVar5,uVar9);\n      sVar8 = strlen(__s);\n      if (sVar8 <= 0x7fffffffffffffffU - *(long *)(param_5 + 8)) {\n        FUN_00340cc0(param_5,__s,sVar8);\n        return 1;\n      }\n                    \n      FUN_00377370("basic_string::append");\n    }" { (if_statement "if (((*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051) != '\0') ||\n          (pcVar5 = (char *)FUN_002a09b0(), pcVar5 == (char *)0x0)) ||\n         (iVar4 = strcmp(__s,pcVar5), iVar4 != 0)) {\n        return 2;\n      }" if (parenthesized_expression "(((*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051) != '\0') ||\n          (pcVar5 = (char *)FUN_002a09b0(), pcVar5 == (char *)0x0)) ||\n         (iVar4 = strcmp(__s,pcVar5), iVar4 != 0))" ( (binary_expression "((*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051) != '\0') ||\n          (pcVar5 = (char *)FUN_002a09b0(), pcVar5 == (char *)0x0)) ||\n         (iVar4 = strcmp(__s,pcVar5), iVar4 != 0)" (parenthesized_expression "((*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051) != '\0') ||\n          (pcVar5 = (char *)FUN_002a09b0(), pcVar5 == (char *)0x0))" ( (binary_expression "(*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051) != '\0') ||\n          (pcVar5 = (char *)FUN_002a09b0(), pcVar5 == (char *)0x0)" (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051) != '\0')" ( (binary_expression "*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051) != '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051)" * (cast_expression "(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051)" ( (binary_expression "*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051" (pointer_expression "*(long *)(PTR_DAT_004ba7c8 + 0x10)" * (cast_expression "(long *)(PTR_DAT_004ba7c8 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_004ba7c8 + 0x10)" ( (binary_expression "PTR_DAT_004ba7c8 + 0x10" identifier + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(pcVar5 = (char *)FUN_002a09b0(), pcVar5 == (char *)0x0)" ( (comma_expression "pcVar5 = (char *)FUN_002a09b0(), pcVar5 == (char *)0x0" (assignment_expression "pcVar5 = (char *)FUN_002a09b0()" identifier = (cast_expression "(char *)FUN_002a09b0()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002a09b0()" identifier (argument_list "()" ( ))))) , (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) || (parenthesized_expression "(iVar4 = strcmp(__s,pcVar5), iVar4 != 0)" ( (comma_expression "iVar4 = strcmp(__s,pcVar5), iVar4 != 0" (assignment_expression "iVar4 = strcmp(__s,pcVar5)" identifier = (call_expression "strcmp(__s,pcVar5)" identifier (argument_list "(__s,pcVar5)" ( identifier , identifier )))) , (binary_expression "iVar4 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        return 2;\n      }" { (return_statement "return 2;" return number_literal ;) })) (expression_statement "uVar7 = *(undefined8 *)(param_5 + 8);" (assignment_expression "uVar7 = *(undefined8 *)(param_5 + 8)" identifier = (pointer_expression "*(undefined8 *)(param_5 + 8)" * (cast_expression "(undefined8 *)(param_5 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 8)" ( (binary_expression "param_5 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = 0xd;" (assignment_expression "uVar9 = 0xd" identifier = number_literal) ;) (expression_statement "pcVar5 = "entry symbol ";" (assignment_expression "pcVar5 = "entry symbol "" identifier = (string_literal ""entry symbol "" " string_content ")) ;) (labeled_statement "LAB_001c8211:\n      FUN_00340370(param_5,0,uVar7,pcVar5,uVar9);" statement_identifier : (expression_statement "FUN_00340370(param_5,0,uVar7,pcVar5,uVar9);" (call_expression "FUN_00340370(param_5,0,uVar7,pcVar5,uVar9)" identifier (argument_list "(param_5,0,uVar7,pcVar5,uVar9)" ( identifier , number_literal , identifier , identifier , identifier ))) ;)) (expression_statement "sVar8 = strlen(__s);" (assignment_expression "sVar8 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (if_statement "if (sVar8 <= 0x7fffffffffffffffU - *(long *)(param_5 + 8)) {\n        FUN_00340cc0(param_5,__s,sVar8);\n        return 1;\n      }" if (parenthesized_expression "(sVar8 <= 0x7fffffffffffffffU - *(long *)(param_5 + 8))" ( (binary_expression "sVar8 <= 0x7fffffffffffffffU - *(long *)(param_5 + 8)" identifier <= (binary_expression "0x7fffffffffffffffU - *(long *)(param_5 + 8)" number_literal - (pointer_expression "*(long *)(param_5 + 8)" * (cast_expression "(long *)(param_5 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 8)" ( (binary_expression "param_5 + 8" identifier + number_literal) )))))) )) (compound_statement "{\n        FUN_00340cc0(param_5,__s,sVar8);\n        return 1;\n      }" { (expression_statement "FUN_00340cc0(param_5,__s,sVar8);" (call_expression "FUN_00340cc0(param_5,__s,sVar8)" identifier (argument_list "(param_5,__s,sVar8)" ( identifier , identifier , identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "FUN_00377370("basic_string::append");" (call_expression "FUN_00377370("basic_string::append")" identifier (argument_list "("basic_string::append")" ( (string_literal ""basic_string::append"" " string_content ") ))) ;) })) })) (labeled_statement "LAB_001c830c:\n                    \n  FUN_001e9890("../../gold/parameters.h",0x5c,"options");" statement_identifier : (expression_statement "FUN_001e9890("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_001e9890("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;)) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) }))) (goto_statement goto statement_identifier ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (char_literal ' escape_sequence ')) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT )))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) ))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) == LIT) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (return_statement return LIT ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (return_statement return LIT ;) })) (labeled_statement statement_identifier : (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 )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) != LIT) )) (compound_statement { (return_statement return LIT ;) })) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (string_literal " string_content ") ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) != (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , IDENT , IDENT ))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (binary_expression LIT - (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (return_statement return LIT ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) })) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })))
(function_definition "undefined8\nFUN_001c7e90(undefined8 param_1,long param_2,char *param_3,long *param_4,long param_5,\n            undefined8 *param_6,ulong *param_7)\n\n{\n  ulong uVar1;\n  byte bVar2;\n  char cVar3;\n  int iVar4;\n  char *pcVar5;\n  long lVar6;\n  char *__s;\n  char *__format;\n  undefined8 uVar7;\n  size_t sVar8;\n  undefined8 uVar9;\n  undefined1 *local_58 [2];\n  undefined1 local_48 [24];\n  \n  pcVar5 = strchr(param_3,0x40);\n  __s = param_3;\n  if (pcVar5 == (char *)0x0) {\nLAB_001c7f12:\n    lVar6 = FUN_002df9a0(param_1,__s,pcVar5);\n    *param_4 = lVar6;\njoined_r0x001c805a:\n    if (lVar6 != 0) {\n      bVar2 = *(byte *)(lVar6 + 0x3a) & 7;\n      if (bVar2 == 0) goto LAB_001c7f3f;\nLAB_001c7fc0:\n      if (bVar2 != 4) {\n        return 0;\n      }\n      goto LAB_001c7fc4;\n    }\n  }\n  else {\n    sVar8 = (long)pcVar5 - (long)param_3;\n    __s = (char *)*param_6;\n    uVar1 = sVar8 + 1;\n    if (*param_7 < uVar1) {\n      __s = (char *)FUN_00336eb0(__s,uVar1);\n      *param_6 = __s;\n      *param_7 = uVar1;\n    }\n    memcpy(__s,param_3,sVar8);\n    __s[sVar8] = '\0';\n    if (pcVar5[1] != '@') {\n      pcVar5 = pcVar5 + 1;\n      goto LAB_001c7f12;\n    }\n    lVar6 = FUN_002df9a0(param_1,__s,pcVar5 + 2);\n    if (lVar6 == 0) {\nLAB_001c8040:\n      lVar6 = FUN_002df9a0(param_1,__s,0);\n      *param_4 = lVar6;\n      goto joined_r0x001c805a;\n    }\n    bVar2 = *(byte *)(lVar6 + 0x3a) & 7;\n    if ((*(byte *)(lVar6 + 0x3a) & 7) != 0) {\n      if (bVar2 == 4) goto LAB_001c7f9d;\n      goto LAB_001c8040;\n    }\n    if ((*(int *)(lVar6 + 0x18) != 0) || ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0)) goto LAB_001c8040;\nLAB_001c7f9d:\n    if (*(byte *)(lVar6 + 0x38) >> 4 == 2) goto LAB_001c8040;\n    *param_4 = lVar6;\n    if (bVar2 != 0) goto LAB_001c7fc0;\nLAB_001c7f3f:\n    if (*(int *)(lVar6 + 0x18) != 0) {\n      return 0;\n    }\n    if ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0) {\n      return 0;\n    }\nLAB_001c7fc4:\n    cVar3 = FUN_002d0d40(*(undefined8 *)(param_2 + 8),__s);\n    if (cVar3 != '\0') {\n      return 0;\n    }\n    if (*(byte *)(lVar6 + 0x38) >> 4 != 2) {\n      return 1;\n    }\n  }\n  lVar6 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n  if (lVar6 != 0) {\n    if (*(long *)(lVar6 + 0x6bb8) != 0) {\n      local_58[0] = local_48;\n      sVar8 = strlen(__s);\n      FUN_001bc4c0(local_58,__s,__s + sVar8);\n      lVar6 = FUN_001ca390(lVar6 + 0x6ba0,local_58);\n      if (lVar6 != 0) {\n        if (local_58[0] != local_48) {\n          FUN_00338a40();\n        }\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 3;\n        pcVar5 = "-u ";\n        goto LAB_001c8211;\n      }\n      if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }\n    }\n    lVar6 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n    if (lVar6 == 0) goto LAB_001c830c;\n    if (*(long *)(lVar6 + 0x1f28) == 0) {\n      lVar6 = *(long *)(param_2 + 8);\n    }\n    else {\n      local_58[0] = local_48;\n      sVar8 = strlen(__s);\n      FUN_001bc4c0(local_58,__s,__s + sVar8);\n      lVar6 = FUN_001ca390(lVar6 + 0x1f10,local_58);\n      if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }\n      if (lVar6 != 0) {\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 0x18;\n        pcVar5 = "--export-dynamic-symbol ";\n        goto LAB_001c8211;\n      }\n      lVar6 = *(long *)(param_2 + 8);\n    }\n    local_58[0] = local_48;\n    sVar8 = strlen(__s);\n    FUN_001bc4c0(local_58,__s,__s + sVar8);\n    lVar6 = FUN_001ca390(lVar6 + 0x70,local_58);\n    if (local_58[0] != local_48) {\n      FUN_00338a40();\n    }\n    if (lVar6 != 0) {\n      sVar8 = strlen(__s);\n      pcVar5 = (char *)thunk_FUN_00337270(sVar8 + 100);\n      __format = (char *)gettext("script or expression reference to %s");\n      snprintf(pcVar5,sVar8 + 100,__format,__s);\n      sVar8 = strlen(pcVar5);\n      FUN_00340370(param_5,0,*(undefined8 *)(param_5 + 8),pcVar5,sVar8);\n      thunk_FUN_00338a40(pcVar5);\n      return 1;\n    }\n    if (*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) {\n      if (((*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051) != '\0') ||\n          (pcVar5 = (char *)FUN_002a09b0(), pcVar5 == (char *)0x0)) ||\n         (iVar4 = strcmp(__s,pcVar5), iVar4 != 0)) {\n        return 2;\n      }\n      uVar7 = *(undefined8 *)(param_5 + 8);\n      uVar9 = 0xd;\n      pcVar5 = "entry symbol ";\nLAB_001c8211:\n      FUN_00340370(param_5,0,uVar7,pcVar5,uVar9);\n      sVar8 = strlen(__s);\n      if (sVar8 <= 0x7fffffffffffffffU - *(long *)(param_5 + 8)) {\n        FUN_00340cc0(param_5,__s,sVar8);\n        return 1;\n      }\n                    \n      FUN_00377370("basic_string::append");\n    }\n  }\nLAB_001c830c:\n                    \n  FUN_001e9890("../../gold/parameters.h",0x5c,"options");\n}" (type_identifier "undefined8") (function_declarator "FUN_001c7e90(undefined8 param_1,long param_2,char *param_3,long *param_4,long param_5,\n            undefined8 *param_6,ulong *param_7)" (identifier "FUN_001c7e90") (parameter_list "(undefined8 param_1,long param_2,char *param_3,long *param_4,long param_5,\n            undefined8 *param_6,ulong *param_7)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) (, ",") (parameter_declaration "long param_2" (sized_type_specifier "long" (long "long")) (identifier "param_2")) (, ",") (parameter_declaration "char *param_3" (primitive_type "char") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "long *param_4" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "long param_5" (sized_type_specifier "long" (long "long")) (identifier "param_5")) (, ",") (parameter_declaration "undefined8 *param_6" (type_identifier "undefined8") (pointer_declarator "*param_6" (* "*") (identifier "param_6"))) (, ",") (parameter_declaration "ulong *param_7" (type_identifier "ulong") (pointer_declarator "*param_7" (* "*") (identifier "param_7"))) () ")"))) (compound_statement "{\n  ulong uVar1;\n  byte bVar2;\n  char cVar3;\n  int iVar4;\n  char *pcVar5;\n  long lVar6;\n  char *__s;\n  char *__format;\n  undefined8 uVar7;\n  size_t sVar8;\n  undefined8 uVar9;\n  undefined1 *local_58 [2];\n  undefined1 local_48 [24];\n  \n  pcVar5 = strchr(param_3,0x40);\n  __s = param_3;\n  if (pcVar5 == (char *)0x0) {\nLAB_001c7f12:\n    lVar6 = FUN_002df9a0(param_1,__s,pcVar5);\n    *param_4 = lVar6;\njoined_r0x001c805a:\n    if (lVar6 != 0) {\n      bVar2 = *(byte *)(lVar6 + 0x3a) & 7;\n      if (bVar2 == 0) goto LAB_001c7f3f;\nLAB_001c7fc0:\n      if (bVar2 != 4) {\n        return 0;\n      }\n      goto LAB_001c7fc4;\n    }\n  }\n  else {\n    sVar8 = (long)pcVar5 - (long)param_3;\n    __s = (char *)*param_6;\n    uVar1 = sVar8 + 1;\n    if (*param_7 < uVar1) {\n      __s = (char *)FUN_00336eb0(__s,uVar1);\n      *param_6 = __s;\n      *param_7 = uVar1;\n    }\n    memcpy(__s,param_3,sVar8);\n    __s[sVar8] = '\0';\n    if (pcVar5[1] != '@') {\n      pcVar5 = pcVar5 + 1;\n      goto LAB_001c7f12;\n    }\n    lVar6 = FUN_002df9a0(param_1,__s,pcVar5 + 2);\n    if (lVar6 == 0) {\nLAB_001c8040:\n      lVar6 = FUN_002df9a0(param_1,__s,0);\n      *param_4 = lVar6;\n      goto joined_r0x001c805a;\n    }\n    bVar2 = *(byte *)(lVar6 + 0x3a) & 7;\n    if ((*(byte *)(lVar6 + 0x3a) & 7) != 0) {\n      if (bVar2 == 4) goto LAB_001c7f9d;\n      goto LAB_001c8040;\n    }\n    if ((*(int *)(lVar6 + 0x18) != 0) || ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0)) goto LAB_001c8040;\nLAB_001c7f9d:\n    if (*(byte *)(lVar6 + 0x38) >> 4 == 2) goto LAB_001c8040;\n    *param_4 = lVar6;\n    if (bVar2 != 0) goto LAB_001c7fc0;\nLAB_001c7f3f:\n    if (*(int *)(lVar6 + 0x18) != 0) {\n      return 0;\n    }\n    if ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0) {\n      return 0;\n    }\nLAB_001c7fc4:\n    cVar3 = FUN_002d0d40(*(undefined8 *)(param_2 + 8),__s);\n    if (cVar3 != '\0') {\n      return 0;\n    }\n    if (*(byte *)(lVar6 + 0x38) >> 4 != 2) {\n      return 1;\n    }\n  }\n  lVar6 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n  if (lVar6 != 0) {\n    if (*(long *)(lVar6 + 0x6bb8) != 0) {\n      local_58[0] = local_48;\n      sVar8 = strlen(__s);\n      FUN_001bc4c0(local_58,__s,__s + sVar8);\n      lVar6 = FUN_001ca390(lVar6 + 0x6ba0,local_58);\n      if (lVar6 != 0) {\n        if (local_58[0] != local_48) {\n          FUN_00338a40();\n        }\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 3;\n        pcVar5 = "-u ";\n        goto LAB_001c8211;\n      }\n      if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }\n    }\n    lVar6 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n    if (lVar6 == 0) goto LAB_001c830c;\n    if (*(long *)(lVar6 + 0x1f28) == 0) {\n      lVar6 = *(long *)(param_2 + 8);\n    }\n    else {\n      local_58[0] = local_48;\n      sVar8 = strlen(__s);\n      FUN_001bc4c0(local_58,__s,__s + sVar8);\n      lVar6 = FUN_001ca390(lVar6 + 0x1f10,local_58);\n      if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }\n      if (lVar6 != 0) {\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 0x18;\n        pcVar5 = "--export-dynamic-symbol ";\n        goto LAB_001c8211;\n      }\n      lVar6 = *(long *)(param_2 + 8);\n    }\n    local_58[0] = local_48;\n    sVar8 = strlen(__s);\n    FUN_001bc4c0(local_58,__s,__s + sVar8);\n    lVar6 = FUN_001ca390(lVar6 + 0x70,local_58);\n    if (local_58[0] != local_48) {\n      FUN_00338a40();\n    }\n    if (lVar6 != 0) {\n      sVar8 = strlen(__s);\n      pcVar5 = (char *)thunk_FUN_00337270(sVar8 + 100);\n      __format = (char *)gettext("script or expression reference to %s");\n      snprintf(pcVar5,sVar8 + 100,__format,__s);\n      sVar8 = strlen(pcVar5);\n      FUN_00340370(param_5,0,*(undefined8 *)(param_5 + 8),pcVar5,sVar8);\n      thunk_FUN_00338a40(pcVar5);\n      return 1;\n    }\n    if (*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) {\n      if (((*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051) != '\0') ||\n          (pcVar5 = (char *)FUN_002a09b0(), pcVar5 == (char *)0x0)) ||\n         (iVar4 = strcmp(__s,pcVar5), iVar4 != 0)) {\n        return 2;\n      }\n      uVar7 = *(undefined8 *)(param_5 + 8);\n      uVar9 = 0xd;\n      pcVar5 = "entry symbol ";\nLAB_001c8211:\n      FUN_00340370(param_5,0,uVar7,pcVar5,uVar9);\n      sVar8 = strlen(__s);\n      if (sVar8 <= 0x7fffffffffffffffU - *(long *)(param_5 + 8)) {\n        FUN_00340cc0(param_5,__s,sVar8);\n        return 1;\n      }\n                    \n      FUN_00377370("basic_string::append");\n    }\n  }\nLAB_001c830c:\n                    \n  FUN_001e9890("../../gold/parameters.h",0x5c,"options");\n}" ({ "{") (declaration "ulong uVar1;" (type_identifier "ulong") (identifier "uVar1") (; ";")) (declaration "byte bVar2;" (type_identifier "byte") (identifier "bVar2") (; ";")) (declaration "char cVar3;" (primitive_type "char") (identifier "cVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "char *pcVar5;" (primitive_type "char") (pointer_declarator "*pcVar5" (* "*") (identifier "pcVar5")) (; ";")) (declaration "long lVar6;" (sized_type_specifier "long" (long "long")) (identifier "lVar6") (; ";")) (declaration "char *__s;" (primitive_type "char") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "char *__format;" (primitive_type "char") (pointer_declarator "*__format" (* "*") (identifier "__format")) (; ";")) (declaration "undefined8 uVar7;" (type_identifier "undefined8") (identifier "uVar7") (; ";")) (declaration "size_t sVar8;" (primitive_type "size_t") (identifier "sVar8") (; ";")) (declaration "undefined8 uVar9;" (type_identifier "undefined8") (identifier "uVar9") (; ";")) (declaration "undefined1 *local_58 [2];" (type_identifier "undefined1") (pointer_declarator "*local_58 [2]" (* "*") (array_declarator "local_58 [2]" (identifier "local_58") ([ "[") (number_literal "2") (] "]"))) (; ";")) (declaration "undefined1 local_48 [24];" (type_identifier "undefined1") (array_declarator "local_48 [24]" (identifier "local_48") ([ "[") (number_literal "24") (] "]")) (; ";")) (expression_statement "pcVar5 = strchr(param_3,0x40);" (assignment_expression "pcVar5 = strchr(param_3,0x40)" (identifier "pcVar5") (= "=") (call_expression "strchr(param_3,0x40)" (identifier "strchr") (argument_list "(param_3,0x40)" (( "(") (identifier "param_3") (, ",") (number_literal "0x40") () ")")))) (; ";")) (expression_statement "__s = param_3;" (assignment_expression "__s = param_3" (identifier "__s") (= "=") (identifier "param_3")) (; ";")) (if_statement "if (pcVar5 == (char *)0x0) {\nLAB_001c7f12:\n    lVar6 = FUN_002df9a0(param_1,__s,pcVar5);\n    *param_4 = lVar6;\njoined_r0x001c805a:\n    if (lVar6 != 0) {\n      bVar2 = *(byte *)(lVar6 + 0x3a) & 7;\n      if (bVar2 == 0) goto LAB_001c7f3f;\nLAB_001c7fc0:\n      if (bVar2 != 4) {\n        return 0;\n      }\n      goto LAB_001c7fc4;\n    }\n  }\n  else {\n    sVar8 = (long)pcVar5 - (long)param_3;\n    __s = (char *)*param_6;\n    uVar1 = sVar8 + 1;\n    if (*param_7 < uVar1) {\n      __s = (char *)FUN_00336eb0(__s,uVar1);\n      *param_6 = __s;\n      *param_7 = uVar1;\n    }\n    memcpy(__s,param_3,sVar8);\n    __s[sVar8] = '\0';\n    if (pcVar5[1] != '@') {\n      pcVar5 = pcVar5 + 1;\n      goto LAB_001c7f12;\n    }\n    lVar6 = FUN_002df9a0(param_1,__s,pcVar5 + 2);\n    if (lVar6 == 0) {\nLAB_001c8040:\n      lVar6 = FUN_002df9a0(param_1,__s,0);\n      *param_4 = lVar6;\n      goto joined_r0x001c805a;\n    }\n    bVar2 = *(byte *)(lVar6 + 0x3a) & 7;\n    if ((*(byte *)(lVar6 + 0x3a) & 7) != 0) {\n      if (bVar2 == 4) goto LAB_001c7f9d;\n      goto LAB_001c8040;\n    }\n    if ((*(int *)(lVar6 + 0x18) != 0) || ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0)) goto LAB_001c8040;\nLAB_001c7f9d:\n    if (*(byte *)(lVar6 + 0x38) >> 4 == 2) goto LAB_001c8040;\n    *param_4 = lVar6;\n    if (bVar2 != 0) goto LAB_001c7fc0;\nLAB_001c7f3f:\n    if (*(int *)(lVar6 + 0x18) != 0) {\n      return 0;\n    }\n    if ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0) {\n      return 0;\n    }\nLAB_001c7fc4:\n    cVar3 = FUN_002d0d40(*(undefined8 *)(param_2 + 8),__s);\n    if (cVar3 != '\0') {\n      return 0;\n    }\n    if (*(byte *)(lVar6 + 0x38) >> 4 != 2) {\n      return 1;\n    }\n  }" (if "if") (parenthesized_expression "(pcVar5 == (char *)0x0)" (( "(") (binary_expression "pcVar5 == (char *)0x0" (identifier "pcVar5") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_001c7f12:\n    lVar6 = FUN_002df9a0(param_1,__s,pcVar5);\n    *param_4 = lVar6;\njoined_r0x001c805a:\n    if (lVar6 != 0) {\n      bVar2 = *(byte *)(lVar6 + 0x3a) & 7;\n      if (bVar2 == 0) goto LAB_001c7f3f;\nLAB_001c7fc0:\n      if (bVar2 != 4) {\n        return 0;\n      }\n      goto LAB_001c7fc4;\n    }\n  }" ({ "{") (labeled_statement "LAB_001c7f12:\n    lVar6 = FUN_002df9a0(param_1,__s,pcVar5);" (statement_identifier "LAB_001c7f12") (: ":") (expression_statement "lVar6 = FUN_002df9a0(param_1,__s,pcVar5);" (assignment_expression "lVar6 = FUN_002df9a0(param_1,__s,pcVar5)" (identifier "lVar6") (= "=") (call_expression "FUN_002df9a0(param_1,__s,pcVar5)" (identifier "FUN_002df9a0") (argument_list "(param_1,__s,pcVar5)" (( "(") (identifier "param_1") (, ",") (identifier "__s") (, ",") (identifier "pcVar5") () ")")))) (; ";"))) (expression_statement "*param_4 = lVar6;" (assignment_expression "*param_4 = lVar6" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (identifier "lVar6")) (; ";")) (labeled_statement "joined_r0x001c805a:\n    if (lVar6 != 0) {\n      bVar2 = *(byte *)(lVar6 + 0x3a) & 7;\n      if (bVar2 == 0) goto LAB_001c7f3f;\nLAB_001c7fc0:\n      if (bVar2 != 4) {\n        return 0;\n      }\n      goto LAB_001c7fc4;\n    }" (statement_identifier "joined_r0x001c805a") (: ":") (if_statement "if (lVar6 != 0) {\n      bVar2 = *(byte *)(lVar6 + 0x3a) & 7;\n      if (bVar2 == 0) goto LAB_001c7f3f;\nLAB_001c7fc0:\n      if (bVar2 != 4) {\n        return 0;\n      }\n      goto LAB_001c7fc4;\n    }" (if "if") (parenthesized_expression "(lVar6 != 0)" (( "(") (binary_expression "lVar6 != 0" (identifier "lVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      bVar2 = *(byte *)(lVar6 + 0x3a) & 7;\n      if (bVar2 == 0) goto LAB_001c7f3f;\nLAB_001c7fc0:\n      if (bVar2 != 4) {\n        return 0;\n      }\n      goto LAB_001c7fc4;\n    }" ({ "{") (expression_statement "bVar2 = *(byte *)(lVar6 + 0x3a) & 7;" (assignment_expression "bVar2 = *(byte *)(lVar6 + 0x3a) & 7" (identifier "bVar2") (= "=") (binary_expression "*(byte *)(lVar6 + 0x3a) & 7" (pointer_expression "*(byte *)(lVar6 + 0x3a)" (* "*") (cast_expression "(byte *)(lVar6 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x3a)" (( "(") (binary_expression "lVar6 + 0x3a" (identifier "lVar6") (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "7"))) (; ";")) (if_statement "if (bVar2 == 0) goto LAB_001c7f3f;" (if "if") (parenthesized_expression "(bVar2 == 0)" (( "(") (binary_expression "bVar2 == 0" (identifier "bVar2") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001c7f3f;" (goto "goto") (statement_identifier "LAB_001c7f3f") (; ";"))) (labeled_statement "LAB_001c7fc0:\n      if (bVar2 != 4) {\n        return 0;\n      }" (statement_identifier "LAB_001c7fc0") (: ":") (if_statement "if (bVar2 != 4) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(bVar2 != 4)" (( "(") (binary_expression "bVar2 != 4" (identifier "bVar2") (!= "!=") (number_literal "4")) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))) (goto_statement "goto LAB_001c7fc4;" (goto "goto") (statement_identifier "LAB_001c7fc4") (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    sVar8 = (long)pcVar5 - (long)param_3;\n    __s = (char *)*param_6;\n    uVar1 = sVar8 + 1;\n    if (*param_7 < uVar1) {\n      __s = (char *)FUN_00336eb0(__s,uVar1);\n      *param_6 = __s;\n      *param_7 = uVar1;\n    }\n    memcpy(__s,param_3,sVar8);\n    __s[sVar8] = '\0';\n    if (pcVar5[1] != '@') {\n      pcVar5 = pcVar5 + 1;\n      goto LAB_001c7f12;\n    }\n    lVar6 = FUN_002df9a0(param_1,__s,pcVar5 + 2);\n    if (lVar6 == 0) {\nLAB_001c8040:\n      lVar6 = FUN_002df9a0(param_1,__s,0);\n      *param_4 = lVar6;\n      goto joined_r0x001c805a;\n    }\n    bVar2 = *(byte *)(lVar6 + 0x3a) & 7;\n    if ((*(byte *)(lVar6 + 0x3a) & 7) != 0) {\n      if (bVar2 == 4) goto LAB_001c7f9d;\n      goto LAB_001c8040;\n    }\n    if ((*(int *)(lVar6 + 0x18) != 0) || ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0)) goto LAB_001c8040;\nLAB_001c7f9d:\n    if (*(byte *)(lVar6 + 0x38) >> 4 == 2) goto LAB_001c8040;\n    *param_4 = lVar6;\n    if (bVar2 != 0) goto LAB_001c7fc0;\nLAB_001c7f3f:\n    if (*(int *)(lVar6 + 0x18) != 0) {\n      return 0;\n    }\n    if ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0) {\n      return 0;\n    }\nLAB_001c7fc4:\n    cVar3 = FUN_002d0d40(*(undefined8 *)(param_2 + 8),__s);\n    if (cVar3 != '\0') {\n      return 0;\n    }\n    if (*(byte *)(lVar6 + 0x38) >> 4 != 2) {\n      return 1;\n    }\n  }" (else "else") (compound_statement "{\n    sVar8 = (long)pcVar5 - (long)param_3;\n    __s = (char *)*param_6;\n    uVar1 = sVar8 + 1;\n    if (*param_7 < uVar1) {\n      __s = (char *)FUN_00336eb0(__s,uVar1);\n      *param_6 = __s;\n      *param_7 = uVar1;\n    }\n    memcpy(__s,param_3,sVar8);\n    __s[sVar8] = '\0';\n    if (pcVar5[1] != '@') {\n      pcVar5 = pcVar5 + 1;\n      goto LAB_001c7f12;\n    }\n    lVar6 = FUN_002df9a0(param_1,__s,pcVar5 + 2);\n    if (lVar6 == 0) {\nLAB_001c8040:\n      lVar6 = FUN_002df9a0(param_1,__s,0);\n      *param_4 = lVar6;\n      goto joined_r0x001c805a;\n    }\n    bVar2 = *(byte *)(lVar6 + 0x3a) & 7;\n    if ((*(byte *)(lVar6 + 0x3a) & 7) != 0) {\n      if (bVar2 == 4) goto LAB_001c7f9d;\n      goto LAB_001c8040;\n    }\n    if ((*(int *)(lVar6 + 0x18) != 0) || ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0)) goto LAB_001c8040;\nLAB_001c7f9d:\n    if (*(byte *)(lVar6 + 0x38) >> 4 == 2) goto LAB_001c8040;\n    *param_4 = lVar6;\n    if (bVar2 != 0) goto LAB_001c7fc0;\nLAB_001c7f3f:\n    if (*(int *)(lVar6 + 0x18) != 0) {\n      return 0;\n    }\n    if ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0) {\n      return 0;\n    }\nLAB_001c7fc4:\n    cVar3 = FUN_002d0d40(*(undefined8 *)(param_2 + 8),__s);\n    if (cVar3 != '\0') {\n      return 0;\n    }\n    if (*(byte *)(lVar6 + 0x38) >> 4 != 2) {\n      return 1;\n    }\n  }" ({ "{") (expression_statement "sVar8 = (long)pcVar5 - (long)param_3;" (assignment_expression "sVar8 = (long)pcVar5 - (long)param_3" (identifier "sVar8") (= "=") (binary_expression "(long)pcVar5 - (long)param_3" (cast_expression "(long)pcVar5" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pcVar5")) (- "-") (cast_expression "(long)param_3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_3")))) (; ";")) (expression_statement "__s = (char *)*param_6;" (assignment_expression "__s = (char *)*param_6" (identifier "__s") (= "=") (cast_expression "(char *)*param_6" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_6" (* "*") (identifier "param_6")))) (; ";")) (expression_statement "uVar1 = sVar8 + 1;" (assignment_expression "uVar1 = sVar8 + 1" (identifier "uVar1") (= "=") (binary_expression "sVar8 + 1" (identifier "sVar8") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (*param_7 < uVar1) {\n      __s = (char *)FUN_00336eb0(__s,uVar1);\n      *param_6 = __s;\n      *param_7 = uVar1;\n    }" (if "if") (parenthesized_expression "(*param_7 < uVar1)" (( "(") (binary_expression "*param_7 < uVar1" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (< "<") (identifier "uVar1")) () ")")) (compound_statement "{\n      __s = (char *)FUN_00336eb0(__s,uVar1);\n      *param_6 = __s;\n      *param_7 = uVar1;\n    }" ({ "{") (expression_statement "__s = (char *)FUN_00336eb0(__s,uVar1);" (assignment_expression "__s = (char *)FUN_00336eb0(__s,uVar1)" (identifier "__s") (= "=") (cast_expression "(char *)FUN_00336eb0(__s,uVar1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00336eb0(__s,uVar1)" (identifier "FUN_00336eb0") (argument_list "(__s,uVar1)" (( "(") (identifier "__s") (, ",") (identifier "uVar1") () ")"))))) (; ";")) (expression_statement "*param_6 = __s;" (assignment_expression "*param_6 = __s" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "__s")) (; ";")) (expression_statement "*param_7 = uVar1;" (assignment_expression "*param_7 = uVar1" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (= "=") (identifier "uVar1")) (; ";")) (} "}"))) (expression_statement "memcpy(__s,param_3,sVar8);" (call_expression "memcpy(__s,param_3,sVar8)" (identifier "memcpy") (argument_list "(__s,param_3,sVar8)" (( "(") (identifier "__s") (, ",") (identifier "param_3") (, ",") (identifier "sVar8") () ")"))) (; ";")) (expression_statement "__s[sVar8] = '\0';" (assignment_expression "__s[sVar8] = '\0'" (subscript_expression "__s[sVar8]" (identifier "__s") ([ "[") (identifier "sVar8") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (if_statement "if (pcVar5[1] != '@') {\n      pcVar5 = pcVar5 + 1;\n      goto LAB_001c7f12;\n    }" (if "if") (parenthesized_expression "(pcVar5[1] != '@')" (( "(") (binary_expression "pcVar5[1] != '@'" (subscript_expression "pcVar5[1]" (identifier "pcVar5") ([ "[") (number_literal "1") (] "]")) (!= "!=") (char_literal "'@'" (' "'") (character "@") (' "'"))) () ")")) (compound_statement "{\n      pcVar5 = pcVar5 + 1;\n      goto LAB_001c7f12;\n    }" ({ "{") (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" (identifier "pcVar5") (= "=") (binary_expression "pcVar5 + 1" (identifier "pcVar5") (+ "+") (number_literal "1"))) (; ";")) (goto_statement "goto LAB_001c7f12;" (goto "goto") (statement_identifier "LAB_001c7f12") (; ";")) (} "}"))) (expression_statement "lVar6 = FUN_002df9a0(param_1,__s,pcVar5 + 2);" (assignment_expression "lVar6 = FUN_002df9a0(param_1,__s,pcVar5 + 2)" (identifier "lVar6") (= "=") (call_expression "FUN_002df9a0(param_1,__s,pcVar5 + 2)" (identifier "FUN_002df9a0") (argument_list "(param_1,__s,pcVar5 + 2)" (( "(") (identifier "param_1") (, ",") (identifier "__s") (, ",") (binary_expression "pcVar5 + 2" (identifier "pcVar5") (+ "+") (number_literal "2")) () ")")))) (; ";")) (if_statement "if (lVar6 == 0) {\nLAB_001c8040:\n      lVar6 = FUN_002df9a0(param_1,__s,0);\n      *param_4 = lVar6;\n      goto joined_r0x001c805a;\n    }" (if "if") (parenthesized_expression "(lVar6 == 0)" (( "(") (binary_expression "lVar6 == 0" (identifier "lVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_001c8040:\n      lVar6 = FUN_002df9a0(param_1,__s,0);\n      *param_4 = lVar6;\n      goto joined_r0x001c805a;\n    }" ({ "{") (labeled_statement "LAB_001c8040:\n      lVar6 = FUN_002df9a0(param_1,__s,0);" (statement_identifier "LAB_001c8040") (: ":") (expression_statement "lVar6 = FUN_002df9a0(param_1,__s,0);" (assignment_expression "lVar6 = FUN_002df9a0(param_1,__s,0)" (identifier "lVar6") (= "=") (call_expression "FUN_002df9a0(param_1,__s,0)" (identifier "FUN_002df9a0") (argument_list "(param_1,__s,0)" (( "(") (identifier "param_1") (, ",") (identifier "__s") (, ",") (number_literal "0") () ")")))) (; ";"))) (expression_statement "*param_4 = lVar6;" (assignment_expression "*param_4 = lVar6" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (identifier "lVar6")) (; ";")) (goto_statement "goto joined_r0x001c805a;" (goto "goto") (statement_identifier "joined_r0x001c805a") (; ";")) (} "}"))) (expression_statement "bVar2 = *(byte *)(lVar6 + 0x3a) & 7;" (assignment_expression "bVar2 = *(byte *)(lVar6 + 0x3a) & 7" (identifier "bVar2") (= "=") (binary_expression "*(byte *)(lVar6 + 0x3a) & 7" (pointer_expression "*(byte *)(lVar6 + 0x3a)" (* "*") (cast_expression "(byte *)(lVar6 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x3a)" (( "(") (binary_expression "lVar6 + 0x3a" (identifier "lVar6") (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "7"))) (; ";")) (if_statement "if ((*(byte *)(lVar6 + 0x3a) & 7) != 0) {\n      if (bVar2 == 4) goto LAB_001c7f9d;\n      goto LAB_001c8040;\n    }" (if "if") (parenthesized_expression "((*(byte *)(lVar6 + 0x3a) & 7) != 0)" (( "(") (binary_expression "(*(byte *)(lVar6 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)(lVar6 + 0x3a) & 7)" (( "(") (binary_expression "*(byte *)(lVar6 + 0x3a) & 7" (pointer_expression "*(byte *)(lVar6 + 0x3a)" (* "*") (cast_expression "(byte *)(lVar6 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x3a)" (( "(") (binary_expression "lVar6 + 0x3a" (identifier "lVar6") (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (bVar2 == 4) goto LAB_001c7f9d;\n      goto LAB_001c8040;\n    }" ({ "{") (if_statement "if (bVar2 == 4) goto LAB_001c7f9d;" (if "if") (parenthesized_expression "(bVar2 == 4)" (( "(") (binary_expression "bVar2 == 4" (identifier "bVar2") (== "==") (number_literal "4")) () ")")) (goto_statement "goto LAB_001c7f9d;" (goto "goto") (statement_identifier "LAB_001c7f9d") (; ";"))) (goto_statement "goto LAB_001c8040;" (goto "goto") (statement_identifier "LAB_001c8040") (; ";")) (} "}"))) (if_statement "if ((*(int *)(lVar6 + 0x18) != 0) || ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0)) goto LAB_001c8040;" (if "if") (parenthesized_expression "((*(int *)(lVar6 + 0x18) != 0) || ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0))" (( "(") (binary_expression "(*(int *)(lVar6 + 0x18) != 0) || ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0)" (parenthesized_expression "(*(int *)(lVar6 + 0x18) != 0)" (( "(") (binary_expression "*(int *)(lVar6 + 0x18) != 0" (pointer_expression "*(int *)(lVar6 + 0x18)" (* "*") (cast_expression "(int *)(lVar6 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x18)" (( "(") (binary_expression "lVar6 + 0x18" (identifier "lVar6") (+ "+") (number_literal "0x18")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(lVar6 + 0x3b) & 0x20) == 0)" (( "(") (binary_expression "(*(byte *)(lVar6 + 0x3b) & 0x20) == 0" (parenthesized_expression "(*(byte *)(lVar6 + 0x3b) & 0x20)" (( "(") (binary_expression "*(byte *)(lVar6 + 0x3b) & 0x20" (pointer_expression "*(byte *)(lVar6 + 0x3b)" (* "*") (cast_expression "(byte *)(lVar6 + 0x3b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x3b)" (( "(") (binary_expression "lVar6 + 0x3b" (identifier "lVar6") (+ "+") (number_literal "0x3b")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_001c8040;" (goto "goto") (statement_identifier "LAB_001c8040") (; ";"))) (labeled_statement "LAB_001c7f9d:\n    if (*(byte *)(lVar6 + 0x38) >> 4 == 2) goto LAB_001c8040;" (statement_identifier "LAB_001c7f9d") (: ":") (if_statement "if (*(byte *)(lVar6 + 0x38) >> 4 == 2) goto LAB_001c8040;" (if "if") (parenthesized_expression "(*(byte *)(lVar6 + 0x38) >> 4 == 2)" (( "(") (binary_expression "*(byte *)(lVar6 + 0x38) >> 4 == 2" (binary_expression "*(byte *)(lVar6 + 0x38) >> 4" (pointer_expression "*(byte *)(lVar6 + 0x38)" (* "*") (cast_expression "(byte *)(lVar6 + 0x38)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x38)" (( "(") (binary_expression "lVar6 + 0x38" (identifier "lVar6") (+ "+") (number_literal "0x38")) () ")")))) (>> ">>") (number_literal "4")) (== "==") (number_literal "2")) () ")")) (goto_statement "goto LAB_001c8040;" (goto "goto") (statement_identifier "LAB_001c8040") (; ";")))) (expression_statement "*param_4 = lVar6;" (assignment_expression "*param_4 = lVar6" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (identifier "lVar6")) (; ";")) (if_statement "if (bVar2 != 0) goto LAB_001c7fc0;" (if "if") (parenthesized_expression "(bVar2 != 0)" (( "(") (binary_expression "bVar2 != 0" (identifier "bVar2") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_001c7fc0;" (goto "goto") (statement_identifier "LAB_001c7fc0") (; ";"))) (labeled_statement "LAB_001c7f3f:\n    if (*(int *)(lVar6 + 0x18) != 0) {\n      return 0;\n    }" (statement_identifier "LAB_001c7f3f") (: ":") (if_statement "if (*(int *)(lVar6 + 0x18) != 0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(*(int *)(lVar6 + 0x18) != 0)" (( "(") (binary_expression "*(int *)(lVar6 + 0x18) != 0" (pointer_expression "*(int *)(lVar6 + 0x18)" (* "*") (cast_expression "(int *)(lVar6 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x18)" (( "(") (binary_expression "lVar6 + 0x18" (identifier "lVar6") (+ "+") (number_literal "0x18")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))) (if_statement "if ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "((*(byte *)(lVar6 + 0x3b) & 0x20) == 0)" (( "(") (binary_expression "(*(byte *)(lVar6 + 0x3b) & 0x20) == 0" (parenthesized_expression "(*(byte *)(lVar6 + 0x3b) & 0x20)" (( "(") (binary_expression "*(byte *)(lVar6 + 0x3b) & 0x20" (pointer_expression "*(byte *)(lVar6 + 0x3b)" (* "*") (cast_expression "(byte *)(lVar6 + 0x3b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x3b)" (( "(") (binary_expression "lVar6 + 0x3b" (identifier "lVar6") (+ "+") (number_literal "0x3b")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (labeled_statement "LAB_001c7fc4:\n    cVar3 = FUN_002d0d40(*(undefined8 *)(param_2 + 8),__s);" (statement_identifier "LAB_001c7fc4") (: ":") (expression_statement "cVar3 = FUN_002d0d40(*(undefined8 *)(param_2 + 8),__s);" (assignment_expression "cVar3 = FUN_002d0d40(*(undefined8 *)(param_2 + 8),__s)" (identifier "cVar3") (= "=") (call_expression "FUN_002d0d40(*(undefined8 *)(param_2 + 8),__s)" (identifier "FUN_002d0d40") (argument_list "(*(undefined8 *)(param_2 + 8),__s)" (( "(") (pointer_expression "*(undefined8 *)(param_2 + 8)" (* "*") (cast_expression "(undefined8 *)(param_2 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")")))) (, ",") (identifier "__s") () ")")))) (; ";"))) (if_statement "if (cVar3 != '\0') {\n      return 0;\n    }" (if "if") (parenthesized_expression "(cVar3 != '\0')" (( "(") (binary_expression "cVar3 != '\0'" (identifier "cVar3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (*(byte *)(lVar6 + 0x38) >> 4 != 2) {\n      return 1;\n    }" (if "if") (parenthesized_expression "(*(byte *)(lVar6 + 0x38) >> 4 != 2)" (( "(") (binary_expression "*(byte *)(lVar6 + 0x38) >> 4 != 2" (binary_expression "*(byte *)(lVar6 + 0x38) >> 4" (pointer_expression "*(byte *)(lVar6 + 0x38)" (* "*") (cast_expression "(byte *)(lVar6 + 0x38)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x38)" (( "(") (binary_expression "lVar6 + 0x38" (identifier "lVar6") (+ "+") (number_literal "0x38")) () ")")))) (>> ">>") (number_literal "4")) (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n      return 1;\n    }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (} "}")))) (expression_statement "lVar6 = *(long *)(PTR_DAT_004ba7c8 + 0x10);" (assignment_expression "lVar6 = *(long *)(PTR_DAT_004ba7c8 + 0x10)" (identifier "lVar6") (= "=") (pointer_expression "*(long *)(PTR_DAT_004ba7c8 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_004ba7c8 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_004ba7c8 + 0x10)" (( "(") (binary_expression "PTR_DAT_004ba7c8 + 0x10" (identifier "PTR_DAT_004ba7c8") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (lVar6 != 0) {\n    if (*(long *)(lVar6 + 0x6bb8) != 0) {\n      local_58[0] = local_48;\n      sVar8 = strlen(__s);\n      FUN_001bc4c0(local_58,__s,__s + sVar8);\n      lVar6 = FUN_001ca390(lVar6 + 0x6ba0,local_58);\n      if (lVar6 != 0) {\n        if (local_58[0] != local_48) {\n          FUN_00338a40();\n        }\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 3;\n        pcVar5 = "-u ";\n        goto LAB_001c8211;\n      }\n      if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }\n    }\n    lVar6 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n    if (lVar6 == 0) goto LAB_001c830c;\n    if (*(long *)(lVar6 + 0x1f28) == 0) {\n      lVar6 = *(long *)(param_2 + 8);\n    }\n    else {\n      local_58[0] = local_48;\n      sVar8 = strlen(__s);\n      FUN_001bc4c0(local_58,__s,__s + sVar8);\n      lVar6 = FUN_001ca390(lVar6 + 0x1f10,local_58);\n      if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }\n      if (lVar6 != 0) {\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 0x18;\n        pcVar5 = "--export-dynamic-symbol ";\n        goto LAB_001c8211;\n      }\n      lVar6 = *(long *)(param_2 + 8);\n    }\n    local_58[0] = local_48;\n    sVar8 = strlen(__s);\n    FUN_001bc4c0(local_58,__s,__s + sVar8);\n    lVar6 = FUN_001ca390(lVar6 + 0x70,local_58);\n    if (local_58[0] != local_48) {\n      FUN_00338a40();\n    }\n    if (lVar6 != 0) {\n      sVar8 = strlen(__s);\n      pcVar5 = (char *)thunk_FUN_00337270(sVar8 + 100);\n      __format = (char *)gettext("script or expression reference to %s");\n      snprintf(pcVar5,sVar8 + 100,__format,__s);\n      sVar8 = strlen(pcVar5);\n      FUN_00340370(param_5,0,*(undefined8 *)(param_5 + 8),pcVar5,sVar8);\n      thunk_FUN_00338a40(pcVar5);\n      return 1;\n    }\n    if (*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) {\n      if (((*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051) != '\0') ||\n          (pcVar5 = (char *)FUN_002a09b0(), pcVar5 == (char *)0x0)) ||\n         (iVar4 = strcmp(__s,pcVar5), iVar4 != 0)) {\n        return 2;\n      }\n      uVar7 = *(undefined8 *)(param_5 + 8);\n      uVar9 = 0xd;\n      pcVar5 = "entry symbol ";\nLAB_001c8211:\n      FUN_00340370(param_5,0,uVar7,pcVar5,uVar9);\n      sVar8 = strlen(__s);\n      if (sVar8 <= 0x7fffffffffffffffU - *(long *)(param_5 + 8)) {\n        FUN_00340cc0(param_5,__s,sVar8);\n        return 1;\n      }\n                    \n      FUN_00377370("basic_string::append");\n    }\n  }" (if "if") (parenthesized_expression "(lVar6 != 0)" (( "(") (binary_expression "lVar6 != 0" (identifier "lVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if (*(long *)(lVar6 + 0x6bb8) != 0) {\n      local_58[0] = local_48;\n      sVar8 = strlen(__s);\n      FUN_001bc4c0(local_58,__s,__s + sVar8);\n      lVar6 = FUN_001ca390(lVar6 + 0x6ba0,local_58);\n      if (lVar6 != 0) {\n        if (local_58[0] != local_48) {\n          FUN_00338a40();\n        }\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 3;\n        pcVar5 = "-u ";\n        goto LAB_001c8211;\n      }\n      if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }\n    }\n    lVar6 = *(long *)(PTR_DAT_004ba7c8 + 0x10);\n    if (lVar6 == 0) goto LAB_001c830c;\n    if (*(long *)(lVar6 + 0x1f28) == 0) {\n      lVar6 = *(long *)(param_2 + 8);\n    }\n    else {\n      local_58[0] = local_48;\n      sVar8 = strlen(__s);\n      FUN_001bc4c0(local_58,__s,__s + sVar8);\n      lVar6 = FUN_001ca390(lVar6 + 0x1f10,local_58);\n      if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }\n      if (lVar6 != 0) {\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 0x18;\n        pcVar5 = "--export-dynamic-symbol ";\n        goto LAB_001c8211;\n      }\n      lVar6 = *(long *)(param_2 + 8);\n    }\n    local_58[0] = local_48;\n    sVar8 = strlen(__s);\n    FUN_001bc4c0(local_58,__s,__s + sVar8);\n    lVar6 = FUN_001ca390(lVar6 + 0x70,local_58);\n    if (local_58[0] != local_48) {\n      FUN_00338a40();\n    }\n    if (lVar6 != 0) {\n      sVar8 = strlen(__s);\n      pcVar5 = (char *)thunk_FUN_00337270(sVar8 + 100);\n      __format = (char *)gettext("script or expression reference to %s");\n      snprintf(pcVar5,sVar8 + 100,__format,__s);\n      sVar8 = strlen(pcVar5);\n      FUN_00340370(param_5,0,*(undefined8 *)(param_5 + 8),pcVar5,sVar8);\n      thunk_FUN_00338a40(pcVar5);\n      return 1;\n    }\n    if (*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) {\n      if (((*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051) != '\0') ||\n          (pcVar5 = (char *)FUN_002a09b0(), pcVar5 == (char *)0x0)) ||\n         (iVar4 = strcmp(__s,pcVar5), iVar4 != 0)) {\n        return 2;\n      }\n      uVar7 = *(undefined8 *)(param_5 + 8);\n      uVar9 = 0xd;\n      pcVar5 = "entry symbol ";\nLAB_001c8211:\n      FUN_00340370(param_5,0,uVar7,pcVar5,uVar9);\n      sVar8 = strlen(__s);\n      if (sVar8 <= 0x7fffffffffffffffU - *(long *)(param_5 + 8)) {\n        FUN_00340cc0(param_5,__s,sVar8);\n        return 1;\n      }\n                    \n      FUN_00377370("basic_string::append");\n    }\n  }" ({ "{") (if_statement "if (*(long *)(lVar6 + 0x6bb8) != 0) {\n      local_58[0] = local_48;\n      sVar8 = strlen(__s);\n      FUN_001bc4c0(local_58,__s,__s + sVar8);\n      lVar6 = FUN_001ca390(lVar6 + 0x6ba0,local_58);\n      if (lVar6 != 0) {\n        if (local_58[0] != local_48) {\n          FUN_00338a40();\n        }\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 3;\n        pcVar5 = "-u ";\n        goto LAB_001c8211;\n      }\n      if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }\n    }" (if "if") (parenthesized_expression "(*(long *)(lVar6 + 0x6bb8) != 0)" (( "(") (binary_expression "*(long *)(lVar6 + 0x6bb8) != 0" (pointer_expression "*(long *)(lVar6 + 0x6bb8)" (* "*") (cast_expression "(long *)(lVar6 + 0x6bb8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x6bb8)" (( "(") (binary_expression "lVar6 + 0x6bb8" (identifier "lVar6") (+ "+") (number_literal "0x6bb8")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      local_58[0] = local_48;\n      sVar8 = strlen(__s);\n      FUN_001bc4c0(local_58,__s,__s + sVar8);\n      lVar6 = FUN_001ca390(lVar6 + 0x6ba0,local_58);\n      if (lVar6 != 0) {\n        if (local_58[0] != local_48) {\n          FUN_00338a40();\n        }\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 3;\n        pcVar5 = "-u ";\n        goto LAB_001c8211;\n      }\n      if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }\n    }" ({ "{") (expression_statement "local_58[0] = local_48;" (assignment_expression "local_58[0] = local_48" (subscript_expression "local_58[0]" (identifier "local_58") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "local_48")) (; ";")) (expression_statement "sVar8 = strlen(__s);" (assignment_expression "sVar8 = strlen(__s)" (identifier "sVar8") (= "=") (call_expression "strlen(__s)" (identifier "strlen") (argument_list "(__s)" (( "(") (identifier "__s") () ")")))) (; ";")) (expression_statement "FUN_001bc4c0(local_58,__s,__s + sVar8);" (call_expression "FUN_001bc4c0(local_58,__s,__s + sVar8)" (identifier "FUN_001bc4c0") (argument_list "(local_58,__s,__s + sVar8)" (( "(") (identifier "local_58") (, ",") (identifier "__s") (, ",") (binary_expression "__s + sVar8" (identifier "__s") (+ "+") (identifier "sVar8")) () ")"))) (; ";")) (expression_statement "lVar6 = FUN_001ca390(lVar6 + 0x6ba0,local_58);" (assignment_expression "lVar6 = FUN_001ca390(lVar6 + 0x6ba0,local_58)" (identifier "lVar6") (= "=") (call_expression "FUN_001ca390(lVar6 + 0x6ba0,local_58)" (identifier "FUN_001ca390") (argument_list "(lVar6 + 0x6ba0,local_58)" (( "(") (binary_expression "lVar6 + 0x6ba0" (identifier "lVar6") (+ "+") (number_literal "0x6ba0")) (, ",") (identifier "local_58") () ")")))) (; ";")) (if_statement "if (lVar6 != 0) {\n        if (local_58[0] != local_48) {\n          FUN_00338a40();\n        }\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 3;\n        pcVar5 = "-u ";\n        goto LAB_001c8211;\n      }" (if "if") (parenthesized_expression "(lVar6 != 0)" (( "(") (binary_expression "lVar6 != 0" (identifier "lVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if (local_58[0] != local_48) {\n          FUN_00338a40();\n        }\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 3;\n        pcVar5 = "-u ";\n        goto LAB_001c8211;\n      }" ({ "{") (if_statement "if (local_58[0] != local_48) {\n          FUN_00338a40();\n        }" (if "if") (parenthesized_expression "(local_58[0] != local_48)" (( "(") (binary_expression "local_58[0] != local_48" (subscript_expression "local_58[0]" (identifier "local_58") ([ "[") (number_literal "0") (] "]")) (!= "!=") (identifier "local_48")) () ")")) (compound_statement "{\n          FUN_00338a40();\n        }" ({ "{") (expression_statement "FUN_00338a40();" (call_expression "FUN_00338a40()" (identifier "FUN_00338a40") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar7 = *(undefined8 *)(param_5 + 8);" (assignment_expression "uVar7 = *(undefined8 *)(param_5 + 8)" (identifier "uVar7") (= "=") (pointer_expression "*(undefined8 *)(param_5 + 8)" (* "*") (cast_expression "(undefined8 *)(param_5 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 8)" (( "(") (binary_expression "param_5 + 8" (identifier "param_5") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar9 = 3;" (assignment_expression "uVar9 = 3" (identifier "uVar9") (= "=") (number_literal "3")) (; ";")) (expression_statement "pcVar5 = "-u ";" (assignment_expression "pcVar5 = "-u "" (identifier "pcVar5") (= "=") (string_literal ""-u "" (" """) (string_content "-u ") (" """))) (; ";")) (goto_statement "goto LAB_001c8211;" (goto "goto") (statement_identifier "LAB_001c8211") (; ";")) (} "}"))) (if_statement "if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }" (if "if") (parenthesized_expression "(local_58[0] != local_48)" (( "(") (binary_expression "local_58[0] != local_48" (subscript_expression "local_58[0]" (identifier "local_58") ([ "[") (number_literal "0") (] "]")) (!= "!=") (identifier "local_48")) () ")")) (compound_statement "{\n        FUN_00338a40();\n      }" ({ "{") (expression_statement "FUN_00338a40();" (call_expression "FUN_00338a40()" (identifier "FUN_00338a40") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "lVar6 = *(long *)(PTR_DAT_004ba7c8 + 0x10);" (assignment_expression "lVar6 = *(long *)(PTR_DAT_004ba7c8 + 0x10)" (identifier "lVar6") (= "=") (pointer_expression "*(long *)(PTR_DAT_004ba7c8 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_004ba7c8 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_004ba7c8 + 0x10)" (( "(") (binary_expression "PTR_DAT_004ba7c8 + 0x10" (identifier "PTR_DAT_004ba7c8") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (lVar6 == 0) goto LAB_001c830c;" (if "if") (parenthesized_expression "(lVar6 == 0)" (( "(") (binary_expression "lVar6 == 0" (identifier "lVar6") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001c830c;" (goto "goto") (statement_identifier "LAB_001c830c") (; ";"))) (if_statement "if (*(long *)(lVar6 + 0x1f28) == 0) {\n      lVar6 = *(long *)(param_2 + 8);\n    }\n    else {\n      local_58[0] = local_48;\n      sVar8 = strlen(__s);\n      FUN_001bc4c0(local_58,__s,__s + sVar8);\n      lVar6 = FUN_001ca390(lVar6 + 0x1f10,local_58);\n      if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }\n      if (lVar6 != 0) {\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 0x18;\n        pcVar5 = "--export-dynamic-symbol ";\n        goto LAB_001c8211;\n      }\n      lVar6 = *(long *)(param_2 + 8);\n    }" (if "if") (parenthesized_expression "(*(long *)(lVar6 + 0x1f28) == 0)" (( "(") (binary_expression "*(long *)(lVar6 + 0x1f28) == 0" (pointer_expression "*(long *)(lVar6 + 0x1f28)" (* "*") (cast_expression "(long *)(lVar6 + 0x1f28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x1f28)" (( "(") (binary_expression "lVar6 + 0x1f28" (identifier "lVar6") (+ "+") (number_literal "0x1f28")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      lVar6 = *(long *)(param_2 + 8);\n    }" ({ "{") (expression_statement "lVar6 = *(long *)(param_2 + 8);" (assignment_expression "lVar6 = *(long *)(param_2 + 8)" (identifier "lVar6") (= "=") (pointer_expression "*(long *)(param_2 + 8)" (* "*") (cast_expression "(long *)(param_2 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      local_58[0] = local_48;\n      sVar8 = strlen(__s);\n      FUN_001bc4c0(local_58,__s,__s + sVar8);\n      lVar6 = FUN_001ca390(lVar6 + 0x1f10,local_58);\n      if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }\n      if (lVar6 != 0) {\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 0x18;\n        pcVar5 = "--export-dynamic-symbol ";\n        goto LAB_001c8211;\n      }\n      lVar6 = *(long *)(param_2 + 8);\n    }" (else "else") (compound_statement "{\n      local_58[0] = local_48;\n      sVar8 = strlen(__s);\n      FUN_001bc4c0(local_58,__s,__s + sVar8);\n      lVar6 = FUN_001ca390(lVar6 + 0x1f10,local_58);\n      if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }\n      if (lVar6 != 0) {\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 0x18;\n        pcVar5 = "--export-dynamic-symbol ";\n        goto LAB_001c8211;\n      }\n      lVar6 = *(long *)(param_2 + 8);\n    }" ({ "{") (expression_statement "local_58[0] = local_48;" (assignment_expression "local_58[0] = local_48" (subscript_expression "local_58[0]" (identifier "local_58") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "local_48")) (; ";")) (expression_statement "sVar8 = strlen(__s);" (assignment_expression "sVar8 = strlen(__s)" (identifier "sVar8") (= "=") (call_expression "strlen(__s)" (identifier "strlen") (argument_list "(__s)" (( "(") (identifier "__s") () ")")))) (; ";")) (expression_statement "FUN_001bc4c0(local_58,__s,__s + sVar8);" (call_expression "FUN_001bc4c0(local_58,__s,__s + sVar8)" (identifier "FUN_001bc4c0") (argument_list "(local_58,__s,__s + sVar8)" (( "(") (identifier "local_58") (, ",") (identifier "__s") (, ",") (binary_expression "__s + sVar8" (identifier "__s") (+ "+") (identifier "sVar8")) () ")"))) (; ";")) (expression_statement "lVar6 = FUN_001ca390(lVar6 + 0x1f10,local_58);" (assignment_expression "lVar6 = FUN_001ca390(lVar6 + 0x1f10,local_58)" (identifier "lVar6") (= "=") (call_expression "FUN_001ca390(lVar6 + 0x1f10,local_58)" (identifier "FUN_001ca390") (argument_list "(lVar6 + 0x1f10,local_58)" (( "(") (binary_expression "lVar6 + 0x1f10" (identifier "lVar6") (+ "+") (number_literal "0x1f10")) (, ",") (identifier "local_58") () ")")))) (; ";")) (if_statement "if (local_58[0] != local_48) {\n        FUN_00338a40();\n      }" (if "if") (parenthesized_expression "(local_58[0] != local_48)" (( "(") (binary_expression "local_58[0] != local_48" (subscript_expression "local_58[0]" (identifier "local_58") ([ "[") (number_literal "0") (] "]")) (!= "!=") (identifier "local_48")) () ")")) (compound_statement "{\n        FUN_00338a40();\n      }" ({ "{") (expression_statement "FUN_00338a40();" (call_expression "FUN_00338a40()" (identifier "FUN_00338a40") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (lVar6 != 0) {\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 0x18;\n        pcVar5 = "--export-dynamic-symbol ";\n        goto LAB_001c8211;\n      }" (if "if") (parenthesized_expression "(lVar6 != 0)" (( "(") (binary_expression "lVar6 != 0" (identifier "lVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar7 = *(undefined8 *)(param_5 + 8);\n        uVar9 = 0x18;\n        pcVar5 = "--export-dynamic-symbol ";\n        goto LAB_001c8211;\n      }" ({ "{") (expression_statement "uVar7 = *(undefined8 *)(param_5 + 8);" (assignment_expression "uVar7 = *(undefined8 *)(param_5 + 8)" (identifier "uVar7") (= "=") (pointer_expression "*(undefined8 *)(param_5 + 8)" (* "*") (cast_expression "(undefined8 *)(param_5 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 8)" (( "(") (binary_expression "param_5 + 8" (identifier "param_5") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar9 = 0x18;" (assignment_expression "uVar9 = 0x18" (identifier "uVar9") (= "=") (number_literal "0x18")) (; ";")) (expression_statement "pcVar5 = "--export-dynamic-symbol ";" (assignment_expression "pcVar5 = "--export-dynamic-symbol "" (identifier "pcVar5") (= "=") (string_literal ""--export-dynamic-symbol "" (" """) (string_content "--export-dynamic-symbol ") (" """))) (; ";")) (goto_statement "goto LAB_001c8211;" (goto "goto") (statement_identifier "LAB_001c8211") (; ";")) (} "}"))) (expression_statement "lVar6 = *(long *)(param_2 + 8);" (assignment_expression "lVar6 = *(long *)(param_2 + 8)" (identifier "lVar6") (= "=") (pointer_expression "*(long *)(param_2 + 8)" (* "*") (cast_expression "(long *)(param_2 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (} "}")))) (expression_statement "local_58[0] = local_48;" (assignment_expression "local_58[0] = local_48" (subscript_expression "local_58[0]" (identifier "local_58") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "local_48")) (; ";")) (expression_statement "sVar8 = strlen(__s);" (assignment_expression "sVar8 = strlen(__s)" (identifier "sVar8") (= "=") (call_expression "strlen(__s)" (identifier "strlen") (argument_list "(__s)" (( "(") (identifier "__s") () ")")))) (; ";")) (expression_statement "FUN_001bc4c0(local_58,__s,__s + sVar8);" (call_expression "FUN_001bc4c0(local_58,__s,__s + sVar8)" (identifier "FUN_001bc4c0") (argument_list "(local_58,__s,__s + sVar8)" (( "(") (identifier "local_58") (, ",") (identifier "__s") (, ",") (binary_expression "__s + sVar8" (identifier "__s") (+ "+") (identifier "sVar8")) () ")"))) (; ";")) (expression_statement "lVar6 = FUN_001ca390(lVar6 + 0x70,local_58);" (assignment_expression "lVar6 = FUN_001ca390(lVar6 + 0x70,local_58)" (identifier "lVar6") (= "=") (call_expression "FUN_001ca390(lVar6 + 0x70,local_58)" (identifier "FUN_001ca390") (argument_list "(lVar6 + 0x70,local_58)" (( "(") (binary_expression "lVar6 + 0x70" (identifier "lVar6") (+ "+") (number_literal "0x70")) (, ",") (identifier "local_58") () ")")))) (; ";")) (if_statement "if (local_58[0] != local_48) {\n      FUN_00338a40();\n    }" (if "if") (parenthesized_expression "(local_58[0] != local_48)" (( "(") (binary_expression "local_58[0] != local_48" (subscript_expression "local_58[0]" (identifier "local_58") ([ "[") (number_literal "0") (] "]")) (!= "!=") (identifier "local_48")) () ")")) (compound_statement "{\n      FUN_00338a40();\n    }" ({ "{") (expression_statement "FUN_00338a40();" (call_expression "FUN_00338a40()" (identifier "FUN_00338a40") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (lVar6 != 0) {\n      sVar8 = strlen(__s);\n      pcVar5 = (char *)thunk_FUN_00337270(sVar8 + 100);\n      __format = (char *)gettext("script or expression reference to %s");\n      snprintf(pcVar5,sVar8 + 100,__format,__s);\n      sVar8 = strlen(pcVar5);\n      FUN_00340370(param_5,0,*(undefined8 *)(param_5 + 8),pcVar5,sVar8);\n      thunk_FUN_00338a40(pcVar5);\n      return 1;\n    }" (if "if") (parenthesized_expression "(lVar6 != 0)" (( "(") (binary_expression "lVar6 != 0" (identifier "lVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      sVar8 = strlen(__s);\n      pcVar5 = (char *)thunk_FUN_00337270(sVar8 + 100);\n      __format = (char *)gettext("script or expression reference to %s");\n      snprintf(pcVar5,sVar8 + 100,__format,__s);\n      sVar8 = strlen(pcVar5);\n      FUN_00340370(param_5,0,*(undefined8 *)(param_5 + 8),pcVar5,sVar8);\n      thunk_FUN_00338a40(pcVar5);\n      return 1;\n    }" ({ "{") (expression_statement "sVar8 = strlen(__s);" (assignment_expression "sVar8 = strlen(__s)" (identifier "sVar8") (= "=") (call_expression "strlen(__s)" (identifier "strlen") (argument_list "(__s)" (( "(") (identifier "__s") () ")")))) (; ";")) (expression_statement "pcVar5 = (char *)thunk_FUN_00337270(sVar8 + 100);" (assignment_expression "pcVar5 = (char *)thunk_FUN_00337270(sVar8 + 100)" (identifier "pcVar5") (= "=") (cast_expression "(char *)thunk_FUN_00337270(sVar8 + 100)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "thunk_FUN_00337270(sVar8 + 100)" (identifier "thunk_FUN_00337270") (argument_list "(sVar8 + 100)" (( "(") (binary_expression "sVar8 + 100" (identifier "sVar8") (+ "+") (number_literal "100")) () ")"))))) (; ";")) (expression_statement "__format = (char *)gettext("script or expression reference to %s");" (assignment_expression "__format = (char *)gettext("script or expression reference to %s")" (identifier "__format") (= "=") (cast_expression "(char *)gettext("script or expression reference to %s")" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "gettext("script or expression reference to %s")" (identifier "gettext") (argument_list "("script or expression reference to %s")" (( "(") (string_literal ""script or expression reference to %s"" (" """) (string_content "script or expression reference to %s") (" """)) () ")"))))) (; ";")) (expression_statement "snprintf(pcVar5,sVar8 + 100,__format,__s);" (call_expression "snprintf(pcVar5,sVar8 + 100,__format,__s)" (identifier "snprintf") (argument_list "(pcVar5,sVar8 + 100,__format,__s)" (( "(") (identifier "pcVar5") (, ",") (binary_expression "sVar8 + 100" (identifier "sVar8") (+ "+") (number_literal "100")) (, ",") (identifier "__format") (, ",") (identifier "__s") () ")"))) (; ";")) (expression_statement "sVar8 = strlen(pcVar5);" (assignment_expression "sVar8 = strlen(pcVar5)" (identifier "sVar8") (= "=") (call_expression "strlen(pcVar5)" (identifier "strlen") (argument_list "(pcVar5)" (( "(") (identifier "pcVar5") () ")")))) (; ";")) (expression_statement "FUN_00340370(param_5,0,*(undefined8 *)(param_5 + 8),pcVar5,sVar8);" (call_expression "FUN_00340370(param_5,0,*(undefined8 *)(param_5 + 8),pcVar5,sVar8)" (identifier "FUN_00340370") (argument_list "(param_5,0,*(undefined8 *)(param_5 + 8),pcVar5,sVar8)" (( "(") (identifier "param_5") (, ",") (number_literal "0") (, ",") (pointer_expression "*(undefined8 *)(param_5 + 8)" (* "*") (cast_expression "(undefined8 *)(param_5 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 8)" (( "(") (binary_expression "param_5 + 8" (identifier "param_5") (+ "+") (number_literal "8")) () ")")))) (, ",") (identifier "pcVar5") (, ",") (identifier "sVar8") () ")"))) (; ";")) (expression_statement "thunk_FUN_00338a40(pcVar5);" (call_expression "thunk_FUN_00338a40(pcVar5)" (identifier "thunk_FUN_00338a40") (argument_list "(pcVar5)" (( "(") (identifier "pcVar5") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if (*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) {\n      if (((*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051) != '\0') ||\n          (pcVar5 = (char *)FUN_002a09b0(), pcVar5 == (char *)0x0)) ||\n         (iVar4 = strcmp(__s,pcVar5), iVar4 != 0)) {\n        return 2;\n      }\n      uVar7 = *(undefined8 *)(param_5 + 8);\n      uVar9 = 0xd;\n      pcVar5 = "entry symbol ";\nLAB_001c8211:\n      FUN_00340370(param_5,0,uVar7,pcVar5,uVar9);\n      sVar8 = strlen(__s);\n      if (sVar8 <= 0x7fffffffffffffffU - *(long *)(param_5 + 8)) {\n        FUN_00340cc0(param_5,__s,sVar8);\n        return 1;\n      }\n                    \n      FUN_00377370("basic_string::append");\n    }" (if "if") (parenthesized_expression "(*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0)" (( "(") (binary_expression "*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0" (pointer_expression "*(long *)(PTR_DAT_004ba7c8 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_004ba7c8 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_004ba7c8 + 0x10)" (( "(") (binary_expression "PTR_DAT_004ba7c8 + 0x10" (identifier "PTR_DAT_004ba7c8") (+ "+") (number_literal "0x10")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (((*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051) != '\0') ||\n          (pcVar5 = (char *)FUN_002a09b0(), pcVar5 == (char *)0x0)) ||\n         (iVar4 = strcmp(__s,pcVar5), iVar4 != 0)) {\n        return 2;\n      }\n      uVar7 = *(undefined8 *)(param_5 + 8);\n      uVar9 = 0xd;\n      pcVar5 = "entry symbol ";\nLAB_001c8211:\n      FUN_00340370(param_5,0,uVar7,pcVar5,uVar9);\n      sVar8 = strlen(__s);\n      if (sVar8 <= 0x7fffffffffffffffU - *(long *)(param_5 + 8)) {\n        FUN_00340cc0(param_5,__s,sVar8);\n        return 1;\n      }\n                    \n      FUN_00377370("basic_string::append");\n    }" ({ "{") (if_statement "if (((*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051) != '\0') ||\n          (pcVar5 = (char *)FUN_002a09b0(), pcVar5 == (char *)0x0)) ||\n         (iVar4 = strcmp(__s,pcVar5), iVar4 != 0)) {\n        return 2;\n      }" (if "if") (parenthesized_expression "(((*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051) != '\0') ||\n          (pcVar5 = (char *)FUN_002a09b0(), pcVar5 == (char *)0x0)) ||\n         (iVar4 = strcmp(__s,pcVar5), iVar4 != 0))" (( "(") (binary_expression "((*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051) != '\0') ||\n          (pcVar5 = (char *)FUN_002a09b0(), pcVar5 == (char *)0x0)) ||\n         (iVar4 = strcmp(__s,pcVar5), iVar4 != 0)" (parenthesized_expression "((*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051) != '\0') ||\n          (pcVar5 = (char *)FUN_002a09b0(), pcVar5 == (char *)0x0))" (( "(") (binary_expression "(*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051) != '\0') ||\n          (pcVar5 = (char *)FUN_002a09b0(), pcVar5 == (char *)0x0)" (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051) != '\0')" (( "(") (binary_expression "*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051) != '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051)" (* "*") (cast_expression "(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051)" (( "(") (binary_expression "*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051" (pointer_expression "*(long *)(PTR_DAT_004ba7c8 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_004ba7c8 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_004ba7c8 + 0x10)" (( "(") (binary_expression "PTR_DAT_004ba7c8 + 0x10" (identifier "PTR_DAT_004ba7c8") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x5051")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(pcVar5 = (char *)FUN_002a09b0(), pcVar5 == (char *)0x0)" (( "(") (comma_expression "pcVar5 = (char *)FUN_002a09b0(), pcVar5 == (char *)0x0" (assignment_expression "pcVar5 = (char *)FUN_002a09b0()" (identifier "pcVar5") (= "=") (cast_expression "(char *)FUN_002a09b0()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_002a09b0()" (identifier "FUN_002a09b0") (argument_list "()" (( "(") () ")"))))) (, ",") (binary_expression "pcVar5 == (char *)0x0" (identifier "pcVar5") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(iVar4 = strcmp(__s,pcVar5), iVar4 != 0)" (( "(") (comma_expression "iVar4 = strcmp(__s,pcVar5), iVar4 != 0" (assignment_expression "iVar4 = strcmp(__s,pcVar5)" (identifier "iVar4") (= "=") (call_expression "strcmp(__s,pcVar5)" (identifier "strcmp") (argument_list "(__s,pcVar5)" (( "(") (identifier "__s") (, ",") (identifier "pcVar5") () ")")))) (, ",") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        return 2;\n      }" ({ "{") (return_statement "return 2;" (return "return") (number_literal "2") (; ";")) (} "}"))) (expression_statement "uVar7 = *(undefined8 *)(param_5 + 8);" (assignment_expression "uVar7 = *(undefined8 *)(param_5 + 8)" (identifier "uVar7") (= "=") (pointer_expression "*(undefined8 *)(param_5 + 8)" (* "*") (cast_expression "(undefined8 *)(param_5 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 8)" (( "(") (binary_expression "param_5 + 8" (identifier "param_5") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar9 = 0xd;" (assignment_expression "uVar9 = 0xd" (identifier "uVar9") (= "=") (number_literal "0xd")) (; ";")) (expression_statement "pcVar5 = "entry symbol ";" (assignment_expression "pcVar5 = "entry symbol "" (identifier "pcVar5") (= "=") (string_literal ""entry symbol "" (" """) (string_content "entry symbol ") (" """))) (; ";")) (labeled_statement "LAB_001c8211:\n      FUN_00340370(param_5,0,uVar7,pcVar5,uVar9);" (statement_identifier "LAB_001c8211") (: ":") (expression_statement "FUN_00340370(param_5,0,uVar7,pcVar5,uVar9);" (call_expression "FUN_00340370(param_5,0,uVar7,pcVar5,uVar9)" (identifier "FUN_00340370") (argument_list "(param_5,0,uVar7,pcVar5,uVar9)" (( "(") (identifier "param_5") (, ",") (number_literal "0") (, ",") (identifier "uVar7") (, ",") (identifier "pcVar5") (, ",") (identifier "uVar9") () ")"))) (; ";"))) (expression_statement "sVar8 = strlen(__s);" (assignment_expression "sVar8 = strlen(__s)" (identifier "sVar8") (= "=") (call_expression "strlen(__s)" (identifier "strlen") (argument_list "(__s)" (( "(") (identifier "__s") () ")")))) (; ";")) (if_statement "if (sVar8 <= 0x7fffffffffffffffU - *(long *)(param_5 + 8)) {\n        FUN_00340cc0(param_5,__s,sVar8);\n        return 1;\n      }" (if "if") (parenthesized_expression "(sVar8 <= 0x7fffffffffffffffU - *(long *)(param_5 + 8))" (( "(") (binary_expression "sVar8 <= 0x7fffffffffffffffU - *(long *)(param_5 + 8)" (identifier "sVar8") (<= "<=") (binary_expression "0x7fffffffffffffffU - *(long *)(param_5 + 8)" (number_literal "0x7fffffffffffffffU") (- "-") (pointer_expression "*(long *)(param_5 + 8)" (* "*") (cast_expression "(long *)(param_5 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 8)" (( "(") (binary_expression "param_5 + 8" (identifier "param_5") (+ "+") (number_literal "8")) () ")")))))) () ")")) (compound_statement "{\n        FUN_00340cc0(param_5,__s,sVar8);\n        return 1;\n      }" ({ "{") (expression_statement "FUN_00340cc0(param_5,__s,sVar8);" (call_expression "FUN_00340cc0(param_5,__s,sVar8)" (identifier "FUN_00340cc0") (argument_list "(param_5,__s,sVar8)" (( "(") (identifier "param_5") (, ",") (identifier "__s") (, ",") (identifier "sVar8") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "FUN_00377370("basic_string::append");" (call_expression "FUN_00377370("basic_string::append")" (identifier "FUN_00377370") (argument_list "("basic_string::append")" (( "(") (string_literal ""basic_string::append"" (" """) (string_content "basic_string::append") (" """)) () ")"))) (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_001c830c:\n                    \n  FUN_001e9890("../../gold/parameters.h",0x5c,"options");" (statement_identifier "LAB_001c830c") (: ":") (expression_statement "FUN_001e9890("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_001e9890("../../gold/parameters.h",0x5c,"options")" (identifier "FUN_001e9890") (argument_list "("../../gold/parameters.h",0x5c,"options")" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) () ")"))) (; ";"))) (} "}")))

/* WARNING: Type propagation algorithm not settling */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */

type_1
gold::Library_base::function_1
          (type_2 *symtab,type_3 *layout,char *sym_name,type_4 **symp,type_5 *why,
          char **tmpbufp,size_t *tmpbuflen)

{
  size_t var_12;
  anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
  *var_5;
  type_6 *var_16;
  type_7 var_10;
  bool bVar4;
  int var_32;
  char *var_7;
  type_4 *var_9;
  char *var_20;
  type_8 cVar8;
  char *__format;
  type_9 uVar9;
  size_t var_11;
  type_9 uVar11;
  type_10 *pSVar12;
  type_11 local_58;
  
  var_7 = var_6(sym_name,0x40);
  var_20 = sym_name;
  if (var_7 == (char *)0x0) {
LAB_001c7f12:
    var_9 = type_2::var_8(symtab,var_20,var_7);
    *symp = var_9;
joined_r0x001c805a:
    if (var_9 != (type_4 *)0x0) {
      var_10 = var_9->field_0x3a & 7;
      if (var_10 == 0) goto LAB_001c7f3f;
LAB_001c7fc0:
      if (var_10 != 4) {
        return SHOULD_INCLUDE_NO;
      }
      goto LAB_001c7fc4;
    }
  }
  else {
    var_11 = (long)var_7 - (long)sym_name;
    var_20 = *tmpbufp;
    var_12 = var_11 + 1;
    if (*tmpbuflen < var_12) {
      var_20 = (char *)var_13(var_20,var_12);
      *tmpbufp = var_20;
      *tmpbuflen = var_12;
    }
    var_14(var_20,sym_name,var_11);
    var_20[var_11] = '\0';
    if (var_7[1] != '@') {
      var_7 = var_7 + 1;
      goto LAB_001c7f12;
    }
    var_9 = type_2::var_8(symtab,var_20,var_7 + 2);
    if (var_9 == (type_4 *)0x0) {
LAB_001c8040:
      var_9 = type_2::var_8(symtab,var_20,(char *)0x0);
      *symp = var_9;
      goto joined_r0x001c805a;
    }
    var_10 = var_9->field_0x3a & 7;
    if ((var_9->field_0x3a & 7) != 0) {
      if (var_10 == 4) goto LAB_001c7f9d;
      goto LAB_001c8040;
    }
    if (((var_9->u2_).shndx != 0) || ((var_9->field_0x3b & 0x20) == 0)) goto LAB_001c8040;
LAB_001c7f9d:
    if ((type_7)var_9->field_0x38 >> 4 == 2) goto LAB_001c8040;
    *symp = var_9;
    if (var_10 != 0) goto LAB_001c7fc0;
LAB_001c7f3f:
    if ((var_9->u2_).shndx != 0) {
      return SHOULD_INCLUDE_NO;
    }
    if ((var_9->field_0x3b & 0x20) == 0) {
      return SHOULD_INCLUDE_NO;
    }
LAB_001c7fc4:
    bVar4 = type_10::var_15(layout->script_options_,var_20);
    if (bVar4) {
      return SHOULD_INCLUDE_NO;
    }
    if ((type_7)var_9->field_0x38 >> 4 != 2) {
      return SHOULD_INCLUDE_YES;
    }
  }
  var_16 = parameters->options_;
  if (var_16 != (type_6 *)0x0) {
    if ((var_16->undefined_).value._M_h._M_element_count != 0) {
      var_5 = &local_58.field_2;
      local_58._M_dataplus._M_p = (type_12)var_5;
      var_11 = var_17(var_20);
      std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>::
      var_18<var_19*>(&local_58,var_20,var_20 + var_11);
      cVar8 = std::
              _Hashtable<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>,_std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>,_std::var_1<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_3>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_3>,_std::hash<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_3>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_21<true,var_22,var_22>var_3>
              ::var_23((_Hashtable<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>,_std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>,_std::var_1<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_3>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_3>,_std::hash<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_3>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_21<true,var_22,var_22>var_3>
                      *)&(var_16->undefined_).value,&local_58);
      if (cVar8.
          super__Node_iterator_base<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>,var_22>
          ._M_cur != (type_13 *)0x0) {
        if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
             *)local_58._M_dataplus._M_p != var_5) {
          var_24(local_58._M_dataplus._M_p);
        }
        uVar9 = why->_M_string_length;
        uVar11 = 3;
        var_7 = "-u ";
        goto LAB_001c8211;
      }
      if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
           *)local_58._M_dataplus._M_p != var_5) {
        var_24(local_58._M_dataplus._M_p);
      }
    }
    var_16 = parameters->options_;
    if (var_16 == (type_6 *)0x0) goto LAB_001c830c;
    if ((var_16->export_dynamic_symbol_).value._M_h._M_element_count == 0) {
      pSVar12 = layout->script_options_;
    }
    else {
      local_58._M_dataplus._M_p = (type_12)&local_58.field_2;
      var_11 = var_17(var_20);
      std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>::
      var_18<var_19*>(&local_58,var_20,var_20 + var_11);
      cVar8 = std::
              _Hashtable<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>,_std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>,_std::var_1<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_3>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_3>,_std::hash<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_3>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_21<true,var_22,var_22>var_3>
              ::var_23((_Hashtable<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>,_std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>,_std::var_1<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_3>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_3>,_std::hash<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_3>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_21<true,var_22,var_22>var_3>
                      *)&(var_16->export_dynamic_symbol_).value,&local_58);
      if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
           *)local_58._M_dataplus._M_p != &local_58.field_2) {
        var_24(local_58._M_dataplus._M_p);
      }
      if (cVar8.
          super__Node_iterator_base<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>,var_22>
          ._M_cur != (type_13 *)0x0) {
        uVar9 = why->_M_string_length;
        uVar11 = 0x18;
        var_7 = "--export-dynamic-symbol ";
        goto LAB_001c8211;
      }
      pSVar12 = layout->script_options_;
    }
    local_58._M_dataplus._M_p = (type_12)&local_58.field_2;
    var_11 = var_17(var_20);
    std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>::
    var_18<var_19*>(&local_58,var_20,var_20 + var_11);
    cVar8 = std::
            _Hashtable<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>,_std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>,_std::var_1<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_3>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_3>,_std::hash<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_3>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_21<true,var_22,var_22>var_3>
            ::var_23((_Hashtable<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>,_std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>,_std::var_1<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_3>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_3>,_std::hash<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_3>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_21<true,var_22,var_22>var_3>
                    *)&pSVar12->symbol_references_,&local_58);
    if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
         *)local_58._M_dataplus._M_p != &local_58.field_2) {
      var_24(local_58._M_dataplus._M_p);
    }
    if (cVar8.
        super__Node_iterator_base<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>,var_22>
        ._M_cur != (type_13 *)0x0) {
      var_11 = var_17(var_20);
      var_7 = (char *)var_25(var_11 + 100);
      __format = (char *)var_26("script or expression reference to %s");
      var_27(var_7,var_11 + 100,__format,var_20);
      var_11 = var_17(var_7);
      std::string::var_28((type_5 *)why,0,why->_M_string_length,var_7,var_11);
      var_29(var_7);
      return SHOULD_INCLUDE_YES;
    }
    if (parameters->options_ != (type_6 *)0x0) {
      if ((((parameters->options_->relocatable_).value != false) ||
          (var_7 = Parameters::var_30(parameters), var_7 == (char *)0x0)) ||
         (var_32 = var_31(var_20,var_7), var_32 != 0)) {
        return SHOULD_INCLUDE_UNKNOWN;
      }
      uVar9 = why->_M_string_length;
      uVar11 = 0xd;
      var_7 = "entry symbol ";
LAB_001c8211:
      std::string::var_28((type_5 *)why,0,uVar9,var_7,uVar11);
      var_11 = var_17(var_20);
      if (var_11 <= 0x7fffffffffffffff - why->_M_string_length) {
        std::string::var_33((type_5 *)why,var_20,var_11);
        return SHOULD_INCLUDE_YES;
      }
                    /* WARNING: Subroutine does not return */
      std::var_34("basic_string::append");
    }
  }
LAB_001c830c:
                    /* WARNING: Subroutine does not return */
  var_35("../../gold/parameters.h",0x5c,"options");
}


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

undefined8
MASKED(undefined8 param_1,long param_2,char *param_3,long *param_4,long param_5,
            undefined8 *param_6,ulong *param_7)

{
  ulong uVar1;
  byte bVar2;
  char cVar3;
  int iVar4;
  char *pcVar5;
  long lVar6;
  char *__s;
  char *__format;
  undefined8 uVar7;
  size_t sVar8;
  undefined8 uVar9;
  undefined1 *local_58 [2];
  undefined1 local_48 [24];
  
  pcVar5 = strchr(param_3,0x40);
  __s = param_3;
  if (pcVar5 == (char *)0x0) {
LAB_001c7f12:
    lVar6 = FUN_002df9a0(param_1,__s,pcVar5);
    *param_4 = lVar6;
joined_r0x001c805a:
    if (lVar6 != 0) {
      bVar2 = *(byte *)(lVar6 + 0x3a) & 7;
      if (bVar2 == 0) goto LAB_001c7f3f;
LAB_001c7fc0:
      if (bVar2 != 4) {
        return 0;
      }
      goto LAB_001c7fc4;
    }
  }
  else {
    sVar8 = (long)pcVar5 - (long)param_3;
    __s = (char *)*param_6;
    uVar1 = sVar8 + 1;
    if (*param_7 < uVar1) {
      __s = (char *)FUN_00336eb0(__s,uVar1);
      *param_6 = __s;
      *param_7 = uVar1;
    }
    memcpy(__s,param_3,sVar8);
    __s[sVar8] = '\0';
    if (pcVar5[1] != '@') {
      pcVar5 = pcVar5 + 1;
      goto LAB_001c7f12;
    }
    lVar6 = FUN_002df9a0(param_1,__s,pcVar5 + 2);
    if (lVar6 == 0) {
LAB_001c8040:
      lVar6 = FUN_002df9a0(param_1,__s,0);
      *param_4 = lVar6;
      goto joined_r0x001c805a;
    }
    bVar2 = *(byte *)(lVar6 + 0x3a) & 7;
    if ((*(byte *)(lVar6 + 0x3a) & 7) != 0) {
      if (bVar2 == 4) goto LAB_001c7f9d;
      goto LAB_001c8040;
    }
    if ((*(int *)(lVar6 + 0x18) != 0) || ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0)) goto LAB_001c8040;
LAB_001c7f9d:
    if (*(byte *)(lVar6 + 0x38) >> 4 == 2) goto LAB_001c8040;
    *param_4 = lVar6;
    if (bVar2 != 0) goto LAB_001c7fc0;
LAB_001c7f3f:
    if (*(int *)(lVar6 + 0x18) != 0) {
      return 0;
    }
    if ((*(byte *)(lVar6 + 0x3b) & 0x20) == 0) {
      return 0;
    }
LAB_001c7fc4:
    cVar3 = FUN_002d0d40(*(undefined8 *)(param_2 + 8),__s);
    if (cVar3 != '\0') {
      return 0;
    }
    if (*(byte *)(lVar6 + 0x38) >> 4 != 2) {
      return 1;
    }
  }
  lVar6 = *(long *)(PTR_DAT_004ba7c8 + 0x10);
  if (lVar6 != 0) {
    if (*(long *)(lVar6 + 0x6bb8) != 0) {
      local_58[0] = local_48;
      sVar8 = strlen(__s);
      FUN_001bc4c0(local_58,__s,__s + sVar8);
      lVar6 = FUN_001ca390(lVar6 + 0x6ba0,local_58);
      if (lVar6 != 0) {
        if (local_58[0] != local_48) {
          FUN_00338a40();
        }
        uVar7 = *(undefined8 *)(param_5 + 8);
        uVar9 = 3;
        pcVar5 = "-u ";
        goto LAB_001c8211;
      }
      if (local_58[0] != local_48) {
        FUN_00338a40();
      }
    }
    lVar6 = *(long *)(PTR_DAT_004ba7c8 + 0x10);
    if (lVar6 == 0) goto LAB_001c830c;
    if (*(long *)(lVar6 + 0x1f28) == 0) {
      lVar6 = *(long *)(param_2 + 8);
    }
    else {
      local_58[0] = local_48;
      sVar8 = strlen(__s);
      FUN_001bc4c0(local_58,__s,__s + sVar8);
      lVar6 = FUN_001ca390(lVar6 + 0x1f10,local_58);
      if (local_58[0] != local_48) {
        FUN_00338a40();
      }
      if (lVar6 != 0) {
        uVar7 = *(undefined8 *)(param_5 + 8);
        uVar9 = 0x18;
        pcVar5 = "--export-dynamic-symbol ";
        goto LAB_001c8211;
      }
      lVar6 = *(long *)(param_2 + 8);
    }
    local_58[0] = local_48;
    sVar8 = strlen(__s);
    FUN_001bc4c0(local_58,__s,__s + sVar8);
    lVar6 = FUN_001ca390(lVar6 + 0x70,local_58);
    if (local_58[0] != local_48) {
      FUN_00338a40();
    }
    if (lVar6 != 0) {
      sVar8 = strlen(__s);
      pcVar5 = (char *)thunk_FUN_00337270(sVar8 + 100);
      __format = (char *)gettext("script or expression reference to %s");
      snprintf(pcVar5,sVar8 + 100,__format,__s);
      sVar8 = strlen(pcVar5);
      FUN_00340370(param_5,0,*(undefined8 *)(param_5 + 8),pcVar5,sVar8);
      thunk_FUN_00338a40(pcVar5);
      return 1;
    }
    if (*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) {
      if (((*(char *)(*(long *)(PTR_DAT_004ba7c8 + 0x10) + 0x5051) != '\0') ||
          (pcVar5 = (char *)FUN_002a09b0(), pcVar5 == (char *)0x0)) ||
         (iVar4 = strcmp(__s,pcVar5), iVar4 != 0)) {
        return 2;
      }
      uVar7 = *(undefined8 *)(param_5 + 8);
      uVar9 = 0xd;
      pcVar5 = "entry symbol ";
LAB_001c8211:
      FUN_00340370(param_5,0,uVar7,pcVar5,uVar9);
      sVar8 = strlen(__s);
      if (sVar8 <= 0x7fffffffffffffffU - *(long *)(param_5 + 8)) {
        FUN_00340cc0(param_5,__s,sVar8);
        return 1;
      }
                    /* WARNING: Subroutine does not return */
      FUN_00377370("basic_string::append");
    }
  }
LAB_001c830c:
                    /* WARNING: Subroutine does not return */
  FUN_001e9890("../../gold/parameters.h",0x5c,"options");
}

