
/* DWARF original prototype: Section_id get_folded_section(Icf * this, Relobj * dup_obj, uint
   dup_shndx) */

Section_id __thiscall gold::Icf::get_folded_section(Icf *this,Relobj *dup_obj,uint dup_shndx)

{
  undefined8 uVar1;
  undefined4 uVar2;
  iterator iVar3;
  pointer ppVar4;
  Section_id SVar5;
  Section_id dup_secn;
  
  dup_secn.first = dup_obj;
  dup_secn.second = dup_shndx;
  iVar3 = std::
          _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>
          ::find((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>
                  *)&this->section_id_,&dup_secn);
  if (iVar3.
      super__Node_iterator_base<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_true>
      ._M_cur != (__node_type *)0x0) {
    ppVar4 = (this->id_section_).
             super__Vector_base<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>
             ._M_impl._M_start +
             (this->kept_section_id_).
             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl._M_start
             [*(uint *)((long)iVar3.
                              super__Node_iterator_base<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_true>
                              ._M_cur + 0x18)];
    uVar1 = ppVar4->first;
    uVar2 = ppVar4->second;
    SVar5.second = uVar2;
    SVar5.first = (Relobj *)uVar1;
    SVar5._12_4_ = 0;
    return SVar5;
  }
                    /* WARNING: Subroutine does not return */
  do_gold_unreachable("../../gold/icf.cc",0x39a,"get_folded_section");
}



undefined1  [16] FUN_0017f670(long *param_1,undefined8 param_2,undefined4 param_3)

