
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* WARNING: Enum "STT": Some values do not have unique names */
/* WARNING: Enum "STB": Some values do not have unique names */
/* DWARF original prototype: void add_to_table(Symbol_assignment * this, Symbol_table * symtab) */

void __thiscall gold::Symbol_assignment::add_to_table(Symbol_assignment *this,Symbol_table *symtab)

{
  Symbol *pSVar1;
  STV visibility;
  Defined defined;
  
  visibility = STV_HIDDEN;
  defined = SCRIPT;
  if (this->hidden_ == false) {
    visibility = STV_DEFAULT;
  }
  if (this->is_defsym_ != false) {
    defined = DEFSYM;
  }
  pSVar1 = Symbol_table::define_as_constant
                     (symtab,(this->name_)._M_dataplus._M_p,(char *)0x0,defined,0,0,STT_NOTYPE,
                      STB_GLOBAL,visibility,'\0',this->provide_,true);
  this->sym_ = pSVar1;
  return;
}



/* gold::Symbol_assignment::add_to_table(gold::Symbol_table*) */

void __thiscall gold::Symbol_assignment::add_to_table(Symbol_assignment *this,Symbol_table *param_1)

{
  undefined4 uVar1;
  undefined4 uVar2;
  
  uVar1 = 2;
  uVar2 = 4;
  if (this[0x1e] == (Symbol_assignment)0x0) {
    uVar1 = 0;
  }
  if (this[0x1c] != (Symbol_assignment)0x0) {
    uVar2 = 2;
  }
  uVar1 = Symbol_table::define_as_constant
                    (param_1,*(undefined4 *)this,0,uVar2,0,0,0,0,0,1,uVar1,0,this[0x1d],1);
  *(undefined4 *)(this + 0x20) = uVar1;
  return;
}


