
/* DWARF original prototype: void Deferred_layout(Deferred_layout * this, uint shndx, char * name,
   uint sh_type, uchar * pshdr, uint reloc_shndx, uint reloc_type) */

void __thiscall
gold::Sized_relobj_file<64,_true>::Deferred_layout::Deferred_layout
          (Deferred_layout *this,uint shndx,char *name,uint sh_type,uchar *pshdr,uint reloc_shndx,
          uint reloc_type)

{
  undefined8 uVar1;
  undefined8 uVar2;
  size_t sVar3;
  char *pcVar4;
  
  pcVar4 = (char *)0xffffffffffffffff;
  (this->name_)._M_dataplus._M_p = (pointer)&(this->name_).field_2;
  if (name != (char *)0x0) {
    sVar3 = strlen(name);
    pcVar4 = name + sVar3;
  }
  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
  _M_construct<char_const*>(&this->name_,name,pcVar4);
  this->shndx_ = shndx;
  this->reloc_shndx_ = reloc_shndx;
  this->reloc_type_ = reloc_type;
  uVar1 = *(undefined8 *)(pshdr + 8);
  *(undefined8 *)this->shdr_data_ = *(undefined8 *)pshdr;
  *(undefined8 *)(this->shdr_data_ + 8) = uVar1;
  uVar1 = *(undefined8 *)(pshdr + 0x18);
  *(undefined8 *)(this->shdr_data_ + 0x10) = *(undefined8 *)(pshdr + 0x10);
  *(undefined8 *)(this->shdr_data_ + 0x18) = uVar1;
  uVar1 = *(undefined8 *)(pshdr + 0x28);
  *(undefined8 *)(this->shdr_data_ + 0x20) = *(undefined8 *)(pshdr + 0x20);
  *(undefined8 *)(this->shdr_data_ + 0x28) = uVar1;
  uVar1 = *(undefined8 *)(pshdr + 0x30);
  uVar2 = *(undefined8 *)(pshdr + 0x38);
  *(uint *)(this->shdr_data_ + 4) =
       sh_type >> 0x18 | (sh_type & 0xff0000) >> 8 | (sh_type & 0xff00) << 8 | sh_type << 0x18;
  *(undefined8 *)(this->shdr_data_ + 0x30) = uVar1;
  *(undefined8 *)(this->shdr_data_ + 0x38) = uVar2;
  return;
}



void FUN_003a23c0(long *param_1,undefined4 param_2,char *param_3,uint param_4,undefined8 *param_5,
                 undefined4 param_6,undefined4 param_7)

{
  undefined8 uVar1;
  undefined8 uVar2;
  size_t sVar3;
  char *pcVar4;
  
  pcVar4 = (char *)0xffffffffffffffff;
  *param_1 = (long)(param_1 + 2);
  if (param_3 != (char *)0x0) {
    sVar3 = strlen(param_3);
    pcVar4 = param_3 + sVar3;
  }
  FUN_001a61c0(param_1,param_3,pcVar4);
  *(undefined4 *)(param_1 + 4) = param_2;
  *(undefined4 *)((long)param_1 + 0x24) = param_6;
  *(undefined4 *)(param_1 + 5) = param_7;
  uVar1 = param_5[1];
  *(undefined8 *)((long)param_1 + 0x2c) = *param_5;
  *(undefined8 *)((long)param_1 + 0x34) = uVar1;
  uVar1 = param_5[3];
  *(undefined8 *)((long)param_1 + 0x3c) = param_5[2];
  *(undefined8 *)((long)param_1 + 0x44) = uVar1;
  uVar1 = param_5[5];
  *(undefined8 *)((long)param_1 + 0x4c) = param_5[4];
  *(undefined8 *)((long)param_1 + 0x54) = uVar1;
  uVar1 = param_5[6];
  uVar2 = param_5[7];
  *(uint *)(param_1 + 6) =
       param_4 >> 0x18 | (param_4 & 0xff0000) >> 8 | (param_4 & 0xff00) << 8 | param_4 << 0x18;
  *(undefined8 *)((long)param_1 + 0x5c) = uVar1;
  *(undefined8 *)((long)param_1 + 100) = uVar2;
  return;
}


