
void gold::Dwarf_line_info::clear_addr2line_cache(void)

{
  pointer pAVar1;
  
  pAVar1 = addr2line_cache.
           super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>
           ._M_impl._M_start;
  if (addr2line_cache.
      super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>.
      _M_impl._M_start !=
      addr2line_cache.
      super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>.
      _M_impl._M_finish) {
    do {
      if (pAVar1->dwarf_line_info != (Dwarf_line_info *)0x0) {
        (*pAVar1->dwarf_line_info->_vptr_Dwarf_line_info[1])();
      }
      pAVar1 = pAVar1 + 1;
    } while (addr2line_cache.
             super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>
             ._M_impl._M_finish != pAVar1);
    if (pAVar1 != addr2line_cache.
                  super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>
                  ._M_impl._M_start) {
      addr2line_cache.
      super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>.
      _M_impl._M_finish =
           addr2line_cache.
           super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>
           ._M_impl._M_start;
    }
  }
  return;
}



void FUN_002b5660(void)

{
  long lVar1;
  
  lVar1 = DAT_00463310;
  if (DAT_00463310 != DAT_00463318) {
    do {
      if (*(long **)(lVar1 + 0x10) != (long *)0x0) {
        (**(code **)(**(long **)(lVar1 + 0x10) + 8))();
      }
      lVar1 = lVar1 + 0x20;
    } while (DAT_00463318 != lVar1);
    if (lVar1 != DAT_00463310) {
      DAT_00463318 = DAT_00463310;
    }
  }
  return;
}