lui gp,0x22
addiu gp,gp,-0x1d58
addu gp,gp,t9
addiu sp,sp,-0x48
lw t9,-0x6c54(gp)
or v1,zero,zero
or v0,zero,zero
sw v1,0x1c(sp)
li t0,0x2
sw v1,0x14(sp)
or a2,zero,zero
sw v0,0x18(sp)
or v1,t0,zero
sw v0,0x10(sp)
sw s0,0x40(sp)
or s0,a0,zero
lbu v0,0x1e(a0)
lbu a3,0x1c(a0)
lbu t1,0x1d(a0)
or a0,a1,zero
li a1,0x4
movz v1,zero,v0
movn a1,t0,a3
sw ra,0x44(sp)
or v0,v1,zero
sw gp,0x38(sp)
li v1,0x1
or a3,a1,zero
lw a1,0x0(s0)
sw v1,0x34(sp)
sw t1,0x30(sp)
sw v1,0x24(sp)
sw zero,0x2c(sp)
sw v0,0x28(sp)
bal 0x00230c54
_sw zero,0x20(sp)
lw ra,0x44(sp)
sw v0,0x20(s0)
lw s0,0x40(sp)
jr ra
_addiu sp,sp,0x48
(translation_unit "/* gold::Symbol_assignment::add_to_table(gold::Symbol_table*) */\n\nvoid __thiscall gold::Symbol_assignment::add_to_table(Symbol_assignment *this,Symbol_table *param_1)\n\n{\n  undefined4 uVar1;\n  undefined4 uVar2;\n  \n  uVar1 = 2;\n  uVar2 = 4;\n  if (this[0x1e] == (Symbol_assignment)0x0) {\n    uVar1 = 0;\n  }\n  if (this[0x1c] != (Symbol_assignment)0x0) {\n    uVar2 = 2;\n  }\n  uVar1 = Symbol_table::define_as_constant\n                    (param_1,*(undefined4 *)this,0,uVar2,0,0,0,0,0,1,uVar1,0,this[0x1d],1);\n  *(undefined4 *)(this + 0x20) = uVar1;\n  return;\n}\n\n" comment (function_definition "void __thiscall gold::Symbol_assignment::add_to_table(Symbol_assignment *this,Symbol_table *param_1)\n\n{\n  undefined4 uVar1;\n  undefined4 uVar2;\n  \n  uVar1 = 2;\n  uVar2 = 4;\n  if (this[0x1e] == (Symbol_assignment)0x0) {\n    uVar1 = 0;\n  }\n  if (this[0x1c] != (Symbol_assignment)0x0) {\n    uVar2 = 2;\n  }\n  uVar1 = Symbol_table::define_as_constant\n                    (param_1,*(undefined4 *)this,0,uVar2,0,0,0,0,0,1,uVar1,0,this[0x1d],1);\n  *(undefined4 *)(this + 0x20) = uVar1;\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Symbol_assignment::" identifier : : identifier : :) (function_declarator "add_to_table(Symbol_assignment *this,Symbol_table *param_1)" identifier (parameter_list "(Symbol_assignment *this,Symbol_table *param_1)" ( (parameter_declaration "Symbol_assignment *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Symbol_table *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  undefined4 uVar1;\n  undefined4 uVar2;\n  \n  uVar1 = 2;\n  uVar2 = 4;\n  if (this[0x1e] == (Symbol_assignment)0x0) {\n    uVar1 = 0;\n  }\n  if (this[0x1c] != (Symbol_assignment)0x0) {\n    uVar2 = 2;\n  }\n  uVar1 = Symbol_table::define_as_constant\n                    (param_1,*(undefined4 *)this,0,uVar2,0,0,0,0,0,1,uVar1,0,this[0x1d],1);\n  *(undefined4 *)(this + 0x20) = uVar1;\n  return;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (expression_statement "uVar1 = 2;" (assignment_expression "uVar1 = 2" identifier = number_literal) ;) (expression_statement "uVar2 = 4;" (assignment_expression "uVar2 = 4" identifier = number_literal) ;) (if_statement "if (this[0x1e] == (Symbol_assignment)0x0) {\n    uVar1 = 0;\n  }" if (parenthesized_expression "(this[0x1e] == (Symbol_assignment)0x0)" ( (binary_expression "this[0x1e] == (Symbol_assignment)0x0" (subscript_expression "this[0x1e]" identifier [ number_literal ]) == (cast_expression "(Symbol_assignment)0x0" ( (type_descriptor "Symbol_assignment" type_identifier) ) number_literal)) )) (compound_statement "{\n    uVar1 = 0;\n  }" { (expression_statement "uVar1 = 0;" (assignment_expression "uVar1 = 0" identifier = number_literal) ;) })) (if_statement "if (this[0x1c] != (Symbol_assignment)0x0) {\n    uVar2 = 2;\n  }" if (parenthesized_expression "(this[0x1c] != (Symbol_assignment)0x0)" ( (binary_expression "this[0x1c] != (Symbol_assignment)0x0" (subscript_expression "this[0x1c]" identifier [ number_literal ]) != (cast_expression "(Symbol_assignment)0x0" ( (type_descriptor "Symbol_assignment" type_identifier) ) number_literal)) )) (compound_statement "{\n    uVar2 = 2;\n  }" { (expression_statement "uVar2 = 2;" (assignment_expression "uVar2 = 2" identifier = number_literal) ;) })) (ERROR "uVar1 = Symbol_table::" (assignment_expression "uVar1 = Symbol_table" identifier = identifier) : :) (expression_statement "define_as_constant\n                    (param_1,*(undefined4 *)this,0,uVar2,0,0,0,0,0,1,uVar1,0,this[0x1d],1);" (call_expression "define_as_constant\n                    (param_1,*(undefined4 *)this,0,uVar2,0,0,0,0,0,1,uVar1,0,this[0x1d],1)" identifier (argument_list "(param_1,*(undefined4 *)this,0,uVar2,0,0,0,0,0,1,uVar1,0,this[0x1d],1)" ( identifier , (pointer_expression "*(undefined4 *)this" * (cast_expression "(undefined4 *)this" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , number_literal , identifier , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , identifier , number_literal , (subscript_expression "this[0x1d]" identifier [ number_literal ]) , number_literal ))) ;) (expression_statement "*(undefined4 *)(this + 0x20) = uVar1;" (assignment_expression "*(undefined4 *)(this + 0x20) = uVar1" (pointer_expression "*(undefined4 *)(this + 0x20)" * (cast_expression "(undefined4 *)(this + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x20)" ( (binary_expression "this + 0x20" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */\n/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */\n/* WARNING: Enum "STT": Some values do not have unique names */\n/* WARNING: Enum "STB": Some values do not have unique names */\n/* DWARF original prototype: void add_to_table(Symbol_assignment * this, Symbol_table * symtab) */\n\nvoid __thiscall gold::Symbol_assignment::add_to_table(Symbol_assignment *this,Symbol_table *symtab)\n\n{\n  Symbol *pSVar1;\n  STV visibility;\n  Defined defined;\n  \n  visibility = STV_HIDDEN;\n  defined = SCRIPT;\n  if (this->hidden_ == false) {\n    visibility = STV_DEFAULT;\n  }\n  if (this->is_defsym_ != false) {\n    defined = DEFSYM;\n  }\n  pSVar1 = Symbol_table::define_as_constant\n                     (symtab,(this->name_)._M_dataplus._M_p,(char *)0x0,defined,0,0,STT_NOTYPE,\n                      STB_GLOBAL,visibility,'\0',this->provide_,true);\n  this->sym_ = pSVar1;\n  return;\n}\n\n" comment comment comment comment comment (function_definition "void __thiscall gold::Symbol_assignment::add_to_table(Symbol_assignment *this,Symbol_table *symtab)\n\n{\n  Symbol *pSVar1;\n  STV visibility;\n  Defined defined;\n  \n  visibility = STV_HIDDEN;\n  defined = SCRIPT;\n  if (this->hidden_ == false) {\n    visibility = STV_DEFAULT;\n  }\n  if (this->is_defsym_ != false) {\n    defined = DEFSYM;\n  }\n  pSVar1 = Symbol_table::define_as_constant\n                     (symtab,(this->name_)._M_dataplus._M_p,(char *)0x0,defined,0,0,STT_NOTYPE,\n                      STB_GLOBAL,visibility,'\0',this->provide_,true);\n  this->sym_ = pSVar1;\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Symbol_assignment::" identifier : : identifier : :) (function_declarator "add_to_table(Symbol_assignment *this,Symbol_table *symtab)" identifier (parameter_list "(Symbol_assignment *this,Symbol_table *symtab)" ( (parameter_declaration "Symbol_assignment *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Symbol_table *symtab" type_identifier (pointer_declarator "*symtab" * identifier)) ))) (compound_statement "{\n  Symbol *pSVar1;\n  STV visibility;\n  Defined defined;\n  \n  visibility = STV_HIDDEN;\n  defined = SCRIPT;\n  if (this->hidden_ == false) {\n    visibility = STV_DEFAULT;\n  }\n  if (this->is_defsym_ != false) {\n    defined = DEFSYM;\n  }\n  pSVar1 = Symbol_table::define_as_constant\n                     (symtab,(this->name_)._M_dataplus._M_p,(char *)0x0,defined,0,0,STT_NOTYPE,\n                      STB_GLOBAL,visibility,'\0',this->provide_,true);\n  this->sym_ = pSVar1;\n  return;\n}" { (declaration "Symbol *pSVar1;" type_identifier (pointer_declarator "*pSVar1" * identifier) ;) (declaration "STV visibility;" type_identifier identifier ;) (declaration "Defined defined;" type_identifier identifier ;) (expression_statement "visibility = STV_HIDDEN;" (assignment_expression "visibility = STV_HIDDEN" identifier = identifier) ;) (expression_statement "defined = SCRIPT;" (assignment_expression "defined = SCRIPT" identifier = identifier) ;) (if_statement "if (this->hidden_ == false) {\n    visibility = STV_DEFAULT;\n  }" if (parenthesized_expression "(this->hidden_ == false)" ( (binary_expression "this->hidden_ == false" (field_expression "this->hidden_" identifier -> field_identifier) == false) )) (compound_statement "{\n    visibility = STV_DEFAULT;\n  }" { (expression_statement "visibility = STV_DEFAULT;" (assignment_expression "visibility = STV_DEFAULT" identifier = identifier) ;) })) (if_statement "if (this->is_defsym_ != false) {\n    defined = DEFSYM;\n  }" if (parenthesized_expression "(this->is_defsym_ != false)" ( (binary_expression "this->is_defsym_ != false" (field_expression "this->is_defsym_" identifier -> field_identifier) != false) )) (compound_statement "{\n    defined = DEFSYM;\n  }" { (expression_statement "defined = DEFSYM;" (assignment_expression "defined = DEFSYM" identifier = identifier) ;) })) (ERROR "pSVar1 = Symbol_table::" (assignment_expression "pSVar1 = Symbol_table" identifier = identifier) : :) (expression_statement "define_as_constant\n                     (symtab,(this->name_)._M_dataplus._M_p,(char *)0x0,defined,0,0,STT_NOTYPE,\n                      STB_GLOBAL,visibility,'\0',this->provide_,true);" (call_expression "define_as_constant\n                     (symtab,(this->name_)._M_dataplus._M_p,(char *)0x0,defined,0,0,STT_NOTYPE,\n                      STB_GLOBAL,visibility,'\0',this->provide_,true)" identifier (argument_list "(symtab,(this->name_)._M_dataplus._M_p,(char *)0x0,defined,0,0,STT_NOTYPE,\n                      STB_GLOBAL,visibility,'\0',this->provide_,true)" ( identifier , (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) , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , number_literal , number_literal , identifier , identifier , identifier , (char_literal "'\0'" ' escape_sequence ') , (field_expression "this->provide_" identifier -> field_identifier) , true ))) ;) (expression_statement "this->sym_ = pSVar1;" (assignment_expression "this->sym_ = pSVar1" (field_expression "this->sym_" identifier -> field_identifier) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit "void __thiscall gold::Symbol_assignment::add_to_table(Symbol_assignment *this,Symbol_table *param_1)\n\n{\n  undefined4 uVar1;\n  undefined4 uVar2;\n  \n  uVar1 = 2;\n  uVar2 = 4;\n  if (this[0x1e] == (Symbol_assignment)0x0) {\n    uVar1 = 0;\n  }\n  if (this[0x1c] != (Symbol_assignment)0x0) {\n    uVar2 = 2;\n  }\n  uVar1 = Symbol_table::define_as_constant\n                    (param_1,*(undefined4 *)this,0,uVar2,0,0,0,0,0,1,uVar1,0,this[0x1d],1);\n  *(undefined4 *)(this + 0x20) = uVar1;\n  return;\n}\n\n" (function_definition "void __thiscall gold::Symbol_assignment::add_to_table(Symbol_assignment *this,Symbol_table *param_1)\n\n{\n  undefined4 uVar1;\n  undefined4 uVar2;\n  \n  uVar1 = 2;\n  uVar2 = 4;\n  if (this[0x1e] == (Symbol_assignment)0x0) {\n    uVar1 = 0;\n  }\n  if (this[0x1c] != (Symbol_assignment)0x0) {\n    uVar2 = 2;\n  }\n  uVar1 = Symbol_table::define_as_constant\n                    (param_1,*(undefined4 *)this,0,uVar2,0,0,0,0,0,1,uVar1,0,this[0x1d],1);\n  *(undefined4 *)(this + 0x20) = uVar1;\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Symbol_assignment::" identifier : : identifier : :) (function_declarator "add_to_table(Symbol_assignment *this,Symbol_table *param_1)" identifier (parameter_list "(Symbol_assignment *this,Symbol_table *param_1)" ( (parameter_declaration "Symbol_assignment *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Symbol_table *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  undefined4 uVar1;\n  undefined4 uVar2;\n  \n  uVar1 = 2;\n  uVar2 = 4;\n  if (this[0x1e] == (Symbol_assignment)0x0) {\n    uVar1 = 0;\n  }\n  if (this[0x1c] != (Symbol_assignment)0x0) {\n    uVar2 = 2;\n  }\n  uVar1 = Symbol_table::define_as_constant\n                    (param_1,*(undefined4 *)this,0,uVar2,0,0,0,0,0,1,uVar1,0,this[0x1d],1);\n  *(undefined4 *)(this + 0x20) = uVar1;\n  return;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (expression_statement "uVar1 = 2;" (assignment_expression "uVar1 = 2" identifier = number_literal) ;) (expression_statement "uVar2 = 4;" (assignment_expression "uVar2 = 4" identifier = number_literal) ;) (if_statement "if (this[0x1e] == (Symbol_assignment)0x0) {\n    uVar1 = 0;\n  }" if (parenthesized_expression "(this[0x1e] == (Symbol_assignment)0x0)" ( (binary_expression "this[0x1e] == (Symbol_assignment)0x0" (subscript_expression "this[0x1e]" identifier [ number_literal ]) == (cast_expression "(Symbol_assignment)0x0" ( (type_descriptor "Symbol_assignment" type_identifier) ) number_literal)) )) (compound_statement "{\n    uVar1 = 0;\n  }" { (expression_statement "uVar1 = 0;" (assignment_expression "uVar1 = 0" identifier = number_literal) ;) })) (if_statement "if (this[0x1c] != (Symbol_assignment)0x0) {\n    uVar2 = 2;\n  }" if (parenthesized_expression "(this[0x1c] != (Symbol_assignment)0x0)" ( (binary_expression "this[0x1c] != (Symbol_assignment)0x0" (subscript_expression "this[0x1c]" identifier [ number_literal ]) != (cast_expression "(Symbol_assignment)0x0" ( (type_descriptor "Symbol_assignment" type_identifier) ) number_literal)) )) (compound_statement "{\n    uVar2 = 2;\n  }" { (expression_statement "uVar2 = 2;" (assignment_expression "uVar2 = 2" identifier = number_literal) ;) })) (ERROR "uVar1 = Symbol_table::" (assignment_expression "uVar1 = Symbol_table" identifier = identifier) : :) (expression_statement "define_as_constant\n                    (param_1,*(undefined4 *)this,0,uVar2,0,0,0,0,0,1,uVar1,0,this[0x1d],1);" (call_expression "define_as_constant\n                    (param_1,*(undefined4 *)this,0,uVar2,0,0,0,0,0,1,uVar1,0,this[0x1d],1)" identifier (argument_list "(param_1,*(undefined4 *)this,0,uVar2,0,0,0,0,0,1,uVar1,0,this[0x1d],1)" ( identifier , (pointer_expression "*(undefined4 *)this" * (cast_expression "(undefined4 *)this" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , number_literal , identifier , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , identifier , number_literal , (subscript_expression "this[0x1d]" identifier [ number_literal ]) , number_literal ))) ;) (expression_statement "*(undefined4 *)(this + 0x20) = uVar1;" (assignment_expression "*(undefined4 *)(this + 0x20) = uVar1" (pointer_expression "*(undefined4 *)(this + 0x20)" * (cast_expression "(undefined4 *)(this + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x20)" ( (binary_expression "this + 0x20" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (ms_call_modifier __thiscall) (ERROR IDENT : : IDENT : :) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (ERROR (assignment_expression IDENT = IDENT) : :) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , LIT , IDENT , LIT , LIT , LIT , LIT , LIT , LIT , IDENT , LIT , (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) ;) (return_statement return ;) })))
(function_definition "void __thiscall gold::Symbol_assignment::add_to_table(Symbol_assignment *this,Symbol_table *param_1)\n\n{\n  undefined4 uVar1;\n  undefined4 uVar2;\n  \n  uVar1 = 2;\n  uVar2 = 4;\n  if (this[0x1e] == (Symbol_assignment)0x0) {\n    uVar1 = 0;\n  }\n  if (this[0x1c] != (Symbol_assignment)0x0) {\n    uVar2 = 2;\n  }\n  uVar1 = Symbol_table::define_as_constant\n                    (param_1,*(undefined4 *)this,0,uVar2,0,0,0,0,0,1,uVar1,0,this[0x1d],1);\n  *(undefined4 *)(this + 0x20) = uVar1;\n  return;\n}" (primitive_type "void") (ms_call_modifier "__thiscall" (__thiscall "__thiscall")) (ERROR "gold::Symbol_assignment::" (identifier "gold") (: ":") (: ":") (identifier "Symbol_assignment") (: ":") (: ":")) (function_declarator "add_to_table(Symbol_assignment *this,Symbol_table *param_1)" (identifier "add_to_table") (parameter_list "(Symbol_assignment *this,Symbol_table *param_1)" (( "(") (parameter_declaration "Symbol_assignment *this" (type_identifier "Symbol_assignment") (pointer_declarator "*this" (* "*") (identifier "this"))) (, ",") (parameter_declaration "Symbol_table *param_1" (type_identifier "Symbol_table") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  undefined4 uVar1;\n  undefined4 uVar2;\n  \n  uVar1 = 2;\n  uVar2 = 4;\n  if (this[0x1e] == (Symbol_assignment)0x0) {\n    uVar1 = 0;\n  }\n  if (this[0x1c] != (Symbol_assignment)0x0) {\n    uVar2 = 2;\n  }\n  uVar1 = Symbol_table::define_as_constant\n                    (param_1,*(undefined4 *)this,0,uVar2,0,0,0,0,0,1,uVar1,0,this[0x1d],1);\n  *(undefined4 *)(this + 0x20) = uVar1;\n  return;\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (expression_statement "uVar1 = 2;" (assignment_expression "uVar1 = 2" (identifier "uVar1") (= "=") (number_literal "2")) (; ";")) (expression_statement "uVar2 = 4;" (assignment_expression "uVar2 = 4" (identifier "uVar2") (= "=") (number_literal "4")) (; ";")) (if_statement "if (this[0x1e] == (Symbol_assignment)0x0) {\n    uVar1 = 0;\n  }" (if "if") (parenthesized_expression "(this[0x1e] == (Symbol_assignment)0x0)" (( "(") (binary_expression "this[0x1e] == (Symbol_assignment)0x0" (subscript_expression "this[0x1e]" (identifier "this") ([ "[") (number_literal "0x1e") (] "]")) (== "==") (cast_expression "(Symbol_assignment)0x0" (( "(") (type_descriptor "Symbol_assignment" (type_identifier "Symbol_assignment")) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    uVar1 = 0;\n  }" ({ "{") (expression_statement "uVar1 = 0;" (assignment_expression "uVar1 = 0" (identifier "uVar1") (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if (this[0x1c] != (Symbol_assignment)0x0) {\n    uVar2 = 2;\n  }" (if "if") (parenthesized_expression "(this[0x1c] != (Symbol_assignment)0x0)" (( "(") (binary_expression "this[0x1c] != (Symbol_assignment)0x0" (subscript_expression "this[0x1c]" (identifier "this") ([ "[") (number_literal "0x1c") (] "]")) (!= "!=") (cast_expression "(Symbol_assignment)0x0" (( "(") (type_descriptor "Symbol_assignment" (type_identifier "Symbol_assignment")) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    uVar2 = 2;\n  }" ({ "{") (expression_statement "uVar2 = 2;" (assignment_expression "uVar2 = 2" (identifier "uVar2") (= "=") (number_literal "2")) (; ";")) (} "}"))) (ERROR "uVar1 = Symbol_table::" (assignment_expression "uVar1 = Symbol_table" (identifier "uVar1") (= "=") (identifier "Symbol_table")) (: ":") (: ":")) (expression_statement "define_as_constant\n                    (param_1,*(undefined4 *)this,0,uVar2,0,0,0,0,0,1,uVar1,0,this[0x1d],1);" (call_expression "define_as_constant\n                    (param_1,*(undefined4 *)this,0,uVar2,0,0,0,0,0,1,uVar1,0,this[0x1d],1)" (identifier "define_as_constant") (argument_list "(param_1,*(undefined4 *)this,0,uVar2,0,0,0,0,0,1,uVar1,0,this[0x1d],1)" (( "(") (identifier "param_1") (, ",") (pointer_expression "*(undefined4 *)this" (* "*") (cast_expression "(undefined4 *)this" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "this"))) (, ",") (number_literal "0") (, ",") (identifier "uVar2") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (identifier "uVar1") (, ",") (number_literal "0") (, ",") (subscript_expression "this[0x1d]" (identifier "this") ([ "[") (number_literal "0x1d") (] "]")) (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(this + 0x20) = uVar1;" (assignment_expression "*(undefined4 *)(this + 0x20) = uVar1" (pointer_expression "*(undefined4 *)(this + 0x20)" (* "*") (cast_expression "(undefined4 *)(this + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x20)" (( "(") (binary_expression "this + 0x20" (identifier "this") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* WARNING: Enum "STT": Some values do not have unique names */
/* WARNING: Enum "STB": Some values do not have unique names */
/* DWARF original prototype: void add_to_table(Symbol_assignment * this, Symbol_table * symtab) */

void __thiscall gold::type_1::function_1(type_1 *this,type_2 *symtab)

{
  type_3 *pSVar1;
  type_4 visibility;
  type_5 defined;
  
  visibility = STV_HIDDEN;
  defined = SCRIPT;
  if (this->hidden_ == false) {
    visibility = STV_DEFAULT;
  }
  if (this->is_defsym_ != false) {
    defined = DEFSYM;
  }
  pSVar1 = type_2::var_1
                     (symtab,(this->name_)._M_dataplus._M_p,(char *)0x0,defined,0,0,STT_NOTYPE,
                      STB_GLOBAL,visibility,'\0',this->provide_,true);
  this->sym_ = pSVar1;
  return;
}


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

/* gold::Symbol_assignment::MASKED(gold::Symbol_table*) */

void __thiscall gold::Symbol_assignment::MASKED(Symbol_assignment *this,Symbol_table *param_1)

{
  undefined4 uVar1;
  undefined4 uVar2;
  
  uVar1 = 2;
  uVar2 = 4;
  if (this[0x1e] == (Symbol_assignment)0x0) {
    uVar1 = 0;
  }
  if (this[0x1c] != (Symbol_assignment)0x0) {
    uVar2 = 2;
  }
  uVar1 = Symbol_table::define_as_constant
                    (param_1,*(undefined4 *)this,0,uVar2,0,0,0,0,0,1,uVar1,0,this[0x1d],1);
  *(undefined4 *)(this + 0x20) = uVar1;
  return;
}

