
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* DWARF original prototype: void check_dynamic_dependencies(Input_objects * this) */

void __thiscall gold::Input_objects::check_dynamic_dependencies(Input_objects *this)

{
  char cVar1;
  General_options *pGVar2;
  pointer pcVar3;
  pointer pcVar4;
  uint __code;
  __node_base *p_Var5;
  char *format;
  key_type *__k;
  Dynobj *pDVar6;
  pointer local_2c;
  char *local_24;
  
  cVar1 = '\0';
  local_2c = (this->dynobj_list_).super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>.
             _M_impl._M_start;
  if (local_2c !=
      (this->dynobj_list_).super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>._M_impl
      ._M_finish) {
    do {
      pDVar6 = *local_2c;
      __k = (pDVar6->needed_).
            super__Vector_base<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>_>_>_>
            ._M_impl._M_start;
      if (__k != (pDVar6->needed_).
                 super__Vector_base<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>_>_>_>
                 ._M_impl._M_finish) {
        do {
          __code = std::_Hash_bytes((__k->_M_dataplus)._M_p,__k->_M_string_length,0xc70f6907);
          p_Var5 = std::
                   _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>_>,_std::__detail::_Select1st,_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,_false,_true>_>
                   ::_M_find_before_node
                             ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>_>,_std::__detail::_Select1st,_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,_false,_true>_>
                               *)&this->sonames_,__code % (this->sonames_)._M_h._M_bucket_count,__k,
                              __code);
          if ((p_Var5 == (__node_base *)0x0) || (p_Var5->_M_nxt == (_Hash_node_base *)0x0)) {
            pDVar6 = *local_2c;
            if (pDVar6->unknown_needed_ != UNKNOWN_NEEDED_UNSET) goto LAB_000bfd4c;
            pDVar6->unknown_needed_ = UNKNOWN_NEEDED_TRUE;
            if (cVar1 == '\0') {
              pGVar2 = parameters->options_;
              if (pGVar2 == (General_options *)0x0) {
                    /* WARNING: Subroutine does not return */
                do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
              }
              if ((pGVar2->copy_dt_needed_entries_).value == false) {
                cVar1 = (pGVar2->add_needed_).value;
                if ((bool)cVar1 == false) goto LAB_000bfd08;
                local_24 = "--add-needed";
              }
              else {
                local_24 = "--copy-dt-needed-entries";
              }
              pcVar3 = (pDVar6->super_Object).name_._M_dataplus._M_p;
              pcVar4 = (__k->_M_dataplus)._M_p;
              format = (char *)gettext("%s is not supported but is required for %s in %s");
              gold_error(format,local_24,pcVar4,pcVar3);
            }
            cVar1 = '\x01';
            goto LAB_000bfd08;
          }
          __k = __k + 1;
        } while ((pDVar6->needed_).
                 super__Vector_base<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>_>_>_>
                 ._M_impl._M_finish != __k);
        pDVar6 = *local_2c;
      }
      if (pDVar6->unknown_needed_ != UNKNOWN_NEEDED_UNSET) {
LAB_000bfd4c:
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");
      }
      pDVar6->unknown_needed_ = UNKNOWN_NEEDED_FALSE;
LAB_000bfd08:
      local_2c = local_2c + 1;
    } while ((this->dynobj_list_).super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>.
             _M_impl._M_finish != local_2c);
  }
  return;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void FUN_000bfbe0(int param_1)

