
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void ~Mips_output_data_got(Mips_output_data_got<32,_false> * this, int
   __in_chrg) */

void __thiscall
anon_unknown.dwarf_ead2ad::Mips_output_data_got<32,_false>::~Mips_output_data_got
          (Mips_output_data_got<32,_false> *this,int __in_chrg)

{
  pointer pSVar1;
  _List_node_base *p_Var2;
  _List_node_base *p_Var3;
  pointer pGVar4;
  int __in_chrg_00;
  ulong uVar5;
  
  uVar5 = (ulong)(uint)__in_chrg;
  (this->super_Output_data_got<32,_false>).super_Output_data_got_base.
  super_Output_section_data_build.super_Output_section_data.super_Output_data._vptr_Output_data =
       (_func_int_varargs **)&PTR__Mips_output_data_got_0066af60;
  pSVar1 = (this->secondary_got_relocs_).
           super__Vector_base<(anonymous_namespace)::Mips_output_data_got<32,_false>::Static_reloc,_std::allocator<(anonymous_namespace)::Mips_output_data_got<32,_false>::Static_reloc>_>
           ._M_impl._M_start;
  if (pSVar1 != (pointer)0x0) {
    operator_delete(pSVar1);
  }
  pSVar1 = (this->static_relocs_).
           super__Vector_base<(anonymous_namespace)::Mips_output_data_got<32,_false>::Static_reloc,_std::allocator<(anonymous_namespace)::Mips_output_data_got<32,_false>::Static_reloc>_>
           ._M_impl._M_start;
  if (pSVar1 != (pointer)0x0) {
    operator_delete(pSVar1);
  }
  __in_chrg_00 = (int)uVar5;
  p_Var2 = (this->super_Output_data_got<32,_false>).free_list_.list_.
           super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>
           ._M_impl._M_node.super__List_node_base._M_next;
  (this->super_Output_data_got<32,_false>).super_Output_data_got_base.
  super_Output_section_data_build.super_Output_section_data.super_Output_data._vptr_Output_data =
       (_func_int_varargs **)&PTR__Output_data_got_006604b0;
  while ((Free_list *)p_Var2 != &(this->super_Output_data_got<32,_false>).free_list_) {
    p_Var3 = p_Var2->_M_next;
    operator_delete(p_Var2);
    __in_chrg_00 = (int)uVar5;
    p_Var2 = p_Var3;
  }
  pGVar4 = (this->super_Output_data_got<32,_false>).entries_.
           super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>
           ._M_impl._M_start;
  if (pGVar4 != (pointer)0x0) {
    operator_delete(pGVar4);
  }
  (this->super_Output_data_got<32,_false>).super_Output_data_got_base.
  super_Output_section_data_build.super_Output_section_data.super_Output_data._vptr_Output_data =
       (_func_int_varargs **)&DAT_006743e8;
  gold::Output_data::~Output_data((Output_data *)this,__in_chrg_00);
  operator_delete(this,0xf0);
  return;
}



void FUN_00294fc0(undefined8 *param_1)

{
  undefined8 *puVar1;
  
  *param_1 = &PTR_FUN_0066af60;
  if (param_1[0x1b] != 0) {
    FUN_0049e330();
  }
  if (param_1[0x14] != 0) {
    FUN_0049e330();
  }
  puVar1 = (undefined8 *)param_1[10];
  *param_1 = &PTR_FUN_006604b0;
  while (puVar1 != param_1 + 10) {
    puVar1 = (undefined8 *)*puVar1;
    FUN_0049e330();
  }
  if (param_1[7] != 0) {
    FUN_0049e330();
  }
  *param_1 = &DAT_006743e8;
  FUN_003c95b0(param_1);
  thunk_FUN_0049e330(param_1,0xf0);
  return;
}


