
/* DWARF original prototype: void Sized_relobj(Sized_relobj<32,_true> * this, string * name,
   Input_file * input_file, off_t offset) */

void __thiscall
gold::Sized_relobj<32,_true>::Sized_relobj
          (Sized_relobj<32,_true> *this,string *name,Input_file *input_file,off_t offset)

{
  undefined1 *puVar1;
  int *piVar2;
  pointer pcVar3;
  bool bVar4;
  Position_dependent_options *pPVar5;
  
  (this->super_Relobj).super_Object._vptr_Object = (_func_int_varargs **)&DAT_00431850;
  (this->super_Relobj).super_Object.name_._M_dataplus._M_p =
       (pointer)&(this->super_Relobj).super_Object.name_.field_2;
  pcVar3 = (name->_M_dataplus)._M_p;
  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
  _M_construct<char*>(&(this->super_Relobj).super_Object.name_,pcVar3,
                      pcVar3 + name->_M_string_length);
  (this->super_Relobj).super_Object.input_file_ = input_file;
  (this->super_Relobj).super_Object.offset_ = offset;
  (this->super_Relobj).super_Object.shnum_ = 0xffffffff;
  puVar1 = &(this->super_Relobj).super_Object.field_0x3c;
  *puVar1 = *puVar1 & 0x80;
  (this->super_Relobj).super_Object.xindex_ = (Xindex *)0x0;
  (this->super_Relobj).super_Object.compressed_sections_ = (Compressed_section_map *)0x0;
  if (input_file != (Input_file *)0x0) {
    piVar2 = &(input_file->file_).object_count_;
    *piVar2 = *piVar2 + 1;
                    /* try { // try from 001d278b to 001d27ab has its CatchHandler @ 001d28ab */
    bVar4 = Input_file::is_in_system_directory(input_file);
    (this->super_Relobj).super_Object.field_0x3c =
         (this->super_Relobj).super_Object.field_0x3c & 0xdf | bVar4 << 5;
    pPVar5 = Input_file::options(input_file);
    (this->super_Relobj).super_Object.field_0x3c =
         (this->super_Relobj).super_Object.field_0x3c & 0xbf | (byte)((pPVar5->as_needed_ & 1) << 6)
    ;
  }
  (this->super_Relobj).output_sections_.
  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl._M_start
       = (pointer)0x0;
  (this->super_Relobj).super_Object._vptr_Object = (_func_int_varargs **)&DAT_00431b88;
  (this->local_got_offsets_)._M_h._M_rehash_policy._M_max_load_factor = 0.0;
  *(undefined4 *)&(this->local_got_offsets_)._M_h._M_rehash_policy.field_0x4 = 0;
  (this->local_got_offsets_)._M_h._M_rehash_policy._M_next_resize = 0;
  (this->super_Relobj).output_sections_.
  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.
  _M_finish = (pointer)0x0;
  (this->super_Relobj).output_sections_.
  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.
  _M_end_of_storage = (pointer)0x0;
  (this->super_Relobj).map_to_relocatable_relocs_ =
       (vector<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_> *)0x0;
  (this->super_Relobj).object_merge_map_ = (Object_merge_map *)0x0;
  (this->super_Relobj).relocs_must_follow_section_writes_ = false;
  (this->super_Relobj).sd_ = (Symbols_data *)0x0;
  (this->super_Relobj).reloc_counts_ = (uint *)0x0;
  (this->super_Relobj).reloc_bases_ = (uint *)0x0;
  (this->super_Relobj).first_dyn_reloc_ = 0;
  (this->super_Relobj).dyn_reloc_count_ = 0;
  (this->local_got_offsets_)._M_h._M_single_bucket = (__bucket_type)0x0;
  (this->local_got_offsets_)._M_h._M_buckets = &(this->local_got_offsets_)._M_h._M_single_bucket;
  (this->local_got_offsets_)._M_h._M_bucket_count = 1;
  (this->local_got_offsets_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0;
  (this->local_got_offsets_)._M_h._M_element_count = 0;
  (this->local_got_offsets_)._M_h._M_rehash_policy._M_max_load_factor = 1.0;
  (this->local_got_offsets_)._M_h._M_rehash_policy._M_next_resize = 0;
  (this->section_offsets_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.
  _M_start = (pointer)0x0;
  (this->section_offsets_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.
  _M_finish = (pointer)0x0;
  (this->section_offsets_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.
  _M_end_of_storage = (pointer)0x0;
  return;
}



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

{
  uint uVar1;
  byte *pbVar2;
  
  *param_1 = &DAT_00431850;
  param_1[1] = param_1 + 3;
  FUN_00166a10(param_1 + 1,*param_2,param_2[1] + *param_2);
  param_1[5] = param_3;
  param_1[6] = param_4;
  *(undefined4 *)(param_1 + 7) = 0xffffffff;
  *(byte *)((long)param_1 + 0x3c) = *(byte *)((long)param_1 + 0x3c) & 0x80;
  param_1[8] = 0;
  param_1[9] = 0;
  if (param_3 != 0) {
    *(int *)(param_3 + 0x50) = *(int *)(param_3 + 0x50) + 1;
                    /* try { // try from 001d278b to 001d27ab has its CatchHandler @ 001d28ab */
    uVar1 = FUN_0017a800(param_3);
    *(byte *)((long)param_1 + 0x3c) =
         *(byte *)((long)param_1 + 0x3c) & 0xdf | (byte)((uVar1 & 1) << 5);
    pbVar2 = (byte *)FUN_0017a7e0(param_3);
    *(byte *)((long)param_1 + 0x3c) =
         *(byte *)((long)param_1 + 0x3c) & 0xbf | (byte)((*pbVar2 & 1) << 6);
  }
  param_1[10] = 0;
  *param_1 = &DAT_00431b88;
  *(undefined1 (*) [16])(param_1 + 0x19) = (undefined1  [16])0x0;
  param_1[0xb] = 0;
  param_1[0xc] = 0;
  param_1[0xd] = 0;
  param_1[0xe] = 0;
  *(undefined1 *)(param_1 + 0xf) = 0;
  param_1[0x11] = 0;
  param_1[0x12] = 0;
  param_1[0x13] = 0;
  param_1[0x14] = 0;
  param_1[0x1b] = 0;
  param_1[0x15] = param_1 + 0x1b;
  param_1[0x16] = 1;
  param_1[0x17] = 0;
  param_1[0x18] = 0;
  *(undefined4 *)(param_1 + 0x19) = 0x3f800000;
  param_1[0x1a] = 0;
  param_1[0x1c] = 0;
  param_1[0x1d] = 0;
  param_1[0x1e] = 0;
  return;
}


PUSH R13
LEA RAX,[0x431850]
MOV R13,RCX
PUSH R12
PUSH RBP
MOV RBP,RDX
PUSH RBX
MOV RBX,RDI
ADD RDI,0x8
LEA R12,[RBX + 0x18]
SUB RSP,0x8
MOV qword ptr [RDI + -0x8],RAX
MOV qword ptr [RBX + 0x8],R12
MOV RAX,qword ptr [RSI]
MOV RDX,qword ptr [RSI + 0x8]
MOV RSI,RAX
ADD RDX,RAX
CALL 0x00166a10
MOV qword ptr [RBX + 0x28],RBP
MOV qword ptr [RBX + 0x30],R13
MOV dword ptr [RBX + 0x38],0xffffffff
AND byte ptr [RBX + 0x3c],0x80
MOV qword ptr [RBX + 0x40],0x0
MOV qword ptr [RBX + 0x48],0x0
TEST RBP,RBP
JZ 0x001d27c3
ADD dword ptr [RBP + 0x50],0x1
MOV RDI,RBP
CALL 0x0017a800
AND EAX,0x1
MOV RDI,RBP
SHL EAX,0x5
MOV EDX,EAX
MOVZX EAX,byte ptr [RBX + 0x3c]
AND EAX,0xffffffdf
OR EAX,EDX
MOV byte ptr [RBX + 0x3c],AL
CALL 0x0017a7e0
MOVZX EAX,byte ptr [RAX]
AND EAX,0x1
SHL EAX,0x6
MOV EDX,EAX
MOVZX EAX,byte ptr [RBX + 0x3c]
AND EAX,0xffffffbf
OR EAX,EDX
MOV byte ptr [RBX + 0x3c],AL
LEA RAX,[0x431b88]
PXOR XMM0,XMM0
MOV qword ptr [RBX + 0x50],0x0
MOV qword ptr [RBX],RAX
LEA RAX,[RBX + 0xd8]
MOVUPS xmmword ptr [RBX + 0xc8],XMM0
MOV qword ptr [RBX + 0x58],0x0
MOV qword ptr [RBX + 0x60],0x0
MOV qword ptr [RBX + 0x68],0x0
MOV qword ptr [RBX + 0x70],0x0
MOV byte ptr [RBX + 0x78],0x0
MOV qword ptr [RBX + 0x88],0x0
MOV qword ptr [RBX + 0x90],0x0
MOV qword ptr [RBX + 0x98],0x0
MOV qword ptr [RBX + 0xa0],0x0
MOV qword ptr [RBX + 0xd8],0x0
MOV qword ptr [RBX + 0xa8],RAX
MOV qword ptr [RBX + 0xb0],0x1
MOV qword ptr [RBX + 0xb8],0x0
MOV qword ptr [RBX + 0xc0],0x0
MOV dword ptr [RBX + 0xc8],0x3f800000
MOV qword ptr [RBX + 0xd0],0x0
MOV qword ptr [RBX + 0xe0],0x0
MOV qword ptr [RBX + 0xe8],0x0
MOV qword ptr [RBX + 0xf0],0x0
ADD RSP,0x8
POP RBX
POP RBP
POP R12
POP R13
RET
(translation_unit "void FUN_001d2720(undefined8 *param_1,long *param_2,long param_3,undefined8 param_4)\n\n{\n  uint uVar1;\n  byte *pbVar2;\n  \n  *param_1 = &DAT_00431850;\n  param_1[1] = param_1 + 3;\n  FUN_00166a10(param_1 + 1,*param_2,param_2[1] + *param_2);\n  param_1[5] = param_3;\n  param_1[6] = param_4;\n  *(undefined4 *)(param_1 + 7) = 0xffffffff;\n  *(byte *)((long)param_1 + 0x3c) = *(byte *)((long)param_1 + 0x3c) & 0x80;\n  param_1[8] = 0;\n  param_1[9] = 0;\n  if (param_3 != 0) {\n    *(int *)(param_3 + 0x50) = *(int *)(param_3 + 0x50) + 1;\n                    /* try { // try from 001d278b to 001d27ab has its CatchHandler @ 001d28ab */\n    uVar1 = FUN_0017a800(param_3);\n    *(byte *)((long)param_1 + 0x3c) =\n         *(byte *)((long)param_1 + 0x3c) & 0xdf | (byte)((uVar1 & 1) << 5);\n    pbVar2 = (byte *)FUN_0017a7e0(param_3);\n    *(byte *)((long)param_1 + 0x3c) =\n         *(byte *)((long)param_1 + 0x3c) & 0xbf | (byte)((*pbVar2 & 1) << 6);\n  }\n  param_1[10] = 0;\n  *param_1 = &DAT_00431b88;\n  *(undefined1 (*) [16])(param_1 + 0x19) = (undefined1  [16])0x0;\n  param_1[0xb] = 0;\n  param_1[0xc] = 0;\n  param_1[0xd] = 0;\n  param_1[0xe] = 0;\n  *(undefined1 *)(param_1 + 0xf) = 0;\n  param_1[0x11] = 0;\n  param_1[0x12] = 0;\n  param_1[0x13] = 0;\n  param_1[0x14] = 0;\n  param_1[0x1b] = 0;\n  param_1[0x15] = param_1 + 0x1b;\n  param_1[0x16] = 1;\n  param_1[0x17] = 0;\n  param_1[0x18] = 0;\n  *(undefined4 *)(param_1 + 0x19) = 0x3f800000;\n  param_1[0x1a] = 0;\n  param_1[0x1c] = 0;\n  param_1[0x1d] = 0;\n  param_1[0x1e] = 0;\n  return;\n}\n\n" (function_definition "void FUN_001d2720(undefined8 *param_1,long *param_2,long param_3,undefined8 param_4)\n\n{\n  uint uVar1;\n  byte *pbVar2;\n  \n  *param_1 = &DAT_00431850;\n  param_1[1] = param_1 + 3;\n  FUN_00166a10(param_1 + 1,*param_2,param_2[1] + *param_2);\n  param_1[5] = param_3;\n  param_1[6] = param_4;\n  *(undefined4 *)(param_1 + 7) = 0xffffffff;\n  *(byte *)((long)param_1 + 0x3c) = *(byte *)((long)param_1 + 0x3c) & 0x80;\n  param_1[8] = 0;\n  param_1[9] = 0;\n  if (param_3 != 0) {\n    *(int *)(param_3 + 0x50) = *(int *)(param_3 + 0x50) + 1;\n                    /* try { // try from 001d278b to 001d27ab has its CatchHandler @ 001d28ab */\n    uVar1 = FUN_0017a800(param_3);\n    *(byte *)((long)param_1 + 0x3c) =\n         *(byte *)((long)param_1 + 0x3c) & 0xdf | (byte)((uVar1 & 1) << 5);\n    pbVar2 = (byte *)FUN_0017a7e0(param_3);\n    *(byte *)((long)param_1 + 0x3c) =\n         *(byte *)((long)param_1 + 0x3c) & 0xbf | (byte)((*pbVar2 & 1) << 6);\n  }\n  param_1[10] = 0;\n  *param_1 = &DAT_00431b88;\n  *(undefined1 (*) [16])(param_1 + 0x19) = (undefined1  [16])0x0;\n  param_1[0xb] = 0;\n  param_1[0xc] = 0;\n  param_1[0xd] = 0;\n  param_1[0xe] = 0;\n  *(undefined1 *)(param_1 + 0xf) = 0;\n  param_1[0x11] = 0;\n  param_1[0x12] = 0;\n  param_1[0x13] = 0;\n  param_1[0x14] = 0;\n  param_1[0x1b] = 0;\n  param_1[0x15] = param_1 + 0x1b;\n  param_1[0x16] = 1;\n  param_1[0x17] = 0;\n  param_1[0x18] = 0;\n  *(undefined4 *)(param_1 + 0x19) = 0x3f800000;\n  param_1[0x1a] = 0;\n  param_1[0x1c] = 0;\n  param_1[0x1d] = 0;\n  param_1[0x1e] = 0;\n  return;\n}" primitive_type (function_declarator "FUN_001d2720(undefined8 *param_1,long *param_2,long param_3,undefined8 param_4)" identifier (parameter_list "(undefined8 *param_1,long *param_2,long param_3,undefined8 param_4)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "long *param_2" (sized_type_specifier "long" long) (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_4" type_identifier identifier) ))) (compound_statement "{\n  uint uVar1;\n  byte *pbVar2;\n  \n  *param_1 = &DAT_00431850;\n  param_1[1] = param_1 + 3;\n  FUN_00166a10(param_1 + 1,*param_2,param_2[1] + *param_2);\n  param_1[5] = param_3;\n  param_1[6] = param_4;\n  *(undefined4 *)(param_1 + 7) = 0xffffffff;\n  *(byte *)((long)param_1 + 0x3c) = *(byte *)((long)param_1 + 0x3c) & 0x80;\n  param_1[8] = 0;\n  param_1[9] = 0;\n  if (param_3 != 0) {\n    *(int *)(param_3 + 0x50) = *(int *)(param_3 + 0x50) + 1;\n                    /* try { // try from 001d278b to 001d27ab has its CatchHandler @ 001d28ab */\n    uVar1 = FUN_0017a800(param_3);\n    *(byte *)((long)param_1 + 0x3c) =\n         *(byte *)((long)param_1 + 0x3c) & 0xdf | (byte)((uVar1 & 1) << 5);\n    pbVar2 = (byte *)FUN_0017a7e0(param_3);\n    *(byte *)((long)param_1 + 0x3c) =\n         *(byte *)((long)param_1 + 0x3c) & 0xbf | (byte)((*pbVar2 & 1) << 6);\n  }\n  param_1[10] = 0;\n  *param_1 = &DAT_00431b88;\n  *(undefined1 (*) [16])(param_1 + 0x19) = (undefined1  [16])0x0;\n  param_1[0xb] = 0;\n  param_1[0xc] = 0;\n  param_1[0xd] = 0;\n  param_1[0xe] = 0;\n  *(undefined1 *)(param_1 + 0xf) = 0;\n  param_1[0x11] = 0;\n  param_1[0x12] = 0;\n  param_1[0x13] = 0;\n  param_1[0x14] = 0;\n  param_1[0x1b] = 0;\n  param_1[0x15] = param_1 + 0x1b;\n  param_1[0x16] = 1;\n  param_1[0x17] = 0;\n  param_1[0x18] = 0;\n  *(undefined4 *)(param_1 + 0x19) = 0x3f800000;\n  param_1[0x1a] = 0;\n  param_1[0x1c] = 0;\n  param_1[0x1d] = 0;\n  param_1[0x1e] = 0;\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "byte *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (expression_statement "*param_1 = &DAT_00431850;" (assignment_expression "*param_1 = &DAT_00431850" (pointer_expression "*param_1" * identifier) = (pointer_expression "&DAT_00431850" & identifier)) ;) (expression_statement "param_1[1] = param_1 + 3;" (assignment_expression "param_1[1] = param_1 + 3" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (binary_expression "param_1 + 3" identifier + number_literal)) ;) (expression_statement "FUN_00166a10(param_1 + 1,*param_2,param_2[1] + *param_2);" (call_expression "FUN_00166a10(param_1 + 1,*param_2,param_2[1] + *param_2)" identifier (argument_list "(param_1 + 1,*param_2,param_2[1] + *param_2)" ( (binary_expression "param_1 + 1" identifier + number_literal) , (pointer_expression "*param_2" * identifier) , (binary_expression "param_2[1] + *param_2" (subscript_expression "param_2[1]" identifier [ number_literal ]) + (pointer_expression "*param_2" * identifier)) ))) ;) (expression_statement "param_1[5] = param_3;" (assignment_expression "param_1[5] = param_3" (subscript_expression "param_1[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[6] = param_4;" (assignment_expression "param_1[6] = param_4" (subscript_expression "param_1[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 *)(param_1 + 7) = 0xffffffff;" (assignment_expression "*(undefined4 *)(param_1 + 7) = 0xffffffff" (pointer_expression "*(undefined4 *)(param_1 + 7)" * (cast_expression "(undefined4 *)(param_1 + 7)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)((long)param_1 + 0x3c) = *(byte *)((long)param_1 + 0x3c) & 0x80;" (assignment_expression "*(byte *)((long)param_1 + 0x3c) = *(byte *)((long)param_1 + 0x3c) & 0x80" (pointer_expression "*(byte *)((long)param_1 + 0x3c)" * (cast_expression "(byte *)((long)param_1 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x3c)" ( (binary_expression "(long)param_1 + 0x3c" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((long)param_1 + 0x3c) & 0x80" (pointer_expression "*(byte *)((long)param_1 + 0x3c)" * (cast_expression "(byte *)((long)param_1 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x3c)" ( (binary_expression "(long)param_1 + 0x3c" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) 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[9] = 0;" (assignment_expression "param_1[9] = 0" (subscript_expression "param_1[9]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (param_3 != 0) {\n    *(int *)(param_3 + 0x50) = *(int *)(param_3 + 0x50) + 1;\n                    /* try { // try from 001d278b to 001d27ab has its CatchHandler @ 001d28ab */\n    uVar1 = FUN_0017a800(param_3);\n    *(byte *)((long)param_1 + 0x3c) =\n         *(byte *)((long)param_1 + 0x3c) & 0xdf | (byte)((uVar1 & 1) << 5);\n    pbVar2 = (byte *)FUN_0017a7e0(param_3);\n    *(byte *)((long)param_1 + 0x3c) =\n         *(byte *)((long)param_1 + 0x3c) & 0xbf | (byte)((*pbVar2 & 1) << 6);\n  }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n    *(int *)(param_3 + 0x50) = *(int *)(param_3 + 0x50) + 1;\n                    /* try { // try from 001d278b to 001d27ab has its CatchHandler @ 001d28ab */\n    uVar1 = FUN_0017a800(param_3);\n    *(byte *)((long)param_1 + 0x3c) =\n         *(byte *)((long)param_1 + 0x3c) & 0xdf | (byte)((uVar1 & 1) << 5);\n    pbVar2 = (byte *)FUN_0017a7e0(param_3);\n    *(byte *)((long)param_1 + 0x3c) =\n         *(byte *)((long)param_1 + 0x3c) & 0xbf | (byte)((*pbVar2 & 1) << 6);\n  }" { (expression_statement "*(int *)(param_3 + 0x50) = *(int *)(param_3 + 0x50) + 1;" (assignment_expression "*(int *)(param_3 + 0x50) = *(int *)(param_3 + 0x50) + 1" (pointer_expression "*(int *)(param_3 + 0x50)" * (cast_expression "(int *)(param_3 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x50)" ( (binary_expression "param_3 + 0x50" identifier + number_literal) )))) = (binary_expression "*(int *)(param_3 + 0x50) + 1" (pointer_expression "*(int *)(param_3 + 0x50)" * (cast_expression "(int *)(param_3 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x50)" ( (binary_expression "param_3 + 0x50" identifier + number_literal) )))) + number_literal)) ;) comment (expression_statement "uVar1 = FUN_0017a800(param_3);" (assignment_expression "uVar1 = FUN_0017a800(param_3)" identifier = (call_expression "FUN_0017a800(param_3)" identifier (argument_list "(param_3)" ( identifier )))) ;) (expression_statement "*(byte *)((long)param_1 + 0x3c) =\n         *(byte *)((long)param_1 + 0x3c) & 0xdf | (byte)((uVar1 & 1) << 5);" (assignment_expression "*(byte *)((long)param_1 + 0x3c) =\n         *(byte *)((long)param_1 + 0x3c) & 0xdf | (byte)((uVar1 & 1) << 5)" (pointer_expression "*(byte *)((long)param_1 + 0x3c)" * (cast_expression "(byte *)((long)param_1 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x3c)" ( (binary_expression "(long)param_1 + 0x3c" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((long)param_1 + 0x3c) & 0xdf | (byte)((uVar1 & 1) << 5)" (binary_expression "*(byte *)((long)param_1 + 0x3c) & 0xdf" (pointer_expression "*(byte *)((long)param_1 + 0x3c)" * (cast_expression "(byte *)((long)param_1 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x3c)" ( (binary_expression "(long)param_1 + 0x3c" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) | (call_expression "(byte)((uVar1 & 1) << 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uVar1 & 1) << 5)" ( (binary_expression "(uVar1 & 1) << 5" (parenthesized_expression "(uVar1 & 1)" ( (binary_expression "uVar1 & 1" identifier & number_literal) )) << number_literal) ))))) ;) (expression_statement "pbVar2 = (byte *)FUN_0017a7e0(param_3);" (assignment_expression "pbVar2 = (byte *)FUN_0017a7e0(param_3)" identifier = (cast_expression "(byte *)FUN_0017a7e0(param_3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0017a7e0(param_3)" identifier (argument_list "(param_3)" ( identifier ))))) ;) (expression_statement "*(byte *)((long)param_1 + 0x3c) =\n         *(byte *)((long)param_1 + 0x3c) & 0xbf | (byte)((*pbVar2 & 1) << 6);" (assignment_expression "*(byte *)((long)param_1 + 0x3c) =\n         *(byte *)((long)param_1 + 0x3c) & 0xbf | (byte)((*pbVar2 & 1) << 6)" (pointer_expression "*(byte *)((long)param_1 + 0x3c)" * (cast_expression "(byte *)((long)param_1 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x3c)" ( (binary_expression "(long)param_1 + 0x3c" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((long)param_1 + 0x3c) & 0xbf | (byte)((*pbVar2 & 1) << 6)" (binary_expression "*(byte *)((long)param_1 + 0x3c) & 0xbf" (pointer_expression "*(byte *)((long)param_1 + 0x3c)" * (cast_expression "(byte *)((long)param_1 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x3c)" ( (binary_expression "(long)param_1 + 0x3c" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) | (call_expression "(byte)((*pbVar2 & 1) << 6)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((*pbVar2 & 1) << 6)" ( (binary_expression "(*pbVar2 & 1) << 6" (parenthesized_expression "(*pbVar2 & 1)" ( (binary_expression "*pbVar2 & 1" (pointer_expression "*pbVar2" * identifier) & number_literal) )) << number_literal) ))))) ;) })) (expression_statement "param_1[10] = 0;" (assignment_expression "param_1[10] = 0" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*param_1 = &DAT_00431b88;" (assignment_expression "*param_1 = &DAT_00431b88" (pointer_expression "*param_1" * identifier) = (pointer_expression "&DAT_00431b88" & identifier)) ;) (expression_statement "*(undefined1 (*) [16])(param_1 + 0x19) = (undefined1  [16])0x0;" (assignment_expression "*(undefined1 (*) [16])(param_1 + 0x19) = (undefined1  [16])0x0" (pointer_expression "*(undefined1 (*) [16])(param_1 + 0x19)" * (cast_expression "(undefined1 (*) [16])(param_1 + 0x19)" ( (type_descriptor "undefined1 (*) [16]" type_identifier (abstract_array_declarator "(*) [16]" (abstract_parenthesized_declarator "(*)" ( (abstract_pointer_declarator "*" *) )) [ number_literal ])) ) (parenthesized_expression "(param_1 + 0x19)" ( (binary_expression "param_1 + 0x19" identifier + number_literal) )))) = (cast_expression "(undefined1  [16])0x0" ( (type_descriptor "undefined1  [16]" type_identifier (abstract_array_declarator "[16]" [ number_literal ])) ) number_literal)) ;) (expression_statement "param_1[0xb] = 0;" (assignment_expression "param_1[0xb] = 0" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0xc] = 0;" (assignment_expression "param_1[0xc] = 0" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0xd] = 0;" (assignment_expression "param_1[0xd] = 0" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0xe] = 0;" (assignment_expression "param_1[0xe] = 0" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 0xf) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xf) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xf)" * (cast_expression "(undefined1 *)(param_1 + 0xf)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf)" ( (binary_expression "param_1 + 0xf" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_1[0x11] = 0;" (assignment_expression "param_1[0x11] = 0" (subscript_expression "param_1[0x11]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x12] = 0;" (assignment_expression "param_1[0x12] = 0" (subscript_expression "param_1[0x12]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x13] = 0;" (assignment_expression "param_1[0x13] = 0" (subscript_expression "param_1[0x13]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x14] = 0;" (assignment_expression "param_1[0x14] = 0" (subscript_expression "param_1[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x1b] = 0;" (assignment_expression "param_1[0x1b] = 0" (subscript_expression "param_1[0x1b]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x15] = param_1 + 0x1b;" (assignment_expression "param_1[0x15] = param_1 + 0x1b" (subscript_expression "param_1[0x15]" identifier [ number_literal ]) = (binary_expression "param_1 + 0x1b" identifier + number_literal)) ;) (expression_statement "param_1[0x16] = 1;" (assignment_expression "param_1[0x16] = 1" (subscript_expression "param_1[0x16]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x17] = 0;" (assignment_expression "param_1[0x17] = 0" (subscript_expression "param_1[0x17]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x18] = 0;" (assignment_expression "param_1[0x18] = 0" (subscript_expression "param_1[0x18]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x19) = 0x3f800000;" (assignment_expression "*(undefined4 *)(param_1 + 0x19) = 0x3f800000" (pointer_expression "*(undefined4 *)(param_1 + 0x19)" * (cast_expression "(undefined4 *)(param_1 + 0x19)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x19)" ( (binary_expression "param_1 + 0x19" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_1[0x1a] = 0;" (assignment_expression "param_1[0x1a] = 0" (subscript_expression "param_1[0x1a]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x1c] = 0;" (assignment_expression "param_1[0x1c] = 0" (subscript_expression "param_1[0x1c]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x1d] = 0;" (assignment_expression "param_1[0x1d] = 0" (subscript_expression "param_1[0x1d]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x1e] = 0;" (assignment_expression "param_1[0x1e] = 0" (subscript_expression "param_1[0x1e]" identifier [ number_literal ]) = number_literal) ;) (return_statement "return;" return ;) })))
(translation_unit "/* DWARF original prototype: void Sized_relobj(Sized_relobj<32,_true> * this, string * name,\n   Input_file * input_file, off_t offset) */\n\nvoid __thiscall\ngold::Sized_relobj<32,_true>::Sized_relobj\n          (Sized_relobj<32,_true> *this,string *name,Input_file *input_file,off_t offset)\n\n{\n  undefined1 *puVar1;\n  int *piVar2;\n  pointer pcVar3;\n  bool bVar4;\n  Position_dependent_options *pPVar5;\n  \n  (this->super_Relobj).super_Object._vptr_Object = (_func_int_varargs **)&DAT_00431850;\n  (this->super_Relobj).super_Object.name_._M_dataplus._M_p =\n       (pointer)&(this->super_Relobj).super_Object.name_.field_2;\n  pcVar3 = (name->_M_dataplus)._M_p;\n  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char*>(&(this->super_Relobj).super_Object.name_,pcVar3,\n                      pcVar3 + name->_M_string_length);\n  (this->super_Relobj).super_Object.input_file_ = input_file;\n  (this->super_Relobj).super_Object.offset_ = offset;\n  (this->super_Relobj).super_Object.shnum_ = 0xffffffff;\n  puVar1 = &(this->super_Relobj).super_Object.field_0x3c;\n  *puVar1 = *puVar1 & 0x80;\n  (this->super_Relobj).super_Object.xindex_ = (Xindex *)0x0;\n  (this->super_Relobj).super_Object.compressed_sections_ = (Compressed_section_map *)0x0;\n  if (input_file != (Input_file *)0x0) {\n    piVar2 = &(input_file->file_).object_count_;\n    *piVar2 = *piVar2 + 1;\n                    /* try { // try from 001d278b to 001d27ab has its CatchHandler @ 001d28ab */\n    bVar4 = Input_file::is_in_system_directory(input_file);\n    (this->super_Relobj).super_Object.field_0x3c =\n         (this->super_Relobj).super_Object.field_0x3c & 0xdf | bVar4 << 5;\n    pPVar5 = Input_file::options(input_file);\n    (this->super_Relobj).super_Object.field_0x3c =\n         (this->super_Relobj).super_Object.field_0x3c & 0xbf | (byte)((pPVar5->as_needed_ & 1) << 6)\n    ;\n  }\n  (this->super_Relobj).output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl._M_start\n       = (pointer)0x0;\n  (this->super_Relobj).super_Object._vptr_Object = (_func_int_varargs **)&DAT_00431b88;\n  (this->local_got_offsets_)._M_h._M_rehash_policy._M_max_load_factor = 0.0;\n  *(undefined4 *)&(this->local_got_offsets_)._M_h._M_rehash_policy.field_0x4 = 0;\n  (this->local_got_offsets_)._M_h._M_rehash_policy._M_next_resize = 0;\n  (this->super_Relobj).output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n  _M_finish = (pointer)0x0;\n  (this->super_Relobj).output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n  _M_end_of_storage = (pointer)0x0;\n  (this->super_Relobj).map_to_relocatable_relocs_ =\n       (vector<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_> *)0x0;\n  (this->super_Relobj).object_merge_map_ = (Object_merge_map *)0x0;\n  (this->super_Relobj).relocs_must_follow_section_writes_ = false;\n  (this->super_Relobj).sd_ = (Symbols_data *)0x0;\n  (this->super_Relobj).reloc_counts_ = (uint *)0x0;\n  (this->super_Relobj).reloc_bases_ = (uint *)0x0;\n  (this->super_Relobj).first_dyn_reloc_ = 0;\n  (this->super_Relobj).dyn_reloc_count_ = 0;\n  (this->local_got_offsets_)._M_h._M_single_bucket = (__bucket_type)0x0;\n  (this->local_got_offsets_)._M_h._M_buckets = &(this->local_got_offsets_)._M_h._M_single_bucket;\n  (this->local_got_offsets_)._M_h._M_bucket_count = 1;\n  (this->local_got_offsets_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0;\n  (this->local_got_offsets_)._M_h._M_element_count = 0;\n  (this->local_got_offsets_)._M_h._M_rehash_policy._M_max_load_factor = 1.0;\n  (this->local_got_offsets_)._M_h._M_rehash_policy._M_next_resize = 0;\n  (this->section_offsets_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n  _M_start = (pointer)0x0;\n  (this->section_offsets_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n  _M_finish = (pointer)0x0;\n  (this->section_offsets_).super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n  _M_end_of_storage = (pointer)0x0;\n  return;\n}\n\n" comment (declaration "void __thiscall\ngold::Sized_relobj<32,_true>::Sized_relobj\n          (Sized_relobj<32,_true> *this,string *name,Input_file *input_file,off_t offset)\n\n{\n  undefined1 *puVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<32" < number_literal) , (ERROR "_true>::Sized_relobj\n          (Sized_relobj<32,_true> *this,string *name,Input_file *input_file,off_t offset)\n\n{\n  undefined1" identifier > : : (function_declarator "Sized_relobj\n          (Sized_relobj<32,_true> *this,string *name,Input_file *input_file,off_t offset)" identifier (parameter_list "(Sized_relobj<32,_true> *this,string *name,Input_file *input_file,off_t offset)" ( (parameter_declaration "Sized_relobj" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "_true> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "string *name" type_identifier (pointer_declarator "*name" * identifier)) , (parameter_declaration "Input_file *input_file" type_identifier (pointer_declarator "*input_file" * identifier)) , (parameter_declaration "off_t offset" type_identifier identifier) ))) { identifier) (pointer_declarator "*puVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "pointer pcVar3;" type_identifier identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "Position_dependent_options *pPVar5;" type_identifier (pointer_declarator "*pPVar5" * identifier) ;) (expression_statement "(this->super_Relobj).super_Object._vptr_Object = (_func_int_varargs **)&DAT_00431850;" (assignment_expression "(this->super_Relobj).super_Object._vptr_Object = (_func_int_varargs **)&DAT_00431850" (field_expression "(this->super_Relobj).super_Object._vptr_Object" (field_expression "(this->super_Relobj).super_Object" (parenthesized_expression "(this->super_Relobj)" ( (field_expression "this->super_Relobj" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(_func_int_varargs **)&DAT_00431850" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&DAT_00431850" & identifier))) ;) (expression_statement "(this->super_Relobj).super_Object.name_._M_dataplus._M_p =\n       (pointer)&(this->super_Relobj).super_Object.name_.field_2;" (assignment_expression "(this->super_Relobj).super_Object.name_._M_dataplus._M_p =\n       (pointer)&(this->super_Relobj).super_Object.name_.field_2" (field_expression "(this->super_Relobj).super_Object.name_._M_dataplus._M_p" (field_expression "(this->super_Relobj).super_Object.name_._M_dataplus" (field_expression "(this->super_Relobj).super_Object.name_" (field_expression "(this->super_Relobj).super_Object" (parenthesized_expression "(this->super_Relobj)" ( (field_expression "this->super_Relobj" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (binary_expression "(pointer)&(this->super_Relobj).super_Object.name_.field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "(this->super_Relobj).super_Object.name_.field_2" (field_expression "(this->super_Relobj).super_Object.name_" (field_expression "(this->super_Relobj).super_Object" (parenthesized_expression "(this->super_Relobj)" ( (field_expression "this->super_Relobj" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier))) ;) (expression_statement "pcVar3 = (name->_M_dataplus)._M_p;" (assignment_expression "pcVar3 = (name->_M_dataplus)._M_p" identifier = (field_expression "(name->_M_dataplus)._M_p" (parenthesized_expression "(name->_M_dataplus)" ( (field_expression "name->_M_dataplus" identifier -> field_identifier) )) . field_identifier)) ;) (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char*>(&(this->super_Relobj).super_Object.name_,pcVar3,\n                      pcVar3 + name->_M_string_length);" statement_identifier (ERROR "::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>:" : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > :) : (expression_statement "_M_construct<char*>(&(this->super_Relobj).super_Object.name_,pcVar3,\n                      pcVar3 + name->_M_string_length);" (binary_expression "_M_construct<char*>(&(this->super_Relobj).super_Object.name_,pcVar3,\n                      pcVar3 + name->_M_string_length)" (binary_expression "_M_construct<char" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "(&(this->super_Relobj).super_Object.name_,pcVar3,\n                      pcVar3 + name->_M_string_length)" ( (comma_expression "&(this->super_Relobj).super_Object.name_,pcVar3,\n                      pcVar3 + name->_M_string_length" (pointer_expression "&(this->super_Relobj).super_Object.name_" & (field_expression "(this->super_Relobj).super_Object.name_" (field_expression "(this->super_Relobj).super_Object" (parenthesized_expression "(this->super_Relobj)" ( (field_expression "this->super_Relobj" identifier -> field_identifier) )) . field_identifier) . field_identifier)) , (comma_expression "pcVar3,\n                      pcVar3 + name->_M_string_length" identifier , (binary_expression "pcVar3 + name->_M_string_length" identifier + (field_expression "name->_M_string_length" identifier -> field_identifier)))) ))) ;)) (expression_statement "(this->super_Relobj).super_Object.input_file_ = input_file;" (assignment_expression "(this->super_Relobj).super_Object.input_file_ = input_file" (field_expression "(this->super_Relobj).super_Object.input_file_" (field_expression "(this->super_Relobj).super_Object" (parenthesized_expression "(this->super_Relobj)" ( (field_expression "this->super_Relobj" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(this->super_Relobj).super_Object.offset_ = offset;" (assignment_expression "(this->super_Relobj).super_Object.offset_ = offset" (field_expression "(this->super_Relobj).super_Object.offset_" (field_expression "(this->super_Relobj).super_Object" (parenthesized_expression "(this->super_Relobj)" ( (field_expression "this->super_Relobj" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(this->super_Relobj).super_Object.shnum_ = 0xffffffff;" (assignment_expression "(this->super_Relobj).super_Object.shnum_ = 0xffffffff" (field_expression "(this->super_Relobj).super_Object.shnum_" (field_expression "(this->super_Relobj).super_Object" (parenthesized_expression "(this->super_Relobj)" ( (field_expression "this->super_Relobj" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "puVar1 = &(this->super_Relobj).super_Object.field_0x3c;" (assignment_expression "puVar1 = &(this->super_Relobj).super_Object.field_0x3c" identifier = (pointer_expression "&(this->super_Relobj).super_Object.field_0x3c" & (field_expression "(this->super_Relobj).super_Object.field_0x3c" (field_expression "(this->super_Relobj).super_Object" (parenthesized_expression "(this->super_Relobj)" ( (field_expression "this->super_Relobj" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (expression_statement "*puVar1 = *puVar1 & 0x80;" (assignment_expression "*puVar1 = *puVar1 & 0x80" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 & 0x80" (pointer_expression "*puVar1" * identifier) & number_literal)) ;) (expression_statement "(this->super_Relobj).super_Object.xindex_ = (Xindex *)0x0;" (assignment_expression "(this->super_Relobj).super_Object.xindex_ = (Xindex *)0x0" (field_expression "(this->super_Relobj).super_Object.xindex_" (field_expression "(this->super_Relobj).super_Object" (parenthesized_expression "(this->super_Relobj)" ( (field_expression "this->super_Relobj" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(Xindex *)0x0" ( (type_descriptor "Xindex *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(this->super_Relobj).super_Object.compressed_sections_ = (Compressed_section_map *)0x0;" (assignment_expression "(this->super_Relobj).super_Object.compressed_sections_ = (Compressed_section_map *)0x0" (field_expression "(this->super_Relobj).super_Object.compressed_sections_" (field_expression "(this->super_Relobj).super_Object" (parenthesized_expression "(this->super_Relobj)" ( (field_expression "this->super_Relobj" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(Compressed_section_map *)0x0" ( (type_descriptor "Compressed_section_map *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (input_file != (Input_file *)0x0) {\n    piVar2 = &(input_file->file_).object_count_;\n    *piVar2 = *piVar2 + 1;\n                    /* try { // try from 001d278b to 001d27ab has its CatchHandler @ 001d28ab */\n    bVar4 = Input_file::is_in_system_directory(input_file);\n    (this->super_Relobj).super_Object.field_0x3c =\n         (this->super_Relobj).super_Object.field_0x3c & 0xdf | bVar4 << 5;\n    pPVar5 = Input_file::options(input_file);\n    (this->super_Relobj).super_Object.field_0x3c =\n         (this->super_Relobj).super_Object.field_0x3c & 0xbf | (byte)((pPVar5->as_needed_ & 1) << 6)\n    ;\n  }" if (parenthesized_expression "(input_file != (Input_file *)0x0)" ( (binary_expression "input_file != (Input_file *)0x0" identifier != (cast_expression "(Input_file *)0x0" ( (type_descriptor "Input_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    piVar2 = &(input_file->file_).object_count_;\n    *piVar2 = *piVar2 + 1;\n                    /* try { // try from 001d278b to 001d27ab has its CatchHandler @ 001d28ab */\n    bVar4 = Input_file::is_in_system_directory(input_file);\n    (this->super_Relobj).super_Object.field_0x3c =\n         (this->super_Relobj).super_Object.field_0x3c & 0xdf | bVar4 << 5;\n    pPVar5 = Input_file::options(input_file);\n    (this->super_Relobj).super_Object.field_0x3c =\n         (this->super_Relobj).super_Object.field_0x3c & 0xbf | (byte)((pPVar5->as_needed_ & 1) << 6)\n    ;\n  }" { (expression_statement "piVar2 = &(input_file->file_).object_count_;" (assignment_expression "piVar2 = &(input_file->file_).object_count_" identifier = (pointer_expression "&(input_file->file_).object_count_" & (field_expression "(input_file->file_).object_count_" (parenthesized_expression "(input_file->file_)" ( (field_expression "input_file->file_" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "*piVar2 = *piVar2 + 1;" (assignment_expression "*piVar2 = *piVar2 + 1" (pointer_expression "*piVar2" * identifier) = (binary_expression "*piVar2 + 1" (pointer_expression "*piVar2" * identifier) + number_literal)) ;) comment (ERROR "bVar4 = Input_file::" (assignment_expression "bVar4 = Input_file" identifier = identifier) : :) (expression_statement "is_in_system_directory(input_file);" (call_expression "is_in_system_directory(input_file)" identifier (argument_list "(input_file)" ( identifier ))) ;) (expression_statement "(this->super_Relobj).super_Object.field_0x3c =\n         (this->super_Relobj).super_Object.field_0x3c & 0xdf | bVar4 << 5;" (assignment_expression "(this->super_Relobj).super_Object.field_0x3c =\n         (this->super_Relobj).super_Object.field_0x3c & 0xdf | bVar4 << 5" (field_expression "(this->super_Relobj).super_Object.field_0x3c" (field_expression "(this->super_Relobj).super_Object" (parenthesized_expression "(this->super_Relobj)" ( (field_expression "this->super_Relobj" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (binary_expression "(this->super_Relobj).super_Object.field_0x3c & 0xdf | bVar4 << 5" (binary_expression "(this->super_Relobj).super_Object.field_0x3c & 0xdf" (field_expression "(this->super_Relobj).super_Object.field_0x3c" (field_expression "(this->super_Relobj).super_Object" (parenthesized_expression "(this->super_Relobj)" ( (field_expression "this->super_Relobj" identifier -> field_identifier) )) . field_identifier) . field_identifier) & number_literal) | (binary_expression "bVar4 << 5" identifier << number_literal))) ;) (ERROR "pPVar5 = Input_file::" (assignment_expression "pPVar5 = Input_file" identifier = identifier) : :) (expression_statement "options(input_file);" (call_expression "options(input_file)" identifier (argument_list "(input_file)" ( identifier ))) ;) (expression_statement "(this->super_Relobj).super_Object.field_0x3c =\n         (this->super_Relobj).super_Object.field_0x3c & 0xbf | (byte)((pPVar5->as_needed_ & 1) << 6)\n    ;" (assignment_expression "(this->super_Relobj).super_Object.field_0x3c =\n         (this->super_Relobj).super_Object.field_0x3c & 0xbf | (byte)((pPVar5->as_needed_ & 1) << 6)" (field_expression "(this->super_Relobj).super_Object.field_0x3c" (field_expression "(this->super_Relobj).super_Object" (parenthesized_expression "(this->super_Relobj)" ( (field_expression "this->super_Relobj" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (binary_expression "(this->super_Relobj).super_Object.field_0x3c & 0xbf | (byte)((pPVar5->as_needed_ & 1) << 6)" (binary_expression "(this->super_Relobj).super_Object.field_0x3c & 0xbf" (field_expression "(this->super_Relobj).super_Object.field_0x3c" (field_expression "(this->super_Relobj).super_Object" (parenthesized_expression "(this->super_Relobj)" ( (field_expression "this->super_Relobj" identifier -> field_identifier) )) . field_identifier) . field_identifier) & number_literal) | (call_expression "(byte)((pPVar5->as_needed_ & 1) << 6)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((pPVar5->as_needed_ & 1) << 6)" ( (binary_expression "(pPVar5->as_needed_ & 1) << 6" (parenthesized_expression "(pPVar5->as_needed_ & 1)" ( (binary_expression "pPVar5->as_needed_ & 1" (field_expression "pPVar5->as_needed_" identifier -> field_identifier) & number_literal) )) << number_literal) ))))) ;) })) (expression_statement "(this->super_Relobj).output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl._M_start\n       = (pointer)0x0;" (assignment_expression "(this->super_Relobj).output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl._M_start\n       = (pointer)0x0" (field_expression "(this->super_Relobj).output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl._M_start" (field_expression "(this->super_Relobj).output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl" (binary_expression "(this->super_Relobj).output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "(this->super_Relobj).output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "(this->super_Relobj).output_sections_.\n  super__Vector_base<gold::Output_section*,_std" (binary_expression "(this->super_Relobj).output_sections_.\n  super__Vector_base<gold" (field_expression "(this->super_Relobj).output_sections_.\n  super__Vector_base" (field_expression "(this->super_Relobj).output_sections_" (parenthesized_expression "(this->super_Relobj)" ( (field_expression "this->super_Relobj" identifier -> field_identifier) )) . field_identifier) . field_identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "(this->super_Relobj).super_Object._vptr_Object = (_func_int_varargs **)&DAT_00431b88;" (assignment_expression "(this->super_Relobj).super_Object._vptr_Object = (_func_int_varargs **)&DAT_00431b88" (field_expression "(this->super_Relobj).super_Object._vptr_Object" (field_expression "(this->super_Relobj).super_Object" (parenthesized_expression "(this->super_Relobj)" ( (field_expression "this->super_Relobj" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(_func_int_varargs **)&DAT_00431b88" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&DAT_00431b88" & identifier))) ;) (expression_statement "(this->local_got_offsets_)._M_h._M_rehash_policy._M_max_load_factor = 0.0;" (assignment_expression "(this->local_got_offsets_)._M_h._M_rehash_policy._M_max_load_factor = 0.0" (field_expression "(this->local_got_offsets_)._M_h._M_rehash_policy._M_max_load_factor" (field_expression "(this->local_got_offsets_)._M_h._M_rehash_policy" (field_expression "(this->local_got_offsets_)._M_h" (parenthesized_expression "(this->local_got_offsets_)" ( (field_expression "this->local_got_offsets_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "*(undefined4 *)&(this->local_got_offsets_)._M_h._M_rehash_policy.field_0x4 = 0;" (assignment_expression "*(undefined4 *)&(this->local_got_offsets_)._M_h._M_rehash_policy.field_0x4 = 0" (pointer_expression "*(undefined4 *)&(this->local_got_offsets_)._M_h._M_rehash_policy.field_0x4" * (cast_expression "(undefined4 *)&(this->local_got_offsets_)._M_h._M_rehash_policy.field_0x4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this->local_got_offsets_)._M_h._M_rehash_policy.field_0x4" & (field_expression "(this->local_got_offsets_)._M_h._M_rehash_policy.field_0x4" (field_expression "(this->local_got_offsets_)._M_h._M_rehash_policy" (field_expression "(this->local_got_offsets_)._M_h" (parenthesized_expression "(this->local_got_offsets_)" ( (field_expression "this->local_got_offsets_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)))) = number_literal) ;) (expression_statement "(this->local_got_offsets_)._M_h._M_rehash_policy._M_next_resize = 0;" (assignment_expression "(this->local_got_offsets_)._M_h._M_rehash_policy._M_next_resize = 0" (field_expression "(this->local_got_offsets_)._M_h._M_rehash_policy._M_next_resize" (field_expression "(this->local_got_offsets_)._M_h._M_rehash_policy" (field_expression "(this->local_got_offsets_)._M_h" (parenthesized_expression "(this->local_got_offsets_)" ( (field_expression "this->local_got_offsets_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(this->super_Relobj).output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n  _M_finish = (pointer)0x0;" (assignment_expression "(this->super_Relobj).output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n  _M_finish = (pointer)0x0" (field_expression "(this->super_Relobj).output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n  _M_finish" (field_expression "(this->super_Relobj).output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl" (binary_expression "(this->super_Relobj).output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "(this->super_Relobj).output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "(this->super_Relobj).output_sections_.\n  super__Vector_base<gold::Output_section*,_std" (binary_expression "(this->super_Relobj).output_sections_.\n  super__Vector_base<gold" (field_expression "(this->super_Relobj).output_sections_.\n  super__Vector_base" (field_expression "(this->super_Relobj).output_sections_" (parenthesized_expression "(this->super_Relobj)" ( (field_expression "this->super_Relobj" identifier -> field_identifier) )) . field_identifier) . field_identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "(this->super_Relobj).output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n  _M_end_of_storage = (pointer)0x0;" (assignment_expression "(this->super_Relobj).output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n  _M_end_of_storage = (pointer)0x0" (field_expression "(this->super_Relobj).output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n  _M_end_of_storage" (field_expression "(this->super_Relobj).output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl" (binary_expression "(this->super_Relobj).output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "(this->super_Relobj).output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "(this->super_Relobj).output_sections_.\n  super__Vector_base<gold::Output_section*,_std" (binary_expression "(this->super_Relobj).output_sections_.\n  super__Vector_base<gold" (field_expression "(this->super_Relobj).output_sections_.\n  super__Vector_base" (field_expression "(this->super_Relobj).output_sections_" (parenthesized_expression "(this->super_Relobj)" ( (field_expression "this->super_Relobj" identifier -> field_identifier) )) . field_identifier) . field_identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "(this->super_Relobj).map_to_relocatable_relocs_ =\n       (vector<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_> *)0x0;" (assignment_expression "(this->super_Relobj).map_to_relocatable_relocs_ =\n       (vector<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_> *)0x0" (field_expression "(this->super_Relobj).map_to_relocatable_relocs_" (parenthesized_expression "(this->super_Relobj)" ( (field_expression "this->super_Relobj" identifier -> field_identifier) )) . field_identifier) = (parenthesized_expression "(vector<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_> *)0x0" ( (ERROR "vector<gold::Relocatable_relocs*,_std::allocator<gold::" (binary_expression "vector<gold" identifier < identifier) : : (type_descriptor "Relocatable_relocs*" type_identifier (abstract_pointer_declarator "*" *)) , identifier : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Relocatable_relocs*>_> *)0x0" (binary_expression "Relocatable_relocs*>_" identifier * (ERROR ">" >) identifier) > (pointer_expression "*)0x0" * (ERROR ")" )) number_literal)) ))) ;) (expression_statement "(this->super_Relobj).object_merge_map_ = (Object_merge_map *)0x0;" (assignment_expression "(this->super_Relobj).object_merge_map_ = (Object_merge_map *)0x0" (field_expression "(this->super_Relobj).object_merge_map_" (parenthesized_expression "(this->super_Relobj)" ( (field_expression "this->super_Relobj" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(Object_merge_map *)0x0" ( (type_descriptor "Object_merge_map *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(this->super_Relobj).relocs_must_follow_section_writes_ = false;" (assignment_expression "(this->super_Relobj).relocs_must_follow_section_writes_ = false" (field_expression "(this->super_Relobj).relocs_must_follow_section_writes_" (parenthesized_expression "(this->super_Relobj)" ( (field_expression "this->super_Relobj" identifier -> field_identifier) )) . field_identifier) = false) ;) (expression_statement "(this->super_Relobj).sd_ = (Symbols_data *)0x0;" (assignment_expression "(this->super_Relobj).sd_ = (Symbols_data *)0x0" (field_expression "(this->super_Relobj).sd_" (parenthesized_expression "(this->super_Relobj)" ( (field_expression "this->super_Relobj" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(Symbols_data *)0x0" ( (type_descriptor "Symbols_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(this->super_Relobj).reloc_counts_ = (uint *)0x0;" (assignment_expression "(this->super_Relobj).reloc_counts_ = (uint *)0x0" (field_expression "(this->super_Relobj).reloc_counts_" (parenthesized_expression "(this->super_Relobj)" ( (field_expression "this->super_Relobj" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(this->super_Relobj).reloc_bases_ = (uint *)0x0;" (assignment_expression "(this->super_Relobj).reloc_bases_ = (uint *)0x0" (field_expression "(this->super_Relobj).reloc_bases_" (parenthesized_expression "(this->super_Relobj)" ( (field_expression "this->super_Relobj" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(this->super_Relobj).first_dyn_reloc_ = 0;" (assignment_expression "(this->super_Relobj).first_dyn_reloc_ = 0" (field_expression "(this->super_Relobj).first_dyn_reloc_" (parenthesized_expression "(this->super_Relobj)" ( (field_expression "this->super_Relobj" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(this->super_Relobj).dyn_reloc_count_ = 0;" (assignment_expression "(this->super_Relobj).dyn_reloc_count_ = 0" (field_expression "(this->super_Relobj).dyn_reloc_count_" (parenthesized_expression "(this->super_Relobj)" ( (field_expression "this->super_Relobj" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(this->local_got_offsets_)._M_h._M_single_bucket = (__bucket_type)0x0;" (assignment_expression "(this->local_got_offsets_)._M_h._M_single_bucket = (__bucket_type)0x0" (field_expression "(this->local_got_offsets_)._M_h._M_single_bucket" (field_expression "(this->local_got_offsets_)._M_h" (parenthesized_expression "(this->local_got_offsets_)" ( (field_expression "this->local_got_offsets_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(__bucket_type)0x0" ( (type_descriptor "__bucket_type" type_identifier) ) number_literal)) ;) (expression_statement "(this->local_got_offsets_)._M_h._M_buckets = &(this->local_got_offsets_)._M_h._M_single_bucket;" (assignment_expression "(this->local_got_offsets_)._M_h._M_buckets = &(this->local_got_offsets_)._M_h._M_single_bucket" (field_expression "(this->local_got_offsets_)._M_h._M_buckets" (field_expression "(this->local_got_offsets_)._M_h" (parenthesized_expression "(this->local_got_offsets_)" ( (field_expression "this->local_got_offsets_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (pointer_expression "&(this->local_got_offsets_)._M_h._M_single_bucket" & (field_expression "(this->local_got_offsets_)._M_h._M_single_bucket" (field_expression "(this->local_got_offsets_)._M_h" (parenthesized_expression "(this->local_got_offsets_)" ( (field_expression "this->local_got_offsets_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (expression_statement "(this->local_got_offsets_)._M_h._M_bucket_count = 1;" (assignment_expression "(this->local_got_offsets_)._M_h._M_bucket_count = 1" (field_expression "(this->local_got_offsets_)._M_h._M_bucket_count" (field_expression "(this->local_got_offsets_)._M_h" (parenthesized_expression "(this->local_got_offsets_)" ( (field_expression "this->local_got_offsets_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(this->local_got_offsets_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0;" (assignment_expression "(this->local_got_offsets_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0" (field_expression "(this->local_got_offsets_)._M_h._M_before_begin._M_nxt" (field_expression "(this->local_got_offsets_)._M_h._M_before_begin" (field_expression "(this->local_got_offsets_)._M_h" (parenthesized_expression "(this->local_got_offsets_)" ( (field_expression "this->local_got_offsets_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(this->local_got_offsets_)._M_h._M_element_count = 0;" (assignment_expression "(this->local_got_offsets_)._M_h._M_element_count = 0" (field_expression "(this->local_got_offsets_)._M_h._M_element_count" (field_expression "(this->local_got_offsets_)._M_h" (parenthesized_expression "(this->local_got_offsets_)" ( (field_expression "this->local_got_offsets_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(this->local_got_offsets_)._M_h._M_rehash_policy._M_max_load_factor = 1.0;" (assignment_expression "(this->local_got_offsets_)._M_h._M_rehash_policy._M_max_load_factor = 1.0" (field_expression "(this->local_got_offsets_)._M_h._M_rehash_policy._M_max_load_factor" (field_expression "(this->local_got_offsets_)._M_h._M_rehash_policy" (field_expression "(this->local_got_offsets_)._M_h" (parenthesized_expression "(this->local_got_offsets_)" ( (field_expression "this->local_got_offsets_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(this->local_got_offsets_)._M_h._M_rehash_policy._M_next_resize = 0;" (assignment_expression "(this->local_got_offsets_)._M_h._M_rehash_policy._M_next_resize = 0" (field_expression "(this->local_got_offsets_)._M_h._M_rehash_policy._M_next_resize" (field_expression "(this->local_got_offsets_)._M_h._M_rehash_policy" (field_expression "(this->local_got_offsets_)._M_h" (parenthesized_expression "(this->local_got_offsets_)" ( (field_expression "this->local_got_offsets_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (ERROR "(this->section_offsets_).super__Vector_base<unsigned_int," (binary_expression "(this->section_offsets_).super__Vector_base<unsigned_int" (field_expression "(this->section_offsets_).super__Vector_base" (parenthesized_expression "(this->section_offsets_)" ( (field_expression "this->section_offsets_" identifier -> field_identifier) )) . field_identifier) < identifier) ,) (labeled_statement "_std::allocator<unsigned_int>_>._M_impl.\n  _M_start = (pointer)0x0;" statement_identifier : (ERROR ":" :) (expression_statement "allocator<unsigned_int>_>._M_impl.\n  _M_start = (pointer)0x0;" (assignment_expression "allocator<unsigned_int>_>._M_impl.\n  _M_start = (pointer)0x0" (field_expression "allocator<unsigned_int>_>._M_impl.\n  _M_start" (field_expression "allocator<unsigned_int>_>._M_impl" (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;)) (ERROR "(this->section_offsets_).super__Vector_base<unsigned_int," (binary_expression "(this->section_offsets_).super__Vector_base<unsigned_int" (field_expression "(this->section_offsets_).super__Vector_base" (parenthesized_expression "(this->section_offsets_)" ( (field_expression "this->section_offsets_" identifier -> field_identifier) )) . field_identifier) < identifier) ,) (labeled_statement "_std::allocator<unsigned_int>_>._M_impl.\n  _M_finish = (pointer)0x0;" statement_identifier : (ERROR ":" :) (expression_statement "allocator<unsigned_int>_>._M_impl.\n  _M_finish = (pointer)0x0;" (assignment_expression "allocator<unsigned_int>_>._M_impl.\n  _M_finish = (pointer)0x0" (field_expression "allocator<unsigned_int>_>._M_impl.\n  _M_finish" (field_expression "allocator<unsigned_int>_>._M_impl" (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;)) (ERROR "(this->section_offsets_).super__Vector_base<unsigned_int," (binary_expression "(this->section_offsets_).super__Vector_base<unsigned_int" (field_expression "(this->section_offsets_).super__Vector_base" (parenthesized_expression "(this->section_offsets_)" ( (field_expression "this->section_offsets_" identifier -> field_identifier) )) . field_identifier) < identifier) ,) (labeled_statement "_std::allocator<unsigned_int>_>._M_impl.\n  _M_end_of_storage = (pointer)0x0;" statement_identifier : (ERROR ":" :) (expression_statement "allocator<unsigned_int>_>._M_impl.\n  _M_end_of_storage = (pointer)0x0;" (assignment_expression "allocator<unsigned_int>_>._M_impl.\n  _M_end_of_storage = (pointer)0x0" (field_expression "allocator<unsigned_int>_>._M_impl.\n  _M_end_of_storage" (field_expression "allocator<unsigned_int>_>._M_impl" (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;)) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void FUN_001d2720(undefined8 *param_1,long *param_2,long param_3,undefined8 param_4)\n\n{\n  uint uVar1;\n  byte *pbVar2;\n  \n  *param_1 = &DAT_00431850;\n  param_1[1] = param_1 + 3;\n  FUN_00166a10(param_1 + 1,*param_2,param_2[1] + *param_2);\n  param_1[5] = param_3;\n  param_1[6] = param_4;\n  *(undefined4 *)(param_1 + 7) = 0xffffffff;\n  *(byte *)((long)param_1 + 0x3c) = *(byte *)((long)param_1 + 0x3c) & 0x80;\n  param_1[8] = 0;\n  param_1[9] = 0;\n  if (param_3 != 0) {\n    *(int *)(param_3 + 0x50) = *(int *)(param_3 + 0x50) + 1;\n                    \n    uVar1 = FUN_0017a800(param_3);\n    *(byte *)((long)param_1 + 0x3c) =\n         *(byte *)((long)param_1 + 0x3c) & 0xdf | (byte)((uVar1 & 1) << 5);\n    pbVar2 = (byte *)FUN_0017a7e0(param_3);\n    *(byte *)((long)param_1 + 0x3c) =\n         *(byte *)((long)param_1 + 0x3c) & 0xbf | (byte)((*pbVar2 & 1) << 6);\n  }\n  param_1[10] = 0;\n  *param_1 = &DAT_00431b88;\n  *(undefined1 (*) [16])(param_1 + 0x19) = (undefined1  [16])0x0;\n  param_1[0xb] = 0;\n  param_1[0xc] = 0;\n  param_1[0xd] = 0;\n  param_1[0xe] = 0;\n  *(undefined1 *)(param_1 + 0xf) = 0;\n  param_1[0x11] = 0;\n  param_1[0x12] = 0;\n  param_1[0x13] = 0;\n  param_1[0x14] = 0;\n  param_1[0x1b] = 0;\n  param_1[0x15] = param_1 + 0x1b;\n  param_1[0x16] = 1;\n  param_1[0x17] = 0;\n  param_1[0x18] = 0;\n  *(undefined4 *)(param_1 + 0x19) = 0x3f800000;\n  param_1[0x1a] = 0;\n  param_1[0x1c] = 0;\n  param_1[0x1d] = 0;\n  param_1[0x1e] = 0;\n  return;\n}\n\n" (function_definition "void FUN_001d2720(undefined8 *param_1,long *param_2,long param_3,undefined8 param_4)\n\n{\n  uint uVar1;\n  byte *pbVar2;\n  \n  *param_1 = &DAT_00431850;\n  param_1[1] = param_1 + 3;\n  FUN_00166a10(param_1 + 1,*param_2,param_2[1] + *param_2);\n  param_1[5] = param_3;\n  param_1[6] = param_4;\n  *(undefined4 *)(param_1 + 7) = 0xffffffff;\n  *(byte *)((long)param_1 + 0x3c) = *(byte *)((long)param_1 + 0x3c) & 0x80;\n  param_1[8] = 0;\n  param_1[9] = 0;\n  if (param_3 != 0) {\n    *(int *)(param_3 + 0x50) = *(int *)(param_3 + 0x50) + 1;\n                    \n    uVar1 = FUN_0017a800(param_3);\n    *(byte *)((long)param_1 + 0x3c) =\n         *(byte *)((long)param_1 + 0x3c) & 0xdf | (byte)((uVar1 & 1) << 5);\n    pbVar2 = (byte *)FUN_0017a7e0(param_3);\n    *(byte *)((long)param_1 + 0x3c) =\n         *(byte *)((long)param_1 + 0x3c) & 0xbf | (byte)((*pbVar2 & 1) << 6);\n  }\n  param_1[10] = 0;\n  *param_1 = &DAT_00431b88;\n  *(undefined1 (*) [16])(param_1 + 0x19) = (undefined1  [16])0x0;\n  param_1[0xb] = 0;\n  param_1[0xc] = 0;\n  param_1[0xd] = 0;\n  param_1[0xe] = 0;\n  *(undefined1 *)(param_1 + 0xf) = 0;\n  param_1[0x11] = 0;\n  param_1[0x12] = 0;\n  param_1[0x13] = 0;\n  param_1[0x14] = 0;\n  param_1[0x1b] = 0;\n  param_1[0x15] = param_1 + 0x1b;\n  param_1[0x16] = 1;\n  param_1[0x17] = 0;\n  param_1[0x18] = 0;\n  *(undefined4 *)(param_1 + 0x19) = 0x3f800000;\n  param_1[0x1a] = 0;\n  param_1[0x1c] = 0;\n  param_1[0x1d] = 0;\n  param_1[0x1e] = 0;\n  return;\n}" primitive_type (function_declarator "FUN_001d2720(undefined8 *param_1,long *param_2,long param_3,undefined8 param_4)" identifier (parameter_list "(undefined8 *param_1,long *param_2,long param_3,undefined8 param_4)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "long *param_2" (sized_type_specifier "long" long) (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_4" type_identifier identifier) ))) (compound_statement "{\n  uint uVar1;\n  byte *pbVar2;\n  \n  *param_1 = &DAT_00431850;\n  param_1[1] = param_1 + 3;\n  FUN_00166a10(param_1 + 1,*param_2,param_2[1] + *param_2);\n  param_1[5] = param_3;\n  param_1[6] = param_4;\n  *(undefined4 *)(param_1 + 7) = 0xffffffff;\n  *(byte *)((long)param_1 + 0x3c) = *(byte *)((long)param_1 + 0x3c) & 0x80;\n  param_1[8] = 0;\n  param_1[9] = 0;\n  if (param_3 != 0) {\n    *(int *)(param_3 + 0x50) = *(int *)(param_3 + 0x50) + 1;\n                    \n    uVar1 = FUN_0017a800(param_3);\n    *(byte *)((long)param_1 + 0x3c) =\n         *(byte *)((long)param_1 + 0x3c) & 0xdf | (byte)((uVar1 & 1) << 5);\n    pbVar2 = (byte *)FUN_0017a7e0(param_3);\n    *(byte *)((long)param_1 + 0x3c) =\n         *(byte *)((long)param_1 + 0x3c) & 0xbf | (byte)((*pbVar2 & 1) << 6);\n  }\n  param_1[10] = 0;\n  *param_1 = &DAT_00431b88;\n  *(undefined1 (*) [16])(param_1 + 0x19) = (undefined1  [16])0x0;\n  param_1[0xb] = 0;\n  param_1[0xc] = 0;\n  param_1[0xd] = 0;\n  param_1[0xe] = 0;\n  *(undefined1 *)(param_1 + 0xf) = 0;\n  param_1[0x11] = 0;\n  param_1[0x12] = 0;\n  param_1[0x13] = 0;\n  param_1[0x14] = 0;\n  param_1[0x1b] = 0;\n  param_1[0x15] = param_1 + 0x1b;\n  param_1[0x16] = 1;\n  param_1[0x17] = 0;\n  param_1[0x18] = 0;\n  *(undefined4 *)(param_1 + 0x19) = 0x3f800000;\n  param_1[0x1a] = 0;\n  param_1[0x1c] = 0;\n  param_1[0x1d] = 0;\n  param_1[0x1e] = 0;\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "byte *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (expression_statement "*param_1 = &DAT_00431850;" (assignment_expression "*param_1 = &DAT_00431850" (pointer_expression "*param_1" * identifier) = (pointer_expression "&DAT_00431850" & identifier)) ;) (expression_statement "param_1[1] = param_1 + 3;" (assignment_expression "param_1[1] = param_1 + 3" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (binary_expression "param_1 + 3" identifier + number_literal)) ;) (expression_statement "FUN_00166a10(param_1 + 1,*param_2,param_2[1] + *param_2);" (call_expression "FUN_00166a10(param_1 + 1,*param_2,param_2[1] + *param_2)" identifier (argument_list "(param_1 + 1,*param_2,param_2[1] + *param_2)" ( (binary_expression "param_1 + 1" identifier + number_literal) , (pointer_expression "*param_2" * identifier) , (binary_expression "param_2[1] + *param_2" (subscript_expression "param_2[1]" identifier [ number_literal ]) + (pointer_expression "*param_2" * identifier)) ))) ;) (expression_statement "param_1[5] = param_3;" (assignment_expression "param_1[5] = param_3" (subscript_expression "param_1[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[6] = param_4;" (assignment_expression "param_1[6] = param_4" (subscript_expression "param_1[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 *)(param_1 + 7) = 0xffffffff;" (assignment_expression "*(undefined4 *)(param_1 + 7) = 0xffffffff" (pointer_expression "*(undefined4 *)(param_1 + 7)" * (cast_expression "(undefined4 *)(param_1 + 7)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 7)" ( (binary_expression "param_1 + 7" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)((long)param_1 + 0x3c) = *(byte *)((long)param_1 + 0x3c) & 0x80;" (assignment_expression "*(byte *)((long)param_1 + 0x3c) = *(byte *)((long)param_1 + 0x3c) & 0x80" (pointer_expression "*(byte *)((long)param_1 + 0x3c)" * (cast_expression "(byte *)((long)param_1 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x3c)" ( (binary_expression "(long)param_1 + 0x3c" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((long)param_1 + 0x3c) & 0x80" (pointer_expression "*(byte *)((long)param_1 + 0x3c)" * (cast_expression "(byte *)((long)param_1 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x3c)" ( (binary_expression "(long)param_1 + 0x3c" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) 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[9] = 0;" (assignment_expression "param_1[9] = 0" (subscript_expression "param_1[9]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (param_3 != 0) {\n    *(int *)(param_3 + 0x50) = *(int *)(param_3 + 0x50) + 1;\n                    \n    uVar1 = FUN_0017a800(param_3);\n    *(byte *)((long)param_1 + 0x3c) =\n         *(byte *)((long)param_1 + 0x3c) & 0xdf | (byte)((uVar1 & 1) << 5);\n    pbVar2 = (byte *)FUN_0017a7e0(param_3);\n    *(byte *)((long)param_1 + 0x3c) =\n         *(byte *)((long)param_1 + 0x3c) & 0xbf | (byte)((*pbVar2 & 1) << 6);\n  }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n    *(int *)(param_3 + 0x50) = *(int *)(param_3 + 0x50) + 1;\n                    \n    uVar1 = FUN_0017a800(param_3);\n    *(byte *)((long)param_1 + 0x3c) =\n         *(byte *)((long)param_1 + 0x3c) & 0xdf | (byte)((uVar1 & 1) << 5);\n    pbVar2 = (byte *)FUN_0017a7e0(param_3);\n    *(byte *)((long)param_1 + 0x3c) =\n         *(byte *)((long)param_1 + 0x3c) & 0xbf | (byte)((*pbVar2 & 1) << 6);\n  }" { (expression_statement "*(int *)(param_3 + 0x50) = *(int *)(param_3 + 0x50) + 1;" (assignment_expression "*(int *)(param_3 + 0x50) = *(int *)(param_3 + 0x50) + 1" (pointer_expression "*(int *)(param_3 + 0x50)" * (cast_expression "(int *)(param_3 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x50)" ( (binary_expression "param_3 + 0x50" identifier + number_literal) )))) = (binary_expression "*(int *)(param_3 + 0x50) + 1" (pointer_expression "*(int *)(param_3 + 0x50)" * (cast_expression "(int *)(param_3 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x50)" ( (binary_expression "param_3 + 0x50" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "uVar1 = FUN_0017a800(param_3);" (assignment_expression "uVar1 = FUN_0017a800(param_3)" identifier = (call_expression "FUN_0017a800(param_3)" identifier (argument_list "(param_3)" ( identifier )))) ;) (expression_statement "*(byte *)((long)param_1 + 0x3c) =\n         *(byte *)((long)param_1 + 0x3c) & 0xdf | (byte)((uVar1 & 1) << 5);" (assignment_expression "*(byte *)((long)param_1 + 0x3c) =\n         *(byte *)((long)param_1 + 0x3c) & 0xdf | (byte)((uVar1 & 1) << 5)" (pointer_expression "*(byte *)((long)param_1 + 0x3c)" * (cast_expression "(byte *)((long)param_1 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x3c)" ( (binary_expression "(long)param_1 + 0x3c" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((long)param_1 + 0x3c) & 0xdf | (byte)((uVar1 & 1) << 5)" (binary_expression "*(byte *)((long)param_1 + 0x3c) & 0xdf" (pointer_expression "*(byte *)((long)param_1 + 0x3c)" * (cast_expression "(byte *)((long)param_1 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x3c)" ( (binary_expression "(long)param_1 + 0x3c" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) | (call_expression "(byte)((uVar1 & 1) << 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uVar1 & 1) << 5)" ( (binary_expression "(uVar1 & 1) << 5" (parenthesized_expression "(uVar1 & 1)" ( (binary_expression "uVar1 & 1" identifier & number_literal) )) << number_literal) ))))) ;) (expression_statement "pbVar2 = (byte *)FUN_0017a7e0(param_3);" (assignment_expression "pbVar2 = (byte *)FUN_0017a7e0(param_3)" identifier = (cast_expression "(byte *)FUN_0017a7e0(param_3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0017a7e0(param_3)" identifier (argument_list "(param_3)" ( identifier ))))) ;) (expression_statement "*(byte *)((long)param_1 + 0x3c) =\n         *(byte *)((long)param_1 + 0x3c) & 0xbf | (byte)((*pbVar2 & 1) << 6);" (assignment_expression "*(byte *)((long)param_1 + 0x3c) =\n         *(byte *)((long)param_1 + 0x3c) & 0xbf | (byte)((*pbVar2 & 1) << 6)" (pointer_expression "*(byte *)((long)param_1 + 0x3c)" * (cast_expression "(byte *)((long)param_1 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x3c)" ( (binary_expression "(long)param_1 + 0x3c" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((long)param_1 + 0x3c) & 0xbf | (byte)((*pbVar2 & 1) << 6)" (binary_expression "*(byte *)((long)param_1 + 0x3c) & 0xbf" (pointer_expression "*(byte *)((long)param_1 + 0x3c)" * (cast_expression "(byte *)((long)param_1 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x3c)" ( (binary_expression "(long)param_1 + 0x3c" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) | (call_expression "(byte)((*pbVar2 & 1) << 6)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((*pbVar2 & 1) << 6)" ( (binary_expression "(*pbVar2 & 1) << 6" (parenthesized_expression "(*pbVar2 & 1)" ( (binary_expression "*pbVar2 & 1" (pointer_expression "*pbVar2" * identifier) & number_literal) )) << number_literal) ))))) ;) })) (expression_statement "param_1[10] = 0;" (assignment_expression "param_1[10] = 0" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*param_1 = &DAT_00431b88;" (assignment_expression "*param_1 = &DAT_00431b88" (pointer_expression "*param_1" * identifier) = (pointer_expression "&DAT_00431b88" & identifier)) ;) (expression_statement "*(undefined1 (*) [16])(param_1 + 0x19) = (undefined1  [16])0x0;" (assignment_expression "*(undefined1 (*) [16])(param_1 + 0x19) = (undefined1  [16])0x0" (pointer_expression "*(undefined1 (*) [16])(param_1 + 0x19)" * (cast_expression "(undefined1 (*) [16])(param_1 + 0x19)" ( (type_descriptor "undefined1 (*) [16]" type_identifier (abstract_array_declarator "(*) [16]" (abstract_parenthesized_declarator "(*)" ( (abstract_pointer_declarator "*" *) )) [ number_literal ])) ) (parenthesized_expression "(param_1 + 0x19)" ( (binary_expression "param_1 + 0x19" identifier + number_literal) )))) = (cast_expression "(undefined1  [16])0x0" ( (type_descriptor "undefined1  [16]" type_identifier (abstract_array_declarator "[16]" [ number_literal ])) ) number_literal)) ;) (expression_statement "param_1[0xb] = 0;" (assignment_expression "param_1[0xb] = 0" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0xc] = 0;" (assignment_expression "param_1[0xc] = 0" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0xd] = 0;" (assignment_expression "param_1[0xd] = 0" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0xe] = 0;" (assignment_expression "param_1[0xe] = 0" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 0xf) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xf) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xf)" * (cast_expression "(undefined1 *)(param_1 + 0xf)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf)" ( (binary_expression "param_1 + 0xf" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_1[0x11] = 0;" (assignment_expression "param_1[0x11] = 0" (subscript_expression "param_1[0x11]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x12] = 0;" (assignment_expression "param_1[0x12] = 0" (subscript_expression "param_1[0x12]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x13] = 0;" (assignment_expression "param_1[0x13] = 0" (subscript_expression "param_1[0x13]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x14] = 0;" (assignment_expression "param_1[0x14] = 0" (subscript_expression "param_1[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x1b] = 0;" (assignment_expression "param_1[0x1b] = 0" (subscript_expression "param_1[0x1b]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x15] = param_1 + 0x1b;" (assignment_expression "param_1[0x15] = param_1 + 0x1b" (subscript_expression "param_1[0x15]" identifier [ number_literal ]) = (binary_expression "param_1 + 0x1b" identifier + number_literal)) ;) (expression_statement "param_1[0x16] = 1;" (assignment_expression "param_1[0x16] = 1" (subscript_expression "param_1[0x16]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x17] = 0;" (assignment_expression "param_1[0x17] = 0" (subscript_expression "param_1[0x17]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x18] = 0;" (assignment_expression "param_1[0x18] = 0" (subscript_expression "param_1[0x18]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x19) = 0x3f800000;" (assignment_expression "*(undefined4 *)(param_1 + 0x19) = 0x3f800000" (pointer_expression "*(undefined4 *)(param_1 + 0x19)" * (cast_expression "(undefined4 *)(param_1 + 0x19)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x19)" ( (binary_expression "param_1 + 0x19" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_1[0x1a] = 0;" (assignment_expression "param_1[0x1a] = 0" (subscript_expression "param_1[0x1a]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x1c] = 0;" (assignment_expression "param_1[0x1c] = 0" (subscript_expression "param_1[0x1c]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x1d] = 0;" (assignment_expression "param_1[0x1d] = 0" (subscript_expression "param_1[0x1d]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x1e] = 0;" (assignment_expression "param_1[0x1e] = 0" (subscript_expression "param_1[0x1e]" identifier [ number_literal ]) = number_literal) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression * IDENT) , (binary_expression (subscript_expression IDENT [ LIT ]) + (pointer_expression * IDENT)) ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (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 IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT) | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT) | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) << LIT) ))))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_array_declarator (abstract_parenthesized_declarator ( (abstract_pointer_declarator *) )) [ LIT ])) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE (abstract_array_declarator [ LIT ])) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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) ;) (return_statement return ;) })))
(function_definition "void FUN_001d2720(undefined8 *param_1,long *param_2,long param_3,undefined8 param_4)\n\n{\n  uint uVar1;\n  byte *pbVar2;\n  \n  *param_1 = &DAT_00431850;\n  param_1[1] = param_1 + 3;\n  FUN_00166a10(param_1 + 1,*param_2,param_2[1] + *param_2);\n  param_1[5] = param_3;\n  param_1[6] = param_4;\n  *(undefined4 *)(param_1 + 7) = 0xffffffff;\n  *(byte *)((long)param_1 + 0x3c) = *(byte *)((long)param_1 + 0x3c) & 0x80;\n  param_1[8] = 0;\n  param_1[9] = 0;\n  if (param_3 != 0) {\n    *(int *)(param_3 + 0x50) = *(int *)(param_3 + 0x50) + 1;\n                    \n    uVar1 = FUN_0017a800(param_3);\n    *(byte *)((long)param_1 + 0x3c) =\n         *(byte *)((long)param_1 + 0x3c) & 0xdf | (byte)((uVar1 & 1) << 5);\n    pbVar2 = (byte *)FUN_0017a7e0(param_3);\n    *(byte *)((long)param_1 + 0x3c) =\n         *(byte *)((long)param_1 + 0x3c) & 0xbf | (byte)((*pbVar2 & 1) << 6);\n  }\n  param_1[10] = 0;\n  *param_1 = &DAT_00431b88;\n  *(undefined1 (*) [16])(param_1 + 0x19) = (undefined1  [16])0x0;\n  param_1[0xb] = 0;\n  param_1[0xc] = 0;\n  param_1[0xd] = 0;\n  param_1[0xe] = 0;\n  *(undefined1 *)(param_1 + 0xf) = 0;\n  param_1[0x11] = 0;\n  param_1[0x12] = 0;\n  param_1[0x13] = 0;\n  param_1[0x14] = 0;\n  param_1[0x1b] = 0;\n  param_1[0x15] = param_1 + 0x1b;\n  param_1[0x16] = 1;\n  param_1[0x17] = 0;\n  param_1[0x18] = 0;\n  *(undefined4 *)(param_1 + 0x19) = 0x3f800000;\n  param_1[0x1a] = 0;\n  param_1[0x1c] = 0;\n  param_1[0x1d] = 0;\n  param_1[0x1e] = 0;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_001d2720(undefined8 *param_1,long *param_2,long param_3,undefined8 param_4)" (identifier "FUN_001d2720") (parameter_list "(undefined8 *param_1,long *param_2,long param_3,undefined8 param_4)" (( "(") (parameter_declaration "undefined8 *param_1" (type_identifier "undefined8") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "long *param_2" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "long param_3" (sized_type_specifier "long" (long "long")) (identifier "param_3")) (, ",") (parameter_declaration "undefined8 param_4" (type_identifier "undefined8") (identifier "param_4")) () ")"))) (compound_statement "{\n  uint uVar1;\n  byte *pbVar2;\n  \n  *param_1 = &DAT_00431850;\n  param_1[1] = param_1 + 3;\n  FUN_00166a10(param_1 + 1,*param_2,param_2[1] + *param_2);\n  param_1[5] = param_3;\n  param_1[6] = param_4;\n  *(undefined4 *)(param_1 + 7) = 0xffffffff;\n  *(byte *)((long)param_1 + 0x3c) = *(byte *)((long)param_1 + 0x3c) & 0x80;\n  param_1[8] = 0;\n  param_1[9] = 0;\n  if (param_3 != 0) {\n    *(int *)(param_3 + 0x50) = *(int *)(param_3 + 0x50) + 1;\n                    \n    uVar1 = FUN_0017a800(param_3);\n    *(byte *)((long)param_1 + 0x3c) =\n         *(byte *)((long)param_1 + 0x3c) & 0xdf | (byte)((uVar1 & 1) << 5);\n    pbVar2 = (byte *)FUN_0017a7e0(param_3);\n    *(byte *)((long)param_1 + 0x3c) =\n         *(byte *)((long)param_1 + 0x3c) & 0xbf | (byte)((*pbVar2 & 1) << 6);\n  }\n  param_1[10] = 0;\n  *param_1 = &DAT_00431b88;\n  *(undefined1 (*) [16])(param_1 + 0x19) = (undefined1  [16])0x0;\n  param_1[0xb] = 0;\n  param_1[0xc] = 0;\n  param_1[0xd] = 0;\n  param_1[0xe] = 0;\n  *(undefined1 *)(param_1 + 0xf) = 0;\n  param_1[0x11] = 0;\n  param_1[0x12] = 0;\n  param_1[0x13] = 0;\n  param_1[0x14] = 0;\n  param_1[0x1b] = 0;\n  param_1[0x15] = param_1 + 0x1b;\n  param_1[0x16] = 1;\n  param_1[0x17] = 0;\n  param_1[0x18] = 0;\n  *(undefined4 *)(param_1 + 0x19) = 0x3f800000;\n  param_1[0x1a] = 0;\n  param_1[0x1c] = 0;\n  param_1[0x1d] = 0;\n  param_1[0x1e] = 0;\n  return;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "byte *pbVar2;" (type_identifier "byte") (pointer_declarator "*pbVar2" (* "*") (identifier "pbVar2")) (; ";")) (expression_statement "*param_1 = &DAT_00431850;" (assignment_expression "*param_1 = &DAT_00431850" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (pointer_expression "&DAT_00431850" (& "&") (identifier "DAT_00431850"))) (; ";")) (expression_statement "param_1[1] = param_1 + 3;" (assignment_expression "param_1[1] = param_1 + 3" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "param_1 + 3" (identifier "param_1") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "FUN_00166a10(param_1 + 1,*param_2,param_2[1] + *param_2);" (call_expression "FUN_00166a10(param_1 + 1,*param_2,param_2[1] + *param_2)" (identifier "FUN_00166a10") (argument_list "(param_1 + 1,*param_2,param_2[1] + *param_2)" (( "(") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1")) (, ",") (pointer_expression "*param_2" (* "*") (identifier "param_2")) (, ",") (binary_expression "param_2[1] + *param_2" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (+ "+") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) () ")"))) (; ";")) (expression_statement "param_1[5] = param_3;" (assignment_expression "param_1[5] = param_3" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "param_3")) (; ";")) (expression_statement "param_1[6] = param_4;" (assignment_expression "param_1[6] = param_4" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "param_4")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 7) = 0xffffffff;" (assignment_expression "*(undefined4 *)(param_1 + 7) = 0xffffffff" (pointer_expression "*(undefined4 *)(param_1 + 7)" (* "*") (cast_expression "(undefined4 *)(param_1 + 7)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 7)" (( "(") (binary_expression "param_1 + 7" (identifier "param_1") (+ "+") (number_literal "7")) () ")")))) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "*(byte *)((long)param_1 + 0x3c) = *(byte *)((long)param_1 + 0x3c) & 0x80;" (assignment_expression "*(byte *)((long)param_1 + 0x3c) = *(byte *)((long)param_1 + 0x3c) & 0x80" (pointer_expression "*(byte *)((long)param_1 + 0x3c)" (* "*") (cast_expression "(byte *)((long)param_1 + 0x3c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x3c)" (( "(") (binary_expression "(long)param_1 + 0x3c" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (binary_expression "*(byte *)((long)param_1 + 0x3c) & 0x80" (pointer_expression "*(byte *)((long)param_1 + 0x3c)" (* "*") (cast_expression "(byte *)((long)param_1 + 0x3c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x3c)" (( "(") (binary_expression "(long)param_1 + 0x3c" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x3c")) () ")")))) (& "&") (number_literal "0x80"))) (; ";")) (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")) (; ";")) (if_statement "if (param_3 != 0) {\n    *(int *)(param_3 + 0x50) = *(int *)(param_3 + 0x50) + 1;\n                    \n    uVar1 = FUN_0017a800(param_3);\n    *(byte *)((long)param_1 + 0x3c) =\n         *(byte *)((long)param_1 + 0x3c) & 0xdf | (byte)((uVar1 & 1) << 5);\n    pbVar2 = (byte *)FUN_0017a7e0(param_3);\n    *(byte *)((long)param_1 + 0x3c) =\n         *(byte *)((long)param_1 + 0x3c) & 0xbf | (byte)((*pbVar2 & 1) << 6);\n  }" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    *(int *)(param_3 + 0x50) = *(int *)(param_3 + 0x50) + 1;\n                    \n    uVar1 = FUN_0017a800(param_3);\n    *(byte *)((long)param_1 + 0x3c) =\n         *(byte *)((long)param_1 + 0x3c) & 0xdf | (byte)((uVar1 & 1) << 5);\n    pbVar2 = (byte *)FUN_0017a7e0(param_3);\n    *(byte *)((long)param_1 + 0x3c) =\n         *(byte *)((long)param_1 + 0x3c) & 0xbf | (byte)((*pbVar2 & 1) << 6);\n  }" ({ "{") (expression_statement "*(int *)(param_3 + 0x50) = *(int *)(param_3 + 0x50) + 1;" (assignment_expression "*(int *)(param_3 + 0x50) = *(int *)(param_3 + 0x50) + 1" (pointer_expression "*(int *)(param_3 + 0x50)" (* "*") (cast_expression "(int *)(param_3 + 0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x50)" (( "(") (binary_expression "param_3 + 0x50" (identifier "param_3") (+ "+") (number_literal "0x50")) () ")")))) (= "=") (binary_expression "*(int *)(param_3 + 0x50) + 1" (pointer_expression "*(int *)(param_3 + 0x50)" (* "*") (cast_expression "(int *)(param_3 + 0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x50)" (( "(") (binary_expression "param_3 + 0x50" (identifier "param_3") (+ "+") (number_literal "0x50")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar1 = FUN_0017a800(param_3);" (assignment_expression "uVar1 = FUN_0017a800(param_3)" (identifier "uVar1") (= "=") (call_expression "FUN_0017a800(param_3)" (identifier "FUN_0017a800") (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";")) (expression_statement "*(byte *)((long)param_1 + 0x3c) =\n         *(byte *)((long)param_1 + 0x3c) & 0xdf | (byte)((uVar1 & 1) << 5);" (assignment_expression "*(byte *)((long)param_1 + 0x3c) =\n         *(byte *)((long)param_1 + 0x3c) & 0xdf | (byte)((uVar1 & 1) << 5)" (pointer_expression "*(byte *)((long)param_1 + 0x3c)" (* "*") (cast_expression "(byte *)((long)param_1 + 0x3c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x3c)" (( "(") (binary_expression "(long)param_1 + 0x3c" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (binary_expression "*(byte *)((long)param_1 + 0x3c) & 0xdf | (byte)((uVar1 & 1) << 5)" (binary_expression "*(byte *)((long)param_1 + 0x3c) & 0xdf" (pointer_expression "*(byte *)((long)param_1 + 0x3c)" (* "*") (cast_expression "(byte *)((long)param_1 + 0x3c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x3c)" (( "(") (binary_expression "(long)param_1 + 0x3c" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x3c")) () ")")))) (& "&") (number_literal "0xdf")) (| "|") (call_expression "(byte)((uVar1 & 1) << 5)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uVar1 & 1) << 5)" (( "(") (binary_expression "(uVar1 & 1) << 5" (parenthesized_expression "(uVar1 & 1)" (( "(") (binary_expression "uVar1 & 1" (identifier "uVar1") (& "&") (number_literal "1")) () ")")) (<< "<<") (number_literal "5")) () ")"))))) (; ";")) (expression_statement "pbVar2 = (byte *)FUN_0017a7e0(param_3);" (assignment_expression "pbVar2 = (byte *)FUN_0017a7e0(param_3)" (identifier "pbVar2") (= "=") (cast_expression "(byte *)FUN_0017a7e0(param_3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0017a7e0(param_3)" (identifier "FUN_0017a7e0") (argument_list "(param_3)" (( "(") (identifier "param_3") () ")"))))) (; ";")) (expression_statement "*(byte *)((long)param_1 + 0x3c) =\n         *(byte *)((long)param_1 + 0x3c) & 0xbf | (byte)((*pbVar2 & 1) << 6);" (assignment_expression "*(byte *)((long)param_1 + 0x3c) =\n         *(byte *)((long)param_1 + 0x3c) & 0xbf | (byte)((*pbVar2 & 1) << 6)" (pointer_expression "*(byte *)((long)param_1 + 0x3c)" (* "*") (cast_expression "(byte *)((long)param_1 + 0x3c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x3c)" (( "(") (binary_expression "(long)param_1 + 0x3c" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (binary_expression "*(byte *)((long)param_1 + 0x3c) & 0xbf | (byte)((*pbVar2 & 1) << 6)" (binary_expression "*(byte *)((long)param_1 + 0x3c) & 0xbf" (pointer_expression "*(byte *)((long)param_1 + 0x3c)" (* "*") (cast_expression "(byte *)((long)param_1 + 0x3c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x3c)" (( "(") (binary_expression "(long)param_1 + 0x3c" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x3c")) () ")")))) (& "&") (number_literal "0xbf")) (| "|") (call_expression "(byte)((*pbVar2 & 1) << 6)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((*pbVar2 & 1) << 6)" (( "(") (binary_expression "(*pbVar2 & 1) << 6" (parenthesized_expression "(*pbVar2 & 1)" (( "(") (binary_expression "*pbVar2 & 1" (pointer_expression "*pbVar2" (* "*") (identifier "pbVar2")) (& "&") (number_literal "1")) () ")")) (<< "<<") (number_literal "6")) () ")"))))) (; ";")) (} "}"))) (expression_statement "param_1[10] = 0;" (assignment_expression "param_1[10] = 0" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_1 = &DAT_00431b88;" (assignment_expression "*param_1 = &DAT_00431b88" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (pointer_expression "&DAT_00431b88" (& "&") (identifier "DAT_00431b88"))) (; ";")) (expression_statement "*(undefined1 (*) [16])(param_1 + 0x19) = (undefined1  [16])0x0;" (assignment_expression "*(undefined1 (*) [16])(param_1 + 0x19) = (undefined1  [16])0x0" (pointer_expression "*(undefined1 (*) [16])(param_1 + 0x19)" (* "*") (cast_expression "(undefined1 (*) [16])(param_1 + 0x19)" (( "(") (type_descriptor "undefined1 (*) [16]" (type_identifier "undefined1") (abstract_array_declarator "(*) [16]" (abstract_parenthesized_declarator "(*)" (( "(") (abstract_pointer_declarator "*" (* "*")) () ")")) ([ "[") (number_literal "16") (] "]"))) () ")") (parenthesized_expression "(param_1 + 0x19)" (( "(") (binary_expression "param_1 + 0x19" (identifier "param_1") (+ "+") (number_literal "0x19")) () ")")))) (= "=") (cast_expression "(undefined1  [16])0x0" (( "(") (type_descriptor "undefined1  [16]" (type_identifier "undefined1") (abstract_array_declarator "[16]" ([ "[") (number_literal "16") (] "]"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "param_1[0xb] = 0;" (assignment_expression "param_1[0xb] = 0" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0xc] = 0;" (assignment_expression "param_1[0xc] = 0" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0xd] = 0;" (assignment_expression "param_1[0xd] = 0" (subscript_expression "param_1[0xd]" (identifier "param_1") ([ "[") (number_literal "0xd") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0xe] = 0;" (assignment_expression "param_1[0xe] = 0" (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 0xf) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xf) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xf)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0xf)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf)" (( "(") (binary_expression "param_1 + 0xf" (identifier "param_1") (+ "+") (number_literal "0xf")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x11] = 0;" (assignment_expression "param_1[0x11] = 0" (subscript_expression "param_1[0x11]" (identifier "param_1") ([ "[") (number_literal "0x11") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x12] = 0;" (assignment_expression "param_1[0x12] = 0" (subscript_expression "param_1[0x12]" (identifier "param_1") ([ "[") (number_literal "0x12") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x13] = 0;" (assignment_expression "param_1[0x13] = 0" (subscript_expression "param_1[0x13]" (identifier "param_1") ([ "[") (number_literal "0x13") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x14] = 0;" (assignment_expression "param_1[0x14] = 0" (subscript_expression "param_1[0x14]" (identifier "param_1") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x1b] = 0;" (assignment_expression "param_1[0x1b] = 0" (subscript_expression "param_1[0x1b]" (identifier "param_1") ([ "[") (number_literal "0x1b") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x15] = param_1 + 0x1b;" (assignment_expression "param_1[0x15] = param_1 + 0x1b" (subscript_expression "param_1[0x15]" (identifier "param_1") ([ "[") (number_literal "0x15") (] "]")) (= "=") (binary_expression "param_1 + 0x1b" (identifier "param_1") (+ "+") (number_literal "0x1b"))) (; ";")) (expression_statement "param_1[0x16] = 1;" (assignment_expression "param_1[0x16] = 1" (subscript_expression "param_1[0x16]" (identifier "param_1") ([ "[") (number_literal "0x16") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "param_1[0x17] = 0;" (assignment_expression "param_1[0x17] = 0" (subscript_expression "param_1[0x17]" (identifier "param_1") ([ "[") (number_literal "0x17") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x18] = 0;" (assignment_expression "param_1[0x18] = 0" (subscript_expression "param_1[0x18]" (identifier "param_1") ([ "[") (number_literal "0x18") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x19) = 0x3f800000;" (assignment_expression "*(undefined4 *)(param_1 + 0x19) = 0x3f800000" (pointer_expression "*(undefined4 *)(param_1 + 0x19)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x19)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x19)" (( "(") (binary_expression "param_1 + 0x19" (identifier "param_1") (+ "+") (number_literal "0x19")) () ")")))) (= "=") (number_literal "0x3f800000")) (; ";")) (expression_statement "param_1[0x1a] = 0;" (assignment_expression "param_1[0x1a] = 0" (subscript_expression "param_1[0x1a]" (identifier "param_1") ([ "[") (number_literal "0x1a") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x1c] = 0;" (assignment_expression "param_1[0x1c] = 0" (subscript_expression "param_1[0x1c]" (identifier "param_1") ([ "[") (number_literal "0x1c") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x1d] = 0;" (assignment_expression "param_1[0x1d] = 0" (subscript_expression "param_1[0x1d]" (identifier "param_1") ([ "[") (number_literal "0x1d") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x1e] = 0;" (assignment_expression "param_1[0x1e] = 0" (subscript_expression "param_1[0x1e]" (identifier "param_1") ([ "[") (number_literal "0x1e") (] "]")) (= "=") (number_literal "0")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* DWARF original prototype: void Sized_relobj(Sized_relobj<32,_true> * this, string * name,
   Input_file * input_file, off_t offset) */

void __thiscall
var_8::Sized_relobj<32,_true>::Sized_relobj
          (Sized_relobj<32,_true> *this,string *name,type_6 *var_4,off_t offset)

{
  undefined1 *puVar1;
  int *piVar2;
  type_1 var_3;
  bool var_6;
  type_2 *pPVar5;
  
  (this->super_Relobj).super_Object._vptr_Object = (type_3 **)&DAT_00431850;
  (this->super_Relobj).super_Object.name_._M_dataplus._M_p =
       (type_1)&(this->super_Relobj).super_Object.name_.field_2;
  var_3 = (name->_M_dataplus)._M_p;
  std::__cxx11::basic_string<var_2,var_9::char_traits<var_2>,var_9::var_12<var_2>var_10>::
  var_1<var_2*>(&(this->super_Relobj).super_Object.name_,var_3,
                      var_3 + name->_M_string_length);
  (this->super_Relobj).super_Object.input_file_ = var_4;
  (this->super_Relobj).super_Object.offset_ = offset;
  (this->super_Relobj).super_Object.shnum_ = 0xffffffff;
  puVar1 = &(this->super_Relobj).super_Object.field_0x3c;
  *puVar1 = *puVar1 & 0x80;
  (this->super_Relobj).super_Object.xindex_ = (type_4 *)0x0;
  (this->super_Relobj).super_Object.compressed_sections_ = (type_5 *)0x0;
  if (var_4 != (type_6 *)0x0) {
    piVar2 = &(var_4->file_).object_count_;
    *piVar2 = *piVar2 + 1;
                    /* try { // try from 001d278b to 001d27ab has its CatchHandler @ 001d28ab */
    var_6 = type_6::var_5(var_4);
    (this->super_Relobj).super_Object.field_0x3c =
         (this->super_Relobj).super_Object.field_0x3c & 0xdf | var_6 << 5;
    pPVar5 = type_6::var_7(var_4);
    (this->super_Relobj).super_Object.field_0x3c =
         (this->super_Relobj).super_Object.field_0x3c & 0xbf | (byte)((pPVar5->as_needed_ & 1) << 6)
    ;
  }
  (this->super_Relobj).output_sections_.
  super__Vector_base<var_8::Output_section*,var_9::var_12<var_8::Output_section*>var_10>._M_impl._M_start
       = (type_1)0x0;
  (this->super_Relobj).super_Object._vptr_Object = (type_3 **)&DAT_00431b88;
  (this->local_got_offsets_)._M_h._M_rehash_policy._M_max_load_factor = 0.0;
  *(type_7 *)&(this->local_got_offsets_)._M_h._M_rehash_policy.field_0x4 = 0;
  (this->local_got_offsets_)._M_h._M_rehash_policy._M_next_resize = 0;
  (this->super_Relobj).output_sections_.
  super__Vector_base<var_8::Output_section*,var_9::var_12<var_8::Output_section*>var_10>._M_impl.
  _M_finish = (type_1)0x0;
  (this->super_Relobj).output_sections_.
  super__Vector_base<var_8::Output_section*,var_9::var_12<var_8::Output_section*>var_10>._M_impl.
  _M_end_of_storage = (type_1)0x0;
  (this->super_Relobj).map_to_relocatable_relocs_ =
       (vector<var_8::var_11*,var_9::var_12<var_8::var_11*>var_10> *)0x0;
  (this->super_Relobj).object_merge_map_ = (type_8 *)0x0;
  (this->super_Relobj).relocs_must_follow_section_writes_ = false;
  (this->super_Relobj).sd_ = (type_9 *)0x0;
  (this->super_Relobj).reloc_counts_ = (type_10 *)0x0;
  (this->super_Relobj).reloc_bases_ = (type_10 *)0x0;
  (this->super_Relobj).first_dyn_reloc_ = 0;
  (this->super_Relobj).dyn_reloc_count_ = 0;
  (this->local_got_offsets_)._M_h._M_single_bucket = (type_11)0x0;
  (this->local_got_offsets_)._M_h._M_buckets = &(this->local_got_offsets_)._M_h._M_single_bucket;
  (this->local_got_offsets_)._M_h._M_bucket_count = 1;
  (this->local_got_offsets_)._M_h._M_before_begin._M_nxt = (type_12 *)0x0;
  (this->local_got_offsets_)._M_h._M_element_count = 0;
  (this->local_got_offsets_)._M_h._M_rehash_policy._M_max_load_factor = 1.0;
  (this->local_got_offsets_)._M_h._M_rehash_policy._M_next_resize = 0;
  (this->section_offsets_).super__Vector_base<var_13,_std::var_12<var_13>var_10>._M_impl.
  _M_start = (type_1)0x0;
  (this->section_offsets_).super__Vector_base<var_13,_std::var_12<var_13>var_10>._M_impl.
  _M_finish = (type_1)0x0;
  (this->section_offsets_).super__Vector_base<var_13,_std::var_12<var_13>var_10>._M_impl.
  _M_end_of_storage = (type_1)0x0;
  return;
}


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

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

{
  uint uVar1;
  byte *pbVar2;
  
  *param_1 = &DAT_00431850;
  param_1[1] = param_1 + 3;
  FUN_00166a10(param_1 + 1,*param_2,param_2[1] + *param_2);
  param_1[5] = param_3;
  param_1[6] = param_4;
  *(undefined4 *)(param_1 + 7) = 0xffffffff;
  *(byte *)((long)param_1 + 0x3c) = *(byte *)((long)param_1 + 0x3c) & 0x80;
  param_1[8] = 0;
  param_1[9] = 0;
  if (param_3 != 0) {
    *(int *)(param_3 + 0x50) = *(int *)(param_3 + 0x50) + 1;
                    /* try { // try from 001d278b to 001d27ab has its CatchHandler @ 001d28ab */
    uVar1 = FUN_0017a800(param_3);
    *(byte *)((long)param_1 + 0x3c) =
         *(byte *)((long)param_1 + 0x3c) & 0xdf | (byte)((uVar1 & 1) << 5);
    pbVar2 = (byte *)FUN_0017a7e0(param_3);
    *(byte *)((long)param_1 + 0x3c) =
         *(byte *)((long)param_1 + 0x3c) & 0xbf | (byte)((*pbVar2 & 1) << 6);
  }
  param_1[10] = 0;
  *param_1 = &DAT_00431b88;
  *(undefined1 (*) [16])(param_1 + 0x19) = (undefined1  [16])0x0;
  param_1[0xb] = 0;
  param_1[0xc] = 0;
  param_1[0xd] = 0;
  param_1[0xe] = 0;
  *(undefined1 *)(param_1 + 0xf) = 0;
  param_1[0x11] = 0;
  param_1[0x12] = 0;
  param_1[0x13] = 0;
  param_1[0x14] = 0;
  param_1[0x1b] = 0;
  param_1[0x15] = param_1 + 0x1b;
  param_1[0x16] = 1;
  param_1[0x17] = 0;
  param_1[0x18] = 0;
  *(undefined4 *)(param_1 + 0x19) = 0x3f800000;
  param_1[0x1a] = 0;
  param_1[0x1c] = 0;
  param_1[0x1d] = 0;
  param_1[0x1e] = 0;
  return;
}