{
  char cVar1;
  int iVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  uint uVar5;
  int *piVar6;
  undefined4 uVar7;
  undefined4 *puVar8;
  int iVar9;
  int *local_2c;
  char *local_24;
  
  cVar1 = '\0';
  local_2c = *(int **)(param_1 + 0xc);
  if (local_2c != *(int **)(param_1 + 0x10)) {
    do {
      iVar9 = *local_2c;
      puVar8 = *(undefined4 **)(iVar9 + 0x50);
      if (puVar8 != *(undefined4 **)(iVar9 + 0x54)) {
        do {
          uVar5 = FUN_001aa970(*puVar8,puVar8[1],0xc70f6907);
          piVar6 = (int *)FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5
                                      );
          if ((piVar6 == (int *)0x0) || (*piVar6 == 0)) {
            iVar9 = *local_2c;
            if (*(int *)(iVar9 + 0x5c) != 0) goto LAB_000bfd4c;
            *(undefined4 *)(iVar9 + 0x5c) = 1;
            if (cVar1 == '\0') {
              iVar2 = *(int *)(DAT_0033f2f0 + 8);
              if (iVar2 == 0) {
                    /* WARNING: Subroutine does not return */
                FUN_0008b620("../../gold/parameters.h",0x5c,"options");
              }
              if (*(char *)(iVar2 + 0x9dd) == '\0') {
                cVar1 = *(char *)(iVar2 + 0x109);
                if (cVar1 == '\0') goto LAB_000bfd08;
                local_24 = "--add-needed";
              }
              else {
                local_24 = "--copy-dt-needed-entries";
              }
              uVar3 = *(undefined4 *)(iVar9 + 4);
              uVar4 = *puVar8;
              uVar7 = gettext("%s is not supported but is required for %s in %s");
              FUN_000828d0(uVar7,local_24,uVar4,uVar3);
            }
            cVar1 = '\x01';
            goto LAB_000bfd08;
          }
          puVar8 = puVar8 + 6;
        } while (*(undefined4 **)(iVar9 + 0x54) != puVar8);
        iVar9 = *local_2c;
      }
      if (*(int *)(iVar9 + 0x5c) != 0) {
LAB_000bfd4c:
                    /* WARNING: Subroutine does not return */
        FUN_0008b620("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");
      }
      *(undefined4 *)(iVar9 + 0x5c) = 2;
LAB_000bfd08:
      local_2c = local_2c + 1;
    } while (*(int **)(param_1 + 0x10) != local_2c);
  }
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00035680
ADD EBX,0x27f417
SUB ESP,0x2c
MOV EDI,dword ptr [ESP + 0x40]
MOV byte ptr [ESP + 0x14],0x0
LEA ECX,[EDI + 0x18]
MOV EAX,dword ptr [EDI + 0xc]
MOV dword ptr [ESP + 0xc],ECX
LEA ECX,[EBX + 0x2f0]
MOV dword ptr [ESP + 0x10],EAX
MOV dword ptr [ESP + 0x1c],ECX
CMP EAX,dword ptr [EDI + 0x10]
JZ 0x000bfd1a
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0x10]
MOV ESI,dword ptr [EAX]
MOV ECX,dword ptr [ESI + 0x50]
CMP ECX,dword ptr [ESI + 0x54]
JZ 0x000bfd2e
MOV EAX,ESI
MOV ESI,ECX
MOV EBP,EAX
JMP 0x000bfc52
MOV ECX,dword ptr [EAX]
TEST ECX,ECX
JZ 0x000bfc7c
ADD ESI,0x18
CMP dword ptr [EBP + 0x54],ESI
JZ 0x000bfd28
SUB ESP,0x4
PUSH 0xc70f6907
PUSH dword ptr [ESI + 0x4]
PUSH dword ptr [ESI]
CALL 0x001aa970
XOR EDX,EDX
PUSH EAX
PUSH ESI
DIV dword ptr [EDI + 0x1c]
PUSH EDX
PUSH dword ptr [ESP + 0x28]
CALL 0x000cddd0
ADD ESP,0x20
TEST EAX,EAX
JNZ 0x000bfc40
MOV EAX,dword ptr [ESP + 0x10]
MOV EBP,ESI
MOV EAX,dword ptr [EAX]
MOV EDX,dword ptr [EAX + 0x5c]
TEST EDX,EDX
JNZ 0x000bfd4c
CMP byte ptr [ESP + 0x14],0x0
MOV dword ptr [EAX + 0x5c],0x1
JNZ 0x000bfd03
MOV ECX,dword ptr [ESP + 0x1c]
MOV EDX,dword ptr [ECX]
MOV EDX,dword ptr [EDX + 0x8]
TEST EDX,EDX
JZ 0x000bfd64
CMP byte ptr [EDX + 0x9dd],0x0
JNZ 0x000bfd40
MOVZX ECX,byte ptr [EDX + 0x109]
MOV byte ptr [ESP + 0x14],CL
TEST CL,CL
JZ 0x000bfd08
LEA ECX,[EBX + 0xfff17ac4]
MOV dword ptr [ESP + 0x18],ECX
MOV EDX,dword ptr [EAX + 0x4]
SUB ESP,0xc
LEA EAX,[EBX + 0xfff17bf0]
MOV ESI,dword ptr [EBP]
MOV dword ptr [ESP + 0x20],EDX
PUSH EAX
CALL 0x000283c0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x14]
PUSH EDX
PUSH ESI
PUSH dword ptr [ESP + 0x20]
PUSH EAX
CALL 0x000828d0
ADD ESP,0x10
MOV byte ptr [ESP + 0x14],0x1
ADD dword ptr [ESP + 0x10],0x4
MOV EAX,dword ptr [ESP + 0x10]
CMP dword ptr [EDI + 0x10],EAX
JNZ 0x000bfc20
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [ESP + 0x10]
MOV ESI,dword ptr [EAX]
MOV EAX,dword ptr [ESI + 0x5c]
TEST EAX,EAX
JNZ 0x000bfd4c
MOV dword ptr [ESI + 0x5c],0x2
JMP 0x000bfd08
LEA ECX,[EBX + 0xfff17aab]
MOV dword ptr [ESP + 0x18],ECX
JMP 0x000bfcd4
SUB ESP,0x4
LEA EAX,[EBX + 0xfff18afc]
PUSH EAX
LEA EAX,[EBX + 0xfff147ab]
PUSH 0x47
PUSH EAX
CALL 0x0008b620
SUB ESP,0x4
LEA EAX,[EBX + 0xfff18b1c]
PUSH EAX
LEA EAX,[EBX + 0xfff0726d]
PUSH 0x5c
PUSH EAX
CALL 0x0008b620
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_000bfbe0(int param_1)\n\n{\n  char cVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  int *piVar6;\n  undefined4 uVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  int *local_2c;\n  char *local_24;\n  \n  cVar1 = '\0';\n  local_2c = *(int **)(param_1 + 0xc);\n  if (local_2c != *(int **)(param_1 + 0x10)) {\n    do {\n      iVar9 = *local_2c;\n      puVar8 = *(undefined4 **)(iVar9 + 0x50);\n      if (puVar8 != *(undefined4 **)(iVar9 + 0x54)) {\n        do {\n          uVar5 = FUN_001aa970(*puVar8,puVar8[1],0xc70f6907);\n          piVar6 = (int *)FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      );\n          if ((piVar6 == (int *)0x0) || (*piVar6 == 0)) {\n            iVar9 = *local_2c;\n            if (*(int *)(iVar9 + 0x5c) != 0) goto LAB_000bfd4c;\n            *(undefined4 *)(iVar9 + 0x5c) = 1;\n            if (cVar1 == '\0') {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              if (iVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }\n              if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              uVar3 = *(undefined4 *)(iVar9 + 4);\n              uVar4 = *puVar8;\n              uVar7 = gettext("%s is not supported but is required for %s in %s");\n              FUN_000828d0(uVar7,local_24,uVar4,uVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }\n          puVar8 = puVar8 + 6;\n        } while (*(undefined4 **)(iVar9 + 0x54) != puVar8);\n        iVar9 = *local_2c;\n      }\n      if (*(int *)(iVar9 + 0x5c) != 0) {\nLAB_000bfd4c:\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");\n      }\n      *(undefined4 *)(iVar9 + 0x5c) = 2;\nLAB_000bfd08:\n      local_2c = local_2c + 1;\n    } while (*(int **)(param_1 + 0x10) != local_2c);\n  }\n  return;\n}\n\n" comment (function_definition "void FUN_000bfbe0(int param_1)\n\n{\n  char cVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  int *piVar6;\n  undefined4 uVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  int *local_2c;\n  char *local_24;\n  \n  cVar1 = '\0';\n  local_2c = *(int **)(param_1 + 0xc);\n  if (local_2c != *(int **)(param_1 + 0x10)) {\n    do {\n      iVar9 = *local_2c;\n      puVar8 = *(undefined4 **)(iVar9 + 0x50);\n      if (puVar8 != *(undefined4 **)(iVar9 + 0x54)) {\n        do {\n          uVar5 = FUN_001aa970(*puVar8,puVar8[1],0xc70f6907);\n          piVar6 = (int *)FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      );\n          if ((piVar6 == (int *)0x0) || (*piVar6 == 0)) {\n            iVar9 = *local_2c;\n            if (*(int *)(iVar9 + 0x5c) != 0) goto LAB_000bfd4c;\n            *(undefined4 *)(iVar9 + 0x5c) = 1;\n            if (cVar1 == '\0') {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              if (iVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }\n              if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              uVar3 = *(undefined4 *)(iVar9 + 4);\n              uVar4 = *puVar8;\n              uVar7 = gettext("%s is not supported but is required for %s in %s");\n              FUN_000828d0(uVar7,local_24,uVar4,uVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }\n          puVar8 = puVar8 + 6;\n        } while (*(undefined4 **)(iVar9 + 0x54) != puVar8);\n        iVar9 = *local_2c;\n      }\n      if (*(int *)(iVar9 + 0x5c) != 0) {\nLAB_000bfd4c:\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");\n      }\n      *(undefined4 *)(iVar9 + 0x5c) = 2;\nLAB_000bfd08:\n      local_2c = local_2c + 1;\n    } while (*(int **)(param_1 + 0x10) != local_2c);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_000bfbe0(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  char cVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  int *piVar6;\n  undefined4 uVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  int *local_2c;\n  char *local_24;\n  \n  cVar1 = '\0';\n  local_2c = *(int **)(param_1 + 0xc);\n  if (local_2c != *(int **)(param_1 + 0x10)) {\n    do {\n      iVar9 = *local_2c;\n      puVar8 = *(undefined4 **)(iVar9 + 0x50);\n      if (puVar8 != *(undefined4 **)(iVar9 + 0x54)) {\n        do {\n          uVar5 = FUN_001aa970(*puVar8,puVar8[1],0xc70f6907);\n          piVar6 = (int *)FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      );\n          if ((piVar6 == (int *)0x0) || (*piVar6 == 0)) {\n            iVar9 = *local_2c;\n            if (*(int *)(iVar9 + 0x5c) != 0) goto LAB_000bfd4c;\n            *(undefined4 *)(iVar9 + 0x5c) = 1;\n            if (cVar1 == '\0') {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              if (iVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }\n              if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              uVar3 = *(undefined4 *)(iVar9 + 4);\n              uVar4 = *puVar8;\n              uVar7 = gettext("%s is not supported but is required for %s in %s");\n              FUN_000828d0(uVar7,local_24,uVar4,uVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }\n          puVar8 = puVar8 + 6;\n        } while (*(undefined4 **)(iVar9 + 0x54) != puVar8);\n        iVar9 = *local_2c;\n      }\n      if (*(int *)(iVar9 + 0x5c) != 0) {\nLAB_000bfd4c:\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");\n      }\n      *(undefined4 *)(iVar9 + 0x5c) = 2;\nLAB_000bfd08:\n      local_2c = local_2c + 1;\n    } while (*(int **)(param_1 + 0x10) != local_2c);\n  }\n  return;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int *local_2c;" primitive_type (pointer_declarator "*local_2c" * identifier) ;) (declaration "char *local_24;" primitive_type (pointer_declarator "*local_24" * identifier) ;) (expression_statement "cVar1 = '\0';" (assignment_expression "cVar1 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_2c = *(int **)(param_1 + 0xc);" (assignment_expression "local_2c = *(int **)(param_1 + 0xc)" identifier = (pointer_expression "*(int **)(param_1 + 0xc)" * (cast_expression "(int **)(param_1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (local_2c != *(int **)(param_1 + 0x10)) {\n    do {\n      iVar9 = *local_2c;\n      puVar8 = *(undefined4 **)(iVar9 + 0x50);\n      if (puVar8 != *(undefined4 **)(iVar9 + 0x54)) {\n        do {\n          uVar5 = FUN_001aa970(*puVar8,puVar8[1],0xc70f6907);\n          piVar6 = (int *)FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      );\n          if ((piVar6 == (int *)0x0) || (*piVar6 == 0)) {\n            iVar9 = *local_2c;\n            if (*(int *)(iVar9 + 0x5c) != 0) goto LAB_000bfd4c;\n            *(undefined4 *)(iVar9 + 0x5c) = 1;\n            if (cVar1 == '\0') {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              if (iVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }\n              if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              uVar3 = *(undefined4 *)(iVar9 + 4);\n              uVar4 = *puVar8;\n              uVar7 = gettext("%s is not supported but is required for %s in %s");\n              FUN_000828d0(uVar7,local_24,uVar4,uVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }\n          puVar8 = puVar8 + 6;\n        } while (*(undefined4 **)(iVar9 + 0x54) != puVar8);\n        iVar9 = *local_2c;\n      }\n      if (*(int *)(iVar9 + 0x5c) != 0) {\nLAB_000bfd4c:\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");\n      }\n      *(undefined4 *)(iVar9 + 0x5c) = 2;\nLAB_000bfd08:\n      local_2c = local_2c + 1;\n    } while (*(int **)(param_1 + 0x10) != local_2c);\n  }" if (parenthesized_expression "(local_2c != *(int **)(param_1 + 0x10))" ( (binary_expression "local_2c != *(int **)(param_1 + 0x10)" identifier != (pointer_expression "*(int **)(param_1 + 0x10)" * (cast_expression "(int **)(param_1 + 0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) )) (compound_statement "{\n    do {\n      iVar9 = *local_2c;\n      puVar8 = *(undefined4 **)(iVar9 + 0x50);\n      if (puVar8 != *(undefined4 **)(iVar9 + 0x54)) {\n        do {\n          uVar5 = FUN_001aa970(*puVar8,puVar8[1],0xc70f6907);\n          piVar6 = (int *)FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      );\n          if ((piVar6 == (int *)0x0) || (*piVar6 == 0)) {\n            iVar9 = *local_2c;\n            if (*(int *)(iVar9 + 0x5c) != 0) goto LAB_000bfd4c;\n            *(undefined4 *)(iVar9 + 0x5c) = 1;\n            if (cVar1 == '\0') {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              if (iVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }\n              if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              uVar3 = *(undefined4 *)(iVar9 + 4);\n              uVar4 = *puVar8;\n              uVar7 = gettext("%s is not supported but is required for %s in %s");\n              FUN_000828d0(uVar7,local_24,uVar4,uVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }\n          puVar8 = puVar8 + 6;\n        } while (*(undefined4 **)(iVar9 + 0x54) != puVar8);\n        iVar9 = *local_2c;\n      }\n      if (*(int *)(iVar9 + 0x5c) != 0) {\nLAB_000bfd4c:\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");\n      }\n      *(undefined4 *)(iVar9 + 0x5c) = 2;\nLAB_000bfd08:\n      local_2c = local_2c + 1;\n    } while (*(int **)(param_1 + 0x10) != local_2c);\n  }" { (do_statement "do {\n      iVar9 = *local_2c;\n      puVar8 = *(undefined4 **)(iVar9 + 0x50);\n      if (puVar8 != *(undefined4 **)(iVar9 + 0x54)) {\n        do {\n          uVar5 = FUN_001aa970(*puVar8,puVar8[1],0xc70f6907);\n          piVar6 = (int *)FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      );\n          if ((piVar6 == (int *)0x0) || (*piVar6 == 0)) {\n            iVar9 = *local_2c;\n            if (*(int *)(iVar9 + 0x5c) != 0) goto LAB_000bfd4c;\n            *(undefined4 *)(iVar9 + 0x5c) = 1;\n            if (cVar1 == '\0') {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              if (iVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }\n              if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              uVar3 = *(undefined4 *)(iVar9 + 4);\n              uVar4 = *puVar8;\n              uVar7 = gettext("%s is not supported but is required for %s in %s");\n              FUN_000828d0(uVar7,local_24,uVar4,uVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }\n          puVar8 = puVar8 + 6;\n        } while (*(undefined4 **)(iVar9 + 0x54) != puVar8);\n        iVar9 = *local_2c;\n      }\n      if (*(int *)(iVar9 + 0x5c) != 0) {\nLAB_000bfd4c:\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");\n      }\n      *(undefined4 *)(iVar9 + 0x5c) = 2;\nLAB_000bfd08:\n      local_2c = local_2c + 1;\n    } while (*(int **)(param_1 + 0x10) != local_2c);" do (compound_statement "{\n      iVar9 = *local_2c;\n      puVar8 = *(undefined4 **)(iVar9 + 0x50);\n      if (puVar8 != *(undefined4 **)(iVar9 + 0x54)) {\n        do {\n          uVar5 = FUN_001aa970(*puVar8,puVar8[1],0xc70f6907);\n          piVar6 = (int *)FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      );\n          if ((piVar6 == (int *)0x0) || (*piVar6 == 0)) {\n            iVar9 = *local_2c;\n            if (*(int *)(iVar9 + 0x5c) != 0) goto LAB_000bfd4c;\n            *(undefined4 *)(iVar9 + 0x5c) = 1;\n            if (cVar1 == '\0') {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              if (iVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }\n              if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              uVar3 = *(undefined4 *)(iVar9 + 4);\n              uVar4 = *puVar8;\n              uVar7 = gettext("%s is not supported but is required for %s in %s");\n              FUN_000828d0(uVar7,local_24,uVar4,uVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }\n          puVar8 = puVar8 + 6;\n        } while (*(undefined4 **)(iVar9 + 0x54) != puVar8);\n        iVar9 = *local_2c;\n      }\n      if (*(int *)(iVar9 + 0x5c) != 0) {\nLAB_000bfd4c:\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");\n      }\n      *(undefined4 *)(iVar9 + 0x5c) = 2;\nLAB_000bfd08:\n      local_2c = local_2c + 1;\n    }" { (expression_statement "iVar9 = *local_2c;" (assignment_expression "iVar9 = *local_2c" identifier = (pointer_expression "*local_2c" * identifier)) ;) (expression_statement "puVar8 = *(undefined4 **)(iVar9 + 0x50);" (assignment_expression "puVar8 = *(undefined4 **)(iVar9 + 0x50)" identifier = (pointer_expression "*(undefined4 **)(iVar9 + 0x50)" * (cast_expression "(undefined4 **)(iVar9 + 0x50)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x50)" ( (binary_expression "iVar9 + 0x50" identifier + number_literal) ))))) ;) (if_statement "if (puVar8 != *(undefined4 **)(iVar9 + 0x54)) {\n        do {\n          uVar5 = FUN_001aa970(*puVar8,puVar8[1],0xc70f6907);\n          piVar6 = (int *)FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      );\n          if ((piVar6 == (int *)0x0) || (*piVar6 == 0)) {\n            iVar9 = *local_2c;\n            if (*(int *)(iVar9 + 0x5c) != 0) goto LAB_000bfd4c;\n            *(undefined4 *)(iVar9 + 0x5c) = 1;\n            if (cVar1 == '\0') {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              if (iVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }\n              if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              uVar3 = *(undefined4 *)(iVar9 + 4);\n              uVar4 = *puVar8;\n              uVar7 = gettext("%s is not supported but is required for %s in %s");\n              FUN_000828d0(uVar7,local_24,uVar4,uVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }\n          puVar8 = puVar8 + 6;\n        } while (*(undefined4 **)(iVar9 + 0x54) != puVar8);\n        iVar9 = *local_2c;\n      }" if (parenthesized_expression "(puVar8 != *(undefined4 **)(iVar9 + 0x54))" ( (binary_expression "puVar8 != *(undefined4 **)(iVar9 + 0x54)" identifier != (pointer_expression "*(undefined4 **)(iVar9 + 0x54)" * (cast_expression "(undefined4 **)(iVar9 + 0x54)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x54)" ( (binary_expression "iVar9 + 0x54" identifier + number_literal) ))))) )) (compound_statement "{\n        do {\n          uVar5 = FUN_001aa970(*puVar8,puVar8[1],0xc70f6907);\n          piVar6 = (int *)FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      );\n          if ((piVar6 == (int *)0x0) || (*piVar6 == 0)) {\n            iVar9 = *local_2c;\n            if (*(int *)(iVar9 + 0x5c) != 0) goto LAB_000bfd4c;\n            *(undefined4 *)(iVar9 + 0x5c) = 1;\n            if (cVar1 == '\0') {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              if (iVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }\n              if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              uVar3 = *(undefined4 *)(iVar9 + 4);\n              uVar4 = *puVar8;\n              uVar7 = gettext("%s is not supported but is required for %s in %s");\n              FUN_000828d0(uVar7,local_24,uVar4,uVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }\n          puVar8 = puVar8 + 6;\n        } while (*(undefined4 **)(iVar9 + 0x54) != puVar8);\n        iVar9 = *local_2c;\n      }" { (do_statement "do {\n          uVar5 = FUN_001aa970(*puVar8,puVar8[1],0xc70f6907);\n          piVar6 = (int *)FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      );\n          if ((piVar6 == (int *)0x0) || (*piVar6 == 0)) {\n            iVar9 = *local_2c;\n            if (*(int *)(iVar9 + 0x5c) != 0) goto LAB_000bfd4c;\n            *(undefined4 *)(iVar9 + 0x5c) = 1;\n            if (cVar1 == '\0') {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              if (iVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }\n              if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              uVar3 = *(undefined4 *)(iVar9 + 4);\n              uVar4 = *puVar8;\n              uVar7 = gettext("%s is not supported but is required for %s in %s");\n              FUN_000828d0(uVar7,local_24,uVar4,uVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }\n          puVar8 = puVar8 + 6;\n        } while (*(undefined4 **)(iVar9 + 0x54) != puVar8);" do (compound_statement "{\n          uVar5 = FUN_001aa970(*puVar8,puVar8[1],0xc70f6907);\n          piVar6 = (int *)FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      );\n          if ((piVar6 == (int *)0x0) || (*piVar6 == 0)) {\n            iVar9 = *local_2c;\n            if (*(int *)(iVar9 + 0x5c) != 0) goto LAB_000bfd4c;\n            *(undefined4 *)(iVar9 + 0x5c) = 1;\n            if (cVar1 == '\0') {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              if (iVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }\n              if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              uVar3 = *(undefined4 *)(iVar9 + 4);\n              uVar4 = *puVar8;\n              uVar7 = gettext("%s is not supported but is required for %s in %s");\n              FUN_000828d0(uVar7,local_24,uVar4,uVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }\n          puVar8 = puVar8 + 6;\n        }" { (expression_statement "uVar5 = FUN_001aa970(*puVar8,puVar8[1],0xc70f6907);" (assignment_expression "uVar5 = FUN_001aa970(*puVar8,puVar8[1],0xc70f6907)" identifier = (call_expression "FUN_001aa970(*puVar8,puVar8[1],0xc70f6907)" identifier (argument_list "(*puVar8,puVar8[1],0xc70f6907)" ( (pointer_expression "*puVar8" * identifier) , (subscript_expression "puVar8[1]" identifier [ number_literal ]) , number_literal )))) ;) (expression_statement "piVar6 = (int *)FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      );" (assignment_expression "piVar6 = (int *)FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      )" identifier = (cast_expression "(int *)FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      )" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      )" identifier (argument_list "(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      )" ( (binary_expression "param_1 + 0x18" identifier + number_literal) , (binary_expression "uVar5 % *(uint *)(param_1 + 0x1c)" identifier % (pointer_expression "*(uint *)(param_1 + 0x1c)" * (cast_expression "(uint *)(param_1 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) , identifier , identifier ))))) ;) (if_statement "if ((piVar6 == (int *)0x0) || (*piVar6 == 0)) {\n            iVar9 = *local_2c;\n            if (*(int *)(iVar9 + 0x5c) != 0) goto LAB_000bfd4c;\n            *(undefined4 *)(iVar9 + 0x5c) = 1;\n            if (cVar1 == '\0') {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              if (iVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }\n              if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              uVar3 = *(undefined4 *)(iVar9 + 4);\n              uVar4 = *puVar8;\n              uVar7 = gettext("%s is not supported but is required for %s in %s");\n              FUN_000828d0(uVar7,local_24,uVar4,uVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }" if (parenthesized_expression "((piVar6 == (int *)0x0) || (*piVar6 == 0))" ( (binary_expression "(piVar6 == (int *)0x0) || (*piVar6 == 0)" (parenthesized_expression "(piVar6 == (int *)0x0)" ( (binary_expression "piVar6 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*piVar6 == 0)" ( (binary_expression "*piVar6 == 0" (pointer_expression "*piVar6" * identifier) == number_literal) ))) )) (compound_statement "{\n            iVar9 = *local_2c;\n            if (*(int *)(iVar9 + 0x5c) != 0) goto LAB_000bfd4c;\n            *(undefined4 *)(iVar9 + 0x5c) = 1;\n            if (cVar1 == '\0') {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              if (iVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }\n              if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              uVar3 = *(undefined4 *)(iVar9 + 4);\n              uVar4 = *puVar8;\n              uVar7 = gettext("%s is not supported but is required for %s in %s");\n              FUN_000828d0(uVar7,local_24,uVar4,uVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }" { (expression_statement "iVar9 = *local_2c;" (assignment_expression "iVar9 = *local_2c" identifier = (pointer_expression "*local_2c" * identifier)) ;) (if_statement "if (*(int *)(iVar9 + 0x5c) != 0) goto LAB_000bfd4c;" if (parenthesized_expression "(*(int *)(iVar9 + 0x5c) != 0)" ( (binary_expression "*(int *)(iVar9 + 0x5c) != 0" (pointer_expression "*(int *)(iVar9 + 0x5c)" * (cast_expression "(int *)(iVar9 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x5c)" ( (binary_expression "iVar9 + 0x5c" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_000bfd4c;" goto statement_identifier ;)) (expression_statement "*(undefined4 *)(iVar9 + 0x5c) = 1;" (assignment_expression "*(undefined4 *)(iVar9 + 0x5c) = 1" (pointer_expression "*(undefined4 *)(iVar9 + 0x5c)" * (cast_expression "(undefined4 *)(iVar9 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x5c)" ( (binary_expression "iVar9 + 0x5c" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (cVar1 == '\0') {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              if (iVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }\n              if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              uVar3 = *(undefined4 *)(iVar9 + 4);\n              uVar4 = *puVar8;\n              uVar7 = gettext("%s is not supported but is required for %s in %s");\n              FUN_000828d0(uVar7,local_24,uVar4,uVar3);\n            }" if (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              if (iVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }\n              if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              uVar3 = *(undefined4 *)(iVar9 + 4);\n              uVar4 = *puVar8;\n              uVar7 = gettext("%s is not supported but is required for %s in %s");\n              FUN_000828d0(uVar7,local_24,uVar4,uVar3);\n            }" { (expression_statement "iVar2 = *(int *)(DAT_0033f2f0 + 8);" (assignment_expression "iVar2 = *(int *)(DAT_0033f2f0 + 8)" identifier = (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" * (cast_expression "(int *)(DAT_0033f2f0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 8)" ( (binary_expression "DAT_0033f2f0 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }" { comment (expression_statement "FUN_0008b620("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_0008b620("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (if_statement "if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }" if (parenthesized_expression "(*(char *)(iVar2 + 0x9dd) == '\0')" ( (binary_expression "*(char *)(iVar2 + 0x9dd) == '\0'" (pointer_expression "*(char *)(iVar2 + 0x9dd)" * (cast_expression "(char *)(iVar2 + 0x9dd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x9dd)" ( (binary_expression "iVar2 + 0x9dd" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }" { (expression_statement "cVar1 = *(char *)(iVar2 + 0x109);" (assignment_expression "cVar1 = *(char *)(iVar2 + 0x109)" identifier = (pointer_expression "*(char *)(iVar2 + 0x109)" * (cast_expression "(char *)(iVar2 + 0x109)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x109)" ( (binary_expression "iVar2 + 0x109" identifier + number_literal) ))))) ;) (if_statement "if (cVar1 == '\0') goto LAB_000bfd08;" if (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000bfd08;" goto statement_identifier ;)) (expression_statement "local_24 = "--add-needed";" (assignment_expression "local_24 = "--add-needed"" identifier = (string_literal ""--add-needed"" " string_content ")) ;) }) (else_clause "else {\n                local_24 = "--copy-dt-needed-entries";\n              }" else (compound_statement "{\n                local_24 = "--copy-dt-needed-entries";\n              }" { (expression_statement "local_24 = "--copy-dt-needed-entries";" (assignment_expression "local_24 = "--copy-dt-needed-entries"" identifier = (string_literal ""--copy-dt-needed-entries"" " string_content ")) ;) }))) (expression_statement "uVar3 = *(undefined4 *)(iVar9 + 4);" (assignment_expression "uVar3 = *(undefined4 *)(iVar9 + 4)" identifier = (pointer_expression "*(undefined4 *)(iVar9 + 4)" * (cast_expression "(undefined4 *)(iVar9 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 4)" ( (binary_expression "iVar9 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *puVar8;" (assignment_expression "uVar4 = *puVar8" identifier = (pointer_expression "*puVar8" * identifier)) ;) (expression_statement "uVar7 = gettext("%s is not supported but is required for %s in %s");" (assignment_expression "uVar7 = gettext("%s is not supported but is required for %s in %s")" identifier = (call_expression "gettext("%s is not supported but is required for %s in %s")" identifier (argument_list "("%s is not supported but is required for %s in %s")" ( (string_literal ""%s is not supported but is required for %s in %s"" " string_content ") )))) ;) (expression_statement "FUN_000828d0(uVar7,local_24,uVar4,uVar3);" (call_expression "FUN_000828d0(uVar7,local_24,uVar4,uVar3)" identifier (argument_list "(uVar7,local_24,uVar4,uVar3)" ( identifier , identifier , identifier , identifier ))) ;) })) (expression_statement "cVar1 = '\x01';" (assignment_expression "cVar1 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (goto_statement "goto LAB_000bfd08;" goto statement_identifier ;) })) (expression_statement "puVar8 = puVar8 + 6;" (assignment_expression "puVar8 = puVar8 + 6" identifier = (binary_expression "puVar8 + 6" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(undefined4 **)(iVar9 + 0x54) != puVar8)" ( (binary_expression "*(undefined4 **)(iVar9 + 0x54) != puVar8" (pointer_expression "*(undefined4 **)(iVar9 + 0x54)" * (cast_expression "(undefined4 **)(iVar9 + 0x54)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x54)" ( (binary_expression "iVar9 + 0x54" identifier + number_literal) )))) != identifier) )) ;) (expression_statement "iVar9 = *local_2c;" (assignment_expression "iVar9 = *local_2c" identifier = (pointer_expression "*local_2c" * identifier)) ;) })) (if_statement "if (*(int *)(iVar9 + 0x5c) != 0) {\nLAB_000bfd4c:\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");\n      }" if (parenthesized_expression "(*(int *)(iVar9 + 0x5c) != 0)" ( (binary_expression "*(int *)(iVar9 + 0x5c) != 0" (pointer_expression "*(int *)(iVar9 + 0x5c)" * (cast_expression "(int *)(iVar9 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x5c)" ( (binary_expression "iVar9 + 0x5c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\nLAB_000bfd4c:\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");\n      }" { (labeled_statement "LAB_000bfd4c:\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");" statement_identifier : comment (expression_statement "FUN_0008b620("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");" (call_expression "FUN_0008b620("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries")" identifier (argument_list "("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries")" ( (string_literal ""../../gold/dynobj.h"" " string_content ") , number_literal , (string_literal ""set_has_unknown_needed_entries"" " string_content ") ))) ;)) })) (expression_statement "*(undefined4 *)(iVar9 + 0x5c) = 2;" (assignment_expression "*(undefined4 *)(iVar9 + 0x5c) = 2" (pointer_expression "*(undefined4 *)(iVar9 + 0x5c)" * (cast_expression "(undefined4 *)(iVar9 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x5c)" ( (binary_expression "iVar9 + 0x5c" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_000bfd08:\n      local_2c = local_2c + 1;" statement_identifier : (expression_statement "local_2c = local_2c + 1;" (assignment_expression "local_2c = local_2c + 1" identifier = (binary_expression "local_2c + 1" identifier + number_literal)) ;)) }) while (parenthesized_expression "(*(int **)(param_1 + 0x10) != local_2c)" ( (binary_expression "*(int **)(param_1 + 0x10) != local_2c" (pointer_expression "*(int **)(param_1 + 0x10)" * (cast_expression "(int **)(param_1 + 0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) != identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Enum "ELFOSABI": Some values do not have unique names */\n/* DWARF original prototype: void check_dynamic_dependencies(Input_objects * this) */\n\nvoid __thiscall gold::Input_objects::check_dynamic_dependencies(Input_objects *this)\n\n{\n  char cVar1;\n  General_options *pGVar2;\n  pointer pcVar3;\n  pointer pcVar4;\n  uint __code;\n  __node_base *p_Var5;\n  char *format;\n  key_type *__k;\n  Dynobj *pDVar6;\n  pointer local_2c;\n  char *local_24;\n  \n  cVar1 = '\0';\n  local_2c = (this->dynobj_list_).super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>.\n             _M_impl._M_start;\n  if (local_2c !=\n      (this->dynobj_list_).super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>._M_impl\n      ._M_finish) {\n    do {\n      pDVar6 = *local_2c;\n      __k = (pDVar6->needed_).\n            super__Vector_base<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>_>_>_>\n            ._M_impl._M_start;\n      if (__k != (pDVar6->needed_).\n                 super__Vector_base<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>_>_>_>\n                 ._M_impl._M_finish) {\n        do {\n          __code = std::_Hash_bytes((__k->_M_dataplus)._M_p,__k->_M_string_length,0xc70f6907);\n          p_Var5 = std::\n                   _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>_>,_std::__detail::_Select1st,_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,_false,_true>_>\n                   ::_M_find_before_node\n                             ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>_>,_std::__detail::_Select1st,_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,_false,_true>_>\n                               *)&this->sonames_,__code % (this->sonames_)._M_h._M_bucket_count,__k,\n                              __code);\n          if ((p_Var5 == (__node_base *)0x0) || (p_Var5->_M_nxt == (_Hash_node_base *)0x0)) {\n            pDVar6 = *local_2c;\n            if (pDVar6->unknown_needed_ != UNKNOWN_NEEDED_UNSET) goto LAB_000bfd4c;\n            pDVar6->unknown_needed_ = UNKNOWN_NEEDED_TRUE;\n            if (cVar1 == '\0') {\n              pGVar2 = parameters->options_;\n              if (pGVar2 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n              }\n              if ((pGVar2->copy_dt_needed_entries_).value == false) {\n                cVar1 = (pGVar2->add_needed_).value;\n                if ((bool)cVar1 == false) goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              pcVar3 = (pDVar6->super_Object).name_._M_dataplus._M_p;\n              pcVar4 = (__k->_M_dataplus)._M_p;\n              format = (char *)gettext("%s is not supported but is required for %s in %s");\n              gold_error(format,local_24,pcVar4,pcVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }\n          __k = __k + 1;\n        } while ((pDVar6->needed_).\n                 super__Vector_base<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>_>_>_>\n                 ._M_impl._M_finish != __k);\n        pDVar6 = *local_2c;\n      }\n      if (pDVar6->unknown_needed_ != UNKNOWN_NEEDED_UNSET) {\nLAB_000bfd4c:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");\n      }\n      pDVar6->unknown_needed_ = UNKNOWN_NEEDED_FALSE;\nLAB_000bfd08:\n      local_2c = local_2c + 1;\n    } while ((this->dynobj_list_).super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>.\n             _M_impl._M_finish != local_2c);\n  }\n  return;\n}\n\n" comment comment comment comment (function_definition "void __thiscall gold::Input_objects::check_dynamic_dependencies(Input_objects *this)\n\n{\n  char cVar1;\n  General_options *pGVar2;\n  pointer pcVar3;\n  pointer pcVar4;\n  uint __code;\n  __node_base *p_Var5;\n  char *format;\n  key_type *__k;\n  Dynobj *pDVar6;\n  pointer local_2c;\n  char *local_24;\n  \n  cVar1 = '\0';\n  local_2c = (this->dynobj_list_).super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>.\n             _M_impl._M_start;\n  if (local_2c !=\n      (this->dynobj_list_).super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>._M_impl\n      ._M_finish) {\n    do {\n      pDVar6 = *local_2c;\n      __k = (pDVar6->needed_).\n            super__Vector_base<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>_>_>_>\n            ._M_impl._M_start;\n      if (__k != (pDVar6->needed_).\n                 super__Vector_base<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>_>_>_>\n                 ._M_impl._M_finish) {\n        do {\n          __code = std::_Hash_bytes((__k->_M_dataplus)._M_p,__k->_M_string_length,0xc70f6907);\n          p_Var5 = std::\n                   _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>_>,_std::__detail::_Select1st,_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,_false,_true>_>\n                   ::_M_find_before_node\n                             ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>_>,_std::__detail::_Select1st,_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,_false,_true>_>\n                               *)&this->sonames_,__code % (this->sonames_)._M_h._M_bucket_count,__k,\n                              __code);\n          if ((p_Var5 == (__node_base *)0x0) || (p_Var5->_M_nxt == (_Hash_node_base *)0x0)) {\n            pDVar6 = *local_2c;\n            if (pDVar6->unknown_needed_ != UNKNOWN_NEEDED_UNSET) goto LAB_000bfd4c;\n            pDVar6->unknown_needed_ = UNKNOWN_NEEDED_TRUE;\n            if (cVar1 == '\0') {\n              pGVar2 = parameters->options_;\n              if (pGVar2 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n              }\n              if ((pGVar2->copy_dt_needed_entries_).value == false) {\n                cVar1 = (pGVar2->add_needed_).value;\n                if ((bool)cVar1 == false) goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              pcVar3 = (pDVar6->super_Object).name_._M_dataplus._M_p;\n              pcVar4 = (__k->_M_dataplus)._M_p;\n              format = (char *)gettext("%s is not supported but is required for %s in %s");\n              gold_error(format,local_24,pcVar4,pcVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }\n          __k = __k + 1;\n        } while ((pDVar6->needed_).\n                 super__Vector_base<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>_>_>_>\n                 ._M_impl._M_finish != __k);\n        pDVar6 = *local_2c;\n      }\n      if (pDVar6->unknown_needed_ != UNKNOWN_NEEDED_UNSET) {\nLAB_000bfd4c:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");\n      }\n      pDVar6->unknown_needed_ = UNKNOWN_NEEDED_FALSE;\nLAB_000bfd08:\n      local_2c = local_2c + 1;\n    } while ((this->dynobj_list_).super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>.\n             _M_impl._M_finish != local_2c);\n  }\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Input_objects::" identifier : : identifier : :) (function_declarator "check_dynamic_dependencies(Input_objects *this)" identifier (parameter_list "(Input_objects *this)" ( (parameter_declaration "Input_objects *this" type_identifier (pointer_declarator "*this" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  General_options *pGVar2;\n  pointer pcVar3;\n  pointer pcVar4;\n  uint __code;\n  __node_base *p_Var5;\n  char *format;\n  key_type *__k;\n  Dynobj *pDVar6;\n  pointer local_2c;\n  char *local_24;\n  \n  cVar1 = '\0';\n  local_2c = (this->dynobj_list_).super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>.\n             _M_impl._M_start;\n  if (local_2c !=\n      (this->dynobj_list_).super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>._M_impl\n      ._M_finish) {\n    do {\n      pDVar6 = *local_2c;\n      __k = (pDVar6->needed_).\n            super__Vector_base<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>_>_>_>\n            ._M_impl._M_start;\n      if (__k != (pDVar6->needed_).\n                 super__Vector_base<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>_>_>_>\n                 ._M_impl._M_finish) {\n        do {\n          __code = std::_Hash_bytes((__k->_M_dataplus)._M_p,__k->_M_string_length,0xc70f6907);\n          p_Var5 = std::\n                   _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>_>,_std::__detail::_Select1st,_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,_false,_true>_>\n                   ::_M_find_before_node\n                             ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>_>,_std::__detail::_Select1st,_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,_false,_true>_>\n                               *)&this->sonames_,__code % (this->sonames_)._M_h._M_bucket_count,__k,\n                              __code);\n          if ((p_Var5 == (__node_base *)0x0) || (p_Var5->_M_nxt == (_Hash_node_base *)0x0)) {\n            pDVar6 = *local_2c;\n            if (pDVar6->unknown_needed_ != UNKNOWN_NEEDED_UNSET) goto LAB_000bfd4c;\n            pDVar6->unknown_needed_ = UNKNOWN_NEEDED_TRUE;\n            if (cVar1 == '\0') {\n              pGVar2 = parameters->options_;\n              if (pGVar2 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n              }\n              if ((pGVar2->copy_dt_needed_entries_).value == false) {\n                cVar1 = (pGVar2->add_needed_).value;\n                if ((bool)cVar1 == false) goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              pcVar3 = (pDVar6->super_Object).name_._M_dataplus._M_p;\n              pcVar4 = (__k->_M_dataplus)._M_p;\n              format = (char *)gettext("%s is not supported but is required for %s in %s");\n              gold_error(format,local_24,pcVar4,pcVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }\n          __k = __k + 1;\n        } while ((pDVar6->needed_).\n                 super__Vector_base<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>_>_>_>\n                 ._M_impl._M_finish != __k);\n        pDVar6 = *local_2c;\n      }\n      if (pDVar6->unknown_needed_ != UNKNOWN_NEEDED_UNSET) {\nLAB_000bfd4c:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");\n      }\n      pDVar6->unknown_needed_ = UNKNOWN_NEEDED_FALSE;\nLAB_000bfd08:\n      local_2c = local_2c + 1;\n    } while ((this->dynobj_list_).super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>.\n             _M_impl._M_finish != local_2c);\n  }\n  return;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "General_options *pGVar2;" type_identifier (pointer_declarator "*pGVar2" * identifier) ;) (declaration "pointer pcVar3;" type_identifier identifier ;) (declaration "pointer pcVar4;" type_identifier identifier ;) (declaration "uint __code;" type_identifier identifier ;) (declaration "__node_base *p_Var5;" type_identifier (pointer_declarator "*p_Var5" * identifier) ;) (declaration "char *format;" primitive_type (pointer_declarator "*format" * identifier) ;) (declaration "key_type *__k;" type_identifier (pointer_declarator "*__k" * identifier) ;) (declaration "Dynobj *pDVar6;" type_identifier (pointer_declarator "*pDVar6" * identifier) ;) (declaration "pointer local_2c;" type_identifier identifier ;) (declaration "char *local_24;" primitive_type (pointer_declarator "*local_24" * identifier) ;) (expression_statement "cVar1 = '\0';" (assignment_expression "cVar1 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_2c = (this->dynobj_list_).super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>.\n             _M_impl._M_start;" (field_expression "local_2c = (this->dynobj_list_).super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>.\n             _M_impl._M_start" (field_expression "local_2c = (this->dynobj_list_).super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>.\n             _M_impl" (binary_expression "local_2c = (this->dynobj_list_).super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_" (binary_expression "local_2c = (this->dynobj_list_).super__Vector_base<gold::Dynobj*,_std::allocator<gold" (binary_expression "local_2c = (this->dynobj_list_).super__Vector_base<gold::Dynobj*,_std" (assignment_expression "local_2c = (this->dynobj_list_).super__Vector_base<gold" identifier = (binary_expression "(this->dynobj_list_).super__Vector_base<gold" (field_expression "(this->dynobj_list_).super__Vector_base" (parenthesized_expression "(this->dynobj_list_)" ( (field_expression "this->dynobj_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Dynobj" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Dynobj" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if (local_2c !=\n      (this->dynobj_list_).super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>._M_impl\n      ._M_finish) {\n    do {\n      pDVar6 = *local_2c;\n      __k = (pDVar6->needed_).\n            super__Vector_base<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>_>_>_>\n            ._M_impl._M_start;\n      if (__k != (pDVar6->needed_).\n                 super__Vector_base<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>_>_>_>\n                 ._M_impl._M_finish) {\n        do {\n          __code = std::_Hash_bytes((__k->_M_dataplus)._M_p,__k->_M_string_length,0xc70f6907);\n          p_Var5 = std::\n                   _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>_>,_std::__detail::_Select1st,_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,_false,_true>_>\n                   ::_M_find_before_node\n                             ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>_>,_std::__detail::_Select1st,_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,_false,_true>_>\n                               *)&this->sonames_,__code % (this->sonames_)._M_h._M_bucket_count,__k,\n                              __code);\n          if ((p_Var5 == (__node_base *)0x0) || (p_Var5->_M_nxt == (_Hash_node_base *)0x0)) {\n            pDVar6 = *local_2c;\n            if (pDVar6->unknown_needed_ != UNKNOWN_NEEDED_UNSET) goto LAB_000bfd4c;\n            pDVar6->unknown_needed_ = UNKNOWN_NEEDED_TRUE;\n            if (cVar1 == '\0') {\n              pGVar2 = parameters->options_;\n              if (pGVar2 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n              }\n              if ((pGVar2->copy_dt_needed_entries_).value == false) {\n                cVar1 = (pGVar2->add_needed_).value;\n                if ((bool)cVar1 == false) goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              pcVar3 = (pDVar6->super_Object).name_._M_dataplus._M_p;\n              pcVar4 = (__k->_M_dataplus)._M_p;\n              format = (char *)gettext("%s is not supported but is required for %s in %s");\n              gold_error(format,local_24,pcVar4,pcVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }\n          __k = __k + 1;\n        } while ((pDVar6->needed_).\n                 super__Vector_base<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>_>_>_>\n                 ._M_impl._M_finish != __k);\n        pDVar6 = *local_2c;\n      }\n      if (pDVar6->unknown_needed_ != UNKNOWN_NEEDED_UNSET) {\nLAB_000bfd4c:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");\n      }\n      pDVar6->unknown_needed_ = UNKNOWN_NEEDED_FALSE;\nLAB_000bfd08:\n      local_2c = local_2c + 1;\n    } while ((this->dynobj_list_).super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>.\n             _M_impl._M_finish != local_2c);\n  }" if (parenthesized_expression "(local_2c !=\n      (this->dynobj_list_).super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>._M_impl\n      ._M_finish)" ( (field_expression "local_2c !=\n      (this->dynobj_list_).super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>._M_impl\n      ._M_finish" (field_expression "local_2c !=\n      (this->dynobj_list_).super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>._M_impl" (binary_expression "local_2c !=\n      (this->dynobj_list_).super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_" (binary_expression "local_2c !=\n      (this->dynobj_list_).super__Vector_base<gold::Dynobj*,_std::allocator<gold" (binary_expression "local_2c !=\n      (this->dynobj_list_).super__Vector_base<gold::Dynobj*,_std" (binary_expression "local_2c !=\n      (this->dynobj_list_).super__Vector_base<gold" identifier != (binary_expression "(this->dynobj_list_).super__Vector_base<gold" (field_expression "(this->dynobj_list_).super__Vector_base" (parenthesized_expression "(this->dynobj_list_)" ( (field_expression "this->dynobj_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Dynobj" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Dynobj" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (compound_statement "{\n    do {\n      pDVar6 = *local_2c;\n      __k = (pDVar6->needed_).\n            super__Vector_base<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>_>_>_>\n            ._M_impl._M_start;\n      if (__k != (pDVar6->needed_).\n                 super__Vector_base<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>_>_>_>\n                 ._M_impl._M_finish) {\n        do {\n          __code = std::_Hash_bytes((__k->_M_dataplus)._M_p,__k->_M_string_length,0xc70f6907);\n          p_Var5 = std::\n                   _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>_>,_std::__detail::_Select1st,_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,_false,_true>_>\n                   ::_M_find_before_node\n                             ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>_>,_std::__detail::_Select1st,_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,_false,_true>_>\n                               *)&this->sonames_,__code % (this->sonames_)._M_h._M_bucket_count,__k,\n                              __code);\n          if ((p_Var5 == (__node_base *)0x0) || (p_Var5->_M_nxt == (_Hash_node_base *)0x0)) {\n            pDVar6 = *local_2c;\n            if (pDVar6->unknown_needed_ != UNKNOWN_NEEDED_UNSET) goto LAB_000bfd4c;\n            pDVar6->unknown_needed_ = UNKNOWN_NEEDED_TRUE;\n            if (cVar1 == '\0') {\n              pGVar2 = parameters->options_;\n              if (pGVar2 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n              }\n              if ((pGVar2->copy_dt_needed_entries_).value == false) {\n                cVar1 = (pGVar2->add_needed_).value;\n                if ((bool)cVar1 == false) goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              pcVar3 = (pDVar6->super_Object).name_._M_dataplus._M_p;\n              pcVar4 = (__k->_M_dataplus)._M_p;\n              format = (char *)gettext("%s is not supported but is required for %s in %s");\n              gold_error(format,local_24,pcVar4,pcVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }\n          __k = __k + 1;\n        } while ((pDVar6->needed_).\n                 super__Vector_base<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>_>_>_>\n                 ._M_impl._M_finish != __k);\n        pDVar6 = *local_2c;\n      }\n      if (pDVar6->unknown_needed_ != UNKNOWN_NEEDED_UNSET) {\nLAB_000bfd4c:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");\n      }\n      pDVar6->unknown_needed_ = UNKNOWN_NEEDED_FALSE;\nLAB_000bfd08:\n      local_2c = local_2c + 1;\n    } while ((this->dynobj_list_).super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>.\n             _M_impl._M_finish != local_2c);\n  }" { (do_statement "do {\n      pDVar6 = *local_2c;\n      __k = (pDVar6->needed_).\n            super__Vector_base<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>_>_>_>\n            ._M_impl._M_start;\n      if (__k != (pDVar6->needed_).\n                 super__Vector_base<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>_>_>_>\n                 ._M_impl._M_finish) {\n        do {\n          __code = std::_Hash_bytes((__k->_M_dataplus)._M_p,__k->_M_string_length,0xc70f6907);\n          p_Var5 = std::\n                   _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>_>,_std::__detail::_Select1st,_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,_false,_true>_>\n                   ::_M_find_before_node\n                             ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>_>,_std::__detail::_Select1st,_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,_false,_true>_>\n                               *)&this->sonames_,__code % (this->sonames_)._M_h._M_bucket_count,__k,\n                              __code);\n          if ((p_Var5 == (__node_base *)0x0) || (p_Var5->_M_nxt == (_Hash_node_base *)0x0)) {\n            pDVar6 = *local_2c;\n            if (pDVar6->unknown_needed_ != UNKNOWN_NEEDED_UNSET) goto LAB_000bfd4c;\n            pDVar6->unknown_needed_ = UNKNOWN_NEEDED_TRUE;\n            if (cVar1 == '\0') {\n              pGVar2 = parameters->options_;\n              if (pGVar2 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n              }\n              if ((pGVar2->copy_dt_needed_entries_).value == false) {\n                cVar1 = (pGVar2->add_needed_).value;\n                if ((bool)cVar1 == false) goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              pcVar3 = (pDVar6->super_Object).name_._M_dataplus._M_p;\n              pcVar4 = (__k->_M_dataplus)._M_p;\n              format = (char *)gettext("%s is not supported but is required for %s in %s");\n              gold_error(format,local_24,pcVar4,pcVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }\n          __k = __k + 1;\n        } while ((pDVar6->needed_).\n                 super__Vector_base<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>_>_>_>\n                 ._M_impl._M_finish != __k);\n        pDVar6 = *local_2c;\n      }\n      if (pDVar6->unknown_needed_ != UNKNOWN_NEEDED_UNSET) {\nLAB_000bfd4c:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");\n      }\n      pDVar6->unknown_needed_ = UNKNOWN_NEEDED_FALSE;\nLAB_000bfd08:\n      local_2c = local_2c + 1;\n    } while ((this->dynobj_list_).super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>.\n             _M_impl._M_finish != local_2c);" do (compound_statement "{\n      pDVar6 = *local_2c;\n      __k = (pDVar6->needed_).\n            super__Vector_base<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>_>_>_>\n            ._M_impl._M_start;\n      if (__k != (pDVar6->needed_).\n                 super__Vector_base<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>_>_>_>\n                 ._M_impl._M_finish) {\n        do {\n          __code = std::_Hash_bytes((__k->_M_dataplus)._M_p,__k->_M_string_length,0xc70f6907);\n          p_Var5 = std::\n                   _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>_>,_std::__detail::_Select1st,_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,_false,_true>_>\n                   ::_M_find_before_node\n                             ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>_>,_std::__detail::_Select1st,_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,_false,_true>_>\n                               *)&this->sonames_,__code % (this->sonames_)._M_h._M_bucket_count,__k,\n                              __code);\n          if ((p_Var5 == (__node_base *)0x0) || (p_Var5->_M_nxt == (_Hash_node_base *)0x0)) {\n            pDVar6 = *local_2c;\n            if (pDVar6->unknown_needed_ != UNKNOWN_NEEDED_UNSET) goto LAB_000bfd4c;\n            pDVar6->unknown_needed_ = UNKNOWN_NEEDED_TRUE;\n            if (cVar1 == '\0') {\n              pGVar2 = parameters->options_;\n              if (pGVar2 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n              }\n              if ((pGVar2->copy_dt_needed_entries_).value == false) {\n                cVar1 = (pGVar2->add_needed_).value;\n                if ((bool)cVar1 == false) goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              pcVar3 = (pDVar6->super_Object).name_._M_dataplus._M_p;\n              pcVar4 = (__k->_M_dataplus)._M_p;\n              format = (char *)gettext("%s is not supported but is required for %s in %s");\n              gold_error(format,local_24,pcVar4,pcVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }\n          __k = __k + 1;\n        } while ((pDVar6->needed_).\n                 super__Vector_base<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>_>_>_>\n                 ._M_impl._M_finish != __k);\n        pDVar6 = *local_2c;\n      }\n      if (pDVar6->unknown_needed_ != UNKNOWN_NEEDED_UNSET) {\nLAB_000bfd4c:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");\n      }\n      pDVar6->unknown_needed_ = UNKNOWN_NEEDED_FALSE;\nLAB_000bfd08:\n      local_2c = local_2c + 1;\n    }" { (expression_statement "pDVar6 = *local_2c;" (assignment_expression "pDVar6 = *local_2c" identifier = (pointer_expression "*local_2c" * identifier)) ;) (ERROR "__k = (pDVar6->needed_).\n            super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::" (assignment_expression "__k = (pDVar6->needed_).\n            super__Vector_base<std" identifier = (binary_expression "(pDVar6->needed_).\n            super__Vector_base<std" (field_expression "(pDVar6->needed_).\n            super__Vector_base" (parenthesized_expression "(pDVar6->needed_)" ( (field_expression "pDVar6->needed_" identifier -> field_identifier) )) . field_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) : : (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) : :) (expression_statement "allocator<char>_>_>_>\n            ._M_impl._M_start;" (field_expression "allocator<char>_>_>_>\n            ._M_impl._M_start" (field_expression "allocator<char>_>_>_>\n            ._M_impl" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if (__k != (pDVar6->needed_).\n                 super__Vector_base<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>_>_>_>\n                 ._M_impl._M_finish) {\n        do {\n          __code = std::_Hash_bytes((__k->_M_dataplus)._M_p,__k->_M_string_length,0xc70f6907);\n          p_Var5 = std::\n                   _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>_>,_std::__detail::_Select1st,_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,_false,_true>_>\n                   ::_M_find_before_node\n                             ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>_>,_std::__detail::_Select1st,_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,_false,_true>_>\n                               *)&this->sonames_,__code % (this->sonames_)._M_h._M_bucket_count,__k,\n                              __code);\n          if ((p_Var5 == (__node_base *)0x0) || (p_Var5->_M_nxt == (_Hash_node_base *)0x0)) {\n            pDVar6 = *local_2c;\n            if (pDVar6->unknown_needed_ != UNKNOWN_NEEDED_UNSET) goto LAB_000bfd4c;\n            pDVar6->unknown_needed_ = UNKNOWN_NEEDED_TRUE;\n            if (cVar1 == '\0') {\n              pGVar2 = parameters->options_;\n              if (pGVar2 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n              }\n              if ((pGVar2->copy_dt_needed_entries_).value == false) {\n                cVar1 = (pGVar2->add_needed_).value;\n                if ((bool)cVar1 == false) goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              pcVar3 = (pDVar6->super_Object).name_._M_dataplus._M_p;\n              pcVar4 = (__k->_M_dataplus)._M_p;\n              format = (char *)gettext("%s is not supported but is required for %s in %s");\n              gold_error(format,local_24,pcVar4,pcVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }\n          __k = __k + 1;\n        } while ((pDVar6->needed_).\n                 super__Vector_base<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>_>_>_>\n                 ._M_impl._M_finish != __k);\n        pDVar6 = *local_2c;\n      }" if (parenthesized_expression "(__k != (pDVar6->needed_).\n                 super__Vector_base<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>_>_>_>\n                 ._M_impl._M_finish)" ( (ERROR "__k != (pDVar6->needed_).\n                 super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::" (comma_expression "__k != (pDVar6->needed_).\n                 super__Vector_base<std::__cxx11::basic_string<char,_std" (binary_expression "__k != (pDVar6->needed_).\n                 super__Vector_base<std::__cxx11::basic_string<char" (binary_expression "__k != (pDVar6->needed_).\n                 super__Vector_base<std" identifier != (binary_expression "(pDVar6->needed_).\n                 super__Vector_base<std" (field_expression "(pDVar6->needed_).\n                 super__Vector_base" (parenthesized_expression "(pDVar6->needed_)" ( (field_expression "pDVar6->needed_" identifier -> field_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>_>,_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) : :) (field_expression "allocator<char>_>_>_>\n                 ._M_impl._M_finish" (field_expression "allocator<char>_>_>_>\n                 ._M_impl" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (compound_statement "{\n        do {\n          __code = std::_Hash_bytes((__k->_M_dataplus)._M_p,__k->_M_string_length,0xc70f6907);\n          p_Var5 = std::\n                   _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>_>,_std::__detail::_Select1st,_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,_false,_true>_>\n                   ::_M_find_before_node\n                             ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>_>,_std::__detail::_Select1st,_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,_false,_true>_>\n                               *)&this->sonames_,__code % (this->sonames_)._M_h._M_bucket_count,__k,\n                              __code);\n          if ((p_Var5 == (__node_base *)0x0) || (p_Var5->_M_nxt == (_Hash_node_base *)0x0)) {\n            pDVar6 = *local_2c;\n            if (pDVar6->unknown_needed_ != UNKNOWN_NEEDED_UNSET) goto LAB_000bfd4c;\n            pDVar6->unknown_needed_ = UNKNOWN_NEEDED_TRUE;\n            if (cVar1 == '\0') {\n              pGVar2 = parameters->options_;\n              if (pGVar2 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n              }\n              if ((pGVar2->copy_dt_needed_entries_).value == false) {\n                cVar1 = (pGVar2->add_needed_).value;\n                if ((bool)cVar1 == false) goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              pcVar3 = (pDVar6->super_Object).name_._M_dataplus._M_p;\n              pcVar4 = (__k->_M_dataplus)._M_p;\n              format = (char *)gettext("%s is not supported but is required for %s in %s");\n              gold_error(format,local_24,pcVar4,pcVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }\n          __k = __k + 1;\n        } while ((pDVar6->needed_).\n                 super__Vector_base<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>_>_>_>\n                 ._M_impl._M_finish != __k);\n        pDVar6 = *local_2c;\n      }" { (do_statement "do {\n          __code = std::_Hash_bytes((__k->_M_dataplus)._M_p,__k->_M_string_length,0xc70f6907);\n          p_Var5 = std::\n                   _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>_>,_std::__detail::_Select1st,_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,_false,_true>_>\n                   ::_M_find_before_node\n                             ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>_>,_std::__detail::_Select1st,_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,_false,_true>_>\n                               *)&this->sonames_,__code % (this->sonames_)._M_h._M_bucket_count,__k,\n                              __code);\n          if ((p_Var5 == (__node_base *)0x0) || (p_Var5->_M_nxt == (_Hash_node_base *)0x0)) {\n            pDVar6 = *local_2c;\n            if (pDVar6->unknown_needed_ != UNKNOWN_NEEDED_UNSET) goto LAB_000bfd4c;\n            pDVar6->unknown_needed_ = UNKNOWN_NEEDED_TRUE;\n            if (cVar1 == '\0') {\n              pGVar2 = parameters->options_;\n              if (pGVar2 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n              }\n              if ((pGVar2->copy_dt_needed_entries_).value == false) {\n                cVar1 = (pGVar2->add_needed_).value;\n                if ((bool)cVar1 == false) goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              pcVar3 = (pDVar6->super_Object).name_._M_dataplus._M_p;\n              pcVar4 = (__k->_M_dataplus)._M_p;\n              format = (char *)gettext("%s is not supported but is required for %s in %s");\n              gold_error(format,local_24,pcVar4,pcVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }\n          __k = __k + 1;\n        } while ((pDVar6->needed_).\n                 super__Vector_base<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>_>_>_>\n                 ._M_impl._M_finish != __k);" do (compound_statement "{\n          __code = std::_Hash_bytes((__k->_M_dataplus)._M_p,__k->_M_string_length,0xc70f6907);\n          p_Var5 = std::\n                   _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>_>,_std::__detail::_Select1st,_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,_false,_true>_>\n                   ::_M_find_before_node\n                             ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>_>,_std::__detail::_Select1st,_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,_false,_true>_>\n                               *)&this->sonames_,__code % (this->sonames_)._M_h._M_bucket_count,__k,\n                              __code);\n          if ((p_Var5 == (__node_base *)0x0) || (p_Var5->_M_nxt == (_Hash_node_base *)0x0)) {\n            pDVar6 = *local_2c;\n            if (pDVar6->unknown_needed_ != UNKNOWN_NEEDED_UNSET) goto LAB_000bfd4c;\n            pDVar6->unknown_needed_ = UNKNOWN_NEEDED_TRUE;\n            if (cVar1 == '\0') {\n              pGVar2 = parameters->options_;\n              if (pGVar2 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n              }\n              if ((pGVar2->copy_dt_needed_entries_).value == false) {\n                cVar1 = (pGVar2->add_needed_).value;\n                if ((bool)cVar1 == false) goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              pcVar3 = (pDVar6->super_Object).name_._M_dataplus._M_p;\n              pcVar4 = (__k->_M_dataplus)._M_p;\n              format = (char *)gettext("%s is not supported but is required for %s in %s");\n              gold_error(format,local_24,pcVar4,pcVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }\n          __k = __k + 1;\n        }" { (ERROR "__code = std::" (assignment_expression "__code = std" identifier = identifier) : :) (expression_statement "_Hash_bytes((__k->_M_dataplus)._M_p,__k->_M_string_length,0xc70f6907);" (call_expression "_Hash_bytes((__k->_M_dataplus)._M_p,__k->_M_string_length,0xc70f6907)" identifier (argument_list "((__k->_M_dataplus)._M_p,__k->_M_string_length,0xc70f6907)" ( (field_expression "(__k->_M_dataplus)._M_p" (parenthesized_expression "(__k->_M_dataplus)" ( (field_expression "__k->_M_dataplus" identifier -> field_identifier) )) . field_identifier) , (field_expression "__k->_M_string_length" identifier -> field_identifier) , number_literal ))) ;) (ERROR "p_Var5 = std::\n                   _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>_>,_std::__detail::_Select1st,_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 "p_Var5 = 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) : : (binary_expression "pair<const_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>_>,_gold" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (comma_expression "Object*>,_std" identifier (ERROR "*>" * >) , identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_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>_>,_gold" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "Object*>_>,_std" (binary_expression "Object*>_" identifier * (ERROR ">" >) identifier) > (ERROR "," ,) identifier) : : (comma_expression "__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std" identifier (ERROR "::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>" : : (comma_expression "_Select1st,_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,_false,_true>_>\n                   ::_M_find_before_node\n                             ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>_>,_std::__detail::_Select1st,_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,_false,_true>_>\n                               *)&this->sonames_,__code % (this->sonames_)._M_h._M_bucket_count,__k,\n                              __code);" statement_identifier (ERROR "::_Mod_range_hashing,_std:" : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                   ::_M_find_before_node\n                             ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>_>,_std::__detail::_Select1st,_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,_false,_true>_>\n                               *)&this->sonames_,__code % (this->sonames_)._M_h._M_bucket_count,__k,\n                              __code);" statement_identifier (ERROR "::_Default_ranged_hash,_std:" : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                   ::_M_find_before_node\n                             ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>_>,_std::__detail::_Select1st,_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,_false,_true>_>\n                               *)&this->sonames_,__code % (this->sonames_)._M_h._M_bucket_count,__k,\n                              __code);" statement_identifier (ERROR "::_Prime_rehash_policy,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) :) : (labeled_statement "__detail::_Hashtable_traits<true,_false,_true>_>\n                   ::_M_find_before_node\n                             ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>_>,_std::__detail::_Select1st,_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,_false,_true>_>\n                               *)&this->sonames_,__code % (this->sonames_)._M_h._M_bucket_count,__k,\n                              __code);" statement_identifier : (ERROR ":" :) (expression_statement "_Hashtable_traits<true,_false,_true>_>\n                   ::_M_find_before_node\n                             ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>_>,_std::__detail::_Select1st,_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,_false,_true>_>\n                               *)&this->sonames_,__code % (this->sonames_)._M_h._M_bucket_count,__k,\n                              __code);" (comma_expression "_Hashtable_traits<true,_false,_true>_>\n                   ::_M_find_before_node\n                             ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>_>,_std::__detail::_Select1st,_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,_false,_true>_>\n                               *)&this->sonames_,__code % (this->sonames_)._M_h._M_bucket_count,__k,\n                              __code)" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_false,_true>_>\n                   ::_M_find_before_node\n                             ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>_>,_std::__detail::_Select1st,_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,_false,_true>_>\n                               *)&this->sonames_,__code % (this->sonames_)._M_h._M_bucket_count,__k,\n                              __code)" identifier , (binary_expression "_true>_>\n                   ::_M_find_before_node\n                             ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>_>,_std::__detail::_Select1st,_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,_false,_true>_>\n                               *)&this->sonames_,__code % (this->sonames_)._M_h._M_bucket_count,__k,\n                              __code)" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) (call_expression "_M_find_before_node\n                             ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>_>,_std::__detail::_Select1st,_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,_false,_true>_>\n                               *)&this->sonames_,__code % (this->sonames_)._M_h._M_bucket_count,__k,\n                              __code)" identifier (argument_list "((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>_>,_std::__detail::_Select1st,_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,_false,_true>_>\n                               *)&this->sonames_,__code % (this->sonames_)._M_h._M_bucket_count,__k,\n                              __code)" ( (binary_expression "(_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>_>,_std::__detail::_Select1st,_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,_false,_true>_>\n                               *)&this->sonames_" (parenthesized_expression "(_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>_>,_std::__detail::_Select1st,_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,_false,_true>_>\n                               *)" ( (ERROR "_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Object*>_>,_std::__detail::_Select1st,_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) : : (binary_expression "pair<const_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>_>,_gold" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (comma_expression "Object*>,_std" identifier (ERROR "*>" * >) , identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_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>_>,_gold" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "Object*>_>,_std" (binary_expression "Object*>_" identifier * (ERROR ">" >) identifier) > (ERROR "," ,) identifier) : : identifier : : (comma_expression "_Select1st,_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,_false,_true>_>\n                               *" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_false,_true>_>\n                               *" identifier , (binary_expression "_true>_>\n                               *" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "*" * identifier)))) )) & (field_expression "this->sonames_" identifier -> field_identifier)) , (binary_expression "__code % (this->sonames_)._M_h._M_bucket_count" identifier % (field_expression "(this->sonames_)._M_h._M_bucket_count" (field_expression "(this->sonames_)._M_h" (parenthesized_expression "(this->sonames_)" ( (field_expression "this->sonames_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) , identifier , identifier )))))) ;))))) (if_statement "if ((p_Var5 == (__node_base *)0x0) || (p_Var5->_M_nxt == (_Hash_node_base *)0x0)) {\n            pDVar6 = *local_2c;\n            if (pDVar6->unknown_needed_ != UNKNOWN_NEEDED_UNSET) goto LAB_000bfd4c;\n            pDVar6->unknown_needed_ = UNKNOWN_NEEDED_TRUE;\n            if (cVar1 == '\0') {\n              pGVar2 = parameters->options_;\n              if (pGVar2 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n              }\n              if ((pGVar2->copy_dt_needed_entries_).value == false) {\n                cVar1 = (pGVar2->add_needed_).value;\n                if ((bool)cVar1 == false) goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              pcVar3 = (pDVar6->super_Object).name_._M_dataplus._M_p;\n              pcVar4 = (__k->_M_dataplus)._M_p;\n              format = (char *)gettext("%s is not supported but is required for %s in %s");\n              gold_error(format,local_24,pcVar4,pcVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }" if (parenthesized_expression "((p_Var5 == (__node_base *)0x0) || (p_Var5->_M_nxt == (_Hash_node_base *)0x0))" ( (binary_expression "(p_Var5 == (__node_base *)0x0) || (p_Var5->_M_nxt == (_Hash_node_base *)0x0)" (parenthesized_expression "(p_Var5 == (__node_base *)0x0)" ( (binary_expression "p_Var5 == (__node_base *)0x0" identifier == (cast_expression "(__node_base *)0x0" ( (type_descriptor "__node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(p_Var5->_M_nxt == (_Hash_node_base *)0x0)" ( (binary_expression "p_Var5->_M_nxt == (_Hash_node_base *)0x0" (field_expression "p_Var5->_M_nxt" identifier -> field_identifier) == (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n            pDVar6 = *local_2c;\n            if (pDVar6->unknown_needed_ != UNKNOWN_NEEDED_UNSET) goto LAB_000bfd4c;\n            pDVar6->unknown_needed_ = UNKNOWN_NEEDED_TRUE;\n            if (cVar1 == '\0') {\n              pGVar2 = parameters->options_;\n              if (pGVar2 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n              }\n              if ((pGVar2->copy_dt_needed_entries_).value == false) {\n                cVar1 = (pGVar2->add_needed_).value;\n                if ((bool)cVar1 == false) goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              pcVar3 = (pDVar6->super_Object).name_._M_dataplus._M_p;\n              pcVar4 = (__k->_M_dataplus)._M_p;\n              format = (char *)gettext("%s is not supported but is required for %s in %s");\n              gold_error(format,local_24,pcVar4,pcVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }" { (expression_statement "pDVar6 = *local_2c;" (assignment_expression "pDVar6 = *local_2c" identifier = (pointer_expression "*local_2c" * identifier)) ;) (if_statement "if (pDVar6->unknown_needed_ != UNKNOWN_NEEDED_UNSET) goto LAB_000bfd4c;" if (parenthesized_expression "(pDVar6->unknown_needed_ != UNKNOWN_NEEDED_UNSET)" ( (binary_expression "pDVar6->unknown_needed_ != UNKNOWN_NEEDED_UNSET" (field_expression "pDVar6->unknown_needed_" identifier -> field_identifier) != identifier) )) (goto_statement "goto LAB_000bfd4c;" goto statement_identifier ;)) (expression_statement "pDVar6->unknown_needed_ = UNKNOWN_NEEDED_TRUE;" (assignment_expression "pDVar6->unknown_needed_ = UNKNOWN_NEEDED_TRUE" (field_expression "pDVar6->unknown_needed_" identifier -> field_identifier) = identifier) ;) (if_statement "if (cVar1 == '\0') {\n              pGVar2 = parameters->options_;\n              if (pGVar2 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n              }\n              if ((pGVar2->copy_dt_needed_entries_).value == false) {\n                cVar1 = (pGVar2->add_needed_).value;\n                if ((bool)cVar1 == false) goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              pcVar3 = (pDVar6->super_Object).name_._M_dataplus._M_p;\n              pcVar4 = (__k->_M_dataplus)._M_p;\n              format = (char *)gettext("%s is not supported but is required for %s in %s");\n              gold_error(format,local_24,pcVar4,pcVar3);\n            }" if (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              pGVar2 = parameters->options_;\n              if (pGVar2 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n              }\n              if ((pGVar2->copy_dt_needed_entries_).value == false) {\n                cVar1 = (pGVar2->add_needed_).value;\n                if ((bool)cVar1 == false) goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              pcVar3 = (pDVar6->super_Object).name_._M_dataplus._M_p;\n              pcVar4 = (__k->_M_dataplus)._M_p;\n              format = (char *)gettext("%s is not supported but is required for %s in %s");\n              gold_error(format,local_24,pcVar4,pcVar3);\n            }" { (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                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\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                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n              }" { comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (if_statement "if ((pGVar2->copy_dt_needed_entries_).value == false) {\n                cVar1 = (pGVar2->add_needed_).value;\n                if ((bool)cVar1 == false) goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }" if (parenthesized_expression "((pGVar2->copy_dt_needed_entries_).value == false)" ( (binary_expression "(pGVar2->copy_dt_needed_entries_).value == false" (field_expression "(pGVar2->copy_dt_needed_entries_).value" (parenthesized_expression "(pGVar2->copy_dt_needed_entries_)" ( (field_expression "pGVar2->copy_dt_needed_entries_" identifier -> field_identifier) )) . field_identifier) == false) )) (compound_statement "{\n                cVar1 = (pGVar2->add_needed_).value;\n                if ((bool)cVar1 == false) goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }" { (expression_statement "cVar1 = (pGVar2->add_needed_).value;" (assignment_expression "cVar1 = (pGVar2->add_needed_).value" identifier = (field_expression "(pGVar2->add_needed_).value" (parenthesized_expression "(pGVar2->add_needed_)" ( (field_expression "pGVar2->add_needed_" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((bool)cVar1 == false) goto LAB_000bfd08;" if (parenthesized_expression "((bool)cVar1 == false)" ( (binary_expression "(bool)cVar1 == false" (cast_expression "(bool)cVar1" ( (type_descriptor "bool" primitive_type) ) identifier) == false) )) (goto_statement "goto LAB_000bfd08;" goto statement_identifier ;)) (expression_statement "local_24 = "--add-needed";" (assignment_expression "local_24 = "--add-needed"" identifier = (string_literal ""--add-needed"" " string_content ")) ;) }) (else_clause "else {\n                local_24 = "--copy-dt-needed-entries";\n              }" else (compound_statement "{\n                local_24 = "--copy-dt-needed-entries";\n              }" { (expression_statement "local_24 = "--copy-dt-needed-entries";" (assignment_expression "local_24 = "--copy-dt-needed-entries"" identifier = (string_literal ""--copy-dt-needed-entries"" " string_content ")) ;) }))) (expression_statement "pcVar3 = (pDVar6->super_Object).name_._M_dataplus._M_p;" (assignment_expression "pcVar3 = (pDVar6->super_Object).name_._M_dataplus._M_p" identifier = (field_expression "(pDVar6->super_Object).name_._M_dataplus._M_p" (field_expression "(pDVar6->super_Object).name_._M_dataplus" (field_expression "(pDVar6->super_Object).name_" (parenthesized_expression "(pDVar6->super_Object)" ( (field_expression "pDVar6->super_Object" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "pcVar4 = (__k->_M_dataplus)._M_p;" (assignment_expression "pcVar4 = (__k->_M_dataplus)._M_p" identifier = (field_expression "(__k->_M_dataplus)._M_p" (parenthesized_expression "(__k->_M_dataplus)" ( (field_expression "__k->_M_dataplus" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "format = (char *)gettext("%s is not supported but is required for %s in %s");" (assignment_expression "format = (char *)gettext("%s is not supported but is required for %s in %s")" identifier = (cast_expression "(char *)gettext("%s is not supported but is required for %s in %s")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("%s is not supported but is required for %s in %s")" identifier (argument_list "("%s is not supported but is required for %s in %s")" ( (string_literal ""%s is not supported but is required for %s in %s"" " string_content ") ))))) ;) (expression_statement "gold_error(format,local_24,pcVar4,pcVar3);" (call_expression "gold_error(format,local_24,pcVar4,pcVar3)" identifier (argument_list "(format,local_24,pcVar4,pcVar3)" ( identifier , identifier , identifier , identifier ))) ;) })) (expression_statement "cVar1 = '\x01';" (assignment_expression "cVar1 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (goto_statement "goto LAB_000bfd08;" goto statement_identifier ;) })) (expression_statement "__k = __k + 1;" (assignment_expression "__k = __k + 1" identifier = (binary_expression "__k + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((pDVar6->needed_).\n                 super__Vector_base<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>_>_>_>\n                 ._M_impl._M_finish != __k)" ( (ERROR "(pDVar6->needed_).\n                 super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::" (comma_expression "(pDVar6->needed_).\n                 super__Vector_base<std::__cxx11::basic_string<char,_std" (binary_expression "(pDVar6->needed_).\n                 super__Vector_base<std::__cxx11::basic_string<char" (binary_expression "(pDVar6->needed_).\n                 super__Vector_base<std" (field_expression "(pDVar6->needed_).\n                 super__Vector_base" (parenthesized_expression "(pDVar6->needed_)" ( (field_expression "pDVar6->needed_" identifier -> field_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>_>,_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>_>_>_>\n                 ._M_impl._M_finish != __k" (field_expression "allocator<char>_>_>_>\n                 ._M_impl._M_finish" (field_expression "allocator<char>_>_>_>\n                 ._M_impl" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) != identifier) )) ;) (expression_statement "pDVar6 = *local_2c;" (assignment_expression "pDVar6 = *local_2c" identifier = (pointer_expression "*local_2c" * identifier)) ;) })) (if_statement "if (pDVar6->unknown_needed_ != UNKNOWN_NEEDED_UNSET) {\nLAB_000bfd4c:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");\n      }" if (parenthesized_expression "(pDVar6->unknown_needed_ != UNKNOWN_NEEDED_UNSET)" ( (binary_expression "pDVar6->unknown_needed_ != UNKNOWN_NEEDED_UNSET" (field_expression "pDVar6->unknown_needed_" identifier -> field_identifier) != identifier) )) (compound_statement "{\nLAB_000bfd4c:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");\n      }" { (labeled_statement "LAB_000bfd4c:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");" (call_expression "do_gold_unreachable("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries")" identifier (argument_list "("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries")" ( (string_literal ""../../gold/dynobj.h"" " string_content ") , number_literal , (string_literal ""set_has_unknown_needed_entries"" " string_content ") ))) ;)) })) (expression_statement "pDVar6->unknown_needed_ = UNKNOWN_NEEDED_FALSE;" (assignment_expression "pDVar6->unknown_needed_ = UNKNOWN_NEEDED_FALSE" (field_expression "pDVar6->unknown_needed_" identifier -> field_identifier) = identifier) ;) (labeled_statement "LAB_000bfd08:\n      local_2c = local_2c + 1;" statement_identifier : (expression_statement "local_2c = local_2c + 1;" (assignment_expression "local_2c = local_2c + 1" identifier = (binary_expression "local_2c + 1" identifier + number_literal)) ;)) }) while (parenthesized_expression "((this->dynobj_list_).super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>.\n             _M_impl._M_finish != local_2c)" ( (binary_expression "(this->dynobj_list_).super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>.\n             _M_impl._M_finish != local_2c" (field_expression "(this->dynobj_list_).super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>.\n             _M_impl._M_finish" (field_expression "(this->dynobj_list_).super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_>.\n             _M_impl" (binary_expression "(this->dynobj_list_).super__Vector_base<gold::Dynobj*,_std::allocator<gold::Dynobj*>_" (binary_expression "(this->dynobj_list_).super__Vector_base<gold::Dynobj*,_std::allocator<gold" (binary_expression "(this->dynobj_list_).super__Vector_base<gold::Dynobj*,_std" (binary_expression "(this->dynobj_list_).super__Vector_base<gold" (field_expression "(this->dynobj_list_).super__Vector_base" (parenthesized_expression "(this->dynobj_list_)" ( (field_expression "this->dynobj_list_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Dynobj" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Dynobj" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) != identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_000bfbe0(int param_1)\n\n{\n  char cVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  int *piVar6;\n  undefined4 uVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  int *local_2c;\n  char *local_24;\n  \n  cVar1 = '\0';\n  local_2c = *(int **)(param_1 + 0xc);\n  if (local_2c != *(int **)(param_1 + 0x10)) {\n    do {\n      iVar9 = *local_2c;\n      puVar8 = *(undefined4 **)(iVar9 + 0x50);\n      if (puVar8 != *(undefined4 **)(iVar9 + 0x54)) {\n        do {\n          uVar5 = FUN_001aa970(*puVar8,puVar8[1],0xc70f6907);\n          piVar6 = (int *)FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      );\n          if ((piVar6 == (int *)0x0) || (*piVar6 == 0)) {\n            iVar9 = *local_2c;\n            if (*(int *)(iVar9 + 0x5c) != 0) goto LAB_000bfd4c;\n            *(undefined4 *)(iVar9 + 0x5c) = 1;\n            if (cVar1 == '\0') {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              if (iVar2 == 0) {\n                    \n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }\n              if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              uVar3 = *(undefined4 *)(iVar9 + 4);\n              uVar4 = *puVar8;\n              uVar7 = gettext("%s is not supported but is required for %s in %s");\n              FUN_000828d0(uVar7,local_24,uVar4,uVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }\n          puVar8 = puVar8 + 6;\n        } while (*(undefined4 **)(iVar9 + 0x54) != puVar8);\n        iVar9 = *local_2c;\n      }\n      if (*(int *)(iVar9 + 0x5c) != 0) {\nLAB_000bfd4c:\n                    \n        FUN_0008b620("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");\n      }\n      *(undefined4 *)(iVar9 + 0x5c) = 2;\nLAB_000bfd08:\n      local_2c = local_2c + 1;\n    } while (*(int **)(param_1 + 0x10) != local_2c);\n  }\n  return;\n}\n\n" (function_definition "void FUN_000bfbe0(int param_1)\n\n{\n  char cVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  int *piVar6;\n  undefined4 uVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  int *local_2c;\n  char *local_24;\n  \n  cVar1 = '\0';\n  local_2c = *(int **)(param_1 + 0xc);\n  if (local_2c != *(int **)(param_1 + 0x10)) {\n    do {\n      iVar9 = *local_2c;\n      puVar8 = *(undefined4 **)(iVar9 + 0x50);\n      if (puVar8 != *(undefined4 **)(iVar9 + 0x54)) {\n        do {\n          uVar5 = FUN_001aa970(*puVar8,puVar8[1],0xc70f6907);\n          piVar6 = (int *)FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      );\n          if ((piVar6 == (int *)0x0) || (*piVar6 == 0)) {\n            iVar9 = *local_2c;\n            if (*(int *)(iVar9 + 0x5c) != 0) goto LAB_000bfd4c;\n            *(undefined4 *)(iVar9 + 0x5c) = 1;\n            if (cVar1 == '\0') {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              if (iVar2 == 0) {\n                    \n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }\n              if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              uVar3 = *(undefined4 *)(iVar9 + 4);\n              uVar4 = *puVar8;\n              uVar7 = gettext("%s is not supported but is required for %s in %s");\n              FUN_000828d0(uVar7,local_24,uVar4,uVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }\n          puVar8 = puVar8 + 6;\n        } while (*(undefined4 **)(iVar9 + 0x54) != puVar8);\n        iVar9 = *local_2c;\n      }\n      if (*(int *)(iVar9 + 0x5c) != 0) {\nLAB_000bfd4c:\n                    \n        FUN_0008b620("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");\n      }\n      *(undefined4 *)(iVar9 + 0x5c) = 2;\nLAB_000bfd08:\n      local_2c = local_2c + 1;\n    } while (*(int **)(param_1 + 0x10) != local_2c);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_000bfbe0(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  char cVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  int *piVar6;\n  undefined4 uVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  int *local_2c;\n  char *local_24;\n  \n  cVar1 = '\0';\n  local_2c = *(int **)(param_1 + 0xc);\n  if (local_2c != *(int **)(param_1 + 0x10)) {\n    do {\n      iVar9 = *local_2c;\n      puVar8 = *(undefined4 **)(iVar9 + 0x50);\n      if (puVar8 != *(undefined4 **)(iVar9 + 0x54)) {\n        do {\n          uVar5 = FUN_001aa970(*puVar8,puVar8[1],0xc70f6907);\n          piVar6 = (int *)FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      );\n          if ((piVar6 == (int *)0x0) || (*piVar6 == 0)) {\n            iVar9 = *local_2c;\n            if (*(int *)(iVar9 + 0x5c) != 0) goto LAB_000bfd4c;\n            *(undefined4 *)(iVar9 + 0x5c) = 1;\n            if (cVar1 == '\0') {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              if (iVar2 == 0) {\n                    \n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }\n              if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              uVar3 = *(undefined4 *)(iVar9 + 4);\n              uVar4 = *puVar8;\n              uVar7 = gettext("%s is not supported but is required for %s in %s");\n              FUN_000828d0(uVar7,local_24,uVar4,uVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }\n          puVar8 = puVar8 + 6;\n        } while (*(undefined4 **)(iVar9 + 0x54) != puVar8);\n        iVar9 = *local_2c;\n      }\n      if (*(int *)(iVar9 + 0x5c) != 0) {\nLAB_000bfd4c:\n                    \n        FUN_0008b620("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");\n      }\n      *(undefined4 *)(iVar9 + 0x5c) = 2;\nLAB_000bfd08:\n      local_2c = local_2c + 1;\n    } while (*(int **)(param_1 + 0x10) != local_2c);\n  }\n  return;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int *local_2c;" primitive_type (pointer_declarator "*local_2c" * identifier) ;) (declaration "char *local_24;" primitive_type (pointer_declarator "*local_24" * identifier) ;) (expression_statement "cVar1 = '\0';" (assignment_expression "cVar1 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_2c = *(int **)(param_1 + 0xc);" (assignment_expression "local_2c = *(int **)(param_1 + 0xc)" identifier = (pointer_expression "*(int **)(param_1 + 0xc)" * (cast_expression "(int **)(param_1 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (local_2c != *(int **)(param_1 + 0x10)) {\n    do {\n      iVar9 = *local_2c;\n      puVar8 = *(undefined4 **)(iVar9 + 0x50);\n      if (puVar8 != *(undefined4 **)(iVar9 + 0x54)) {\n        do {\n          uVar5 = FUN_001aa970(*puVar8,puVar8[1],0xc70f6907);\n          piVar6 = (int *)FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      );\n          if ((piVar6 == (int *)0x0) || (*piVar6 == 0)) {\n            iVar9 = *local_2c;\n            if (*(int *)(iVar9 + 0x5c) != 0) goto LAB_000bfd4c;\n            *(undefined4 *)(iVar9 + 0x5c) = 1;\n            if (cVar1 == '\0') {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              if (iVar2 == 0) {\n                    \n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }\n              if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              uVar3 = *(undefined4 *)(iVar9 + 4);\n              uVar4 = *puVar8;\n              uVar7 = gettext("%s is not supported but is required for %s in %s");\n              FUN_000828d0(uVar7,local_24,uVar4,uVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }\n          puVar8 = puVar8 + 6;\n        } while (*(undefined4 **)(iVar9 + 0x54) != puVar8);\n        iVar9 = *local_2c;\n      }\n      if (*(int *)(iVar9 + 0x5c) != 0) {\nLAB_000bfd4c:\n                    \n        FUN_0008b620("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");\n      }\n      *(undefined4 *)(iVar9 + 0x5c) = 2;\nLAB_000bfd08:\n      local_2c = local_2c + 1;\n    } while (*(int **)(param_1 + 0x10) != local_2c);\n  }" if (parenthesized_expression "(local_2c != *(int **)(param_1 + 0x10))" ( (binary_expression "local_2c != *(int **)(param_1 + 0x10)" identifier != (pointer_expression "*(int **)(param_1 + 0x10)" * (cast_expression "(int **)(param_1 + 0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) )) (compound_statement "{\n    do {\n      iVar9 = *local_2c;\n      puVar8 = *(undefined4 **)(iVar9 + 0x50);\n      if (puVar8 != *(undefined4 **)(iVar9 + 0x54)) {\n        do {\n          uVar5 = FUN_001aa970(*puVar8,puVar8[1],0xc70f6907);\n          piVar6 = (int *)FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      );\n          if ((piVar6 == (int *)0x0) || (*piVar6 == 0)) {\n            iVar9 = *local_2c;\n            if (*(int *)(iVar9 + 0x5c) != 0) goto LAB_000bfd4c;\n            *(undefined4 *)(iVar9 + 0x5c) = 1;\n            if (cVar1 == '\0') {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              if (iVar2 == 0) {\n                    \n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }\n              if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              uVar3 = *(undefined4 *)(iVar9 + 4);\n              uVar4 = *puVar8;\n              uVar7 = gettext("%s is not supported but is required for %s in %s");\n              FUN_000828d0(uVar7,local_24,uVar4,uVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }\n          puVar8 = puVar8 + 6;\n        } while (*(undefined4 **)(iVar9 + 0x54) != puVar8);\n        iVar9 = *local_2c;\n      }\n      if (*(int *)(iVar9 + 0x5c) != 0) {\nLAB_000bfd4c:\n                    \n        FUN_0008b620("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");\n      }\n      *(undefined4 *)(iVar9 + 0x5c) = 2;\nLAB_000bfd08:\n      local_2c = local_2c + 1;\n    } while (*(int **)(param_1 + 0x10) != local_2c);\n  }" { (do_statement "do {\n      iVar9 = *local_2c;\n      puVar8 = *(undefined4 **)(iVar9 + 0x50);\n      if (puVar8 != *(undefined4 **)(iVar9 + 0x54)) {\n        do {\n          uVar5 = FUN_001aa970(*puVar8,puVar8[1],0xc70f6907);\n          piVar6 = (int *)FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      );\n          if ((piVar6 == (int *)0x0) || (*piVar6 == 0)) {\n            iVar9 = *local_2c;\n            if (*(int *)(iVar9 + 0x5c) != 0) goto LAB_000bfd4c;\n            *(undefined4 *)(iVar9 + 0x5c) = 1;\n            if (cVar1 == '\0') {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              if (iVar2 == 0) {\n                    \n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }\n              if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              uVar3 = *(undefined4 *)(iVar9 + 4);\n              uVar4 = *puVar8;\n              uVar7 = gettext("%s is not supported but is required for %s in %s");\n              FUN_000828d0(uVar7,local_24,uVar4,uVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }\n          puVar8 = puVar8 + 6;\n        } while (*(undefined4 **)(iVar9 + 0x54) != puVar8);\n        iVar9 = *local_2c;\n      }\n      if (*(int *)(iVar9 + 0x5c) != 0) {\nLAB_000bfd4c:\n                    \n        FUN_0008b620("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");\n      }\n      *(undefined4 *)(iVar9 + 0x5c) = 2;\nLAB_000bfd08:\n      local_2c = local_2c + 1;\n    } while (*(int **)(param_1 + 0x10) != local_2c);" do (compound_statement "{\n      iVar9 = *local_2c;\n      puVar8 = *(undefined4 **)(iVar9 + 0x50);\n      if (puVar8 != *(undefined4 **)(iVar9 + 0x54)) {\n        do {\n          uVar5 = FUN_001aa970(*puVar8,puVar8[1],0xc70f6907);\n          piVar6 = (int *)FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      );\n          if ((piVar6 == (int *)0x0) || (*piVar6 == 0)) {\n            iVar9 = *local_2c;\n            if (*(int *)(iVar9 + 0x5c) != 0) goto LAB_000bfd4c;\n            *(undefined4 *)(iVar9 + 0x5c) = 1;\n            if (cVar1 == '\0') {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              if (iVar2 == 0) {\n                    \n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }\n              if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              uVar3 = *(undefined4 *)(iVar9 + 4);\n              uVar4 = *puVar8;\n              uVar7 = gettext("%s is not supported but is required for %s in %s");\n              FUN_000828d0(uVar7,local_24,uVar4,uVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }\n          puVar8 = puVar8 + 6;\n        } while (*(undefined4 **)(iVar9 + 0x54) != puVar8);\n        iVar9 = *local_2c;\n      }\n      if (*(int *)(iVar9 + 0x5c) != 0) {\nLAB_000bfd4c:\n                    \n        FUN_0008b620("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");\n      }\n      *(undefined4 *)(iVar9 + 0x5c) = 2;\nLAB_000bfd08:\n      local_2c = local_2c + 1;\n    }" { (expression_statement "iVar9 = *local_2c;" (assignment_expression "iVar9 = *local_2c" identifier = (pointer_expression "*local_2c" * identifier)) ;) (expression_statement "puVar8 = *(undefined4 **)(iVar9 + 0x50);" (assignment_expression "puVar8 = *(undefined4 **)(iVar9 + 0x50)" identifier = (pointer_expression "*(undefined4 **)(iVar9 + 0x50)" * (cast_expression "(undefined4 **)(iVar9 + 0x50)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x50)" ( (binary_expression "iVar9 + 0x50" identifier + number_literal) ))))) ;) (if_statement "if (puVar8 != *(undefined4 **)(iVar9 + 0x54)) {\n        do {\n          uVar5 = FUN_001aa970(*puVar8,puVar8[1],0xc70f6907);\n          piVar6 = (int *)FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      );\n          if ((piVar6 == (int *)0x0) || (*piVar6 == 0)) {\n            iVar9 = *local_2c;\n            if (*(int *)(iVar9 + 0x5c) != 0) goto LAB_000bfd4c;\n            *(undefined4 *)(iVar9 + 0x5c) = 1;\n            if (cVar1 == '\0') {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              if (iVar2 == 0) {\n                    \n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }\n              if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              uVar3 = *(undefined4 *)(iVar9 + 4);\n              uVar4 = *puVar8;\n              uVar7 = gettext("%s is not supported but is required for %s in %s");\n              FUN_000828d0(uVar7,local_24,uVar4,uVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }\n          puVar8 = puVar8 + 6;\n        } while (*(undefined4 **)(iVar9 + 0x54) != puVar8);\n        iVar9 = *local_2c;\n      }" if (parenthesized_expression "(puVar8 != *(undefined4 **)(iVar9 + 0x54))" ( (binary_expression "puVar8 != *(undefined4 **)(iVar9 + 0x54)" identifier != (pointer_expression "*(undefined4 **)(iVar9 + 0x54)" * (cast_expression "(undefined4 **)(iVar9 + 0x54)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x54)" ( (binary_expression "iVar9 + 0x54" identifier + number_literal) ))))) )) (compound_statement "{\n        do {\n          uVar5 = FUN_001aa970(*puVar8,puVar8[1],0xc70f6907);\n          piVar6 = (int *)FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      );\n          if ((piVar6 == (int *)0x0) || (*piVar6 == 0)) {\n            iVar9 = *local_2c;\n            if (*(int *)(iVar9 + 0x5c) != 0) goto LAB_000bfd4c;\n            *(undefined4 *)(iVar9 + 0x5c) = 1;\n            if (cVar1 == '\0') {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              if (iVar2 == 0) {\n                    \n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }\n              if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              uVar3 = *(undefined4 *)(iVar9 + 4);\n              uVar4 = *puVar8;\n              uVar7 = gettext("%s is not supported but is required for %s in %s");\n              FUN_000828d0(uVar7,local_24,uVar4,uVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }\n          puVar8 = puVar8 + 6;\n        } while (*(undefined4 **)(iVar9 + 0x54) != puVar8);\n        iVar9 = *local_2c;\n      }" { (do_statement "do {\n          uVar5 = FUN_001aa970(*puVar8,puVar8[1],0xc70f6907);\n          piVar6 = (int *)FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      );\n          if ((piVar6 == (int *)0x0) || (*piVar6 == 0)) {\n            iVar9 = *local_2c;\n            if (*(int *)(iVar9 + 0x5c) != 0) goto LAB_000bfd4c;\n            *(undefined4 *)(iVar9 + 0x5c) = 1;\n            if (cVar1 == '\0') {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              if (iVar2 == 0) {\n                    \n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }\n              if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              uVar3 = *(undefined4 *)(iVar9 + 4);\n              uVar4 = *puVar8;\n              uVar7 = gettext("%s is not supported but is required for %s in %s");\n              FUN_000828d0(uVar7,local_24,uVar4,uVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }\n          puVar8 = puVar8 + 6;\n        } while (*(undefined4 **)(iVar9 + 0x54) != puVar8);" do (compound_statement "{\n          uVar5 = FUN_001aa970(*puVar8,puVar8[1],0xc70f6907);\n          piVar6 = (int *)FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      );\n          if ((piVar6 == (int *)0x0) || (*piVar6 == 0)) {\n            iVar9 = *local_2c;\n            if (*(int *)(iVar9 + 0x5c) != 0) goto LAB_000bfd4c;\n            *(undefined4 *)(iVar9 + 0x5c) = 1;\n            if (cVar1 == '\0') {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              if (iVar2 == 0) {\n                    \n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }\n              if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              uVar3 = *(undefined4 *)(iVar9 + 4);\n              uVar4 = *puVar8;\n              uVar7 = gettext("%s is not supported but is required for %s in %s");\n              FUN_000828d0(uVar7,local_24,uVar4,uVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }\n          puVar8 = puVar8 + 6;\n        }" { (expression_statement "uVar5 = FUN_001aa970(*puVar8,puVar8[1],0xc70f6907);" (assignment_expression "uVar5 = FUN_001aa970(*puVar8,puVar8[1],0xc70f6907)" identifier = (call_expression "FUN_001aa970(*puVar8,puVar8[1],0xc70f6907)" identifier (argument_list "(*puVar8,puVar8[1],0xc70f6907)" ( (pointer_expression "*puVar8" * identifier) , (subscript_expression "puVar8[1]" identifier [ number_literal ]) , number_literal )))) ;) (expression_statement "piVar6 = (int *)FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      );" (assignment_expression "piVar6 = (int *)FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      )" identifier = (cast_expression "(int *)FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      )" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      )" identifier (argument_list "(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      )" ( (binary_expression "param_1 + 0x18" identifier + number_literal) , (binary_expression "uVar5 % *(uint *)(param_1 + 0x1c)" identifier % (pointer_expression "*(uint *)(param_1 + 0x1c)" * (cast_expression "(uint *)(param_1 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) , identifier , identifier ))))) ;) (if_statement "if ((piVar6 == (int *)0x0) || (*piVar6 == 0)) {\n            iVar9 = *local_2c;\n            if (*(int *)(iVar9 + 0x5c) != 0) goto LAB_000bfd4c;\n            *(undefined4 *)(iVar9 + 0x5c) = 1;\n            if (cVar1 == '\0') {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              if (iVar2 == 0) {\n                    \n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }\n              if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              uVar3 = *(undefined4 *)(iVar9 + 4);\n              uVar4 = *puVar8;\n              uVar7 = gettext("%s is not supported but is required for %s in %s");\n              FUN_000828d0(uVar7,local_24,uVar4,uVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }" if (parenthesized_expression "((piVar6 == (int *)0x0) || (*piVar6 == 0))" ( (binary_expression "(piVar6 == (int *)0x0) || (*piVar6 == 0)" (parenthesized_expression "(piVar6 == (int *)0x0)" ( (binary_expression "piVar6 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*piVar6 == 0)" ( (binary_expression "*piVar6 == 0" (pointer_expression "*piVar6" * identifier) == number_literal) ))) )) (compound_statement "{\n            iVar9 = *local_2c;\n            if (*(int *)(iVar9 + 0x5c) != 0) goto LAB_000bfd4c;\n            *(undefined4 *)(iVar9 + 0x5c) = 1;\n            if (cVar1 == '\0') {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              if (iVar2 == 0) {\n                    \n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }\n              if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              uVar3 = *(undefined4 *)(iVar9 + 4);\n              uVar4 = *puVar8;\n              uVar7 = gettext("%s is not supported but is required for %s in %s");\n              FUN_000828d0(uVar7,local_24,uVar4,uVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }" { (expression_statement "iVar9 = *local_2c;" (assignment_expression "iVar9 = *local_2c" identifier = (pointer_expression "*local_2c" * identifier)) ;) (if_statement "if (*(int *)(iVar9 + 0x5c) != 0) goto LAB_000bfd4c;" if (parenthesized_expression "(*(int *)(iVar9 + 0x5c) != 0)" ( (binary_expression "*(int *)(iVar9 + 0x5c) != 0" (pointer_expression "*(int *)(iVar9 + 0x5c)" * (cast_expression "(int *)(iVar9 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x5c)" ( (binary_expression "iVar9 + 0x5c" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_000bfd4c;" goto statement_identifier ;)) (expression_statement "*(undefined4 *)(iVar9 + 0x5c) = 1;" (assignment_expression "*(undefined4 *)(iVar9 + 0x5c) = 1" (pointer_expression "*(undefined4 *)(iVar9 + 0x5c)" * (cast_expression "(undefined4 *)(iVar9 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x5c)" ( (binary_expression "iVar9 + 0x5c" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (cVar1 == '\0') {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              if (iVar2 == 0) {\n                    \n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }\n              if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              uVar3 = *(undefined4 *)(iVar9 + 4);\n              uVar4 = *puVar8;\n              uVar7 = gettext("%s is not supported but is required for %s in %s");\n              FUN_000828d0(uVar7,local_24,uVar4,uVar3);\n            }" if (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              if (iVar2 == 0) {\n                    \n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }\n              if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              uVar3 = *(undefined4 *)(iVar9 + 4);\n              uVar4 = *puVar8;\n              uVar7 = gettext("%s is not supported but is required for %s in %s");\n              FUN_000828d0(uVar7,local_24,uVar4,uVar3);\n            }" { (expression_statement "iVar2 = *(int *)(DAT_0033f2f0 + 8);" (assignment_expression "iVar2 = *(int *)(DAT_0033f2f0 + 8)" identifier = (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" * (cast_expression "(int *)(DAT_0033f2f0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 8)" ( (binary_expression "DAT_0033f2f0 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar2 == 0) {\n                    \n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }" { (expression_statement "FUN_0008b620("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_0008b620("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (if_statement "if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }" if (parenthesized_expression "(*(char *)(iVar2 + 0x9dd) == '\0')" ( (binary_expression "*(char *)(iVar2 + 0x9dd) == '\0'" (pointer_expression "*(char *)(iVar2 + 0x9dd)" * (cast_expression "(char *)(iVar2 + 0x9dd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x9dd)" ( (binary_expression "iVar2 + 0x9dd" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }" { (expression_statement "cVar1 = *(char *)(iVar2 + 0x109);" (assignment_expression "cVar1 = *(char *)(iVar2 + 0x109)" identifier = (pointer_expression "*(char *)(iVar2 + 0x109)" * (cast_expression "(char *)(iVar2 + 0x109)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x109)" ( (binary_expression "iVar2 + 0x109" identifier + number_literal) ))))) ;) (if_statement "if (cVar1 == '\0') goto LAB_000bfd08;" if (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000bfd08;" goto statement_identifier ;)) (expression_statement "local_24 = "--add-needed";" (assignment_expression "local_24 = "--add-needed"" identifier = (string_literal ""--add-needed"" " string_content ")) ;) }) (else_clause "else {\n                local_24 = "--copy-dt-needed-entries";\n              }" else (compound_statement "{\n                local_24 = "--copy-dt-needed-entries";\n              }" { (expression_statement "local_24 = "--copy-dt-needed-entries";" (assignment_expression "local_24 = "--copy-dt-needed-entries"" identifier = (string_literal ""--copy-dt-needed-entries"" " string_content ")) ;) }))) (expression_statement "uVar3 = *(undefined4 *)(iVar9 + 4);" (assignment_expression "uVar3 = *(undefined4 *)(iVar9 + 4)" identifier = (pointer_expression "*(undefined4 *)(iVar9 + 4)" * (cast_expression "(undefined4 *)(iVar9 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 4)" ( (binary_expression "iVar9 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *puVar8;" (assignment_expression "uVar4 = *puVar8" identifier = (pointer_expression "*puVar8" * identifier)) ;) (expression_statement "uVar7 = gettext("%s is not supported but is required for %s in %s");" (assignment_expression "uVar7 = gettext("%s is not supported but is required for %s in %s")" identifier = (call_expression "gettext("%s is not supported but is required for %s in %s")" identifier (argument_list "("%s is not supported but is required for %s in %s")" ( (string_literal ""%s is not supported but is required for %s in %s"" " string_content ") )))) ;) (expression_statement "FUN_000828d0(uVar7,local_24,uVar4,uVar3);" (call_expression "FUN_000828d0(uVar7,local_24,uVar4,uVar3)" identifier (argument_list "(uVar7,local_24,uVar4,uVar3)" ( identifier , identifier , identifier , identifier ))) ;) })) (expression_statement "cVar1 = '\x01';" (assignment_expression "cVar1 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (goto_statement "goto LAB_000bfd08;" goto statement_identifier ;) })) (expression_statement "puVar8 = puVar8 + 6;" (assignment_expression "puVar8 = puVar8 + 6" identifier = (binary_expression "puVar8 + 6" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(undefined4 **)(iVar9 + 0x54) != puVar8)" ( (binary_expression "*(undefined4 **)(iVar9 + 0x54) != puVar8" (pointer_expression "*(undefined4 **)(iVar9 + 0x54)" * (cast_expression "(undefined4 **)(iVar9 + 0x54)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x54)" ( (binary_expression "iVar9 + 0x54" identifier + number_literal) )))) != identifier) )) ;) (expression_statement "iVar9 = *local_2c;" (assignment_expression "iVar9 = *local_2c" identifier = (pointer_expression "*local_2c" * identifier)) ;) })) (if_statement "if (*(int *)(iVar9 + 0x5c) != 0) {\nLAB_000bfd4c:\n                    \n        FUN_0008b620("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");\n      }" if (parenthesized_expression "(*(int *)(iVar9 + 0x5c) != 0)" ( (binary_expression "*(int *)(iVar9 + 0x5c) != 0" (pointer_expression "*(int *)(iVar9 + 0x5c)" * (cast_expression "(int *)(iVar9 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x5c)" ( (binary_expression "iVar9 + 0x5c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\nLAB_000bfd4c:\n                    \n        FUN_0008b620("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");\n      }" { (labeled_statement "LAB_000bfd4c:\n                    \n        FUN_0008b620("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");" statement_identifier : (expression_statement "FUN_0008b620("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");" (call_expression "FUN_0008b620("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries")" identifier (argument_list "("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries")" ( (string_literal ""../../gold/dynobj.h"" " string_content ") , number_literal , (string_literal ""set_has_unknown_needed_entries"" " string_content ") ))) ;)) })) (expression_statement "*(undefined4 *)(iVar9 + 0x5c) = 2;" (assignment_expression "*(undefined4 *)(iVar9 + 0x5c) = 2" (pointer_expression "*(undefined4 *)(iVar9 + 0x5c)" * (cast_expression "(undefined4 *)(iVar9 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x5c)" ( (binary_expression "iVar9 + 0x5c" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_000bfd08:\n      local_2c = local_2c + 1;" statement_identifier : (expression_statement "local_2c = local_2c + 1;" (assignment_expression "local_2c = local_2c + 1" identifier = (binary_expression "local_2c + 1" identifier + number_literal)) ;)) }) while (parenthesized_expression "(*(int **)(param_1 + 0x10) != local_2c)" ( (binary_expression "*(int **)(param_1 + 0x10) != local_2c" (pointer_expression "*(int **)(param_1 + 0x10)" * (cast_expression "(int **)(param_1 + 0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) != identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , (subscript_expression IDENT [ LIT ]) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT % (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (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 { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) ;) })) (return_statement return ;) })))
(function_definition "void FUN_000bfbe0(int param_1)\n\n{\n  char cVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  int *piVar6;\n  undefined4 uVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  int *local_2c;\n  char *local_24;\n  \n  cVar1 = '\0';\n  local_2c = *(int **)(param_1 + 0xc);\n  if (local_2c != *(int **)(param_1 + 0x10)) {\n    do {\n      iVar9 = *local_2c;\n      puVar8 = *(undefined4 **)(iVar9 + 0x50);\n      if (puVar8 != *(undefined4 **)(iVar9 + 0x54)) {\n        do {\n          uVar5 = FUN_001aa970(*puVar8,puVar8[1],0xc70f6907);\n          piVar6 = (int *)FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      );\n          if ((piVar6 == (int *)0x0) || (*piVar6 == 0)) {\n            iVar9 = *local_2c;\n            if (*(int *)(iVar9 + 0x5c) != 0) goto LAB_000bfd4c;\n            *(undefined4 *)(iVar9 + 0x5c) = 1;\n            if (cVar1 == '\0') {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              if (iVar2 == 0) {\n                    \n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }\n              if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              uVar3 = *(undefined4 *)(iVar9 + 4);\n              uVar4 = *puVar8;\n              uVar7 = gettext("%s is not supported but is required for %s in %s");\n              FUN_000828d0(uVar7,local_24,uVar4,uVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }\n          puVar8 = puVar8 + 6;\n        } while (*(undefined4 **)(iVar9 + 0x54) != puVar8);\n        iVar9 = *local_2c;\n      }\n      if (*(int *)(iVar9 + 0x5c) != 0) {\nLAB_000bfd4c:\n                    \n        FUN_0008b620("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");\n      }\n      *(undefined4 *)(iVar9 + 0x5c) = 2;\nLAB_000bfd08:\n      local_2c = local_2c + 1;\n    } while (*(int **)(param_1 + 0x10) != local_2c);\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_000bfbe0(int param_1)" (identifier "FUN_000bfbe0") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  char cVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  int *piVar6;\n  undefined4 uVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  int *local_2c;\n  char *local_24;\n  \n  cVar1 = '\0';\n  local_2c = *(int **)(param_1 + 0xc);\n  if (local_2c != *(int **)(param_1 + 0x10)) {\n    do {\n      iVar9 = *local_2c;\n      puVar8 = *(undefined4 **)(iVar9 + 0x50);\n      if (puVar8 != *(undefined4 **)(iVar9 + 0x54)) {\n        do {\n          uVar5 = FUN_001aa970(*puVar8,puVar8[1],0xc70f6907);\n          piVar6 = (int *)FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      );\n          if ((piVar6 == (int *)0x0) || (*piVar6 == 0)) {\n            iVar9 = *local_2c;\n            if (*(int *)(iVar9 + 0x5c) != 0) goto LAB_000bfd4c;\n            *(undefined4 *)(iVar9 + 0x5c) = 1;\n            if (cVar1 == '\0') {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              if (iVar2 == 0) {\n                    \n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }\n              if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              uVar3 = *(undefined4 *)(iVar9 + 4);\n              uVar4 = *puVar8;\n              uVar7 = gettext("%s is not supported but is required for %s in %s");\n              FUN_000828d0(uVar7,local_24,uVar4,uVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }\n          puVar8 = puVar8 + 6;\n        } while (*(undefined4 **)(iVar9 + 0x54) != puVar8);\n        iVar9 = *local_2c;\n      }\n      if (*(int *)(iVar9 + 0x5c) != 0) {\nLAB_000bfd4c:\n                    \n        FUN_0008b620("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");\n      }\n      *(undefined4 *)(iVar9 + 0x5c) = 2;\nLAB_000bfd08:\n      local_2c = local_2c + 1;\n    } while (*(int **)(param_1 + 0x10) != local_2c);\n  }\n  return;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "undefined4 *puVar8;" (type_identifier "undefined4") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int *local_2c;" (primitive_type "int") (pointer_declarator "*local_2c" (* "*") (identifier "local_2c")) (; ";")) (declaration "char *local_24;" (primitive_type "char") (pointer_declarator "*local_24" (* "*") (identifier "local_24")) (; ";")) (expression_statement "cVar1 = '\0';" (assignment_expression "cVar1 = '\0'" (identifier "cVar1") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "local_2c = *(int **)(param_1 + 0xc);" (assignment_expression "local_2c = *(int **)(param_1 + 0xc)" (identifier "local_2c") (= "=") (pointer_expression "*(int **)(param_1 + 0xc)" (* "*") (cast_expression "(int **)(param_1 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (local_2c != *(int **)(param_1 + 0x10)) {\n    do {\n      iVar9 = *local_2c;\n      puVar8 = *(undefined4 **)(iVar9 + 0x50);\n      if (puVar8 != *(undefined4 **)(iVar9 + 0x54)) {\n        do {\n          uVar5 = FUN_001aa970(*puVar8,puVar8[1],0xc70f6907);\n          piVar6 = (int *)FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      );\n          if ((piVar6 == (int *)0x0) || (*piVar6 == 0)) {\n            iVar9 = *local_2c;\n            if (*(int *)(iVar9 + 0x5c) != 0) goto LAB_000bfd4c;\n            *(undefined4 *)(iVar9 + 0x5c) = 1;\n            if (cVar1 == '\0') {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              if (iVar2 == 0) {\n                    \n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }\n              if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              uVar3 = *(undefined4 *)(iVar9 + 4);\n              uVar4 = *puVar8;\n              uVar7 = gettext("%s is not supported but is required for %s in %s");\n              FUN_000828d0(uVar7,local_24,uVar4,uVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }\n          puVar8 = puVar8 + 6;\n        } while (*(undefined4 **)(iVar9 + 0x54) != puVar8);\n        iVar9 = *local_2c;\n      }\n      if (*(int *)(iVar9 + 0x5c) != 0) {\nLAB_000bfd4c:\n                    \n        FUN_0008b620("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");\n      }\n      *(undefined4 *)(iVar9 + 0x5c) = 2;\nLAB_000bfd08:\n      local_2c = local_2c + 1;\n    } while (*(int **)(param_1 + 0x10) != local_2c);\n  }" (if "if") (parenthesized_expression "(local_2c != *(int **)(param_1 + 0x10))" (( "(") (binary_expression "local_2c != *(int **)(param_1 + 0x10)" (identifier "local_2c") (!= "!=") (pointer_expression "*(int **)(param_1 + 0x10)" (* "*") (cast_expression "(int **)(param_1 + 0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (compound_statement "{\n    do {\n      iVar9 = *local_2c;\n      puVar8 = *(undefined4 **)(iVar9 + 0x50);\n      if (puVar8 != *(undefined4 **)(iVar9 + 0x54)) {\n        do {\n          uVar5 = FUN_001aa970(*puVar8,puVar8[1],0xc70f6907);\n          piVar6 = (int *)FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      );\n          if ((piVar6 == (int *)0x0) || (*piVar6 == 0)) {\n            iVar9 = *local_2c;\n            if (*(int *)(iVar9 + 0x5c) != 0) goto LAB_000bfd4c;\n            *(undefined4 *)(iVar9 + 0x5c) = 1;\n            if (cVar1 == '\0') {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              if (iVar2 == 0) {\n                    \n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }\n              if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              uVar3 = *(undefined4 *)(iVar9 + 4);\n              uVar4 = *puVar8;\n              uVar7 = gettext("%s is not supported but is required for %s in %s");\n              FUN_000828d0(uVar7,local_24,uVar4,uVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }\n          puVar8 = puVar8 + 6;\n        } while (*(undefined4 **)(iVar9 + 0x54) != puVar8);\n        iVar9 = *local_2c;\n      }\n      if (*(int *)(iVar9 + 0x5c) != 0) {\nLAB_000bfd4c:\n                    \n        FUN_0008b620("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");\n      }\n      *(undefined4 *)(iVar9 + 0x5c) = 2;\nLAB_000bfd08:\n      local_2c = local_2c + 1;\n    } while (*(int **)(param_1 + 0x10) != local_2c);\n  }" ({ "{") (do_statement "do {\n      iVar9 = *local_2c;\n      puVar8 = *(undefined4 **)(iVar9 + 0x50);\n      if (puVar8 != *(undefined4 **)(iVar9 + 0x54)) {\n        do {\n          uVar5 = FUN_001aa970(*puVar8,puVar8[1],0xc70f6907);\n          piVar6 = (int *)FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      );\n          if ((piVar6 == (int *)0x0) || (*piVar6 == 0)) {\n            iVar9 = *local_2c;\n            if (*(int *)(iVar9 + 0x5c) != 0) goto LAB_000bfd4c;\n            *(undefined4 *)(iVar9 + 0x5c) = 1;\n            if (cVar1 == '\0') {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              if (iVar2 == 0) {\n                    \n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }\n              if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              uVar3 = *(undefined4 *)(iVar9 + 4);\n              uVar4 = *puVar8;\n              uVar7 = gettext("%s is not supported but is required for %s in %s");\n              FUN_000828d0(uVar7,local_24,uVar4,uVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }\n          puVar8 = puVar8 + 6;\n        } while (*(undefined4 **)(iVar9 + 0x54) != puVar8);\n        iVar9 = *local_2c;\n      }\n      if (*(int *)(iVar9 + 0x5c) != 0) {\nLAB_000bfd4c:\n                    \n        FUN_0008b620("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");\n      }\n      *(undefined4 *)(iVar9 + 0x5c) = 2;\nLAB_000bfd08:\n      local_2c = local_2c + 1;\n    } while (*(int **)(param_1 + 0x10) != local_2c);" (do "do") (compound_statement "{\n      iVar9 = *local_2c;\n      puVar8 = *(undefined4 **)(iVar9 + 0x50);\n      if (puVar8 != *(undefined4 **)(iVar9 + 0x54)) {\n        do {\n          uVar5 = FUN_001aa970(*puVar8,puVar8[1],0xc70f6907);\n          piVar6 = (int *)FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      );\n          if ((piVar6 == (int *)0x0) || (*piVar6 == 0)) {\n            iVar9 = *local_2c;\n            if (*(int *)(iVar9 + 0x5c) != 0) goto LAB_000bfd4c;\n            *(undefined4 *)(iVar9 + 0x5c) = 1;\n            if (cVar1 == '\0') {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              if (iVar2 == 0) {\n                    \n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }\n              if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              uVar3 = *(undefined4 *)(iVar9 + 4);\n              uVar4 = *puVar8;\n              uVar7 = gettext("%s is not supported but is required for %s in %s");\n              FUN_000828d0(uVar7,local_24,uVar4,uVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }\n          puVar8 = puVar8 + 6;\n        } while (*(undefined4 **)(iVar9 + 0x54) != puVar8);\n        iVar9 = *local_2c;\n      }\n      if (*(int *)(iVar9 + 0x5c) != 0) {\nLAB_000bfd4c:\n                    \n        FUN_0008b620("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");\n      }\n      *(undefined4 *)(iVar9 + 0x5c) = 2;\nLAB_000bfd08:\n      local_2c = local_2c + 1;\n    }" ({ "{") (expression_statement "iVar9 = *local_2c;" (assignment_expression "iVar9 = *local_2c" (identifier "iVar9") (= "=") (pointer_expression "*local_2c" (* "*") (identifier "local_2c"))) (; ";")) (expression_statement "puVar8 = *(undefined4 **)(iVar9 + 0x50);" (assignment_expression "puVar8 = *(undefined4 **)(iVar9 + 0x50)" (identifier "puVar8") (= "=") (pointer_expression "*(undefined4 **)(iVar9 + 0x50)" (* "*") (cast_expression "(undefined4 **)(iVar9 + 0x50)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + 0x50)" (( "(") (binary_expression "iVar9 + 0x50" (identifier "iVar9") (+ "+") (number_literal "0x50")) () ")"))))) (; ";")) (if_statement "if (puVar8 != *(undefined4 **)(iVar9 + 0x54)) {\n        do {\n          uVar5 = FUN_001aa970(*puVar8,puVar8[1],0xc70f6907);\n          piVar6 = (int *)FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      );\n          if ((piVar6 == (int *)0x0) || (*piVar6 == 0)) {\n            iVar9 = *local_2c;\n            if (*(int *)(iVar9 + 0x5c) != 0) goto LAB_000bfd4c;\n            *(undefined4 *)(iVar9 + 0x5c) = 1;\n            if (cVar1 == '\0') {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              if (iVar2 == 0) {\n                    \n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }\n              if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              uVar3 = *(undefined4 *)(iVar9 + 4);\n              uVar4 = *puVar8;\n              uVar7 = gettext("%s is not supported but is required for %s in %s");\n              FUN_000828d0(uVar7,local_24,uVar4,uVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }\n          puVar8 = puVar8 + 6;\n        } while (*(undefined4 **)(iVar9 + 0x54) != puVar8);\n        iVar9 = *local_2c;\n      }" (if "if") (parenthesized_expression "(puVar8 != *(undefined4 **)(iVar9 + 0x54))" (( "(") (binary_expression "puVar8 != *(undefined4 **)(iVar9 + 0x54)" (identifier "puVar8") (!= "!=") (pointer_expression "*(undefined4 **)(iVar9 + 0x54)" (* "*") (cast_expression "(undefined4 **)(iVar9 + 0x54)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + 0x54)" (( "(") (binary_expression "iVar9 + 0x54" (identifier "iVar9") (+ "+") (number_literal "0x54")) () ")"))))) () ")")) (compound_statement "{\n        do {\n          uVar5 = FUN_001aa970(*puVar8,puVar8[1],0xc70f6907);\n          piVar6 = (int *)FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      );\n          if ((piVar6 == (int *)0x0) || (*piVar6 == 0)) {\n            iVar9 = *local_2c;\n            if (*(int *)(iVar9 + 0x5c) != 0) goto LAB_000bfd4c;\n            *(undefined4 *)(iVar9 + 0x5c) = 1;\n            if (cVar1 == '\0') {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              if (iVar2 == 0) {\n                    \n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }\n              if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              uVar3 = *(undefined4 *)(iVar9 + 4);\n              uVar4 = *puVar8;\n              uVar7 = gettext("%s is not supported but is required for %s in %s");\n              FUN_000828d0(uVar7,local_24,uVar4,uVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }\n          puVar8 = puVar8 + 6;\n        } while (*(undefined4 **)(iVar9 + 0x54) != puVar8);\n        iVar9 = *local_2c;\n      }" ({ "{") (do_statement "do {\n          uVar5 = FUN_001aa970(*puVar8,puVar8[1],0xc70f6907);\n          piVar6 = (int *)FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      );\n          if ((piVar6 == (int *)0x0) || (*piVar6 == 0)) {\n            iVar9 = *local_2c;\n            if (*(int *)(iVar9 + 0x5c) != 0) goto LAB_000bfd4c;\n            *(undefined4 *)(iVar9 + 0x5c) = 1;\n            if (cVar1 == '\0') {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              if (iVar2 == 0) {\n                    \n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }\n              if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              uVar3 = *(undefined4 *)(iVar9 + 4);\n              uVar4 = *puVar8;\n              uVar7 = gettext("%s is not supported but is required for %s in %s");\n              FUN_000828d0(uVar7,local_24,uVar4,uVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }\n          puVar8 = puVar8 + 6;\n        } while (*(undefined4 **)(iVar9 + 0x54) != puVar8);" (do "do") (compound_statement "{\n          uVar5 = FUN_001aa970(*puVar8,puVar8[1],0xc70f6907);\n          piVar6 = (int *)FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      );\n          if ((piVar6 == (int *)0x0) || (*piVar6 == 0)) {\n            iVar9 = *local_2c;\n            if (*(int *)(iVar9 + 0x5c) != 0) goto LAB_000bfd4c;\n            *(undefined4 *)(iVar9 + 0x5c) = 1;\n            if (cVar1 == '\0') {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              if (iVar2 == 0) {\n                    \n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }\n              if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              uVar3 = *(undefined4 *)(iVar9 + 4);\n              uVar4 = *puVar8;\n              uVar7 = gettext("%s is not supported but is required for %s in %s");\n              FUN_000828d0(uVar7,local_24,uVar4,uVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }\n          puVar8 = puVar8 + 6;\n        }" ({ "{") (expression_statement "uVar5 = FUN_001aa970(*puVar8,puVar8[1],0xc70f6907);" (assignment_expression "uVar5 = FUN_001aa970(*puVar8,puVar8[1],0xc70f6907)" (identifier "uVar5") (= "=") (call_expression "FUN_001aa970(*puVar8,puVar8[1],0xc70f6907)" (identifier "FUN_001aa970") (argument_list "(*puVar8,puVar8[1],0xc70f6907)" (( "(") (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (, ",") (subscript_expression "puVar8[1]" (identifier "puVar8") ([ "[") (number_literal "1") (] "]")) (, ",") (number_literal "0xc70f6907") () ")")))) (; ";")) (expression_statement "piVar6 = (int *)FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      );" (assignment_expression "piVar6 = (int *)FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      )" (identifier "piVar6") (= "=") (cast_expression "(int *)FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      )" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      )" (identifier "FUN_000cddd0") (argument_list "(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5\n                                      )" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) (, ",") (binary_expression "uVar5 % *(uint *)(param_1 + 0x1c)" (identifier "uVar5") (% "%") (pointer_expression "*(uint *)(param_1 + 0x1c)" (* "*") (cast_expression "(uint *)(param_1 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")"))))) (, ",") (identifier "puVar8") (, ",") (identifier "uVar5") () ")"))))) (; ";")) (if_statement "if ((piVar6 == (int *)0x0) || (*piVar6 == 0)) {\n            iVar9 = *local_2c;\n            if (*(int *)(iVar9 + 0x5c) != 0) goto LAB_000bfd4c;\n            *(undefined4 *)(iVar9 + 0x5c) = 1;\n            if (cVar1 == '\0') {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              if (iVar2 == 0) {\n                    \n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }\n              if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              uVar3 = *(undefined4 *)(iVar9 + 4);\n              uVar4 = *puVar8;\n              uVar7 = gettext("%s is not supported but is required for %s in %s");\n              FUN_000828d0(uVar7,local_24,uVar4,uVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }" (if "if") (parenthesized_expression "((piVar6 == (int *)0x0) || (*piVar6 == 0))" (( "(") (binary_expression "(piVar6 == (int *)0x0) || (*piVar6 == 0)" (parenthesized_expression "(piVar6 == (int *)0x0)" (( "(") (binary_expression "piVar6 == (int *)0x0" (identifier "piVar6") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(*piVar6 == 0)" (( "(") (binary_expression "*piVar6 == 0" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n            iVar9 = *local_2c;\n            if (*(int *)(iVar9 + 0x5c) != 0) goto LAB_000bfd4c;\n            *(undefined4 *)(iVar9 + 0x5c) = 1;\n            if (cVar1 == '\0') {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              if (iVar2 == 0) {\n                    \n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }\n              if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              uVar3 = *(undefined4 *)(iVar9 + 4);\n              uVar4 = *puVar8;\n              uVar7 = gettext("%s is not supported but is required for %s in %s");\n              FUN_000828d0(uVar7,local_24,uVar4,uVar3);\n            }\n            cVar1 = '\x01';\n            goto LAB_000bfd08;\n          }" ({ "{") (expression_statement "iVar9 = *local_2c;" (assignment_expression "iVar9 = *local_2c" (identifier "iVar9") (= "=") (pointer_expression "*local_2c" (* "*") (identifier "local_2c"))) (; ";")) (if_statement "if (*(int *)(iVar9 + 0x5c) != 0) goto LAB_000bfd4c;" (if "if") (parenthesized_expression "(*(int *)(iVar9 + 0x5c) != 0)" (( "(") (binary_expression "*(int *)(iVar9 + 0x5c) != 0" (pointer_expression "*(int *)(iVar9 + 0x5c)" (* "*") (cast_expression "(int *)(iVar9 + 0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x5c)" (( "(") (binary_expression "iVar9 + 0x5c" (identifier "iVar9") (+ "+") (number_literal "0x5c")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000bfd4c;" (goto "goto") (statement_identifier "LAB_000bfd4c") (; ";"))) (expression_statement "*(undefined4 *)(iVar9 + 0x5c) = 1;" (assignment_expression "*(undefined4 *)(iVar9 + 0x5c) = 1" (pointer_expression "*(undefined4 *)(iVar9 + 0x5c)" (* "*") (cast_expression "(undefined4 *)(iVar9 + 0x5c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x5c)" (( "(") (binary_expression "iVar9 + 0x5c" (identifier "iVar9") (+ "+") (number_literal "0x5c")) () ")")))) (= "=") (number_literal "1")) (; ";")) (if_statement "if (cVar1 == '\0') {\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              if (iVar2 == 0) {\n                    \n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }\n              if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              uVar3 = *(undefined4 *)(iVar9 + 4);\n              uVar4 = *puVar8;\n              uVar7 = gettext("%s is not supported but is required for %s in %s");\n              FUN_000828d0(uVar7,local_24,uVar4,uVar3);\n            }" (if "if") (parenthesized_expression "(cVar1 == '\0')" (( "(") (binary_expression "cVar1 == '\0'" (identifier "cVar1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              iVar2 = *(int *)(DAT_0033f2f0 + 8);\n              if (iVar2 == 0) {\n                    \n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }\n              if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }\n              uVar3 = *(undefined4 *)(iVar9 + 4);\n              uVar4 = *puVar8;\n              uVar7 = gettext("%s is not supported but is required for %s in %s");\n              FUN_000828d0(uVar7,local_24,uVar4,uVar3);\n            }" ({ "{") (expression_statement "iVar2 = *(int *)(DAT_0033f2f0 + 8);" (assignment_expression "iVar2 = *(int *)(DAT_0033f2f0 + 8)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" (* "*") (cast_expression "(int *)(DAT_0033f2f0 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0033f2f0 + 8)" (( "(") (binary_expression "DAT_0033f2f0 + 8" (identifier "DAT_0033f2f0") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar2 == 0) {\n                    \n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n                FUN_0008b620("../../gold/parameters.h",0x5c,"options");\n              }" ({ "{") (expression_statement "FUN_0008b620("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_0008b620("../../gold/parameters.h",0x5c,"options")" (identifier "FUN_0008b620") (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") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(char *)(iVar2 + 0x9dd) == '\0') {\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }\n              else {\n                local_24 = "--copy-dt-needed-entries";\n              }" (if "if") (parenthesized_expression "(*(char *)(iVar2 + 0x9dd) == '\0')" (( "(") (binary_expression "*(char *)(iVar2 + 0x9dd) == '\0'" (pointer_expression "*(char *)(iVar2 + 0x9dd)" (* "*") (cast_expression "(char *)(iVar2 + 0x9dd)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x9dd)" (( "(") (binary_expression "iVar2 + 0x9dd" (identifier "iVar2") (+ "+") (number_literal "0x9dd")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                cVar1 = *(char *)(iVar2 + 0x109);\n                if (cVar1 == '\0') goto LAB_000bfd08;\n                local_24 = "--add-needed";\n              }" ({ "{") (expression_statement "cVar1 = *(char *)(iVar2 + 0x109);" (assignment_expression "cVar1 = *(char *)(iVar2 + 0x109)" (identifier "cVar1") (= "=") (pointer_expression "*(char *)(iVar2 + 0x109)" (* "*") (cast_expression "(char *)(iVar2 + 0x109)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x109)" (( "(") (binary_expression "iVar2 + 0x109" (identifier "iVar2") (+ "+") (number_literal "0x109")) () ")"))))) (; ";")) (if_statement "if (cVar1 == '\0') goto LAB_000bfd08;" (if "if") (parenthesized_expression "(cVar1 == '\0')" (( "(") (binary_expression "cVar1 == '\0'" (identifier "cVar1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_000bfd08;" (goto "goto") (statement_identifier "LAB_000bfd08") (; ";"))) (expression_statement "local_24 = "--add-needed";" (assignment_expression "local_24 = "--add-needed"" (identifier "local_24") (= "=") (string_literal ""--add-needed"" (" """) (string_content "--add-needed") (" """))) (; ";")) (} "}")) (else_clause "else {\n                local_24 = "--copy-dt-needed-entries";\n              }" (else "else") (compound_statement "{\n                local_24 = "--copy-dt-needed-entries";\n              }" ({ "{") (expression_statement "local_24 = "--copy-dt-needed-entries";" (assignment_expression "local_24 = "--copy-dt-needed-entries"" (identifier "local_24") (= "=") (string_literal ""--copy-dt-needed-entries"" (" """) (string_content "--copy-dt-needed-entries") (" """))) (; ";")) (} "}")))) (expression_statement "uVar3 = *(undefined4 *)(iVar9 + 4);" (assignment_expression "uVar3 = *(undefined4 *)(iVar9 + 4)" (identifier "uVar3") (= "=") (pointer_expression "*(undefined4 *)(iVar9 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar9 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 4)" (( "(") (binary_expression "iVar9 + 4" (identifier "iVar9") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar4 = *puVar8;" (assignment_expression "uVar4 = *puVar8" (identifier "uVar4") (= "=") (pointer_expression "*puVar8" (* "*") (identifier "puVar8"))) (; ";")) (expression_statement "uVar7 = gettext("%s is not supported but is required for %s in %s");" (assignment_expression "uVar7 = gettext("%s is not supported but is required for %s in %s")" (identifier "uVar7") (= "=") (call_expression "gettext("%s is not supported but is required for %s in %s")" (identifier "gettext") (argument_list "("%s is not supported but is required for %s in %s")" (( "(") (string_literal ""%s is not supported but is required for %s in %s"" (" """) (string_content "%s is not supported but is required for %s in %s") (" """)) () ")")))) (; ";")) (expression_statement "FUN_000828d0(uVar7,local_24,uVar4,uVar3);" (call_expression "FUN_000828d0(uVar7,local_24,uVar4,uVar3)" (identifier "FUN_000828d0") (argument_list "(uVar7,local_24,uVar4,uVar3)" (( "(") (identifier "uVar7") (, ",") (identifier "local_24") (, ",") (identifier "uVar4") (, ",") (identifier "uVar3") () ")"))) (; ";")) (} "}"))) (expression_statement "cVar1 = '\x01';" (assignment_expression "cVar1 = '\x01'" (identifier "cVar1") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (goto_statement "goto LAB_000bfd08;" (goto "goto") (statement_identifier "LAB_000bfd08") (; ";")) (} "}"))) (expression_statement "puVar8 = puVar8 + 6;" (assignment_expression "puVar8 = puVar8 + 6" (identifier "puVar8") (= "=") (binary_expression "puVar8 + 6" (identifier "puVar8") (+ "+") (number_literal "6"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(undefined4 **)(iVar9 + 0x54) != puVar8)" (( "(") (binary_expression "*(undefined4 **)(iVar9 + 0x54) != puVar8" (pointer_expression "*(undefined4 **)(iVar9 + 0x54)" (* "*") (cast_expression "(undefined4 **)(iVar9 + 0x54)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + 0x54)" (( "(") (binary_expression "iVar9 + 0x54" (identifier "iVar9") (+ "+") (number_literal "0x54")) () ")")))) (!= "!=") (identifier "puVar8")) () ")")) (; ";")) (expression_statement "iVar9 = *local_2c;" (assignment_expression "iVar9 = *local_2c" (identifier "iVar9") (= "=") (pointer_expression "*local_2c" (* "*") (identifier "local_2c"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar9 + 0x5c) != 0) {\nLAB_000bfd4c:\n                    \n        FUN_0008b620("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");\n      }" (if "if") (parenthesized_expression "(*(int *)(iVar9 + 0x5c) != 0)" (( "(") (binary_expression "*(int *)(iVar9 + 0x5c) != 0" (pointer_expression "*(int *)(iVar9 + 0x5c)" (* "*") (cast_expression "(int *)(iVar9 + 0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x5c)" (( "(") (binary_expression "iVar9 + 0x5c" (identifier "iVar9") (+ "+") (number_literal "0x5c")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000bfd4c:\n                    \n        FUN_0008b620("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");\n      }" ({ "{") (labeled_statement "LAB_000bfd4c:\n                    \n        FUN_0008b620("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");" (statement_identifier "LAB_000bfd4c") (: ":") (expression_statement "FUN_0008b620("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");" (call_expression "FUN_0008b620("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries")" (identifier "FUN_0008b620") (argument_list "("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries")" (( "(") (string_literal ""../../gold/dynobj.h"" (" """) (string_content "../../gold/dynobj.h") (" """)) (, ",") (number_literal "0x47") (, ",") (string_literal ""set_has_unknown_needed_entries"" (" """) (string_content "set_has_unknown_needed_entries") (" """)) () ")"))) (; ";"))) (} "}"))) (expression_statement "*(undefined4 *)(iVar9 + 0x5c) = 2;" (assignment_expression "*(undefined4 *)(iVar9 + 0x5c) = 2" (pointer_expression "*(undefined4 *)(iVar9 + 0x5c)" (* "*") (cast_expression "(undefined4 *)(iVar9 + 0x5c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x5c)" (( "(") (binary_expression "iVar9 + 0x5c" (identifier "iVar9") (+ "+") (number_literal "0x5c")) () ")")))) (= "=") (number_literal "2")) (; ";")) (labeled_statement "LAB_000bfd08:\n      local_2c = local_2c + 1;" (statement_identifier "LAB_000bfd08") (: ":") (expression_statement "local_2c = local_2c + 1;" (assignment_expression "local_2c = local_2c + 1" (identifier "local_2c") (= "=") (binary_expression "local_2c + 1" (identifier "local_2c") (+ "+") (number_literal "1"))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "(*(int **)(param_1 + 0x10) != local_2c)" (( "(") (binary_expression "*(int **)(param_1 + 0x10) != local_2c" (pointer_expression "*(int **)(param_1 + 0x10)" (* "*") (cast_expression "(int **)(param_1 + 0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (!= "!=") (identifier "local_2c")) () ")")) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* DWARF original prototype: void check_dynamic_dependencies(Input_objects * this) */

void __thiscall var_1::type_1::function_1(type_1 *this)

{
  char var_14;
  type_2 *var_15;
  type_3 pcVar3;
  type_3 pcVar4;
  type_4 var_11;
  type_5 *var_12;
  char *format;
  type_6 *var_19;
  type_7 *pDVar6;
  type_3 var_4;
  char *local_24;
  
  var_14 = '\0';
  var_4 = (this->dynobj_list_).super__Vector_base<var_1::type_7*,var_2::var_5<var_1::type_7*>var_3>.
             _M_impl._M_start;
  if (var_4 !=
      (this->dynobj_list_).super__Vector_base<var_1::type_7*,var_2::var_5<var_1::type_7*>var_3>._M_impl
      ._M_finish) {
    do {
      pDVar6 = *var_4;
      var_19 = (pDVar6->needed_).
            super__Vector_base<std::__cxx11::basic_string<var_6,var_2::char_traits<var_6>,var_2::var_5<var_6>var_3>,var_2::var_5<std::__cxx11::basic_string<var_6,var_2::char_traits<var_6>,var_2::var_5<var_6>var_3>var_3>var_3>
            ._M_impl._M_start;
      if (var_19 != (pDVar6->needed_).
                 super__Vector_base<std::__cxx11::basic_string<var_6,var_2::char_traits<var_6>,var_2::var_5<var_6>var_3>,var_2::var_5<std::__cxx11::basic_string<var_6,var_2::char_traits<var_6>,var_2::var_5<var_6>var_3>var_3>var_3>
                 ._M_impl._M_finish) {
        do {
          var_11 = std::var_7((var_19->_M_dataplus)._M_p,var_19->_M_string_length,0xc70f6907);
          var_12 = std::
                   _Hashtable<std::__cxx11::basic_string<var_6,var_2::char_traits<var_6>,var_2::var_5<var_6>var_3>,var_2::pair<const_std::__cxx11::basic_string<var_6,var_2::char_traits<var_6>,var_2::var_5<var_6>var_3>,_gold::Object*>,var_2::var_5<std::pair<const_std::__cxx11::basic_string<var_6,var_2::char_traits<var_6>,var_2::var_5<var_6>var_3>,_gold::Object*>var_3>,var_2::__detail::_Select1st,var_2::equal_to<std::__cxx11::basic_string<var_6,var_2::char_traits<var_6>,var_2::var_5<var_6>var_3>var_3>,var_2::hash<std::__cxx11::basic_string<var_6,var_2::char_traits<var_6>,var_2::var_5<var_6>var_3>var_3>,var_2::__detail::_Mod_range_hashing,var_2::__detail::_Default_ranged_hash,var_2::__detail::_Prime_rehash_policy,var_2::__detail::var_8<true,_false,var_9>var_3>
                   ::var_10
                             ((_Hashtable<std::__cxx11::basic_string<var_6,var_2::char_traits<var_6>,var_2::var_5<var_6>var_3>,var_2::pair<const_std::__cxx11::basic_string<var_6,var_2::char_traits<var_6>,var_2::var_5<var_6>var_3>,_gold::Object*>,var_2::var_5<std::pair<const_std::__cxx11::basic_string<var_6,var_2::char_traits<var_6>,var_2::var_5<var_6>var_3>,_gold::Object*>var_3>,var_2::__detail::_Select1st,var_2::equal_to<std::__cxx11::basic_string<var_6,var_2::char_traits<var_6>,var_2::var_5<var_6>var_3>var_3>,var_2::hash<std::__cxx11::basic_string<var_6,var_2::char_traits<var_6>,var_2::var_5<var_6>var_3>var_3>,var_2::__detail::_Mod_range_hashing,var_2::__detail::_Default_ranged_hash,var_2::__detail::_Prime_rehash_policy,var_2::__detail::var_8<true,_false,var_9>var_3>
                               *)&this->sonames_,var_11 % (this->sonames_)._M_h._M_bucket_count,var_19,
                              var_11);
          if ((var_12 == (type_5 *)0x0) || (var_12->_M_nxt == (type_8 *)0x0)) {
            pDVar6 = *var_4;
            if (pDVar6->unknown_needed_ != var_13) goto LAB_000bfd4c;
            pDVar6->unknown_needed_ = UNKNOWN_NEEDED_TRUE;
            if (var_14 == '\0') {
              var_15 = parameters->options_;
              if (var_15 == (type_2 *)0x0) {
                    /* WARNING: Subroutine does not return */
                var_16("../../gold/parameters.h",0x5c,"options");
              }
              if ((var_15->copy_dt_needed_entries_).value == false) {
                var_14 = (var_15->add_needed_).value;
                if ((bool)var_14 == false) goto LAB_000bfd08;
                local_24 = "--add-needed";
              }
              else {
                local_24 = "--copy-dt-needed-entries";
              }
              pcVar3 = (pDVar6->super_Object).name_._M_dataplus._M_p;
              pcVar4 = (var_19->_M_dataplus)._M_p;
              format = (char *)var_17("%s is not supported but is required for %s in %s");
              var_18(format,local_24,pcVar4,pcVar3);
            }
            var_14 = '\x01';
            goto LAB_000bfd08;
          }
          var_19 = var_19 + 1;
        } while ((pDVar6->needed_).
                 super__Vector_base<std::__cxx11::basic_string<var_6,var_2::char_traits<var_6>,var_2::var_5<var_6>var_3>,var_2::var_5<std::__cxx11::basic_string<var_6,var_2::char_traits<var_6>,var_2::var_5<var_6>var_3>var_3>var_3>
                 ._M_impl._M_finish != var_19);
        pDVar6 = *var_4;
      }
      if (pDVar6->unknown_needed_ != var_13) {
LAB_000bfd4c:
                    /* WARNING: Subroutine does not return */
        var_16("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");
      }
      pDVar6->unknown_needed_ = UNKNOWN_NEEDED_FALSE;
LAB_000bfd08:
      var_4 = var_4 + 1;
    } while ((this->dynobj_list_).super__Vector_base<var_1::type_7*,var_2::var_5<var_1::type_7*>var_3>.
             _M_impl._M_finish != var_4);
  }
  return;
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void MASKED(int param_1)

{
  char cVar1;
  int iVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  uint uVar5;
  int *piVar6;
  undefined4 uVar7;
  undefined4 *puVar8;
  int iVar9;
  int *local_2c;
  char *local_24;
  
  cVar1 = '\0';
  local_2c = *(int **)(param_1 + 0xc);
  if (local_2c != *(int **)(param_1 + 0x10)) {
    do {
      iVar9 = *local_2c;
      puVar8 = *(undefined4 **)(iVar9 + 0x50);
      if (puVar8 != *(undefined4 **)(iVar9 + 0x54)) {
        do {
          uVar5 = FUN_001aa970(*puVar8,puVar8[1],0xc70f6907);
          piVar6 = (int *)FUN_000cddd0(param_1 + 0x18,uVar5 % *(uint *)(param_1 + 0x1c),puVar8,uVar5
                                      );
          if ((piVar6 == (int *)0x0) || (*piVar6 == 0)) {
            iVar9 = *local_2c;
            if (*(int *)(iVar9 + 0x5c) != 0) goto LAB_000bfd4c;
            *(undefined4 *)(iVar9 + 0x5c) = 1;
            if (cVar1 == '\0') {
              iVar2 = *(int *)(DAT_0033f2f0 + 8);
              if (iVar2 == 0) {
                    /* WARNING: Subroutine does not return */
                FUN_0008b620("../../gold/parameters.h",0x5c,"options");
              }
              if (*(char *)(iVar2 + 0x9dd) == '\0') {
                cVar1 = *(char *)(iVar2 + 0x109);
                if (cVar1 == '\0') goto LAB_000bfd08;
                local_24 = "--add-needed";
              }
              else {
                local_24 = "--copy-dt-needed-entries";
              }
              uVar3 = *(undefined4 *)(iVar9 + 4);
              uVar4 = *puVar8;
              uVar7 = gettext("%s is not supported but is required for %s in %s");
              FUN_000828d0(uVar7,local_24,uVar4,uVar3);
            }
            cVar1 = '\x01';
            goto LAB_000bfd08;
          }
          puVar8 = puVar8 + 6;
        } while (*(undefined4 **)(iVar9 + 0x54) != puVar8);
        iVar9 = *local_2c;
      }
      if (*(int *)(iVar9 + 0x5c) != 0) {
LAB_000bfd4c:
                    /* WARNING: Subroutine does not return */
        FUN_0008b620("../../gold/dynobj.h",0x47,"set_has_unknown_needed_entries");
      }
      *(undefined4 *)(iVar9 + 0x5c) = 2;
LAB_000bfd08:
      local_2c = local_2c + 1;
    } while (*(int **)(param_1 + 0x10) != local_2c);
  }
  return;
}