{
  long lVar1;
  undefined1 auVar2 [16];
  undefined8 local_18;
  undefined4 local_10;
  
  local_18 = param_2;
  local_10 = param_3;
  lVar1 = FUN_001828d0(param_1 + 3,&local_18);
  if (lVar1 != 0) {
    auVar2._12_4_ = 0;
    auVar2._0_12_ =
         *(undefined1 (*) [12])
          ((ulong)*(uint *)(param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4) * 0x10 + *param_1);
    return auVar2;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0017c650("../../gold/icf.cc",0x39a,"get_folded_section");
}


PUSH RBX
MOV RBX,RDI
ADD RDI,0x18
SUB RSP,0x10
MOV qword ptr [RSP],RSI
MOV RSI,RSP
MOV dword ptr [RSP + 0x8],EDX
CALL 0x001828d0
TEST RAX,RAX
JZ 0x0017f6ae
MOV EDX,dword ptr [RAX + 0x18]
MOV RAX,qword ptr [RBX + 0x50]
MOV EDX,dword ptr [RAX + RDX*0x4]
SHL RDX,0x4
ADD RDX,qword ptr [RBX]
MOV RAX,qword ptr [RDX]
MOV EDX,dword ptr [RDX + 0x8]
ADD RSP,0x10
POP RBX
RET
LEA RDX,[0x373340]
MOV ESI,0x39a
LEA RDI,[0x3732ba]
CALL 0x0017c650
(translation_unit "undefined1  [16] FUN_0017f670(long *param_1,undefined8 param_2,undefined4 param_3)\n\n{\n  long lVar1;\n  undefined1 auVar2 [16];\n  undefined8 local_18;\n  undefined4 local_10;\n  \n  local_18 = param_2;\n  local_10 = param_3;\n  lVar1 = FUN_001828d0(param_1 + 3,&local_18);\n  if (lVar1 != 0) {\n    auVar2._12_4_ = 0;\n    auVar2._0_12_ =\n         *(undefined1 (*) [12])\n          ((ulong)*(uint *)(param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4) * 0x10 + *param_1);\n    return auVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0017c650("../../gold/icf.cc",0x39a,"get_folded_section");\n}\n\n" (expression_statement "undefined1  [16]" (subscript_expression "undefined1  [16]" identifier [ number_literal ]) ;) (expression_statement "FUN_0017f670(long *param_1,undefined8 param_2,undefined4 param_3)" (call_expression "FUN_0017f670(long *param_1,undefined8 param_2,undefined4 param_3)" identifier (argument_list "(long *param_1,undefined8 param_2,undefined4 param_3)" ( (binary_expression "long *param_1" identifier * identifier) , identifier (ERROR "param_2" identifier) , identifier (ERROR "param_3" identifier) ))) ;) (compound_statement "{\n  long lVar1;\n  undefined1 auVar2 [16];\n  undefined8 local_18;\n  undefined4 local_10;\n  \n  local_18 = param_2;\n  local_10 = param_3;\n  lVar1 = FUN_001828d0(param_1 + 3,&local_18);\n  if (lVar1 != 0) {\n    auVar2._12_4_ = 0;\n    auVar2._0_12_ =\n         *(undefined1 (*) [12])\n          ((ulong)*(uint *)(param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4) * 0x10 + *param_1);\n    return auVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0017c650("../../gold/icf.cc",0x39a,"get_folded_section");\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 auVar2 [16];" type_identifier (array_declarator "auVar2 [16]" identifier [ number_literal ]) ;) (declaration "undefined8 local_18;" type_identifier identifier ;) (declaration "undefined4 local_10;" type_identifier identifier ;) (expression_statement "local_18 = param_2;" (assignment_expression "local_18 = param_2" identifier = identifier) ;) (expression_statement "local_10 = param_3;" (assignment_expression "local_10 = param_3" identifier = identifier) ;) (expression_statement "lVar1 = FUN_001828d0(param_1 + 3,&local_18);" (assignment_expression "lVar1 = FUN_001828d0(param_1 + 3,&local_18)" identifier = (call_expression "FUN_001828d0(param_1 + 3,&local_18)" identifier (argument_list "(param_1 + 3,&local_18)" ( (binary_expression "param_1 + 3" identifier + number_literal) , (pointer_expression "&local_18" & identifier) )))) ;) (if_statement "if (lVar1 != 0) {\n    auVar2._12_4_ = 0;\n    auVar2._0_12_ =\n         *(undefined1 (*) [12])\n          ((ulong)*(uint *)(param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4) * 0x10 + *param_1);\n    return auVar2;\n  }" if (parenthesized_expression "(lVar1 != 0)" ( (binary_expression "lVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    auVar2._12_4_ = 0;\n    auVar2._0_12_ =\n         *(undefined1 (*) [12])\n          ((ulong)*(uint *)(param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4) * 0x10 + *param_1);\n    return auVar2;\n  }" { (expression_statement "auVar2._12_4_ = 0;" (assignment_expression "auVar2._12_4_ = 0" (field_expression "auVar2._12_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "auVar2._0_12_ =\n         *(undefined1 (*) [12])\n          ((ulong)*(uint *)(param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4) * 0x10 + *param_1);" (assignment_expression "auVar2._0_12_ =\n         *(undefined1 (*) [12])\n          ((ulong)*(uint *)(param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4) * 0x10 + *param_1)" (field_expression "auVar2._0_12_" identifier . field_identifier) = (pointer_expression "*(undefined1 (*) [12])\n          ((ulong)*(uint *)(param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4) * 0x10 + *param_1)" * (cast_expression "(undefined1 (*) [12])\n          ((ulong)*(uint *)(param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4) * 0x10 + *param_1)" ( (type_descriptor "undefined1 (*) [12]" type_identifier (abstract_array_declarator "(*) [12]" (abstract_parenthesized_declarator "(*)" ( (abstract_pointer_declarator "*" *) )) [ number_literal ])) ) (parenthesized_expression "((ulong)*(uint *)(param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4) * 0x10 + *param_1)" ( (binary_expression "(ulong)*(uint *)(param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4) * 0x10 + *param_1" (binary_expression "(ulong)*(uint *)(param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4) * 0x10" (binary_expression "(ulong)*(uint *)(param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4)" ( (binary_expression "param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4" (subscript_expression "param_1[10]" identifier [ number_literal ]) + (binary_expression "(ulong)*(uint *)(lVar1 + 0x18) * 4" (binary_expression "(ulong)*(uint *)(lVar1 + 0x18)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(lVar1 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x18)" ( (binary_expression "lVar1 + 0x18" identifier + number_literal) )))) * number_literal)) )))) * number_literal) + (pointer_expression "*param_1" * identifier)) ))))) ;) (return_statement "return auVar2;" return identifier ;) })) comment (expression_statement "FUN_0017c650("../../gold/icf.cc",0x39a,"get_folded_section");" (call_expression "FUN_0017c650("../../gold/icf.cc",0x39a,"get_folded_section")" identifier (argument_list "("../../gold/icf.cc",0x39a,"get_folded_section")" ( (string_literal ""../../gold/icf.cc"" " string_content ") , number_literal , (string_literal ""get_folded_section"" " string_content ") ))) ;) }))
(translation_unit "/* DWARF original prototype: Section_id get_folded_section(Icf * this, Relobj * dup_obj, uint\n   dup_shndx) */\n\nSection_id __thiscall gold::Icf::get_folded_section(Icf *this,Relobj *dup_obj,uint dup_shndx)\n\n{\n  undefined8 uVar1;\n  undefined4 uVar2;\n  iterator iVar3;\n  pointer ppVar4;\n  Section_id SVar5;\n  Section_id dup_secn;\n  \n  dup_secn.first = dup_obj;\n  dup_secn.second = dup_shndx;\n  iVar3 = std::\n          _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n          ::find((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                  *)&this->section_id_,&dup_secn);\n  if (iVar3.\n      super__Node_iterator_base<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_true>\n      ._M_cur != (__node_type *)0x0) {\n    ppVar4 = (this->id_section_).\n             super__Vector_base<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n             ._M_impl._M_start +\n             (this->kept_section_id_).\n             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl._M_start\n             [*(uint *)((long)iVar3.\n                              super__Node_iterator_base<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_true>\n                              ._M_cur + 0x18)];\n    uVar1 = ppVar4->first;\n    uVar2 = ppVar4->second;\n    SVar5.second = uVar2;\n    SVar5.first = (Relobj *)uVar1;\n    SVar5._12_4_ = 0;\n    return SVar5;\n  }\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/icf.cc",0x39a,"get_folded_section");\n}\n\n" comment (function_definition "Section_id __thiscall gold::Icf::get_folded_section(Icf *this,Relobj *dup_obj,uint dup_shndx)\n\n{\n  undefined8 uVar1;\n  undefined4 uVar2;\n  iterator iVar3;\n  pointer ppVar4;\n  Section_id SVar5;\n  Section_id dup_secn;\n  \n  dup_secn.first = dup_obj;\n  dup_secn.second = dup_shndx;\n  iVar3 = std::\n          _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n          ::find((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                  *)&this->section_id_,&dup_secn);\n  if (iVar3.\n      super__Node_iterator_base<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_true>\n      ._M_cur != (__node_type *)0x0) {\n    ppVar4 = (this->id_section_).\n             super__Vector_base<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n             ._M_impl._M_start +\n             (this->kept_section_id_).\n             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl._M_start\n             [*(uint *)((long)iVar3.\n                              super__Node_iterator_base<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_true>\n                              ._M_cur + 0x18)];\n    uVar1 = ppVar4->first;\n    uVar2 = ppVar4->second;\n    SVar5.second = uVar2;\n    SVar5.first = (Relobj *)uVar1;\n    SVar5._12_4_ = 0;\n    return SVar5;\n  }\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/icf.cc",0x39a,"get_folded_section");\n}" type_identifier (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Icf::" identifier : : identifier : :) (function_declarator "get_folded_section(Icf *this,Relobj *dup_obj,uint dup_shndx)" identifier (parameter_list "(Icf *this,Relobj *dup_obj,uint dup_shndx)" ( (parameter_declaration "Icf *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Relobj *dup_obj" type_identifier (pointer_declarator "*dup_obj" * identifier)) , (parameter_declaration "uint dup_shndx" type_identifier identifier) ))) (compound_statement "{\n  undefined8 uVar1;\n  undefined4 uVar2;\n  iterator iVar3;\n  pointer ppVar4;\n  Section_id SVar5;\n  Section_id dup_secn;\n  \n  dup_secn.first = dup_obj;\n  dup_secn.second = dup_shndx;\n  iVar3 = std::\n          _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n          ::find((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                  *)&this->section_id_,&dup_secn);\n  if (iVar3.\n      super__Node_iterator_base<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_true>\n      ._M_cur != (__node_type *)0x0) {\n    ppVar4 = (this->id_section_).\n             super__Vector_base<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n             ._M_impl._M_start +\n             (this->kept_section_id_).\n             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl._M_start\n             [*(uint *)((long)iVar3.\n                              super__Node_iterator_base<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_true>\n                              ._M_cur + 0x18)];\n    uVar1 = ppVar4->first;\n    uVar2 = ppVar4->second;\n    SVar5.second = uVar2;\n    SVar5.first = (Relobj *)uVar1;\n    SVar5._12_4_ = 0;\n    return SVar5;\n  }\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/icf.cc",0x39a,"get_folded_section");\n}" { (declaration "undefined8 uVar1;" type_identifier identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "iterator iVar3;" type_identifier identifier ;) (declaration "pointer ppVar4;" type_identifier identifier ;) (declaration "Section_id SVar5;" type_identifier identifier ;) (declaration "Section_id dup_secn;" type_identifier identifier ;) (expression_statement "dup_secn.first = dup_obj;" (assignment_expression "dup_secn.first = dup_obj" (field_expression "dup_secn.first" identifier . field_identifier) = identifier) ;) (expression_statement "dup_secn.second = dup_shndx;" (assignment_expression "dup_secn.second = dup_shndx" (field_expression "dup_secn.second" identifier . field_identifier) = identifier) ;) (ERROR "iVar3 = std::\n          _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::" (assignment_expression "iVar3 = std" identifier = identifier) : : (binary_expression "_Hashtable<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_std" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_unsigned_int>,_std" (binary_expression "Relobj*,_unsigned_int>,_unsigned_int" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_unsigned_int>_>,_std" (binary_expression "Relobj*,_unsigned_int>,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int>,_unsigned_int" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) : : (comma_expression "__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold" identifier (ERROR "::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>" : : (comma_expression "_Select1st,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , (binary_expression "_unsigned_int>_" identifier > identifier) >) , identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : :) (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n          ::find((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                  *)&this->section_id_,&dup_secn);" 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          ::find((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                  *)&this->section_id_,&dup_secn);" 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          ::find((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                  *)&this->section_id_,&dup_secn);" statement_identifier (ERROR "::_Prime_rehash_policy,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) :) : (labeled_statement "__detail::_Hashtable_traits<true,_false,_true>_>\n          ::find((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                  *)&this->section_id_,&dup_secn);" statement_identifier : (ERROR ":" :) (expression_statement "_Hashtable_traits<true,_false,_true>_>\n          ::find((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                  *)&this->section_id_,&dup_secn);" (comma_expression "_Hashtable_traits<true,_false,_true>_>\n          ::find((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                  *)&this->section_id_,&dup_secn)" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_false,_true>_>\n          ::find((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                  *)&this->section_id_,&dup_secn)" identifier , (binary_expression "_true>_>\n          ::find((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                  *)&this->section_id_,&dup_secn)" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) (call_expression "find((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                  *)&this->section_id_,&dup_secn)" identifier (argument_list "((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                  *)&this->section_id_,&dup_secn)" ( (binary_expression "(_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                  *)&this->section_id_" (parenthesized_expression "(_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                  *)" ( (ERROR "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std::__detail::_Select1st,_std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_>,_std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>_" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::allocator<std::pair<const_std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::allocator<std::pair<const_std::pair<gold" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::allocator<std::pair<const_std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std::allocator<std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<gold" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<const_std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Hashtable<std::pair<gold" (binary_expression "_Hashtable<std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) (ERROR "::__detail::_Select1st" : : identifier : : identifier) , identifier) : : identifier < identifier : : identifier < identifier : : identifier * , (binary_expression "_unsigned_int>_>,_gold" (binary_expression "_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<true,_false,_true>_>\n                  *" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_false,_true>_>\n                  *" identifier , (binary_expression "_true>_>\n                  *" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "*" * identifier)))) )) & (field_expression "this->section_id_" identifier -> field_identifier)) , (pointer_expression "&dup_secn" & identifier) )))))) ;))))) (if_statement "if (iVar3.\n      super__Node_iterator_base<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_true>\n      ._M_cur != (__node_type *)0x0) {\n    ppVar4 = (this->id_section_).\n             super__Vector_base<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n             ._M_impl._M_start +\n             (this->kept_section_id_).\n             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl._M_start\n             [*(uint *)((long)iVar3.\n                              super__Node_iterator_base<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_true>\n                              ._M_cur + 0x18)];\n    uVar1 = ppVar4->first;\n    uVar2 = ppVar4->second;\n    SVar5.second = uVar2;\n    SVar5.first = (Relobj *)uVar1;\n    SVar5._12_4_ = 0;\n    return SVar5;\n  }" if (parenthesized_expression "(iVar3.\n      super__Node_iterator_base<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_true>\n      ._M_cur != (__node_type *)0x0)" ( (binary_expression "iVar3.\n      super__Node_iterator_base<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_true>\n      ._M_cur != (__node_type *)0x0" (field_expression "iVar3.\n      super__Node_iterator_base<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_true>\n      ._M_cur" (binary_expression "iVar3.\n      super__Node_iterator_base<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_true" (binary_expression "iVar3.\n      super__Node_iterator_base<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int" (binary_expression "iVar3.\n      super__Node_iterator_base<std::pair<const_std::pair<gold::Relobj*,_unsigned_int" (binary_expression "iVar3.\n      super__Node_iterator_base<std::pair<const_std::pair<gold" (binary_expression "iVar3.\n      super__Node_iterator_base<std::pair<const_std" (binary_expression "iVar3.\n      super__Node_iterator_base<std" (field_expression "iVar3.\n      super__Node_iterator_base" identifier . field_identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR ">" >) . field_identifier) != (cast_expression "(__node_type *)0x0" ( (type_descriptor "__node_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    ppVar4 = (this->id_section_).\n             super__Vector_base<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n             ._M_impl._M_start +\n             (this->kept_section_id_).\n             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl._M_start\n             [*(uint *)((long)iVar3.\n                              super__Node_iterator_base<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_true>\n                              ._M_cur + 0x18)];\n    uVar1 = ppVar4->first;\n    uVar2 = ppVar4->second;\n    SVar5.second = uVar2;\n    SVar5.first = (Relobj *)uVar1;\n    SVar5._12_4_ = 0;\n    return SVar5;\n  }" { (ERROR "ppVar4 = (this->id_section_).\n             super__Vector_base<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n             ._M_impl._M_start +\n             (this->kept_section_id_).\n             super__Vector_base<unsigned_int,_std::" (comma_expression "ppVar4 = (this->id_section_).\n             super__Vector_base<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n             ._M_impl._M_start +\n             (this->kept_section_id_).\n             super__Vector_base<unsigned_int,_std" (binary_expression "ppVar4 = (this->id_section_).\n             super__Vector_base<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n             ._M_impl._M_start +\n             (this->kept_section_id_).\n             super__Vector_base<unsigned_int" (binary_expression "ppVar4 = (this->id_section_).\n             super__Vector_base<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n             ._M_impl._M_start +\n             (this->kept_section_id_).\n             super__Vector_base" (field_expression "ppVar4 = (this->id_section_).\n             super__Vector_base<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n             ._M_impl._M_start" (field_expression "ppVar4 = (this->id_section_).\n             super__Vector_base<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n             ._M_impl" (binary_expression "ppVar4 = (this->id_section_).\n             super__Vector_base<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_" (binary_expression "ppVar4 = (this->id_section_).\n             super__Vector_base<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_" (binary_expression "ppVar4 = (this->id_section_).\n             super__Vector_base<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "ppVar4 = (this->id_section_).\n             super__Vector_base<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold" (binary_expression "ppVar4 = (this->id_section_).\n             super__Vector_base<std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std" (binary_expression "ppVar4 = (this->id_section_).\n             super__Vector_base<std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "ppVar4 = (this->id_section_).\n             super__Vector_base<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "ppVar4 = (this->id_section_).\n             super__Vector_base<std::pair<gold" (assignment_expression "ppVar4 = (this->id_section_).\n             super__Vector_base<std" identifier = (binary_expression "(this->id_section_).\n             super__Vector_base<std" (field_expression "(this->id_section_).\n             super__Vector_base" (parenthesized_expression "(this->id_section_)" ( (field_expression "this->id_section_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) + (field_expression "(this->kept_section_id_).\n             super__Vector_base" (parenthesized_expression "(this->kept_section_id_)" ( (field_expression "this->kept_section_id_" identifier -> field_identifier) )) . field_identifier)) < identifier) , identifier) : :) (expression_statement "allocator<unsigned_int>_>._M_impl._M_start\n             [*(uint *)((long)iVar3.\n                              super__Node_iterator_base<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_true>\n                              ._M_cur + 0x18)];" (subscript_expression "allocator<unsigned_int>_>._M_impl._M_start\n             [*(uint *)((long)iVar3.\n                              super__Node_iterator_base<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_true>\n                              ._M_cur + 0x18)]" (field_expression "allocator<unsigned_int>_>._M_impl._M_start" (field_expression "allocator<unsigned_int>_>._M_impl" (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) [ (pointer_expression "*(uint *)((long)iVar3.\n                              super__Node_iterator_base<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_true>\n                              ._M_cur + 0x18)" * (cast_expression "(uint *)((long)iVar3.\n                              super__Node_iterator_base<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_true>\n                              ._M_cur + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)iVar3.\n                              super__Node_iterator_base<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_true>\n                              ._M_cur + 0x18)" ( (binary_expression "(long)iVar3.\n                              super__Node_iterator_base<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_true>\n                              ._M_cur + 0x18" (field_expression "(long)iVar3.\n                              super__Node_iterator_base<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_true>\n                              ._M_cur" (binary_expression "(long)iVar3.\n                              super__Node_iterator_base<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int>,_true" (binary_expression "(long)iVar3.\n                              super__Node_iterator_base<std::pair<const_std::pair<gold::Relobj*,_unsigned_int>,_unsigned_int" (binary_expression "(long)iVar3.\n                              super__Node_iterator_base<std::pair<const_std::pair<gold::Relobj*,_unsigned_int" (binary_expression "(long)iVar3.\n                              super__Node_iterator_base<std::pair<const_std::pair<gold" (binary_expression "(long)iVar3.\n                              super__Node_iterator_base<std::pair<const_std" (binary_expression "(long)iVar3.\n                              super__Node_iterator_base<std" (cast_expression "(long)iVar3.\n                              super__Node_iterator_base" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "iVar3.\n                              super__Node_iterator_base" identifier . field_identifier)) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR ">" >) . field_identifier) + number_literal) )))) ]) ;) (expression_statement "uVar1 = ppVar4->first;" (assignment_expression "uVar1 = ppVar4->first" identifier = (field_expression "ppVar4->first" identifier -> field_identifier)) ;) (expression_statement "uVar2 = ppVar4->second;" (assignment_expression "uVar2 = ppVar4->second" identifier = (field_expression "ppVar4->second" identifier -> field_identifier)) ;) (expression_statement "SVar5.second = uVar2;" (assignment_expression "SVar5.second = uVar2" (field_expression "SVar5.second" identifier . field_identifier) = identifier) ;) (expression_statement "SVar5.first = (Relobj *)uVar1;" (assignment_expression "SVar5.first = (Relobj *)uVar1" (field_expression "SVar5.first" identifier . field_identifier) = (cast_expression "(Relobj *)uVar1" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "SVar5._12_4_ = 0;" (assignment_expression "SVar5._12_4_ = 0" (field_expression "SVar5._12_4_" identifier . field_identifier) = number_literal) ;) (return_statement "return SVar5;" return identifier ;) })) comment (expression_statement "do_gold_unreachable("../../gold/icf.cc",0x39a,"get_folded_section");" (call_expression "do_gold_unreachable("../../gold/icf.cc",0x39a,"get_folded_section")" identifier (argument_list "("../../gold/icf.cc",0x39a,"get_folded_section")" ( (string_literal ""../../gold/icf.cc"" " string_content ") , number_literal , (string_literal ""get_folded_section"" " string_content ") ))) ;) })))
(translation_unit "undefined1  [16] FUN_0017f670(long *param_1,undefined8 param_2,undefined4 param_3)\n\n{\n  long lVar1;\n  undefined1 auVar2 [16];\n  undefined8 local_18;\n  undefined4 local_10;\n  \n  local_18 = param_2;\n  local_10 = param_3;\n  lVar1 = FUN_001828d0(param_1 + 3,&local_18);\n  if (lVar1 != 0) {\n    auVar2._12_4_ = 0;\n    auVar2._0_12_ =\n         *(undefined1 (*) [12])\n          ((ulong)*(uint *)(param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4) * 0x10 + *param_1);\n    return auVar2;\n  }\n                    \n  FUN_0017c650("../../gold/icf.cc",0x39a,"get_folded_section");\n}\n\n" (expression_statement "undefined1  [16]" (subscript_expression "undefined1  [16]" identifier [ number_literal ]) ;) (expression_statement "FUN_0017f670(long *param_1,undefined8 param_2,undefined4 param_3)" (call_expression "FUN_0017f670(long *param_1,undefined8 param_2,undefined4 param_3)" identifier (argument_list "(long *param_1,undefined8 param_2,undefined4 param_3)" ( (binary_expression "long *param_1" identifier * identifier) , identifier (ERROR "param_2" identifier) , identifier (ERROR "param_3" identifier) ))) ;) (compound_statement "{\n  long lVar1;\n  undefined1 auVar2 [16];\n  undefined8 local_18;\n  undefined4 local_10;\n  \n  local_18 = param_2;\n  local_10 = param_3;\n  lVar1 = FUN_001828d0(param_1 + 3,&local_18);\n  if (lVar1 != 0) {\n    auVar2._12_4_ = 0;\n    auVar2._0_12_ =\n         *(undefined1 (*) [12])\n          ((ulong)*(uint *)(param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4) * 0x10 + *param_1);\n    return auVar2;\n  }\n                    \n  FUN_0017c650("../../gold/icf.cc",0x39a,"get_folded_section");\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 auVar2 [16];" type_identifier (array_declarator "auVar2 [16]" identifier [ number_literal ]) ;) (declaration "undefined8 local_18;" type_identifier identifier ;) (declaration "undefined4 local_10;" type_identifier identifier ;) (expression_statement "local_18 = param_2;" (assignment_expression "local_18 = param_2" identifier = identifier) ;) (expression_statement "local_10 = param_3;" (assignment_expression "local_10 = param_3" identifier = identifier) ;) (expression_statement "lVar1 = FUN_001828d0(param_1 + 3,&local_18);" (assignment_expression "lVar1 = FUN_001828d0(param_1 + 3,&local_18)" identifier = (call_expression "FUN_001828d0(param_1 + 3,&local_18)" identifier (argument_list "(param_1 + 3,&local_18)" ( (binary_expression "param_1 + 3" identifier + number_literal) , (pointer_expression "&local_18" & identifier) )))) ;) (if_statement "if (lVar1 != 0) {\n    auVar2._12_4_ = 0;\n    auVar2._0_12_ =\n         *(undefined1 (*) [12])\n          ((ulong)*(uint *)(param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4) * 0x10 + *param_1);\n    return auVar2;\n  }" if (parenthesized_expression "(lVar1 != 0)" ( (binary_expression "lVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    auVar2._12_4_ = 0;\n    auVar2._0_12_ =\n         *(undefined1 (*) [12])\n          ((ulong)*(uint *)(param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4) * 0x10 + *param_1);\n    return auVar2;\n  }" { (expression_statement "auVar2._12_4_ = 0;" (assignment_expression "auVar2._12_4_ = 0" (field_expression "auVar2._12_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "auVar2._0_12_ =\n         *(undefined1 (*) [12])\n          ((ulong)*(uint *)(param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4) * 0x10 + *param_1);" (assignment_expression "auVar2._0_12_ =\n         *(undefined1 (*) [12])\n          ((ulong)*(uint *)(param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4) * 0x10 + *param_1)" (field_expression "auVar2._0_12_" identifier . field_identifier) = (pointer_expression "*(undefined1 (*) [12])\n          ((ulong)*(uint *)(param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4) * 0x10 + *param_1)" * (cast_expression "(undefined1 (*) [12])\n          ((ulong)*(uint *)(param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4) * 0x10 + *param_1)" ( (type_descriptor "undefined1 (*) [12]" type_identifier (abstract_array_declarator "(*) [12]" (abstract_parenthesized_declarator "(*)" ( (abstract_pointer_declarator "*" *) )) [ number_literal ])) ) (parenthesized_expression "((ulong)*(uint *)(param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4) * 0x10 + *param_1)" ( (binary_expression "(ulong)*(uint *)(param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4) * 0x10 + *param_1" (binary_expression "(ulong)*(uint *)(param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4) * 0x10" (binary_expression "(ulong)*(uint *)(param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4)" ( (binary_expression "param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4" (subscript_expression "param_1[10]" identifier [ number_literal ]) + (binary_expression "(ulong)*(uint *)(lVar1 + 0x18) * 4" (binary_expression "(ulong)*(uint *)(lVar1 + 0x18)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(lVar1 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x18)" ( (binary_expression "lVar1 + 0x18" identifier + number_literal) )))) * number_literal)) )))) * number_literal) + (pointer_expression "*param_1" * identifier)) ))))) ;) (return_statement "return auVar2;" return identifier ;) })) (expression_statement "FUN_0017c650("../../gold/icf.cc",0x39a,"get_folded_section");" (call_expression "FUN_0017c650("../../gold/icf.cc",0x39a,"get_folded_section")" identifier (argument_list "("../../gold/icf.cc",0x39a,"get_folded_section")" ( (string_literal ""../../gold/icf.cc"" " string_content ") , number_literal , (string_literal ""get_folded_section"" " string_content ") ))) ;) }))
(translation_unit (expression_statement (subscript_expression IDENT [ LIT ]) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT * IDENT) , IDENT (ERROR IDENT) , IDENT (ERROR IDENT) ))) ;) (compound_statement { (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_array_declarator (abstract_parenthesized_declarator ( (abstract_pointer_declarator *) )) [ LIT ])) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) * LIT) + (pointer_expression * IDENT)) ))))) ;) (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) }))
(expression_statement "undefined1  [16]" (subscript_expression "undefined1  [16]" (identifier "undefined1") ([ "[") (number_literal "16") (] "]")) (; "")) (expression_statement "FUN_0017f670(long *param_1,undefined8 param_2,undefined4 param_3)" (call_expression "FUN_0017f670(long *param_1,undefined8 param_2,undefined4 param_3)" (identifier "FUN_0017f670") (argument_list "(long *param_1,undefined8 param_2,undefined4 param_3)" (( "(") (binary_expression "long *param_1" (identifier "long") (* "*") (identifier "param_1")) (, ",") (identifier "undefined8") (ERROR "param_2" (identifier "param_2")) (, ",") (identifier "undefined4") (ERROR "param_3" (identifier "param_3")) () ")"))) (; "")) (compound_statement "{\n  long lVar1;\n  undefined1 auVar2 [16];\n  undefined8 local_18;\n  undefined4 local_10;\n  \n  local_18 = param_2;\n  local_10 = param_3;\n  lVar1 = FUN_001828d0(param_1 + 3,&local_18);\n  if (lVar1 != 0) {\n    auVar2._12_4_ = 0;\n    auVar2._0_12_ =\n         *(undefined1 (*) [12])\n          ((ulong)*(uint *)(param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4) * 0x10 + *param_1);\n    return auVar2;\n  }\n                    \n  FUN_0017c650("../../gold/icf.cc",0x39a,"get_folded_section");\n}" ({ "{") (declaration "long lVar1;" (sized_type_specifier "long" (long "long")) (identifier "lVar1") (; ";")) (declaration "undefined1 auVar2 [16];" (type_identifier "undefined1") (array_declarator "auVar2 [16]" (identifier "auVar2") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "undefined8 local_18;" (type_identifier "undefined8") (identifier "local_18") (; ";")) (declaration "undefined4 local_10;" (type_identifier "undefined4") (identifier "local_10") (; ";")) (expression_statement "local_18 = param_2;" (assignment_expression "local_18 = param_2" (identifier "local_18") (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_10 = param_3;" (assignment_expression "local_10 = param_3" (identifier "local_10") (= "=") (identifier "param_3")) (; ";")) (expression_statement "lVar1 = FUN_001828d0(param_1 + 3,&local_18);" (assignment_expression "lVar1 = FUN_001828d0(param_1 + 3,&local_18)" (identifier "lVar1") (= "=") (call_expression "FUN_001828d0(param_1 + 3,&local_18)" (identifier "FUN_001828d0") (argument_list "(param_1 + 3,&local_18)" (( "(") (binary_expression "param_1 + 3" (identifier "param_1") (+ "+") (number_literal "3")) (, ",") (pointer_expression "&local_18" (& "&") (identifier "local_18")) () ")")))) (; ";")) (if_statement "if (lVar1 != 0) {\n    auVar2._12_4_ = 0;\n    auVar2._0_12_ =\n         *(undefined1 (*) [12])\n          ((ulong)*(uint *)(param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4) * 0x10 + *param_1);\n    return auVar2;\n  }" (if "if") (parenthesized_expression "(lVar1 != 0)" (( "(") (binary_expression "lVar1 != 0" (identifier "lVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    auVar2._12_4_ = 0;\n    auVar2._0_12_ =\n         *(undefined1 (*) [12])\n          ((ulong)*(uint *)(param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4) * 0x10 + *param_1);\n    return auVar2;\n  }" ({ "{") (expression_statement "auVar2._12_4_ = 0;" (assignment_expression "auVar2._12_4_ = 0" (field_expression "auVar2._12_4_" (identifier "auVar2") (. ".") (field_identifier "_12_4_")) (= "=") (number_literal "0")) (; ";")) (expression_statement "auVar2._0_12_ =\n         *(undefined1 (*) [12])\n          ((ulong)*(uint *)(param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4) * 0x10 + *param_1);" (assignment_expression "auVar2._0_12_ =\n         *(undefined1 (*) [12])\n          ((ulong)*(uint *)(param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4) * 0x10 + *param_1)" (field_expression "auVar2._0_12_" (identifier "auVar2") (. ".") (field_identifier "_0_12_")) (= "=") (pointer_expression "*(undefined1 (*) [12])\n          ((ulong)*(uint *)(param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4) * 0x10 + *param_1)" (* "*") (cast_expression "(undefined1 (*) [12])\n          ((ulong)*(uint *)(param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4) * 0x10 + *param_1)" (( "(") (type_descriptor "undefined1 (*) [12]" (type_identifier "undefined1") (abstract_array_declarator "(*) [12]" (abstract_parenthesized_declarator "(*)" (( "(") (abstract_pointer_declarator "*" (* "*")) () ")")) ([ "[") (number_literal "12") (] "]"))) () ")") (parenthesized_expression "((ulong)*(uint *)(param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4) * 0x10 + *param_1)" (( "(") (binary_expression "(ulong)*(uint *)(param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4) * 0x10 + *param_1" (binary_expression "(ulong)*(uint *)(param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4) * 0x10" (binary_expression "(ulong)*(uint *)(param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (cast_expression "(uint *)(param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4)" (( "(") (binary_expression "param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (+ "+") (binary_expression "(ulong)*(uint *)(lVar1 + 0x18) * 4" (binary_expression "(ulong)*(uint *)(lVar1 + 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (cast_expression "(uint *)(lVar1 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar1 + 0x18)" (( "(") (binary_expression "lVar1 + 0x18" (identifier "lVar1") (+ "+") (number_literal "0x18")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (* "*") (number_literal "0x10")) (+ "+") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) () ")"))))) (; ";")) (return_statement "return auVar2;" (return "return") (identifier "auVar2") (; ";")) (} "}"))) (expression_statement "FUN_0017c650("../../gold/icf.cc",0x39a,"get_folded_section");" (call_expression "FUN_0017c650("../../gold/icf.cc",0x39a,"get_folded_section")" (identifier "FUN_0017c650") (argument_list "("../../gold/icf.cc",0x39a,"get_folded_section")" (( "(") (string_literal ""../../gold/icf.cc"" (" """) (string_content "../../gold/icf.cc") (" """)) (, ",") (number_literal "0x39a") (, ",") (string_literal ""get_folded_section"" (" """) (string_content "get_folded_section") (" """)) () ")"))) (; ";")) (} "}"))

/* DWARF original prototype: Section_id get_folded_section(Icf * this, Relobj * dup_obj, uint
   dup_shndx) */

type_1 __thiscall var_7::type_2::function_1(type_2 *this,type_3 *dup_obj,type_4 dup_shndx)

{
  type_5 uVar1;
  type_6 uVar2;
  type_7 iVar3;
  type_8 ppVar4;
  type_1 SVar5;
  type_1 dup_secn;
  
  dup_secn.first = dup_obj;
  dup_secn.second = dup_shndx;
  iVar3 = var_5::
          _Hashtable<var_5::pair<var_7::type_3*,var_8>,_std::pair<var_6::pair<var_7::type_3*,var_8>,var_8>,_std::var_9<var_5::pair<var_6::pair<var_7::type_3*,var_8>,var_8>var_3>,_std::__detail::_Select1st,_std::equal_to<var_5::pair<var_7::type_3*,var_8>var_3>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_1<true,_false,var_2>var_3>
          ::var_4((_Hashtable<var_5::pair<var_7::type_3*,var_8>,_std::pair<var_6::pair<var_7::type_3*,var_8>,var_8>,_std::var_9<var_5::pair<var_6::pair<var_7::type_3*,var_8>,var_8>var_3>,_std::__detail::_Select1st,_std::equal_to<var_5::pair<var_7::type_3*,var_8>var_3>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_1<true,_false,var_2>var_3>
                  *)&this->section_id_,&dup_secn);
  if (iVar3.
      super__Node_iterator_base<var_5::pair<var_6::pair<var_7::type_3*,var_8>,var_8>,var_2>
      ._M_cur != (type_9 *)0x0) {
    ppVar4 = (this->id_section_).
             super__Vector_base<var_5::pair<var_7::type_3*,var_8>,_std::var_9<var_5::pair<var_7::type_3*,var_8>var_3>var_3>
             ._M_impl._M_start +
             (this->kept_section_id_).
             super__Vector_base<var_10,_std::var_9<var_10>var_3>._M_impl._M_start
             [*(type_4 *)((long)iVar3.
                              super__Node_iterator_base<var_5::pair<var_6::pair<var_7::type_3*,var_8>,var_8>,var_2>
                              ._M_cur + 0x18)];
    uVar1 = ppVar4->first;
    uVar2 = ppVar4->second;
    SVar5.second = uVar2;
    SVar5.first = (type_3 *)uVar1;
    SVar5._12_4_ = 0;
    return SVar5;
  }
                    /* WARNING: Subroutine does not return */
  var_11("../../gold/icf.cc",0x39a,"get_folded_section");
}


(translation_unit (expression_statement (subscript_expression argument: (identifier) index: (number_literal)) (MISSING ";")) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)) (identifier) (ERROR (identifier)) (identifier) (ERROR (identifier)))) (MISSING ";")) (compound_statement (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_array_declarator declarator: (abstract_parenthesized_declarator (abstract_pointer_declarator)) size: (number_literal))) value: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) right: (number_literal)) right: (pointer_expression argument: (identifier)))))))) (return_statement (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content)))))))

undefined1  [16] MASKED(long *param_1,undefined8 param_2,undefined4 param_3)

{
  long lVar1;
  undefined1 auVar2 [16];
  undefined8 local_18;
  undefined4 local_10;
  
  local_18 = param_2;
  local_10 = param_3;
  lVar1 = FUN_001828d0(param_1 + 3,&local_18);
  if (lVar1 != 0) {
    auVar2._12_4_ = 0;
    auVar2._0_12_ =
         *(undefined1 (*) [12])
          ((ulong)*(uint *)(param_1[10] + (ulong)*(uint *)(lVar1 + 0x18) * 4) * 0x10 + *param_1);
    return auVar2;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0017c650("../../gold/icf.cc",0x39a,"get_folded_section");
}

