
/* gold::Arm_reloc_property::Tree_node::make_tree(std::string const&) [clone .cold.83] */

void gold::Arm_reloc_property::Tree_node::make_tree(string *param_1)

{
  void *unaff_RBX;
  int __in_chrg;
  void *in_stack_00000008;
  void *in_stack_00000030;
  
  if (*(void **)((long)unaff_RBX + 0x28) != (void *)0x0) {
    operator_delete(*(void **)((long)unaff_RBX + 0x28));
  }
  if (in_stack_00000008 != *(void **)((long)unaff_RBX + 8)) {
    operator_delete(*(void **)((long)unaff_RBX + 8));
  }
  __in_chrg = 0x40;
  operator_delete(unaff_RBX,0x40);
  if (in_stack_00000030 != (void *)0x0) {
    operator_delete(in_stack_00000030);
  }
  std::_Deque_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>::~_Deque_base
            ((_Deque_base<long_unsigned_int,_std::allocator<long_unsigned_int>_> *)&stack0x00000050,
             __in_chrg);
                    /* WARNING: Subroutine does not return */
  _Unwind_Resume();
}



void FUN_0017acc8(void)

{
  long unaff_RBX;
  long in_stack_00000008;
  long in_stack_00000030;
  
  if (*(long *)(unaff_RBX + 0x28) != 0) {
    FUN_0049e330();
  }
  if (in_stack_00000008 != *(long *)(unaff_RBX + 8)) {
    FUN_0049e330();
  }
  thunk_FUN_0049e330();
  if (in_stack_00000030 != 0) {
    FUN_0049e330();
  }
  FUN_002709c0(&stack0x00000050);
                    /* WARNING: Subroutine does not return */
  FUN_0052bfa0();
}