LEA RAX,[0x66af60]
PUSH R12
PUSH RBP
PUSH RBX
MOV RBX,RDI
MOV qword ptr [RDI],RAX
MOV RDI,qword ptr [RDI + 0xd8]
TEST RDI,RDI
JZ 0x00294fe2
CALL 0x0049e330
MOV RDI,qword ptr [RBX + 0xa0]
TEST RDI,RDI
JZ 0x00294ff3
CALL 0x0049e330
MOV RDI,qword ptr [RBX + 0x50]
LEA RAX,[0x6604b0]
LEA RBP,[RBX + 0x50]
MOV qword ptr [RBX],RAX
CMP RDI,RBP
JZ 0x00295020
NOP word ptr [RAX + RAX*0x1]
MOV R12,qword ptr [RDI]
CALL 0x0049e330
MOV RDI,R12
CMP R12,RBP
JNZ 0x00295010
MOV RDI,qword ptr [RBX + 0x38]
TEST RDI,RDI
JZ 0x0029502e
CALL 0x0049e330
LEA RAX,[0x6743e8]
MOV RDI,RBX
MOV qword ptr [RBX],RAX
CALL 0x003c95b0
MOV RDI,RBX
MOV ESI,0xf0
POP RBX
POP RBP
POP R12
JMP 0x0049e320
(translation_unit "void FUN_00294fc0(undefined8 *param_1)\n\n{\n  undefined8 *puVar1;\n  \n  *param_1 = &PTR_FUN_0066af60;\n  if (param_1[0x1b] != 0) {\n    FUN_0049e330();\n  }\n  if (param_1[0x14] != 0) {\n    FUN_0049e330();\n  }\n  puVar1 = (undefined8 *)param_1[10];\n  *param_1 = &PTR_FUN_006604b0;\n  while (puVar1 != param_1 + 10) {\n    puVar1 = (undefined8 *)*puVar1;\n    FUN_0049e330();\n  }\n  if (param_1[7] != 0) {\n    FUN_0049e330();\n  }\n  *param_1 = &DAT_006743e8;\n  FUN_003c95b0(param_1);\n  thunk_FUN_0049e330(param_1,0xf0);\n  return;\n}\n\n" (function_definition "void FUN_00294fc0(undefined8 *param_1)\n\n{\n  undefined8 *puVar1;\n  \n  *param_1 = &PTR_FUN_0066af60;\n  if (param_1[0x1b] != 0) {\n    FUN_0049e330();\n  }\n  if (param_1[0x14] != 0) {\n    FUN_0049e330();\n  }\n  puVar1 = (undefined8 *)param_1[10];\n  *param_1 = &PTR_FUN_006604b0;\n  while (puVar1 != param_1 + 10) {\n    puVar1 = (undefined8 *)*puVar1;\n    FUN_0049e330();\n  }\n  if (param_1[7] != 0) {\n    FUN_0049e330();\n  }\n  *param_1 = &DAT_006743e8;\n  FUN_003c95b0(param_1);\n  thunk_FUN_0049e330(param_1,0xf0);\n  return;\n}" primitive_type (function_declarator "FUN_00294fc0(undefined8 *param_1)" identifier (parameter_list "(undefined8 *param_1)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  undefined8 *puVar1;\n  \n  *param_1 = &PTR_FUN_0066af60;\n  if (param_1[0x1b] != 0) {\n    FUN_0049e330();\n  }\n  if (param_1[0x14] != 0) {\n    FUN_0049e330();\n  }\n  puVar1 = (undefined8 *)param_1[10];\n  *param_1 = &PTR_FUN_006604b0;\n  while (puVar1 != param_1 + 10) {\n    puVar1 = (undefined8 *)*puVar1;\n    FUN_0049e330();\n  }\n  if (param_1[7] != 0) {\n    FUN_0049e330();\n  }\n  *param_1 = &DAT_006743e8;\n  FUN_003c95b0(param_1);\n  thunk_FUN_0049e330(param_1,0xf0);\n  return;\n}" { (declaration "undefined8 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (expression_statement "*param_1 = &PTR_FUN_0066af60;" (assignment_expression "*param_1 = &PTR_FUN_0066af60" (pointer_expression "*param_1" * identifier) = (pointer_expression "&PTR_FUN_0066af60" & identifier)) ;) (if_statement "if (param_1[0x1b] != 0) {\n    FUN_0049e330();\n  }" if (parenthesized_expression "(param_1[0x1b] != 0)" ( (binary_expression "param_1[0x1b] != 0" (subscript_expression "param_1[0x1b]" 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 (param_1[0x14] != 0) {\n    FUN_0049e330();\n  }" if (parenthesized_expression "(param_1[0x14] != 0)" ( (binary_expression "param_1[0x14] != 0" (subscript_expression "param_1[0x14]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    FUN_0049e330();\n  }" { (expression_statement "FUN_0049e330();" (call_expression "FUN_0049e330()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "puVar1 = (undefined8 *)param_1[10];" (assignment_expression "puVar1 = (undefined8 *)param_1[10]" identifier = (cast_expression "(undefined8 *)param_1[10]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[10]" identifier [ number_literal ]))) ;) (expression_statement "*param_1 = &PTR_FUN_006604b0;" (assignment_expression "*param_1 = &PTR_FUN_006604b0" (pointer_expression "*param_1" * identifier) = (pointer_expression "&PTR_FUN_006604b0" & identifier)) ;) (while_statement "while (puVar1 != param_1 + 10) {\n    puVar1 = (undefined8 *)*puVar1;\n    FUN_0049e330();\n  }" while (parenthesized_expression "(puVar1 != param_1 + 10)" ( (binary_expression "puVar1 != param_1 + 10" identifier != (binary_expression "param_1 + 10" identifier + number_literal)) )) (compound_statement "{\n    puVar1 = (undefined8 *)*puVar1;\n    FUN_0049e330();\n  }" { (expression_statement "puVar1 = (undefined8 *)*puVar1;" (assignment_expression "puVar1 = (undefined8 *)*puVar1" identifier = (cast_expression "(undefined8 *)*puVar1" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar1" * identifier))) ;) (expression_statement "FUN_0049e330();" (call_expression "FUN_0049e330()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (param_1[7] != 0) {\n    FUN_0049e330();\n  }" if (parenthesized_expression "(param_1[7] != 0)" ( (binary_expression "param_1[7] != 0" (subscript_expression "param_1[7]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    FUN_0049e330();\n  }" { (expression_statement "FUN_0049e330();" (call_expression "FUN_0049e330()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*param_1 = &DAT_006743e8;" (assignment_expression "*param_1 = &DAT_006743e8" (pointer_expression "*param_1" * identifier) = (pointer_expression "&DAT_006743e8" & identifier)) ;) (expression_statement "FUN_003c95b0(param_1);" (call_expression "FUN_003c95b0(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "thunk_FUN_0049e330(param_1,0xf0);" (call_expression "thunk_FUN_0049e330(param_1,0xf0)" identifier (argument_list "(param_1,0xf0)" ( identifier , number_literal ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original prototype: void ~Mips_output_data_got(Mips_output_data_got<32,_false> * this, int\n   __in_chrg) */\n\nvoid __thiscall\nanon_unknown.dwarf_ead2ad::Mips_output_data_got<32,_false>::~Mips_output_data_got\n          (Mips_output_data_got<32,_false> *this,int __in_chrg)\n\n{\n  pointer pSVar1;\n  _List_node_base *p_Var2;\n  _List_node_base *p_Var3;\n  pointer pGVar4;\n  int __in_chrg_00;\n  ulong uVar5;\n  \n  uVar5 = (ulong)(uint)__in_chrg;\n  (this->super_Output_data_got<32,_false>).super_Output_data_got_base.\n  super_Output_section_data_build.super_Output_section_data.super_Output_data._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Mips_output_data_got_0066af60;\n  pSVar1 = (this->secondary_got_relocs_).\n           super__Vector_base<(anonymous_namespace)::Mips_output_data_got<32,_false>::Static_reloc,_std::allocator<(anonymous_namespace)::Mips_output_data_got<32,_false>::Static_reloc>_>\n           ._M_impl._M_start;\n  if (pSVar1 != (pointer)0x0) {\n    operator_delete(pSVar1);\n  }\n  pSVar1 = (this->static_relocs_).\n           super__Vector_base<(anonymous_namespace)::Mips_output_data_got<32,_false>::Static_reloc,_std::allocator<(anonymous_namespace)::Mips_output_data_got<32,_false>::Static_reloc>_>\n           ._M_impl._M_start;\n  if (pSVar1 != (pointer)0x0) {\n    operator_delete(pSVar1);\n  }\n  __in_chrg_00 = (int)uVar5;\n  p_Var2 = (this->super_Output_data_got<32,_false>).free_list_.list_.\n           super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n           ._M_impl._M_node.super__List_node_base._M_next;\n  (this->super_Output_data_got<32,_false>).super_Output_data_got_base.\n  super_Output_section_data_build.super_Output_section_data.super_Output_data._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Output_data_got_006604b0;\n  while ((Free_list *)p_Var2 != &(this->super_Output_data_got<32,_false>).free_list_) {\n    p_Var3 = p_Var2->_M_next;\n    operator_delete(p_Var2);\n    __in_chrg_00 = (int)uVar5;\n    p_Var2 = p_Var3;\n  }\n  pGVar4 = (this->super_Output_data_got<32,_false>).entries_.\n           super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n           ._M_impl._M_start;\n  if (pGVar4 != (pointer)0x0) {\n    operator_delete(pGVar4);\n  }\n  (this->super_Output_data_got<32,_false>).super_Output_data_got_base.\n  super_Output_section_data_build.super_Output_section_data.super_Output_data._vptr_Output_data =\n       (_func_int_varargs **)&DAT_006743e8;\n  gold::Output_data::~Output_data((Output_data *)this,__in_chrg_00);\n  operator_delete(this,0xf0);\n  return;\n}\n\n" comment comment comment (declaration "void __thiscall\nanon_unknown.dwarf_ead2ad::Mips_output_data_got<32,_false>::~Mips_output_data_got\n          (Mips_output_data_got<32,_false> *this,int __in_chrg)\n\n{\n  pointer pSVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "anon_unknown.dwarf_ead2ad::" identifier . identifier : :) identifier (ERROR "<32" < number_literal) , (ERROR "_false>::~Mips_output_data_got\n          (Mips_output_data_got<32,_false> *this,int __in_chrg)\n\n{\n  pointer" identifier > : : ~ (function_declarator "Mips_output_data_got\n          (Mips_output_data_got<32,_false> *this,int __in_chrg)" identifier (parameter_list "(Mips_output_data_got<32,_false> *this,int __in_chrg)" ( (parameter_declaration "Mips_output_data_got" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "_false> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "int __in_chrg" primitive_type identifier) ))) { identifier) identifier ;) (declaration "_List_node_base *p_Var2;" type_identifier (pointer_declarator "*p_Var2" * identifier) ;) (declaration "_List_node_base *p_Var3;" type_identifier (pointer_declarator "*p_Var3" * identifier) ;) (declaration "pointer pGVar4;" type_identifier identifier ;) (declaration "int __in_chrg_00;" primitive_type identifier ;) (declaration "ulong uVar5;" type_identifier identifier ;) (expression_statement "uVar5 = (ulong)(uint)__in_chrg;" (assignment_expression "uVar5 = (ulong)(uint)__in_chrg" identifier = (cast_expression "(ulong)(uint)__in_chrg" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(uint)__in_chrg" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "(this->super_Output_data_got<32,_false>).super_Output_data_got_base.\n  super_Output_section_data_build.super_Output_section_data.super_Output_data._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Mips_output_data_got_0066af60;" (assignment_expression "(this->super_Output_data_got<32,_false>).super_Output_data_got_base.\n  super_Output_section_data_build.super_Output_section_data.super_Output_data._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Mips_output_data_got_0066af60" (field_expression "(this->super_Output_data_got<32,_false>).super_Output_data_got_base.\n  super_Output_section_data_build.super_Output_section_data.super_Output_data._vptr_Output_data" (field_expression "(this->super_Output_data_got<32,_false>).super_Output_data_got_base.\n  super_Output_section_data_build.super_Output_section_data.super_Output_data" (field_expression "(this->super_Output_data_got<32,_false>).super_Output_data_got_base.\n  super_Output_section_data_build.super_Output_section_data" (field_expression "(this->super_Output_data_got<32,_false>).super_Output_data_got_base.\n  super_Output_section_data_build" (field_expression "(this->super_Output_data_got<32,_false>).super_Output_data_got_base" (parenthesized_expression "(this->super_Output_data_got<32,_false>)" ( (comma_expression "this->super_Output_data_got<32,_false" (binary_expression "this->super_Output_data_got<32" (field_expression "this->super_Output_data_got" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Mips_output_data_got_0066af60" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Mips_output_data_got_0066af60" & identifier))) ;) (expression_statement "pSVar1 = (this->secondary_got_relocs_).\n           super__Vector_base<(anonymous_namespace)::Mips_output_data_got<32,_false>::Static_reloc,_std::allocator<(anonymous_namespace)::Mips_output_data_got<32,_false>::Static_reloc>_>\n           ._M_impl._M_start;" (field_expression "pSVar1 = (this->secondary_got_relocs_).\n           super__Vector_base<(anonymous_namespace)::Mips_output_data_got<32,_false>::Static_reloc,_std::allocator<(anonymous_namespace)::Mips_output_data_got<32,_false>::Static_reloc>_>\n           ._M_impl._M_start" (field_expression "pSVar1 = (this->secondary_got_relocs_).\n           super__Vector_base<(anonymous_namespace)::Mips_output_data_got<32,_false>::Static_reloc,_std::allocator<(anonymous_namespace)::Mips_output_data_got<32,_false>::Static_reloc>_>\n           ._M_impl" (binary_expression "pSVar1 = (this->secondary_got_relocs_).\n           super__Vector_base<(anonymous_namespace)::Mips_output_data_got<32,_false>::Static_reloc,_std::allocator<(anonymous_namespace)::Mips_output_data_got<32,_false>::Static_reloc>_" (binary_expression "pSVar1 = (this->secondary_got_relocs_).\n           super__Vector_base<(anonymous_namespace)::Mips_output_data_got<32,_false>::Static_reloc,_std::allocator<(anonymous_namespace)::Mips_output_data_got<32,_false>::Static_reloc" (binary_expression "pSVar1 = (this->secondary_got_relocs_).\n           super__Vector_base<(anonymous_namespace)::Mips_output_data_got<32,_false>::Static_reloc,_std::allocator<(anonymous_namespace)::Mips_output_data_got<32" (binary_expression "pSVar1 = (this->secondary_got_relocs_).\n           super__Vector_base<(anonymous_namespace)::Mips_output_data_got<32,_false>::Static_reloc,_std::allocator<(anonymous_namespace)" (binary_expression "pSVar1 = (this->secondary_got_relocs_).\n           super__Vector_base<(anonymous_namespace)::Mips_output_data_got<32,_false>::Static_reloc" (binary_expression "pSVar1 = (this->secondary_got_relocs_).\n           super__Vector_base<(anonymous_namespace)::Mips_output_data_got<32" (assignment_expression "pSVar1 = (this->secondary_got_relocs_).\n           super__Vector_base<(anonymous_namespace)" identifier = (binary_expression "(this->secondary_got_relocs_).\n           super__Vector_base<(anonymous_namespace)" (field_expression "(this->secondary_got_relocs_).\n           super__Vector_base" (parenthesized_expression "(this->secondary_got_relocs_)" ( (field_expression "this->secondary_got_relocs_" identifier -> field_identifier) )) . field_identifier) < (parenthesized_expression "(anonymous_namespace)" ( identifier )))) (ERROR "::Mips_output_data_got" : : identifier) < number_literal) (ERROR ",_false" , identifier) > (ERROR "::" : :) identifier) (ERROR ",_std::allocator" , identifier : : identifier) < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Mips_output_data_got" : : identifier) < number_literal) (ERROR ",_false" , identifier) > (ERROR "::" : :) identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if (pSVar1 != (pointer)0x0) {\n    operator_delete(pSVar1);\n  }" if (parenthesized_expression "(pSVar1 != (pointer)0x0)" ( (binary_expression "pSVar1 != (pointer)0x0" identifier != (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n    operator_delete(pSVar1);\n  }" { (expression_statement "operator_delete(pSVar1);" (call_expression "operator_delete(pSVar1)" identifier (argument_list "(pSVar1)" ( identifier ))) ;) })) (expression_statement "pSVar1 = (this->static_relocs_).\n           super__Vector_base<(anonymous_namespace)::Mips_output_data_got<32,_false>::Static_reloc,_std::allocator<(anonymous_namespace)::Mips_output_data_got<32,_false>::Static_reloc>_>\n           ._M_impl._M_start;" (field_expression "pSVar1 = (this->static_relocs_).\n           super__Vector_base<(anonymous_namespace)::Mips_output_data_got<32,_false>::Static_reloc,_std::allocator<(anonymous_namespace)::Mips_output_data_got<32,_false>::Static_reloc>_>\n           ._M_impl._M_start" (field_expression "pSVar1 = (this->static_relocs_).\n           super__Vector_base<(anonymous_namespace)::Mips_output_data_got<32,_false>::Static_reloc,_std::allocator<(anonymous_namespace)::Mips_output_data_got<32,_false>::Static_reloc>_>\n           ._M_impl" (binary_expression "pSVar1 = (this->static_relocs_).\n           super__Vector_base<(anonymous_namespace)::Mips_output_data_got<32,_false>::Static_reloc,_std::allocator<(anonymous_namespace)::Mips_output_data_got<32,_false>::Static_reloc>_" (binary_expression "pSVar1 = (this->static_relocs_).\n           super__Vector_base<(anonymous_namespace)::Mips_output_data_got<32,_false>::Static_reloc,_std::allocator<(anonymous_namespace)::Mips_output_data_got<32,_false>::Static_reloc" (binary_expression "pSVar1 = (this->static_relocs_).\n           super__Vector_base<(anonymous_namespace)::Mips_output_data_got<32,_false>::Static_reloc,_std::allocator<(anonymous_namespace)::Mips_output_data_got<32" (binary_expression "pSVar1 = (this->static_relocs_).\n           super__Vector_base<(anonymous_namespace)::Mips_output_data_got<32,_false>::Static_reloc,_std::allocator<(anonymous_namespace)" (binary_expression "pSVar1 = (this->static_relocs_).\n           super__Vector_base<(anonymous_namespace)::Mips_output_data_got<32,_false>::Static_reloc" (binary_expression "pSVar1 = (this->static_relocs_).\n           super__Vector_base<(anonymous_namespace)::Mips_output_data_got<32" (assignment_expression "pSVar1 = (this->static_relocs_).\n           super__Vector_base<(anonymous_namespace)" identifier = (binary_expression "(this->static_relocs_).\n           super__Vector_base<(anonymous_namespace)" (field_expression "(this->static_relocs_).\n           super__Vector_base" (parenthesized_expression "(this->static_relocs_)" ( (field_expression "this->static_relocs_" identifier -> field_identifier) )) . field_identifier) < (parenthesized_expression "(anonymous_namespace)" ( identifier )))) (ERROR "::Mips_output_data_got" : : identifier) < number_literal) (ERROR ",_false" , identifier) > (ERROR "::" : :) identifier) (ERROR ",_std::allocator" , identifier : : identifier) < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Mips_output_data_got" : : identifier) < number_literal) (ERROR ",_false" , identifier) > (ERROR "::" : :) identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if (pSVar1 != (pointer)0x0) {\n    operator_delete(pSVar1);\n  }" if (parenthesized_expression "(pSVar1 != (pointer)0x0)" ( (binary_expression "pSVar1 != (pointer)0x0" identifier != (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n    operator_delete(pSVar1);\n  }" { (expression_statement "operator_delete(pSVar1);" (call_expression "operator_delete(pSVar1)" identifier (argument_list "(pSVar1)" ( identifier ))) ;) })) (expression_statement "__in_chrg_00 = (int)uVar5;" (assignment_expression "__in_chrg_00 = (int)uVar5" identifier = (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "p_Var2 = (this->super_Output_data_got<32,_false>).free_list_.list_.\n           super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n           ._M_impl._M_node.super__List_node_base._M_next;" (field_expression "p_Var2 = (this->super_Output_data_got<32,_false>).free_list_.list_.\n           super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n           ._M_impl._M_node.super__List_node_base._M_next" (field_expression "p_Var2 = (this->super_Output_data_got<32,_false>).free_list_.list_.\n           super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n           ._M_impl._M_node.super__List_node_base" (field_expression "p_Var2 = (this->super_Output_data_got<32,_false>).free_list_.list_.\n           super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n           ._M_impl._M_node" (field_expression "p_Var2 = (this->super_Output_data_got<32,_false>).free_list_.list_.\n           super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n           ._M_impl" (binary_expression "p_Var2 = (this->super_Output_data_got<32,_false>).free_list_.list_.\n           super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_" (binary_expression "p_Var2 = (this->super_Output_data_got<32,_false>).free_list_.list_.\n           super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold" (assignment_expression "p_Var2 = (this->super_Output_data_got<32,_false>).free_list_.list_.\n           super__List_base<gold" identifier = (binary_expression "(this->super_Output_data_got<32,_false>).free_list_.list_.\n           super__List_base<gold" (field_expression "(this->super_Output_data_got<32,_false>).free_list_.list_.\n           super__List_base" (field_expression "(this->super_Output_data_got<32,_false>).free_list_.list_" (field_expression "(this->super_Output_data_got<32,_false>).free_list_" (parenthesized_expression "(this->super_Output_data_got<32,_false>)" ( (comma_expression "this->super_Output_data_got<32,_false" (binary_expression "this->super_Output_data_got<32" (field_expression "this->super_Output_data_got" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) < identifier)) (ERROR "::Free_list::Free_list_node,_std::allocator" : : identifier : : identifier , identifier : : identifier) < identifier) (ERROR "::Free_list::Free_list_node" : : identifier : : identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) ;) (expression_statement "(this->super_Output_data_got<32,_false>).super_Output_data_got_base.\n  super_Output_section_data_build.super_Output_section_data.super_Output_data._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Output_data_got_006604b0;" (assignment_expression "(this->super_Output_data_got<32,_false>).super_Output_data_got_base.\n  super_Output_section_data_build.super_Output_section_data.super_Output_data._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Output_data_got_006604b0" (field_expression "(this->super_Output_data_got<32,_false>).super_Output_data_got_base.\n  super_Output_section_data_build.super_Output_section_data.super_Output_data._vptr_Output_data" (field_expression "(this->super_Output_data_got<32,_false>).super_Output_data_got_base.\n  super_Output_section_data_build.super_Output_section_data.super_Output_data" (field_expression "(this->super_Output_data_got<32,_false>).super_Output_data_got_base.\n  super_Output_section_data_build.super_Output_section_data" (field_expression "(this->super_Output_data_got<32,_false>).super_Output_data_got_base.\n  super_Output_section_data_build" (field_expression "(this->super_Output_data_got<32,_false>).super_Output_data_got_base" (parenthesized_expression "(this->super_Output_data_got<32,_false>)" ( (comma_expression "this->super_Output_data_got<32,_false" (binary_expression "this->super_Output_data_got<32" (field_expression "this->super_Output_data_got" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Output_data_got_006604b0" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Output_data_got_006604b0" & identifier))) ;) (while_statement "while ((Free_list *)p_Var2 != &(this->super_Output_data_got<32,_false>).free_list_) {\n    p_Var3 = p_Var2->_M_next;\n    operator_delete(p_Var2);\n    __in_chrg_00 = (int)uVar5;\n    p_Var2 = p_Var3;\n  }" while (parenthesized_expression "((Free_list *)p_Var2 != &(this->super_Output_data_got<32,_false>).free_list_)" ( (binary_expression "(Free_list *)p_Var2 != &(this->super_Output_data_got<32,_false>).free_list_" (cast_expression "(Free_list *)p_Var2" ( (type_descriptor "Free_list *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != (pointer_expression "&(this->super_Output_data_got<32,_false>).free_list_" & (field_expression "(this->super_Output_data_got<32,_false>).free_list_" (parenthesized_expression "(this->super_Output_data_got<32,_false>)" ( (comma_expression "this->super_Output_data_got<32,_false" (binary_expression "this->super_Output_data_got<32" (field_expression "this->super_Output_data_got" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier))) )) (compound_statement "{\n    p_Var3 = p_Var2->_M_next;\n    operator_delete(p_Var2);\n    __in_chrg_00 = (int)uVar5;\n    p_Var2 = p_Var3;\n  }" { (expression_statement "p_Var3 = p_Var2->_M_next;" (assignment_expression "p_Var3 = p_Var2->_M_next" identifier = (field_expression "p_Var2->_M_next" identifier -> field_identifier)) ;) (expression_statement "operator_delete(p_Var2);" (call_expression "operator_delete(p_Var2)" identifier (argument_list "(p_Var2)" ( identifier ))) ;) (expression_statement "__in_chrg_00 = (int)uVar5;" (assignment_expression "__in_chrg_00 = (int)uVar5" identifier = (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "p_Var2 = p_Var3;" (assignment_expression "p_Var2 = p_Var3" identifier = identifier) ;) })) (expression_statement "pGVar4 = (this->super_Output_data_got<32,_false>).entries_.\n           super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n           ._M_impl._M_start;" (field_expression "pGVar4 = (this->super_Output_data_got<32,_false>).entries_.\n           super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n           ._M_impl._M_start" (field_expression "pGVar4 = (this->super_Output_data_got<32,_false>).entries_.\n           super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_>\n           ._M_impl" (binary_expression "pGVar4 = (this->super_Output_data_got<32,_false>).entries_.\n           super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry>_" (binary_expression "pGVar4 = (this->super_Output_data_got<32,_false>).entries_.\n           super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32,_false>::Got_entry" (binary_expression "pGVar4 = (this->super_Output_data_got<32,_false>).entries_.\n           super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold::Output_data_got<32" (binary_expression "pGVar4 = (this->super_Output_data_got<32,_false>).entries_.\n           super__Vector_base<gold::Output_data_got<32,_false>::Got_entry,_std::allocator<gold" (binary_expression "pGVar4 = (this->super_Output_data_got<32,_false>).entries_.\n           super__Vector_base<gold::Output_data_got<32,_false>::Got_entry" (binary_expression "pGVar4 = (this->super_Output_data_got<32,_false>).entries_.\n           super__Vector_base<gold::Output_data_got<32" (assignment_expression "pGVar4 = (this->super_Output_data_got<32,_false>).entries_.\n           super__Vector_base<gold" identifier = (binary_expression "(this->super_Output_data_got<32,_false>).entries_.\n           super__Vector_base<gold" (field_expression "(this->super_Output_data_got<32,_false>).entries_.\n           super__Vector_base" (field_expression "(this->super_Output_data_got<32,_false>).entries_" (parenthesized_expression "(this->super_Output_data_got<32,_false>)" ( (comma_expression "this->super_Output_data_got<32,_false" (binary_expression "this->super_Output_data_got<32" (field_expression "this->super_Output_data_got" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) < identifier)) (ERROR "::Output_data_got" : : identifier) < number_literal) (ERROR ",_false" , identifier) > (ERROR "::" : :) identifier) (ERROR ",_std::allocator" , identifier : : identifier) < identifier) (ERROR "::Output_data_got" : : identifier) < number_literal) (ERROR ",_false" , identifier) > (ERROR "::" : :) identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if (pGVar4 != (pointer)0x0) {\n    operator_delete(pGVar4);\n  }" if (parenthesized_expression "(pGVar4 != (pointer)0x0)" ( (binary_expression "pGVar4 != (pointer)0x0" identifier != (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n    operator_delete(pGVar4);\n  }" { (expression_statement "operator_delete(pGVar4);" (call_expression "operator_delete(pGVar4)" identifier (argument_list "(pGVar4)" ( identifier ))) ;) })) (expression_statement "(this->super_Output_data_got<32,_false>).super_Output_data_got_base.\n  super_Output_section_data_build.super_Output_section_data.super_Output_data._vptr_Output_data =\n       (_func_int_varargs **)&DAT_006743e8;" (assignment_expression "(this->super_Output_data_got<32,_false>).super_Output_data_got_base.\n  super_Output_section_data_build.super_Output_section_data.super_Output_data._vptr_Output_data =\n       (_func_int_varargs **)&DAT_006743e8" (field_expression "(this->super_Output_data_got<32,_false>).super_Output_data_got_base.\n  super_Output_section_data_build.super_Output_section_data.super_Output_data._vptr_Output_data" (field_expression "(this->super_Output_data_got<32,_false>).super_Output_data_got_base.\n  super_Output_section_data_build.super_Output_section_data.super_Output_data" (field_expression "(this->super_Output_data_got<32,_false>).super_Output_data_got_base.\n  super_Output_section_data_build.super_Output_section_data" (field_expression "(this->super_Output_data_got<32,_false>).super_Output_data_got_base.\n  super_Output_section_data_build" (field_expression "(this->super_Output_data_got<32,_false>).super_Output_data_got_base" (parenthesized_expression "(this->super_Output_data_got<32,_false>)" ( (comma_expression "this->super_Output_data_got<32,_false" (binary_expression "this->super_Output_data_got<32" (field_expression "this->super_Output_data_got" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(_func_int_varargs **)&DAT_006743e8" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&DAT_006743e8" & identifier))) ;) (labeled_statement "gold::Output_data::~Output_data((Output_data *)this,__in_chrg_00);" statement_identifier : (ERROR ":" :) (labeled_statement "Output_data::~Output_data((Output_data *)this,__in_chrg_00);" statement_identifier : (ERROR ":" :) (expression_statement "~Output_data((Output_data *)this,__in_chrg_00);" (unary_expression "~Output_data((Output_data *)this,__in_chrg_00)" ~ (call_expression "Output_data((Output_data *)this,__in_chrg_00)" identifier (argument_list "((Output_data *)this,__in_chrg_00)" ( (cast_expression "(Output_data *)this" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;))) (expression_statement "operator_delete(this,0xf0);" (call_expression "operator_delete(this,0xf0)" identifier (argument_list "(this,0xf0)" ( identifier , number_literal ))) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void FUN_00294fc0(undefined8 *param_1)\n\n{\n  undefined8 *puVar1;\n  \n  *param_1 = &PTR_FUN_0066af60;\n  if (param_1[0x1b] != 0) {\n    FUN_0049e330();\n  }\n  if (param_1[0x14] != 0) {\n    FUN_0049e330();\n  }\n  puVar1 = (undefined8 *)param_1[10];\n  *param_1 = &PTR_FUN_006604b0;\n  while (puVar1 != param_1 + 10) {\n    puVar1 = (undefined8 *)*puVar1;\n    FUN_0049e330();\n  }\n  if (param_1[7] != 0) {\n    FUN_0049e330();\n  }\n  *param_1 = &DAT_006743e8;\n  FUN_003c95b0(param_1);\n  thunk_FUN_0049e330(param_1,0xf0);\n  return;\n}\n\n" (function_definition "void FUN_00294fc0(undefined8 *param_1)\n\n{\n  undefined8 *puVar1;\n  \n  *param_1 = &PTR_FUN_0066af60;\n  if (param_1[0x1b] != 0) {\n    FUN_0049e330();\n  }\n  if (param_1[0x14] != 0) {\n    FUN_0049e330();\n  }\n  puVar1 = (undefined8 *)param_1[10];\n  *param_1 = &PTR_FUN_006604b0;\n  while (puVar1 != param_1 + 10) {\n    puVar1 = (undefined8 *)*puVar1;\n    FUN_0049e330();\n  }\n  if (param_1[7] != 0) {\n    FUN_0049e330();\n  }\n  *param_1 = &DAT_006743e8;\n  FUN_003c95b0(param_1);\n  thunk_FUN_0049e330(param_1,0xf0);\n  return;\n}" primitive_type (function_declarator "FUN_00294fc0(undefined8 *param_1)" identifier (parameter_list "(undefined8 *param_1)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  undefined8 *puVar1;\n  \n  *param_1 = &PTR_FUN_0066af60;\n  if (param_1[0x1b] != 0) {\n    FUN_0049e330();\n  }\n  if (param_1[0x14] != 0) {\n    FUN_0049e330();\n  }\n  puVar1 = (undefined8 *)param_1[10];\n  *param_1 = &PTR_FUN_006604b0;\n  while (puVar1 != param_1 + 10) {\n    puVar1 = (undefined8 *)*puVar1;\n    FUN_0049e330();\n  }\n  if (param_1[7] != 0) {\n    FUN_0049e330();\n  }\n  *param_1 = &DAT_006743e8;\n  FUN_003c95b0(param_1);\n  thunk_FUN_0049e330(param_1,0xf0);\n  return;\n}" { (declaration "undefined8 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (expression_statement "*param_1 = &PTR_FUN_0066af60;" (assignment_expression "*param_1 = &PTR_FUN_0066af60" (pointer_expression "*param_1" * identifier) = (pointer_expression "&PTR_FUN_0066af60" & identifier)) ;) (if_statement "if (param_1[0x1b] != 0) {\n    FUN_0049e330();\n  }" if (parenthesized_expression "(param_1[0x1b] != 0)" ( (binary_expression "param_1[0x1b] != 0" (subscript_expression "param_1[0x1b]" 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 (param_1[0x14] != 0) {\n    FUN_0049e330();\n  }" if (parenthesized_expression "(param_1[0x14] != 0)" ( (binary_expression "param_1[0x14] != 0" (subscript_expression "param_1[0x14]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    FUN_0049e330();\n  }" { (expression_statement "FUN_0049e330();" (call_expression "FUN_0049e330()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "puVar1 = (undefined8 *)param_1[10];" (assignment_expression "puVar1 = (undefined8 *)param_1[10]" identifier = (cast_expression "(undefined8 *)param_1[10]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[10]" identifier [ number_literal ]))) ;) (expression_statement "*param_1 = &PTR_FUN_006604b0;" (assignment_expression "*param_1 = &PTR_FUN_006604b0" (pointer_expression "*param_1" * identifier) = (pointer_expression "&PTR_FUN_006604b0" & identifier)) ;) (while_statement "while (puVar1 != param_1 + 10) {\n    puVar1 = (undefined8 *)*puVar1;\n    FUN_0049e330();\n  }" while (parenthesized_expression "(puVar1 != param_1 + 10)" ( (binary_expression "puVar1 != param_1 + 10" identifier != (binary_expression "param_1 + 10" identifier + number_literal)) )) (compound_statement "{\n    puVar1 = (undefined8 *)*puVar1;\n    FUN_0049e330();\n  }" { (expression_statement "puVar1 = (undefined8 *)*puVar1;" (assignment_expression "puVar1 = (undefined8 *)*puVar1" identifier = (cast_expression "(undefined8 *)*puVar1" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar1" * identifier))) ;) (expression_statement "FUN_0049e330();" (call_expression "FUN_0049e330()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (param_1[7] != 0) {\n    FUN_0049e330();\n  }" if (parenthesized_expression "(param_1[7] != 0)" ( (binary_expression "param_1[7] != 0" (subscript_expression "param_1[7]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    FUN_0049e330();\n  }" { (expression_statement "FUN_0049e330();" (call_expression "FUN_0049e330()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*param_1 = &DAT_006743e8;" (assignment_expression "*param_1 = &DAT_006743e8" (pointer_expression "*param_1" * identifier) = (pointer_expression "&DAT_006743e8" & identifier)) ;) (expression_statement "FUN_003c95b0(param_1);" (call_expression "FUN_003c95b0(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "thunk_FUN_0049e330(param_1,0xf0);" (call_expression "thunk_FUN_0049e330(param_1,0xf0)" identifier (argument_list "(param_1,0xf0)" ( identifier , number_literal ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (return_statement return ;) })))
(function_definition "void FUN_00294fc0(undefined8 *param_1)\n\n{\n  undefined8 *puVar1;\n  \n  *param_1 = &PTR_FUN_0066af60;\n  if (param_1[0x1b] != 0) {\n    FUN_0049e330();\n  }\n  if (param_1[0x14] != 0) {\n    FUN_0049e330();\n  }\n  puVar1 = (undefined8 *)param_1[10];\n  *param_1 = &PTR_FUN_006604b0;\n  while (puVar1 != param_1 + 10) {\n    puVar1 = (undefined8 *)*puVar1;\n    FUN_0049e330();\n  }\n  if (param_1[7] != 0) {\n    FUN_0049e330();\n  }\n  *param_1 = &DAT_006743e8;\n  FUN_003c95b0(param_1);\n  thunk_FUN_0049e330(param_1,0xf0);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00294fc0(undefined8 *param_1)" (identifier "FUN_00294fc0") (parameter_list "(undefined8 *param_1)" (( "(") (parameter_declaration "undefined8 *param_1" (type_identifier "undefined8") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  undefined8 *puVar1;\n  \n  *param_1 = &PTR_FUN_0066af60;\n  if (param_1[0x1b] != 0) {\n    FUN_0049e330();\n  }\n  if (param_1[0x14] != 0) {\n    FUN_0049e330();\n  }\n  puVar1 = (undefined8 *)param_1[10];\n  *param_1 = &PTR_FUN_006604b0;\n  while (puVar1 != param_1 + 10) {\n    puVar1 = (undefined8 *)*puVar1;\n    FUN_0049e330();\n  }\n  if (param_1[7] != 0) {\n    FUN_0049e330();\n  }\n  *param_1 = &DAT_006743e8;\n  FUN_003c95b0(param_1);\n  thunk_FUN_0049e330(param_1,0xf0);\n  return;\n}" ({ "{") (declaration "undefined8 *puVar1;" (type_identifier "undefined8") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (expression_statement "*param_1 = &PTR_FUN_0066af60;" (assignment_expression "*param_1 = &PTR_FUN_0066af60" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (pointer_expression "&PTR_FUN_0066af60" (& "&") (identifier "PTR_FUN_0066af60"))) (; ";")) (if_statement "if (param_1[0x1b] != 0) {\n    FUN_0049e330();\n  }" (if "if") (parenthesized_expression "(param_1[0x1b] != 0)" (( "(") (binary_expression "param_1[0x1b] != 0" (subscript_expression "param_1[0x1b]" (identifier "param_1") ([ "[") (number_literal "0x1b") (] "]")) (!= "!=") (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 (param_1[0x14] != 0) {\n    FUN_0049e330();\n  }" (if "if") (parenthesized_expression "(param_1[0x14] != 0)" (( "(") (binary_expression "param_1[0x14] != 0" (subscript_expression "param_1[0x14]" (identifier "param_1") ([ "[") (number_literal "0x14") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_0049e330();\n  }" ({ "{") (expression_statement "FUN_0049e330();" (call_expression "FUN_0049e330()" (identifier "FUN_0049e330") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar1 = (undefined8 *)param_1[10];" (assignment_expression "puVar1 = (undefined8 *)param_1[10]" (identifier "puVar1") (= "=") (cast_expression "(undefined8 *)param_1[10]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")))) (; ";")) (expression_statement "*param_1 = &PTR_FUN_006604b0;" (assignment_expression "*param_1 = &PTR_FUN_006604b0" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (pointer_expression "&PTR_FUN_006604b0" (& "&") (identifier "PTR_FUN_006604b0"))) (; ";")) (while_statement "while (puVar1 != param_1 + 10) {\n    puVar1 = (undefined8 *)*puVar1;\n    FUN_0049e330();\n  }" (while "while") (parenthesized_expression "(puVar1 != param_1 + 10)" (( "(") (binary_expression "puVar1 != param_1 + 10" (identifier "puVar1") (!= "!=") (binary_expression "param_1 + 10" (identifier "param_1") (+ "+") (number_literal "10"))) () ")")) (compound_statement "{\n    puVar1 = (undefined8 *)*puVar1;\n    FUN_0049e330();\n  }" ({ "{") (expression_statement "puVar1 = (undefined8 *)*puVar1;" (assignment_expression "puVar1 = (undefined8 *)*puVar1" (identifier "puVar1") (= "=") (cast_expression "(undefined8 *)*puVar1" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar1" (* "*") (identifier "puVar1")))) (; ";")) (expression_statement "FUN_0049e330();" (call_expression "FUN_0049e330()" (identifier "FUN_0049e330") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (param_1[7] != 0) {\n    FUN_0049e330();\n  }" (if "if") (parenthesized_expression "(param_1[7] != 0)" (( "(") (binary_expression "param_1[7] != 0" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_0049e330();\n  }" ({ "{") (expression_statement "FUN_0049e330();" (call_expression "FUN_0049e330()" (identifier "FUN_0049e330") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "*param_1 = &DAT_006743e8;" (assignment_expression "*param_1 = &DAT_006743e8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (pointer_expression "&DAT_006743e8" (& "&") (identifier "DAT_006743e8"))) (; ";")) (expression_statement "FUN_003c95b0(param_1);" (call_expression "FUN_003c95b0(param_1)" (identifier "FUN_003c95b0") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (expression_statement "thunk_FUN_0049e330(param_1,0xf0);" (call_expression "thunk_FUN_0049e330(param_1,0xf0)" (identifier "thunk_FUN_0049e330") (argument_list "(param_1,0xf0)" (( "(") (identifier "param_1") (, ",") (number_literal "0xf0") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Type propagation algorithm not settling */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void ~Mips_output_data_got(Mips_output_data_got<32,_false> * this, int
   __in_chrg) */

void __thiscall
anon_unknown.dwarf_ead2ad::Mips_output_data_got<32,_false>::~Mips_output_data_got
          (Mips_output_data_got<32,_false> *this,int __in_chrg)

{
  type_2 var_3;
  type_1 *p_Var2;
  type_1 *p_Var3;
  type_2 var_7;
  int __in_chrg_00;
  type_3 uVar5;
  
  uVar5 = (type_3)(type_4)__in_chrg;
  (this->super_Output_data_got<32,_false>).super_Output_data_got_base.
  super_Output_section_data_build.super_Output_section_data.super_Output_data._vptr_Output_data =
       (type_5 **)&PTR__Mips_output_data_got_0066af60;
  var_3 = (this->secondary_got_relocs_).
           super__Vector_base<(anonymous_namespace)::Mips_output_data_got<32,_false>::var_1,_std::allocator<(anonymous_namespace)::Mips_output_data_got<32,_false>::var_1>var_2>
           ._M_impl._M_start;
  if (var_3 != (type_2)0x0) {
    var_4(var_3);
  }
  var_3 = (this->static_relocs_).
           super__Vector_base<(anonymous_namespace)::Mips_output_data_got<32,_false>::var_1,_std::allocator<(anonymous_namespace)::Mips_output_data_got<32,_false>::var_1>var_2>
           ._M_impl._M_start;
  if (var_3 != (type_2)0x0) {
    var_4(var_3);
  }
  __in_chrg_00 = (int)uVar5;
  p_Var2 = (this->super_Output_data_got<32,_false>).free_list_.list_.
           super__List_base<var_5::type_6::Free_list_node,_std::allocator<var_5::type_6::Free_list_node>var_2>
           ._M_impl._M_node.super__List_node_base._M_next;
  (this->super_Output_data_got<32,_false>).super_Output_data_got_base.
  super_Output_section_data_build.super_Output_section_data.super_Output_data._vptr_Output_data =
       (type_5 **)&PTR__Output_data_got_006604b0;
  while ((type_6 *)p_Var2 != &(this->super_Output_data_got<32,_false>).free_list_) {
    p_Var3 = p_Var2->_M_next;
    var_4(p_Var2);
    __in_chrg_00 = (int)uVar5;
    p_Var2 = p_Var3;
  }
  var_7 = (this->super_Output_data_got<32,_false>).entries_.
           super__Vector_base<var_5::Output_data_got<32,_false>::var_6,_std::allocator<var_5::Output_data_got<32,_false>::var_6>var_2>
           ._M_impl._M_start;
  if (var_7 != (type_2)0x0) {
    var_4(var_7);
  }
  (this->super_Output_data_got<32,_false>).super_Output_data_got_base.
  super_Output_section_data_build.super_Output_section_data.super_Output_data._vptr_Output_data =
       (type_5 **)&DAT_006743e8;
  gold::Output_data::~var_8((var_8 *)this,__in_chrg_00);
  var_4(this,0xf0);
  return;
}


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

void MASKED(undefined8 *param_1)

{
  undefined8 *puVar1;
  
  *param_1 = &PTR_FUN_0066af60;
  if (param_1[0x1b] != 0) {
    FUN_0049e330();
  }
  if (param_1[0x14] != 0) {
    FUN_0049e330();
  }
  puVar1 = (undefined8 *)param_1[10];
  *param_1 = &PTR_FUN_006604b0;
  while (puVar1 != param_1 + 10) {
    puVar1 = (undefined8 *)*puVar1;
    FUN_0049e330();
  }
  if (param_1[7] != 0) {
    FUN_0049e330();
  }
  *param_1 = &DAT_006743e8;
  FUN_003c95b0(param_1);
  thunk_FUN_0049e330(param_1,0xf0);
  return;
}