PUSH R15
LEA RAX,[RDI + 0x10]
MOV R15D,ESI
PUSH R14
MOV R14D,R9D
PUSH R13
MOV R13D,ECX
PUSH R12
MOV R12,RDX
MOV RDX,-0x1
PUSH RBP
MOV RBP,R8
PUSH RBX
MOV RBX,RDI
SUB RSP,0x8
MOV qword ptr [RDI],RAX
TEST R12,R12
JZ 0x003a23ff
MOV RDI,R12
CALL 0x00177490
LEA RDX,[R12 + RAX*0x1]
MOV RSI,R12
MOV RDI,RBX
BSWAP R13D
CALL 0x001a61c0
MOV EAX,dword ptr [RSP + 0x40]
MOV dword ptr [RBX + 0x20],R15D
MOV dword ptr [RBX + 0x24],R14D
MOV dword ptr [RBX + 0x28],EAX
MOVDQU XMM0,xmmword ptr [RBP]
MOVUPS xmmword ptr [RBX + 0x2c],XMM0
MOVDQU XMM1,xmmword ptr [RBP + 0x10]
MOVUPS xmmword ptr [RBX + 0x3c],XMM1
MOVDQU XMM2,xmmword ptr [RBP + 0x20]
MOVUPS xmmword ptr [RBX + 0x4c],XMM2
MOVDQU XMM3,xmmword ptr [RBP + 0x30]
MOV dword ptr [RBX + 0x30],R13D
MOVUPS xmmword ptr [RBX + 0x5c],XMM3
ADD RSP,0x8
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
(translation_unit "void FUN_003a23c0(long *param_1,undefined4 param_2,char *param_3,uint param_4,undefined8 *param_5,\n                 undefined4 param_6,undefined4 param_7)\n\n{\n  undefined8 uVar1;\n  undefined8 uVar2;\n  size_t sVar3;\n  char *pcVar4;\n  \n  pcVar4 = (char *)0xffffffffffffffff;\n  *param_1 = (long)(param_1 + 2);\n  if (param_3 != (char *)0x0) {\n    sVar3 = strlen(param_3);\n    pcVar4 = param_3 + sVar3;\n  }\n  FUN_001a61c0(param_1,param_3,pcVar4);\n  *(undefined4 *)(param_1 + 4) = param_2;\n  *(undefined4 *)((long)param_1 + 0x24) = param_6;\n  *(undefined4 *)(param_1 + 5) = param_7;\n  uVar1 = param_5[1];\n  *(undefined8 *)((long)param_1 + 0x2c) = *param_5;\n  *(undefined8 *)((long)param_1 + 0x34) = uVar1;\n  uVar1 = param_5[3];\n  *(undefined8 *)((long)param_1 + 0x3c) = param_5[2];\n  *(undefined8 *)((long)param_1 + 0x44) = uVar1;\n  uVar1 = param_5[5];\n  *(undefined8 *)((long)param_1 + 0x4c) = param_5[4];\n  *(undefined8 *)((long)param_1 + 0x54) = uVar1;\n  uVar1 = param_5[6];\n  uVar2 = param_5[7];\n  *(uint *)(param_1 + 6) =\n       param_4 >> 0x18 | (param_4 & 0xff0000) >> 8 | (param_4 & 0xff00) << 8 | param_4 << 0x18;\n  *(undefined8 *)((long)param_1 + 0x5c) = uVar1;\n  *(undefined8 *)((long)param_1 + 100) = uVar2;\n  return;\n}\n\n" (function_definition "void FUN_003a23c0(long *param_1,undefined4 param_2,char *param_3,uint param_4,undefined8 *param_5,\n                 undefined4 param_6,undefined4 param_7)\n\n{\n  undefined8 uVar1;\n  undefined8 uVar2;\n  size_t sVar3;\n  char *pcVar4;\n  \n  pcVar4 = (char *)0xffffffffffffffff;\n  *param_1 = (long)(param_1 + 2);\n  if (param_3 != (char *)0x0) {\n    sVar3 = strlen(param_3);\n    pcVar4 = param_3 + sVar3;\n  }\n  FUN_001a61c0(param_1,param_3,pcVar4);\n  *(undefined4 *)(param_1 + 4) = param_2;\n  *(undefined4 *)((long)param_1 + 0x24) = param_6;\n  *(undefined4 *)(param_1 + 5) = param_7;\n  uVar1 = param_5[1];\n  *(undefined8 *)((long)param_1 + 0x2c) = *param_5;\n  *(undefined8 *)((long)param_1 + 0x34) = uVar1;\n  uVar1 = param_5[3];\n  *(undefined8 *)((long)param_1 + 0x3c) = param_5[2];\n  *(undefined8 *)((long)param_1 + 0x44) = uVar1;\n  uVar1 = param_5[5];\n  *(undefined8 *)((long)param_1 + 0x4c) = param_5[4];\n  *(undefined8 *)((long)param_1 + 0x54) = uVar1;\n  uVar1 = param_5[6];\n  uVar2 = param_5[7];\n  *(uint *)(param_1 + 6) =\n       param_4 >> 0x18 | (param_4 & 0xff0000) >> 8 | (param_4 & 0xff00) << 8 | param_4 << 0x18;\n  *(undefined8 *)((long)param_1 + 0x5c) = uVar1;\n  *(undefined8 *)((long)param_1 + 100) = uVar2;\n  return;\n}" primitive_type (function_declarator "FUN_003a23c0(long *param_1,undefined4 param_2,char *param_3,uint param_4,undefined8 *param_5,\n                 undefined4 param_6,undefined4 param_7)" identifier (parameter_list "(long *param_1,undefined4 param_2,char *param_3,uint param_4,undefined8 *param_5,\n                 undefined4 param_6,undefined4 param_7)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "uint param_4" type_identifier identifier) , (parameter_declaration "undefined8 *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "undefined4 param_6" type_identifier identifier) , (parameter_declaration "undefined4 param_7" type_identifier identifier) ))) (compound_statement "{\n  undefined8 uVar1;\n  undefined8 uVar2;\n  size_t sVar3;\n  char *pcVar4;\n  \n  pcVar4 = (char *)0xffffffffffffffff;\n  *param_1 = (long)(param_1 + 2);\n  if (param_3 != (char *)0x0) {\n    sVar3 = strlen(param_3);\n    pcVar4 = param_3 + sVar3;\n  }\n  FUN_001a61c0(param_1,param_3,pcVar4);\n  *(undefined4 *)(param_1 + 4) = param_2;\n  *(undefined4 *)((long)param_1 + 0x24) = param_6;\n  *(undefined4 *)(param_1 + 5) = param_7;\n  uVar1 = param_5[1];\n  *(undefined8 *)((long)param_1 + 0x2c) = *param_5;\n  *(undefined8 *)((long)param_1 + 0x34) = uVar1;\n  uVar1 = param_5[3];\n  *(undefined8 *)((long)param_1 + 0x3c) = param_5[2];\n  *(undefined8 *)((long)param_1 + 0x44) = uVar1;\n  uVar1 = param_5[5];\n  *(undefined8 *)((long)param_1 + 0x4c) = param_5[4];\n  *(undefined8 *)((long)param_1 + 0x54) = uVar1;\n  uVar1 = param_5[6];\n  uVar2 = param_5[7];\n  *(uint *)(param_1 + 6) =\n       param_4 >> 0x18 | (param_4 & 0xff0000) >> 8 | (param_4 & 0xff00) << 8 | param_4 << 0x18;\n  *(undefined8 *)((long)param_1 + 0x5c) = uVar1;\n  *(undefined8 *)((long)param_1 + 100) = uVar2;\n  return;\n}" { (declaration "undefined8 uVar1;" type_identifier identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (expression_statement "pcVar4 = (char *)0xffffffffffffffff;" (assignment_expression "pcVar4 = (char *)0xffffffffffffffff" identifier = (cast_expression "(char *)0xffffffffffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*param_1 = (long)(param_1 + 2);" (assignment_expression "*param_1 = (long)(param_1 + 2)" (pointer_expression "*param_1" * identifier) = (cast_expression "(long)(param_1 + 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) )))) ;) (if_statement "if (param_3 != (char *)0x0) {\n    sVar3 = strlen(param_3);\n    pcVar4 = param_3 + sVar3;\n  }" if (parenthesized_expression "(param_3 != (char *)0x0)" ( (binary_expression "param_3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sVar3 = strlen(param_3);\n    pcVar4 = param_3 + sVar3;\n  }" { (expression_statement "sVar3 = strlen(param_3);" (assignment_expression "sVar3 = strlen(param_3)" identifier = (call_expression "strlen(param_3)" identifier (argument_list "(param_3)" ( identifier )))) ;) (expression_statement "pcVar4 = param_3 + sVar3;" (assignment_expression "pcVar4 = param_3 + sVar3" identifier = (binary_expression "param_3 + sVar3" identifier + identifier)) ;) })) (expression_statement "FUN_001a61c0(param_1,param_3,pcVar4);" (call_expression "FUN_001a61c0(param_1,param_3,pcVar4)" identifier (argument_list "(param_1,param_3,pcVar4)" ( identifier , identifier , identifier ))) ;) (expression_statement "*(undefined4 *)(param_1 + 4) = param_2;" (assignment_expression "*(undefined4 *)(param_1 + 4) = param_2" (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((long)param_1 + 0x24) = param_6;" (assignment_expression "*(undefined4 *)((long)param_1 + 0x24) = param_6" (pointer_expression "*(undefined4 *)((long)param_1 + 0x24)" * (cast_expression "(undefined4 *)((long)param_1 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x24)" ( (binary_expression "(long)param_1 + 0x24" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(param_1 + 5) = param_7;" (assignment_expression "*(undefined4 *)(param_1 + 5) = param_7" (pointer_expression "*(undefined4 *)(param_1 + 5)" * (cast_expression "(undefined4 *)(param_1 + 5)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 5)" ( (binary_expression "param_1 + 5" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar1 = param_5[1];" (assignment_expression "uVar1 = param_5[1]" identifier = (subscript_expression "param_5[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined8 *)((long)param_1 + 0x2c) = *param_5;" (assignment_expression "*(undefined8 *)((long)param_1 + 0x2c) = *param_5" (pointer_expression "*(undefined8 *)((long)param_1 + 0x2c)" * (cast_expression "(undefined8 *)((long)param_1 + 0x2c)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x2c)" ( (binary_expression "(long)param_1 + 0x2c" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (pointer_expression "*param_5" * identifier)) ;) (expression_statement "*(undefined8 *)((long)param_1 + 0x34) = uVar1;" (assignment_expression "*(undefined8 *)((long)param_1 + 0x34) = uVar1" (pointer_expression "*(undefined8 *)((long)param_1 + 0x34)" * (cast_expression "(undefined8 *)((long)param_1 + 0x34)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x34)" ( (binary_expression "(long)param_1 + 0x34" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "uVar1 = param_5[3];" (assignment_expression "uVar1 = param_5[3]" identifier = (subscript_expression "param_5[3]" identifier [ number_literal ])) ;) (expression_statement "*(undefined8 *)((long)param_1 + 0x3c) = param_5[2];" (assignment_expression "*(undefined8 *)((long)param_1 + 0x3c) = param_5[2]" (pointer_expression "*(undefined8 *)((long)param_1 + 0x3c)" * (cast_expression "(undefined8 *)((long)param_1 + 0x3c)" ( (type_descriptor "undefined8 *" 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) )))) = (subscript_expression "param_5[2]" identifier [ number_literal ])) ;) (expression_statement "*(undefined8 *)((long)param_1 + 0x44) = uVar1;" (assignment_expression "*(undefined8 *)((long)param_1 + 0x44) = uVar1" (pointer_expression "*(undefined8 *)((long)param_1 + 0x44)" * (cast_expression "(undefined8 *)((long)param_1 + 0x44)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x44)" ( (binary_expression "(long)param_1 + 0x44" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "uVar1 = param_5[5];" (assignment_expression "uVar1 = param_5[5]" identifier = (subscript_expression "param_5[5]" identifier [ number_literal ])) ;) (expression_statement "*(undefined8 *)((long)param_1 + 0x4c) = param_5[4];" (assignment_expression "*(undefined8 *)((long)param_1 + 0x4c) = param_5[4]" (pointer_expression "*(undefined8 *)((long)param_1 + 0x4c)" * (cast_expression "(undefined8 *)((long)param_1 + 0x4c)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x4c)" ( (binary_expression "(long)param_1 + 0x4c" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (subscript_expression "param_5[4]" identifier [ number_literal ])) ;) (expression_statement "*(undefined8 *)((long)param_1 + 0x54) = uVar1;" (assignment_expression "*(undefined8 *)((long)param_1 + 0x54) = uVar1" (pointer_expression "*(undefined8 *)((long)param_1 + 0x54)" * (cast_expression "(undefined8 *)((long)param_1 + 0x54)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x54)" ( (binary_expression "(long)param_1 + 0x54" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "uVar1 = param_5[6];" (assignment_expression "uVar1 = param_5[6]" identifier = (subscript_expression "param_5[6]" identifier [ number_literal ])) ;) (expression_statement "uVar2 = param_5[7];" (assignment_expression "uVar2 = param_5[7]" identifier = (subscript_expression "param_5[7]" identifier [ number_literal ])) ;) (expression_statement "*(uint *)(param_1 + 6) =\n       param_4 >> 0x18 | (param_4 & 0xff0000) >> 8 | (param_4 & 0xff00) << 8 | param_4 << 0x18;" (assignment_expression "*(uint *)(param_1 + 6) =\n       param_4 >> 0x18 | (param_4 & 0xff0000) >> 8 | (param_4 & 0xff00) << 8 | param_4 << 0x18" (pointer_expression "*(uint *)(param_1 + 6)" * (cast_expression "(uint *)(param_1 + 6)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 6)" ( (binary_expression "param_1 + 6" identifier + number_literal) )))) = (binary_expression "param_4 >> 0x18 | (param_4 & 0xff0000) >> 8 | (param_4 & 0xff00) << 8 | param_4 << 0x18" (binary_expression "param_4 >> 0x18 | (param_4 & 0xff0000) >> 8 | (param_4 & 0xff00) << 8" (binary_expression "param_4 >> 0x18 | (param_4 & 0xff0000) >> 8" (binary_expression "param_4 >> 0x18" identifier >> number_literal) | (binary_expression "(param_4 & 0xff0000) >> 8" (parenthesized_expression "(param_4 & 0xff0000)" ( (binary_expression "param_4 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(param_4 & 0xff00) << 8" (parenthesized_expression "(param_4 & 0xff00)" ( (binary_expression "param_4 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "param_4 << 0x18" identifier << number_literal))) ;) (expression_statement "*(undefined8 *)((long)param_1 + 0x5c) = uVar1;" (assignment_expression "*(undefined8 *)((long)param_1 + 0x5c) = uVar1" (pointer_expression "*(undefined8 *)((long)param_1 + 0x5c)" * (cast_expression "(undefined8 *)((long)param_1 + 0x5c)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x5c)" ( (binary_expression "(long)param_1 + 0x5c" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined8 *)((long)param_1 + 100) = uVar2;" (assignment_expression "*(undefined8 *)((long)param_1 + 100) = uVar2" (pointer_expression "*(undefined8 *)((long)param_1 + 100)" * (cast_expression "(undefined8 *)((long)param_1 + 100)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 100)" ( (binary_expression "(long)param_1 + 100" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit "/* DWARF original prototype: void Deferred_layout(Deferred_layout * this, uint shndx, char * name,\n   uint sh_type, uchar * pshdr, uint reloc_shndx, uint reloc_type) */\n\nvoid __thiscall\ngold::Sized_relobj_file<64,_true>::Deferred_layout::Deferred_layout\n          (Deferred_layout *this,uint shndx,char *name,uint sh_type,uchar *pshdr,uint reloc_shndx,\n          uint reloc_type)\n\n{\n  undefined8 uVar1;\n  undefined8 uVar2;\n  size_t sVar3;\n  char *pcVar4;\n  \n  pcVar4 = (char *)0xffffffffffffffff;\n  (this->name_)._M_dataplus._M_p = (pointer)&(this->name_).field_2;\n  if (name != (char *)0x0) {\n    sVar3 = strlen(name);\n    pcVar4 = name + sVar3;\n  }\n  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>(&this->name_,name,pcVar4);\n  this->shndx_ = shndx;\n  this->reloc_shndx_ = reloc_shndx;\n  this->reloc_type_ = reloc_type;\n  uVar1 = *(undefined8 *)(pshdr + 8);\n  *(undefined8 *)this->shdr_data_ = *(undefined8 *)pshdr;\n  *(undefined8 *)(this->shdr_data_ + 8) = uVar1;\n  uVar1 = *(undefined8 *)(pshdr + 0x18);\n  *(undefined8 *)(this->shdr_data_ + 0x10) = *(undefined8 *)(pshdr + 0x10);\n  *(undefined8 *)(this->shdr_data_ + 0x18) = uVar1;\n  uVar1 = *(undefined8 *)(pshdr + 0x28);\n  *(undefined8 *)(this->shdr_data_ + 0x20) = *(undefined8 *)(pshdr + 0x20);\n  *(undefined8 *)(this->shdr_data_ + 0x28) = uVar1;\n  uVar1 = *(undefined8 *)(pshdr + 0x30);\n  uVar2 = *(undefined8 *)(pshdr + 0x38);\n  *(uint *)(this->shdr_data_ + 4) =\n       sh_type >> 0x18 | (sh_type & 0xff0000) >> 8 | (sh_type & 0xff00) << 8 | sh_type << 0x18;\n  *(undefined8 *)(this->shdr_data_ + 0x30) = uVar1;\n  *(undefined8 *)(this->shdr_data_ + 0x38) = uVar2;\n  return;\n}\n\n" comment (declaration "void __thiscall\ngold::Sized_relobj_file<64,_true>::Deferred_layout::Deferred_layout\n          (Deferred_layout *this,uint shndx,char *name,uint sh_type,uchar *pshdr,uint reloc_shndx,\n          uint reloc_type)\n\n{\n  undefined8 uVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<64" < number_literal) , (ERROR "_true>::Deferred_layout::Deferred_layout\n          (Deferred_layout *this,uint shndx,char *name,uint sh_type,uchar *pshdr,uint reloc_shndx,\n          uint reloc_type)\n\n{\n  undefined8" identifier > : : identifier : : (function_declarator "Deferred_layout\n          (Deferred_layout *this,uint shndx,char *name,uint sh_type,uchar *pshdr,uint reloc_shndx,\n          uint reloc_type)" identifier (parameter_list "(Deferred_layout *this,uint shndx,char *name,uint sh_type,uchar *pshdr,uint reloc_shndx,\n          uint reloc_type)" ( (parameter_declaration "Deferred_layout *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "uint shndx" type_identifier identifier) , (parameter_declaration "char *name" primitive_type (pointer_declarator "*name" * identifier)) , (parameter_declaration "uint sh_type" type_identifier identifier) , (parameter_declaration "uchar *pshdr" type_identifier (pointer_declarator "*pshdr" * identifier)) , (parameter_declaration "uint reloc_shndx" type_identifier identifier) , (parameter_declaration "uint reloc_type" type_identifier identifier) ))) { identifier) identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (expression_statement "pcVar4 = (char *)0xffffffffffffffff;" (assignment_expression "pcVar4 = (char *)0xffffffffffffffff" identifier = (cast_expression "(char *)0xffffffffffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(this->name_)._M_dataplus._M_p = (pointer)&(this->name_).field_2;" (assignment_expression "(this->name_)._M_dataplus._M_p = (pointer)&(this->name_).field_2" (field_expression "(this->name_)._M_dataplus._M_p" (field_expression "(this->name_)._M_dataplus" (parenthesized_expression "(this->name_)" ( (field_expression "this->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (binary_expression "(pointer)&(this->name_).field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "(this->name_).field_2" (parenthesized_expression "(this->name_)" ( (field_expression "this->name_" identifier -> field_identifier) )) . field_identifier))) ;) (if_statement "if (name != (char *)0x0) {\n    sVar3 = strlen(name);\n    pcVar4 = name + sVar3;\n  }" if (parenthesized_expression "(name != (char *)0x0)" ( (binary_expression "name != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sVar3 = strlen(name);\n    pcVar4 = name + sVar3;\n  }" { (expression_statement "sVar3 = strlen(name);" (assignment_expression "sVar3 = strlen(name)" identifier = (call_expression "strlen(name)" identifier (argument_list "(name)" ( identifier )))) ;) (expression_statement "pcVar4 = name + sVar3;" (assignment_expression "pcVar4 = name + sVar3" identifier = (binary_expression "name + sVar3" identifier + identifier)) ;) })) (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>(&this->name_,name,pcVar4);" 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_const*>(&this->name_,name,pcVar4);" (binary_expression "_M_construct<char_const*>(&this->name_,name,pcVar4)" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "(&this->name_,name,pcVar4)" ( (comma_expression "&this->name_,name,pcVar4" (pointer_expression "&this->name_" & (field_expression "this->name_" identifier -> field_identifier)) , (comma_expression "name,pcVar4" identifier , identifier)) ))) ;)) (expression_statement "this->shndx_ = shndx;" (assignment_expression "this->shndx_ = shndx" (field_expression "this->shndx_" identifier -> field_identifier) = identifier) ;) (expression_statement "this->reloc_shndx_ = reloc_shndx;" (assignment_expression "this->reloc_shndx_ = reloc_shndx" (field_expression "this->reloc_shndx_" identifier -> field_identifier) = identifier) ;) (expression_statement "this->reloc_type_ = reloc_type;" (assignment_expression "this->reloc_type_ = reloc_type" (field_expression "this->reloc_type_" identifier -> field_identifier) = identifier) ;) (expression_statement "uVar1 = *(undefined8 *)(pshdr + 8);" (assignment_expression "uVar1 = *(undefined8 *)(pshdr + 8)" identifier = (pointer_expression "*(undefined8 *)(pshdr + 8)" * (cast_expression "(undefined8 *)(pshdr + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pshdr + 8)" ( (binary_expression "pshdr + 8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 *)this->shdr_data_ = *(undefined8 *)pshdr;" (assignment_expression "*(undefined8 *)this->shdr_data_ = *(undefined8 *)pshdr" (pointer_expression "*(undefined8 *)this->shdr_data_" * (cast_expression "(undefined8 *)this->shdr_data_" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "this->shdr_data_" identifier -> field_identifier))) = (pointer_expression "*(undefined8 *)pshdr" * (cast_expression "(undefined8 *)pshdr" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined8 *)(this->shdr_data_ + 8) = uVar1;" (assignment_expression "*(undefined8 *)(this->shdr_data_ + 8) = uVar1" (pointer_expression "*(undefined8 *)(this->shdr_data_ + 8)" * (cast_expression "(undefined8 *)(this->shdr_data_ + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this->shdr_data_ + 8)" ( (binary_expression "this->shdr_data_ + 8" (field_expression "this->shdr_data_" identifier -> field_identifier) + number_literal) )))) = identifier) ;) (expression_statement "uVar1 = *(undefined8 *)(pshdr + 0x18);" (assignment_expression "uVar1 = *(undefined8 *)(pshdr + 0x18)" identifier = (pointer_expression "*(undefined8 *)(pshdr + 0x18)" * (cast_expression "(undefined8 *)(pshdr + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pshdr + 0x18)" ( (binary_expression "pshdr + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 *)(this->shdr_data_ + 0x10) = *(undefined8 *)(pshdr + 0x10);" (assignment_expression "*(undefined8 *)(this->shdr_data_ + 0x10) = *(undefined8 *)(pshdr + 0x10)" (pointer_expression "*(undefined8 *)(this->shdr_data_ + 0x10)" * (cast_expression "(undefined8 *)(this->shdr_data_ + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this->shdr_data_ + 0x10)" ( (binary_expression "this->shdr_data_ + 0x10" (field_expression "this->shdr_data_" identifier -> field_identifier) + number_literal) )))) = (pointer_expression "*(undefined8 *)(pshdr + 0x10)" * (cast_expression "(undefined8 *)(pshdr + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pshdr + 0x10)" ( (binary_expression "pshdr + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 *)(this->shdr_data_ + 0x18) = uVar1;" (assignment_expression "*(undefined8 *)(this->shdr_data_ + 0x18) = uVar1" (pointer_expression "*(undefined8 *)(this->shdr_data_ + 0x18)" * (cast_expression "(undefined8 *)(this->shdr_data_ + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this->shdr_data_ + 0x18)" ( (binary_expression "this->shdr_data_ + 0x18" (field_expression "this->shdr_data_" identifier -> field_identifier) + number_literal) )))) = identifier) ;) (expression_statement "uVar1 = *(undefined8 *)(pshdr + 0x28);" (assignment_expression "uVar1 = *(undefined8 *)(pshdr + 0x28)" identifier = (pointer_expression "*(undefined8 *)(pshdr + 0x28)" * (cast_expression "(undefined8 *)(pshdr + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pshdr + 0x28)" ( (binary_expression "pshdr + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 *)(this->shdr_data_ + 0x20) = *(undefined8 *)(pshdr + 0x20);" (assignment_expression "*(undefined8 *)(this->shdr_data_ + 0x20) = *(undefined8 *)(pshdr + 0x20)" (pointer_expression "*(undefined8 *)(this->shdr_data_ + 0x20)" * (cast_expression "(undefined8 *)(this->shdr_data_ + 0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this->shdr_data_ + 0x20)" ( (binary_expression "this->shdr_data_ + 0x20" (field_expression "this->shdr_data_" identifier -> field_identifier) + number_literal) )))) = (pointer_expression "*(undefined8 *)(pshdr + 0x20)" * (cast_expression "(undefined8 *)(pshdr + 0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pshdr + 0x20)" ( (binary_expression "pshdr + 0x20" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 *)(this->shdr_data_ + 0x28) = uVar1;" (assignment_expression "*(undefined8 *)(this->shdr_data_ + 0x28) = uVar1" (pointer_expression "*(undefined8 *)(this->shdr_data_ + 0x28)" * (cast_expression "(undefined8 *)(this->shdr_data_ + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this->shdr_data_ + 0x28)" ( (binary_expression "this->shdr_data_ + 0x28" (field_expression "this->shdr_data_" identifier -> field_identifier) + number_literal) )))) = identifier) ;) (expression_statement "uVar1 = *(undefined8 *)(pshdr + 0x30);" (assignment_expression "uVar1 = *(undefined8 *)(pshdr + 0x30)" identifier = (pointer_expression "*(undefined8 *)(pshdr + 0x30)" * (cast_expression "(undefined8 *)(pshdr + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pshdr + 0x30)" ( (binary_expression "pshdr + 0x30" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = *(undefined8 *)(pshdr + 0x38);" (assignment_expression "uVar2 = *(undefined8 *)(pshdr + 0x38)" identifier = (pointer_expression "*(undefined8 *)(pshdr + 0x38)" * (cast_expression "(undefined8 *)(pshdr + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pshdr + 0x38)" ( (binary_expression "pshdr + 0x38" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(this->shdr_data_ + 4) =\n       sh_type >> 0x18 | (sh_type & 0xff0000) >> 8 | (sh_type & 0xff00) << 8 | sh_type << 0x18;" (assignment_expression "*(uint *)(this->shdr_data_ + 4) =\n       sh_type >> 0x18 | (sh_type & 0xff0000) >> 8 | (sh_type & 0xff00) << 8 | sh_type << 0x18" (pointer_expression "*(uint *)(this->shdr_data_ + 4)" * (cast_expression "(uint *)(this->shdr_data_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this->shdr_data_ + 4)" ( (binary_expression "this->shdr_data_ + 4" (field_expression "this->shdr_data_" identifier -> field_identifier) + number_literal) )))) = (binary_expression "sh_type >> 0x18 | (sh_type & 0xff0000) >> 8 | (sh_type & 0xff00) << 8 | sh_type << 0x18" (binary_expression "sh_type >> 0x18 | (sh_type & 0xff0000) >> 8 | (sh_type & 0xff00) << 8" (binary_expression "sh_type >> 0x18 | (sh_type & 0xff0000) >> 8" (binary_expression "sh_type >> 0x18" identifier >> number_literal) | (binary_expression "(sh_type & 0xff0000) >> 8" (parenthesized_expression "(sh_type & 0xff0000)" ( (binary_expression "sh_type & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(sh_type & 0xff00) << 8" (parenthesized_expression "(sh_type & 0xff00)" ( (binary_expression "sh_type & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "sh_type << 0x18" identifier << number_literal))) ;) (expression_statement "*(undefined8 *)(this->shdr_data_ + 0x30) = uVar1;" (assignment_expression "*(undefined8 *)(this->shdr_data_ + 0x30) = uVar1" (pointer_expression "*(undefined8 *)(this->shdr_data_ + 0x30)" * (cast_expression "(undefined8 *)(this->shdr_data_ + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this->shdr_data_ + 0x30)" ( (binary_expression "this->shdr_data_ + 0x30" (field_expression "this->shdr_data_" identifier -> field_identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined8 *)(this->shdr_data_ + 0x38) = uVar2;" (assignment_expression "*(undefined8 *)(this->shdr_data_ + 0x38) = uVar2" (pointer_expression "*(undefined8 *)(this->shdr_data_ + 0x38)" * (cast_expression "(undefined8 *)(this->shdr_data_ + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this->shdr_data_ + 0x38)" ( (binary_expression "this->shdr_data_ + 0x38" (field_expression "this->shdr_data_" identifier -> field_identifier) + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void FUN_003a23c0(long *param_1,undefined4 param_2,char *param_3,uint param_4,undefined8 *param_5,\n                 undefined4 param_6,undefined4 param_7)\n\n{\n  undefined8 uVar1;\n  undefined8 uVar2;\n  size_t sVar3;\n  char *pcVar4;\n  \n  pcVar4 = (char *)0xffffffffffffffff;\n  *param_1 = (long)(param_1 + 2);\n  if (param_3 != (char *)0x0) {\n    sVar3 = strlen(param_3);\n    pcVar4 = param_3 + sVar3;\n  }\n  FUN_001a61c0(param_1,param_3,pcVar4);\n  *(undefined4 *)(param_1 + 4) = param_2;\n  *(undefined4 *)((long)param_1 + 0x24) = param_6;\n  *(undefined4 *)(param_1 + 5) = param_7;\n  uVar1 = param_5[1];\n  *(undefined8 *)((long)param_1 + 0x2c) = *param_5;\n  *(undefined8 *)((long)param_1 + 0x34) = uVar1;\n  uVar1 = param_5[3];\n  *(undefined8 *)((long)param_1 + 0x3c) = param_5[2];\n  *(undefined8 *)((long)param_1 + 0x44) = uVar1;\n  uVar1 = param_5[5];\n  *(undefined8 *)((long)param_1 + 0x4c) = param_5[4];\n  *(undefined8 *)((long)param_1 + 0x54) = uVar1;\n  uVar1 = param_5[6];\n  uVar2 = param_5[7];\n  *(uint *)(param_1 + 6) =\n       param_4 >> 0x18 | (param_4 & 0xff0000) >> 8 | (param_4 & 0xff00) << 8 | param_4 << 0x18;\n  *(undefined8 *)((long)param_1 + 0x5c) = uVar1;\n  *(undefined8 *)((long)param_1 + 100) = uVar2;\n  return;\n}\n\n" (function_definition "void FUN_003a23c0(long *param_1,undefined4 param_2,char *param_3,uint param_4,undefined8 *param_5,\n                 undefined4 param_6,undefined4 param_7)\n\n{\n  undefined8 uVar1;\n  undefined8 uVar2;\n  size_t sVar3;\n  char *pcVar4;\n  \n  pcVar4 = (char *)0xffffffffffffffff;\n  *param_1 = (long)(param_1 + 2);\n  if (param_3 != (char *)0x0) {\n    sVar3 = strlen(param_3);\n    pcVar4 = param_3 + sVar3;\n  }\n  FUN_001a61c0(param_1,param_3,pcVar4);\n  *(undefined4 *)(param_1 + 4) = param_2;\n  *(undefined4 *)((long)param_1 + 0x24) = param_6;\n  *(undefined4 *)(param_1 + 5) = param_7;\n  uVar1 = param_5[1];\n  *(undefined8 *)((long)param_1 + 0x2c) = *param_5;\n  *(undefined8 *)((long)param_1 + 0x34) = uVar1;\n  uVar1 = param_5[3];\n  *(undefined8 *)((long)param_1 + 0x3c) = param_5[2];\n  *(undefined8 *)((long)param_1 + 0x44) = uVar1;\n  uVar1 = param_5[5];\n  *(undefined8 *)((long)param_1 + 0x4c) = param_5[4];\n  *(undefined8 *)((long)param_1 + 0x54) = uVar1;\n  uVar1 = param_5[6];\n  uVar2 = param_5[7];\n  *(uint *)(param_1 + 6) =\n       param_4 >> 0x18 | (param_4 & 0xff0000) >> 8 | (param_4 & 0xff00) << 8 | param_4 << 0x18;\n  *(undefined8 *)((long)param_1 + 0x5c) = uVar1;\n  *(undefined8 *)((long)param_1 + 100) = uVar2;\n  return;\n}" primitive_type (function_declarator "FUN_003a23c0(long *param_1,undefined4 param_2,char *param_3,uint param_4,undefined8 *param_5,\n                 undefined4 param_6,undefined4 param_7)" identifier (parameter_list "(long *param_1,undefined4 param_2,char *param_3,uint param_4,undefined8 *param_5,\n                 undefined4 param_6,undefined4 param_7)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "uint param_4" type_identifier identifier) , (parameter_declaration "undefined8 *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "undefined4 param_6" type_identifier identifier) , (parameter_declaration "undefined4 param_7" type_identifier identifier) ))) (compound_statement "{\n  undefined8 uVar1;\n  undefined8 uVar2;\n  size_t sVar3;\n  char *pcVar4;\n  \n  pcVar4 = (char *)0xffffffffffffffff;\n  *param_1 = (long)(param_1 + 2);\n  if (param_3 != (char *)0x0) {\n    sVar3 = strlen(param_3);\n    pcVar4 = param_3 + sVar3;\n  }\n  FUN_001a61c0(param_1,param_3,pcVar4);\n  *(undefined4 *)(param_1 + 4) = param_2;\n  *(undefined4 *)((long)param_1 + 0x24) = param_6;\n  *(undefined4 *)(param_1 + 5) = param_7;\n  uVar1 = param_5[1];\n  *(undefined8 *)((long)param_1 + 0x2c) = *param_5;\n  *(undefined8 *)((long)param_1 + 0x34) = uVar1;\n  uVar1 = param_5[3];\n  *(undefined8 *)((long)param_1 + 0x3c) = param_5[2];\n  *(undefined8 *)((long)param_1 + 0x44) = uVar1;\n  uVar1 = param_5[5];\n  *(undefined8 *)((long)param_1 + 0x4c) = param_5[4];\n  *(undefined8 *)((long)param_1 + 0x54) = uVar1;\n  uVar1 = param_5[6];\n  uVar2 = param_5[7];\n  *(uint *)(param_1 + 6) =\n       param_4 >> 0x18 | (param_4 & 0xff0000) >> 8 | (param_4 & 0xff00) << 8 | param_4 << 0x18;\n  *(undefined8 *)((long)param_1 + 0x5c) = uVar1;\n  *(undefined8 *)((long)param_1 + 100) = uVar2;\n  return;\n}" { (declaration "undefined8 uVar1;" type_identifier identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (expression_statement "pcVar4 = (char *)0xffffffffffffffff;" (assignment_expression "pcVar4 = (char *)0xffffffffffffffff" identifier = (cast_expression "(char *)0xffffffffffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*param_1 = (long)(param_1 + 2);" (assignment_expression "*param_1 = (long)(param_1 + 2)" (pointer_expression "*param_1" * identifier) = (cast_expression "(long)(param_1 + 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) )))) ;) (if_statement "if (param_3 != (char *)0x0) {\n    sVar3 = strlen(param_3);\n    pcVar4 = param_3 + sVar3;\n  }" if (parenthesized_expression "(param_3 != (char *)0x0)" ( (binary_expression "param_3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sVar3 = strlen(param_3);\n    pcVar4 = param_3 + sVar3;\n  }" { (expression_statement "sVar3 = strlen(param_3);" (assignment_expression "sVar3 = strlen(param_3)" identifier = (call_expression "strlen(param_3)" identifier (argument_list "(param_3)" ( identifier )))) ;) (expression_statement "pcVar4 = param_3 + sVar3;" (assignment_expression "pcVar4 = param_3 + sVar3" identifier = (binary_expression "param_3 + sVar3" identifier + identifier)) ;) })) (expression_statement "FUN_001a61c0(param_1,param_3,pcVar4);" (call_expression "FUN_001a61c0(param_1,param_3,pcVar4)" identifier (argument_list "(param_1,param_3,pcVar4)" ( identifier , identifier , identifier ))) ;) (expression_statement "*(undefined4 *)(param_1 + 4) = param_2;" (assignment_expression "*(undefined4 *)(param_1 + 4) = param_2" (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((long)param_1 + 0x24) = param_6;" (assignment_expression "*(undefined4 *)((long)param_1 + 0x24) = param_6" (pointer_expression "*(undefined4 *)((long)param_1 + 0x24)" * (cast_expression "(undefined4 *)((long)param_1 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x24)" ( (binary_expression "(long)param_1 + 0x24" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(param_1 + 5) = param_7;" (assignment_expression "*(undefined4 *)(param_1 + 5) = param_7" (pointer_expression "*(undefined4 *)(param_1 + 5)" * (cast_expression "(undefined4 *)(param_1 + 5)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 5)" ( (binary_expression "param_1 + 5" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar1 = param_5[1];" (assignment_expression "uVar1 = param_5[1]" identifier = (subscript_expression "param_5[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined8 *)((long)param_1 + 0x2c) = *param_5;" (assignment_expression "*(undefined8 *)((long)param_1 + 0x2c) = *param_5" (pointer_expression "*(undefined8 *)((long)param_1 + 0x2c)" * (cast_expression "(undefined8 *)((long)param_1 + 0x2c)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x2c)" ( (binary_expression "(long)param_1 + 0x2c" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (pointer_expression "*param_5" * identifier)) ;) (expression_statement "*(undefined8 *)((long)param_1 + 0x34) = uVar1;" (assignment_expression "*(undefined8 *)((long)param_1 + 0x34) = uVar1" (pointer_expression "*(undefined8 *)((long)param_1 + 0x34)" * (cast_expression "(undefined8 *)((long)param_1 + 0x34)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x34)" ( (binary_expression "(long)param_1 + 0x34" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "uVar1 = param_5[3];" (assignment_expression "uVar1 = param_5[3]" identifier = (subscript_expression "param_5[3]" identifier [ number_literal ])) ;) (expression_statement "*(undefined8 *)((long)param_1 + 0x3c) = param_5[2];" (assignment_expression "*(undefined8 *)((long)param_1 + 0x3c) = param_5[2]" (pointer_expression "*(undefined8 *)((long)param_1 + 0x3c)" * (cast_expression "(undefined8 *)((long)param_1 + 0x3c)" ( (type_descriptor "undefined8 *" 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) )))) = (subscript_expression "param_5[2]" identifier [ number_literal ])) ;) (expression_statement "*(undefined8 *)((long)param_1 + 0x44) = uVar1;" (assignment_expression "*(undefined8 *)((long)param_1 + 0x44) = uVar1" (pointer_expression "*(undefined8 *)((long)param_1 + 0x44)" * (cast_expression "(undefined8 *)((long)param_1 + 0x44)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x44)" ( (binary_expression "(long)param_1 + 0x44" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "uVar1 = param_5[5];" (assignment_expression "uVar1 = param_5[5]" identifier = (subscript_expression "param_5[5]" identifier [ number_literal ])) ;) (expression_statement "*(undefined8 *)((long)param_1 + 0x4c) = param_5[4];" (assignment_expression "*(undefined8 *)((long)param_1 + 0x4c) = param_5[4]" (pointer_expression "*(undefined8 *)((long)param_1 + 0x4c)" * (cast_expression "(undefined8 *)((long)param_1 + 0x4c)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x4c)" ( (binary_expression "(long)param_1 + 0x4c" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (subscript_expression "param_5[4]" identifier [ number_literal ])) ;) (expression_statement "*(undefined8 *)((long)param_1 + 0x54) = uVar1;" (assignment_expression "*(undefined8 *)((long)param_1 + 0x54) = uVar1" (pointer_expression "*(undefined8 *)((long)param_1 + 0x54)" * (cast_expression "(undefined8 *)((long)param_1 + 0x54)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x54)" ( (binary_expression "(long)param_1 + 0x54" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "uVar1 = param_5[6];" (assignment_expression "uVar1 = param_5[6]" identifier = (subscript_expression "param_5[6]" identifier [ number_literal ])) ;) (expression_statement "uVar2 = param_5[7];" (assignment_expression "uVar2 = param_5[7]" identifier = (subscript_expression "param_5[7]" identifier [ number_literal ])) ;) (expression_statement "*(uint *)(param_1 + 6) =\n       param_4 >> 0x18 | (param_4 & 0xff0000) >> 8 | (param_4 & 0xff00) << 8 | param_4 << 0x18;" (assignment_expression "*(uint *)(param_1 + 6) =\n       param_4 >> 0x18 | (param_4 & 0xff0000) >> 8 | (param_4 & 0xff00) << 8 | param_4 << 0x18" (pointer_expression "*(uint *)(param_1 + 6)" * (cast_expression "(uint *)(param_1 + 6)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 6)" ( (binary_expression "param_1 + 6" identifier + number_literal) )))) = (binary_expression "param_4 >> 0x18 | (param_4 & 0xff0000) >> 8 | (param_4 & 0xff00) << 8 | param_4 << 0x18" (binary_expression "param_4 >> 0x18 | (param_4 & 0xff0000) >> 8 | (param_4 & 0xff00) << 8" (binary_expression "param_4 >> 0x18 | (param_4 & 0xff0000) >> 8" (binary_expression "param_4 >> 0x18" identifier >> number_literal) | (binary_expression "(param_4 & 0xff0000) >> 8" (parenthesized_expression "(param_4 & 0xff0000)" ( (binary_expression "param_4 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(param_4 & 0xff00) << 8" (parenthesized_expression "(param_4 & 0xff00)" ( (binary_expression "param_4 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "param_4 << 0x18" identifier << number_literal))) ;) (expression_statement "*(undefined8 *)((long)param_1 + 0x5c) = uVar1;" (assignment_expression "*(undefined8 *)((long)param_1 + 0x5c) = uVar1" (pointer_expression "*(undefined8 *)((long)param_1 + 0x5c)" * (cast_expression "(undefined8 *)((long)param_1 + 0x5c)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x5c)" ( (binary_expression "(long)param_1 + 0x5c" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined8 *)((long)param_1 + 100) = uVar2;" (assignment_expression "*(undefined8 *)((long)param_1 + 100) = uVar2" (pointer_expression "*(undefined8 *)((long)param_1 + 100)" * (cast_expression "(undefined8 *)((long)param_1 + 100)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 100)" ( (binary_expression "(long)param_1 + 100" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = (pointer_expression * 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) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = IDENT) ;) (return_statement return ;) })))
(function_definition "void FUN_003a23c0(long *param_1,undefined4 param_2,char *param_3,uint param_4,undefined8 *param_5,\n                 undefined4 param_6,undefined4 param_7)\n\n{\n  undefined8 uVar1;\n  undefined8 uVar2;\n  size_t sVar3;\n  char *pcVar4;\n  \n  pcVar4 = (char *)0xffffffffffffffff;\n  *param_1 = (long)(param_1 + 2);\n  if (param_3 != (char *)0x0) {\n    sVar3 = strlen(param_3);\n    pcVar4 = param_3 + sVar3;\n  }\n  FUN_001a61c0(param_1,param_3,pcVar4);\n  *(undefined4 *)(param_1 + 4) = param_2;\n  *(undefined4 *)((long)param_1 + 0x24) = param_6;\n  *(undefined4 *)(param_1 + 5) = param_7;\n  uVar1 = param_5[1];\n  *(undefined8 *)((long)param_1 + 0x2c) = *param_5;\n  *(undefined8 *)((long)param_1 + 0x34) = uVar1;\n  uVar1 = param_5[3];\n  *(undefined8 *)((long)param_1 + 0x3c) = param_5[2];\n  *(undefined8 *)((long)param_1 + 0x44) = uVar1;\n  uVar1 = param_5[5];\n  *(undefined8 *)((long)param_1 + 0x4c) = param_5[4];\n  *(undefined8 *)((long)param_1 + 0x54) = uVar1;\n  uVar1 = param_5[6];\n  uVar2 = param_5[7];\n  *(uint *)(param_1 + 6) =\n       param_4 >> 0x18 | (param_4 & 0xff0000) >> 8 | (param_4 & 0xff00) << 8 | param_4 << 0x18;\n  *(undefined8 *)((long)param_1 + 0x5c) = uVar1;\n  *(undefined8 *)((long)param_1 + 100) = uVar2;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_003a23c0(long *param_1,undefined4 param_2,char *param_3,uint param_4,undefined8 *param_5,\n                 undefined4 param_6,undefined4 param_7)" (identifier "FUN_003a23c0") (parameter_list "(long *param_1,undefined4 param_2,char *param_3,uint param_4,undefined8 *param_5,\n                 undefined4 param_6,undefined4 param_7)" (( "(") (parameter_declaration "long *param_1" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "char *param_3" (primitive_type "char") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "uint param_4" (type_identifier "uint") (identifier "param_4")) (, ",") (parameter_declaration "undefined8 *param_5" (type_identifier "undefined8") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) (, ",") (parameter_declaration "undefined4 param_6" (type_identifier "undefined4") (identifier "param_6")) (, ",") (parameter_declaration "undefined4 param_7" (type_identifier "undefined4") (identifier "param_7")) () ")"))) (compound_statement "{\n  undefined8 uVar1;\n  undefined8 uVar2;\n  size_t sVar3;\n  char *pcVar4;\n  \n  pcVar4 = (char *)0xffffffffffffffff;\n  *param_1 = (long)(param_1 + 2);\n  if (param_3 != (char *)0x0) {\n    sVar3 = strlen(param_3);\n    pcVar4 = param_3 + sVar3;\n  }\n  FUN_001a61c0(param_1,param_3,pcVar4);\n  *(undefined4 *)(param_1 + 4) = param_2;\n  *(undefined4 *)((long)param_1 + 0x24) = param_6;\n  *(undefined4 *)(param_1 + 5) = param_7;\n  uVar1 = param_5[1];\n  *(undefined8 *)((long)param_1 + 0x2c) = *param_5;\n  *(undefined8 *)((long)param_1 + 0x34) = uVar1;\n  uVar1 = param_5[3];\n  *(undefined8 *)((long)param_1 + 0x3c) = param_5[2];\n  *(undefined8 *)((long)param_1 + 0x44) = uVar1;\n  uVar1 = param_5[5];\n  *(undefined8 *)((long)param_1 + 0x4c) = param_5[4];\n  *(undefined8 *)((long)param_1 + 0x54) = uVar1;\n  uVar1 = param_5[6];\n  uVar2 = param_5[7];\n  *(uint *)(param_1 + 6) =\n       param_4 >> 0x18 | (param_4 & 0xff0000) >> 8 | (param_4 & 0xff00) << 8 | param_4 << 0x18;\n  *(undefined8 *)((long)param_1 + 0x5c) = uVar1;\n  *(undefined8 *)((long)param_1 + 100) = uVar2;\n  return;\n}" ({ "{") (declaration "undefined8 uVar1;" (type_identifier "undefined8") (identifier "uVar1") (; ";")) (declaration "undefined8 uVar2;" (type_identifier "undefined8") (identifier "uVar2") (; ";")) (declaration "size_t sVar3;" (primitive_type "size_t") (identifier "sVar3") (; ";")) (declaration "char *pcVar4;" (primitive_type "char") (pointer_declarator "*pcVar4" (* "*") (identifier "pcVar4")) (; ";")) (expression_statement "pcVar4 = (char *)0xffffffffffffffff;" (assignment_expression "pcVar4 = (char *)0xffffffffffffffff" (identifier "pcVar4") (= "=") (cast_expression "(char *)0xffffffffffffffff" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffffffffffff"))) (; ";")) (expression_statement "*param_1 = (long)(param_1 + 2);" (assignment_expression "*param_1 = (long)(param_1 + 2)" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (cast_expression "(long)(param_1 + 2)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(param_1 + 2)" (( "(") (binary_expression "param_1 + 2" (identifier "param_1") (+ "+") (number_literal "2")) () ")")))) (; ";")) (if_statement "if (param_3 != (char *)0x0) {\n    sVar3 = strlen(param_3);\n    pcVar4 = param_3 + sVar3;\n  }" (if "if") (parenthesized_expression "(param_3 != (char *)0x0)" (( "(") (binary_expression "param_3 != (char *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    sVar3 = strlen(param_3);\n    pcVar4 = param_3 + sVar3;\n  }" ({ "{") (expression_statement "sVar3 = strlen(param_3);" (assignment_expression "sVar3 = strlen(param_3)" (identifier "sVar3") (= "=") (call_expression "strlen(param_3)" (identifier "strlen") (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";")) (expression_statement "pcVar4 = param_3 + sVar3;" (assignment_expression "pcVar4 = param_3 + sVar3" (identifier "pcVar4") (= "=") (binary_expression "param_3 + sVar3" (identifier "param_3") (+ "+") (identifier "sVar3"))) (; ";")) (} "}"))) (expression_statement "FUN_001a61c0(param_1,param_3,pcVar4);" (call_expression "FUN_001a61c0(param_1,param_3,pcVar4)" (identifier "FUN_001a61c0") (argument_list "(param_1,param_3,pcVar4)" (( "(") (identifier "param_1") (, ",") (identifier "param_3") (, ",") (identifier "pcVar4") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 4) = param_2;" (assignment_expression "*(undefined4 *)(param_1 + 4) = param_2" (pointer_expression "*(undefined4 *)(param_1 + 4)" (* "*") (cast_expression "(undefined4 *)(param_1 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(undefined4 *)((long)param_1 + 0x24) = param_6;" (assignment_expression "*(undefined4 *)((long)param_1 + 0x24) = param_6" (pointer_expression "*(undefined4 *)((long)param_1 + 0x24)" (* "*") (cast_expression "(undefined4 *)((long)param_1 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x24)" (( "(") (binary_expression "(long)param_1 + 0x24" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x24")) () ")")))) (= "=") (identifier "param_6")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 5) = param_7;" (assignment_expression "*(undefined4 *)(param_1 + 5) = param_7" (pointer_expression "*(undefined4 *)(param_1 + 5)" (* "*") (cast_expression "(undefined4 *)(param_1 + 5)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 5)" (( "(") (binary_expression "param_1 + 5" (identifier "param_1") (+ "+") (number_literal "5")) () ")")))) (= "=") (identifier "param_7")) (; ";")) (expression_statement "uVar1 = param_5[1];" (assignment_expression "uVar1 = param_5[1]" (identifier "uVar1") (= "=") (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*(undefined8 *)((long)param_1 + 0x2c) = *param_5;" (assignment_expression "*(undefined8 *)((long)param_1 + 0x2c) = *param_5" (pointer_expression "*(undefined8 *)((long)param_1 + 0x2c)" (* "*") (cast_expression "(undefined8 *)((long)param_1 + 0x2c)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x2c)" (( "(") (binary_expression "(long)param_1 + 0x2c" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (pointer_expression "*param_5" (* "*") (identifier "param_5"))) (; ";")) (expression_statement "*(undefined8 *)((long)param_1 + 0x34) = uVar1;" (assignment_expression "*(undefined8 *)((long)param_1 + 0x34) = uVar1" (pointer_expression "*(undefined8 *)((long)param_1 + 0x34)" (* "*") (cast_expression "(undefined8 *)((long)param_1 + 0x34)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x34)" (( "(") (binary_expression "(long)param_1 + 0x34" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x34")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "uVar1 = param_5[3];" (assignment_expression "uVar1 = param_5[3]" (identifier "uVar1") (= "=") (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*(undefined8 *)((long)param_1 + 0x3c) = param_5[2];" (assignment_expression "*(undefined8 *)((long)param_1 + 0x3c) = param_5[2]" (pointer_expression "*(undefined8 *)((long)param_1 + 0x3c)" (* "*") (cast_expression "(undefined8 *)((long)param_1 + 0x3c)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (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")) () ")")))) (= "=") (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "*(undefined8 *)((long)param_1 + 0x44) = uVar1;" (assignment_expression "*(undefined8 *)((long)param_1 + 0x44) = uVar1" (pointer_expression "*(undefined8 *)((long)param_1 + 0x44)" (* "*") (cast_expression "(undefined8 *)((long)param_1 + 0x44)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x44)" (( "(") (binary_expression "(long)param_1 + 0x44" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x44")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "uVar1 = param_5[5];" (assignment_expression "uVar1 = param_5[5]" (identifier "uVar1") (= "=") (subscript_expression "param_5[5]" (identifier "param_5") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "*(undefined8 *)((long)param_1 + 0x4c) = param_5[4];" (assignment_expression "*(undefined8 *)((long)param_1 + 0x4c) = param_5[4]" (pointer_expression "*(undefined8 *)((long)param_1 + 0x4c)" (* "*") (cast_expression "(undefined8 *)((long)param_1 + 0x4c)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x4c)" (( "(") (binary_expression "(long)param_1 + 0x4c" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x4c")) () ")")))) (= "=") (subscript_expression "param_5[4]" (identifier "param_5") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "*(undefined8 *)((long)param_1 + 0x54) = uVar1;" (assignment_expression "*(undefined8 *)((long)param_1 + 0x54) = uVar1" (pointer_expression "*(undefined8 *)((long)param_1 + 0x54)" (* "*") (cast_expression "(undefined8 *)((long)param_1 + 0x54)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x54)" (( "(") (binary_expression "(long)param_1 + 0x54" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x54")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "uVar1 = param_5[6];" (assignment_expression "uVar1 = param_5[6]" (identifier "uVar1") (= "=") (subscript_expression "param_5[6]" (identifier "param_5") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "uVar2 = param_5[7];" (assignment_expression "uVar2 = param_5[7]" (identifier "uVar2") (= "=") (subscript_expression "param_5[7]" (identifier "param_5") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "*(uint *)(param_1 + 6) =\n       param_4 >> 0x18 | (param_4 & 0xff0000) >> 8 | (param_4 & 0xff00) << 8 | param_4 << 0x18;" (assignment_expression "*(uint *)(param_1 + 6) =\n       param_4 >> 0x18 | (param_4 & 0xff0000) >> 8 | (param_4 & 0xff00) << 8 | param_4 << 0x18" (pointer_expression "*(uint *)(param_1 + 6)" (* "*") (cast_expression "(uint *)(param_1 + 6)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 6)" (( "(") (binary_expression "param_1 + 6" (identifier "param_1") (+ "+") (number_literal "6")) () ")")))) (= "=") (binary_expression "param_4 >> 0x18 | (param_4 & 0xff0000) >> 8 | (param_4 & 0xff00) << 8 | param_4 << 0x18" (binary_expression "param_4 >> 0x18 | (param_4 & 0xff0000) >> 8 | (param_4 & 0xff00) << 8" (binary_expression "param_4 >> 0x18 | (param_4 & 0xff0000) >> 8" (binary_expression "param_4 >> 0x18" (identifier "param_4") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(param_4 & 0xff0000) >> 8" (parenthesized_expression "(param_4 & 0xff0000)" (( "(") (binary_expression "param_4 & 0xff0000" (identifier "param_4") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(param_4 & 0xff00) << 8" (parenthesized_expression "(param_4 & 0xff00)" (( "(") (binary_expression "param_4 & 0xff00" (identifier "param_4") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "param_4 << 0x18" (identifier "param_4") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "*(undefined8 *)((long)param_1 + 0x5c) = uVar1;" (assignment_expression "*(undefined8 *)((long)param_1 + 0x5c) = uVar1" (pointer_expression "*(undefined8 *)((long)param_1 + 0x5c)" (* "*") (cast_expression "(undefined8 *)((long)param_1 + 0x5c)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x5c)" (( "(") (binary_expression "(long)param_1 + 0x5c" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x5c")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "*(undefined8 *)((long)param_1 + 100) = uVar2;" (assignment_expression "*(undefined8 *)((long)param_1 + 100) = uVar2" (pointer_expression "*(undefined8 *)((long)param_1 + 100)" (* "*") (cast_expression "(undefined8 *)((long)param_1 + 100)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 100)" (( "(") (binary_expression "(long)param_1 + 100" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "100")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* DWARF original prototype: void Deferred_layout(Deferred_layout * this, uint shndx, char * name,
   uint sh_type, uchar * pshdr, uint reloc_shndx, uint reloc_type) */

void __thiscall
gold::Sized_relobj_file<64,_true>::Deferred_layout::Deferred_layout
          (Deferred_layout *this,type_2 shndx,char *var_1,type_2 var_7,uchar *var_6,type_2 reloc_shndx,
          type_2 reloc_type)

{
  type_1 uVar1;
  type_1 uVar2;
  size_t var_3;
  char *pcVar4;
  
  pcVar4 = (char *)0xffffffffffffffff;
  (this->name_)._M_dataplus._M_p = (pointer)&(this->name_).field_2;
  if (var_1 != (char *)0x0) {
    var_3 = var_2(var_1);
    pcVar4 = var_1 + var_3;
  }
  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
  var_4<var_5*>(&this->name_,var_1,pcVar4);
  this->shndx_ = shndx;
  this->reloc_shndx_ = reloc_shndx;
  this->reloc_type_ = reloc_type;
  uVar1 = *(type_1 *)(var_6 + 8);
  *(type_1 *)this->shdr_data_ = *(type_1 *)var_6;
  *(type_1 *)(this->shdr_data_ + 8) = uVar1;
  uVar1 = *(type_1 *)(var_6 + 0x18);
  *(type_1 *)(this->shdr_data_ + 0x10) = *(type_1 *)(var_6 + 0x10);
  *(type_1 *)(this->shdr_data_ + 0x18) = uVar1;
  uVar1 = *(type_1 *)(var_6 + 0x28);
  *(type_1 *)(this->shdr_data_ + 0x20) = *(type_1 *)(var_6 + 0x20);
  *(type_1 *)(this->shdr_data_ + 0x28) = uVar1;
  uVar1 = *(type_1 *)(var_6 + 0x30);
  uVar2 = *(type_1 *)(var_6 + 0x38);
  *(type_2 *)(this->shdr_data_ + 4) =
       var_7 >> 0x18 | (var_7 & 0xff0000) >> 8 | (var_7 & 0xff00) << 8 | var_7 << 0x18;
  *(type_1 *)(this->shdr_data_ + 0x30) = uVar1;
  *(type_1 *)(this->shdr_data_ + 0x38) = uVar2;
  return;
}


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

void MASKED(long *param_1,undefined4 param_2,char *param_3,uint param_4,undefined8 *param_5,
                 undefined4 param_6,undefined4 param_7)

{
  undefined8 uVar1;
  undefined8 uVar2;
  size_t sVar3;
  char *pcVar4;
  
  pcVar4 = (char *)0xffffffffffffffff;
  *param_1 = (long)(param_1 + 2);
  if (param_3 != (char *)0x0) {
    sVar3 = strlen(param_3);
    pcVar4 = param_3 + sVar3;
  }
  FUN_001a61c0(param_1,param_3,pcVar4);
  *(undefined4 *)(param_1 + 4) = param_2;
  *(undefined4 *)((long)param_1 + 0x24) = param_6;
  *(undefined4 *)(param_1 + 5) = param_7;
  uVar1 = param_5[1];
  *(undefined8 *)((long)param_1 + 0x2c) = *param_5;
  *(undefined8 *)((long)param_1 + 0x34) = uVar1;
  uVar1 = param_5[3];
  *(undefined8 *)((long)param_1 + 0x3c) = param_5[2];
  *(undefined8 *)((long)param_1 + 0x44) = uVar1;
  uVar1 = param_5[5];
  *(undefined8 *)((long)param_1 + 0x4c) = param_5[4];
  *(undefined8 *)((long)param_1 + 0x54) = uVar1;
  uVar1 = param_5[6];
  uVar2 = param_5[7];
  *(uint *)(param_1 + 6) =
       param_4 >> 0x18 | (param_4 & 0xff0000) >> 8 | (param_4 & 0xff00) << 8 | param_4 << 0x18;
  *(undefined8 *)((long)param_1 + 0x5c) = uVar1;
  *(undefined8 *)((long)param_1 + 100) = uVar2;
  return;
}

