
/* DWARF original prototype: void Output_section_definition(Output_section_definition * this, char *
   name, size_t namelen, Parser_output_section_header * header) */

void __thiscall
gold::Output_section_definition::Output_section_definition
          (Output_section_definition *this,char *name,size_t namelen,
          Parser_output_section_header *header)

{
  Section_constraint SVar1;
  Script_section_type SVar2;
  
  (this->super_Sections_element)._vptr_Sections_element =
       (_func_int_varargs **)&PTR__Output_section_definition_003ad568;
  (this->name_)._M_dataplus._M_p = (pointer)&(this->name_).field_2;
  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
  _M_construct<char_const*>(&this->name_,name,name + namelen);
  this->address_ = header->address;
  this->load_address_ = header->load_address;
  this->align_ = header->align;
  this->subalign_ = header->subalign;
  SVar1 = header->constraint;
  this->fill_ = (Expression *)0x0;
  this->constraint_ = SVar1;
  SVar2 = header->section_type;
  this->phdrs_ = (String_list *)0x0;
  (this->elements_).
  super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>.
  _M_impl._M_start = (pointer)0x0;
  (this->elements_).
  super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>.
  _M_impl._M_finish = (pointer)0x0;
  (this->elements_).
  super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>.
  _M_impl._M_end_of_storage = (pointer)0x0;
  this->output_section_ = (Output_section *)0x0;
  this->evaluated_address_ = 0;
  this->evaluated_load_address_ = 0;
  this->evaluated_addralign_ = 0;
  this->is_relro_ = false;
  this->script_section_type_ = SVar2;
  return;
}



void FUN_00206e80(undefined8 *param_1,long param_2,long param_3,undefined8 *param_4)

{
  undefined4 uVar1;
  
  *param_1 = &PTR_FUN_003ad568;
  param_1[1] = param_1 + 3;
  FUN_0015cbe0(param_1 + 1,param_2,param_3 + param_2);
  param_1[5] = *param_4;
  param_1[6] = param_4[2];
  param_1[7] = param_4[3];
  param_1[8] = param_4[4];
  uVar1 = *(undefined4 *)(param_4 + 5);
  param_1[10] = 0;
  *(undefined4 *)(param_1 + 9) = uVar1;
  uVar1 = *(undefined4 *)(param_4 + 1);
  param_1[0xb] = 0;
  param_1[0xc] = 0;
  param_1[0xd] = 0;
  param_1[0xe] = 0;
  param_1[0xf] = 0;
  param_1[0x10] = 0;
  param_1[0x11] = 0;
  param_1[0x12] = 0;
  *(undefined1 *)(param_1 + 0x13) = 0;
  *(undefined4 *)((long)param_1 + 0x9c) = uVar1;
  return;
}


