
/* WARNING: Enum "STT": Some values do not have unique names */
/* WARNING: Enum "STB": Some values do not have unique names */
/* DWARF original prototype: void init_constant(Sized_symbol<32> * this, char * name, char *
   version, Value_type value, Size_type symsize, STT type, STB binding, STV visibility, uchar
   nonvis, bool is_predefined) */

void __thiscall
gold::Sized_symbol<32>::init_constant
          (Sized_symbol<32> *this,char *name,char *version,Value_type value,Size_type symsize,
          STT type,STB binding,STV visibility,uchar nonvis,bool is_predefined)

{
  byte bVar1;
  uint uVar2;
  
  uVar2 = *(uint *)&(this->super_Symbol).field_0x28;
  (this->super_Symbol).name_ = name;
  bVar1 = (this->super_Symbol).field_0x2c;
  (this->super_Symbol).version_ = version;
  (this->super_Symbol).symtab_index_ = 0;
  (this->super_Symbol).dynsym_index_ = 0;
  (this->super_Symbol).plt_offset_ = 0xffffffff;
  (this->super_Symbol).got_offsets_.got_type_ = 0xffffffff;
  (this->super_Symbol).got_offsets_.got_offset_ = 0;
  (this->super_Symbol).got_offsets_.got_next_ = (Got_offset_list *)0x0;
  (this->super_Symbol).field_0x2c = bVar1 & 7 | (byte)((is_predefined & 1) << 5);
  *(STV *)&(this->super_Symbol).field_0x28 =
       uVar2 & 0xffff | type << 0x1c | (binding & STB_HIPROC) << 0x18 |
       (visibility & STV_PROTECTED) << 0x16 | (nonvis & 0x3f) << 0x10;
  this->value_ = value;
  *(ushort *)&(this->super_Symbol).field_0x2a = (ushort)uVar2 & 0x40 | 0x6102;
  this->symsize_ = symsize;
  return;
}



/* gold::Sized_symbol<32>::init_constant(char const*, char const*, unsigned int, unsigned int,
   elfcpp::STT, elfcpp::STB, elfcpp::STV, unsigned char, bool) */

void __thiscall
gold::Sized_symbol<32>::init_constant
          (Sized_symbol<32> *this,undefined4 param_1,undefined4 param_2,undefined4 param_3,
          undefined4 param_4,int param_6,uint param_7,uint param_8,byte param_9,byte param_10)

{
  uint uVar1;
  
  uVar1 = *(uint *)(this + 0x28);
  *(undefined4 *)this = param_1;
  *(undefined4 *)(this + 4) = param_2;
  *(undefined4 *)(this + 0x10) = 0;
  *(undefined4 *)(this + 0x14) = 0;
  *(undefined4 *)(this + 0x18) = 0xffffffff;
  *(undefined4 *)(this + 0x1c) = 0xffffffff;
  *(undefined4 *)(this + 0x20) = 0;
  *(undefined4 *)(this + 0x24) = 0;
  this[0x2c] = (Sized_symbol<32>)((byte)this[0x2c] & 7 | (byte)((param_10 & 1) << 5));
  *(uint *)(this + 0x28) =
       uVar1 & 0xffff | param_6 << 0x1c | (param_7 & 0xf) << 0x18 | (param_8 & 3) << 0x16 |
       (param_9 & 0x3f) << 0x10;
  *(undefined4 *)(this + 0x30) = param_3;
  *(ushort *)(this + 0x2a) = (ushort)uVar1 & 0x40 | 0x6102;
  *(undefined4 *)(this + 0x34) = param_4;
  return;
}