PUSH RBX
MOV RBX,qword ptr [0x00463310]
CMP RBX,qword ptr [0x00463318]
JZ 0x002b56a7
NOP dword ptr [RAX]
MOV RDI,qword ptr [RBX + 0x10]
TEST RDI,RDI
JZ 0x002b5687
MOV RAX,qword ptr [RDI]
CALL qword ptr [RAX + 0x8]
ADD RBX,0x20
CMP qword ptr [0x00463318],RBX
JNZ 0x002b5678
MOV RAX,qword ptr [0x00463310]
CMP RBX,RAX
JZ 0x002b56a7
MOV qword ptr [0x00463318],RAX
POP RBX
RET
(translation_unit "void FUN_002b5660(void)\n\n{\n  long lVar1;\n  \n  lVar1 = DAT_00463310;\n  if (DAT_00463310 != DAT_00463318) {\n    do {\n      if (*(long **)(lVar1 + 0x10) != (long *)0x0) {\n        (**(code **)(**(long **)(lVar1 + 0x10) + 8))();\n      }\n      lVar1 = lVar1 + 0x20;\n    } while (DAT_00463318 != lVar1);\n    if (lVar1 != DAT_00463310) {\n      DAT_00463318 = DAT_00463310;\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_002b5660(void)\n\n{\n  long lVar1;\n  \n  lVar1 = DAT_00463310;\n  if (DAT_00463310 != DAT_00463318) {\n    do {\n      if (*(long **)(lVar1 + 0x10) != (long *)0x0) {\n        (**(code **)(**(long **)(lVar1 + 0x10) + 8))();\n      }\n      lVar1 = lVar1 + 0x20;\n    } while (DAT_00463318 != lVar1);\n    if (lVar1 != DAT_00463310) {\n      DAT_00463318 = DAT_00463310;\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_002b5660(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  long lVar1;\n  \n  lVar1 = DAT_00463310;\n  if (DAT_00463310 != DAT_00463318) {\n    do {\n      if (*(long **)(lVar1 + 0x10) != (long *)0x0) {\n        (**(code **)(**(long **)(lVar1 + 0x10) + 8))();\n      }\n      lVar1 = lVar1 + 0x20;\n    } while (DAT_00463318 != lVar1);\n    if (lVar1 != DAT_00463310) {\n      DAT_00463318 = DAT_00463310;\n    }\n  }\n  return;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (expression_statement "lVar1 = DAT_00463310;" (assignment_expression "lVar1 = DAT_00463310" identifier = identifier) ;) (if_statement "if (DAT_00463310 != DAT_00463318) {\n    do {\n      if (*(long **)(lVar1 + 0x10) != (long *)0x0) {\n        (**(code **)(**(long **)(lVar1 + 0x10) + 8))();\n      }\n      lVar1 = lVar1 + 0x20;\n    } while (DAT_00463318 != lVar1);\n    if (lVar1 != DAT_00463310) {\n      DAT_00463318 = DAT_00463310;\n    }\n  }" if (parenthesized_expression "(DAT_00463310 != DAT_00463318)" ( (binary_expression "DAT_00463310 != DAT_00463318" identifier != identifier) )) (compound_statement "{\n    do {\n      if (*(long **)(lVar1 + 0x10) != (long *)0x0) {\n        (**(code **)(**(long **)(lVar1 + 0x10) + 8))();\n      }\n      lVar1 = lVar1 + 0x20;\n    } while (DAT_00463318 != lVar1);\n    if (lVar1 != DAT_00463310) {\n      DAT_00463318 = DAT_00463310;\n    }\n  }" { (do_statement "do {\n      if (*(long **)(lVar1 + 0x10) != (long *)0x0) {\n        (**(code **)(**(long **)(lVar1 + 0x10) + 8))();\n      }\n      lVar1 = lVar1 + 0x20;\n    } while (DAT_00463318 != lVar1);" do (compound_statement "{\n      if (*(long **)(lVar1 + 0x10) != (long *)0x0) {\n        (**(code **)(**(long **)(lVar1 + 0x10) + 8))();\n      }\n      lVar1 = lVar1 + 0x20;\n    }" { (if_statement "if (*(long **)(lVar1 + 0x10) != (long *)0x0) {\n        (**(code **)(**(long **)(lVar1 + 0x10) + 8))();\n      }" if (parenthesized_expression "(*(long **)(lVar1 + 0x10) != (long *)0x0)" ( (binary_expression "*(long **)(lVar1 + 0x10) != (long *)0x0" (pointer_expression "*(long **)(lVar1 + 0x10)" * (cast_expression "(long **)(lVar1 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar1 + 0x10)" ( (binary_expression "lVar1 + 0x10" identifier + number_literal) )))) != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (**(code **)(**(long **)(lVar1 + 0x10) + 8))();\n      }" { (expression_statement "(**(code **)(**(long **)(lVar1 + 0x10) + 8))();" (call_expression "(**(code **)(**(long **)(lVar1 + 0x10) + 8))()" (parenthesized_expression "(**(code **)(**(long **)(lVar1 + 0x10) + 8))" ( (pointer_expression "**(code **)(**(long **)(lVar1 + 0x10) + 8)" * (pointer_expression "*(code **)(**(long **)(lVar1 + 0x10) + 8)" * (cast_expression "(code **)(**(long **)(lVar1 + 0x10) + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(lVar1 + 0x10) + 8)" ( (binary_expression "**(long **)(lVar1 + 0x10) + 8" (pointer_expression "**(long **)(lVar1 + 0x10)" * (pointer_expression "*(long **)(lVar1 + 0x10)" * (cast_expression "(long **)(lVar1 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar1 + 0x10)" ( (binary_expression "lVar1 + 0x10" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "lVar1 = lVar1 + 0x20;" (assignment_expression "lVar1 = lVar1 + 0x20" identifier = (binary_expression "lVar1 + 0x20" identifier + number_literal)) ;) }) while (parenthesized_expression "(DAT_00463318 != lVar1)" ( (binary_expression "DAT_00463318 != lVar1" identifier != identifier) )) ;) (if_statement "if (lVar1 != DAT_00463310) {\n      DAT_00463318 = DAT_00463310;\n    }" if (parenthesized_expression "(lVar1 != DAT_00463310)" ( (binary_expression "lVar1 != DAT_00463310" identifier != identifier) )) (compound_statement "{\n      DAT_00463318 = DAT_00463310;\n    }" { (expression_statement "DAT_00463318 = DAT_00463310;" (assignment_expression "DAT_00463318 = DAT_00463310" identifier = identifier) ;) })) })) (return_statement "return;" return ;) })))
(translation_unit "void gold::Dwarf_line_info::clear_addr2line_cache(void)\n\n{\n  pointer pAVar1;\n  \n  pAVar1 = addr2line_cache.\n           super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>\n           ._M_impl._M_start;\n  if (addr2line_cache.\n      super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>.\n      _M_impl._M_start !=\n      addr2line_cache.\n      super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>.\n      _M_impl._M_finish) {\n    do {\n      if (pAVar1->dwarf_line_info != (Dwarf_line_info *)0x0) {\n        (*pAVar1->dwarf_line_info->_vptr_Dwarf_line_info[1])();\n      }\n      pAVar1 = pAVar1 + 1;\n    } while (addr2line_cache.\n             super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>\n             ._M_impl._M_finish != pAVar1);\n    if (pAVar1 != addr2line_cache.\n                  super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>\n                  ._M_impl._M_start) {\n      addr2line_cache.\n      super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>.\n      _M_impl._M_finish =\n           addr2line_cache.\n           super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>\n           ._M_impl._M_start;\n    }\n  }\n  return;\n}\n\n" (function_definition "void gold::Dwarf_line_info::clear_addr2line_cache(void)\n\n{\n  pointer pAVar1;\n  \n  pAVar1 = addr2line_cache.\n           super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>\n           ._M_impl._M_start;\n  if (addr2line_cache.\n      super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>.\n      _M_impl._M_start !=\n      addr2line_cache.\n      super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>.\n      _M_impl._M_finish) {\n    do {\n      if (pAVar1->dwarf_line_info != (Dwarf_line_info *)0x0) {\n        (*pAVar1->dwarf_line_info->_vptr_Dwarf_line_info[1])();\n      }\n      pAVar1 = pAVar1 + 1;\n    } while (addr2line_cache.\n             super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>\n             ._M_impl._M_finish != pAVar1);\n    if (pAVar1 != addr2line_cache.\n                  super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>\n                  ._M_impl._M_start) {\n      addr2line_cache.\n      super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>.\n      _M_impl._M_finish =\n           addr2line_cache.\n           super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>\n           ._M_impl._M_start;\n    }\n  }\n  return;\n}" primitive_type (ERROR "gold::Dwarf_line_info::" identifier : : identifier : :) (function_declarator "clear_addr2line_cache(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  pointer pAVar1;\n  \n  pAVar1 = addr2line_cache.\n           super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>\n           ._M_impl._M_start;\n  if (addr2line_cache.\n      super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>.\n      _M_impl._M_start !=\n      addr2line_cache.\n      super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>.\n      _M_impl._M_finish) {\n    do {\n      if (pAVar1->dwarf_line_info != (Dwarf_line_info *)0x0) {\n        (*pAVar1->dwarf_line_info->_vptr_Dwarf_line_info[1])();\n      }\n      pAVar1 = pAVar1 + 1;\n    } while (addr2line_cache.\n             super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>\n             ._M_impl._M_finish != pAVar1);\n    if (pAVar1 != addr2line_cache.\n                  super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>\n                  ._M_impl._M_start) {\n      addr2line_cache.\n      super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>.\n      _M_impl._M_finish =\n           addr2line_cache.\n           super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>\n           ._M_impl._M_start;\n    }\n  }\n  return;\n}" { (declaration "pointer pAVar1;" type_identifier identifier ;) (ERROR "pAVar1 = addr2line_cache.\n           super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::" (comma_expression "pAVar1 = addr2line_cache.\n           super__Vector_base<gold::Addr2line_cache_entry,_std" (assignment_expression "pAVar1 = addr2line_cache.\n           super__Vector_base<gold" identifier = (binary_expression "addr2line_cache.\n           super__Vector_base<gold" (field_expression "addr2line_cache.\n           super__Vector_base" identifier . field_identifier) < identifier)) (ERROR "::Addr2line_cache_entry" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "Addr2line_cache_entry>_>\n           ._M_impl._M_start;" (field_expression "Addr2line_cache_entry>_>\n           ._M_impl._M_start" (field_expression "Addr2line_cache_entry>_>\n           ._M_impl" (binary_expression "Addr2line_cache_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if (addr2line_cache.\n      super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>.\n      _M_impl._M_start !=\n      addr2line_cache.\n      super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>.\n      _M_impl._M_finish) {\n    do {\n      if (pAVar1->dwarf_line_info != (Dwarf_line_info *)0x0) {\n        (*pAVar1->dwarf_line_info->_vptr_Dwarf_line_info[1])();\n      }\n      pAVar1 = pAVar1 + 1;\n    } while (addr2line_cache.\n             super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>\n             ._M_impl._M_finish != pAVar1);\n    if (pAVar1 != addr2line_cache.\n                  super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>\n                  ._M_impl._M_start) {\n      addr2line_cache.\n      super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>.\n      _M_impl._M_finish =\n           addr2line_cache.\n           super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>\n           ._M_impl._M_start;\n    }\n  }" if (parenthesized_expression "(addr2line_cache.\n      super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>.\n      _M_impl._M_start !=\n      addr2line_cache.\n      super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>.\n      _M_impl._M_finish)" ( (ERROR "addr2line_cache.\n      super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>.\n      _M_impl._M_start !=\n      addr2line_cache.\n      super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::" (comma_expression "addr2line_cache.\n      super__Vector_base<gold::Addr2line_cache_entry,_std" (binary_expression "addr2line_cache.\n      super__Vector_base<gold" (field_expression "addr2line_cache.\n      super__Vector_base" identifier . field_identifier) < identifier) (ERROR "::Addr2line_cache_entry" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Addr2line_cache_entry>_>.\n      _M_impl._M_start !=\n      addr2line_cache.\n      super__Vector_base<gold" (field_expression "Addr2line_cache_entry>_>.\n      _M_impl._M_start" (field_expression "Addr2line_cache_entry>_>.\n      _M_impl" (binary_expression "Addr2line_cache_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) != (binary_expression "addr2line_cache.\n      super__Vector_base<gold" (field_expression "addr2line_cache.\n      super__Vector_base" identifier . field_identifier) < identifier)) : : (comma_expression "Addr2line_cache_entry,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (field_expression "Addr2line_cache_entry>_>.\n      _M_impl._M_finish" (field_expression "Addr2line_cache_entry>_>.\n      _M_impl" (binary_expression "Addr2line_cache_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (compound_statement "{\n    do {\n      if (pAVar1->dwarf_line_info != (Dwarf_line_info *)0x0) {\n        (*pAVar1->dwarf_line_info->_vptr_Dwarf_line_info[1])();\n      }\n      pAVar1 = pAVar1 + 1;\n    } while (addr2line_cache.\n             super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>\n             ._M_impl._M_finish != pAVar1);\n    if (pAVar1 != addr2line_cache.\n                  super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>\n                  ._M_impl._M_start) {\n      addr2line_cache.\n      super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>.\n      _M_impl._M_finish =\n           addr2line_cache.\n           super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>\n           ._M_impl._M_start;\n    }\n  }" { (do_statement "do {\n      if (pAVar1->dwarf_line_info != (Dwarf_line_info *)0x0) {\n        (*pAVar1->dwarf_line_info->_vptr_Dwarf_line_info[1])();\n      }\n      pAVar1 = pAVar1 + 1;\n    } while (addr2line_cache.\n             super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>\n             ._M_impl._M_finish != pAVar1);" do (compound_statement "{\n      if (pAVar1->dwarf_line_info != (Dwarf_line_info *)0x0) {\n        (*pAVar1->dwarf_line_info->_vptr_Dwarf_line_info[1])();\n      }\n      pAVar1 = pAVar1 + 1;\n    }" { (if_statement "if (pAVar1->dwarf_line_info != (Dwarf_line_info *)0x0) {\n        (*pAVar1->dwarf_line_info->_vptr_Dwarf_line_info[1])();\n      }" if (parenthesized_expression "(pAVar1->dwarf_line_info != (Dwarf_line_info *)0x0)" ( (binary_expression "pAVar1->dwarf_line_info != (Dwarf_line_info *)0x0" (field_expression "pAVar1->dwarf_line_info" identifier -> field_identifier) != (cast_expression "(Dwarf_line_info *)0x0" ( (type_descriptor "Dwarf_line_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (*pAVar1->dwarf_line_info->_vptr_Dwarf_line_info[1])();\n      }" { (expression_statement "(*pAVar1->dwarf_line_info->_vptr_Dwarf_line_info[1])();" (call_expression "(*pAVar1->dwarf_line_info->_vptr_Dwarf_line_info[1])()" (parenthesized_expression "(*pAVar1->dwarf_line_info->_vptr_Dwarf_line_info[1])" ( (pointer_expression "*pAVar1->dwarf_line_info->_vptr_Dwarf_line_info[1]" * (subscript_expression "pAVar1->dwarf_line_info->_vptr_Dwarf_line_info[1]" (field_expression "pAVar1->dwarf_line_info->_vptr_Dwarf_line_info" (field_expression "pAVar1->dwarf_line_info" identifier -> field_identifier) -> field_identifier) [ number_literal ])) )) (argument_list "()" ( ))) ;) })) (expression_statement "pAVar1 = pAVar1 + 1;" (assignment_expression "pAVar1 = pAVar1 + 1" identifier = (binary_expression "pAVar1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(addr2line_cache.\n             super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>\n             ._M_impl._M_finish != pAVar1)" ( (ERROR "addr2line_cache.\n             super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::" (comma_expression "addr2line_cache.\n             super__Vector_base<gold::Addr2line_cache_entry,_std" (binary_expression "addr2line_cache.\n             super__Vector_base<gold" (field_expression "addr2line_cache.\n             super__Vector_base" identifier . field_identifier) < identifier) (ERROR "::Addr2line_cache_entry" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Addr2line_cache_entry>_>\n             ._M_impl._M_finish != pAVar1" (field_expression "Addr2line_cache_entry>_>\n             ._M_impl._M_finish" (field_expression "Addr2line_cache_entry>_>\n             ._M_impl" (binary_expression "Addr2line_cache_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) != identifier) )) ;) (if_statement "if (pAVar1 != addr2line_cache.\n                  super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>\n                  ._M_impl._M_start) {\n      addr2line_cache.\n      super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>.\n      _M_impl._M_finish =\n           addr2line_cache.\n           super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>\n           ._M_impl._M_start;\n    }" if (parenthesized_expression "(pAVar1 != addr2line_cache.\n                  super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>\n                  ._M_impl._M_start)" ( (ERROR "pAVar1 != addr2line_cache.\n                  super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::" (comma_expression "pAVar1 != addr2line_cache.\n                  super__Vector_base<gold::Addr2line_cache_entry,_std" (binary_expression "pAVar1 != addr2line_cache.\n                  super__Vector_base<gold" identifier != (binary_expression "addr2line_cache.\n                  super__Vector_base<gold" (field_expression "addr2line_cache.\n                  super__Vector_base" identifier . field_identifier) < identifier)) (ERROR "::Addr2line_cache_entry" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (field_expression "Addr2line_cache_entry>_>\n                  ._M_impl._M_start" (field_expression "Addr2line_cache_entry>_>\n                  ._M_impl" (binary_expression "Addr2line_cache_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (compound_statement "{\n      addr2line_cache.\n      super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>.\n      _M_impl._M_finish =\n           addr2line_cache.\n           super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>\n           ._M_impl._M_start;\n    }" { (ERROR "addr2line_cache.\n      super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::Addr2line_cache_entry>_>.\n      _M_impl._M_finish =\n           addr2line_cache.\n           super__Vector_base<gold::Addr2line_cache_entry,_std::allocator<gold::" (comma_expression "addr2line_cache.\n      super__Vector_base<gold::Addr2line_cache_entry,_std" (binary_expression "addr2line_cache.\n      super__Vector_base<gold" (field_expression "addr2line_cache.\n      super__Vector_base" identifier . field_identifier) < identifier) (ERROR "::Addr2line_cache_entry" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (assignment_expression "Addr2line_cache_entry>_>.\n      _M_impl._M_finish =\n           addr2line_cache.\n           super__Vector_base<gold" (field_expression "Addr2line_cache_entry>_>.\n      _M_impl._M_finish" (field_expression "Addr2line_cache_entry>_>.\n      _M_impl" (binary_expression "Addr2line_cache_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (binary_expression "addr2line_cache.\n           super__Vector_base<gold" (field_expression "addr2line_cache.\n           super__Vector_base" identifier . field_identifier) < identifier)) : : (comma_expression "Addr2line_cache_entry,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "Addr2line_cache_entry>_>\n           ._M_impl._M_start;" (field_expression "Addr2line_cache_entry>_>\n           ._M_impl._M_start" (field_expression "Addr2line_cache_entry>_>\n           ._M_impl" (binary_expression "Addr2line_cache_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) })) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_002b5660(void)\n\n{\n  long lVar1;\n  \n  lVar1 = DAT_00463310;\n  if (DAT_00463310 != DAT_00463318) {\n    do {\n      if (*(long **)(lVar1 + 0x10) != (long *)0x0) {\n        (**(code **)(**(long **)(lVar1 + 0x10) + 8))();\n      }\n      lVar1 = lVar1 + 0x20;\n    } while (DAT_00463318 != lVar1);\n    if (lVar1 != DAT_00463310) {\n      DAT_00463318 = DAT_00463310;\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_002b5660(void)\n\n{\n  long lVar1;\n  \n  lVar1 = DAT_00463310;\n  if (DAT_00463310 != DAT_00463318) {\n    do {\n      if (*(long **)(lVar1 + 0x10) != (long *)0x0) {\n        (**(code **)(**(long **)(lVar1 + 0x10) + 8))();\n      }\n      lVar1 = lVar1 + 0x20;\n    } while (DAT_00463318 != lVar1);\n    if (lVar1 != DAT_00463310) {\n      DAT_00463318 = DAT_00463310;\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_002b5660(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  long lVar1;\n  \n  lVar1 = DAT_00463310;\n  if (DAT_00463310 != DAT_00463318) {\n    do {\n      if (*(long **)(lVar1 + 0x10) != (long *)0x0) {\n        (**(code **)(**(long **)(lVar1 + 0x10) + 8))();\n      }\n      lVar1 = lVar1 + 0x20;\n    } while (DAT_00463318 != lVar1);\n    if (lVar1 != DAT_00463310) {\n      DAT_00463318 = DAT_00463310;\n    }\n  }\n  return;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (expression_statement "lVar1 = DAT_00463310;" (assignment_expression "lVar1 = DAT_00463310" identifier = identifier) ;) (if_statement "if (DAT_00463310 != DAT_00463318) {\n    do {\n      if (*(long **)(lVar1 + 0x10) != (long *)0x0) {\n        (**(code **)(**(long **)(lVar1 + 0x10) + 8))();\n      }\n      lVar1 = lVar1 + 0x20;\n    } while (DAT_00463318 != lVar1);\n    if (lVar1 != DAT_00463310) {\n      DAT_00463318 = DAT_00463310;\n    }\n  }" if (parenthesized_expression "(DAT_00463310 != DAT_00463318)" ( (binary_expression "DAT_00463310 != DAT_00463318" identifier != identifier) )) (compound_statement "{\n    do {\n      if (*(long **)(lVar1 + 0x10) != (long *)0x0) {\n        (**(code **)(**(long **)(lVar1 + 0x10) + 8))();\n      }\n      lVar1 = lVar1 + 0x20;\n    } while (DAT_00463318 != lVar1);\n    if (lVar1 != DAT_00463310) {\n      DAT_00463318 = DAT_00463310;\n    }\n  }" { (do_statement "do {\n      if (*(long **)(lVar1 + 0x10) != (long *)0x0) {\n        (**(code **)(**(long **)(lVar1 + 0x10) + 8))();\n      }\n      lVar1 = lVar1 + 0x20;\n    } while (DAT_00463318 != lVar1);" do (compound_statement "{\n      if (*(long **)(lVar1 + 0x10) != (long *)0x0) {\n        (**(code **)(**(long **)(lVar1 + 0x10) + 8))();\n      }\n      lVar1 = lVar1 + 0x20;\n    }" { (if_statement "if (*(long **)(lVar1 + 0x10) != (long *)0x0) {\n        (**(code **)(**(long **)(lVar1 + 0x10) + 8))();\n      }" if (parenthesized_expression "(*(long **)(lVar1 + 0x10) != (long *)0x0)" ( (binary_expression "*(long **)(lVar1 + 0x10) != (long *)0x0" (pointer_expression "*(long **)(lVar1 + 0x10)" * (cast_expression "(long **)(lVar1 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar1 + 0x10)" ( (binary_expression "lVar1 + 0x10" identifier + number_literal) )))) != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (**(code **)(**(long **)(lVar1 + 0x10) + 8))();\n      }" { (expression_statement "(**(code **)(**(long **)(lVar1 + 0x10) + 8))();" (call_expression "(**(code **)(**(long **)(lVar1 + 0x10) + 8))()" (parenthesized_expression "(**(code **)(**(long **)(lVar1 + 0x10) + 8))" ( (pointer_expression "**(code **)(**(long **)(lVar1 + 0x10) + 8)" * (pointer_expression "*(code **)(**(long **)(lVar1 + 0x10) + 8)" * (cast_expression "(code **)(**(long **)(lVar1 + 0x10) + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(lVar1 + 0x10) + 8)" ( (binary_expression "**(long **)(lVar1 + 0x10) + 8" (pointer_expression "**(long **)(lVar1 + 0x10)" * (pointer_expression "*(long **)(lVar1 + 0x10)" * (cast_expression "(long **)(lVar1 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar1 + 0x10)" ( (binary_expression "lVar1 + 0x10" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "lVar1 = lVar1 + 0x20;" (assignment_expression "lVar1 = lVar1 + 0x20" identifier = (binary_expression "lVar1 + 0x20" identifier + number_literal)) ;) }) while (parenthesized_expression "(DAT_00463318 != lVar1)" ( (binary_expression "DAT_00463318 != lVar1" identifier != identifier) )) ;) (if_statement "if (lVar1 != DAT_00463310) {\n      DAT_00463318 = DAT_00463310;\n    }" if (parenthesized_expression "(lVar1 != DAT_00463310)" ( (binary_expression "lVar1 != DAT_00463310" identifier != identifier) )) (compound_statement "{\n      DAT_00463318 = DAT_00463310;\n    }" { (expression_statement "DAT_00463318 = DAT_00463310;" (assignment_expression "DAT_00463318 = DAT_00463310" identifier = identifier) ;) })) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) (return_statement return ;) })))
(function_definition "void FUN_002b5660(void)\n\n{\n  long lVar1;\n  \n  lVar1 = DAT_00463310;\n  if (DAT_00463310 != DAT_00463318) {\n    do {\n      if (*(long **)(lVar1 + 0x10) != (long *)0x0) {\n        (**(code **)(**(long **)(lVar1 + 0x10) + 8))();\n      }\n      lVar1 = lVar1 + 0x20;\n    } while (DAT_00463318 != lVar1);\n    if (lVar1 != DAT_00463310) {\n      DAT_00463318 = DAT_00463310;\n    }\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_002b5660(void)" (identifier "FUN_002b5660") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  long lVar1;\n  \n  lVar1 = DAT_00463310;\n  if (DAT_00463310 != DAT_00463318) {\n    do {\n      if (*(long **)(lVar1 + 0x10) != (long *)0x0) {\n        (**(code **)(**(long **)(lVar1 + 0x10) + 8))();\n      }\n      lVar1 = lVar1 + 0x20;\n    } while (DAT_00463318 != lVar1);\n    if (lVar1 != DAT_00463310) {\n      DAT_00463318 = DAT_00463310;\n    }\n  }\n  return;\n}" ({ "{") (declaration "long lVar1;" (sized_type_specifier "long" (long "long")) (identifier "lVar1") (; ";")) (expression_statement "lVar1 = DAT_00463310;" (assignment_expression "lVar1 = DAT_00463310" (identifier "lVar1") (= "=") (identifier "DAT_00463310")) (; ";")) (if_statement "if (DAT_00463310 != DAT_00463318) {\n    do {\n      if (*(long **)(lVar1 + 0x10) != (long *)0x0) {\n        (**(code **)(**(long **)(lVar1 + 0x10) + 8))();\n      }\n      lVar1 = lVar1 + 0x20;\n    } while (DAT_00463318 != lVar1);\n    if (lVar1 != DAT_00463310) {\n      DAT_00463318 = DAT_00463310;\n    }\n  }" (if "if") (parenthesized_expression "(DAT_00463310 != DAT_00463318)" (( "(") (binary_expression "DAT_00463310 != DAT_00463318" (identifier "DAT_00463310") (!= "!=") (identifier "DAT_00463318")) () ")")) (compound_statement "{\n    do {\n      if (*(long **)(lVar1 + 0x10) != (long *)0x0) {\n        (**(code **)(**(long **)(lVar1 + 0x10) + 8))();\n      }\n      lVar1 = lVar1 + 0x20;\n    } while (DAT_00463318 != lVar1);\n    if (lVar1 != DAT_00463310) {\n      DAT_00463318 = DAT_00463310;\n    }\n  }" ({ "{") (do_statement "do {\n      if (*(long **)(lVar1 + 0x10) != (long *)0x0) {\n        (**(code **)(**(long **)(lVar1 + 0x10) + 8))();\n      }\n      lVar1 = lVar1 + 0x20;\n    } while (DAT_00463318 != lVar1);" (do "do") (compound_statement "{\n      if (*(long **)(lVar1 + 0x10) != (long *)0x0) {\n        (**(code **)(**(long **)(lVar1 + 0x10) + 8))();\n      }\n      lVar1 = lVar1 + 0x20;\n    }" ({ "{") (if_statement "if (*(long **)(lVar1 + 0x10) != (long *)0x0) {\n        (**(code **)(**(long **)(lVar1 + 0x10) + 8))();\n      }" (if "if") (parenthesized_expression "(*(long **)(lVar1 + 0x10) != (long *)0x0)" (( "(") (binary_expression "*(long **)(lVar1 + 0x10) != (long *)0x0" (pointer_expression "*(long **)(lVar1 + 0x10)" (* "*") (cast_expression "(long **)(lVar1 + 0x10)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar1 + 0x10)" (( "(") (binary_expression "lVar1 + 0x10" (identifier "lVar1") (+ "+") (number_literal "0x10")) () ")")))) (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        (**(code **)(**(long **)(lVar1 + 0x10) + 8))();\n      }" ({ "{") (expression_statement "(**(code **)(**(long **)(lVar1 + 0x10) + 8))();" (call_expression "(**(code **)(**(long **)(lVar1 + 0x10) + 8))()" (parenthesized_expression "(**(code **)(**(long **)(lVar1 + 0x10) + 8))" (( "(") (pointer_expression "**(code **)(**(long **)(lVar1 + 0x10) + 8)" (* "*") (pointer_expression "*(code **)(**(long **)(lVar1 + 0x10) + 8)" (* "*") (cast_expression "(code **)(**(long **)(lVar1 + 0x10) + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(long **)(lVar1 + 0x10) + 8)" (( "(") (binary_expression "**(long **)(lVar1 + 0x10) + 8" (pointer_expression "**(long **)(lVar1 + 0x10)" (* "*") (pointer_expression "*(long **)(lVar1 + 0x10)" (* "*") (cast_expression "(long **)(lVar1 + 0x10)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar1 + 0x10)" (( "(") (binary_expression "lVar1 + 0x10" (identifier "lVar1") (+ "+") (number_literal "0x10")) () ")"))))) (+ "+") (number_literal "8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "lVar1 = lVar1 + 0x20;" (assignment_expression "lVar1 = lVar1 + 0x20" (identifier "lVar1") (= "=") (binary_expression "lVar1 + 0x20" (identifier "lVar1") (+ "+") (number_literal "0x20"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(DAT_00463318 != lVar1)" (( "(") (binary_expression "DAT_00463318 != lVar1" (identifier "DAT_00463318") (!= "!=") (identifier "lVar1")) () ")")) (; ";")) (if_statement "if (lVar1 != DAT_00463310) {\n      DAT_00463318 = DAT_00463310;\n    }" (if "if") (parenthesized_expression "(lVar1 != DAT_00463310)" (( "(") (binary_expression "lVar1 != DAT_00463310" (identifier "lVar1") (!= "!=") (identifier "DAT_00463310")) () ")")) (compound_statement "{\n      DAT_00463318 = DAT_00463310;\n    }" ({ "{") (expression_statement "DAT_00463318 = DAT_00463310;" (assignment_expression "DAT_00463318 = DAT_00463310" (identifier "DAT_00463318") (= "=") (identifier "DAT_00463310")) (; ";")) (} "}"))) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

void gold::type_2::function_1(void)

{
  type_1 var_3;
  
  var_3 = addr2line_cache.
           super__Vector_base<gold::var_1,_std::allocator<gold::var_1>var_2>
           ._M_impl._M_start;
  if (addr2line_cache.
      super__Vector_base<gold::var_1,_std::allocator<gold::var_1>var_2>.
      _M_impl._M_start !=
      addr2line_cache.
      super__Vector_base<gold::var_1,_std::allocator<gold::var_1>var_2>.
      _M_impl._M_finish) {
    do {
      if (var_3->dwarf_line_info != (type_2 *)0x0) {
        (*var_3->dwarf_line_info->_vptr_Dwarf_line_info[1])();
      }
      var_3 = var_3 + 1;
    } while (addr2line_cache.
             super__Vector_base<gold::var_1,_std::allocator<gold::var_1>var_2>
             ._M_impl._M_finish != var_3);
    if (var_3 != addr2line_cache.
                  super__Vector_base<gold::var_1,_std::allocator<gold::var_1>var_2>
                  ._M_impl._M_start) {
      addr2line_cache.
      super__Vector_base<gold::var_1,_std::allocator<gold::var_1>var_2>.
      _M_impl._M_finish =
           addr2line_cache.
           super__Vector_base<gold::var_1,_std::allocator<gold::var_1>var_2>
           ._M_impl._M_start;
    }
  }
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type)))) body: (compound_statement (declaration type: (sized_type_specifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))))))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))))) (return_statement))))

void MASKED(void)

{
  long lVar1;
  
  lVar1 = DAT_00463310;
  if (DAT_00463310 != DAT_00463318) {
    do {
      if (*(long **)(lVar1 + 0x10) != (long *)0x0) {
        (**(code **)(**(long **)(lVar1 + 0x10) + 8))();
      }
      lVar1 = lVar1 + 0x20;
    } while (DAT_00463318 != lVar1);
    if (lVar1 != DAT_00463310) {
      DAT_00463318 = DAT_00463310;
    }
  }
  return;
}