PUSH RBP
LEA RAX,[0x3ad568]
MOV RBP,RCX
ADD RDX,RSI
PUSH RBX
MOV RBX,RDI
LEA RDI,[RDI + 0x8]
SUB RSP,0x8
MOV qword ptr [RDI + -0x8],RAX
LEA RAX,[RBX + 0x18]
MOV qword ptr [RBX + 0x8],RAX
CALL 0x0015cbe0
MOV RAX,qword ptr [RBP]
MOV qword ptr [RBX + 0x28],RAX
MOV RAX,qword ptr [RBP + 0x10]
MOV qword ptr [RBX + 0x30],RAX
MOV RAX,qword ptr [RBP + 0x18]
MOV qword ptr [RBX + 0x38],RAX
MOV RAX,qword ptr [RBP + 0x20]
MOV qword ptr [RBX + 0x40],RAX
MOV EAX,dword ptr [RBP + 0x28]
MOV qword ptr [RBX + 0x50],0x0
MOV dword ptr [RBX + 0x48],EAX
MOV EAX,dword ptr [RBP + 0x8]
MOV qword ptr [RBX + 0x58],0x0
MOV qword ptr [RBX + 0x60],0x0
MOV qword ptr [RBX + 0x68],0x0
MOV qword ptr [RBX + 0x70],0x0
MOV qword ptr [RBX + 0x78],0x0
MOV qword ptr [RBX + 0x80],0x0
MOV qword ptr [RBX + 0x88],0x0
MOV qword ptr [RBX + 0x90],0x0
MOV byte ptr [RBX + 0x98],0x0
MOV dword ptr [RBX + 0x9c],EAX
ADD RSP,0x8
POP RBX
POP RBP
RET
(translation_unit "void FUN_00206e80(undefined8 *param_1,long param_2,long param_3,undefined8 *param_4)\n\n{\n  undefined4 uVar1;\n  \n  *param_1 = &PTR_FUN_003ad568;\n  param_1[1] = param_1 + 3;\n  FUN_0015cbe0(param_1 + 1,param_2,param_3 + param_2);\n  param_1[5] = *param_4;\n  param_1[6] = param_4[2];\n  param_1[7] = param_4[3];\n  param_1[8] = param_4[4];\n  uVar1 = *(undefined4 *)(param_4 + 5);\n  param_1[10] = 0;\n  *(undefined4 *)(param_1 + 9) = uVar1;\n  uVar1 = *(undefined4 *)(param_4 + 1);\n  param_1[0xb] = 0;\n  param_1[0xc] = 0;\n  param_1[0xd] = 0;\n  param_1[0xe] = 0;\n  param_1[0xf] = 0;\n  param_1[0x10] = 0;\n  param_1[0x11] = 0;\n  param_1[0x12] = 0;\n  *(undefined1 *)(param_1 + 0x13) = 0;\n  *(undefined4 *)((long)param_1 + 0x9c) = uVar1;\n  return;\n}\n\n" (function_definition "void FUN_00206e80(undefined8 *param_1,long param_2,long param_3,undefined8 *param_4)\n\n{\n  undefined4 uVar1;\n  \n  *param_1 = &PTR_FUN_003ad568;\n  param_1[1] = param_1 + 3;\n  FUN_0015cbe0(param_1 + 1,param_2,param_3 + param_2);\n  param_1[5] = *param_4;\n  param_1[6] = param_4[2];\n  param_1[7] = param_4[3];\n  param_1[8] = param_4[4];\n  uVar1 = *(undefined4 *)(param_4 + 5);\n  param_1[10] = 0;\n  *(undefined4 *)(param_1 + 9) = uVar1;\n  uVar1 = *(undefined4 *)(param_4 + 1);\n  param_1[0xb] = 0;\n  param_1[0xc] = 0;\n  param_1[0xd] = 0;\n  param_1[0xe] = 0;\n  param_1[0xf] = 0;\n  param_1[0x10] = 0;\n  param_1[0x11] = 0;\n  param_1[0x12] = 0;\n  *(undefined1 *)(param_1 + 0x13) = 0;\n  *(undefined4 *)((long)param_1 + 0x9c) = uVar1;\n  return;\n}" primitive_type (function_declarator "FUN_00206e80(undefined8 *param_1,long param_2,long param_3,undefined8 *param_4)" identifier (parameter_list "(undefined8 *param_1,long param_2,long param_3,undefined8 *param_4)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  undefined4 uVar1;\n  \n  *param_1 = &PTR_FUN_003ad568;\n  param_1[1] = param_1 + 3;\n  FUN_0015cbe0(param_1 + 1,param_2,param_3 + param_2);\n  param_1[5] = *param_4;\n  param_1[6] = param_4[2];\n  param_1[7] = param_4[3];\n  param_1[8] = param_4[4];\n  uVar1 = *(undefined4 *)(param_4 + 5);\n  param_1[10] = 0;\n  *(undefined4 *)(param_1 + 9) = uVar1;\n  uVar1 = *(undefined4 *)(param_4 + 1);\n  param_1[0xb] = 0;\n  param_1[0xc] = 0;\n  param_1[0xd] = 0;\n  param_1[0xe] = 0;\n  param_1[0xf] = 0;\n  param_1[0x10] = 0;\n  param_1[0x11] = 0;\n  param_1[0x12] = 0;\n  *(undefined1 *)(param_1 + 0x13) = 0;\n  *(undefined4 *)((long)param_1 + 0x9c) = uVar1;\n  return;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (expression_statement "*param_1 = &PTR_FUN_003ad568;" (assignment_expression "*param_1 = &PTR_FUN_003ad568" (pointer_expression "*param_1" * identifier) = (pointer_expression "&PTR_FUN_003ad568" & identifier)) ;) (expression_statement "param_1[1] = param_1 + 3;" (assignment_expression "param_1[1] = param_1 + 3" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (binary_expression "param_1 + 3" identifier + number_literal)) ;) (expression_statement "FUN_0015cbe0(param_1 + 1,param_2,param_3 + param_2);" (call_expression "FUN_0015cbe0(param_1 + 1,param_2,param_3 + param_2)" identifier (argument_list "(param_1 + 1,param_2,param_3 + param_2)" ( (binary_expression "param_1 + 1" identifier + number_literal) , identifier , (binary_expression "param_3 + param_2" identifier + identifier) ))) ;) (expression_statement "param_1[5] = *param_4;" (assignment_expression "param_1[5] = *param_4" (subscript_expression "param_1[5]" identifier [ number_literal ]) = (pointer_expression "*param_4" * identifier)) ;) (expression_statement "param_1[6] = param_4[2];" (assignment_expression "param_1[6] = param_4[2]" (subscript_expression "param_1[6]" identifier [ number_literal ]) = (subscript_expression "param_4[2]" identifier [ number_literal ])) ;) (expression_statement "param_1[7] = param_4[3];" (assignment_expression "param_1[7] = param_4[3]" (subscript_expression "param_1[7]" identifier [ number_literal ]) = (subscript_expression "param_4[3]" identifier [ number_literal ])) ;) (expression_statement "param_1[8] = param_4[4];" (assignment_expression "param_1[8] = param_4[4]" (subscript_expression "param_1[8]" identifier [ number_literal ]) = (subscript_expression "param_4[4]" identifier [ number_literal ])) ;) (expression_statement "uVar1 = *(undefined4 *)(param_4 + 5);" (assignment_expression "uVar1 = *(undefined4 *)(param_4 + 5)" identifier = (pointer_expression "*(undefined4 *)(param_4 + 5)" * (cast_expression "(undefined4 *)(param_4 + 5)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 5)" ( (binary_expression "param_4 + 5" identifier + number_literal) ))))) ;) (expression_statement "param_1[10] = 0;" (assignment_expression "param_1[10] = 0" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 9) = uVar1;" (assignment_expression "*(undefined4 *)(param_1 + 9) = uVar1" (pointer_expression "*(undefined4 *)(param_1 + 9)" * (cast_expression "(undefined4 *)(param_1 + 9)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 9)" ( (binary_expression "param_1 + 9" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar1 = *(undefined4 *)(param_4 + 1);" (assignment_expression "uVar1 = *(undefined4 *)(param_4 + 1)" identifier = (pointer_expression "*(undefined4 *)(param_4 + 1)" * (cast_expression "(undefined4 *)(param_4 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 1)" ( (binary_expression "param_4 + 1" identifier + number_literal) ))))) ;) (expression_statement "param_1[0xb] = 0;" (assignment_expression "param_1[0xb] = 0" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0xc] = 0;" (assignment_expression "param_1[0xc] = 0" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0xd] = 0;" (assignment_expression "param_1[0xd] = 0" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0xe] = 0;" (assignment_expression "param_1[0xe] = 0" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0xf] = 0;" (assignment_expression "param_1[0xf] = 0" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x10] = 0;" (assignment_expression "param_1[0x10] = 0" (subscript_expression "param_1[0x10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x11] = 0;" (assignment_expression "param_1[0x11] = 0" (subscript_expression "param_1[0x11]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x12] = 0;" (assignment_expression "param_1[0x12] = 0" (subscript_expression "param_1[0x12]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 0x13) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0x13) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0x13)" * (cast_expression "(undefined1 *)(param_1 + 0x13)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x13)" ( (binary_expression "param_1 + 0x13" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((long)param_1 + 0x9c) = uVar1;" (assignment_expression "*(undefined4 *)((long)param_1 + 0x9c) = uVar1" (pointer_expression "*(undefined4 *)((long)param_1 + 0x9c)" * (cast_expression "(undefined4 *)((long)param_1 + 0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x9c)" ( (binary_expression "(long)param_1 + 0x9c" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit "/* DWARF original prototype: void Output_section_definition(Output_section_definition * this, char *\n   name, size_t namelen, Parser_output_section_header * header) */\n\nvoid __thiscall\ngold::Output_section_definition::Output_section_definition\n          (Output_section_definition *this,char *name,size_t namelen,\n          Parser_output_section_header *header)\n\n{\n  Section_constraint SVar1;\n  Script_section_type SVar2;\n  \n  (this->super_Sections_element)._vptr_Sections_element =\n       (_func_int_varargs **)&PTR__Output_section_definition_003ad568;\n  (this->name_)._M_dataplus._M_p = (pointer)&(this->name_).field_2;\n  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>(&this->name_,name,name + namelen);\n  this->address_ = header->address;\n  this->load_address_ = header->load_address;\n  this->align_ = header->align;\n  this->subalign_ = header->subalign;\n  SVar1 = header->constraint;\n  this->fill_ = (Expression *)0x0;\n  this->constraint_ = SVar1;\n  SVar2 = header->section_type;\n  this->phdrs_ = (String_list *)0x0;\n  (this->elements_).\n  super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>.\n  _M_impl._M_start = (pointer)0x0;\n  (this->elements_).\n  super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>.\n  _M_impl._M_finish = (pointer)0x0;\n  (this->elements_).\n  super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>.\n  _M_impl._M_end_of_storage = (pointer)0x0;\n  this->output_section_ = (Output_section *)0x0;\n  this->evaluated_address_ = 0;\n  this->evaluated_load_address_ = 0;\n  this->evaluated_addralign_ = 0;\n  this->is_relro_ = false;\n  this->script_section_type_ = SVar2;\n  return;\n}\n\n" comment (function_definition "void __thiscall\ngold::Output_section_definition::Output_section_definition\n          (Output_section_definition *this,char *name,size_t namelen,\n          Parser_output_section_header *header)\n\n{\n  Section_constraint SVar1;\n  Script_section_type SVar2;\n  \n  (this->super_Sections_element)._vptr_Sections_element =\n       (_func_int_varargs **)&PTR__Output_section_definition_003ad568;\n  (this->name_)._M_dataplus._M_p = (pointer)&(this->name_).field_2;\n  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>(&this->name_,name,name + namelen);\n  this->address_ = header->address;\n  this->load_address_ = header->load_address;\n  this->align_ = header->align;\n  this->subalign_ = header->subalign;\n  SVar1 = header->constraint;\n  this->fill_ = (Expression *)0x0;\n  this->constraint_ = SVar1;\n  SVar2 = header->section_type;\n  this->phdrs_ = (String_list *)0x0;\n  (this->elements_).\n  super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>.\n  _M_impl._M_start = (pointer)0x0;\n  (this->elements_).\n  super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>.\n  _M_impl._M_finish = (pointer)0x0;\n  (this->elements_).\n  super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>.\n  _M_impl._M_end_of_storage = (pointer)0x0;\n  this->output_section_ = (Output_section *)0x0;\n  this->evaluated_address_ = 0;\n  this->evaluated_load_address_ = 0;\n  this->evaluated_addralign_ = 0;\n  this->is_relro_ = false;\n  this->script_section_type_ = SVar2;\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Output_section_definition::" identifier : : identifier : :) (function_declarator "Output_section_definition\n          (Output_section_definition *this,char *name,size_t namelen,\n          Parser_output_section_header *header)" identifier (parameter_list "(Output_section_definition *this,char *name,size_t namelen,\n          Parser_output_section_header *header)" ( (parameter_declaration "Output_section_definition *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "char *name" primitive_type (pointer_declarator "*name" * identifier)) , (parameter_declaration "size_t namelen" primitive_type identifier) , (parameter_declaration "Parser_output_section_header *header" type_identifier (pointer_declarator "*header" * identifier)) ))) (compound_statement "{\n  Section_constraint SVar1;\n  Script_section_type SVar2;\n  \n  (this->super_Sections_element)._vptr_Sections_element =\n       (_func_int_varargs **)&PTR__Output_section_definition_003ad568;\n  (this->name_)._M_dataplus._M_p = (pointer)&(this->name_).field_2;\n  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>(&this->name_,name,name + namelen);\n  this->address_ = header->address;\n  this->load_address_ = header->load_address;\n  this->align_ = header->align;\n  this->subalign_ = header->subalign;\n  SVar1 = header->constraint;\n  this->fill_ = (Expression *)0x0;\n  this->constraint_ = SVar1;\n  SVar2 = header->section_type;\n  this->phdrs_ = (String_list *)0x0;\n  (this->elements_).\n  super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>.\n  _M_impl._M_start = (pointer)0x0;\n  (this->elements_).\n  super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>.\n  _M_impl._M_finish = (pointer)0x0;\n  (this->elements_).\n  super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>.\n  _M_impl._M_end_of_storage = (pointer)0x0;\n  this->output_section_ = (Output_section *)0x0;\n  this->evaluated_address_ = 0;\n  this->evaluated_load_address_ = 0;\n  this->evaluated_addralign_ = 0;\n  this->is_relro_ = false;\n  this->script_section_type_ = SVar2;\n  return;\n}" { (declaration "Section_constraint SVar1;" type_identifier identifier ;) (declaration "Script_section_type SVar2;" type_identifier identifier ;) (expression_statement "(this->super_Sections_element)._vptr_Sections_element =\n       (_func_int_varargs **)&PTR__Output_section_definition_003ad568;" (assignment_expression "(this->super_Sections_element)._vptr_Sections_element =\n       (_func_int_varargs **)&PTR__Output_section_definition_003ad568" (field_expression "(this->super_Sections_element)._vptr_Sections_element" (parenthesized_expression "(this->super_Sections_element)" ( (field_expression "this->super_Sections_element" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Output_section_definition_003ad568" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Output_section_definition_003ad568" & identifier))) ;) (expression_statement "(this->name_)._M_dataplus._M_p = (pointer)&(this->name_).field_2;" (assignment_expression "(this->name_)._M_dataplus._M_p = (pointer)&(this->name_).field_2" (field_expression "(this->name_)._M_dataplus._M_p" (field_expression "(this->name_)._M_dataplus" (parenthesized_expression "(this->name_)" ( (field_expression "this->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (binary_expression "(pointer)&(this->name_).field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "(this->name_).field_2" (parenthesized_expression "(this->name_)" ( (field_expression "this->name_" identifier -> field_identifier) )) . field_identifier))) ;) (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>(&this->name_,name,name + namelen);" statement_identifier (ERROR "::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>:" : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > :) : (expression_statement "_M_construct<char_const*>(&this->name_,name,name + namelen);" (binary_expression "_M_construct<char_const*>(&this->name_,name,name + namelen)" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "(&this->name_,name,name + namelen)" ( (comma_expression "&this->name_,name,name + namelen" (pointer_expression "&this->name_" & (field_expression "this->name_" identifier -> field_identifier)) , (comma_expression "name,name + namelen" identifier , (binary_expression "name + namelen" identifier + identifier))) ))) ;)) (expression_statement "this->address_ = header->address;" (assignment_expression "this->address_ = header->address" (field_expression "this->address_" identifier -> field_identifier) = (field_expression "header->address" identifier -> field_identifier)) ;) (expression_statement "this->load_address_ = header->load_address;" (assignment_expression "this->load_address_ = header->load_address" (field_expression "this->load_address_" identifier -> field_identifier) = (field_expression "header->load_address" identifier -> field_identifier)) ;) (expression_statement "this->align_ = header->align;" (assignment_expression "this->align_ = header->align" (field_expression "this->align_" identifier -> field_identifier) = (field_expression "header->align" identifier -> field_identifier)) ;) (expression_statement "this->subalign_ = header->subalign;" (assignment_expression "this->subalign_ = header->subalign" (field_expression "this->subalign_" identifier -> field_identifier) = (field_expression "header->subalign" identifier -> field_identifier)) ;) (expression_statement "SVar1 = header->constraint;" (assignment_expression "SVar1 = header->constraint" identifier = (field_expression "header->constraint" identifier -> field_identifier)) ;) (expression_statement "this->fill_ = (Expression *)0x0;" (assignment_expression "this->fill_ = (Expression *)0x0" (field_expression "this->fill_" identifier -> field_identifier) = (cast_expression "(Expression *)0x0" ( (type_descriptor "Expression *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "this->constraint_ = SVar1;" (assignment_expression "this->constraint_ = SVar1" (field_expression "this->constraint_" identifier -> field_identifier) = identifier) ;) (expression_statement "SVar2 = header->section_type;" (assignment_expression "SVar2 = header->section_type" identifier = (field_expression "header->section_type" identifier -> field_identifier)) ;) (expression_statement "this->phdrs_ = (String_list *)0x0;" (assignment_expression "this->phdrs_ = (String_list *)0x0" (field_expression "this->phdrs_" identifier -> field_identifier) = (cast_expression "(String_list *)0x0" ( (type_descriptor "String_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(this->elements_).\n  super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>.\n  _M_impl._M_start = (pointer)0x0;" (assignment_expression "(this->elements_).\n  super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>.\n  _M_impl._M_start = (pointer)0x0" (field_expression "(this->elements_).\n  super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>.\n  _M_impl._M_start" (field_expression "(this->elements_).\n  super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>.\n  _M_impl" (binary_expression "(this->elements_).\n  super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_" (binary_expression "(this->elements_).\n  super__Vector_base<gold::Output_section_element*,_std::allocator<gold" (binary_expression "(this->elements_).\n  super__Vector_base<gold::Output_section_element*,_std" (binary_expression "(this->elements_).\n  super__Vector_base<gold" (field_expression "(this->elements_).\n  super__Vector_base" (parenthesized_expression "(this->elements_)" ( (field_expression "this->elements_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Output_section_element" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section_element" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "(this->elements_).\n  super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>.\n  _M_impl._M_finish = (pointer)0x0;" (assignment_expression "(this->elements_).\n  super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>.\n  _M_impl._M_finish = (pointer)0x0" (field_expression "(this->elements_).\n  super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>.\n  _M_impl._M_finish" (field_expression "(this->elements_).\n  super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>.\n  _M_impl" (binary_expression "(this->elements_).\n  super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_" (binary_expression "(this->elements_).\n  super__Vector_base<gold::Output_section_element*,_std::allocator<gold" (binary_expression "(this->elements_).\n  super__Vector_base<gold::Output_section_element*,_std" (binary_expression "(this->elements_).\n  super__Vector_base<gold" (field_expression "(this->elements_).\n  super__Vector_base" (parenthesized_expression "(this->elements_)" ( (field_expression "this->elements_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Output_section_element" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section_element" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "(this->elements_).\n  super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>.\n  _M_impl._M_end_of_storage = (pointer)0x0;" (assignment_expression "(this->elements_).\n  super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>.\n  _M_impl._M_end_of_storage = (pointer)0x0" (field_expression "(this->elements_).\n  super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>.\n  _M_impl._M_end_of_storage" (field_expression "(this->elements_).\n  super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_>.\n  _M_impl" (binary_expression "(this->elements_).\n  super__Vector_base<gold::Output_section_element*,_std::allocator<gold::Output_section_element*>_" (binary_expression "(this->elements_).\n  super__Vector_base<gold::Output_section_element*,_std::allocator<gold" (binary_expression "(this->elements_).\n  super__Vector_base<gold::Output_section_element*,_std" (binary_expression "(this->elements_).\n  super__Vector_base<gold" (field_expression "(this->elements_).\n  super__Vector_base" (parenthesized_expression "(this->elements_)" ( (field_expression "this->elements_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Output_section_element" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section_element" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "this->output_section_ = (Output_section *)0x0;" (assignment_expression "this->output_section_ = (Output_section *)0x0" (field_expression "this->output_section_" identifier -> field_identifier) = (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "this->evaluated_address_ = 0;" (assignment_expression "this->evaluated_address_ = 0" (field_expression "this->evaluated_address_" identifier -> field_identifier) = number_literal) ;) (expression_statement "this->evaluated_load_address_ = 0;" (assignment_expression "this->evaluated_load_address_ = 0" (field_expression "this->evaluated_load_address_" identifier -> field_identifier) = number_literal) ;) (expression_statement "this->evaluated_addralign_ = 0;" (assignment_expression "this->evaluated_addralign_ = 0" (field_expression "this->evaluated_addralign_" identifier -> field_identifier) = number_literal) ;) (expression_statement "this->is_relro_ = false;" (assignment_expression "this->is_relro_ = false" (field_expression "this->is_relro_" identifier -> field_identifier) = false) ;) (expression_statement "this->script_section_type_ = SVar2;" (assignment_expression "this->script_section_type_ = SVar2" (field_expression "this->script_section_type_" identifier -> field_identifier) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00206e80(undefined8 *param_1,long param_2,long param_3,undefined8 *param_4)\n\n{\n  undefined4 uVar1;\n  \n  *param_1 = &PTR_FUN_003ad568;\n  param_1[1] = param_1 + 3;\n  FUN_0015cbe0(param_1 + 1,param_2,param_3 + param_2);\n  param_1[5] = *param_4;\n  param_1[6] = param_4[2];\n  param_1[7] = param_4[3];\n  param_1[8] = param_4[4];\n  uVar1 = *(undefined4 *)(param_4 + 5);\n  param_1[10] = 0;\n  *(undefined4 *)(param_1 + 9) = uVar1;\n  uVar1 = *(undefined4 *)(param_4 + 1);\n  param_1[0xb] = 0;\n  param_1[0xc] = 0;\n  param_1[0xd] = 0;\n  param_1[0xe] = 0;\n  param_1[0xf] = 0;\n  param_1[0x10] = 0;\n  param_1[0x11] = 0;\n  param_1[0x12] = 0;\n  *(undefined1 *)(param_1 + 0x13) = 0;\n  *(undefined4 *)((long)param_1 + 0x9c) = uVar1;\n  return;\n}\n\n" (function_definition "void FUN_00206e80(undefined8 *param_1,long param_2,long param_3,undefined8 *param_4)\n\n{\n  undefined4 uVar1;\n  \n  *param_1 = &PTR_FUN_003ad568;\n  param_1[1] = param_1 + 3;\n  FUN_0015cbe0(param_1 + 1,param_2,param_3 + param_2);\n  param_1[5] = *param_4;\n  param_1[6] = param_4[2];\n  param_1[7] = param_4[3];\n  param_1[8] = param_4[4];\n  uVar1 = *(undefined4 *)(param_4 + 5);\n  param_1[10] = 0;\n  *(undefined4 *)(param_1 + 9) = uVar1;\n  uVar1 = *(undefined4 *)(param_4 + 1);\n  param_1[0xb] = 0;\n  param_1[0xc] = 0;\n  param_1[0xd] = 0;\n  param_1[0xe] = 0;\n  param_1[0xf] = 0;\n  param_1[0x10] = 0;\n  param_1[0x11] = 0;\n  param_1[0x12] = 0;\n  *(undefined1 *)(param_1 + 0x13) = 0;\n  *(undefined4 *)((long)param_1 + 0x9c) = uVar1;\n  return;\n}" primitive_type (function_declarator "FUN_00206e80(undefined8 *param_1,long param_2,long param_3,undefined8 *param_4)" identifier (parameter_list "(undefined8 *param_1,long param_2,long param_3,undefined8 *param_4)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  undefined4 uVar1;\n  \n  *param_1 = &PTR_FUN_003ad568;\n  param_1[1] = param_1 + 3;\n  FUN_0015cbe0(param_1 + 1,param_2,param_3 + param_2);\n  param_1[5] = *param_4;\n  param_1[6] = param_4[2];\n  param_1[7] = param_4[3];\n  param_1[8] = param_4[4];\n  uVar1 = *(undefined4 *)(param_4 + 5);\n  param_1[10] = 0;\n  *(undefined4 *)(param_1 + 9) = uVar1;\n  uVar1 = *(undefined4 *)(param_4 + 1);\n  param_1[0xb] = 0;\n  param_1[0xc] = 0;\n  param_1[0xd] = 0;\n  param_1[0xe] = 0;\n  param_1[0xf] = 0;\n  param_1[0x10] = 0;\n  param_1[0x11] = 0;\n  param_1[0x12] = 0;\n  *(undefined1 *)(param_1 + 0x13) = 0;\n  *(undefined4 *)((long)param_1 + 0x9c) = uVar1;\n  return;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (expression_statement "*param_1 = &PTR_FUN_003ad568;" (assignment_expression "*param_1 = &PTR_FUN_003ad568" (pointer_expression "*param_1" * identifier) = (pointer_expression "&PTR_FUN_003ad568" & identifier)) ;) (expression_statement "param_1[1] = param_1 + 3;" (assignment_expression "param_1[1] = param_1 + 3" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (binary_expression "param_1 + 3" identifier + number_literal)) ;) (expression_statement "FUN_0015cbe0(param_1 + 1,param_2,param_3 + param_2);" (call_expression "FUN_0015cbe0(param_1 + 1,param_2,param_3 + param_2)" identifier (argument_list "(param_1 + 1,param_2,param_3 + param_2)" ( (binary_expression "param_1 + 1" identifier + number_literal) , identifier , (binary_expression "param_3 + param_2" identifier + identifier) ))) ;) (expression_statement "param_1[5] = *param_4;" (assignment_expression "param_1[5] = *param_4" (subscript_expression "param_1[5]" identifier [ number_literal ]) = (pointer_expression "*param_4" * identifier)) ;) (expression_statement "param_1[6] = param_4[2];" (assignment_expression "param_1[6] = param_4[2]" (subscript_expression "param_1[6]" identifier [ number_literal ]) = (subscript_expression "param_4[2]" identifier [ number_literal ])) ;) (expression_statement "param_1[7] = param_4[3];" (assignment_expression "param_1[7] = param_4[3]" (subscript_expression "param_1[7]" identifier [ number_literal ]) = (subscript_expression "param_4[3]" identifier [ number_literal ])) ;) (expression_statement "param_1[8] = param_4[4];" (assignment_expression "param_1[8] = param_4[4]" (subscript_expression "param_1[8]" identifier [ number_literal ]) = (subscript_expression "param_4[4]" identifier [ number_literal ])) ;) (expression_statement "uVar1 = *(undefined4 *)(param_4 + 5);" (assignment_expression "uVar1 = *(undefined4 *)(param_4 + 5)" identifier = (pointer_expression "*(undefined4 *)(param_4 + 5)" * (cast_expression "(undefined4 *)(param_4 + 5)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 5)" ( (binary_expression "param_4 + 5" identifier + number_literal) ))))) ;) (expression_statement "param_1[10] = 0;" (assignment_expression "param_1[10] = 0" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 9) = uVar1;" (assignment_expression "*(undefined4 *)(param_1 + 9) = uVar1" (pointer_expression "*(undefined4 *)(param_1 + 9)" * (cast_expression "(undefined4 *)(param_1 + 9)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 9)" ( (binary_expression "param_1 + 9" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar1 = *(undefined4 *)(param_4 + 1);" (assignment_expression "uVar1 = *(undefined4 *)(param_4 + 1)" identifier = (pointer_expression "*(undefined4 *)(param_4 + 1)" * (cast_expression "(undefined4 *)(param_4 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 1)" ( (binary_expression "param_4 + 1" identifier + number_literal) ))))) ;) (expression_statement "param_1[0xb] = 0;" (assignment_expression "param_1[0xb] = 0" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0xc] = 0;" (assignment_expression "param_1[0xc] = 0" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0xd] = 0;" (assignment_expression "param_1[0xd] = 0" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0xe] = 0;" (assignment_expression "param_1[0xe] = 0" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0xf] = 0;" (assignment_expression "param_1[0xf] = 0" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x10] = 0;" (assignment_expression "param_1[0x10] = 0" (subscript_expression "param_1[0x10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x11] = 0;" (assignment_expression "param_1[0x11] = 0" (subscript_expression "param_1[0x11]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x12] = 0;" (assignment_expression "param_1[0x12] = 0" (subscript_expression "param_1[0x12]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 0x13) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0x13) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0x13)" * (cast_expression "(undefined1 *)(param_1 + 0x13)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x13)" ( (binary_expression "param_1 + 0x13" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((long)param_1 + 0x9c) = uVar1;" (assignment_expression "*(undefined4 *)((long)param_1 + 0x9c) = uVar1" (pointer_expression "*(undefined4 *)((long)param_1 + 0x9c)" * (cast_expression "(undefined4 *)((long)param_1 + 0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x9c)" ( (binary_expression "(long)param_1 + 0x9c" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , (binary_expression IDENT + IDENT) ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = IDENT) ;) (return_statement return ;) })))
(function_definition "void FUN_00206e80(undefined8 *param_1,long param_2,long param_3,undefined8 *param_4)\n\n{\n  undefined4 uVar1;\n  \n  *param_1 = &PTR_FUN_003ad568;\n  param_1[1] = param_1 + 3;\n  FUN_0015cbe0(param_1 + 1,param_2,param_3 + param_2);\n  param_1[5] = *param_4;\n  param_1[6] = param_4[2];\n  param_1[7] = param_4[3];\n  param_1[8] = param_4[4];\n  uVar1 = *(undefined4 *)(param_4 + 5);\n  param_1[10] = 0;\n  *(undefined4 *)(param_1 + 9) = uVar1;\n  uVar1 = *(undefined4 *)(param_4 + 1);\n  param_1[0xb] = 0;\n  param_1[0xc] = 0;\n  param_1[0xd] = 0;\n  param_1[0xe] = 0;\n  param_1[0xf] = 0;\n  param_1[0x10] = 0;\n  param_1[0x11] = 0;\n  param_1[0x12] = 0;\n  *(undefined1 *)(param_1 + 0x13) = 0;\n  *(undefined4 *)((long)param_1 + 0x9c) = uVar1;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00206e80(undefined8 *param_1,long param_2,long param_3,undefined8 *param_4)" (identifier "FUN_00206e80") (parameter_list "(undefined8 *param_1,long param_2,long param_3,undefined8 *param_4)" (( "(") (parameter_declaration "undefined8 *param_1" (type_identifier "undefined8") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "long param_2" (sized_type_specifier "long" (long "long")) (identifier "param_2")) (, ",") (parameter_declaration "long param_3" (sized_type_specifier "long" (long "long")) (identifier "param_3")) (, ",") (parameter_declaration "undefined8 *param_4" (type_identifier "undefined8") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) () ")"))) (compound_statement "{\n  undefined4 uVar1;\n  \n  *param_1 = &PTR_FUN_003ad568;\n  param_1[1] = param_1 + 3;\n  FUN_0015cbe0(param_1 + 1,param_2,param_3 + param_2);\n  param_1[5] = *param_4;\n  param_1[6] = param_4[2];\n  param_1[7] = param_4[3];\n  param_1[8] = param_4[4];\n  uVar1 = *(undefined4 *)(param_4 + 5);\n  param_1[10] = 0;\n  *(undefined4 *)(param_1 + 9) = uVar1;\n  uVar1 = *(undefined4 *)(param_4 + 1);\n  param_1[0xb] = 0;\n  param_1[0xc] = 0;\n  param_1[0xd] = 0;\n  param_1[0xe] = 0;\n  param_1[0xf] = 0;\n  param_1[0x10] = 0;\n  param_1[0x11] = 0;\n  param_1[0x12] = 0;\n  *(undefined1 *)(param_1 + 0x13) = 0;\n  *(undefined4 *)((long)param_1 + 0x9c) = uVar1;\n  return;\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (expression_statement "*param_1 = &PTR_FUN_003ad568;" (assignment_expression "*param_1 = &PTR_FUN_003ad568" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (pointer_expression "&PTR_FUN_003ad568" (& "&") (identifier "PTR_FUN_003ad568"))) (; ";")) (expression_statement "param_1[1] = param_1 + 3;" (assignment_expression "param_1[1] = param_1 + 3" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "param_1 + 3" (identifier "param_1") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "FUN_0015cbe0(param_1 + 1,param_2,param_3 + param_2);" (call_expression "FUN_0015cbe0(param_1 + 1,param_2,param_3 + param_2)" (identifier "FUN_0015cbe0") (argument_list "(param_1 + 1,param_2,param_3 + param_2)" (( "(") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1")) (, ",") (identifier "param_2") (, ",") (binary_expression "param_3 + param_2" (identifier "param_3") (+ "+") (identifier "param_2")) () ")"))) (; ";")) (expression_statement "param_1[5] = *param_4;" (assignment_expression "param_1[5] = *param_4" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (= "=") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (; ";")) (expression_statement "param_1[6] = param_4[2];" (assignment_expression "param_1[6] = param_4[2]" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (= "=") (subscript_expression "param_4[2]" (identifier "param_4") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "param_1[7] = param_4[3];" (assignment_expression "param_1[7] = param_4[3]" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (= "=") (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "param_1[8] = param_4[4];" (assignment_expression "param_1[8] = param_4[4]" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (subscript_expression "param_4[4]" (identifier "param_4") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "uVar1 = *(undefined4 *)(param_4 + 5);" (assignment_expression "uVar1 = *(undefined4 *)(param_4 + 5)" (identifier "uVar1") (= "=") (pointer_expression "*(undefined4 *)(param_4 + 5)" (* "*") (cast_expression "(undefined4 *)(param_4 + 5)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 5)" (( "(") (binary_expression "param_4 + 5" (identifier "param_4") (+ "+") (number_literal "5")) () ")"))))) (; ";")) (expression_statement "param_1[10] = 0;" (assignment_expression "param_1[10] = 0" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 9) = uVar1;" (assignment_expression "*(undefined4 *)(param_1 + 9) = uVar1" (pointer_expression "*(undefined4 *)(param_1 + 9)" (* "*") (cast_expression "(undefined4 *)(param_1 + 9)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 9)" (( "(") (binary_expression "param_1 + 9" (identifier "param_1") (+ "+") (number_literal "9")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "uVar1 = *(undefined4 *)(param_4 + 1);" (assignment_expression "uVar1 = *(undefined4 *)(param_4 + 1)" (identifier "uVar1") (= "=") (pointer_expression "*(undefined4 *)(param_4 + 1)" (* "*") (cast_expression "(undefined4 *)(param_4 + 1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 1)" (( "(") (binary_expression "param_4 + 1" (identifier "param_4") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "param_1[0xb] = 0;" (assignment_expression "param_1[0xb] = 0" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0xc] = 0;" (assignment_expression "param_1[0xc] = 0" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0xd] = 0;" (assignment_expression "param_1[0xd] = 0" (subscript_expression "param_1[0xd]" (identifier "param_1") ([ "[") (number_literal "0xd") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0xe] = 0;" (assignment_expression "param_1[0xe] = 0" (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0xf] = 0;" (assignment_expression "param_1[0xf] = 0" (subscript_expression "param_1[0xf]" (identifier "param_1") ([ "[") (number_literal "0xf") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x10] = 0;" (assignment_expression "param_1[0x10] = 0" (subscript_expression "param_1[0x10]" (identifier "param_1") ([ "[") (number_literal "0x10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x11] = 0;" (assignment_expression "param_1[0x11] = 0" (subscript_expression "param_1[0x11]" (identifier "param_1") ([ "[") (number_literal "0x11") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x12] = 0;" (assignment_expression "param_1[0x12] = 0" (subscript_expression "param_1[0x12]" (identifier "param_1") ([ "[") (number_literal "0x12") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 0x13) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0x13) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0x13)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x13)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x13)" (( "(") (binary_expression "param_1 + 0x13" (identifier "param_1") (+ "+") (number_literal "0x13")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)((long)param_1 + 0x9c) = uVar1;" (assignment_expression "*(undefined4 *)((long)param_1 + 0x9c) = uVar1" (pointer_expression "*(undefined4 *)((long)param_1 + 0x9c)" (* "*") (cast_expression "(undefined4 *)((long)param_1 + 0x9c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x9c)" (( "(") (binary_expression "(long)param_1 + 0x9c" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x9c")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* DWARF original prototype: void Output_section_definition(Output_section_definition * this, char *
   name, size_t namelen, Parser_output_section_header * header) */

void __thiscall
var_5::function_1::function_1
          (function_1 *this,char *var_3,size_t var_4,
          type_1 *header)

{
  type_2 SVar1;
  type_3 SVar2;
  
  (this->super_Sections_element)._vptr_Sections_element =
       (type_4 **)&PTR__Output_section_definition_003ad568;
  (this->name_)._M_dataplus._M_p = (type_7)&(this->name_).field_2;
  std::__cxx11::basic_string<char,var_6::char_traits<char>,var_6::allocator<char>var_7>::
  var_1<var_2*>(&this->name_,var_3,var_3 + var_4);
  this->address_ = header->address;
  this->load_address_ = header->load_address;
  this->align_ = header->align;
  this->subalign_ = header->subalign;
  SVar1 = header->constraint;
  this->fill_ = (type_5 *)0x0;
  this->constraint_ = SVar1;
  SVar2 = header->section_type;
  this->phdrs_ = (type_6 *)0x0;
  (this->elements_).
  super__Vector_base<var_5::Output_section_element*,var_6::allocator<var_5::Output_section_element*>var_7>.
  _M_impl._M_start = (type_7)0x0;
  (this->elements_).
  super__Vector_base<var_5::Output_section_element*,var_6::allocator<var_5::Output_section_element*>var_7>.
  _M_impl._M_finish = (type_7)0x0;
  (this->elements_).
  super__Vector_base<var_5::Output_section_element*,var_6::allocator<var_5::Output_section_element*>var_7>.
  _M_impl._M_end_of_storage = (type_7)0x0;
  this->output_section_ = (type_8 *)0x0;
  this->evaluated_address_ = 0;
  this->evaluated_load_address_ = 0;
  this->evaluated_addralign_ = 0;
  this->is_relro_ = false;
  this->script_section_type_ = SVar2;
  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))) (parameter_declaration type: (sized_type_specifier) declarator: (identifier)) (parameter_declaration type: (sized_type_specifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier) (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (number_literal))))) right: (identifier))) (return_statement))))

void MASKED(undefined8 *param_1,long param_2,long param_3,undefined8 *param_4)

{
  undefined4 uVar1;
  
  *param_1 = &PTR_FUN_003ad568;
  param_1[1] = param_1 + 3;
  FUN_0015cbe0(param_1 + 1,param_2,param_3 + param_2);
  param_1[5] = *param_4;
  param_1[6] = param_4[2];
  param_1[7] = param_4[3];
  param_1[8] = param_4[4];
  uVar1 = *(undefined4 *)(param_4 + 5);
  param_1[10] = 0;
  *(undefined4 *)(param_1 + 9) = uVar1;
  uVar1 = *(undefined4 *)(param_4 + 1);
  param_1[0xb] = 0;
  param_1[0xc] = 0;
  param_1[0xd] = 0;
  param_1[0xe] = 0;
  param_1[0xf] = 0;
  param_1[0x10] = 0;
  param_1[0x11] = 0;
  param_1[0x12] = 0;
  *(undefined1 *)(param_1 + 0x13) = 0;
  *(undefined4 *)((long)param_1 + 0x9c) = uVar1;
  return;
}

