
/* WARNING: Enum "STB": Some values do not have unique names */
/* WARNING: Enum "STT": Some values do not have unique names */
/* DWARF original prototype: void init_constant(Sized_symbol<64> * 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<64>::init_constant
          (Sized_symbol<64> *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;
  byte in_stack_00000033;
  
  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).field_0x2c = bVar1 & 7 | (byte)((in_stack_00000033 & 1) << 5);
  (this->super_Symbol).got_offsets_.got_offset_ = 0;
  *(STV *)&(this->super_Symbol).field_0x28 =
       uVar2 & 0xffff | binding << 0x1c | (visibility & 0xf) << 0x18 | (nonvis & 3) << 0x16 |
       (is_predefined & 0x3f) << 0x10;
  *(undefined4 *)((int)&this->value_ + 4) = value._4_4_;
  *(ushort *)&(this->super_Symbol).field_0x2a = (ushort)uVar2 & 0x40 | 0x6102;
  (this->super_Symbol).got_offsets_.got_next_ = (Got_offset_list *)0x0;
  *(undefined4 *)&this->value_ = value._0_4_;
  this->symsize_ = symsize;
  return;
}



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

void gold::Sized_symbol<64>::init_constant
               (undefined4 *param_1,undefined4 param_2,undefined4 param_3_00,undefined4 param_4_00,
               undefined4 param_3,undefined4 param_6,undefined4 param_4,undefined4 param_8,
               int param_9,uint param_10,uint param_11,byte param_12,byte param_13)

{
  uint uVar1;
  
  uVar1 = param_1[10];
  *param_1 = param_2;
  param_1[1] = param_3_00;
  param_1[4] = 0;
  param_1[5] = 0;
  param_1[6] = 0xffffffff;
  param_1[7] = 0xffffffff;
  *(byte *)(param_1 + 0xb) = *(byte *)(param_1 + 0xb) & 7 | (byte)((param_13 & 1) << 5);
  param_1[8] = 0;
  param_1[10] = uVar1 & 0xffff | param_9 << 0x1c | (param_10 & 0xf) << 0x18 | (param_11 & 3) << 0x16
                | (param_12 & 0x3f) << 0x10;
  param_1[0xd] = param_6;
  *(ushort *)((int)param_1 + 0x2a) = (ushort)uVar1 & 0x40 | 0x6102;
  param_1[9] = 0;
  param_1[0xc] = param_3;
  param_1[0xf] = param_8;
  param_1[0xe] = param_4;
  return;
}


lw v0,0x28(a0)
li a3,-0x1
lw v1,0x20(sp)
lw t0,0x24(sp)
sw a1,0x0(a0)
ins v0,v1,0x1c,0x4
lw a1,0x28(sp)
lbu v1,0x2c(a0)
ins v0,t0,0x18,0x4
sw a2,0x4(a0)
sw zero,0x10(a0)
ins v0,a1,0x16,0x2
lbu a1,0x33(sp)
andi v1,v1,0x27
sw zero,0x14(a0)
sw a3,0x18(a0)
ins v1,a1,0x5,0x1
lbu a1,0x2f(sp)
sw a3,0x1c(a0)
sb v1,0x2c(a0)
ins v0,a1,0x10,0x6
lw v1,0x14(sp)
sw zero,0x20(a0)
andi a1,v0,0x40
sw v0,0x28(a0)
ori v0,a1,0x6102
sw v1,0x34(a0)
sh v0,0x2a(a0)
lw v0,0x10(sp)
lw v1,0x1c(sp)
sw zero,0x24(a0)
sw v0,0x30(a0)
sw v1,0x3c(a0)
lw v0,0x18(sp)
jr ra
_sw v0,0x38(a0)
(translation_unit "/* gold::Sized_symbol<64>::init_constant(char const*, char const*, unsigned long long, unsigned long\n   long, elfcpp::STT, elfcpp::STB, elfcpp::STV, unsigned char, bool) */\n\nvoid gold::Sized_symbol<64>::init_constant\n               (undefined4 *param_1,undefined4 param_2,undefined4 param_3_00,undefined4 param_4_00,\n               undefined4 param_3,undefined4 param_6,undefined4 param_4,undefined4 param_8,\n               int param_9,uint param_10,uint param_11,byte param_12,byte param_13)\n\n{\n  uint uVar1;\n  \n  uVar1 = param_1[10];\n  *param_1 = param_2;\n  param_1[1] = param_3_00;\n  param_1[4] = 0;\n  param_1[5] = 0;\n  param_1[6] = 0xffffffff;\n  param_1[7] = 0xffffffff;\n  *(byte *)(param_1 + 0xb) = *(byte *)(param_1 + 0xb) & 7 | (byte)((param_13 & 1) << 5);\n  param_1[8] = 0;\n  param_1[10] = uVar1 & 0xffff | param_9 << 0x1c | (param_10 & 0xf) << 0x18 | (param_11 & 3) << 0x16\n                | (param_12 & 0x3f) << 0x10;\n  param_1[0xd] = param_6;\n  *(ushort *)((int)param_1 + 0x2a) = (ushort)uVar1 & 0x40 | 0x6102;\n  param_1[9] = 0;\n  param_1[0xc] = param_3;\n  param_1[0xf] = param_8;\n  param_1[0xe] = param_4;\n  return;\n}\n\n" comment (function_definition "void gold::Sized_symbol<64>::init_constant\n               (undefined4 *param_1,undefined4 param_2,undefined4 param_3_00,undefined4 param_4_00,\n               undefined4 param_3,undefined4 param_6,undefined4 param_4,undefined4 param_8,\n               int param_9,uint param_10,uint param_11,byte param_12,byte param_13)\n\n{\n  uint uVar1;\n  \n  uVar1 = param_1[10];\n  *param_1 = param_2;\n  param_1[1] = param_3_00;\n  param_1[4] = 0;\n  param_1[5] = 0;\n  param_1[6] = 0xffffffff;\n  param_1[7] = 0xffffffff;\n  *(byte *)(param_1 + 0xb) = *(byte *)(param_1 + 0xb) & 7 | (byte)((param_13 & 1) << 5);\n  param_1[8] = 0;\n  param_1[10] = uVar1 & 0xffff | param_9 << 0x1c | (param_10 & 0xf) << 0x18 | (param_11 & 3) << 0x16\n                | (param_12 & 0x3f) << 0x10;\n  param_1[0xd] = param_6;\n  *(ushort *)((int)param_1 + 0x2a) = (ushort)uVar1 & 0x40 | 0x6102;\n  param_1[9] = 0;\n  param_1[0xc] = param_3;\n  param_1[0xf] = param_8;\n  param_1[0xe] = param_4;\n  return;\n}" primitive_type (ERROR "gold::Sized_symbol<64>::" identifier : : identifier < number_literal > : :) (function_declarator "init_constant\n               (undefined4 *param_1,undefined4 param_2,undefined4 param_3_00,undefined4 param_4_00,\n               undefined4 param_3,undefined4 param_6,undefined4 param_4,undefined4 param_8,\n               int param_9,uint param_10,uint param_11,byte param_12,byte param_13)" identifier (parameter_list "(undefined4 *param_1,undefined4 param_2,undefined4 param_3_00,undefined4 param_4_00,\n               undefined4 param_3,undefined4 param_6,undefined4 param_4,undefined4 param_8,\n               int param_9,uint param_10,uint param_11,byte param_12,byte param_13)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3_00" type_identifier identifier) , (parameter_declaration "undefined4 param_4_00" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_8" type_identifier identifier) , (parameter_declaration "int param_9" primitive_type identifier) , (parameter_declaration "uint param_10" type_identifier identifier) , (parameter_declaration "uint param_11" type_identifier identifier) , (parameter_declaration "byte param_12" type_identifier identifier) , (parameter_declaration "byte param_13" type_identifier identifier) ))) (compound_statement "{\n  uint uVar1;\n  \n  uVar1 = param_1[10];\n  *param_1 = param_2;\n  param_1[1] = param_3_00;\n  param_1[4] = 0;\n  param_1[5] = 0;\n  param_1[6] = 0xffffffff;\n  param_1[7] = 0xffffffff;\n  *(byte *)(param_1 + 0xb) = *(byte *)(param_1 + 0xb) & 7 | (byte)((param_13 & 1) << 5);\n  param_1[8] = 0;\n  param_1[10] = uVar1 & 0xffff | param_9 << 0x1c | (param_10 & 0xf) << 0x18 | (param_11 & 3) << 0x16\n                | (param_12 & 0x3f) << 0x10;\n  param_1[0xd] = param_6;\n  *(ushort *)((int)param_1 + 0x2a) = (ushort)uVar1 & 0x40 | 0x6102;\n  param_1[9] = 0;\n  param_1[0xc] = param_3;\n  param_1[0xf] = param_8;\n  param_1[0xe] = param_4;\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (expression_statement "uVar1 = param_1[10];" (assignment_expression "uVar1 = param_1[10]" identifier = (subscript_expression "param_1[10]" identifier [ number_literal ])) ;) (expression_statement "*param_1 = param_2;" (assignment_expression "*param_1 = param_2" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[1] = param_3_00;" (assignment_expression "param_1[1] = param_3_00" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[4] = 0;" (assignment_expression "param_1[4] = 0" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[5] = 0;" (assignment_expression "param_1[5] = 0" (subscript_expression "param_1[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[6] = 0xffffffff;" (assignment_expression "param_1[6] = 0xffffffff" (subscript_expression "param_1[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[7] = 0xffffffff;" (assignment_expression "param_1[7] = 0xffffffff" (subscript_expression "param_1[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(param_1 + 0xb) = *(byte *)(param_1 + 0xb) & 7 | (byte)((param_13 & 1) << 5);" (assignment_expression "*(byte *)(param_1 + 0xb) = *(byte *)(param_1 + 0xb) & 7 | (byte)((param_13 & 1) << 5)" (pointer_expression "*(byte *)(param_1 + 0xb)" * (cast_expression "(byte *)(param_1 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb)" ( (binary_expression "param_1 + 0xb" identifier + number_literal) )))) = (binary_expression "*(byte *)(param_1 + 0xb) & 7 | (byte)((param_13 & 1) << 5)" (binary_expression "*(byte *)(param_1 + 0xb) & 7" (pointer_expression "*(byte *)(param_1 + 0xb)" * (cast_expression "(byte *)(param_1 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb)" ( (binary_expression "param_1 + 0xb" identifier + number_literal) )))) & number_literal) | (call_expression "(byte)((param_13 & 1) << 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((param_13 & 1) << 5)" ( (binary_expression "(param_13 & 1) << 5" (parenthesized_expression "(param_13 & 1)" ( (binary_expression "param_13 & 1" identifier & number_literal) )) << number_literal) ))))) ;) (expression_statement "param_1[8] = 0;" (assignment_expression "param_1[8] = 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[10] = uVar1 & 0xffff | param_9 << 0x1c | (param_10 & 0xf) << 0x18 | (param_11 & 3) << 0x16\n                | (param_12 & 0x3f) << 0x10;" (assignment_expression "param_1[10] = uVar1 & 0xffff | param_9 << 0x1c | (param_10 & 0xf) << 0x18 | (param_11 & 3) << 0x16\n                | (param_12 & 0x3f) << 0x10" (subscript_expression "param_1[10]" identifier [ number_literal ]) = (binary_expression "uVar1 & 0xffff | param_9 << 0x1c | (param_10 & 0xf) << 0x18 | (param_11 & 3) << 0x16\n                | (param_12 & 0x3f) << 0x10" (binary_expression "uVar1 & 0xffff | param_9 << 0x1c | (param_10 & 0xf) << 0x18 | (param_11 & 3) << 0x16" (binary_expression "uVar1 & 0xffff | param_9 << 0x1c | (param_10 & 0xf) << 0x18" (binary_expression "uVar1 & 0xffff | param_9 << 0x1c" (binary_expression "uVar1 & 0xffff" identifier & number_literal) | (binary_expression "param_9 << 0x1c" identifier << number_literal)) | (binary_expression "(param_10 & 0xf) << 0x18" (parenthesized_expression "(param_10 & 0xf)" ( (binary_expression "param_10 & 0xf" identifier & number_literal) )) << number_literal)) | (binary_expression "(param_11 & 3) << 0x16" (parenthesized_expression "(param_11 & 3)" ( (binary_expression "param_11 & 3" identifier & number_literal) )) << number_literal)) | (binary_expression "(param_12 & 0x3f) << 0x10" (parenthesized_expression "(param_12 & 0x3f)" ( (binary_expression "param_12 & 0x3f" identifier & number_literal) )) << number_literal))) ;) (expression_statement "param_1[0xd] = param_6;" (assignment_expression "param_1[0xd] = param_6" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(ushort *)((int)param_1 + 0x2a) = (ushort)uVar1 & 0x40 | 0x6102;" (assignment_expression "*(ushort *)((int)param_1 + 0x2a) = (ushort)uVar1 & 0x40 | 0x6102" (pointer_expression "*(ushort *)((int)param_1 + 0x2a)" * (cast_expression "(ushort *)((int)param_1 + 0x2a)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x2a)" ( (binary_expression "(int)param_1 + 0x2a" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) 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 "param_1[9] = 0;" (assignment_expression "param_1[9] = 0" (subscript_expression "param_1[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0xc] = param_3;" (assignment_expression "param_1[0xc] = param_3" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[0xf] = param_8;" (assignment_expression "param_1[0xf] = param_8" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[0xe] = param_4;" (assignment_expression "param_1[0xe] = param_4" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Enum "STB": Some values do not have unique names */\n/* WARNING: Enum "STT": Some values do not have unique names */\n/* DWARF original prototype: void init_constant(Sized_symbol<64> * 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<64>::init_constant\n          (Sized_symbol<64> *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  byte in_stack_00000033;\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).field_0x2c = bVar1 & 7 | (byte)((in_stack_00000033 & 1) << 5);\n  (this->super_Symbol).got_offsets_.got_offset_ = 0;\n  *(STV *)&(this->super_Symbol).field_0x28 =\n       uVar2 & 0xffff | binding << 0x1c | (visibility & 0xf) << 0x18 | (nonvis & 3) << 0x16 |\n       (is_predefined & 0x3f) << 0x10;\n  *(undefined4 *)((int)&this->value_ + 4) = value._4_4_;\n  *(ushort *)&(this->super_Symbol).field_0x2a = (ushort)uVar2 & 0x40 | 0x6102;\n  (this->super_Symbol).got_offsets_.got_next_ = (Got_offset_list *)0x0;\n  *(undefined4 *)&this->value_ = value._0_4_;\n  this->symsize_ = symsize;\n  return;\n}\n\n" comment comment comment (function_definition "void __thiscall\ngold::Sized_symbol<64>::init_constant\n          (Sized_symbol<64> *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  byte in_stack_00000033;\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).field_0x2c = bVar1 & 7 | (byte)((in_stack_00000033 & 1) << 5);\n  (this->super_Symbol).got_offsets_.got_offset_ = 0;\n  *(STV *)&(this->super_Symbol).field_0x28 =\n       uVar2 & 0xffff | binding << 0x1c | (visibility & 0xf) << 0x18 | (nonvis & 3) << 0x16 |\n       (is_predefined & 0x3f) << 0x10;\n  *(undefined4 *)((int)&this->value_ + 4) = value._4_4_;\n  *(ushort *)&(this->super_Symbol).field_0x2a = (ushort)uVar2 & 0x40 | 0x6102;\n  (this->super_Symbol).got_offsets_.got_next_ = (Got_offset_list *)0x0;\n  *(undefined4 *)&this->value_ = value._0_4_;\n  this->symsize_ = symsize;\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Sized_symbol<64>::" identifier : : identifier < number_literal > : :) (function_declarator "init_constant\n          (Sized_symbol<64> *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<64> *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<64> *this" type_identifier (ERROR "<64>" < 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  byte in_stack_00000033;\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).field_0x2c = bVar1 & 7 | (byte)((in_stack_00000033 & 1) << 5);\n  (this->super_Symbol).got_offsets_.got_offset_ = 0;\n  *(STV *)&(this->super_Symbol).field_0x28 =\n       uVar2 & 0xffff | binding << 0x1c | (visibility & 0xf) << 0x18 | (nonvis & 3) << 0x16 |\n       (is_predefined & 0x3f) << 0x10;\n  *(undefined4 *)((int)&this->value_ + 4) = value._4_4_;\n  *(ushort *)&(this->super_Symbol).field_0x2a = (ushort)uVar2 & 0x40 | 0x6102;\n  (this->super_Symbol).got_offsets_.got_next_ = (Got_offset_list *)0x0;\n  *(undefined4 *)&this->value_ = value._0_4_;\n  this->symsize_ = symsize;\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "byte in_stack_00000033;" 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).field_0x2c = bVar1 & 7 | (byte)((in_stack_00000033 & 1) << 5);" (assignment_expression "(this->super_Symbol).field_0x2c = bVar1 & 7 | (byte)((in_stack_00000033 & 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)((in_stack_00000033 & 1) << 5)" (binary_expression "bVar1 & 7" identifier & number_literal) | (call_expression "(byte)((in_stack_00000033 & 1) << 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((in_stack_00000033 & 1) << 5)" ( (binary_expression "(in_stack_00000033 & 1) << 5" (parenthesized_expression "(in_stack_00000033 & 1)" ( (binary_expression "in_stack_00000033 & 1" identifier & number_literal) )) << 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 "*(STV *)&(this->super_Symbol).field_0x28 =\n       uVar2 & 0xffff | binding << 0x1c | (visibility & 0xf) << 0x18 | (nonvis & 3) << 0x16 |\n       (is_predefined & 0x3f) << 0x10;" (assignment_expression "*(STV *)&(this->super_Symbol).field_0x28 =\n       uVar2 & 0xffff | binding << 0x1c | (visibility & 0xf) << 0x18 | (nonvis & 3) << 0x16 |\n       (is_predefined & 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 | binding << 0x1c | (visibility & 0xf) << 0x18 | (nonvis & 3) << 0x16 |\n       (is_predefined & 0x3f) << 0x10" (binary_expression "uVar2 & 0xffff | binding << 0x1c | (visibility & 0xf) << 0x18 | (nonvis & 3) << 0x16" (binary_expression "uVar2 & 0xffff | binding << 0x1c | (visibility & 0xf) << 0x18" (binary_expression "uVar2 & 0xffff | binding << 0x1c" (binary_expression "uVar2 & 0xffff" identifier & number_literal) | (binary_expression "binding << 0x1c" identifier << number_literal)) | (binary_expression "(visibility & 0xf) << 0x18" (parenthesized_expression "(visibility & 0xf)" ( (binary_expression "visibility & 0xf" identifier & number_literal) )) << number_literal)) | (binary_expression "(nonvis & 3) << 0x16" (parenthesized_expression "(nonvis & 3)" ( (binary_expression "nonvis & 3" identifier & number_literal) )) << number_literal)) | (binary_expression "(is_predefined & 0x3f) << 0x10" (parenthesized_expression "(is_predefined & 0x3f)" ( (binary_expression "is_predefined & 0x3f" identifier & number_literal) )) << number_literal))) ;) (expression_statement "*(undefined4 *)((int)&this->value_ + 4) = value._4_4_;" (assignment_expression "*(undefined4 *)((int)&this->value_ + 4) = value._4_4_" (pointer_expression "*(undefined4 *)((int)&this->value_ + 4)" * (cast_expression "(undefined4 *)((int)&this->value_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&this->value_ + 4)" ( (binary_expression "(int)&this->value_ + 4" (cast_expression "(int)&this->value_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&this->value_" & (field_expression "this->value_" identifier -> field_identifier))) + number_literal) )))) = (field_expression "value._4_4_" identifier . field_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->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 "*(undefined4 *)&this->value_ = value._0_4_;" (assignment_expression "*(undefined4 *)&this->value_ = value._0_4_" (pointer_expression "*(undefined4 *)&this->value_" * (cast_expression "(undefined4 *)&this->value_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->value_" & (field_expression "this->value_" identifier -> field_identifier)))) = (field_expression "value._0_4_" identifier . field_identifier)) ;) (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 gold::Sized_symbol<64>::init_constant\n               (undefined4 *param_1,undefined4 param_2,undefined4 param_3_00,undefined4 param_4_00,\n               undefined4 param_3,undefined4 param_6,undefined4 param_4,undefined4 param_8,\n               int param_9,uint param_10,uint param_11,byte param_12,byte param_13)\n\n{\n  uint uVar1;\n  \n  uVar1 = param_1[10];\n  *param_1 = param_2;\n  param_1[1] = param_3_00;\n  param_1[4] = 0;\n  param_1[5] = 0;\n  param_1[6] = 0xffffffff;\n  param_1[7] = 0xffffffff;\n  *(byte *)(param_1 + 0xb) = *(byte *)(param_1 + 0xb) & 7 | (byte)((param_13 & 1) << 5);\n  param_1[8] = 0;\n  param_1[10] = uVar1 & 0xffff | param_9 << 0x1c | (param_10 & 0xf) << 0x18 | (param_11 & 3) << 0x16\n                | (param_12 & 0x3f) << 0x10;\n  param_1[0xd] = param_6;\n  *(ushort *)((int)param_1 + 0x2a) = (ushort)uVar1 & 0x40 | 0x6102;\n  param_1[9] = 0;\n  param_1[0xc] = param_3;\n  param_1[0xf] = param_8;\n  param_1[0xe] = param_4;\n  return;\n}\n\n" (function_definition "void gold::Sized_symbol<64>::init_constant\n               (undefined4 *param_1,undefined4 param_2,undefined4 param_3_00,undefined4 param_4_00,\n               undefined4 param_3,undefined4 param_6,undefined4 param_4,undefined4 param_8,\n               int param_9,uint param_10,uint param_11,byte param_12,byte param_13)\n\n{\n  uint uVar1;\n  \n  uVar1 = param_1[10];\n  *param_1 = param_2;\n  param_1[1] = param_3_00;\n  param_1[4] = 0;\n  param_1[5] = 0;\n  param_1[6] = 0xffffffff;\n  param_1[7] = 0xffffffff;\n  *(byte *)(param_1 + 0xb) = *(byte *)(param_1 + 0xb) & 7 | (byte)((param_13 & 1) << 5);\n  param_1[8] = 0;\n  param_1[10] = uVar1 & 0xffff | param_9 << 0x1c | (param_10 & 0xf) << 0x18 | (param_11 & 3) << 0x16\n                | (param_12 & 0x3f) << 0x10;\n  param_1[0xd] = param_6;\n  *(ushort *)((int)param_1 + 0x2a) = (ushort)uVar1 & 0x40 | 0x6102;\n  param_1[9] = 0;\n  param_1[0xc] = param_3;\n  param_1[0xf] = param_8;\n  param_1[0xe] = param_4;\n  return;\n}" primitive_type (ERROR "gold::Sized_symbol<64>::" identifier : : identifier < number_literal > : :) (function_declarator "init_constant\n               (undefined4 *param_1,undefined4 param_2,undefined4 param_3_00,undefined4 param_4_00,\n               undefined4 param_3,undefined4 param_6,undefined4 param_4,undefined4 param_8,\n               int param_9,uint param_10,uint param_11,byte param_12,byte param_13)" identifier (parameter_list "(undefined4 *param_1,undefined4 param_2,undefined4 param_3_00,undefined4 param_4_00,\n               undefined4 param_3,undefined4 param_6,undefined4 param_4,undefined4 param_8,\n               int param_9,uint param_10,uint param_11,byte param_12,byte param_13)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3_00" type_identifier identifier) , (parameter_declaration "undefined4 param_4_00" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_8" type_identifier identifier) , (parameter_declaration "int param_9" primitive_type identifier) , (parameter_declaration "uint param_10" type_identifier identifier) , (parameter_declaration "uint param_11" type_identifier identifier) , (parameter_declaration "byte param_12" type_identifier identifier) , (parameter_declaration "byte param_13" type_identifier identifier) ))) (compound_statement "{\n  uint uVar1;\n  \n  uVar1 = param_1[10];\n  *param_1 = param_2;\n  param_1[1] = param_3_00;\n  param_1[4] = 0;\n  param_1[5] = 0;\n  param_1[6] = 0xffffffff;\n  param_1[7] = 0xffffffff;\n  *(byte *)(param_1 + 0xb) = *(byte *)(param_1 + 0xb) & 7 | (byte)((param_13 & 1) << 5);\n  param_1[8] = 0;\n  param_1[10] = uVar1 & 0xffff | param_9 << 0x1c | (param_10 & 0xf) << 0x18 | (param_11 & 3) << 0x16\n                | (param_12 & 0x3f) << 0x10;\n  param_1[0xd] = param_6;\n  *(ushort *)((int)param_1 + 0x2a) = (ushort)uVar1 & 0x40 | 0x6102;\n  param_1[9] = 0;\n  param_1[0xc] = param_3;\n  param_1[0xf] = param_8;\n  param_1[0xe] = param_4;\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (expression_statement "uVar1 = param_1[10];" (assignment_expression "uVar1 = param_1[10]" identifier = (subscript_expression "param_1[10]" identifier [ number_literal ])) ;) (expression_statement "*param_1 = param_2;" (assignment_expression "*param_1 = param_2" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[1] = param_3_00;" (assignment_expression "param_1[1] = param_3_00" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[4] = 0;" (assignment_expression "param_1[4] = 0" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[5] = 0;" (assignment_expression "param_1[5] = 0" (subscript_expression "param_1[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[6] = 0xffffffff;" (assignment_expression "param_1[6] = 0xffffffff" (subscript_expression "param_1[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[7] = 0xffffffff;" (assignment_expression "param_1[7] = 0xffffffff" (subscript_expression "param_1[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(param_1 + 0xb) = *(byte *)(param_1 + 0xb) & 7 | (byte)((param_13 & 1) << 5);" (assignment_expression "*(byte *)(param_1 + 0xb) = *(byte *)(param_1 + 0xb) & 7 | (byte)((param_13 & 1) << 5)" (pointer_expression "*(byte *)(param_1 + 0xb)" * (cast_expression "(byte *)(param_1 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb)" ( (binary_expression "param_1 + 0xb" identifier + number_literal) )))) = (binary_expression "*(byte *)(param_1 + 0xb) & 7 | (byte)((param_13 & 1) << 5)" (binary_expression "*(byte *)(param_1 + 0xb) & 7" (pointer_expression "*(byte *)(param_1 + 0xb)" * (cast_expression "(byte *)(param_1 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb)" ( (binary_expression "param_1 + 0xb" identifier + number_literal) )))) & number_literal) | (call_expression "(byte)((param_13 & 1) << 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((param_13 & 1) << 5)" ( (binary_expression "(param_13 & 1) << 5" (parenthesized_expression "(param_13 & 1)" ( (binary_expression "param_13 & 1" identifier & number_literal) )) << number_literal) ))))) ;) (expression_statement "param_1[8] = 0;" (assignment_expression "param_1[8] = 0" (subscript_expression "param_1[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[10] = uVar1 & 0xffff | param_9 << 0x1c | (param_10 & 0xf) << 0x18 | (param_11 & 3) << 0x16\n                | (param_12 & 0x3f) << 0x10;" (assignment_expression "param_1[10] = uVar1 & 0xffff | param_9 << 0x1c | (param_10 & 0xf) << 0x18 | (param_11 & 3) << 0x16\n                | (param_12 & 0x3f) << 0x10" (subscript_expression "param_1[10]" identifier [ number_literal ]) = (binary_expression "uVar1 & 0xffff | param_9 << 0x1c | (param_10 & 0xf) << 0x18 | (param_11 & 3) << 0x16\n                | (param_12 & 0x3f) << 0x10" (binary_expression "uVar1 & 0xffff | param_9 << 0x1c | (param_10 & 0xf) << 0x18 | (param_11 & 3) << 0x16" (binary_expression "uVar1 & 0xffff | param_9 << 0x1c | (param_10 & 0xf) << 0x18" (binary_expression "uVar1 & 0xffff | param_9 << 0x1c" (binary_expression "uVar1 & 0xffff" identifier & number_literal) | (binary_expression "param_9 << 0x1c" identifier << number_literal)) | (binary_expression "(param_10 & 0xf) << 0x18" (parenthesized_expression "(param_10 & 0xf)" ( (binary_expression "param_10 & 0xf" identifier & number_literal) )) << number_literal)) | (binary_expression "(param_11 & 3) << 0x16" (parenthesized_expression "(param_11 & 3)" ( (binary_expression "param_11 & 3" identifier & number_literal) )) << number_literal)) | (binary_expression "(param_12 & 0x3f) << 0x10" (parenthesized_expression "(param_12 & 0x3f)" ( (binary_expression "param_12 & 0x3f" identifier & number_literal) )) << number_literal))) ;) (expression_statement "param_1[0xd] = param_6;" (assignment_expression "param_1[0xd] = param_6" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(ushort *)((int)param_1 + 0x2a) = (ushort)uVar1 & 0x40 | 0x6102;" (assignment_expression "*(ushort *)((int)param_1 + 0x2a) = (ushort)uVar1 & 0x40 | 0x6102" (pointer_expression "*(ushort *)((int)param_1 + 0x2a)" * (cast_expression "(ushort *)((int)param_1 + 0x2a)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x2a)" ( (binary_expression "(int)param_1 + 0x2a" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) 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 "param_1[9] = 0;" (assignment_expression "param_1[9] = 0" (subscript_expression "param_1[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0xc] = param_3;" (assignment_expression "param_1[0xc] = param_3" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[0xf] = param_8;" (assignment_expression "param_1[0xf] = param_8" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[0xe] = param_4;" (assignment_expression "param_1[0xe] = param_4" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT : : IDENT < LIT > : :) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (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) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) | LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (return_statement return ;) })))
(function_definition "void gold::Sized_symbol<64>::init_constant\n               (undefined4 *param_1,undefined4 param_2,undefined4 param_3_00,undefined4 param_4_00,\n               undefined4 param_3,undefined4 param_6,undefined4 param_4,undefined4 param_8,\n               int param_9,uint param_10,uint param_11,byte param_12,byte param_13)\n\n{\n  uint uVar1;\n  \n  uVar1 = param_1[10];\n  *param_1 = param_2;\n  param_1[1] = param_3_00;\n  param_1[4] = 0;\n  param_1[5] = 0;\n  param_1[6] = 0xffffffff;\n  param_1[7] = 0xffffffff;\n  *(byte *)(param_1 + 0xb) = *(byte *)(param_1 + 0xb) & 7 | (byte)((param_13 & 1) << 5);\n  param_1[8] = 0;\n  param_1[10] = uVar1 & 0xffff | param_9 << 0x1c | (param_10 & 0xf) << 0x18 | (param_11 & 3) << 0x16\n                | (param_12 & 0x3f) << 0x10;\n  param_1[0xd] = param_6;\n  *(ushort *)((int)param_1 + 0x2a) = (ushort)uVar1 & 0x40 | 0x6102;\n  param_1[9] = 0;\n  param_1[0xc] = param_3;\n  param_1[0xf] = param_8;\n  param_1[0xe] = param_4;\n  return;\n}" (primitive_type "void") (ERROR "gold::Sized_symbol<64>::" (identifier "gold") (: ":") (: ":") (identifier "Sized_symbol") (< "<") (number_literal "64") (> ">") (: ":") (: ":")) (function_declarator "init_constant\n               (undefined4 *param_1,undefined4 param_2,undefined4 param_3_00,undefined4 param_4_00,\n               undefined4 param_3,undefined4 param_6,undefined4 param_4,undefined4 param_8,\n               int param_9,uint param_10,uint param_11,byte param_12,byte param_13)" (identifier "init_constant") (parameter_list "(undefined4 *param_1,undefined4 param_2,undefined4 param_3_00,undefined4 param_4_00,\n               undefined4 param_3,undefined4 param_6,undefined4 param_4,undefined4 param_8,\n               int param_9,uint param_10,uint param_11,byte param_12,byte param_13)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3_00" (type_identifier "undefined4") (identifier "param_3_00")) (, ",") (parameter_declaration "undefined4 param_4_00" (type_identifier "undefined4") (identifier "param_4_00")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_6" (type_identifier "undefined4") (identifier "param_6")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) (, ",") (parameter_declaration "undefined4 param_8" (type_identifier "undefined4") (identifier "param_8")) (, ",") (parameter_declaration "int param_9" (primitive_type "int") (identifier "param_9")) (, ",") (parameter_declaration "uint param_10" (type_identifier "uint") (identifier "param_10")) (, ",") (parameter_declaration "uint param_11" (type_identifier "uint") (identifier "param_11")) (, ",") (parameter_declaration "byte param_12" (type_identifier "byte") (identifier "param_12")) (, ",") (parameter_declaration "byte param_13" (type_identifier "byte") (identifier "param_13")) () ")"))) (compound_statement "{\n  uint uVar1;\n  \n  uVar1 = param_1[10];\n  *param_1 = param_2;\n  param_1[1] = param_3_00;\n  param_1[4] = 0;\n  param_1[5] = 0;\n  param_1[6] = 0xffffffff;\n  param_1[7] = 0xffffffff;\n  *(byte *)(param_1 + 0xb) = *(byte *)(param_1 + 0xb) & 7 | (byte)((param_13 & 1) << 5);\n  param_1[8] = 0;\n  param_1[10] = uVar1 & 0xffff | param_9 << 0x1c | (param_10 & 0xf) << 0x18 | (param_11 & 3) << 0x16\n                | (param_12 & 0x3f) << 0x10;\n  param_1[0xd] = param_6;\n  *(ushort *)((int)param_1 + 0x2a) = (ushort)uVar1 & 0x40 | 0x6102;\n  param_1[9] = 0;\n  param_1[0xc] = param_3;\n  param_1[0xf] = param_8;\n  param_1[0xe] = param_4;\n  return;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (expression_statement "uVar1 = param_1[10];" (assignment_expression "uVar1 = param_1[10]" (identifier "uVar1") (= "=") (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]"))) (; ";")) (expression_statement "*param_1 = param_2;" (assignment_expression "*param_1 = param_2" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "param_2")) (; ";")) (expression_statement "param_1[1] = param_3_00;" (assignment_expression "param_1[1] = param_3_00" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "param_3_00")) (; ";")) (expression_statement "param_1[4] = 0;" (assignment_expression "param_1[4] = 0" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[5] = 0;" (assignment_expression "param_1[5] = 0" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[6] = 0xffffffff;" (assignment_expression "param_1[6] = 0xffffffff" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "param_1[7] = 0xffffffff;" (assignment_expression "param_1[7] = 0xffffffff" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "*(byte *)(param_1 + 0xb) = *(byte *)(param_1 + 0xb) & 7 | (byte)((param_13 & 1) << 5);" (assignment_expression "*(byte *)(param_1 + 0xb) = *(byte *)(param_1 + 0xb) & 7 | (byte)((param_13 & 1) << 5)" (pointer_expression "*(byte *)(param_1 + 0xb)" (* "*") (cast_expression "(byte *)(param_1 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xb)" (( "(") (binary_expression "param_1 + 0xb" (identifier "param_1") (+ "+") (number_literal "0xb")) () ")")))) (= "=") (binary_expression "*(byte *)(param_1 + 0xb) & 7 | (byte)((param_13 & 1) << 5)" (binary_expression "*(byte *)(param_1 + 0xb) & 7" (pointer_expression "*(byte *)(param_1 + 0xb)" (* "*") (cast_expression "(byte *)(param_1 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xb)" (( "(") (binary_expression "param_1 + 0xb" (identifier "param_1") (+ "+") (number_literal "0xb")) () ")")))) (& "&") (number_literal "7")) (| "|") (call_expression "(byte)((param_13 & 1) << 5)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((param_13 & 1) << 5)" (( "(") (binary_expression "(param_13 & 1) << 5" (parenthesized_expression "(param_13 & 1)" (( "(") (binary_expression "param_13 & 1" (identifier "param_13") (& "&") (number_literal "1")) () ")")) (<< "<<") (number_literal "5")) () ")"))))) (; ";")) (expression_statement "param_1[8] = 0;" (assignment_expression "param_1[8] = 0" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[10] = uVar1 & 0xffff | param_9 << 0x1c | (param_10 & 0xf) << 0x18 | (param_11 & 3) << 0x16\n                | (param_12 & 0x3f) << 0x10;" (assignment_expression "param_1[10] = uVar1 & 0xffff | param_9 << 0x1c | (param_10 & 0xf) << 0x18 | (param_11 & 3) << 0x16\n                | (param_12 & 0x3f) << 0x10" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (= "=") (binary_expression "uVar1 & 0xffff | param_9 << 0x1c | (param_10 & 0xf) << 0x18 | (param_11 & 3) << 0x16\n                | (param_12 & 0x3f) << 0x10" (binary_expression "uVar1 & 0xffff | param_9 << 0x1c | (param_10 & 0xf) << 0x18 | (param_11 & 3) << 0x16" (binary_expression "uVar1 & 0xffff | param_9 << 0x1c | (param_10 & 0xf) << 0x18" (binary_expression "uVar1 & 0xffff | param_9 << 0x1c" (binary_expression "uVar1 & 0xffff" (identifier "uVar1") (& "&") (number_literal "0xffff")) (| "|") (binary_expression "param_9 << 0x1c" (identifier "param_9") (<< "<<") (number_literal "0x1c"))) (| "|") (binary_expression "(param_10 & 0xf) << 0x18" (parenthesized_expression "(param_10 & 0xf)" (( "(") (binary_expression "param_10 & 0xf" (identifier "param_10") (& "&") (number_literal "0xf")) () ")")) (<< "<<") (number_literal "0x18"))) (| "|") (binary_expression "(param_11 & 3) << 0x16" (parenthesized_expression "(param_11 & 3)" (( "(") (binary_expression "param_11 & 3" (identifier "param_11") (& "&") (number_literal "3")) () ")")) (<< "<<") (number_literal "0x16"))) (| "|") (binary_expression "(param_12 & 0x3f) << 0x10" (parenthesized_expression "(param_12 & 0x3f)" (( "(") (binary_expression "param_12 & 0x3f" (identifier "param_12") (& "&") (number_literal "0x3f")) () ")")) (<< "<<") (number_literal "0x10")))) (; ";")) (expression_statement "param_1[0xd] = param_6;" (assignment_expression "param_1[0xd] = param_6" (subscript_expression "param_1[0xd]" (identifier "param_1") ([ "[") (number_literal "0xd") (] "]")) (= "=") (identifier "param_6")) (; ";")) (expression_statement "*(ushort *)((int)param_1 + 0x2a) = (ushort)uVar1 & 0x40 | 0x6102;" (assignment_expression "*(ushort *)((int)param_1 + 0x2a) = (ushort)uVar1 & 0x40 | 0x6102" (pointer_expression "*(ushort *)((int)param_1 + 0x2a)" (* "*") (cast_expression "(ushort *)((int)param_1 + 0x2a)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x2a)" (( "(") (binary_expression "(int)param_1 + 0x2a" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (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 "param_1[9] = 0;" (assignment_expression "param_1[9] = 0" (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0xc] = param_3;" (assignment_expression "param_1[0xc] = param_3" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "param_3")) (; ";")) (expression_statement "param_1[0xf] = param_8;" (assignment_expression "param_1[0xf] = param_8" (subscript_expression "param_1[0xf]" (identifier "param_1") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "param_8")) (; ";")) (expression_statement "param_1[0xe] = param_4;" (assignment_expression "param_1[0xe] = param_4" (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "param_4")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Enum "STB": Some values do not have unique names */
/* WARNING: Enum "STT": Some values do not have unique names */
/* DWARF original prototype: void init_constant(Sized_symbol<64> * 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::type_1<64>::function_1
          (type_1<64> *this,char *name,char *version,type_2 value,type_3 symsize,
          type_4 type,type_5 var_4,type_6 var_5,type_7 var_6,bool var_7)

{
  type_8 var_1;
  type_9 var_3;
  type_8 var_2;
  
  var_3 = *(type_9 *)&(this->super_Symbol).field_0x28;
  (this->super_Symbol).name_ = name;
  var_1 = (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).field_0x2c = var_1 & 7 | (type_8)((var_2 & 1) << 5);
  (this->super_Symbol).got_offsets_.got_offset_ = 0;
  *(type_6 *)&(this->super_Symbol).field_0x28 =
       var_3 & 0xffff | var_4 << 0x1c | (var_5 & 0xf) << 0x18 | (var_6 & 3) << 0x16 |
       (var_7 & 0x3f) << 0x10;
  *(type_10 *)((int)&this->value_ + 4) = value._4_4_;
  *(type_11 *)&(this->super_Symbol).field_0x2a = (type_11)var_3 & 0x40 | 0x6102;
  (this->super_Symbol).got_offsets_.got_next_ = (type_12 *)0x0;
  *(type_10 *)&this->value_ = value._0_4_;
  this->symsize_ = symsize;
  return;
}


(translation_unit (function_definition type: (primitive_type) (ERROR (identifier) (identifier) (number_literal)) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) 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: (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: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_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)) 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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (return_statement))))

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

void gold::Sized_symbol<64>::MASKED
               (undefined4 *param_1,undefined4 param_2,undefined4 param_3_00,undefined4 param_4_00,
               undefined4 param_3,undefined4 param_6,undefined4 param_4,undefined4 param_8,
               int param_9,uint param_10,uint param_11,byte param_12,byte param_13)

{
  uint uVar1;
  
  uVar1 = param_1[10];
  *param_1 = param_2;
  param_1[1] = param_3_00;
  param_1[4] = 0;
  param_1[5] = 0;
  param_1[6] = 0xffffffff;
  param_1[7] = 0xffffffff;
  *(byte *)(param_1 + 0xb) = *(byte *)(param_1 + 0xb) & 7 | (byte)((param_13 & 1) << 5);
  param_1[8] = 0;
  param_1[10] = uVar1 & 0xffff | param_9 << 0x1c | (param_10 & 0xf) << 0x18 | (param_11 & 3) << 0x16
                | (param_12 & 0x3f) << 0x10;
  param_1[0xd] = param_6;
  *(ushort *)((int)param_1 + 0x2a) = (ushort)uVar1 & 0x40 | 0x6102;
  param_1[9] = 0;
  param_1[0xc] = param_3;
  param_1[0xf] = param_8;
  param_1[0xe] = param_4;
  return;
}