lw v0,0x28(a0)
li t0,-0x1
lw v1,0x14(sp)
lw t1,0x18(sp)
sw a1,0x0(a0)
ins v0,v1,0x1c,0x4
lw a1,0x1c(sp)
lbu v1,0x2c(a0)
ins v0,t1,0x18,0x4
sw a2,0x4(a0)
sw zero,0x10(a0)
ins v0,a1,0x16,0x2
lbu a1,0x27(sp)
andi v1,v1,0x27
sw zero,0x14(a0)
sw t0,0x18(a0)
ins v1,a1,0x5,0x1
lbu a1,0x23(sp)
sw t0,0x1c(a0)
sw zero,0x20(a0)
ins v0,a1,0x10,0x6
sw zero,0x24(a0)
sb v1,0x2c(a0)
andi a1,v0,0x40
sw v0,0x28(a0)
ori v0,a1,0x6102
sw a3,0x30(a0)
sh v0,0x2a(a0)
lw v0,0x10(sp)
jr ra
_sw v0,0x34(a0)
(translation_unit "/* gold::Sized_symbol<32>::init_constant(char const*, char const*, unsigned int, unsigned int,\n   elfcpp::STT, elfcpp::STB, elfcpp::STV, unsigned char, bool) */\n\nvoid __thiscall\ngold::Sized_symbol<32>::init_constant\n          (Sized_symbol<32> *this,undefined4 param_1,undefined4 param_2,undefined4 param_3,\n          undefined4 param_4,int param_6,uint param_7,uint param_8,byte param_9,byte param_10)\n\n{\n  uint uVar1;\n  \n  uVar1 = *(uint *)(this + 0x28);\n  *(undefined4 *)this = param_1;\n  *(undefined4 *)(this + 4) = param_2;\n  *(undefined4 *)(this + 0x10) = 0;\n  *(undefined4 *)(this + 0x14) = 0;\n  *(undefined4 *)(this + 0x18) = 0xffffffff;\n  *(undefined4 *)(this + 0x1c) = 0xffffffff;\n  *(undefined4 *)(this + 0x20) = 0;\n  *(undefined4 *)(this + 0x24) = 0;\n  this[0x2c] = (Sized_symbol<32>)((byte)this[0x2c] & 7 | (byte)((param_10 & 1) << 5));\n  *(uint *)(this + 0x28) =\n       uVar1 & 0xffff | param_6 << 0x1c | (param_7 & 0xf) << 0x18 | (param_8 & 3) << 0x16 |\n       (param_9 & 0x3f) << 0x10;\n  *(undefined4 *)(this + 0x30) = param_3;\n  *(ushort *)(this + 0x2a) = (ushort)uVar1 & 0x40 | 0x6102;\n  *(undefined4 *)(this + 0x34) = param_4;\n  return;\n}\n\n" comment (function_definition "void __thiscall\ngold::Sized_symbol<32>::init_constant\n          (Sized_symbol<32> *this,undefined4 param_1,undefined4 param_2,undefined4 param_3,\n          undefined4 param_4,int param_6,uint param_7,uint param_8,byte param_9,byte param_10)\n\n{\n  uint uVar1;\n  \n  uVar1 = *(uint *)(this + 0x28);\n  *(undefined4 *)this = param_1;\n  *(undefined4 *)(this + 4) = param_2;\n  *(undefined4 *)(this + 0x10) = 0;\n  *(undefined4 *)(this + 0x14) = 0;\n  *(undefined4 *)(this + 0x18) = 0xffffffff;\n  *(undefined4 *)(this + 0x1c) = 0xffffffff;\n  *(undefined4 *)(this + 0x20) = 0;\n  *(undefined4 *)(this + 0x24) = 0;\n  this[0x2c] = (Sized_symbol<32>)((byte)this[0x2c] & 7 | (byte)((param_10 & 1) << 5));\n  *(uint *)(this + 0x28) =\n       uVar1 & 0xffff | param_6 << 0x1c | (param_7 & 0xf) << 0x18 | (param_8 & 3) << 0x16 |\n       (param_9 & 0x3f) << 0x10;\n  *(undefined4 *)(this + 0x30) = param_3;\n  *(ushort *)(this + 0x2a) = (ushort)uVar1 & 0x40 | 0x6102;\n  *(undefined4 *)(this + 0x34) = param_4;\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Sized_symbol<32>::" identifier : : identifier < number_literal > : :) (function_declarator "init_constant\n          (Sized_symbol<32> *this,undefined4 param_1,undefined4 param_2,undefined4 param_3,\n          undefined4 param_4,int param_6,uint param_7,uint param_8,byte param_9,byte param_10)" identifier (parameter_list "(Sized_symbol<32> *this,undefined4 param_1,undefined4 param_2,undefined4 param_3,\n          undefined4 param_4,int param_6,uint param_7,uint param_8,byte param_9,byte param_10)" ( (parameter_declaration "Sized_symbol<32> *this" type_identifier (ERROR "<32>" < number_literal >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "uint param_7" type_identifier identifier) , (parameter_declaration "uint param_8" type_identifier identifier) , (parameter_declaration "byte param_9" type_identifier identifier) , (parameter_declaration "byte param_10" type_identifier identifier) ))) (compound_statement "{\n  uint uVar1;\n  \n  uVar1 = *(uint *)(this + 0x28);\n  *(undefined4 *)this = param_1;\n  *(undefined4 *)(this + 4) = param_2;\n  *(undefined4 *)(this + 0x10) = 0;\n  *(undefined4 *)(this + 0x14) = 0;\n  *(undefined4 *)(this + 0x18) = 0xffffffff;\n  *(undefined4 *)(this + 0x1c) = 0xffffffff;\n  *(undefined4 *)(this + 0x20) = 0;\n  *(undefined4 *)(this + 0x24) = 0;\n  this[0x2c] = (Sized_symbol<32>)((byte)this[0x2c] & 7 | (byte)((param_10 & 1) << 5));\n  *(uint *)(this + 0x28) =\n       uVar1 & 0xffff | param_6 << 0x1c | (param_7 & 0xf) << 0x18 | (param_8 & 3) << 0x16 |\n       (param_9 & 0x3f) << 0x10;\n  *(undefined4 *)(this + 0x30) = param_3;\n  *(ushort *)(this + 0x2a) = (ushort)uVar1 & 0x40 | 0x6102;\n  *(undefined4 *)(this + 0x34) = param_4;\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (expression_statement "uVar1 = *(uint *)(this + 0x28);" (assignment_expression "uVar1 = *(uint *)(this + 0x28)" identifier = (pointer_expression "*(uint *)(this + 0x28)" * (cast_expression "(uint *)(this + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x28)" ( (binary_expression "this + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)this = param_1;" (assignment_expression "*(undefined4 *)this = param_1" (pointer_expression "*(undefined4 *)this" * (cast_expression "(undefined4 *)this" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(undefined4 *)(this + 4) = param_2;" (assignment_expression "*(undefined4 *)(this + 4) = param_2" (pointer_expression "*(undefined4 *)(this + 4)" * (cast_expression "(undefined4 *)(this + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(this + 0x10) = 0;" (assignment_expression "*(undefined4 *)(this + 0x10) = 0" (pointer_expression "*(undefined4 *)(this + 0x10)" * (cast_expression "(undefined4 *)(this + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x10)" ( (binary_expression "this + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(this + 0x14) = 0;" (assignment_expression "*(undefined4 *)(this + 0x14) = 0" (pointer_expression "*(undefined4 *)(this + 0x14)" * (cast_expression "(undefined4 *)(this + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x14)" ( (binary_expression "this + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(this + 0x18) = 0xffffffff;" (assignment_expression "*(undefined4 *)(this + 0x18) = 0xffffffff" (pointer_expression "*(undefined4 *)(this + 0x18)" * (cast_expression "(undefined4 *)(this + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x18)" ( (binary_expression "this + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(this + 0x1c) = 0xffffffff;" (assignment_expression "*(undefined4 *)(this + 0x1c) = 0xffffffff" (pointer_expression "*(undefined4 *)(this + 0x1c)" * (cast_expression "(undefined4 *)(this + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x1c)" ( (binary_expression "this + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(this + 0x20) = 0;" (assignment_expression "*(undefined4 *)(this + 0x20) = 0" (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) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(this + 0x24) = 0;" (assignment_expression "*(undefined4 *)(this + 0x24) = 0" (pointer_expression "*(undefined4 *)(this + 0x24)" * (cast_expression "(undefined4 *)(this + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x24)" ( (binary_expression "this + 0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "this[0x2c] = (Sized_symbol<32>)((byte)this[0x2c] & 7 | (byte)((param_10 & 1) << 5));" (assignment_expression "this[0x2c] = (Sized_symbol<32>)((byte)this[0x2c] & 7 | (byte)((param_10 & 1) << 5))" (subscript_expression "this[0x2c]" identifier [ number_literal ]) = (call_expression "(Sized_symbol<32>)((byte)this[0x2c] & 7 | (byte)((param_10 & 1) << 5))" (parenthesized_expression "(Sized_symbol<32>)" ( (binary_expression "Sized_symbol<32>" (binary_expression "Sized_symbol<32" identifier < number_literal) > identifier) )) (argument_list "((byte)this[0x2c] & 7 | (byte)((param_10 & 1) << 5))" ( (binary_expression "(byte)this[0x2c] & 7 | (byte)((param_10 & 1) << 5)" (binary_expression "(byte)this[0x2c] & 7" (cast_expression "(byte)this[0x2c]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "this[0x2c]" identifier [ number_literal ])) & number_literal) | (call_expression "(byte)((param_10 & 1) << 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((param_10 & 1) << 5)" ( (binary_expression "(param_10 & 1) << 5" (parenthesized_expression "(param_10 & 1)" ( (binary_expression "param_10 & 1" identifier & number_literal) )) << number_literal) )))) )))) ;) (expression_statement "*(uint *)(this + 0x28) =\n       uVar1 & 0xffff | param_6 << 0x1c | (param_7 & 0xf) << 0x18 | (param_8 & 3) << 0x16 |\n       (param_9 & 0x3f) << 0x10;" (assignment_expression "*(uint *)(this + 0x28) =\n       uVar1 & 0xffff | param_6 << 0x1c | (param_7 & 0xf) << 0x18 | (param_8 & 3) << 0x16 |\n       (param_9 & 0x3f) << 0x10" (pointer_expression "*(uint *)(this + 0x28)" * (cast_expression "(uint *)(this + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x28)" ( (binary_expression "this + 0x28" identifier + number_literal) )))) = (binary_expression "uVar1 & 0xffff | param_6 << 0x1c | (param_7 & 0xf) << 0x18 | (param_8 & 3) << 0x16 |\n       (param_9 & 0x3f) << 0x10" (binary_expression "uVar1 & 0xffff | param_6 << 0x1c | (param_7 & 0xf) << 0x18 | (param_8 & 3) << 0x16" (binary_expression "uVar1 & 0xffff | param_6 << 0x1c | (param_7 & 0xf) << 0x18" (binary_expression "uVar1 & 0xffff | param_6 << 0x1c" (binary_expression "uVar1 & 0xffff" identifier & number_literal) | (binary_expression "param_6 << 0x1c" identifier << number_literal)) | (binary_expression "(param_7 & 0xf) << 0x18" (parenthesized_expression "(param_7 & 0xf)" ( (binary_expression "param_7 & 0xf" identifier & number_literal) )) << number_literal)) | (binary_expression "(param_8 & 3) << 0x16" (parenthesized_expression "(param_8 & 3)" ( (binary_expression "param_8 & 3" identifier & number_literal) )) << number_literal)) | (binary_expression "(param_9 & 0x3f) << 0x10" (parenthesized_expression "(param_9 & 0x3f)" ( (binary_expression "param_9 & 0x3f" identifier & number_literal) )) << number_literal))) ;) (expression_statement "*(undefined4 *)(this + 0x30) = param_3;" (assignment_expression "*(undefined4 *)(this + 0x30) = param_3" (pointer_expression "*(undefined4 *)(this + 0x30)" * (cast_expression "(undefined4 *)(this + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x30)" ( (binary_expression "this + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(ushort *)(this + 0x2a) = (ushort)uVar1 & 0x40 | 0x6102;" (assignment_expression "*(ushort *)(this + 0x2a) = (ushort)uVar1 & 0x40 | 0x6102" (pointer_expression "*(ushort *)(this + 0x2a)" * (cast_expression "(ushort *)(this + 0x2a)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x2a)" ( (binary_expression "this + 0x2a" identifier + number_literal) )))) = (binary_expression "(ushort)uVar1 & 0x40 | 0x6102" (binary_expression "(ushort)uVar1 & 0x40" (cast_expression "(ushort)uVar1" ( (type_descriptor "ushort" type_identifier) ) identifier) & number_literal) | number_literal)) ;) (expression_statement "*(undefined4 *)(this + 0x34) = param_4;" (assignment_expression "*(undefined4 *)(this + 0x34) = param_4" (pointer_expression "*(undefined4 *)(this + 0x34)" * (cast_expression "(undefined4 *)(this + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x34)" ( (binary_expression "this + 0x34" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit "/* 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 init_constant(Sized_symbol<32> * this, char * name, char *\n   version, Value_type value, Size_type symsize, STT type, STB binding, STV visibility, uchar\n   nonvis, bool is_predefined) */\n\nvoid __thiscall\ngold::Sized_symbol<32>::init_constant\n          (Sized_symbol<32> *this,char *name,char *version,Value_type value,Size_type symsize,\n          STT type,STB binding,STV visibility,uchar nonvis,bool is_predefined)\n\n{\n  byte bVar1;\n  uint uVar2;\n  \n  uVar2 = *(uint *)&(this->super_Symbol).field_0x28;\n  (this->super_Symbol).name_ = name;\n  bVar1 = (this->super_Symbol).field_0x2c;\n  (this->super_Symbol).version_ = version;\n  (this->super_Symbol).symtab_index_ = 0;\n  (this->super_Symbol).dynsym_index_ = 0;\n  (this->super_Symbol).plt_offset_ = 0xffffffff;\n  (this->super_Symbol).got_offsets_.got_type_ = 0xffffffff;\n  (this->super_Symbol).got_offsets_.got_offset_ = 0;\n  (this->super_Symbol).got_offsets_.got_next_ = (Got_offset_list *)0x0;\n  (this->super_Symbol).field_0x2c = bVar1 & 7 | (byte)((is_predefined & 1) << 5);\n  *(STV *)&(this->super_Symbol).field_0x28 =\n       uVar2 & 0xffff | type << 0x1c | (binding & STB_HIPROC) << 0x18 |\n       (visibility & STV_PROTECTED) << 0x16 | (nonvis & 0x3f) << 0x10;\n  this->value_ = value;\n  *(ushort *)&(this->super_Symbol).field_0x2a = (ushort)uVar2 & 0x40 | 0x6102;\n  this->symsize_ = symsize;\n  return;\n}\n\n" comment comment comment (function_definition "void __thiscall\ngold::Sized_symbol<32>::init_constant\n          (Sized_symbol<32> *this,char *name,char *version,Value_type value,Size_type symsize,\n          STT type,STB binding,STV visibility,uchar nonvis,bool is_predefined)\n\n{\n  byte bVar1;\n  uint uVar2;\n  \n  uVar2 = *(uint *)&(this->super_Symbol).field_0x28;\n  (this->super_Symbol).name_ = name;\n  bVar1 = (this->super_Symbol).field_0x2c;\n  (this->super_Symbol).version_ = version;\n  (this->super_Symbol).symtab_index_ = 0;\n  (this->super_Symbol).dynsym_index_ = 0;\n  (this->super_Symbol).plt_offset_ = 0xffffffff;\n  (this->super_Symbol).got_offsets_.got_type_ = 0xffffffff;\n  (this->super_Symbol).got_offsets_.got_offset_ = 0;\n  (this->super_Symbol).got_offsets_.got_next_ = (Got_offset_list *)0x0;\n  (this->super_Symbol).field_0x2c = bVar1 & 7 | (byte)((is_predefined & 1) << 5);\n  *(STV *)&(this->super_Symbol).field_0x28 =\n       uVar2 & 0xffff | type << 0x1c | (binding & STB_HIPROC) << 0x18 |\n       (visibility & STV_PROTECTED) << 0x16 | (nonvis & 0x3f) << 0x10;\n  this->value_ = value;\n  *(ushort *)&(this->super_Symbol).field_0x2a = (ushort)uVar2 & 0x40 | 0x6102;\n  this->symsize_ = symsize;\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Sized_symbol<32>::" identifier : : identifier < number_literal > : :) (function_declarator "init_constant\n          (Sized_symbol<32> *this,char *name,char *version,Value_type value,Size_type symsize,\n          STT type,STB binding,STV visibility,uchar nonvis,bool is_predefined)" identifier (parameter_list "(Sized_symbol<32> *this,char *name,char *version,Value_type value,Size_type symsize,\n          STT type,STB binding,STV visibility,uchar nonvis,bool is_predefined)" ( (parameter_declaration "Sized_symbol<32> *this" type_identifier (ERROR "<32>" < number_literal >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "char *name" primitive_type (pointer_declarator "*name" * identifier)) , (parameter_declaration "char *version" primitive_type (pointer_declarator "*version" * identifier)) , (parameter_declaration "Value_type value" type_identifier identifier) , (parameter_declaration "Size_type symsize" type_identifier identifier) , (parameter_declaration "STT type" type_identifier identifier) , (parameter_declaration "STB binding" type_identifier identifier) , (parameter_declaration "STV visibility" type_identifier identifier) , (parameter_declaration "uchar nonvis" type_identifier identifier) , (parameter_declaration "bool is_predefined" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  uint uVar2;\n  \n  uVar2 = *(uint *)&(this->super_Symbol).field_0x28;\n  (this->super_Symbol).name_ = name;\n  bVar1 = (this->super_Symbol).field_0x2c;\n  (this->super_Symbol).version_ = version;\n  (this->super_Symbol).symtab_index_ = 0;\n  (this->super_Symbol).dynsym_index_ = 0;\n  (this->super_Symbol).plt_offset_ = 0xffffffff;\n  (this->super_Symbol).got_offsets_.got_type_ = 0xffffffff;\n  (this->super_Symbol).got_offsets_.got_offset_ = 0;\n  (this->super_Symbol).got_offsets_.got_next_ = (Got_offset_list *)0x0;\n  (this->super_Symbol).field_0x2c = bVar1 & 7 | (byte)((is_predefined & 1) << 5);\n  *(STV *)&(this->super_Symbol).field_0x28 =\n       uVar2 & 0xffff | type << 0x1c | (binding & STB_HIPROC) << 0x18 |\n       (visibility & STV_PROTECTED) << 0x16 | (nonvis & 0x3f) << 0x10;\n  this->value_ = value;\n  *(ushort *)&(this->super_Symbol).field_0x2a = (ushort)uVar2 & 0x40 | 0x6102;\n  this->symsize_ = symsize;\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (expression_statement "uVar2 = *(uint *)&(this->super_Symbol).field_0x28;" (assignment_expression "uVar2 = *(uint *)&(this->super_Symbol).field_0x28" identifier = (pointer_expression "*(uint *)&(this->super_Symbol).field_0x28" * (cast_expression "(uint *)&(this->super_Symbol).field_0x28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this->super_Symbol).field_0x28" & (field_expression "(this->super_Symbol).field_0x28" (parenthesized_expression "(this->super_Symbol)" ( (field_expression "this->super_Symbol" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "(this->super_Symbol).name_ = name;" (assignment_expression "(this->super_Symbol).name_ = name" (field_expression "(this->super_Symbol).name_" (parenthesized_expression "(this->super_Symbol)" ( (field_expression "this->super_Symbol" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "bVar1 = (this->super_Symbol).field_0x2c;" (assignment_expression "bVar1 = (this->super_Symbol).field_0x2c" identifier = (field_expression "(this->super_Symbol).field_0x2c" (parenthesized_expression "(this->super_Symbol)" ( (field_expression "this->super_Symbol" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "(this->super_Symbol).version_ = version;" (assignment_expression "(this->super_Symbol).version_ = version" (field_expression "(this->super_Symbol).version_" (parenthesized_expression "(this->super_Symbol)" ( (field_expression "this->super_Symbol" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(this->super_Symbol).symtab_index_ = 0;" (assignment_expression "(this->super_Symbol).symtab_index_ = 0" (field_expression "(this->super_Symbol).symtab_index_" (parenthesized_expression "(this->super_Symbol)" ( (field_expression "this->super_Symbol" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(this->super_Symbol).dynsym_index_ = 0;" (assignment_expression "(this->super_Symbol).dynsym_index_ = 0" (field_expression "(this->super_Symbol).dynsym_index_" (parenthesized_expression "(this->super_Symbol)" ( (field_expression "this->super_Symbol" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(this->super_Symbol).plt_offset_ = 0xffffffff;" (assignment_expression "(this->super_Symbol).plt_offset_ = 0xffffffff" (field_expression "(this->super_Symbol).plt_offset_" (parenthesized_expression "(this->super_Symbol)" ( (field_expression "this->super_Symbol" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(this->super_Symbol).got_offsets_.got_type_ = 0xffffffff;" (assignment_expression "(this->super_Symbol).got_offsets_.got_type_ = 0xffffffff" (field_expression "(this->super_Symbol).got_offsets_.got_type_" (field_expression "(this->super_Symbol).got_offsets_" (parenthesized_expression "(this->super_Symbol)" ( (field_expression "this->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(this->super_Symbol).got_offsets_.got_offset_ = 0;" (assignment_expression "(this->super_Symbol).got_offsets_.got_offset_ = 0" (field_expression "(this->super_Symbol).got_offsets_.got_offset_" (field_expression "(this->super_Symbol).got_offsets_" (parenthesized_expression "(this->super_Symbol)" ( (field_expression "this->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(this->super_Symbol).got_offsets_.got_next_ = (Got_offset_list *)0x0;" (assignment_expression "(this->super_Symbol).got_offsets_.got_next_ = (Got_offset_list *)0x0" (field_expression "(this->super_Symbol).got_offsets_.got_next_" (field_expression "(this->super_Symbol).got_offsets_" (parenthesized_expression "(this->super_Symbol)" ( (field_expression "this->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(Got_offset_list *)0x0" ( (type_descriptor "Got_offset_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(this->super_Symbol).field_0x2c = bVar1 & 7 | (byte)((is_predefined & 1) << 5);" (assignment_expression "(this->super_Symbol).field_0x2c = bVar1 & 7 | (byte)((is_predefined & 1) << 5)" (field_expression "(this->super_Symbol).field_0x2c" (parenthesized_expression "(this->super_Symbol)" ( (field_expression "this->super_Symbol" identifier -> field_identifier) )) . field_identifier) = (binary_expression "bVar1 & 7 | (byte)((is_predefined & 1) << 5)" (binary_expression "bVar1 & 7" identifier & number_literal) | (call_expression "(byte)((is_predefined & 1) << 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((is_predefined & 1) << 5)" ( (binary_expression "(is_predefined & 1) << 5" (parenthesized_expression "(is_predefined & 1)" ( (binary_expression "is_predefined & 1" identifier & number_literal) )) << number_literal) ))))) ;) (expression_statement "*(STV *)&(this->super_Symbol).field_0x28 =\n       uVar2 & 0xffff | type << 0x1c | (binding & STB_HIPROC) << 0x18 |\n       (visibility & STV_PROTECTED) << 0x16 | (nonvis & 0x3f) << 0x10;" (assignment_expression "*(STV *)&(this->super_Symbol).field_0x28 =\n       uVar2 & 0xffff | type << 0x1c | (binding & STB_HIPROC) << 0x18 |\n       (visibility & STV_PROTECTED) << 0x16 | (nonvis & 0x3f) << 0x10" (pointer_expression "*(STV *)&(this->super_Symbol).field_0x28" * (cast_expression "(STV *)&(this->super_Symbol).field_0x28" ( (type_descriptor "STV *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this->super_Symbol).field_0x28" & (field_expression "(this->super_Symbol).field_0x28" (parenthesized_expression "(this->super_Symbol)" ( (field_expression "this->super_Symbol" identifier -> field_identifier) )) . field_identifier)))) = (binary_expression "uVar2 & 0xffff | type << 0x1c | (binding & STB_HIPROC) << 0x18 |\n       (visibility & STV_PROTECTED) << 0x16 | (nonvis & 0x3f) << 0x10" (binary_expression "uVar2 & 0xffff | type << 0x1c | (binding & STB_HIPROC) << 0x18 |\n       (visibility & STV_PROTECTED) << 0x16" (binary_expression "uVar2 & 0xffff | type << 0x1c | (binding & STB_HIPROC) << 0x18" (binary_expression "uVar2 & 0xffff | type << 0x1c" (binary_expression "uVar2 & 0xffff" identifier & number_literal) | (binary_expression "type << 0x1c" identifier << number_literal)) | (binary_expression "(binding & STB_HIPROC) << 0x18" (parenthesized_expression "(binding & STB_HIPROC)" ( (binary_expression "binding & STB_HIPROC" identifier & identifier) )) << number_literal)) | (binary_expression "(visibility & STV_PROTECTED) << 0x16" (parenthesized_expression "(visibility & STV_PROTECTED)" ( (binary_expression "visibility & STV_PROTECTED" identifier & identifier) )) << number_literal)) | (binary_expression "(nonvis & 0x3f) << 0x10" (parenthesized_expression "(nonvis & 0x3f)" ( (binary_expression "nonvis & 0x3f" identifier & number_literal) )) << number_literal))) ;) (expression_statement "this->value_ = value;" (assignment_expression "this->value_ = value" (field_expression "this->value_" identifier -> field_identifier) = identifier) ;) (expression_statement "*(ushort *)&(this->super_Symbol).field_0x2a = (ushort)uVar2 & 0x40 | 0x6102;" (assignment_expression "*(ushort *)&(this->super_Symbol).field_0x2a = (ushort)uVar2 & 0x40 | 0x6102" (pointer_expression "*(ushort *)&(this->super_Symbol).field_0x2a" * (cast_expression "(ushort *)&(this->super_Symbol).field_0x2a" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this->super_Symbol).field_0x2a" & (field_expression "(this->super_Symbol).field_0x2a" (parenthesized_expression "(this->super_Symbol)" ( (field_expression "this->super_Symbol" identifier -> field_identifier) )) . field_identifier)))) = (binary_expression "(ushort)uVar2 & 0x40 | 0x6102" (binary_expression "(ushort)uVar2 & 0x40" (cast_expression "(ushort)uVar2" ( (type_descriptor "ushort" type_identifier) ) identifier) & number_literal) | number_literal)) ;) (expression_statement "this->symsize_ = symsize;" (assignment_expression "this->symsize_ = symsize" (field_expression "this->symsize_" identifier -> field_identifier) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit "void __thiscall\ngold::Sized_symbol<32>::init_constant\n          (Sized_symbol<32> *this,undefined4 param_1,undefined4 param_2,undefined4 param_3,\n          undefined4 param_4,int param_6,uint param_7,uint param_8,byte param_9,byte param_10)\n\n{\n  uint uVar1;\n  \n  uVar1 = *(uint *)(this + 0x28);\n  *(undefined4 *)this = param_1;\n  *(undefined4 *)(this + 4) = param_2;\n  *(undefined4 *)(this + 0x10) = 0;\n  *(undefined4 *)(this + 0x14) = 0;\n  *(undefined4 *)(this + 0x18) = 0xffffffff;\n  *(undefined4 *)(this + 0x1c) = 0xffffffff;\n  *(undefined4 *)(this + 0x20) = 0;\n  *(undefined4 *)(this + 0x24) = 0;\n  this[0x2c] = (Sized_symbol<32>)((byte)this[0x2c] & 7 | (byte)((param_10 & 1) << 5));\n  *(uint *)(this + 0x28) =\n       uVar1 & 0xffff | param_6 << 0x1c | (param_7 & 0xf) << 0x18 | (param_8 & 3) << 0x16 |\n       (param_9 & 0x3f) << 0x10;\n  *(undefined4 *)(this + 0x30) = param_3;\n  *(ushort *)(this + 0x2a) = (ushort)uVar1 & 0x40 | 0x6102;\n  *(undefined4 *)(this + 0x34) = param_4;\n  return;\n}\n\n" (function_definition "void __thiscall\ngold::Sized_symbol<32>::init_constant\n          (Sized_symbol<32> *this,undefined4 param_1,undefined4 param_2,undefined4 param_3,\n          undefined4 param_4,int param_6,uint param_7,uint param_8,byte param_9,byte param_10)\n\n{\n  uint uVar1;\n  \n  uVar1 = *(uint *)(this + 0x28);\n  *(undefined4 *)this = param_1;\n  *(undefined4 *)(this + 4) = param_2;\n  *(undefined4 *)(this + 0x10) = 0;\n  *(undefined4 *)(this + 0x14) = 0;\n  *(undefined4 *)(this + 0x18) = 0xffffffff;\n  *(undefined4 *)(this + 0x1c) = 0xffffffff;\n  *(undefined4 *)(this + 0x20) = 0;\n  *(undefined4 *)(this + 0x24) = 0;\n  this[0x2c] = (Sized_symbol<32>)((byte)this[0x2c] & 7 | (byte)((param_10 & 1) << 5));\n  *(uint *)(this + 0x28) =\n       uVar1 & 0xffff | param_6 << 0x1c | (param_7 & 0xf) << 0x18 | (param_8 & 3) << 0x16 |\n       (param_9 & 0x3f) << 0x10;\n  *(undefined4 *)(this + 0x30) = param_3;\n  *(ushort *)(this + 0x2a) = (ushort)uVar1 & 0x40 | 0x6102;\n  *(undefined4 *)(this + 0x34) = param_4;\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Sized_symbol<32>::" identifier : : identifier < number_literal > : :) (function_declarator "init_constant\n          (Sized_symbol<32> *this,undefined4 param_1,undefined4 param_2,undefined4 param_3,\n          undefined4 param_4,int param_6,uint param_7,uint param_8,byte param_9,byte param_10)" identifier (parameter_list "(Sized_symbol<32> *this,undefined4 param_1,undefined4 param_2,undefined4 param_3,\n          undefined4 param_4,int param_6,uint param_7,uint param_8,byte param_9,byte param_10)" ( (parameter_declaration "Sized_symbol<32> *this" type_identifier (ERROR "<32>" < number_literal >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "uint param_7" type_identifier identifier) , (parameter_declaration "uint param_8" type_identifier identifier) , (parameter_declaration "byte param_9" type_identifier identifier) , (parameter_declaration "byte param_10" type_identifier identifier) ))) (compound_statement "{\n  uint uVar1;\n  \n  uVar1 = *(uint *)(this + 0x28);\n  *(undefined4 *)this = param_1;\n  *(undefined4 *)(this + 4) = param_2;\n  *(undefined4 *)(this + 0x10) = 0;\n  *(undefined4 *)(this + 0x14) = 0;\n  *(undefined4 *)(this + 0x18) = 0xffffffff;\n  *(undefined4 *)(this + 0x1c) = 0xffffffff;\n  *(undefined4 *)(this + 0x20) = 0;\n  *(undefined4 *)(this + 0x24) = 0;\n  this[0x2c] = (Sized_symbol<32>)((byte)this[0x2c] & 7 | (byte)((param_10 & 1) << 5));\n  *(uint *)(this + 0x28) =\n       uVar1 & 0xffff | param_6 << 0x1c | (param_7 & 0xf) << 0x18 | (param_8 & 3) << 0x16 |\n       (param_9 & 0x3f) << 0x10;\n  *(undefined4 *)(this + 0x30) = param_3;\n  *(ushort *)(this + 0x2a) = (ushort)uVar1 & 0x40 | 0x6102;\n  *(undefined4 *)(this + 0x34) = param_4;\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (expression_statement "uVar1 = *(uint *)(this + 0x28);" (assignment_expression "uVar1 = *(uint *)(this + 0x28)" identifier = (pointer_expression "*(uint *)(this + 0x28)" * (cast_expression "(uint *)(this + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x28)" ( (binary_expression "this + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)this = param_1;" (assignment_expression "*(undefined4 *)this = param_1" (pointer_expression "*(undefined4 *)this" * (cast_expression "(undefined4 *)this" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(undefined4 *)(this + 4) = param_2;" (assignment_expression "*(undefined4 *)(this + 4) = param_2" (pointer_expression "*(undefined4 *)(this + 4)" * (cast_expression "(undefined4 *)(this + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(this + 0x10) = 0;" (assignment_expression "*(undefined4 *)(this + 0x10) = 0" (pointer_expression "*(undefined4 *)(this + 0x10)" * (cast_expression "(undefined4 *)(this + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x10)" ( (binary_expression "this + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(this + 0x14) = 0;" (assignment_expression "*(undefined4 *)(this + 0x14) = 0" (pointer_expression "*(undefined4 *)(this + 0x14)" * (cast_expression "(undefined4 *)(this + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x14)" ( (binary_expression "this + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(this + 0x18) = 0xffffffff;" (assignment_expression "*(undefined4 *)(this + 0x18) = 0xffffffff" (pointer_expression "*(undefined4 *)(this + 0x18)" * (cast_expression "(undefined4 *)(this + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x18)" ( (binary_expression "this + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(this + 0x1c) = 0xffffffff;" (assignment_expression "*(undefined4 *)(this + 0x1c) = 0xffffffff" (pointer_expression "*(undefined4 *)(this + 0x1c)" * (cast_expression "(undefined4 *)(this + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x1c)" ( (binary_expression "this + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(this + 0x20) = 0;" (assignment_expression "*(undefined4 *)(this + 0x20) = 0" (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) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(this + 0x24) = 0;" (assignment_expression "*(undefined4 *)(this + 0x24) = 0" (pointer_expression "*(undefined4 *)(this + 0x24)" * (cast_expression "(undefined4 *)(this + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x24)" ( (binary_expression "this + 0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "this[0x2c] = (Sized_symbol<32>)((byte)this[0x2c] & 7 | (byte)((param_10 & 1) << 5));" (assignment_expression "this[0x2c] = (Sized_symbol<32>)((byte)this[0x2c] & 7 | (byte)((param_10 & 1) << 5))" (subscript_expression "this[0x2c]" identifier [ number_literal ]) = (call_expression "(Sized_symbol<32>)((byte)this[0x2c] & 7 | (byte)((param_10 & 1) << 5))" (parenthesized_expression "(Sized_symbol<32>)" ( (binary_expression "Sized_symbol<32>" (binary_expression "Sized_symbol<32" identifier < number_literal) > identifier) )) (argument_list "((byte)this[0x2c] & 7 | (byte)((param_10 & 1) << 5))" ( (binary_expression "(byte)this[0x2c] & 7 | (byte)((param_10 & 1) << 5)" (binary_expression "(byte)this[0x2c] & 7" (cast_expression "(byte)this[0x2c]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "this[0x2c]" identifier [ number_literal ])) & number_literal) | (call_expression "(byte)((param_10 & 1) << 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((param_10 & 1) << 5)" ( (binary_expression "(param_10 & 1) << 5" (parenthesized_expression "(param_10 & 1)" ( (binary_expression "param_10 & 1" identifier & number_literal) )) << number_literal) )))) )))) ;) (expression_statement "*(uint *)(this + 0x28) =\n       uVar1 & 0xffff | param_6 << 0x1c | (param_7 & 0xf) << 0x18 | (param_8 & 3) << 0x16 |\n       (param_9 & 0x3f) << 0x10;" (assignment_expression "*(uint *)(this + 0x28) =\n       uVar1 & 0xffff | param_6 << 0x1c | (param_7 & 0xf) << 0x18 | (param_8 & 3) << 0x16 |\n       (param_9 & 0x3f) << 0x10" (pointer_expression "*(uint *)(this + 0x28)" * (cast_expression "(uint *)(this + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x28)" ( (binary_expression "this + 0x28" identifier + number_literal) )))) = (binary_expression "uVar1 & 0xffff | param_6 << 0x1c | (param_7 & 0xf) << 0x18 | (param_8 & 3) << 0x16 |\n       (param_9 & 0x3f) << 0x10" (binary_expression "uVar1 & 0xffff | param_6 << 0x1c | (param_7 & 0xf) << 0x18 | (param_8 & 3) << 0x16" (binary_expression "uVar1 & 0xffff | param_6 << 0x1c | (param_7 & 0xf) << 0x18" (binary_expression "uVar1 & 0xffff | param_6 << 0x1c" (binary_expression "uVar1 & 0xffff" identifier & number_literal) | (binary_expression "param_6 << 0x1c" identifier << number_literal)) | (binary_expression "(param_7 & 0xf) << 0x18" (parenthesized_expression "(param_7 & 0xf)" ( (binary_expression "param_7 & 0xf" identifier & number_literal) )) << number_literal)) | (binary_expression "(param_8 & 3) << 0x16" (parenthesized_expression "(param_8 & 3)" ( (binary_expression "param_8 & 3" identifier & number_literal) )) << number_literal)) | (binary_expression "(param_9 & 0x3f) << 0x10" (parenthesized_expression "(param_9 & 0x3f)" ( (binary_expression "param_9 & 0x3f" identifier & number_literal) )) << number_literal))) ;) (expression_statement "*(undefined4 *)(this + 0x30) = param_3;" (assignment_expression "*(undefined4 *)(this + 0x30) = param_3" (pointer_expression "*(undefined4 *)(this + 0x30)" * (cast_expression "(undefined4 *)(this + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x30)" ( (binary_expression "this + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(ushort *)(this + 0x2a) = (ushort)uVar1 & 0x40 | 0x6102;" (assignment_expression "*(ushort *)(this + 0x2a) = (ushort)uVar1 & 0x40 | 0x6102" (pointer_expression "*(ushort *)(this + 0x2a)" * (cast_expression "(ushort *)(this + 0x2a)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x2a)" ( (binary_expression "this + 0x2a" identifier + number_literal) )))) = (binary_expression "(ushort)uVar1 & 0x40 | 0x6102" (binary_expression "(ushort)uVar1 & 0x40" (cast_expression "(ushort)uVar1" ( (type_descriptor "ushort" type_identifier) ) identifier) & number_literal) | number_literal)) ;) (expression_statement "*(undefined4 *)(this + 0x34) = param_4;" (assignment_expression "*(undefined4 *)(this + 0x34) = param_4" (pointer_expression "*(undefined4 *)(this + 0x34)" * (cast_expression "(undefined4 *)(this + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x34)" ( (binary_expression "this + 0x34" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (ms_call_modifier __thiscall) (ERROR IDENT : : IDENT < LIT > : :) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (ERROR < LIT >) (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (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 (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 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 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 IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT < LIT) > IDENT) )) (argument_list ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (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 IDENT + LIT) )))) = (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression IDENT & LIT) | (binary_expression IDENT << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (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 IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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\ngold::Sized_symbol<32>::init_constant\n          (Sized_symbol<32> *this,undefined4 param_1,undefined4 param_2,undefined4 param_3,\n          undefined4 param_4,int param_6,uint param_7,uint param_8,byte param_9,byte param_10)\n\n{\n  uint uVar1;\n  \n  uVar1 = *(uint *)(this + 0x28);\n  *(undefined4 *)this = param_1;\n  *(undefined4 *)(this + 4) = param_2;\n  *(undefined4 *)(this + 0x10) = 0;\n  *(undefined4 *)(this + 0x14) = 0;\n  *(undefined4 *)(this + 0x18) = 0xffffffff;\n  *(undefined4 *)(this + 0x1c) = 0xffffffff;\n  *(undefined4 *)(this + 0x20) = 0;\n  *(undefined4 *)(this + 0x24) = 0;\n  this[0x2c] = (Sized_symbol<32>)((byte)this[0x2c] & 7 | (byte)((param_10 & 1) << 5));\n  *(uint *)(this + 0x28) =\n       uVar1 & 0xffff | param_6 << 0x1c | (param_7 & 0xf) << 0x18 | (param_8 & 3) << 0x16 |\n       (param_9 & 0x3f) << 0x10;\n  *(undefined4 *)(this + 0x30) = param_3;\n  *(ushort *)(this + 0x2a) = (ushort)uVar1 & 0x40 | 0x6102;\n  *(undefined4 *)(this + 0x34) = param_4;\n  return;\n}" (primitive_type "void") (ms_call_modifier "__thiscall" (__thiscall "__thiscall")) (ERROR "gold::Sized_symbol<32>::" (identifier "gold") (: ":") (: ":") (identifier "Sized_symbol") (< "<") (number_literal "32") (> ">") (: ":") (: ":")) (function_declarator "init_constant\n          (Sized_symbol<32> *this,undefined4 param_1,undefined4 param_2,undefined4 param_3,\n          undefined4 param_4,int param_6,uint param_7,uint param_8,byte param_9,byte param_10)" (identifier "init_constant") (parameter_list "(Sized_symbol<32> *this,undefined4 param_1,undefined4 param_2,undefined4 param_3,\n          undefined4 param_4,int param_6,uint param_7,uint param_8,byte param_9,byte param_10)" (( "(") (parameter_declaration "Sized_symbol<32> *this" (type_identifier "Sized_symbol") (ERROR "<32>" (< "<") (number_literal "32") (> ">")) (pointer_declarator "*this" (* "*") (identifier "this"))) (, ",") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) (, ",") (parameter_declaration "int param_6" (primitive_type "int") (identifier "param_6")) (, ",") (parameter_declaration "uint param_7" (type_identifier "uint") (identifier "param_7")) (, ",") (parameter_declaration "uint param_8" (type_identifier "uint") (identifier "param_8")) (, ",") (parameter_declaration "byte param_9" (type_identifier "byte") (identifier "param_9")) (, ",") (parameter_declaration "byte param_10" (type_identifier "byte") (identifier "param_10")) () ")"))) (compound_statement "{\n  uint uVar1;\n  \n  uVar1 = *(uint *)(this + 0x28);\n  *(undefined4 *)this = param_1;\n  *(undefined4 *)(this + 4) = param_2;\n  *(undefined4 *)(this + 0x10) = 0;\n  *(undefined4 *)(this + 0x14) = 0;\n  *(undefined4 *)(this + 0x18) = 0xffffffff;\n  *(undefined4 *)(this + 0x1c) = 0xffffffff;\n  *(undefined4 *)(this + 0x20) = 0;\n  *(undefined4 *)(this + 0x24) = 0;\n  this[0x2c] = (Sized_symbol<32>)((byte)this[0x2c] & 7 | (byte)((param_10 & 1) << 5));\n  *(uint *)(this + 0x28) =\n       uVar1 & 0xffff | param_6 << 0x1c | (param_7 & 0xf) << 0x18 | (param_8 & 3) << 0x16 |\n       (param_9 & 0x3f) << 0x10;\n  *(undefined4 *)(this + 0x30) = param_3;\n  *(ushort *)(this + 0x2a) = (ushort)uVar1 & 0x40 | 0x6102;\n  *(undefined4 *)(this + 0x34) = param_4;\n  return;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (expression_statement "uVar1 = *(uint *)(this + 0x28);" (assignment_expression "uVar1 = *(uint *)(this + 0x28)" (identifier "uVar1") (= "=") (pointer_expression "*(uint *)(this + 0x28)" (* "*") (cast_expression "(uint *)(this + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x28)" (( "(") (binary_expression "this + 0x28" (identifier "this") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)this = param_1;" (assignment_expression "*(undefined4 *)this = param_1" (pointer_expression "*(undefined4 *)this" (* "*") (cast_expression "(undefined4 *)this" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "this"))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(undefined4 *)(this + 4) = param_2;" (assignment_expression "*(undefined4 *)(this + 4) = param_2" (pointer_expression "*(undefined4 *)(this + 4)" (* "*") (cast_expression "(undefined4 *)(this + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(undefined4 *)(this + 0x10) = 0;" (assignment_expression "*(undefined4 *)(this + 0x10) = 0" (pointer_expression "*(undefined4 *)(this + 0x10)" (* "*") (cast_expression "(undefined4 *)(this + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x10)" (( "(") (binary_expression "this + 0x10" (identifier "this") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(this + 0x14) = 0;" (assignment_expression "*(undefined4 *)(this + 0x14) = 0" (pointer_expression "*(undefined4 *)(this + 0x14)" (* "*") (cast_expression "(undefined4 *)(this + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x14)" (( "(") (binary_expression "this + 0x14" (identifier "this") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(this + 0x18) = 0xffffffff;" (assignment_expression "*(undefined4 *)(this + 0x18) = 0xffffffff" (pointer_expression "*(undefined4 *)(this + 0x18)" (* "*") (cast_expression "(undefined4 *)(this + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x18)" (( "(") (binary_expression "this + 0x18" (identifier "this") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "*(undefined4 *)(this + 0x1c) = 0xffffffff;" (assignment_expression "*(undefined4 *)(this + 0x1c) = 0xffffffff" (pointer_expression "*(undefined4 *)(this + 0x1c)" (* "*") (cast_expression "(undefined4 *)(this + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x1c)" (( "(") (binary_expression "this + 0x1c" (identifier "this") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "*(undefined4 *)(this + 0x20) = 0;" (assignment_expression "*(undefined4 *)(this + 0x20) = 0" (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")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(this + 0x24) = 0;" (assignment_expression "*(undefined4 *)(this + 0x24) = 0" (pointer_expression "*(undefined4 *)(this + 0x24)" (* "*") (cast_expression "(undefined4 *)(this + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x24)" (( "(") (binary_expression "this + 0x24" (identifier "this") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "this[0x2c] = (Sized_symbol<32>)((byte)this[0x2c] & 7 | (byte)((param_10 & 1) << 5));" (assignment_expression "this[0x2c] = (Sized_symbol<32>)((byte)this[0x2c] & 7 | (byte)((param_10 & 1) << 5))" (subscript_expression "this[0x2c]" (identifier "this") ([ "[") (number_literal "0x2c") (] "]")) (= "=") (call_expression "(Sized_symbol<32>)((byte)this[0x2c] & 7 | (byte)((param_10 & 1) << 5))" (parenthesized_expression "(Sized_symbol<32>)" (( "(") (binary_expression "Sized_symbol<32>" (binary_expression "Sized_symbol<32" (identifier "Sized_symbol") (< "<") (number_literal "32")) (> ">") (identifier "")) () ")")) (argument_list "((byte)this[0x2c] & 7 | (byte)((param_10 & 1) << 5))" (( "(") (binary_expression "(byte)this[0x2c] & 7 | (byte)((param_10 & 1) << 5)" (binary_expression "(byte)this[0x2c] & 7" (cast_expression "(byte)this[0x2c]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "this[0x2c]" (identifier "this") ([ "[") (number_literal "0x2c") (] "]"))) (& "&") (number_literal "7")) (| "|") (call_expression "(byte)((param_10 & 1) << 5)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((param_10 & 1) << 5)" (( "(") (binary_expression "(param_10 & 1) << 5" (parenthesized_expression "(param_10 & 1)" (( "(") (binary_expression "param_10 & 1" (identifier "param_10") (& "&") (number_literal "1")) () ")")) (<< "<<") (number_literal "5")) () ")")))) () ")")))) (; ";")) (expression_statement "*(uint *)(this + 0x28) =\n       uVar1 & 0xffff | param_6 << 0x1c | (param_7 & 0xf) << 0x18 | (param_8 & 3) << 0x16 |\n       (param_9 & 0x3f) << 0x10;" (assignment_expression "*(uint *)(this + 0x28) =\n       uVar1 & 0xffff | param_6 << 0x1c | (param_7 & 0xf) << 0x18 | (param_8 & 3) << 0x16 |\n       (param_9 & 0x3f) << 0x10" (pointer_expression "*(uint *)(this + 0x28)" (* "*") (cast_expression "(uint *)(this + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x28)" (( "(") (binary_expression "this + 0x28" (identifier "this") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (binary_expression "uVar1 & 0xffff | param_6 << 0x1c | (param_7 & 0xf) << 0x18 | (param_8 & 3) << 0x16 |\n       (param_9 & 0x3f) << 0x10" (binary_expression "uVar1 & 0xffff | param_6 << 0x1c | (param_7 & 0xf) << 0x18 | (param_8 & 3) << 0x16" (binary_expression "uVar1 & 0xffff | param_6 << 0x1c | (param_7 & 0xf) << 0x18" (binary_expression "uVar1 & 0xffff | param_6 << 0x1c" (binary_expression "uVar1 & 0xffff" (identifier "uVar1") (& "&") (number_literal "0xffff")) (| "|") (binary_expression "param_6 << 0x1c" (identifier "param_6") (<< "<<") (number_literal "0x1c"))) (| "|") (binary_expression "(param_7 & 0xf) << 0x18" (parenthesized_expression "(param_7 & 0xf)" (( "(") (binary_expression "param_7 & 0xf" (identifier "param_7") (& "&") (number_literal "0xf")) () ")")) (<< "<<") (number_literal "0x18"))) (| "|") (binary_expression "(param_8 & 3) << 0x16" (parenthesized_expression "(param_8 & 3)" (( "(") (binary_expression "param_8 & 3" (identifier "param_8") (& "&") (number_literal "3")) () ")")) (<< "<<") (number_literal "0x16"))) (| "|") (binary_expression "(param_9 & 0x3f) << 0x10" (parenthesized_expression "(param_9 & 0x3f)" (( "(") (binary_expression "param_9 & 0x3f" (identifier "param_9") (& "&") (number_literal "0x3f")) () ")")) (<< "<<") (number_literal "0x10")))) (; ";")) (expression_statement "*(undefined4 *)(this + 0x30) = param_3;" (assignment_expression "*(undefined4 *)(this + 0x30) = param_3" (pointer_expression "*(undefined4 *)(this + 0x30)" (* "*") (cast_expression "(undefined4 *)(this + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x30)" (( "(") (binary_expression "this + 0x30" (identifier "this") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (expression_statement "*(ushort *)(this + 0x2a) = (ushort)uVar1 & 0x40 | 0x6102;" (assignment_expression "*(ushort *)(this + 0x2a) = (ushort)uVar1 & 0x40 | 0x6102" (pointer_expression "*(ushort *)(this + 0x2a)" (* "*") (cast_expression "(ushort *)(this + 0x2a)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x2a)" (( "(") (binary_expression "this + 0x2a" (identifier "this") (+ "+") (number_literal "0x2a")) () ")")))) (= "=") (binary_expression "(ushort)uVar1 & 0x40 | 0x6102" (binary_expression "(ushort)uVar1 & 0x40" (cast_expression "(ushort)uVar1" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "uVar1")) (& "&") (number_literal "0x40")) (| "|") (number_literal "0x6102"))) (; ";")) (expression_statement "*(undefined4 *)(this + 0x34) = param_4;" (assignment_expression "*(undefined4 *)(this + 0x34) = param_4" (pointer_expression "*(undefined4 *)(this + 0x34)" (* "*") (cast_expression "(undefined4 *)(this + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x34)" (( "(") (binary_expression "this + 0x34" (identifier "this") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) (ms_call_modifier) (ERROR (identifier) (identifier) (number_literal)) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) (ERROR (number_literal)) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (identifier))) (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: (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: (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: (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: (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: (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: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (call_expression function: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (MISSING identifier))) arguments: (argument_list (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (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: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (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: (identifier) right: (number_literal))))) right: (identifier))) (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: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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: (identifier) right: (number_literal))))) right: (identifier))) (return_statement))))

/* gold::Sized_symbol<32>::MASKED(char const*, char const*, unsigned int, unsigned int,
   elfcpp::STT, elfcpp::STB, elfcpp::STV, unsigned char, bool) */

void __thiscall
gold::Sized_symbol<32>::MASKED
          (Sized_symbol<32> *this,undefined4 param_1,undefined4 param_2,undefined4 param_3,
          undefined4 param_4,int param_6,uint param_7,uint param_8,byte param_9,byte param_10)

{
  uint uVar1;
  
  uVar1 = *(uint *)(this + 0x28);
  *(undefined4 *)this = param_1;
  *(undefined4 *)(this + 4) = param_2;
  *(undefined4 *)(this + 0x10) = 0;
  *(undefined4 *)(this + 0x14) = 0;
  *(undefined4 *)(this + 0x18) = 0xffffffff;
  *(undefined4 *)(this + 0x1c) = 0xffffffff;
  *(undefined4 *)(this + 0x20) = 0;
  *(undefined4 *)(this + 0x24) = 0;
  this[0x2c] = (Sized_symbol<32>)((byte)this[0x2c] & 7 | (byte)((param_10 & 1) << 5));
  *(uint *)(this + 0x28) =
       uVar1 & 0xffff | param_6 << 0x1c | (param_7 & 0xf) << 0x18 | (param_8 & 3) << 0x16 |
       (param_9 & 0x3f) << 0x10;
  *(undefined4 *)(this + 0x30) = param_3;
  *(ushort *)(this + 0x2a) = (ushort)uVar1 & 0x40 | 0x6102;
  *(undefined4 *)(this + 0x34) = param_4;
  return;
}