MOV RDI,qword ptr [RBX + 0x28]
TEST RDI,RDI
JZ 0x0017acd6
CALL 0x0049e330
MOV RDI,qword ptr [RBX + 0x8]
CMP qword ptr [RSP + 0x8],RDI
JZ 0x0017ace6
CALL 0x0049e330
MOV ESI,0x40
MOV RDI,RBX
CALL 0x0049e320
MOV RDI,qword ptr [RSP + 0x30]
TEST RDI,RDI
JZ 0x0017ad02
CALL 0x0049e330
LEA RDI,[RSP + 0x50]
CALL 0x002709c0
MOV RDI,RBP
CALL 0x0052bfa0
(translation_unit "void FUN_0017acc8(void)\n\n{\n  long unaff_RBX;\n  long in_stack_00000008;\n  long in_stack_00000030;\n  \n  if (*(long *)(unaff_RBX + 0x28) != 0) {\n    FUN_0049e330();\n  }\n  if (in_stack_00000008 != *(long *)(unaff_RBX + 8)) {\n    FUN_0049e330();\n  }\n  thunk_FUN_0049e330();\n  if (in_stack_00000030 != 0) {\n    FUN_0049e330();\n  }\n  FUN_002709c0(&stack0x00000050);\n                    /* WARNING: Subroutine does not return */\n  FUN_0052bfa0();\n}\n\n" (function_definition "void FUN_0017acc8(void)\n\n{\n  long unaff_RBX;\n  long in_stack_00000008;\n  long in_stack_00000030;\n  \n  if (*(long *)(unaff_RBX + 0x28) != 0) {\n    FUN_0049e330();\n  }\n  if (in_stack_00000008 != *(long *)(unaff_RBX + 8)) {\n    FUN_0049e330();\n  }\n  thunk_FUN_0049e330();\n  if (in_stack_00000030 != 0) {\n    FUN_0049e330();\n  }\n  FUN_002709c0(&stack0x00000050);\n                    /* WARNING: Subroutine does not return */\n  FUN_0052bfa0();\n}" primitive_type (function_declarator "FUN_0017acc8(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  long unaff_RBX;\n  long in_stack_00000008;\n  long in_stack_00000030;\n  \n  if (*(long *)(unaff_RBX + 0x28) != 0) {\n    FUN_0049e330();\n  }\n  if (in_stack_00000008 != *(long *)(unaff_RBX + 8)) {\n    FUN_0049e330();\n  }\n  thunk_FUN_0049e330();\n  if (in_stack_00000030 != 0) {\n    FUN_0049e330();\n  }\n  FUN_002709c0(&stack0x00000050);\n                    /* WARNING: Subroutine does not return */\n  FUN_0052bfa0();\n}" { (declaration "long unaff_RBX;" (sized_type_specifier "long" long) identifier ;) (declaration "long in_stack_00000008;" (sized_type_specifier "long" long) identifier ;) (declaration "long in_stack_00000030;" (sized_type_specifier "long" long) identifier ;) (if_statement "if (*(long *)(unaff_RBX + 0x28) != 0) {\n    FUN_0049e330();\n  }" if (parenthesized_expression "(*(long *)(unaff_RBX + 0x28) != 0)" ( (binary_expression "*(long *)(unaff_RBX + 0x28) != 0" (pointer_expression "*(long *)(unaff_RBX + 0x28)" * (cast_expression "(long *)(unaff_RBX + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_RBX + 0x28)" ( (binary_expression "unaff_RBX + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    FUN_0049e330();\n  }" { (expression_statement "FUN_0049e330();" (call_expression "FUN_0049e330()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (in_stack_00000008 != *(long *)(unaff_RBX + 8)) {\n    FUN_0049e330();\n  }" if (parenthesized_expression "(in_stack_00000008 != *(long *)(unaff_RBX + 8))" ( (binary_expression "in_stack_00000008 != *(long *)(unaff_RBX + 8)" identifier != (pointer_expression "*(long *)(unaff_RBX + 8)" * (cast_expression "(long *)(unaff_RBX + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_RBX + 8)" ( (binary_expression "unaff_RBX + 8" identifier + number_literal) ))))) )) (compound_statement "{\n    FUN_0049e330();\n  }" { (expression_statement "FUN_0049e330();" (call_expression "FUN_0049e330()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "thunk_FUN_0049e330();" (call_expression "thunk_FUN_0049e330()" identifier (argument_list "()" ( ))) ;) (if_statement "if (in_stack_00000030 != 0) {\n    FUN_0049e330();\n  }" if (parenthesized_expression "(in_stack_00000030 != 0)" ( (binary_expression "in_stack_00000030 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_0049e330();\n  }" { (expression_statement "FUN_0049e330();" (call_expression "FUN_0049e330()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_002709c0(&stack0x00000050);" (call_expression "FUN_002709c0(&stack0x00000050)" identifier (argument_list "(&stack0x00000050)" ( (pointer_expression "&stack0x00000050" & identifier) ))) ;) comment (expression_statement "FUN_0052bfa0();" (call_expression "FUN_0052bfa0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* gold::Arm_reloc_property::Tree_node::make_tree(std::string const&) [clone .cold.83] */\n\nvoid gold::Arm_reloc_property::Tree_node::make_tree(string *param_1)\n\n{\n  void *unaff_RBX;\n  int __in_chrg;\n  void *in_stack_00000008;\n  void *in_stack_00000030;\n  \n  if (*(void **)((long)unaff_RBX + 0x28) != (void *)0x0) {\n    operator_delete(*(void **)((long)unaff_RBX + 0x28));\n  }\n  if (in_stack_00000008 != *(void **)((long)unaff_RBX + 8)) {\n    operator_delete(*(void **)((long)unaff_RBX + 8));\n  }\n  __in_chrg = 0x40;\n  operator_delete(unaff_RBX,0x40);\n  if (in_stack_00000030 != (void *)0x0) {\n    operator_delete(in_stack_00000030);\n  }\n  std::_Deque_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>::~_Deque_base\n            ((_Deque_base<long_unsigned_int,_std::allocator<long_unsigned_int>_> *)&stack0x00000050,\n             __in_chrg);\n                    /* WARNING: Subroutine does not return */\n  _Unwind_Resume();\n}\n\n" comment (function_definition "void gold::Arm_reloc_property::Tree_node::make_tree(string *param_1)\n\n{\n  void *unaff_RBX;\n  int __in_chrg;\n  void *in_stack_00000008;\n  void *in_stack_00000030;\n  \n  if (*(void **)((long)unaff_RBX + 0x28) != (void *)0x0) {\n    operator_delete(*(void **)((long)unaff_RBX + 0x28));\n  }\n  if (in_stack_00000008 != *(void **)((long)unaff_RBX + 8)) {\n    operator_delete(*(void **)((long)unaff_RBX + 8));\n  }\n  __in_chrg = 0x40;\n  operator_delete(unaff_RBX,0x40);\n  if (in_stack_00000030 != (void *)0x0) {\n    operator_delete(in_stack_00000030);\n  }\n  std::_Deque_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>::~_Deque_base\n            ((_Deque_base<long_unsigned_int,_std::allocator<long_unsigned_int>_> *)&stack0x00000050,\n             __in_chrg);\n                    /* WARNING: Subroutine does not return */\n  _Unwind_Resume();\n}" primitive_type (ERROR "gold::Arm_reloc_property::Tree_node::" identifier : : identifier : : identifier : :) (function_declarator "make_tree(string *param_1)" identifier (parameter_list "(string *param_1)" ( (parameter_declaration "string *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  void *unaff_RBX;\n  int __in_chrg;\n  void *in_stack_00000008;\n  void *in_stack_00000030;\n  \n  if (*(void **)((long)unaff_RBX + 0x28) != (void *)0x0) {\n    operator_delete(*(void **)((long)unaff_RBX + 0x28));\n  }\n  if (in_stack_00000008 != *(void **)((long)unaff_RBX + 8)) {\n    operator_delete(*(void **)((long)unaff_RBX + 8));\n  }\n  __in_chrg = 0x40;\n  operator_delete(unaff_RBX,0x40);\n  if (in_stack_00000030 != (void *)0x0) {\n    operator_delete(in_stack_00000030);\n  }\n  std::_Deque_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>::~_Deque_base\n            ((_Deque_base<long_unsigned_int,_std::allocator<long_unsigned_int>_> *)&stack0x00000050,\n             __in_chrg);\n                    /* WARNING: Subroutine does not return */\n  _Unwind_Resume();\n}" { (declaration "void *unaff_RBX;" primitive_type (pointer_declarator "*unaff_RBX" * identifier) ;) (declaration "int __in_chrg;" primitive_type identifier ;) (declaration "void *in_stack_00000008;" primitive_type (pointer_declarator "*in_stack_00000008" * identifier) ;) (declaration "void *in_stack_00000030;" primitive_type (pointer_declarator "*in_stack_00000030" * identifier) ;) (if_statement "if (*(void **)((long)unaff_RBX + 0x28) != (void *)0x0) {\n    operator_delete(*(void **)((long)unaff_RBX + 0x28));\n  }" if (parenthesized_expression "(*(void **)((long)unaff_RBX + 0x28) != (void *)0x0)" ( (binary_expression "*(void **)((long)unaff_RBX + 0x28) != (void *)0x0" (pointer_expression "*(void **)((long)unaff_RBX + 0x28)" * (cast_expression "(void **)((long)unaff_RBX + 0x28)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)unaff_RBX + 0x28)" ( (binary_expression "(long)unaff_RBX + 0x28" (cast_expression "(long)unaff_RBX" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    operator_delete(*(void **)((long)unaff_RBX + 0x28));\n  }" { (expression_statement "operator_delete(*(void **)((long)unaff_RBX + 0x28));" (call_expression "operator_delete(*(void **)((long)unaff_RBX + 0x28))" identifier (argument_list "(*(void **)((long)unaff_RBX + 0x28))" ( (pointer_expression "*(void **)((long)unaff_RBX + 0x28)" * (cast_expression "(void **)((long)unaff_RBX + 0x28)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)unaff_RBX + 0x28)" ( (binary_expression "(long)unaff_RBX + 0x28" (cast_expression "(long)unaff_RBX" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ))) ;) })) (if_statement "if (in_stack_00000008 != *(void **)((long)unaff_RBX + 8)) {\n    operator_delete(*(void **)((long)unaff_RBX + 8));\n  }" if (parenthesized_expression "(in_stack_00000008 != *(void **)((long)unaff_RBX + 8))" ( (binary_expression "in_stack_00000008 != *(void **)((long)unaff_RBX + 8)" identifier != (pointer_expression "*(void **)((long)unaff_RBX + 8)" * (cast_expression "(void **)((long)unaff_RBX + 8)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)unaff_RBX + 8)" ( (binary_expression "(long)unaff_RBX + 8" (cast_expression "(long)unaff_RBX" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) )) (compound_statement "{\n    operator_delete(*(void **)((long)unaff_RBX + 8));\n  }" { (expression_statement "operator_delete(*(void **)((long)unaff_RBX + 8));" (call_expression "operator_delete(*(void **)((long)unaff_RBX + 8))" identifier (argument_list "(*(void **)((long)unaff_RBX + 8))" ( (pointer_expression "*(void **)((long)unaff_RBX + 8)" * (cast_expression "(void **)((long)unaff_RBX + 8)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)unaff_RBX + 8)" ( (binary_expression "(long)unaff_RBX + 8" (cast_expression "(long)unaff_RBX" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ))) ;) })) (expression_statement "__in_chrg = 0x40;" (assignment_expression "__in_chrg = 0x40" identifier = number_literal) ;) (expression_statement "operator_delete(unaff_RBX,0x40);" (call_expression "operator_delete(unaff_RBX,0x40)" identifier (argument_list "(unaff_RBX,0x40)" ( identifier , number_literal ))) ;) (if_statement "if (in_stack_00000030 != (void *)0x0) {\n    operator_delete(in_stack_00000030);\n  }" if (parenthesized_expression "(in_stack_00000030 != (void *)0x0)" ( (binary_expression "in_stack_00000030 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    operator_delete(in_stack_00000030);\n  }" { (expression_statement "operator_delete(in_stack_00000030);" (call_expression "operator_delete(in_stack_00000030)" identifier (argument_list "(in_stack_00000030)" ( identifier ))) ;) })) (labeled_statement "std::_Deque_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>::~_Deque_base\n            ((_Deque_base<long_unsigned_int,_std::allocator<long_unsigned_int>_> *)&stack0x00000050,\n             __in_chrg);" statement_identifier (ERROR "::_Deque_base<long_unsigned_int,_std::allocator<long_unsigned_int>_>:" : : (comma_expression "_Deque_base<long_unsigned_int,_std" (binary_expression "_Deque_base<long_unsigned_int" identifier < identifier) , identifier) : : (binary_expression "allocator<long_unsigned_int>_" (binary_expression "allocator<long_unsigned_int" identifier < identifier) > identifier) > :) : (expression_statement "~_Deque_base\n            ((_Deque_base<long_unsigned_int,_std::allocator<long_unsigned_int>_> *)&stack0x00000050,\n             __in_chrg);" (unary_expression "~_Deque_base\n            ((_Deque_base<long_unsigned_int,_std::allocator<long_unsigned_int>_> *)&stack0x00000050,\n             __in_chrg)" ~ (call_expression "_Deque_base\n            ((_Deque_base<long_unsigned_int,_std::allocator<long_unsigned_int>_> *)&stack0x00000050,\n             __in_chrg)" identifier (argument_list "((_Deque_base<long_unsigned_int,_std::allocator<long_unsigned_int>_> *)&stack0x00000050,\n             __in_chrg)" ( (binary_expression "(_Deque_base<long_unsigned_int,_std::allocator<long_unsigned_int>_> *)&stack0x00000050" (parenthesized_expression "(_Deque_base<long_unsigned_int,_std::allocator<long_unsigned_int>_> *)" ( (ERROR "_Deque_base<long_unsigned_int,_std::" (comma_expression "_Deque_base<long_unsigned_int,_std" (binary_expression "_Deque_base<long_unsigned_int" identifier < identifier) , identifier) : :) (binary_expression "allocator<long_unsigned_int>_> *" (binary_expression "allocator<long_unsigned_int>_" (binary_expression "allocator<long_unsigned_int" identifier < identifier) > identifier) > (pointer_expression "*" * identifier)) )) & identifier) , identifier )))) ;)) comment (expression_statement "_Unwind_Resume();" (call_expression "_Unwind_Resume()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "void FUN_0017acc8(void)\n\n{\n  long unaff_RBX;\n  long in_stack_00000008;\n  long in_stack_00000030;\n  \n  if (*(long *)(unaff_RBX + 0x28) != 0) {\n    FUN_0049e330();\n  }\n  if (in_stack_00000008 != *(long *)(unaff_RBX + 8)) {\n    FUN_0049e330();\n  }\n  thunk_FUN_0049e330();\n  if (in_stack_00000030 != 0) {\n    FUN_0049e330();\n  }\n  FUN_002709c0(&stack0x00000050);\n                    \n  FUN_0052bfa0();\n}\n\n" (function_definition "void FUN_0017acc8(void)\n\n{\n  long unaff_RBX;\n  long in_stack_00000008;\n  long in_stack_00000030;\n  \n  if (*(long *)(unaff_RBX + 0x28) != 0) {\n    FUN_0049e330();\n  }\n  if (in_stack_00000008 != *(long *)(unaff_RBX + 8)) {\n    FUN_0049e330();\n  }\n  thunk_FUN_0049e330();\n  if (in_stack_00000030 != 0) {\n    FUN_0049e330();\n  }\n  FUN_002709c0(&stack0x00000050);\n                    \n  FUN_0052bfa0();\n}" primitive_type (function_declarator "FUN_0017acc8(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  long unaff_RBX;\n  long in_stack_00000008;\n  long in_stack_00000030;\n  \n  if (*(long *)(unaff_RBX + 0x28) != 0) {\n    FUN_0049e330();\n  }\n  if (in_stack_00000008 != *(long *)(unaff_RBX + 8)) {\n    FUN_0049e330();\n  }\n  thunk_FUN_0049e330();\n  if (in_stack_00000030 != 0) {\n    FUN_0049e330();\n  }\n  FUN_002709c0(&stack0x00000050);\n                    \n  FUN_0052bfa0();\n}" { (declaration "long unaff_RBX;" (sized_type_specifier "long" long) identifier ;) (declaration "long in_stack_00000008;" (sized_type_specifier "long" long) identifier ;) (declaration "long in_stack_00000030;" (sized_type_specifier "long" long) identifier ;) (if_statement "if (*(long *)(unaff_RBX + 0x28) != 0) {\n    FUN_0049e330();\n  }" if (parenthesized_expression "(*(long *)(unaff_RBX + 0x28) != 0)" ( (binary_expression "*(long *)(unaff_RBX + 0x28) != 0" (pointer_expression "*(long *)(unaff_RBX + 0x28)" * (cast_expression "(long *)(unaff_RBX + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_RBX + 0x28)" ( (binary_expression "unaff_RBX + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    FUN_0049e330();\n  }" { (expression_statement "FUN_0049e330();" (call_expression "FUN_0049e330()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (in_stack_00000008 != *(long *)(unaff_RBX + 8)) {\n    FUN_0049e330();\n  }" if (parenthesized_expression "(in_stack_00000008 != *(long *)(unaff_RBX + 8))" ( (binary_expression "in_stack_00000008 != *(long *)(unaff_RBX + 8)" identifier != (pointer_expression "*(long *)(unaff_RBX + 8)" * (cast_expression "(long *)(unaff_RBX + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_RBX + 8)" ( (binary_expression "unaff_RBX + 8" identifier + number_literal) ))))) )) (compound_statement "{\n    FUN_0049e330();\n  }" { (expression_statement "FUN_0049e330();" (call_expression "FUN_0049e330()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "thunk_FUN_0049e330();" (call_expression "thunk_FUN_0049e330()" identifier (argument_list "()" ( ))) ;) (if_statement "if (in_stack_00000030 != 0) {\n    FUN_0049e330();\n  }" if (parenthesized_expression "(in_stack_00000030 != 0)" ( (binary_expression "in_stack_00000030 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_0049e330();\n  }" { (expression_statement "FUN_0049e330();" (call_expression "FUN_0049e330()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_002709c0(&stack0x00000050);" (call_expression "FUN_002709c0(&stack0x00000050)" identifier (argument_list "(&stack0x00000050)" ( (pointer_expression "&stack0x00000050" & identifier) ))) ;) (expression_statement "FUN_0052bfa0();" (call_expression "FUN_0052bfa0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "void FUN_0017acc8(void)\n\n{\n  long unaff_RBX;\n  long in_stack_00000008;\n  long in_stack_00000030;\n  \n  if (*(long *)(unaff_RBX + 0x28) != 0) {\n    FUN_0049e330();\n  }\n  if (in_stack_00000008 != *(long *)(unaff_RBX + 8)) {\n    FUN_0049e330();\n  }\n  thunk_FUN_0049e330();\n  if (in_stack_00000030 != 0) {\n    FUN_0049e330();\n  }\n  FUN_002709c0(&stack0x00000050);\n                    \n  FUN_0052bfa0();\n}" (primitive_type "void") (function_declarator "FUN_0017acc8(void)" (identifier "FUN_0017acc8") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  long unaff_RBX;\n  long in_stack_00000008;\n  long in_stack_00000030;\n  \n  if (*(long *)(unaff_RBX + 0x28) != 0) {\n    FUN_0049e330();\n  }\n  if (in_stack_00000008 != *(long *)(unaff_RBX + 8)) {\n    FUN_0049e330();\n  }\n  thunk_FUN_0049e330();\n  if (in_stack_00000030 != 0) {\n    FUN_0049e330();\n  }\n  FUN_002709c0(&stack0x00000050);\n                    \n  FUN_0052bfa0();\n}" ({ "{") (declaration "long unaff_RBX;" (sized_type_specifier "long" (long "long")) (identifier "unaff_RBX") (; ";")) (declaration "long in_stack_00000008;" (sized_type_specifier "long" (long "long")) (identifier "in_stack_00000008") (; ";")) (declaration "long in_stack_00000030;" (sized_type_specifier "long" (long "long")) (identifier "in_stack_00000030") (; ";")) (if_statement "if (*(long *)(unaff_RBX + 0x28) != 0) {\n    FUN_0049e330();\n  }" (if "if") (parenthesized_expression "(*(long *)(unaff_RBX + 0x28) != 0)" (( "(") (binary_expression "*(long *)(unaff_RBX + 0x28) != 0" (pointer_expression "*(long *)(unaff_RBX + 0x28)" (* "*") (cast_expression "(long *)(unaff_RBX + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_RBX + 0x28)" (( "(") (binary_expression "unaff_RBX + 0x28" (identifier "unaff_RBX") (+ "+") (number_literal "0x28")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_0049e330();\n  }" ({ "{") (expression_statement "FUN_0049e330();" (call_expression "FUN_0049e330()" (identifier "FUN_0049e330") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (in_stack_00000008 != *(long *)(unaff_RBX + 8)) {\n    FUN_0049e330();\n  }" (if "if") (parenthesized_expression "(in_stack_00000008 != *(long *)(unaff_RBX + 8))" (( "(") (binary_expression "in_stack_00000008 != *(long *)(unaff_RBX + 8)" (identifier "in_stack_00000008") (!= "!=") (pointer_expression "*(long *)(unaff_RBX + 8)" (* "*") (cast_expression "(long *)(unaff_RBX + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_RBX + 8)" (( "(") (binary_expression "unaff_RBX + 8" (identifier "unaff_RBX") (+ "+") (number_literal "8")) () ")"))))) () ")")) (compound_statement "{\n    FUN_0049e330();\n  }" ({ "{") (expression_statement "FUN_0049e330();" (call_expression "FUN_0049e330()" (identifier "FUN_0049e330") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "thunk_FUN_0049e330();" (call_expression "thunk_FUN_0049e330()" (identifier "thunk_FUN_0049e330") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (in_stack_00000030 != 0) {\n    FUN_0049e330();\n  }" (if "if") (parenthesized_expression "(in_stack_00000030 != 0)" (( "(") (binary_expression "in_stack_00000030 != 0" (identifier "in_stack_00000030") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_0049e330();\n  }" ({ "{") (expression_statement "FUN_0049e330();" (call_expression "FUN_0049e330()" (identifier "FUN_0049e330") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_002709c0(&stack0x00000050);" (call_expression "FUN_002709c0(&stack0x00000050)" (identifier "FUN_002709c0") (argument_list "(&stack0x00000050)" (( "(") (pointer_expression "&stack0x00000050" (& "&") (identifier "stack0x00000050")) () ")"))) (; ";")) (expression_statement "FUN_0052bfa0();" (call_expression "FUN_0052bfa0()" (identifier "FUN_0052bfa0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

/* gold::Arm_reloc_property::Tree_node::make_tree(std::string const&) [clone .cold.83] */

void gold::Arm_reloc_property::Tree_node::function_1(type_1 *param_1)

{
  void *unaff_RBX;
  int __in_chrg;
  void *var_2;
  void *var_3;
  
  if (*(void **)((long)unaff_RBX + 0x28) != (void *)0x0) {
    var_1(*(void **)((long)unaff_RBX + 0x28));
  }
  if (var_2 != *(void **)((long)unaff_RBX + 8)) {
    var_1(*(void **)((long)unaff_RBX + 8));
  }
  __in_chrg = 0x40;
  var_1(unaff_RBX,0x40);
  if (var_3 != (void *)0x0) {
    var_1(var_3);
  }
  std::var_4<var_6,_std::var_5<var_6>var_7>::~var_4
            ((var_4<var_6,_std::var_5<var_6>var_7> *)&var_8,
             __in_chrg);
                    /* WARNING: Subroutine does not return */
  var_9();
}


(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)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))))

void MASKED(void)

{
  long unaff_RBX;
  long in_stack_00000008;
  long in_stack_00000030;
  
  if (*(long *)(unaff_RBX + 0x28) != 0) {
    FUN_0049e330();
  }
  if (in_stack_00000008 != *(long *)(unaff_RBX + 8)) {
    FUN_0049e330();
  }
  thunk_FUN_0049e330();
  if (in_stack_00000030 != 0) {
    FUN_0049e330();
  }
  FUN_002709c0(&stack0x00000050);
                    /* WARNING: Subroutine does not return */
  FUN_0052bfa0();
}

