
/* 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_base_constant(Symbol * this, char * name, char * version, STT
   type, STB binding, STV visibility, uchar nonvis, bool is_predefined) */

void __thiscall
gold::Symbol::init_base_constant
          (Symbol *this,char *name,char *version,STT type,STB binding,STV visibility,uchar nonvis,
          bool is_predefined)

{
  this->name_ = name;
  this->symtab_index_ = 0;
  this->version_ = version;
  this->dynsym_index_ = 0;
  this->plt_offset_ = 0xffffffff;
  (this->got_offsets_).got_type_ = 0xffffffff;
  this->field_0x28 = (undefined1)type & STT_HIPROC | (undefined1)binding << 4;
  (this->got_offsets_).got_offset_ = 0;
  (this->got_offsets_).got_next_ = (Got_offset_list *)0x0;
  this->field_0x29 = (undefined1)visibility & STV_PROTECTED | nonvis << 2;
  *(ushort *)&this->field_0x2a = *(ushort *)&this->field_0x2a & 0x200 | 0x4083;
  this->field_0x2c = this->field_0x2c & 0xe0 | is_predefined * '\x04';
  return;
}



void FUN_001e69a0(undefined4 *param_1,undefined4 param_2,undefined4 param_3,byte param_4,
                 char param_5,byte param_6,char param_7,byte param_8)

{
  *param_1 = param_2;
  param_1[4] = 0;
  param_1[1] = param_3;
  param_1[5] = 0;
  param_1[6] = 0xffffffff;
  param_1[7] = 0xffffffff;
  *(byte *)(param_1 + 10) = param_4 & 0xf | param_5 << 4;
  param_1[8] = 0;
  param_1[9] = 0;
  *(byte *)((int)param_1 + 0x29) = param_6 & 3 | param_7 << 2;
  *(ushort *)((int)param_1 + 0x2a) = *(ushort *)((int)param_1 + 0x2a) & 0x200 | 0x4083;
  *(byte *)(param_1 + 0xb) = *(byte *)(param_1 + 0xb) & 0xe0 | (param_8 & 1) * '\x04';
  return;
}


MOV EAX,dword ptr [ESP + 0x4]
MOV EDX,dword ptr [ESP + 0x8]
MOVZX ECX,byte ptr [ESP + 0x14]
MOV dword ptr [EAX],EDX
MOV EDX,dword ptr [ESP + 0xc]
SHL ECX,0x4
MOV dword ptr [EAX + 0x10],0x0
MOV dword ptr [EAX + 0x4],EDX
MOVZX EDX,byte ptr [ESP + 0x10]
MOV dword ptr [EAX + 0x14],0x0
AND EDX,0xf
MOV dword ptr [EAX + 0x18],0xffffffff
OR EDX,ECX
MOVZX ECX,byte ptr [ESP + 0x1c]
MOV dword ptr [EAX + 0x1c],0xffffffff
MOV byte ptr [EAX + 0x28],DL
MOVZX EDX,byte ptr [ESP + 0x18]
SHL ECX,0x2
MOV dword ptr [EAX + 0x20],0x0
AND EDX,0x3
MOV dword ptr [EAX + 0x24],0x0
OR EDX,ECX
MOV byte ptr [EAX + 0x29],DL
MOVZX EDX,word ptr [EAX + 0x2a]
AND DX,0x200
OR DX,0x4083
MOV word ptr [EAX + 0x2a],DX
MOVZX EDX,byte ptr [ESP + 0x20]
AND EDX,0x1
LEA ECX,[EDX*0x4 + 0x0]
MOVZX EDX,byte ptr [EAX + 0x2c]
AND EDX,0xffffffe0
OR EDX,ECX
MOV byte ptr [EAX + 0x2c],DL
RET
(translation_unit "void FUN_001e69a0(undefined4 *param_1,undefined4 param_2,undefined4 param_3,byte param_4,\n                 char param_5,byte param_6,char param_7,byte param_8)\n\n{\n  *param_1 = param_2;\n  param_1[4] = 0;\n  param_1[1] = param_3;\n  param_1[5] = 0;\n  param_1[6] = 0xffffffff;\n  param_1[7] = 0xffffffff;\n  *(byte *)(param_1 + 10) = param_4 & 0xf | param_5 << 4;\n  param_1[8] = 0;\n  param_1[9] = 0;\n  *(byte *)((int)param_1 + 0x29) = param_6 & 3 | param_7 << 2;\n  *(ushort *)((int)param_1 + 0x2a) = *(ushort *)((int)param_1 + 0x2a) & 0x200 | 0x4083;\n  *(byte *)(param_1 + 0xb) = *(byte *)(param_1 + 0xb) & 0xe0 | (param_8 & 1) * '\x04';\n  return;\n}\n\n" (function_definition "void FUN_001e69a0(undefined4 *param_1,undefined4 param_2,undefined4 param_3,byte param_4,\n                 char param_5,byte param_6,char param_7,byte param_8)\n\n{\n  *param_1 = param_2;\n  param_1[4] = 0;\n  param_1[1] = param_3;\n  param_1[5] = 0;\n  param_1[6] = 0xffffffff;\n  param_1[7] = 0xffffffff;\n  *(byte *)(param_1 + 10) = param_4 & 0xf | param_5 << 4;\n  param_1[8] = 0;\n  param_1[9] = 0;\n  *(byte *)((int)param_1 + 0x29) = param_6 & 3 | param_7 << 2;\n  *(ushort *)((int)param_1 + 0x2a) = *(ushort *)((int)param_1 + 0x2a) & 0x200 | 0x4083;\n  *(byte *)(param_1 + 0xb) = *(byte *)(param_1 + 0xb) & 0xe0 | (param_8 & 1) * '\x04';\n  return;\n}" primitive_type (function_declarator "FUN_001e69a0(undefined4 *param_1,undefined4 param_2,undefined4 param_3,byte param_4,\n                 char param_5,byte param_6,char param_7,byte param_8)" identifier (parameter_list "(undefined4 *param_1,undefined4 param_2,undefined4 param_3,byte param_4,\n                 char param_5,byte param_6,char param_7,byte param_8)" ( (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" type_identifier identifier) , (parameter_declaration "byte param_4" type_identifier identifier) , (parameter_declaration "char param_5" primitive_type identifier) , (parameter_declaration "byte param_6" type_identifier identifier) , (parameter_declaration "char param_7" primitive_type identifier) , (parameter_declaration "byte param_8" type_identifier identifier) ))) (compound_statement "{\n  *param_1 = param_2;\n  param_1[4] = 0;\n  param_1[1] = param_3;\n  param_1[5] = 0;\n  param_1[6] = 0xffffffff;\n  param_1[7] = 0xffffffff;\n  *(byte *)(param_1 + 10) = param_4 & 0xf | param_5 << 4;\n  param_1[8] = 0;\n  param_1[9] = 0;\n  *(byte *)((int)param_1 + 0x29) = param_6 & 3 | param_7 << 2;\n  *(ushort *)((int)param_1 + 0x2a) = *(ushort *)((int)param_1 + 0x2a) & 0x200 | 0x4083;\n  *(byte *)(param_1 + 0xb) = *(byte *)(param_1 + 0xb) & 0xe0 | (param_8 & 1) * '\x04';\n  return;\n}" { (expression_statement "*param_1 = param_2;" (assignment_expression "*param_1 = param_2" (pointer_expression "*param_1" * identifier) = 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[1] = param_3;" (assignment_expression "param_1[1] = param_3" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (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 + 10) = param_4 & 0xf | param_5 << 4;" (assignment_expression "*(byte *)(param_1 + 10) = param_4 & 0xf | param_5 << 4" (pointer_expression "*(byte *)(param_1 + 10)" * (cast_expression "(byte *)(param_1 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 10)" ( (binary_expression "param_1 + 10" identifier + number_literal) )))) = (binary_expression "param_4 & 0xf | param_5 << 4" (binary_expression "param_4 & 0xf" identifier & number_literal) | (binary_expression "param_5 << 4" identifier << 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[9] = 0;" (assignment_expression "param_1[9] = 0" (subscript_expression "param_1[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)((int)param_1 + 0x29) = param_6 & 3 | param_7 << 2;" (assignment_expression "*(byte *)((int)param_1 + 0x29) = param_6 & 3 | param_7 << 2" (pointer_expression "*(byte *)((int)param_1 + 0x29)" * (cast_expression "(byte *)((int)param_1 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x29)" ( (binary_expression "(int)param_1 + 0x29" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "param_6 & 3 | param_7 << 2" (binary_expression "param_6 & 3" identifier & number_literal) | (binary_expression "param_7 << 2" identifier << number_literal))) ;) (expression_statement "*(ushort *)((int)param_1 + 0x2a) = *(ushort *)((int)param_1 + 0x2a) & 0x200 | 0x4083;" (assignment_expression "*(ushort *)((int)param_1 + 0x2a) = *(ushort *)((int)param_1 + 0x2a) & 0x200 | 0x4083" (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 *)((int)param_1 + 0x2a) & 0x200 | 0x4083" (binary_expression "*(ushort *)((int)param_1 + 0x2a) & 0x200" (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) )))) & number_literal) | number_literal)) ;) (expression_statement "*(byte *)(param_1 + 0xb) = *(byte *)(param_1 + 0xb) & 0xe0 | (param_8 & 1) * '\x04';" (assignment_expression "*(byte *)(param_1 + 0xb) = *(byte *)(param_1 + 0xb) & 0xe0 | (param_8 & 1) * '\x04'" (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) & 0xe0 | (param_8 & 1) * '\x04'" (binary_expression "*(byte *)(param_1 + 0xb) & 0xe0" (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) | (binary_expression "(param_8 & 1) * '\x04'" (parenthesized_expression "(param_8 & 1)" ( (binary_expression "param_8 & 1" identifier & number_literal) )) * (char_literal "'\x04'" ' escape_sequence ')))) ;) (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_base_constant(Symbol * this, char * name, char * version, STT\n   type, STB binding, STV visibility, uchar nonvis, bool is_predefined) */\n\nvoid __thiscall\ngold::Symbol::init_base_constant\n          (Symbol *this,char *name,char *version,STT type,STB binding,STV visibility,uchar nonvis,\n          bool is_predefined)\n\n{\n  this->name_ = name;\n  this->symtab_index_ = 0;\n  this->version_ = version;\n  this->dynsym_index_ = 0;\n  this->plt_offset_ = 0xffffffff;\n  (this->got_offsets_).got_type_ = 0xffffffff;\n  this->field_0x28 = (undefined1)type & STT_HIPROC | (undefined1)binding << 4;\n  (this->got_offsets_).got_offset_ = 0;\n  (this->got_offsets_).got_next_ = (Got_offset_list *)0x0;\n  this->field_0x29 = (undefined1)visibility & STV_PROTECTED | nonvis << 2;\n  *(ushort *)&this->field_0x2a = *(ushort *)&this->field_0x2a & 0x200 | 0x4083;\n  this->field_0x2c = this->field_0x2c & 0xe0 | is_predefined * '\x04';\n  return;\n}\n\n" comment comment comment (function_definition "void __thiscall\ngold::Symbol::init_base_constant\n          (Symbol *this,char *name,char *version,STT type,STB binding,STV visibility,uchar nonvis,\n          bool is_predefined)\n\n{\n  this->name_ = name;\n  this->symtab_index_ = 0;\n  this->version_ = version;\n  this->dynsym_index_ = 0;\n  this->plt_offset_ = 0xffffffff;\n  (this->got_offsets_).got_type_ = 0xffffffff;\n  this->field_0x28 = (undefined1)type & STT_HIPROC | (undefined1)binding << 4;\n  (this->got_offsets_).got_offset_ = 0;\n  (this->got_offsets_).got_next_ = (Got_offset_list *)0x0;\n  this->field_0x29 = (undefined1)visibility & STV_PROTECTED | nonvis << 2;\n  *(ushort *)&this->field_0x2a = *(ushort *)&this->field_0x2a & 0x200 | 0x4083;\n  this->field_0x2c = this->field_0x2c & 0xe0 | is_predefined * '\x04';\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Symbol::" identifier : : identifier : :) (function_declarator "init_base_constant\n          (Symbol *this,char *name,char *version,STT type,STB binding,STV visibility,uchar nonvis,\n          bool is_predefined)" identifier (parameter_list "(Symbol *this,char *name,char *version,STT type,STB binding,STV visibility,uchar nonvis,\n          bool is_predefined)" ( (parameter_declaration "Symbol *this" type_identifier (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 "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  this->name_ = name;\n  this->symtab_index_ = 0;\n  this->version_ = version;\n  this->dynsym_index_ = 0;\n  this->plt_offset_ = 0xffffffff;\n  (this->got_offsets_).got_type_ = 0xffffffff;\n  this->field_0x28 = (undefined1)type & STT_HIPROC | (undefined1)binding << 4;\n  (this->got_offsets_).got_offset_ = 0;\n  (this->got_offsets_).got_next_ = (Got_offset_list *)0x0;\n  this->field_0x29 = (undefined1)visibility & STV_PROTECTED | nonvis << 2;\n  *(ushort *)&this->field_0x2a = *(ushort *)&this->field_0x2a & 0x200 | 0x4083;\n  this->field_0x2c = this->field_0x2c & 0xe0 | is_predefined * '\x04';\n  return;\n}" { (expression_statement "this->name_ = name;" (assignment_expression "this->name_ = name" (field_expression "this->name_" identifier -> field_identifier) = identifier) ;) (expression_statement "this->symtab_index_ = 0;" (assignment_expression "this->symtab_index_ = 0" (field_expression "this->symtab_index_" identifier -> field_identifier) = number_literal) ;) (expression_statement "this->version_ = version;" (assignment_expression "this->version_ = version" (field_expression "this->version_" identifier -> field_identifier) = identifier) ;) (expression_statement "this->dynsym_index_ = 0;" (assignment_expression "this->dynsym_index_ = 0" (field_expression "this->dynsym_index_" identifier -> field_identifier) = number_literal) ;) (expression_statement "this->plt_offset_ = 0xffffffff;" (assignment_expression "this->plt_offset_ = 0xffffffff" (field_expression "this->plt_offset_" identifier -> field_identifier) = number_literal) ;) (expression_statement "(this->got_offsets_).got_type_ = 0xffffffff;" (assignment_expression "(this->got_offsets_).got_type_ = 0xffffffff" (field_expression "(this->got_offsets_).got_type_" (parenthesized_expression "(this->got_offsets_)" ( (field_expression "this->got_offsets_" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "this->field_0x28 = (undefined1)type & STT_HIPROC | (undefined1)binding << 4;" (assignment_expression "this->field_0x28 = (undefined1)type & STT_HIPROC | (undefined1)binding << 4" (field_expression "this->field_0x28" identifier -> field_identifier) = (binary_expression "(undefined1)type & STT_HIPROC | (undefined1)binding << 4" (binary_expression "(undefined1)type & STT_HIPROC" (cast_expression "(undefined1)type" ( (type_descriptor "undefined1" type_identifier) ) identifier) & identifier) | (binary_expression "(undefined1)binding << 4" (cast_expression "(undefined1)binding" ( (type_descriptor "undefined1" type_identifier) ) identifier) << number_literal))) ;) (expression_statement "(this->got_offsets_).got_offset_ = 0;" (assignment_expression "(this->got_offsets_).got_offset_ = 0" (field_expression "(this->got_offsets_).got_offset_" (parenthesized_expression "(this->got_offsets_)" ( (field_expression "this->got_offsets_" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(this->got_offsets_).got_next_ = (Got_offset_list *)0x0;" (assignment_expression "(this->got_offsets_).got_next_ = (Got_offset_list *)0x0" (field_expression "(this->got_offsets_).got_next_" (parenthesized_expression "(this->got_offsets_)" ( (field_expression "this->got_offsets_" 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->field_0x29 = (undefined1)visibility & STV_PROTECTED | nonvis << 2;" (assignment_expression "this->field_0x29 = (undefined1)visibility & STV_PROTECTED | nonvis << 2" (field_expression "this->field_0x29" identifier -> field_identifier) = (binary_expression "(undefined1)visibility & STV_PROTECTED | nonvis << 2" (binary_expression "(undefined1)visibility & STV_PROTECTED" (cast_expression "(undefined1)visibility" ( (type_descriptor "undefined1" type_identifier) ) identifier) & identifier) | (binary_expression "nonvis << 2" identifier << number_literal))) ;) (expression_statement "*(ushort *)&this->field_0x2a = *(ushort *)&this->field_0x2a & 0x200 | 0x4083;" (assignment_expression "*(ushort *)&this->field_0x2a = *(ushort *)&this->field_0x2a & 0x200 | 0x4083" (pointer_expression "*(ushort *)&this->field_0x2a" * (cast_expression "(ushort *)&this->field_0x2a" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->field_0x2a" & (field_expression "this->field_0x2a" identifier -> field_identifier)))) = (binary_expression "*(ushort *)&this->field_0x2a & 0x200 | 0x4083" (binary_expression "*(ushort *)&this->field_0x2a & 0x200" (pointer_expression "*(ushort *)&this->field_0x2a" * (cast_expression "(ushort *)&this->field_0x2a" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->field_0x2a" & (field_expression "this->field_0x2a" identifier -> field_identifier)))) & number_literal) | number_literal)) ;) (expression_statement "this->field_0x2c = this->field_0x2c & 0xe0 | is_predefined * '\x04';" (assignment_expression "this->field_0x2c = this->field_0x2c & 0xe0 | is_predefined * '\x04'" (field_expression "this->field_0x2c" identifier -> field_identifier) = (binary_expression "this->field_0x2c & 0xe0 | is_predefined * '\x04'" (binary_expression "this->field_0x2c & 0xe0" (field_expression "this->field_0x2c" identifier -> field_identifier) & number_literal) | (binary_expression "is_predefined * '\x04'" identifier * (char_literal "'\x04'" ' escape_sequence ')))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_001e69a0(undefined4 *param_1,undefined4 param_2,undefined4 param_3,byte param_4,\n                 char param_5,byte param_6,char param_7,byte param_8)\n\n{\n  *param_1 = param_2;\n  param_1[4] = 0;\n  param_1[1] = param_3;\n  param_1[5] = 0;\n  param_1[6] = 0xffffffff;\n  param_1[7] = 0xffffffff;\n  *(byte *)(param_1 + 10) = param_4 & 0xf | param_5 << 4;\n  param_1[8] = 0;\n  param_1[9] = 0;\n  *(byte *)((int)param_1 + 0x29) = param_6 & 3 | param_7 << 2;\n  *(ushort *)((int)param_1 + 0x2a) = *(ushort *)((int)param_1 + 0x2a) & 0x200 | 0x4083;\n  *(byte *)(param_1 + 0xb) = *(byte *)(param_1 + 0xb) & 0xe0 | (param_8 & 1) * '\x04';\n  return;\n}\n\n" (function_definition "void FUN_001e69a0(undefined4 *param_1,undefined4 param_2,undefined4 param_3,byte param_4,\n                 char param_5,byte param_6,char param_7,byte param_8)\n\n{\n  *param_1 = param_2;\n  param_1[4] = 0;\n  param_1[1] = param_3;\n  param_1[5] = 0;\n  param_1[6] = 0xffffffff;\n  param_1[7] = 0xffffffff;\n  *(byte *)(param_1 + 10) = param_4 & 0xf | param_5 << 4;\n  param_1[8] = 0;\n  param_1[9] = 0;\n  *(byte *)((int)param_1 + 0x29) = param_6 & 3 | param_7 << 2;\n  *(ushort *)((int)param_1 + 0x2a) = *(ushort *)((int)param_1 + 0x2a) & 0x200 | 0x4083;\n  *(byte *)(param_1 + 0xb) = *(byte *)(param_1 + 0xb) & 0xe0 | (param_8 & 1) * '\x04';\n  return;\n}" primitive_type (function_declarator "FUN_001e69a0(undefined4 *param_1,undefined4 param_2,undefined4 param_3,byte param_4,\n                 char param_5,byte param_6,char param_7,byte param_8)" identifier (parameter_list "(undefined4 *param_1,undefined4 param_2,undefined4 param_3,byte param_4,\n                 char param_5,byte param_6,char param_7,byte param_8)" ( (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" type_identifier identifier) , (parameter_declaration "byte param_4" type_identifier identifier) , (parameter_declaration "char param_5" primitive_type identifier) , (parameter_declaration "byte param_6" type_identifier identifier) , (parameter_declaration "char param_7" primitive_type identifier) , (parameter_declaration "byte param_8" type_identifier identifier) ))) (compound_statement "{\n  *param_1 = param_2;\n  param_1[4] = 0;\n  param_1[1] = param_3;\n  param_1[5] = 0;\n  param_1[6] = 0xffffffff;\n  param_1[7] = 0xffffffff;\n  *(byte *)(param_1 + 10) = param_4 & 0xf | param_5 << 4;\n  param_1[8] = 0;\n  param_1[9] = 0;\n  *(byte *)((int)param_1 + 0x29) = param_6 & 3 | param_7 << 2;\n  *(ushort *)((int)param_1 + 0x2a) = *(ushort *)((int)param_1 + 0x2a) & 0x200 | 0x4083;\n  *(byte *)(param_1 + 0xb) = *(byte *)(param_1 + 0xb) & 0xe0 | (param_8 & 1) * '\x04';\n  return;\n}" { (expression_statement "*param_1 = param_2;" (assignment_expression "*param_1 = param_2" (pointer_expression "*param_1" * identifier) = 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[1] = param_3;" (assignment_expression "param_1[1] = param_3" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (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 + 10) = param_4 & 0xf | param_5 << 4;" (assignment_expression "*(byte *)(param_1 + 10) = param_4 & 0xf | param_5 << 4" (pointer_expression "*(byte *)(param_1 + 10)" * (cast_expression "(byte *)(param_1 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 10)" ( (binary_expression "param_1 + 10" identifier + number_literal) )))) = (binary_expression "param_4 & 0xf | param_5 << 4" (binary_expression "param_4 & 0xf" identifier & number_literal) | (binary_expression "param_5 << 4" identifier << 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[9] = 0;" (assignment_expression "param_1[9] = 0" (subscript_expression "param_1[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)((int)param_1 + 0x29) = param_6 & 3 | param_7 << 2;" (assignment_expression "*(byte *)((int)param_1 + 0x29) = param_6 & 3 | param_7 << 2" (pointer_expression "*(byte *)((int)param_1 + 0x29)" * (cast_expression "(byte *)((int)param_1 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x29)" ( (binary_expression "(int)param_1 + 0x29" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "param_6 & 3 | param_7 << 2" (binary_expression "param_6 & 3" identifier & number_literal) | (binary_expression "param_7 << 2" identifier << number_literal))) ;) (expression_statement "*(ushort *)((int)param_1 + 0x2a) = *(ushort *)((int)param_1 + 0x2a) & 0x200 | 0x4083;" (assignment_expression "*(ushort *)((int)param_1 + 0x2a) = *(ushort *)((int)param_1 + 0x2a) & 0x200 | 0x4083" (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 *)((int)param_1 + 0x2a) & 0x200 | 0x4083" (binary_expression "*(ushort *)((int)param_1 + 0x2a) & 0x200" (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) )))) & number_literal) | number_literal)) ;) (expression_statement "*(byte *)(param_1 + 0xb) = *(byte *)(param_1 + 0xb) & 0xe0 | (param_8 & 1) * '\x04';" (assignment_expression "*(byte *)(param_1 + 0xb) = *(byte *)(param_1 + 0xb) & 0xe0 | (param_8 & 1) * '\x04'" (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) & 0xe0 | (param_8 & 1) * '\x04'" (binary_expression "*(byte *)(param_1 + 0xb) & 0xe0" (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) | (binary_expression "(param_8 & 1) * '\x04'" (parenthesized_expression "(param_8 & 1)" ( (binary_expression "param_8 & 1" identifier & number_literal) )) * (char_literal "'\x04'" ' escape_sequence ')))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (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) ))) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (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 ]) = 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 IDENT & LIT) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (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 IDENT & LIT) | (binary_expression IDENT << LIT))) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & 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) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) * (char_literal ' escape_sequence ')))) ;) (return_statement return ;) })))
(function_definition "void FUN_001e69a0(undefined4 *param_1,undefined4 param_2,undefined4 param_3,byte param_4,\n                 char param_5,byte param_6,char param_7,byte param_8)\n\n{\n  *param_1 = param_2;\n  param_1[4] = 0;\n  param_1[1] = param_3;\n  param_1[5] = 0;\n  param_1[6] = 0xffffffff;\n  param_1[7] = 0xffffffff;\n  *(byte *)(param_1 + 10) = param_4 & 0xf | param_5 << 4;\n  param_1[8] = 0;\n  param_1[9] = 0;\n  *(byte *)((int)param_1 + 0x29) = param_6 & 3 | param_7 << 2;\n  *(ushort *)((int)param_1 + 0x2a) = *(ushort *)((int)param_1 + 0x2a) & 0x200 | 0x4083;\n  *(byte *)(param_1 + 0xb) = *(byte *)(param_1 + 0xb) & 0xe0 | (param_8 & 1) * '\x04';\n  return;\n}" (primitive_type "void") (function_declarator "FUN_001e69a0(undefined4 *param_1,undefined4 param_2,undefined4 param_3,byte param_4,\n                 char param_5,byte param_6,char param_7,byte param_8)" (identifier "FUN_001e69a0") (parameter_list "(undefined4 *param_1,undefined4 param_2,undefined4 param_3,byte param_4,\n                 char param_5,byte param_6,char param_7,byte param_8)" (( "(") (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" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "byte param_4" (type_identifier "byte") (identifier "param_4")) (, ",") (parameter_declaration "char param_5" (primitive_type "char") (identifier "param_5")) (, ",") (parameter_declaration "byte param_6" (type_identifier "byte") (identifier "param_6")) (, ",") (parameter_declaration "char param_7" (primitive_type "char") (identifier "param_7")) (, ",") (parameter_declaration "byte param_8" (type_identifier "byte") (identifier "param_8")) () ")"))) (compound_statement "{\n  *param_1 = param_2;\n  param_1[4] = 0;\n  param_1[1] = param_3;\n  param_1[5] = 0;\n  param_1[6] = 0xffffffff;\n  param_1[7] = 0xffffffff;\n  *(byte *)(param_1 + 10) = param_4 & 0xf | param_5 << 4;\n  param_1[8] = 0;\n  param_1[9] = 0;\n  *(byte *)((int)param_1 + 0x29) = param_6 & 3 | param_7 << 2;\n  *(ushort *)((int)param_1 + 0x2a) = *(ushort *)((int)param_1 + 0x2a) & 0x200 | 0x4083;\n  *(byte *)(param_1 + 0xb) = *(byte *)(param_1 + 0xb) & 0xe0 | (param_8 & 1) * '\x04';\n  return;\n}" ({ "{") (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[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[1] = param_3;" (assignment_expression "param_1[1] = param_3" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "param_3")) (; ";")) (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 + 10) = param_4 & 0xf | param_5 << 4;" (assignment_expression "*(byte *)(param_1 + 10) = param_4 & 0xf | param_5 << 4" (pointer_expression "*(byte *)(param_1 + 10)" (* "*") (cast_expression "(byte *)(param_1 + 10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 10)" (( "(") (binary_expression "param_1 + 10" (identifier "param_1") (+ "+") (number_literal "10")) () ")")))) (= "=") (binary_expression "param_4 & 0xf | param_5 << 4" (binary_expression "param_4 & 0xf" (identifier "param_4") (& "&") (number_literal "0xf")) (| "|") (binary_expression "param_5 << 4" (identifier "param_5") (<< "<<") (number_literal "4")))) (; ";")) (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[9] = 0;" (assignment_expression "param_1[9] = 0" (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(byte *)((int)param_1 + 0x29) = param_6 & 3 | param_7 << 2;" (assignment_expression "*(byte *)((int)param_1 + 0x29) = param_6 & 3 | param_7 << 2" (pointer_expression "*(byte *)((int)param_1 + 0x29)" (* "*") (cast_expression "(byte *)((int)param_1 + 0x29)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x29)" (( "(") (binary_expression "(int)param_1 + 0x29" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x29")) () ")")))) (= "=") (binary_expression "param_6 & 3 | param_7 << 2" (binary_expression "param_6 & 3" (identifier "param_6") (& "&") (number_literal "3")) (| "|") (binary_expression "param_7 << 2" (identifier "param_7") (<< "<<") (number_literal "2")))) (; ";")) (expression_statement "*(ushort *)((int)param_1 + 0x2a) = *(ushort *)((int)param_1 + 0x2a) & 0x200 | 0x4083;" (assignment_expression "*(ushort *)((int)param_1 + 0x2a) = *(ushort *)((int)param_1 + 0x2a) & 0x200 | 0x4083" (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 *)((int)param_1 + 0x2a) & 0x200 | 0x4083" (binary_expression "*(ushort *)((int)param_1 + 0x2a) & 0x200" (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")) () ")")))) (& "&") (number_literal "0x200")) (| "|") (number_literal "0x4083"))) (; ";")) (expression_statement "*(byte *)(param_1 + 0xb) = *(byte *)(param_1 + 0xb) & 0xe0 | (param_8 & 1) * '\x04';" (assignment_expression "*(byte *)(param_1 + 0xb) = *(byte *)(param_1 + 0xb) & 0xe0 | (param_8 & 1) * '\x04'" (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) & 0xe0 | (param_8 & 1) * '\x04'" (binary_expression "*(byte *)(param_1 + 0xb) & 0xe0" (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 "0xe0")) (| "|") (binary_expression "(param_8 & 1) * '\x04'" (parenthesized_expression "(param_8 & 1)" (( "(") (binary_expression "param_8 & 1" (identifier "param_8") (& "&") (number_literal "1")) () ")")) (* "*") (char_literal "'\x04'" (' "'") (escape_sequence "\x04") (' "'"))))) (; ";")) (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_base_constant(Symbol * this, char * name, char * version, STT
   type, STB binding, STV visibility, uchar nonvis, bool is_predefined) */

void __thiscall
gold::type_1::function_1
          (type_1 *this,char *name,char *version,type_2 type,type_3 binding,type_4 visibility,type_5 var_3,
          bool var_4)

{
  this->name_ = name;
  this->symtab_index_ = 0;
  this->version_ = version;
  this->dynsym_index_ = 0;
  this->plt_offset_ = 0xffffffff;
  (this->got_offsets_).got_type_ = 0xffffffff;
  this->field_0x28 = (type_6)type & var_1 | (type_6)binding << 4;
  (this->got_offsets_).got_offset_ = 0;
  (this->got_offsets_).got_next_ = (type_7 *)0x0;
  this->field_0x29 = (type_6)visibility & var_2 | var_3 << 2;
  *(type_8 *)&this->field_0x2a = *(type_8 *)&this->field_0x2a & 0x200 | 0x4083;
  this->field_0x2c = this->field_0x2c & 0xe0 | var_4 * '\x04';
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (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: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) 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: (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: (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: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (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: (identifier) right: (number_literal)) right: (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: (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: (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: (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: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (char_literal (escape_sequence)))))) (return_statement))))

void MASKED(undefined4 *param_1,undefined4 param_2,undefined4 param_3,byte param_4,
                 char param_5,byte param_6,char param_7,byte param_8)

{
  *param_1 = param_2;
  param_1[4] = 0;
  param_1[1] = param_3;
  param_1[5] = 0;
  param_1[6] = 0xffffffff;
  param_1[7] = 0xffffffff;
  *(byte *)(param_1 + 10) = param_4 & 0xf | param_5 << 4;
  param_1[8] = 0;
  param_1[9] = 0;
  *(byte *)((int)param_1 + 0x29) = param_6 & 3 | param_7 << 2;
  *(ushort *)((int)param_1 + 0x2a) = *(ushort *)((int)param_1 + 0x2a) & 0x200 | 0x4083;
  *(byte *)(param_1 + 0xb) = *(byte *)(param_1 + 0xb) & 0xe0 | (param_8 & 1) * '\x04';
  return;
}

