
/* WARNING: Function: __x86.get_pc_thunk.cx replaced with injection: get_pc_thunk_cx */
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void Input_file(Input_file * this, char * name) */

void __thiscall gold::Input_file::Input_file(Input_file *this,char *name)

{
  _Rb_tree_header *p_Var1;
  Saved_views *pSVar2;
  bool bVar3;
  bool bVar4;
  bool bVar5;
  Incremental_disposition IVar6;
  Object_format OVar7;
  Input_file_argument *pIVar8;
  char *pcVar9;
  size_t sVar10;
  
  (this->found_name_)._M_string_length = 0;
  (this->found_name_)._M_dataplus._M_p = (pointer)&(this->found_name_).field_2;
  (this->file_).name_._M_dataplus._M_p = (pointer)&(this->file_).name_.field_2;
  p_Var1 = &(this->file_).views_._M_t._M_impl.super__Rb_tree_header;
  (this->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_left = &p_Var1->_M_header;
  (this->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_right = &p_Var1->_M_header;
  pSVar2 = &(this->file_).saved_views_;
  (this->file_).saved_views_.
  super__List_base<gold::File_read::View*,_std::allocator<gold::File_read::View*>_>._M_impl._M_node.
  super__List_node_base._M_prev = (_List_node_base *)pSVar2;
  (this->file_).saved_views_.
  super__List_base<gold::File_read::View*,_std::allocator<gold::File_read::View*>_>._M_impl._M_node.
  super__List_node_base._M_next = (_List_node_base *)pSVar2;
  (this->found_name_).field_2._M_local_buf[0] = '\0';
  (this->file_).name_._M_string_length = 0;
  (this->file_).name_.field_2._M_local_buf[0] = '\0';
  (this->file_).descriptor_ = -1;
  (this->file_).is_descriptor_opened_ = false;
  (this->file_).object_count_ = 0;
  *(undefined4 *)&(this->file_).size_ = 0;
  *(undefined4 *)((int)&(this->file_).size_ + 4) = 0;
  (this->file_).token_.is_blocker_ = false;
  (this->file_).token_.blockers_ = 0;
  (this->file_).token_.writer_ = (Task *)0x0;
  (this->file_).token_.waiting_.head_ = (Task *)0x0;
  (this->file_).token_.waiting_.tail_ = (Task *)0x0;
  (this->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_color = _S_red;
  (this->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_parent = (_Base_ptr)0x0;
  (this->file_).views_._M_t._M_impl.super__Rb_tree_header._M_node_count = 0;
  (this->file_).saved_views_.
  super__List_base<gold::File_read::View*,_std::allocator<gold::File_read::View*>_>._M_impl._M_node.
  _M_size = 0;
  (this->file_).mapped_bytes_ = 0;
  (this->file_).released_ = true;
  this->is_in_sysroot_ = false;
  bVar3 = Position_dependent_options::default_options_.as_needed_.value;
  (this->file_).whole_file_view_ = (View *)0x0;
  this->format_ = FORMAT_NONE;
  bVar4 = Position_dependent_options::default_options_.Bdynamic_.value;
                    /* try { // try from 0023ed26 to 0023ed4f has its CatchHandler @ 0023ede8 */
  OVar7 = General_options::format_enum(&Position_dependent_options::default_options_);
  IVar6 = Position_dependent_options::default_options_.incremental_disposition_;
  bVar5 = Position_dependent_options::default_options_.whole_archive_.value;
  pIVar8 = (Input_file_argument *)operator_new(0x4c);
  (pIVar8->name_)._M_dataplus._M_p = (pointer)&(pIVar8->name_).field_2;
  pcVar9 = (char *)0xffffffff;
  if (name != (char *)0x0) {
    sVar10 = strlen(name);
    pcVar9 = name + sVar10;
  }
                    /* try { // try from 0023ed84 to 0023ed88 has its CatchHandler @ 0023edf4 */
  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
  _M_construct<char_const*>
            ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)pIVar8,name,pcVar9
             ,0);
  pIVar8->type_ = INPUT_FILE_TYPE_FILE;
  (pIVar8->extra_search_path_)._M_dataplus._M_p = (pointer)&(pIVar8->extra_search_path_).field_2;
                    /* try { // try from 0023edaa to 0023edae has its CatchHandler @ 0023edef */
  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
  _M_construct<char_const*>(&pIVar8->extra_search_path_,"","",0);
  pIVar8->just_symbols_ = false;
  pIVar8->arg_serial_ = 0;
  (pIVar8->options_).as_needed_ = bVar3;
  this->input_argument_ = pIVar8;
  (pIVar8->options_).Bdynamic_ = bVar4;
  (pIVar8->options_).format_enum_ = OVar7;
  (pIVar8->options_).whole_archive_ = bVar5;
  (pIVar8->options_).incremental_disposition_ = IVar6;
  return;
}



/* WARNING: Function: __i686.get_pc_thunk.cx replaced with injection: get_pc_thunk_cx */

void FUN_0023ec30(undefined4 *param_1,char *param_2)

{
  undefined1 uVar1;
  undefined1 uVar2;
  undefined1 uVar3;
  int iVar4;
  int iVar5;
  int *piVar6;
  char *pcVar7;
  size_t sVar8;
  
  param_1[2] = 0;
  param_1[1] = param_1 + 3;
  param_1[7] = param_1 + 9;
  param_1[0x1a] = param_1 + 0x18;
  param_1[0x1b] = param_1 + 0x18;
  param_1[0x1e] = param_1 + 0x1d;
  param_1[0x1d] = param_1 + 0x1d;
  *(undefined1 *)(param_1 + 3) = 0;
  param_1[8] = 0;
  *(undefined1 *)(param_1 + 9) = 0;
  param_1[0xd] = 0xffffffff;
  *(undefined1 *)(param_1 + 0xe) = 0;
  param_1[0xf] = 0;
  param_1[0x10] = 0;
  param_1[0x11] = 0;
  *(undefined1 *)(param_1 + 0x12) = 0;
  param_1[0x13] = 0;
  param_1[0x14] = 0;
  param_1[0x15] = 0;
  param_1[0x16] = 0;
  param_1[0x18] = 0;
  param_1[0x19] = 0;
  param_1[0x1c] = 0;
  param_1[0x1f] = 0;
  param_1[0x20] = 0;
  *(undefined1 *)(param_1 + 0x21) = 1;
  *(undefined1 *)(param_1 + 0x23) = 0;
  uVar1 = DAT_005eba75;
  param_1[0x22] = 0;
  param_1[0x24] = 0;
  uVar2 = DAT_005ebcc9;
                    /* try { // try from 0023ed26 to 0023ed4f has its CatchHandler @ 0023ede8 */
  iVar5 = FUN_002b5cb0(&DAT_005eb780);
  iVar4 = DAT_005f1194;
  uVar3 = DAT_005f01ad;
  piVar6 = (int *)FUN_003ac4d0(0x4c);
  *piVar6 = (int)(piVar6 + 2);
  pcVar7 = (char *)0xffffffff;
  if (param_2 != (char *)0x0) {
    sVar8 = strlen(param_2);
    pcVar7 = param_2 + sVar8;
  }
                    /* try { // try from 0023ed84 to 0023ed88 has its CatchHandler @ 0023edf4 */
  FUN_00072b90(piVar6,param_2,pcVar7,0);
  piVar6[6] = 0;
  piVar6[7] = (int)(piVar6 + 9);
                    /* try { // try from 0023edaa to 0023edae has its CatchHandler @ 0023edef */
  FUN_00072b90(piVar6 + 7,"","",0);
  *(undefined1 *)(piVar6 + 0xd) = 0;
  piVar6[0x12] = 0;
  *(undefined1 *)(piVar6 + 0xe) = uVar1;
  *param_1 = piVar6;
  *(undefined1 *)((int)piVar6 + 0x39) = uVar2;
  piVar6[0xf] = iVar5;
  *(undefined1 *)(piVar6 + 0x10) = uVar3;
  piVar6[0x11] = iVar4;
  return;
}


CALL 0x00074f06
ADD ECX,0x3ab3cb
PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
PUSH EBX
MOV EBX,ECX
SUB ESP,0x38
MOV ESI,dword ptr [EBP + 0x8]
MOV dword ptr [EBP + -0x1c],ECX
LEA EAX,[ESI + 0xc]
MOV dword ptr [ESI + 0x8],0x0
MOV dword ptr [EBP + -0x2c],EAX
MOV dword ptr [ESI + 0x4],EAX
LEA EAX,[ESI + 0x24]
MOV dword ptr [ESI + 0x1c],EAX
LEA EAX,[ESI + 0x60]
MOV dword ptr [ESI + 0x68],EAX
MOV dword ptr [ESI + 0x6c],EAX
LEA EAX,[ESI + 0x74]
MOV dword ptr [ESI + 0x78],EAX
MOV dword ptr [ESI + 0x74],EAX
MOV byte ptr [ESI + 0xc],0x0
MOV dword ptr [ESI + 0x20],0x0
MOV byte ptr [ESI + 0x24],0x0
MOV dword ptr [ESI + 0x34],0xffffffff
MOV byte ptr [ESI + 0x38],0x0
MOV dword ptr [ESI + 0x3c],0x0
MOV dword ptr [ESI + 0x40],0x0
MOV dword ptr [ESI + 0x44],0x0
MOV byte ptr [ESI + 0x48],0x0
MOV dword ptr [ESI + 0x4c],0x0
MOV dword ptr [ESI + 0x50],0x0
MOV dword ptr [ESI + 0x54],0x0
MOV dword ptr [ESI + 0x58],0x0
MOV dword ptr [ESI + 0x60],0x0
MOV dword ptr [ESI + 0x64],0x0
MOV dword ptr [ESI + 0x70],0x0
MOV dword ptr [ESI + 0x7c],0x0
MOV dword ptr [ESI + 0x80],0x0
LEA EDI,[ECX + 0x1780]
MOV byte ptr [ESI + 0x84],0x1
MOV byte ptr [ESI + 0x8c],0x0
MOVZX EAX,byte ptr [EDI + 0x2f5]
MOV dword ptr [ESI + 0x88],0x0
MOV dword ptr [ESI + 0x90],0x0
MOV byte ptr [EBP + -0x26],AL
MOVZX EAX,byte ptr [EDI + 0x549]
PUSH EDI
MOV byte ptr [EBP + -0x27],AL
CALL 0x002b5cb0
MOV dword ptr [EBP + -0x20],EAX
MOVZX EAX,byte ptr [EDI + 0x4a2d]
MOV EBX,dword ptr [EBP + -0x1c]
MOV byte ptr [EBP + -0x25],AL
MOV EAX,dword ptr [EDI + 0x5a14]
MOV dword ptr [ESP],0x4c
MOV dword ptr [EBP + -0x24],EAX
CALL 0x003ac4d0
MOV EDX,dword ptr [EBP + 0xc]
MOV EDI,EAX
LEA EAX,[EAX + 0x8]
ADD ESP,0x10
MOV dword ptr [EBP + -0x30],EAX
MOV dword ptr [EDI],EAX
MOV EAX,0xffffffff
TEST EDX,EDX
JZ 0x0023ed7d
SUB ESP,0xc
PUSH dword ptr [EBP + 0xc]
MOV EBX,dword ptr [EBP + -0x1c]
CALL 0x00039330
ADD ESP,0x10
ADD EAX,dword ptr [EBP + 0xc]
PUSH 0x0
PUSH EAX
PUSH dword ptr [EBP + 0xc]
PUSH EDI
CALL 0x00072b90
LEA EAX,[EDI + 0x24]
ADD ESP,0x10
LEA EDX,[EDI + 0x1c]
MOV dword ptr [EDI + 0x18],0x0
MOV dword ptr [EDI + 0x1c],EAX
MOV EAX,dword ptr [EBP + -0x1c]
PUSH 0x0
LEA EAX,[EAX + 0xffeb3b16]
PUSH EAX
PUSH EAX
PUSH EDX
CALL 0x00072b90
MOVZX EAX,byte ptr [EBP + -0x26]
MOV byte ptr [EDI + 0x34],0x0
ADD ESP,0x10
MOV dword ptr [EDI + 0x48],0x0
MOV byte ptr [EDI + 0x38],AL
MOVZX EAX,byte ptr [EBP + -0x27]
MOV dword ptr [ESI],EDI
MOV byte ptr [EDI + 0x39],AL
MOV EAX,dword ptr [EBP + -0x20]
MOV dword ptr [EDI + 0x3c],EAX
MOVZX EAX,byte ptr [EBP + -0x25]
MOV byte ptr [EDI + 0x40],AL
MOV EAX,dword ptr [EBP + -0x24]
MOV dword ptr [EDI + 0x44],EAX
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.cx replaced with injection: get_pc_thunk_cx */\n\nvoid FUN_0023ec30(undefined4 *param_1,char *param_2)\n\n{\n  undefined1 uVar1;\n  undefined1 uVar2;\n  undefined1 uVar3;\n  int iVar4;\n  int iVar5;\n  int *piVar6;\n  char *pcVar7;\n  size_t sVar8;\n  \n  param_1[2] = 0;\n  param_1[1] = param_1 + 3;\n  param_1[7] = param_1 + 9;\n  param_1[0x1a] = param_1 + 0x18;\n  param_1[0x1b] = param_1 + 0x18;\n  param_1[0x1e] = param_1 + 0x1d;\n  param_1[0x1d] = param_1 + 0x1d;\n  *(undefined1 *)(param_1 + 3) = 0;\n  param_1[8] = 0;\n  *(undefined1 *)(param_1 + 9) = 0;\n  param_1[0xd] = 0xffffffff;\n  *(undefined1 *)(param_1 + 0xe) = 0;\n  param_1[0xf] = 0;\n  param_1[0x10] = 0;\n  param_1[0x11] = 0;\n  *(undefined1 *)(param_1 + 0x12) = 0;\n  param_1[0x13] = 0;\n  param_1[0x14] = 0;\n  param_1[0x15] = 0;\n  param_1[0x16] = 0;\n  param_1[0x18] = 0;\n  param_1[0x19] = 0;\n  param_1[0x1c] = 0;\n  param_1[0x1f] = 0;\n  param_1[0x20] = 0;\n  *(undefined1 *)(param_1 + 0x21) = 1;\n  *(undefined1 *)(param_1 + 0x23) = 0;\n  uVar1 = DAT_005eba75;\n  param_1[0x22] = 0;\n  param_1[0x24] = 0;\n  uVar2 = DAT_005ebcc9;\n                    /* try { // try from 0023ed26 to 0023ed4f has its CatchHandler @ 0023ede8 */\n  iVar5 = FUN_002b5cb0(&DAT_005eb780);\n  iVar4 = DAT_005f1194;\n  uVar3 = DAT_005f01ad;\n  piVar6 = (int *)FUN_003ac4d0(0x4c);\n  *piVar6 = (int)(piVar6 + 2);\n  pcVar7 = (char *)0xffffffff;\n  if (param_2 != (char *)0x0) {\n    sVar8 = strlen(param_2);\n    pcVar7 = param_2 + sVar8;\n  }\n                    /* try { // try from 0023ed84 to 0023ed88 has its CatchHandler @ 0023edf4 */\n  FUN_00072b90(piVar6,param_2,pcVar7,0);\n  piVar6[6] = 0;\n  piVar6[7] = (int)(piVar6 + 9);\n                    /* try { // try from 0023edaa to 0023edae has its CatchHandler @ 0023edef */\n  FUN_00072b90(piVar6 + 7,"","",0);\n  *(undefined1 *)(piVar6 + 0xd) = 0;\n  piVar6[0x12] = 0;\n  *(undefined1 *)(piVar6 + 0xe) = uVar1;\n  *param_1 = piVar6;\n  *(undefined1 *)((int)piVar6 + 0x39) = uVar2;\n  piVar6[0xf] = iVar5;\n  *(undefined1 *)(piVar6 + 0x10) = uVar3;\n  piVar6[0x11] = iVar4;\n  return;\n}\n\n" comment (function_definition "void FUN_0023ec30(undefined4 *param_1,char *param_2)\n\n{\n  undefined1 uVar1;\n  undefined1 uVar2;\n  undefined1 uVar3;\n  int iVar4;\n  int iVar5;\n  int *piVar6;\n  char *pcVar7;\n  size_t sVar8;\n  \n  param_1[2] = 0;\n  param_1[1] = param_1 + 3;\n  param_1[7] = param_1 + 9;\n  param_1[0x1a] = param_1 + 0x18;\n  param_1[0x1b] = param_1 + 0x18;\n  param_1[0x1e] = param_1 + 0x1d;\n  param_1[0x1d] = param_1 + 0x1d;\n  *(undefined1 *)(param_1 + 3) = 0;\n  param_1[8] = 0;\n  *(undefined1 *)(param_1 + 9) = 0;\n  param_1[0xd] = 0xffffffff;\n  *(undefined1 *)(param_1 + 0xe) = 0;\n  param_1[0xf] = 0;\n  param_1[0x10] = 0;\n  param_1[0x11] = 0;\n  *(undefined1 *)(param_1 + 0x12) = 0;\n  param_1[0x13] = 0;\n  param_1[0x14] = 0;\n  param_1[0x15] = 0;\n  param_1[0x16] = 0;\n  param_1[0x18] = 0;\n  param_1[0x19] = 0;\n  param_1[0x1c] = 0;\n  param_1[0x1f] = 0;\n  param_1[0x20] = 0;\n  *(undefined1 *)(param_1 + 0x21) = 1;\n  *(undefined1 *)(param_1 + 0x23) = 0;\n  uVar1 = DAT_005eba75;\n  param_1[0x22] = 0;\n  param_1[0x24] = 0;\n  uVar2 = DAT_005ebcc9;\n                    /* try { // try from 0023ed26 to 0023ed4f has its CatchHandler @ 0023ede8 */\n  iVar5 = FUN_002b5cb0(&DAT_005eb780);\n  iVar4 = DAT_005f1194;\n  uVar3 = DAT_005f01ad;\n  piVar6 = (int *)FUN_003ac4d0(0x4c);\n  *piVar6 = (int)(piVar6 + 2);\n  pcVar7 = (char *)0xffffffff;\n  if (param_2 != (char *)0x0) {\n    sVar8 = strlen(param_2);\n    pcVar7 = param_2 + sVar8;\n  }\n                    /* try { // try from 0023ed84 to 0023ed88 has its CatchHandler @ 0023edf4 */\n  FUN_00072b90(piVar6,param_2,pcVar7,0);\n  piVar6[6] = 0;\n  piVar6[7] = (int)(piVar6 + 9);\n                    /* try { // try from 0023edaa to 0023edae has its CatchHandler @ 0023edef */\n  FUN_00072b90(piVar6 + 7,"","",0);\n  *(undefined1 *)(piVar6 + 0xd) = 0;\n  piVar6[0x12] = 0;\n  *(undefined1 *)(piVar6 + 0xe) = uVar1;\n  *param_1 = piVar6;\n  *(undefined1 *)((int)piVar6 + 0x39) = uVar2;\n  piVar6[0xf] = iVar5;\n  *(undefined1 *)(piVar6 + 0x10) = uVar3;\n  piVar6[0x11] = iVar4;\n  return;\n}" primitive_type (function_declarator "FUN_0023ec30(undefined4 *param_1,char *param_2)" identifier (parameter_list "(undefined4 *param_1,char *param_2)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  undefined1 uVar1;\n  undefined1 uVar2;\n  undefined1 uVar3;\n  int iVar4;\n  int iVar5;\n  int *piVar6;\n  char *pcVar7;\n  size_t sVar8;\n  \n  param_1[2] = 0;\n  param_1[1] = param_1 + 3;\n  param_1[7] = param_1 + 9;\n  param_1[0x1a] = param_1 + 0x18;\n  param_1[0x1b] = param_1 + 0x18;\n  param_1[0x1e] = param_1 + 0x1d;\n  param_1[0x1d] = param_1 + 0x1d;\n  *(undefined1 *)(param_1 + 3) = 0;\n  param_1[8] = 0;\n  *(undefined1 *)(param_1 + 9) = 0;\n  param_1[0xd] = 0xffffffff;\n  *(undefined1 *)(param_1 + 0xe) = 0;\n  param_1[0xf] = 0;\n  param_1[0x10] = 0;\n  param_1[0x11] = 0;\n  *(undefined1 *)(param_1 + 0x12) = 0;\n  param_1[0x13] = 0;\n  param_1[0x14] = 0;\n  param_1[0x15] = 0;\n  param_1[0x16] = 0;\n  param_1[0x18] = 0;\n  param_1[0x19] = 0;\n  param_1[0x1c] = 0;\n  param_1[0x1f] = 0;\n  param_1[0x20] = 0;\n  *(undefined1 *)(param_1 + 0x21) = 1;\n  *(undefined1 *)(param_1 + 0x23) = 0;\n  uVar1 = DAT_005eba75;\n  param_1[0x22] = 0;\n  param_1[0x24] = 0;\n  uVar2 = DAT_005ebcc9;\n                    /* try { // try from 0023ed26 to 0023ed4f has its CatchHandler @ 0023ede8 */\n  iVar5 = FUN_002b5cb0(&DAT_005eb780);\n  iVar4 = DAT_005f1194;\n  uVar3 = DAT_005f01ad;\n  piVar6 = (int *)FUN_003ac4d0(0x4c);\n  *piVar6 = (int)(piVar6 + 2);\n  pcVar7 = (char *)0xffffffff;\n  if (param_2 != (char *)0x0) {\n    sVar8 = strlen(param_2);\n    pcVar7 = param_2 + sVar8;\n  }\n                    /* try { // try from 0023ed84 to 0023ed88 has its CatchHandler @ 0023edf4 */\n  FUN_00072b90(piVar6,param_2,pcVar7,0);\n  piVar6[6] = 0;\n  piVar6[7] = (int)(piVar6 + 9);\n                    /* try { // try from 0023edaa to 0023edae has its CatchHandler @ 0023edef */\n  FUN_00072b90(piVar6 + 7,"","",0);\n  *(undefined1 *)(piVar6 + 0xd) = 0;\n  piVar6[0x12] = 0;\n  *(undefined1 *)(piVar6 + 0xe) = uVar1;\n  *param_1 = piVar6;\n  *(undefined1 *)((int)piVar6 + 0x39) = uVar2;\n  piVar6[0xf] = iVar5;\n  *(undefined1 *)(piVar6 + 0x10) = uVar3;\n  piVar6[0x11] = iVar4;\n  return;\n}" { (declaration "undefined1 uVar1;" type_identifier identifier ;) (declaration "undefined1 uVar2;" type_identifier identifier ;) (declaration "undefined1 uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "size_t sVar8;" primitive_type identifier ;) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (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 "param_1[7] = param_1 + 9;" (assignment_expression "param_1[7] = param_1 + 9" (subscript_expression "param_1[7]" identifier [ number_literal ]) = (binary_expression "param_1 + 9" identifier + number_literal)) ;) (expression_statement "param_1[0x1a] = param_1 + 0x18;" (assignment_expression "param_1[0x1a] = param_1 + 0x18" (subscript_expression "param_1[0x1a]" identifier [ number_literal ]) = (binary_expression "param_1 + 0x18" identifier + number_literal)) ;) (expression_statement "param_1[0x1b] = param_1 + 0x18;" (assignment_expression "param_1[0x1b] = param_1 + 0x18" (subscript_expression "param_1[0x1b]" identifier [ number_literal ]) = (binary_expression "param_1 + 0x18" identifier + number_literal)) ;) (expression_statement "param_1[0x1e] = param_1 + 0x1d;" (assignment_expression "param_1[0x1e] = param_1 + 0x1d" (subscript_expression "param_1[0x1e]" identifier [ number_literal ]) = (binary_expression "param_1 + 0x1d" identifier + number_literal)) ;) (expression_statement "param_1[0x1d] = param_1 + 0x1d;" (assignment_expression "param_1[0x1d] = param_1 + 0x1d" (subscript_expression "param_1[0x1d]" identifier [ number_literal ]) = (binary_expression "param_1 + 0x1d" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)(param_1 + 3) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 3) = 0" (pointer_expression "*(undefined1 *)(param_1 + 3)" * (cast_expression "(undefined1 *)(param_1 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 3)" ( (binary_expression "param_1 + 3" 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 "*(undefined1 *)(param_1 + 9) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 9) = 0" (pointer_expression "*(undefined1 *)(param_1 + 9)" * (cast_expression "(undefined1 *)(param_1 + 9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 9)" ( (binary_expression "param_1 + 9" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_1[0xd] = 0xffffffff;" (assignment_expression "param_1[0xd] = 0xffffffff" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 0xe) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xe) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xe)" * (cast_expression "(undefined1 *)(param_1 + 0xe)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe)" ( (binary_expression "param_1 + 0xe" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_1[0xf] = 0;" (assignment_expression "param_1[0xf] = 0" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x10] = 0;" (assignment_expression "param_1[0x10] = 0" (subscript_expression "param_1[0x10]" 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 "*(undefined1 *)(param_1 + 0x12) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0x12) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0x12)" * (cast_expression "(undefined1 *)(param_1 + 0x12)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x12)" ( (binary_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[0x15] = 0;" (assignment_expression "param_1[0x15] = 0" (subscript_expression "param_1[0x15]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x16] = 0;" (assignment_expression "param_1[0x16] = 0" (subscript_expression "param_1[0x16]" 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 "param_1[0x19] = 0;" (assignment_expression "param_1[0x19] = 0" (subscript_expression "param_1[0x19]" 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[0x1f] = 0;" (assignment_expression "param_1[0x1f] = 0" (subscript_expression "param_1[0x1f]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x20] = 0;" (assignment_expression "param_1[0x20] = 0" (subscript_expression "param_1[0x20]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 0x21) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0x21) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0x21)" * (cast_expression "(undefined1 *)(param_1 + 0x21)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x21)" ( (binary_expression "param_1 + 0x21" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 0x23) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0x23) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0x23)" * (cast_expression "(undefined1 *)(param_1 + 0x23)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x23)" ( (binary_expression "param_1 + 0x23" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar1 = DAT_005eba75;" (assignment_expression "uVar1 = DAT_005eba75" identifier = identifier) ;) (expression_statement "param_1[0x22] = 0;" (assignment_expression "param_1[0x22] = 0" (subscript_expression "param_1[0x22]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x24] = 0;" (assignment_expression "param_1[0x24] = 0" (subscript_expression "param_1[0x24]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar2 = DAT_005ebcc9;" (assignment_expression "uVar2 = DAT_005ebcc9" identifier = identifier) ;) comment (expression_statement "iVar5 = FUN_002b5cb0(&DAT_005eb780);" (assignment_expression "iVar5 = FUN_002b5cb0(&DAT_005eb780)" identifier = (call_expression "FUN_002b5cb0(&DAT_005eb780)" identifier (argument_list "(&DAT_005eb780)" ( (pointer_expression "&DAT_005eb780" & identifier) )))) ;) (expression_statement "iVar4 = DAT_005f1194;" (assignment_expression "iVar4 = DAT_005f1194" identifier = identifier) ;) (expression_statement "uVar3 = DAT_005f01ad;" (assignment_expression "uVar3 = DAT_005f01ad" identifier = identifier) ;) (expression_statement "piVar6 = (int *)FUN_003ac4d0(0x4c);" (assignment_expression "piVar6 = (int *)FUN_003ac4d0(0x4c)" identifier = (cast_expression "(int *)FUN_003ac4d0(0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_003ac4d0(0x4c)" identifier (argument_list "(0x4c)" ( number_literal ))))) ;) (expression_statement "*piVar6 = (int)(piVar6 + 2);" (assignment_expression "*piVar6 = (int)(piVar6 + 2)" (pointer_expression "*piVar6" * identifier) = (cast_expression "(int)(piVar6 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar6 + 2)" ( (binary_expression "piVar6 + 2" identifier + number_literal) )))) ;) (expression_statement "pcVar7 = (char *)0xffffffff;" (assignment_expression "pcVar7 = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (param_2 != (char *)0x0) {\n    sVar8 = strlen(param_2);\n    pcVar7 = param_2 + sVar8;\n  }" if (parenthesized_expression "(param_2 != (char *)0x0)" ( (binary_expression "param_2 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sVar8 = strlen(param_2);\n    pcVar7 = param_2 + sVar8;\n  }" { (expression_statement "sVar8 = strlen(param_2);" (assignment_expression "sVar8 = strlen(param_2)" identifier = (call_expression "strlen(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "pcVar7 = param_2 + sVar8;" (assignment_expression "pcVar7 = param_2 + sVar8" identifier = (binary_expression "param_2 + sVar8" identifier + identifier)) ;) })) comment (expression_statement "FUN_00072b90(piVar6,param_2,pcVar7,0);" (call_expression "FUN_00072b90(piVar6,param_2,pcVar7,0)" identifier (argument_list "(piVar6,param_2,pcVar7,0)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "piVar6[6] = 0;" (assignment_expression "piVar6[6] = 0" (subscript_expression "piVar6[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[7] = (int)(piVar6 + 9);" (assignment_expression "piVar6[7] = (int)(piVar6 + 9)" (subscript_expression "piVar6[7]" identifier [ number_literal ]) = (cast_expression "(int)(piVar6 + 9)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar6 + 9)" ( (binary_expression "piVar6 + 9" identifier + number_literal) )))) ;) comment (expression_statement "FUN_00072b90(piVar6 + 7,"","",0);" (call_expression "FUN_00072b90(piVar6 + 7,"","",0)" identifier (argument_list "(piVar6 + 7,"","",0)" ( (binary_expression "piVar6 + 7" identifier + number_literal) , (string_literal """" " ") , (string_literal """" " ") , number_literal ))) ;) (expression_statement "*(undefined1 *)(piVar6 + 0xd) = 0;" (assignment_expression "*(undefined1 *)(piVar6 + 0xd) = 0" (pointer_expression "*(undefined1 *)(piVar6 + 0xd)" * (cast_expression "(undefined1 *)(piVar6 + 0xd)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar6 + 0xd)" ( (binary_expression "piVar6 + 0xd" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar6[0x12] = 0;" (assignment_expression "piVar6[0x12] = 0" (subscript_expression "piVar6[0x12]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(piVar6 + 0xe) = uVar1;" (assignment_expression "*(undefined1 *)(piVar6 + 0xe) = uVar1" (pointer_expression "*(undefined1 *)(piVar6 + 0xe)" * (cast_expression "(undefined1 *)(piVar6 + 0xe)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar6 + 0xe)" ( (binary_expression "piVar6 + 0xe" identifier + number_literal) )))) = identifier) ;) (expression_statement "*param_1 = piVar6;" (assignment_expression "*param_1 = piVar6" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "*(undefined1 *)((int)piVar6 + 0x39) = uVar2;" (assignment_expression "*(undefined1 *)((int)piVar6 + 0x39) = uVar2" (pointer_expression "*(undefined1 *)((int)piVar6 + 0x39)" * (cast_expression "(undefined1 *)((int)piVar6 + 0x39)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar6 + 0x39)" ( (binary_expression "(int)piVar6 + 0x39" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "piVar6[0xf] = iVar5;" (assignment_expression "piVar6[0xf] = iVar5" (subscript_expression "piVar6[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(piVar6 + 0x10) = uVar3;" (assignment_expression "*(undefined1 *)(piVar6 + 0x10) = uVar3" (pointer_expression "*(undefined1 *)(piVar6 + 0x10)" * (cast_expression "(undefined1 *)(piVar6 + 0x10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar6 + 0x10)" ( (binary_expression "piVar6 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar6[0x11] = iVar4;" (assignment_expression "piVar6[0x11] = iVar4" (subscript_expression "piVar6[0x11]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.cx replaced with injection: get_pc_thunk_cx */\n/* WARNING: Type propagation algorithm not settling */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original prototype: void Input_file(Input_file * this, char * name) */\n\nvoid __thiscall gold::Input_file::Input_file(Input_file *this,char *name)\n\n{\n  _Rb_tree_header *p_Var1;\n  Saved_views *pSVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  Incremental_disposition IVar6;\n  Object_format OVar7;\n  Input_file_argument *pIVar8;\n  char *pcVar9;\n  size_t sVar10;\n  \n  (this->found_name_)._M_string_length = 0;\n  (this->found_name_)._M_dataplus._M_p = (pointer)&(this->found_name_).field_2;\n  (this->file_).name_._M_dataplus._M_p = (pointer)&(this->file_).name_.field_2;\n  p_Var1 = &(this->file_).views_._M_t._M_impl.super__Rb_tree_header;\n  (this->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_left = &p_Var1->_M_header;\n  (this->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_right = &p_Var1->_M_header;\n  pSVar2 = &(this->file_).saved_views_;\n  (this->file_).saved_views_.\n  super__List_base<gold::File_read::View*,_std::allocator<gold::File_read::View*>_>._M_impl._M_node.\n  super__List_node_base._M_prev = (_List_node_base *)pSVar2;\n  (this->file_).saved_views_.\n  super__List_base<gold::File_read::View*,_std::allocator<gold::File_read::View*>_>._M_impl._M_node.\n  super__List_node_base._M_next = (_List_node_base *)pSVar2;\n  (this->found_name_).field_2._M_local_buf[0] = '\0';\n  (this->file_).name_._M_string_length = 0;\n  (this->file_).name_.field_2._M_local_buf[0] = '\0';\n  (this->file_).descriptor_ = -1;\n  (this->file_).is_descriptor_opened_ = false;\n  (this->file_).object_count_ = 0;\n  *(undefined4 *)&(this->file_).size_ = 0;\n  *(undefined4 *)((int)&(this->file_).size_ + 4) = 0;\n  (this->file_).token_.is_blocker_ = false;\n  (this->file_).token_.blockers_ = 0;\n  (this->file_).token_.writer_ = (Task *)0x0;\n  (this->file_).token_.waiting_.head_ = (Task *)0x0;\n  (this->file_).token_.waiting_.tail_ = (Task *)0x0;\n  (this->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_color = _S_red;\n  (this->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_parent = (_Base_ptr)0x0;\n  (this->file_).views_._M_t._M_impl.super__Rb_tree_header._M_node_count = 0;\n  (this->file_).saved_views_.\n  super__List_base<gold::File_read::View*,_std::allocator<gold::File_read::View*>_>._M_impl._M_node.\n  _M_size = 0;\n  (this->file_).mapped_bytes_ = 0;\n  (this->file_).released_ = true;\n  this->is_in_sysroot_ = false;\n  bVar3 = Position_dependent_options::default_options_.as_needed_.value;\n  (this->file_).whole_file_view_ = (View *)0x0;\n  this->format_ = FORMAT_NONE;\n  bVar4 = Position_dependent_options::default_options_.Bdynamic_.value;\n                    /* try { // try from 0023ed26 to 0023ed4f has its CatchHandler @ 0023ede8 */\n  OVar7 = General_options::format_enum(&Position_dependent_options::default_options_);\n  IVar6 = Position_dependent_options::default_options_.incremental_disposition_;\n  bVar5 = Position_dependent_options::default_options_.whole_archive_.value;\n  pIVar8 = (Input_file_argument *)operator_new(0x4c);\n  (pIVar8->name_)._M_dataplus._M_p = (pointer)&(pIVar8->name_).field_2;\n  pcVar9 = (char *)0xffffffff;\n  if (name != (char *)0x0) {\n    sVar10 = strlen(name);\n    pcVar9 = name + sVar10;\n  }\n                    /* try { // try from 0023ed84 to 0023ed88 has its CatchHandler @ 0023edf4 */\n  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>\n            ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)pIVar8,name,pcVar9\n             ,0);\n  pIVar8->type_ = INPUT_FILE_TYPE_FILE;\n  (pIVar8->extra_search_path_)._M_dataplus._M_p = (pointer)&(pIVar8->extra_search_path_).field_2;\n                    /* try { // try from 0023edaa to 0023edae has its CatchHandler @ 0023edef */\n  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>(&pIVar8->extra_search_path_,"","",0);\n  pIVar8->just_symbols_ = false;\n  pIVar8->arg_serial_ = 0;\n  (pIVar8->options_).as_needed_ = bVar3;\n  this->input_argument_ = pIVar8;\n  (pIVar8->options_).Bdynamic_ = bVar4;\n  (pIVar8->options_).format_enum_ = OVar7;\n  (pIVar8->options_).whole_archive_ = bVar5;\n  (pIVar8->options_).incremental_disposition_ = IVar6;\n  return;\n}\n\n" comment comment comment comment (function_definition "void __thiscall gold::Input_file::Input_file(Input_file *this,char *name)\n\n{\n  _Rb_tree_header *p_Var1;\n  Saved_views *pSVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  Incremental_disposition IVar6;\n  Object_format OVar7;\n  Input_file_argument *pIVar8;\n  char *pcVar9;\n  size_t sVar10;\n  \n  (this->found_name_)._M_string_length = 0;\n  (this->found_name_)._M_dataplus._M_p = (pointer)&(this->found_name_).field_2;\n  (this->file_).name_._M_dataplus._M_p = (pointer)&(this->file_).name_.field_2;\n  p_Var1 = &(this->file_).views_._M_t._M_impl.super__Rb_tree_header;\n  (this->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_left = &p_Var1->_M_header;\n  (this->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_right = &p_Var1->_M_header;\n  pSVar2 = &(this->file_).saved_views_;\n  (this->file_).saved_views_.\n  super__List_base<gold::File_read::View*,_std::allocator<gold::File_read::View*>_>._M_impl._M_node.\n  super__List_node_base._M_prev = (_List_node_base *)pSVar2;\n  (this->file_).saved_views_.\n  super__List_base<gold::File_read::View*,_std::allocator<gold::File_read::View*>_>._M_impl._M_node.\n  super__List_node_base._M_next = (_List_node_base *)pSVar2;\n  (this->found_name_).field_2._M_local_buf[0] = '\0';\n  (this->file_).name_._M_string_length = 0;\n  (this->file_).name_.field_2._M_local_buf[0] = '\0';\n  (this->file_).descriptor_ = -1;\n  (this->file_).is_descriptor_opened_ = false;\n  (this->file_).object_count_ = 0;\n  *(undefined4 *)&(this->file_).size_ = 0;\n  *(undefined4 *)((int)&(this->file_).size_ + 4) = 0;\n  (this->file_).token_.is_blocker_ = false;\n  (this->file_).token_.blockers_ = 0;\n  (this->file_).token_.writer_ = (Task *)0x0;\n  (this->file_).token_.waiting_.head_ = (Task *)0x0;\n  (this->file_).token_.waiting_.tail_ = (Task *)0x0;\n  (this->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_color = _S_red;\n  (this->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_parent = (_Base_ptr)0x0;\n  (this->file_).views_._M_t._M_impl.super__Rb_tree_header._M_node_count = 0;\n  (this->file_).saved_views_.\n  super__List_base<gold::File_read::View*,_std::allocator<gold::File_read::View*>_>._M_impl._M_node.\n  _M_size = 0;\n  (this->file_).mapped_bytes_ = 0;\n  (this->file_).released_ = true;\n  this->is_in_sysroot_ = false;\n  bVar3 = Position_dependent_options::default_options_.as_needed_.value;\n  (this->file_).whole_file_view_ = (View *)0x0;\n  this->format_ = FORMAT_NONE;\n  bVar4 = Position_dependent_options::default_options_.Bdynamic_.value;\n                    /* try { // try from 0023ed26 to 0023ed4f has its CatchHandler @ 0023ede8 */\n  OVar7 = General_options::format_enum(&Position_dependent_options::default_options_);\n  IVar6 = Position_dependent_options::default_options_.incremental_disposition_;\n  bVar5 = Position_dependent_options::default_options_.whole_archive_.value;\n  pIVar8 = (Input_file_argument *)operator_new(0x4c);\n  (pIVar8->name_)._M_dataplus._M_p = (pointer)&(pIVar8->name_).field_2;\n  pcVar9 = (char *)0xffffffff;\n  if (name != (char *)0x0) {\n    sVar10 = strlen(name);\n    pcVar9 = name + sVar10;\n  }\n                    /* try { // try from 0023ed84 to 0023ed88 has its CatchHandler @ 0023edf4 */\n  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>\n            ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)pIVar8,name,pcVar9\n             ,0);\n  pIVar8->type_ = INPUT_FILE_TYPE_FILE;\n  (pIVar8->extra_search_path_)._M_dataplus._M_p = (pointer)&(pIVar8->extra_search_path_).field_2;\n                    /* try { // try from 0023edaa to 0023edae has its CatchHandler @ 0023edef */\n  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>(&pIVar8->extra_search_path_,"","",0);\n  pIVar8->just_symbols_ = false;\n  pIVar8->arg_serial_ = 0;\n  (pIVar8->options_).as_needed_ = bVar3;\n  this->input_argument_ = pIVar8;\n  (pIVar8->options_).Bdynamic_ = bVar4;\n  (pIVar8->options_).format_enum_ = OVar7;\n  (pIVar8->options_).whole_archive_ = bVar5;\n  (pIVar8->options_).incremental_disposition_ = IVar6;\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Input_file::" identifier : : identifier : :) (function_declarator "Input_file(Input_file *this,char *name)" identifier (parameter_list "(Input_file *this,char *name)" ( (parameter_declaration "Input_file *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "char *name" primitive_type (pointer_declarator "*name" * identifier)) ))) (compound_statement "{\n  _Rb_tree_header *p_Var1;\n  Saved_views *pSVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  Incremental_disposition IVar6;\n  Object_format OVar7;\n  Input_file_argument *pIVar8;\n  char *pcVar9;\n  size_t sVar10;\n  \n  (this->found_name_)._M_string_length = 0;\n  (this->found_name_)._M_dataplus._M_p = (pointer)&(this->found_name_).field_2;\n  (this->file_).name_._M_dataplus._M_p = (pointer)&(this->file_).name_.field_2;\n  p_Var1 = &(this->file_).views_._M_t._M_impl.super__Rb_tree_header;\n  (this->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_left = &p_Var1->_M_header;\n  (this->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_right = &p_Var1->_M_header;\n  pSVar2 = &(this->file_).saved_views_;\n  (this->file_).saved_views_.\n  super__List_base<gold::File_read::View*,_std::allocator<gold::File_read::View*>_>._M_impl._M_node.\n  super__List_node_base._M_prev = (_List_node_base *)pSVar2;\n  (this->file_).saved_views_.\n  super__List_base<gold::File_read::View*,_std::allocator<gold::File_read::View*>_>._M_impl._M_node.\n  super__List_node_base._M_next = (_List_node_base *)pSVar2;\n  (this->found_name_).field_2._M_local_buf[0] = '\0';\n  (this->file_).name_._M_string_length = 0;\n  (this->file_).name_.field_2._M_local_buf[0] = '\0';\n  (this->file_).descriptor_ = -1;\n  (this->file_).is_descriptor_opened_ = false;\n  (this->file_).object_count_ = 0;\n  *(undefined4 *)&(this->file_).size_ = 0;\n  *(undefined4 *)((int)&(this->file_).size_ + 4) = 0;\n  (this->file_).token_.is_blocker_ = false;\n  (this->file_).token_.blockers_ = 0;\n  (this->file_).token_.writer_ = (Task *)0x0;\n  (this->file_).token_.waiting_.head_ = (Task *)0x0;\n  (this->file_).token_.waiting_.tail_ = (Task *)0x0;\n  (this->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_color = _S_red;\n  (this->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_parent = (_Base_ptr)0x0;\n  (this->file_).views_._M_t._M_impl.super__Rb_tree_header._M_node_count = 0;\n  (this->file_).saved_views_.\n  super__List_base<gold::File_read::View*,_std::allocator<gold::File_read::View*>_>._M_impl._M_node.\n  _M_size = 0;\n  (this->file_).mapped_bytes_ = 0;\n  (this->file_).released_ = true;\n  this->is_in_sysroot_ = false;\n  bVar3 = Position_dependent_options::default_options_.as_needed_.value;\n  (this->file_).whole_file_view_ = (View *)0x0;\n  this->format_ = FORMAT_NONE;\n  bVar4 = Position_dependent_options::default_options_.Bdynamic_.value;\n                    /* try { // try from 0023ed26 to 0023ed4f has its CatchHandler @ 0023ede8 */\n  OVar7 = General_options::format_enum(&Position_dependent_options::default_options_);\n  IVar6 = Position_dependent_options::default_options_.incremental_disposition_;\n  bVar5 = Position_dependent_options::default_options_.whole_archive_.value;\n  pIVar8 = (Input_file_argument *)operator_new(0x4c);\n  (pIVar8->name_)._M_dataplus._M_p = (pointer)&(pIVar8->name_).field_2;\n  pcVar9 = (char *)0xffffffff;\n  if (name != (char *)0x0) {\n    sVar10 = strlen(name);\n    pcVar9 = name + sVar10;\n  }\n                    /* try { // try from 0023ed84 to 0023ed88 has its CatchHandler @ 0023edf4 */\n  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>\n            ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)pIVar8,name,pcVar9\n             ,0);\n  pIVar8->type_ = INPUT_FILE_TYPE_FILE;\n  (pIVar8->extra_search_path_)._M_dataplus._M_p = (pointer)&(pIVar8->extra_search_path_).field_2;\n                    /* try { // try from 0023edaa to 0023edae has its CatchHandler @ 0023edef */\n  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>(&pIVar8->extra_search_path_,"","",0);\n  pIVar8->just_symbols_ = false;\n  pIVar8->arg_serial_ = 0;\n  (pIVar8->options_).as_needed_ = bVar3;\n  this->input_argument_ = pIVar8;\n  (pIVar8->options_).Bdynamic_ = bVar4;\n  (pIVar8->options_).format_enum_ = OVar7;\n  (pIVar8->options_).whole_archive_ = bVar5;\n  (pIVar8->options_).incremental_disposition_ = IVar6;\n  return;\n}" { (declaration "_Rb_tree_header *p_Var1;" type_identifier (pointer_declarator "*p_Var1" * identifier) ;) (declaration "Saved_views *pSVar2;" type_identifier (pointer_declarator "*pSVar2" * identifier) ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "Incremental_disposition IVar6;" type_identifier identifier ;) (declaration "Object_format OVar7;" type_identifier identifier ;) (declaration "Input_file_argument *pIVar8;" type_identifier (pointer_declarator "*pIVar8" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "size_t sVar10;" primitive_type identifier ;) (expression_statement "(this->found_name_)._M_string_length = 0;" (assignment_expression "(this->found_name_)._M_string_length = 0" (field_expression "(this->found_name_)._M_string_length" (parenthesized_expression "(this->found_name_)" ( (field_expression "this->found_name_" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(this->found_name_)._M_dataplus._M_p = (pointer)&(this->found_name_).field_2;" (assignment_expression "(this->found_name_)._M_dataplus._M_p = (pointer)&(this->found_name_).field_2" (field_expression "(this->found_name_)._M_dataplus._M_p" (field_expression "(this->found_name_)._M_dataplus" (parenthesized_expression "(this->found_name_)" ( (field_expression "this->found_name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (binary_expression "(pointer)&(this->found_name_).field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "(this->found_name_).field_2" (parenthesized_expression "(this->found_name_)" ( (field_expression "this->found_name_" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "(this->file_).name_._M_dataplus._M_p = (pointer)&(this->file_).name_.field_2;" (assignment_expression "(this->file_).name_._M_dataplus._M_p = (pointer)&(this->file_).name_.field_2" (field_expression "(this->file_).name_._M_dataplus._M_p" (field_expression "(this->file_).name_._M_dataplus" (field_expression "(this->file_).name_" (parenthesized_expression "(this->file_)" ( (field_expression "this->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (binary_expression "(pointer)&(this->file_).name_.field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "(this->file_).name_.field_2" (field_expression "(this->file_).name_" (parenthesized_expression "(this->file_)" ( (field_expression "this->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (expression_statement "p_Var1 = &(this->file_).views_._M_t._M_impl.super__Rb_tree_header;" (assignment_expression "p_Var1 = &(this->file_).views_._M_t._M_impl.super__Rb_tree_header" identifier = (pointer_expression "&(this->file_).views_._M_t._M_impl.super__Rb_tree_header" & (field_expression "(this->file_).views_._M_t._M_impl.super__Rb_tree_header" (field_expression "(this->file_).views_._M_t._M_impl" (field_expression "(this->file_).views_._M_t" (field_expression "(this->file_).views_" (parenthesized_expression "(this->file_)" ( (field_expression "this->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier))) ;) (expression_statement "(this->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_left = &p_Var1->_M_header;" (assignment_expression "(this->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_left = &p_Var1->_M_header" (field_expression "(this->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_left" (field_expression "(this->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header" (field_expression "(this->file_).views_._M_t._M_impl.super__Rb_tree_header" (field_expression "(this->file_).views_._M_t._M_impl" (field_expression "(this->file_).views_._M_t" (field_expression "(this->file_).views_" (parenthesized_expression "(this->file_)" ( (field_expression "this->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (pointer_expression "&p_Var1->_M_header" & (field_expression "p_Var1->_M_header" identifier -> field_identifier))) ;) (expression_statement "(this->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_right = &p_Var1->_M_header;" (assignment_expression "(this->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_right = &p_Var1->_M_header" (field_expression "(this->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_right" (field_expression "(this->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header" (field_expression "(this->file_).views_._M_t._M_impl.super__Rb_tree_header" (field_expression "(this->file_).views_._M_t._M_impl" (field_expression "(this->file_).views_._M_t" (field_expression "(this->file_).views_" (parenthesized_expression "(this->file_)" ( (field_expression "this->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (pointer_expression "&p_Var1->_M_header" & (field_expression "p_Var1->_M_header" identifier -> field_identifier))) ;) (expression_statement "pSVar2 = &(this->file_).saved_views_;" (assignment_expression "pSVar2 = &(this->file_).saved_views_" identifier = (pointer_expression "&(this->file_).saved_views_" & (field_expression "(this->file_).saved_views_" (parenthesized_expression "(this->file_)" ( (field_expression "this->file_" identifier -> field_identifier) )) . field_identifier))) ;) (ERROR "(this->file_).saved_views_.\n  super__List_base<gold::File_read::View*,_std::allocator<gold::" (binary_expression "(this->file_).saved_views_.\n  super__List_base<gold" (field_expression "(this->file_).saved_views_.\n  super__List_base" (field_expression "(this->file_).saved_views_" (parenthesized_expression "(this->file_)" ( (field_expression "this->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) < identifier) : : (comma_expression "File_read::View*,_std" identifier (ERROR "::View*" : : identifier *) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "File_read::View*>_>._M_impl._M_node.\n  super__List_node_base._M_prev = (_List_node_base *)pSVar2;" (assignment_expression "File_read::View*>_>._M_impl._M_node.\n  super__List_node_base._M_prev = (_List_node_base *)pSVar2" (field_expression "File_read::View*>_>._M_impl._M_node.\n  super__List_node_base._M_prev" (field_expression "File_read::View*>_>._M_impl._M_node.\n  super__List_node_base" (field_expression "File_read::View*>_>._M_impl._M_node" (field_expression "File_read::View*>_>._M_impl" (binary_expression "File_read::View*>_" identifier (ERROR "::View*" : : identifier *) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(_List_node_base *)pSVar2" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (ERROR "(this->file_).saved_views_.\n  super__List_base<gold::File_read::View*,_std::allocator<gold::" (binary_expression "(this->file_).saved_views_.\n  super__List_base<gold" (field_expression "(this->file_).saved_views_.\n  super__List_base" (field_expression "(this->file_).saved_views_" (parenthesized_expression "(this->file_)" ( (field_expression "this->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) < identifier) : : (comma_expression "File_read::View*,_std" identifier (ERROR "::View*" : : identifier *) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "File_read::View*>_>._M_impl._M_node.\n  super__List_node_base._M_next = (_List_node_base *)pSVar2;" (assignment_expression "File_read::View*>_>._M_impl._M_node.\n  super__List_node_base._M_next = (_List_node_base *)pSVar2" (field_expression "File_read::View*>_>._M_impl._M_node.\n  super__List_node_base._M_next" (field_expression "File_read::View*>_>._M_impl._M_node.\n  super__List_node_base" (field_expression "File_read::View*>_>._M_impl._M_node" (field_expression "File_read::View*>_>._M_impl" (binary_expression "File_read::View*>_" identifier (ERROR "::View*" : : identifier *) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(_List_node_base *)pSVar2" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "(this->found_name_).field_2._M_local_buf[0] = '\0';" (assignment_expression "(this->found_name_).field_2._M_local_buf[0] = '\0'" (subscript_expression "(this->found_name_).field_2._M_local_buf[0]" (field_expression "(this->found_name_).field_2._M_local_buf" (field_expression "(this->found_name_).field_2" (parenthesized_expression "(this->found_name_)" ( (field_expression "this->found_name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(this->file_).name_._M_string_length = 0;" (assignment_expression "(this->file_).name_._M_string_length = 0" (field_expression "(this->file_).name_._M_string_length" (field_expression "(this->file_).name_" (parenthesized_expression "(this->file_)" ( (field_expression "this->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(this->file_).name_.field_2._M_local_buf[0] = '\0';" (assignment_expression "(this->file_).name_.field_2._M_local_buf[0] = '\0'" (subscript_expression "(this->file_).name_.field_2._M_local_buf[0]" (field_expression "(this->file_).name_.field_2._M_local_buf" (field_expression "(this->file_).name_.field_2" (field_expression "(this->file_).name_" (parenthesized_expression "(this->file_)" ( (field_expression "this->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(this->file_).descriptor_ = -1;" (assignment_expression "(this->file_).descriptor_ = -1" (field_expression "(this->file_).descriptor_" (parenthesized_expression "(this->file_)" ( (field_expression "this->file_" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(this->file_).is_descriptor_opened_ = false;" (assignment_expression "(this->file_).is_descriptor_opened_ = false" (field_expression "(this->file_).is_descriptor_opened_" (parenthesized_expression "(this->file_)" ( (field_expression "this->file_" identifier -> field_identifier) )) . field_identifier) = false) ;) (expression_statement "(this->file_).object_count_ = 0;" (assignment_expression "(this->file_).object_count_ = 0" (field_expression "(this->file_).object_count_" (parenthesized_expression "(this->file_)" ( (field_expression "this->file_" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "*(undefined4 *)&(this->file_).size_ = 0;" (assignment_expression "*(undefined4 *)&(this->file_).size_ = 0" (pointer_expression "*(undefined4 *)&(this->file_).size_" * (cast_expression "(undefined4 *)&(this->file_).size_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this->file_).size_" & (field_expression "(this->file_).size_" (parenthesized_expression "(this->file_)" ( (field_expression "this->file_" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(this->file_).size_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(this->file_).size_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(this->file_).size_ + 4)" * (cast_expression "(undefined4 *)((int)&(this->file_).size_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(this->file_).size_ + 4)" ( (binary_expression "(int)&(this->file_).size_ + 4" (cast_expression "(int)&(this->file_).size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(this->file_).size_" & (field_expression "(this->file_).size_" (parenthesized_expression "(this->file_)" ( (field_expression "this->file_" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "(this->file_).token_.is_blocker_ = false;" (assignment_expression "(this->file_).token_.is_blocker_ = false" (field_expression "(this->file_).token_.is_blocker_" (field_expression "(this->file_).token_" (parenthesized_expression "(this->file_)" ( (field_expression "this->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = false) ;) (expression_statement "(this->file_).token_.blockers_ = 0;" (assignment_expression "(this->file_).token_.blockers_ = 0" (field_expression "(this->file_).token_.blockers_" (field_expression "(this->file_).token_" (parenthesized_expression "(this->file_)" ( (field_expression "this->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(this->file_).token_.writer_ = (Task *)0x0;" (assignment_expression "(this->file_).token_.writer_ = (Task *)0x0" (field_expression "(this->file_).token_.writer_" (field_expression "(this->file_).token_" (parenthesized_expression "(this->file_)" ( (field_expression "this->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(this->file_).token_.waiting_.head_ = (Task *)0x0;" (assignment_expression "(this->file_).token_.waiting_.head_ = (Task *)0x0" (field_expression "(this->file_).token_.waiting_.head_" (field_expression "(this->file_).token_.waiting_" (field_expression "(this->file_).token_" (parenthesized_expression "(this->file_)" ( (field_expression "this->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(this->file_).token_.waiting_.tail_ = (Task *)0x0;" (assignment_expression "(this->file_).token_.waiting_.tail_ = (Task *)0x0" (field_expression "(this->file_).token_.waiting_.tail_" (field_expression "(this->file_).token_.waiting_" (field_expression "(this->file_).token_" (parenthesized_expression "(this->file_)" ( (field_expression "this->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(this->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_color = _S_red;" (assignment_expression "(this->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_color = _S_red" (field_expression "(this->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_color" (field_expression "(this->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header" (field_expression "(this->file_).views_._M_t._M_impl.super__Rb_tree_header" (field_expression "(this->file_).views_._M_t._M_impl" (field_expression "(this->file_).views_._M_t" (field_expression "(this->file_).views_" (parenthesized_expression "(this->file_)" ( (field_expression "this->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(this->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_parent = (_Base_ptr)0x0;" (assignment_expression "(this->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_parent = (_Base_ptr)0x0" (field_expression "(this->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_parent" (field_expression "(this->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header" (field_expression "(this->file_).views_._M_t._M_impl.super__Rb_tree_header" (field_expression "(this->file_).views_._M_t._M_impl" (field_expression "(this->file_).views_._M_t" (field_expression "(this->file_).views_" (parenthesized_expression "(this->file_)" ( (field_expression "this->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) ;) (expression_statement "(this->file_).views_._M_t._M_impl.super__Rb_tree_header._M_node_count = 0;" (assignment_expression "(this->file_).views_._M_t._M_impl.super__Rb_tree_header._M_node_count = 0" (field_expression "(this->file_).views_._M_t._M_impl.super__Rb_tree_header._M_node_count" (field_expression "(this->file_).views_._M_t._M_impl.super__Rb_tree_header" (field_expression "(this->file_).views_._M_t._M_impl" (field_expression "(this->file_).views_._M_t" (field_expression "(this->file_).views_" (parenthesized_expression "(this->file_)" ( (field_expression "this->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (ERROR "(this->file_).saved_views_.\n  super__List_base<gold::File_read::View*,_std::allocator<gold::" (binary_expression "(this->file_).saved_views_.\n  super__List_base<gold" (field_expression "(this->file_).saved_views_.\n  super__List_base" (field_expression "(this->file_).saved_views_" (parenthesized_expression "(this->file_)" ( (field_expression "this->file_" identifier -> field_identifier) )) . field_identifier) . field_identifier) < identifier) : : (comma_expression "File_read::View*,_std" identifier (ERROR "::View*" : : identifier *) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "File_read::View*>_>._M_impl._M_node.\n  _M_size = 0;" (assignment_expression "File_read::View*>_>._M_impl._M_node.\n  _M_size = 0" (field_expression "File_read::View*>_>._M_impl._M_node.\n  _M_size" (field_expression "File_read::View*>_>._M_impl._M_node" (field_expression "File_read::View*>_>._M_impl" (binary_expression "File_read::View*>_" identifier (ERROR "::View*" : : identifier *) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(this->file_).mapped_bytes_ = 0;" (assignment_expression "(this->file_).mapped_bytes_ = 0" (field_expression "(this->file_).mapped_bytes_" (parenthesized_expression "(this->file_)" ( (field_expression "this->file_" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(this->file_).released_ = true;" (assignment_expression "(this->file_).released_ = true" (field_expression "(this->file_).released_" (parenthesized_expression "(this->file_)" ( (field_expression "this->file_" identifier -> field_identifier) )) . field_identifier) = true) ;) (expression_statement "this->is_in_sysroot_ = false;" (assignment_expression "this->is_in_sysroot_ = false" (field_expression "this->is_in_sysroot_" identifier -> field_identifier) = false) ;) (expression_statement "bVar3 = Position_dependent_options::default_options_.as_needed_.value;" (field_expression "bVar3 = Position_dependent_options::default_options_.as_needed_.value" (field_expression "bVar3 = Position_dependent_options::default_options_.as_needed_" (assignment_expression "bVar3 = Position_dependent_options" identifier = identifier) (ERROR "::default_options_" : : identifier) . field_identifier) . field_identifier) ;) (expression_statement "(this->file_).whole_file_view_ = (View *)0x0;" (assignment_expression "(this->file_).whole_file_view_ = (View *)0x0" (field_expression "(this->file_).whole_file_view_" (parenthesized_expression "(this->file_)" ( (field_expression "this->file_" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(View *)0x0" ( (type_descriptor "View *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "this->format_ = FORMAT_NONE;" (assignment_expression "this->format_ = FORMAT_NONE" (field_expression "this->format_" identifier -> field_identifier) = identifier) ;) (expression_statement "bVar4 = Position_dependent_options::default_options_.Bdynamic_.value;" (field_expression "bVar4 = Position_dependent_options::default_options_.Bdynamic_.value" (field_expression "bVar4 = Position_dependent_options::default_options_.Bdynamic_" (assignment_expression "bVar4 = Position_dependent_options" identifier = identifier) (ERROR "::default_options_" : : identifier) . field_identifier) . field_identifier) ;) comment (ERROR "OVar7 = General_options::" (assignment_expression "OVar7 = General_options" identifier = identifier) : :) (expression_statement "format_enum(&Position_dependent_options::default_options_);" (call_expression "format_enum(&Position_dependent_options::default_options_)" identifier (argument_list "(&Position_dependent_options::default_options_)" ( (pointer_expression "&Position_dependent_options" & identifier) (ERROR "::default_options_" : : identifier) ))) ;) (expression_statement "IVar6 = Position_dependent_options::default_options_.incremental_disposition_;" (field_expression "IVar6 = Position_dependent_options::default_options_.incremental_disposition_" (assignment_expression "IVar6 = Position_dependent_options" identifier = identifier) (ERROR "::default_options_" : : identifier) . field_identifier) ;) (expression_statement "bVar5 = Position_dependent_options::default_options_.whole_archive_.value;" (field_expression "bVar5 = Position_dependent_options::default_options_.whole_archive_.value" (field_expression "bVar5 = Position_dependent_options::default_options_.whole_archive_" (assignment_expression "bVar5 = Position_dependent_options" identifier = identifier) (ERROR "::default_options_" : : identifier) . field_identifier) . field_identifier) ;) (expression_statement "pIVar8 = (Input_file_argument *)operator_new(0x4c);" (assignment_expression "pIVar8 = (Input_file_argument *)operator_new(0x4c)" identifier = (cast_expression "(Input_file_argument *)operator_new(0x4c)" ( (type_descriptor "Input_file_argument *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x4c)" identifier (argument_list "(0x4c)" ( number_literal ))))) ;) (expression_statement "(pIVar8->name_)._M_dataplus._M_p = (pointer)&(pIVar8->name_).field_2;" (assignment_expression "(pIVar8->name_)._M_dataplus._M_p = (pointer)&(pIVar8->name_).field_2" (field_expression "(pIVar8->name_)._M_dataplus._M_p" (field_expression "(pIVar8->name_)._M_dataplus" (parenthesized_expression "(pIVar8->name_)" ( (field_expression "pIVar8->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (binary_expression "(pointer)&(pIVar8->name_).field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "(pIVar8->name_).field_2" (parenthesized_expression "(pIVar8->name_)" ( (field_expression "pIVar8->name_" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "pcVar9 = (char *)0xffffffff;" (assignment_expression "pcVar9 = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (name != (char *)0x0) {\n    sVar10 = strlen(name);\n    pcVar9 = name + sVar10;\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    sVar10 = strlen(name);\n    pcVar9 = name + sVar10;\n  }" { (expression_statement "sVar10 = strlen(name);" (assignment_expression "sVar10 = strlen(name)" identifier = (call_expression "strlen(name)" identifier (argument_list "(name)" ( identifier )))) ;) (expression_statement "pcVar9 = name + sVar10;" (assignment_expression "pcVar9 = name + sVar10" identifier = (binary_expression "name + sVar10" identifier + identifier)) ;) })) comment (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>\n            ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)pIVar8,name,pcVar9\n             ,0);" 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*>\n            ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)pIVar8,name,pcVar9\n             ,0);" (binary_expression "_M_construct<char_const*>\n            ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)pIVar8,name,pcVar9\n             ,0)" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)pIVar8,name,pcVar9\n             ,0)" ( (parenthesized_expression "(basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)pIVar8,name,pcVar9\n             ,0)" ( (ERROR "basic_string<char,_std::char_traits<char>,_std::" (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (comma_expression "allocator<char>_> *)pIVar8,name,pcVar9\n             ,0" (binary_expression "allocator<char>_> *)pIVar8" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (pointer_expression "*)pIVar8" * (ERROR ")" )) identifier)) , (comma_expression "name,pcVar9\n             ,0" identifier , (comma_expression "pcVar9\n             ,0" identifier , number_literal))) )) ))) ;)) (expression_statement "pIVar8->type_ = INPUT_FILE_TYPE_FILE;" (assignment_expression "pIVar8->type_ = INPUT_FILE_TYPE_FILE" (field_expression "pIVar8->type_" identifier -> field_identifier) = identifier) ;) (expression_statement "(pIVar8->extra_search_path_)._M_dataplus._M_p = (pointer)&(pIVar8->extra_search_path_).field_2;" (assignment_expression "(pIVar8->extra_search_path_)._M_dataplus._M_p = (pointer)&(pIVar8->extra_search_path_).field_2" (field_expression "(pIVar8->extra_search_path_)._M_dataplus._M_p" (field_expression "(pIVar8->extra_search_path_)._M_dataplus" (parenthesized_expression "(pIVar8->extra_search_path_)" ( (field_expression "pIVar8->extra_search_path_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (binary_expression "(pointer)&(pIVar8->extra_search_path_).field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "(pIVar8->extra_search_path_).field_2" (parenthesized_expression "(pIVar8->extra_search_path_)" ( (field_expression "pIVar8->extra_search_path_" identifier -> field_identifier) )) . field_identifier))) ;) comment (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>(&pIVar8->extra_search_path_,"","",0);" 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*>(&pIVar8->extra_search_path_,"","",0);" (binary_expression "_M_construct<char_const*>(&pIVar8->extra_search_path_,"","",0)" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "(&pIVar8->extra_search_path_,"","",0)" ( (comma_expression "&pIVar8->extra_search_path_,"","",0" (pointer_expression "&pIVar8->extra_search_path_" & (field_expression "pIVar8->extra_search_path_" identifier -> field_identifier)) , (comma_expression ""","",0" (string_literal """" " ") , (comma_expression """,0" (string_literal """" " ") , number_literal))) ))) ;)) (expression_statement "pIVar8->just_symbols_ = false;" (assignment_expression "pIVar8->just_symbols_ = false" (field_expression "pIVar8->just_symbols_" identifier -> field_identifier) = false) ;) (expression_statement "pIVar8->arg_serial_ = 0;" (assignment_expression "pIVar8->arg_serial_ = 0" (field_expression "pIVar8->arg_serial_" identifier -> field_identifier) = number_literal) ;) (expression_statement "(pIVar8->options_).as_needed_ = bVar3;" (assignment_expression "(pIVar8->options_).as_needed_ = bVar3" (field_expression "(pIVar8->options_).as_needed_" (parenthesized_expression "(pIVar8->options_)" ( (field_expression "pIVar8->options_" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "this->input_argument_ = pIVar8;" (assignment_expression "this->input_argument_ = pIVar8" (field_expression "this->input_argument_" identifier -> field_identifier) = identifier) ;) (expression_statement "(pIVar8->options_).Bdynamic_ = bVar4;" (assignment_expression "(pIVar8->options_).Bdynamic_ = bVar4" (field_expression "(pIVar8->options_).Bdynamic_" (parenthesized_expression "(pIVar8->options_)" ( (field_expression "pIVar8->options_" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(pIVar8->options_).format_enum_ = OVar7;" (assignment_expression "(pIVar8->options_).format_enum_ = OVar7" (field_expression "(pIVar8->options_).format_enum_" (parenthesized_expression "(pIVar8->options_)" ( (field_expression "pIVar8->options_" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(pIVar8->options_).whole_archive_ = bVar5;" (assignment_expression "(pIVar8->options_).whole_archive_ = bVar5" (field_expression "(pIVar8->options_).whole_archive_" (parenthesized_expression "(pIVar8->options_)" ( (field_expression "pIVar8->options_" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(pIVar8->options_).incremental_disposition_ = IVar6;" (assignment_expression "(pIVar8->options_).incremental_disposition_ = IVar6" (field_expression "(pIVar8->options_).incremental_disposition_" (parenthesized_expression "(pIVar8->options_)" ( (field_expression "pIVar8->options_" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0023ec30(undefined4 *param_1,char *param_2)\n\n{\n  undefined1 uVar1;\n  undefined1 uVar2;\n  undefined1 uVar3;\n  int iVar4;\n  int iVar5;\n  int *piVar6;\n  char *pcVar7;\n  size_t sVar8;\n  \n  param_1[2] = 0;\n  param_1[1] = param_1 + 3;\n  param_1[7] = param_1 + 9;\n  param_1[0x1a] = param_1 + 0x18;\n  param_1[0x1b] = param_1 + 0x18;\n  param_1[0x1e] = param_1 + 0x1d;\n  param_1[0x1d] = param_1 + 0x1d;\n  *(undefined1 *)(param_1 + 3) = 0;\n  param_1[8] = 0;\n  *(undefined1 *)(param_1 + 9) = 0;\n  param_1[0xd] = 0xffffffff;\n  *(undefined1 *)(param_1 + 0xe) = 0;\n  param_1[0xf] = 0;\n  param_1[0x10] = 0;\n  param_1[0x11] = 0;\n  *(undefined1 *)(param_1 + 0x12) = 0;\n  param_1[0x13] = 0;\n  param_1[0x14] = 0;\n  param_1[0x15] = 0;\n  param_1[0x16] = 0;\n  param_1[0x18] = 0;\n  param_1[0x19] = 0;\n  param_1[0x1c] = 0;\n  param_1[0x1f] = 0;\n  param_1[0x20] = 0;\n  *(undefined1 *)(param_1 + 0x21) = 1;\n  *(undefined1 *)(param_1 + 0x23) = 0;\n  uVar1 = DAT_005eba75;\n  param_1[0x22] = 0;\n  param_1[0x24] = 0;\n  uVar2 = DAT_005ebcc9;\n                    \n  iVar5 = FUN_002b5cb0(&DAT_005eb780);\n  iVar4 = DAT_005f1194;\n  uVar3 = DAT_005f01ad;\n  piVar6 = (int *)FUN_003ac4d0(0x4c);\n  *piVar6 = (int)(piVar6 + 2);\n  pcVar7 = (char *)0xffffffff;\n  if (param_2 != (char *)0x0) {\n    sVar8 = strlen(param_2);\n    pcVar7 = param_2 + sVar8;\n  }\n                    \n  FUN_00072b90(piVar6,param_2,pcVar7,0);\n  piVar6[6] = 0;\n  piVar6[7] = (int)(piVar6 + 9);\n                    \n  FUN_00072b90(piVar6 + 7,"","",0);\n  *(undefined1 *)(piVar6 + 0xd) = 0;\n  piVar6[0x12] = 0;\n  *(undefined1 *)(piVar6 + 0xe) = uVar1;\n  *param_1 = piVar6;\n  *(undefined1 *)((int)piVar6 + 0x39) = uVar2;\n  piVar6[0xf] = iVar5;\n  *(undefined1 *)(piVar6 + 0x10) = uVar3;\n  piVar6[0x11] = iVar4;\n  return;\n}\n\n" (function_definition "void FUN_0023ec30(undefined4 *param_1,char *param_2)\n\n{\n  undefined1 uVar1;\n  undefined1 uVar2;\n  undefined1 uVar3;\n  int iVar4;\n  int iVar5;\n  int *piVar6;\n  char *pcVar7;\n  size_t sVar8;\n  \n  param_1[2] = 0;\n  param_1[1] = param_1 + 3;\n  param_1[7] = param_1 + 9;\n  param_1[0x1a] = param_1 + 0x18;\n  param_1[0x1b] = param_1 + 0x18;\n  param_1[0x1e] = param_1 + 0x1d;\n  param_1[0x1d] = param_1 + 0x1d;\n  *(undefined1 *)(param_1 + 3) = 0;\n  param_1[8] = 0;\n  *(undefined1 *)(param_1 + 9) = 0;\n  param_1[0xd] = 0xffffffff;\n  *(undefined1 *)(param_1 + 0xe) = 0;\n  param_1[0xf] = 0;\n  param_1[0x10] = 0;\n  param_1[0x11] = 0;\n  *(undefined1 *)(param_1 + 0x12) = 0;\n  param_1[0x13] = 0;\n  param_1[0x14] = 0;\n  param_1[0x15] = 0;\n  param_1[0x16] = 0;\n  param_1[0x18] = 0;\n  param_1[0x19] = 0;\n  param_1[0x1c] = 0;\n  param_1[0x1f] = 0;\n  param_1[0x20] = 0;\n  *(undefined1 *)(param_1 + 0x21) = 1;\n  *(undefined1 *)(param_1 + 0x23) = 0;\n  uVar1 = DAT_005eba75;\n  param_1[0x22] = 0;\n  param_1[0x24] = 0;\n  uVar2 = DAT_005ebcc9;\n                    \n  iVar5 = FUN_002b5cb0(&DAT_005eb780);\n  iVar4 = DAT_005f1194;\n  uVar3 = DAT_005f01ad;\n  piVar6 = (int *)FUN_003ac4d0(0x4c);\n  *piVar6 = (int)(piVar6 + 2);\n  pcVar7 = (char *)0xffffffff;\n  if (param_2 != (char *)0x0) {\n    sVar8 = strlen(param_2);\n    pcVar7 = param_2 + sVar8;\n  }\n                    \n  FUN_00072b90(piVar6,param_2,pcVar7,0);\n  piVar6[6] = 0;\n  piVar6[7] = (int)(piVar6 + 9);\n                    \n  FUN_00072b90(piVar6 + 7,"","",0);\n  *(undefined1 *)(piVar6 + 0xd) = 0;\n  piVar6[0x12] = 0;\n  *(undefined1 *)(piVar6 + 0xe) = uVar1;\n  *param_1 = piVar6;\n  *(undefined1 *)((int)piVar6 + 0x39) = uVar2;\n  piVar6[0xf] = iVar5;\n  *(undefined1 *)(piVar6 + 0x10) = uVar3;\n  piVar6[0x11] = iVar4;\n  return;\n}" primitive_type (function_declarator "FUN_0023ec30(undefined4 *param_1,char *param_2)" identifier (parameter_list "(undefined4 *param_1,char *param_2)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  undefined1 uVar1;\n  undefined1 uVar2;\n  undefined1 uVar3;\n  int iVar4;\n  int iVar5;\n  int *piVar6;\n  char *pcVar7;\n  size_t sVar8;\n  \n  param_1[2] = 0;\n  param_1[1] = param_1 + 3;\n  param_1[7] = param_1 + 9;\n  param_1[0x1a] = param_1 + 0x18;\n  param_1[0x1b] = param_1 + 0x18;\n  param_1[0x1e] = param_1 + 0x1d;\n  param_1[0x1d] = param_1 + 0x1d;\n  *(undefined1 *)(param_1 + 3) = 0;\n  param_1[8] = 0;\n  *(undefined1 *)(param_1 + 9) = 0;\n  param_1[0xd] = 0xffffffff;\n  *(undefined1 *)(param_1 + 0xe) = 0;\n  param_1[0xf] = 0;\n  param_1[0x10] = 0;\n  param_1[0x11] = 0;\n  *(undefined1 *)(param_1 + 0x12) = 0;\n  param_1[0x13] = 0;\n  param_1[0x14] = 0;\n  param_1[0x15] = 0;\n  param_1[0x16] = 0;\n  param_1[0x18] = 0;\n  param_1[0x19] = 0;\n  param_1[0x1c] = 0;\n  param_1[0x1f] = 0;\n  param_1[0x20] = 0;\n  *(undefined1 *)(param_1 + 0x21) = 1;\n  *(undefined1 *)(param_1 + 0x23) = 0;\n  uVar1 = DAT_005eba75;\n  param_1[0x22] = 0;\n  param_1[0x24] = 0;\n  uVar2 = DAT_005ebcc9;\n                    \n  iVar5 = FUN_002b5cb0(&DAT_005eb780);\n  iVar4 = DAT_005f1194;\n  uVar3 = DAT_005f01ad;\n  piVar6 = (int *)FUN_003ac4d0(0x4c);\n  *piVar6 = (int)(piVar6 + 2);\n  pcVar7 = (char *)0xffffffff;\n  if (param_2 != (char *)0x0) {\n    sVar8 = strlen(param_2);\n    pcVar7 = param_2 + sVar8;\n  }\n                    \n  FUN_00072b90(piVar6,param_2,pcVar7,0);\n  piVar6[6] = 0;\n  piVar6[7] = (int)(piVar6 + 9);\n                    \n  FUN_00072b90(piVar6 + 7,"","",0);\n  *(undefined1 *)(piVar6 + 0xd) = 0;\n  piVar6[0x12] = 0;\n  *(undefined1 *)(piVar6 + 0xe) = uVar1;\n  *param_1 = piVar6;\n  *(undefined1 *)((int)piVar6 + 0x39) = uVar2;\n  piVar6[0xf] = iVar5;\n  *(undefined1 *)(piVar6 + 0x10) = uVar3;\n  piVar6[0x11] = iVar4;\n  return;\n}" { (declaration "undefined1 uVar1;" type_identifier identifier ;) (declaration "undefined1 uVar2;" type_identifier identifier ;) (declaration "undefined1 uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "size_t sVar8;" primitive_type identifier ;) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (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 "param_1[7] = param_1 + 9;" (assignment_expression "param_1[7] = param_1 + 9" (subscript_expression "param_1[7]" identifier [ number_literal ]) = (binary_expression "param_1 + 9" identifier + number_literal)) ;) (expression_statement "param_1[0x1a] = param_1 + 0x18;" (assignment_expression "param_1[0x1a] = param_1 + 0x18" (subscript_expression "param_1[0x1a]" identifier [ number_literal ]) = (binary_expression "param_1 + 0x18" identifier + number_literal)) ;) (expression_statement "param_1[0x1b] = param_1 + 0x18;" (assignment_expression "param_1[0x1b] = param_1 + 0x18" (subscript_expression "param_1[0x1b]" identifier [ number_literal ]) = (binary_expression "param_1 + 0x18" identifier + number_literal)) ;) (expression_statement "param_1[0x1e] = param_1 + 0x1d;" (assignment_expression "param_1[0x1e] = param_1 + 0x1d" (subscript_expression "param_1[0x1e]" identifier [ number_literal ]) = (binary_expression "param_1 + 0x1d" identifier + number_literal)) ;) (expression_statement "param_1[0x1d] = param_1 + 0x1d;" (assignment_expression "param_1[0x1d] = param_1 + 0x1d" (subscript_expression "param_1[0x1d]" identifier [ number_literal ]) = (binary_expression "param_1 + 0x1d" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)(param_1 + 3) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 3) = 0" (pointer_expression "*(undefined1 *)(param_1 + 3)" * (cast_expression "(undefined1 *)(param_1 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 3)" ( (binary_expression "param_1 + 3" 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 "*(undefined1 *)(param_1 + 9) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 9) = 0" (pointer_expression "*(undefined1 *)(param_1 + 9)" * (cast_expression "(undefined1 *)(param_1 + 9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 9)" ( (binary_expression "param_1 + 9" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_1[0xd] = 0xffffffff;" (assignment_expression "param_1[0xd] = 0xffffffff" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 0xe) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xe) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xe)" * (cast_expression "(undefined1 *)(param_1 + 0xe)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe)" ( (binary_expression "param_1 + 0xe" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_1[0xf] = 0;" (assignment_expression "param_1[0xf] = 0" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x10] = 0;" (assignment_expression "param_1[0x10] = 0" (subscript_expression "param_1[0x10]" 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 "*(undefined1 *)(param_1 + 0x12) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0x12) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0x12)" * (cast_expression "(undefined1 *)(param_1 + 0x12)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x12)" ( (binary_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[0x15] = 0;" (assignment_expression "param_1[0x15] = 0" (subscript_expression "param_1[0x15]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x16] = 0;" (assignment_expression "param_1[0x16] = 0" (subscript_expression "param_1[0x16]" 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 "param_1[0x19] = 0;" (assignment_expression "param_1[0x19] = 0" (subscript_expression "param_1[0x19]" 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[0x1f] = 0;" (assignment_expression "param_1[0x1f] = 0" (subscript_expression "param_1[0x1f]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x20] = 0;" (assignment_expression "param_1[0x20] = 0" (subscript_expression "param_1[0x20]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 0x21) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0x21) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0x21)" * (cast_expression "(undefined1 *)(param_1 + 0x21)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x21)" ( (binary_expression "param_1 + 0x21" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 0x23) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0x23) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0x23)" * (cast_expression "(undefined1 *)(param_1 + 0x23)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x23)" ( (binary_expression "param_1 + 0x23" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar1 = DAT_005eba75;" (assignment_expression "uVar1 = DAT_005eba75" identifier = identifier) ;) (expression_statement "param_1[0x22] = 0;" (assignment_expression "param_1[0x22] = 0" (subscript_expression "param_1[0x22]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x24] = 0;" (assignment_expression "param_1[0x24] = 0" (subscript_expression "param_1[0x24]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar2 = DAT_005ebcc9;" (assignment_expression "uVar2 = DAT_005ebcc9" identifier = identifier) ;) (expression_statement "iVar5 = FUN_002b5cb0(&DAT_005eb780);" (assignment_expression "iVar5 = FUN_002b5cb0(&DAT_005eb780)" identifier = (call_expression "FUN_002b5cb0(&DAT_005eb780)" identifier (argument_list "(&DAT_005eb780)" ( (pointer_expression "&DAT_005eb780" & identifier) )))) ;) (expression_statement "iVar4 = DAT_005f1194;" (assignment_expression "iVar4 = DAT_005f1194" identifier = identifier) ;) (expression_statement "uVar3 = DAT_005f01ad;" (assignment_expression "uVar3 = DAT_005f01ad" identifier = identifier) ;) (expression_statement "piVar6 = (int *)FUN_003ac4d0(0x4c);" (assignment_expression "piVar6 = (int *)FUN_003ac4d0(0x4c)" identifier = (cast_expression "(int *)FUN_003ac4d0(0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_003ac4d0(0x4c)" identifier (argument_list "(0x4c)" ( number_literal ))))) ;) (expression_statement "*piVar6 = (int)(piVar6 + 2);" (assignment_expression "*piVar6 = (int)(piVar6 + 2)" (pointer_expression "*piVar6" * identifier) = (cast_expression "(int)(piVar6 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar6 + 2)" ( (binary_expression "piVar6 + 2" identifier + number_literal) )))) ;) (expression_statement "pcVar7 = (char *)0xffffffff;" (assignment_expression "pcVar7 = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (param_2 != (char *)0x0) {\n    sVar8 = strlen(param_2);\n    pcVar7 = param_2 + sVar8;\n  }" if (parenthesized_expression "(param_2 != (char *)0x0)" ( (binary_expression "param_2 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sVar8 = strlen(param_2);\n    pcVar7 = param_2 + sVar8;\n  }" { (expression_statement "sVar8 = strlen(param_2);" (assignment_expression "sVar8 = strlen(param_2)" identifier = (call_expression "strlen(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "pcVar7 = param_2 + sVar8;" (assignment_expression "pcVar7 = param_2 + sVar8" identifier = (binary_expression "param_2 + sVar8" identifier + identifier)) ;) })) (expression_statement "FUN_00072b90(piVar6,param_2,pcVar7,0);" (call_expression "FUN_00072b90(piVar6,param_2,pcVar7,0)" identifier (argument_list "(piVar6,param_2,pcVar7,0)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "piVar6[6] = 0;" (assignment_expression "piVar6[6] = 0" (subscript_expression "piVar6[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[7] = (int)(piVar6 + 9);" (assignment_expression "piVar6[7] = (int)(piVar6 + 9)" (subscript_expression "piVar6[7]" identifier [ number_literal ]) = (cast_expression "(int)(piVar6 + 9)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar6 + 9)" ( (binary_expression "piVar6 + 9" identifier + number_literal) )))) ;) (expression_statement "FUN_00072b90(piVar6 + 7,"","",0);" (call_expression "FUN_00072b90(piVar6 + 7,"","",0)" identifier (argument_list "(piVar6 + 7,"","",0)" ( (binary_expression "piVar6 + 7" identifier + number_literal) , (string_literal """" " ") , (string_literal """" " ") , number_literal ))) ;) (expression_statement "*(undefined1 *)(piVar6 + 0xd) = 0;" (assignment_expression "*(undefined1 *)(piVar6 + 0xd) = 0" (pointer_expression "*(undefined1 *)(piVar6 + 0xd)" * (cast_expression "(undefined1 *)(piVar6 + 0xd)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar6 + 0xd)" ( (binary_expression "piVar6 + 0xd" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar6[0x12] = 0;" (assignment_expression "piVar6[0x12] = 0" (subscript_expression "piVar6[0x12]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(piVar6 + 0xe) = uVar1;" (assignment_expression "*(undefined1 *)(piVar6 + 0xe) = uVar1" (pointer_expression "*(undefined1 *)(piVar6 + 0xe)" * (cast_expression "(undefined1 *)(piVar6 + 0xe)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar6 + 0xe)" ( (binary_expression "piVar6 + 0xe" identifier + number_literal) )))) = identifier) ;) (expression_statement "*param_1 = piVar6;" (assignment_expression "*param_1 = piVar6" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "*(undefined1 *)((int)piVar6 + 0x39) = uVar2;" (assignment_expression "*(undefined1 *)((int)piVar6 + 0x39) = uVar2" (pointer_expression "*(undefined1 *)((int)piVar6 + 0x39)" * (cast_expression "(undefined1 *)((int)piVar6 + 0x39)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar6 + 0x39)" ( (binary_expression "(int)piVar6 + 0x39" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "piVar6[0xf] = iVar5;" (assignment_expression "piVar6[0xf] = iVar5" (subscript_expression "piVar6[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(piVar6 + 0x10) = uVar3;" (assignment_expression "*(undefined1 *)(piVar6 + 0x10) = uVar3" (pointer_expression "*(undefined1 *)(piVar6 + 0x10)" * (cast_expression "(undefined1 *)(piVar6 + 0x10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar6 + 0x10)" ( (binary_expression "piVar6 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar6[0x11] = iVar4;" (assignment_expression "piVar6[0x11] = iVar4" (subscript_expression "piVar6[0x11]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (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 ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression 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 (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 (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 ]) = 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 , LIT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (string_literal " ") , (string_literal " ") , 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = 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) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (return_statement return ;) })))
(function_definition "void FUN_0023ec30(undefined4 *param_1,char *param_2)\n\n{\n  undefined1 uVar1;\n  undefined1 uVar2;\n  undefined1 uVar3;\n  int iVar4;\n  int iVar5;\n  int *piVar6;\n  char *pcVar7;\n  size_t sVar8;\n  \n  param_1[2] = 0;\n  param_1[1] = param_1 + 3;\n  param_1[7] = param_1 + 9;\n  param_1[0x1a] = param_1 + 0x18;\n  param_1[0x1b] = param_1 + 0x18;\n  param_1[0x1e] = param_1 + 0x1d;\n  param_1[0x1d] = param_1 + 0x1d;\n  *(undefined1 *)(param_1 + 3) = 0;\n  param_1[8] = 0;\n  *(undefined1 *)(param_1 + 9) = 0;\n  param_1[0xd] = 0xffffffff;\n  *(undefined1 *)(param_1 + 0xe) = 0;\n  param_1[0xf] = 0;\n  param_1[0x10] = 0;\n  param_1[0x11] = 0;\n  *(undefined1 *)(param_1 + 0x12) = 0;\n  param_1[0x13] = 0;\n  param_1[0x14] = 0;\n  param_1[0x15] = 0;\n  param_1[0x16] = 0;\n  param_1[0x18] = 0;\n  param_1[0x19] = 0;\n  param_1[0x1c] = 0;\n  param_1[0x1f] = 0;\n  param_1[0x20] = 0;\n  *(undefined1 *)(param_1 + 0x21) = 1;\n  *(undefined1 *)(param_1 + 0x23) = 0;\n  uVar1 = DAT_005eba75;\n  param_1[0x22] = 0;\n  param_1[0x24] = 0;\n  uVar2 = DAT_005ebcc9;\n                    \n  iVar5 = FUN_002b5cb0(&DAT_005eb780);\n  iVar4 = DAT_005f1194;\n  uVar3 = DAT_005f01ad;\n  piVar6 = (int *)FUN_003ac4d0(0x4c);\n  *piVar6 = (int)(piVar6 + 2);\n  pcVar7 = (char *)0xffffffff;\n  if (param_2 != (char *)0x0) {\n    sVar8 = strlen(param_2);\n    pcVar7 = param_2 + sVar8;\n  }\n                    \n  FUN_00072b90(piVar6,param_2,pcVar7,0);\n  piVar6[6] = 0;\n  piVar6[7] = (int)(piVar6 + 9);\n                    \n  FUN_00072b90(piVar6 + 7,"","",0);\n  *(undefined1 *)(piVar6 + 0xd) = 0;\n  piVar6[0x12] = 0;\n  *(undefined1 *)(piVar6 + 0xe) = uVar1;\n  *param_1 = piVar6;\n  *(undefined1 *)((int)piVar6 + 0x39) = uVar2;\n  piVar6[0xf] = iVar5;\n  *(undefined1 *)(piVar6 + 0x10) = uVar3;\n  piVar6[0x11] = iVar4;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0023ec30(undefined4 *param_1,char *param_2)" (identifier "FUN_0023ec30") (parameter_list "(undefined4 *param_1,char *param_2)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "char *param_2" (primitive_type "char") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  undefined1 uVar1;\n  undefined1 uVar2;\n  undefined1 uVar3;\n  int iVar4;\n  int iVar5;\n  int *piVar6;\n  char *pcVar7;\n  size_t sVar8;\n  \n  param_1[2] = 0;\n  param_1[1] = param_1 + 3;\n  param_1[7] = param_1 + 9;\n  param_1[0x1a] = param_1 + 0x18;\n  param_1[0x1b] = param_1 + 0x18;\n  param_1[0x1e] = param_1 + 0x1d;\n  param_1[0x1d] = param_1 + 0x1d;\n  *(undefined1 *)(param_1 + 3) = 0;\n  param_1[8] = 0;\n  *(undefined1 *)(param_1 + 9) = 0;\n  param_1[0xd] = 0xffffffff;\n  *(undefined1 *)(param_1 + 0xe) = 0;\n  param_1[0xf] = 0;\n  param_1[0x10] = 0;\n  param_1[0x11] = 0;\n  *(undefined1 *)(param_1 + 0x12) = 0;\n  param_1[0x13] = 0;\n  param_1[0x14] = 0;\n  param_1[0x15] = 0;\n  param_1[0x16] = 0;\n  param_1[0x18] = 0;\n  param_1[0x19] = 0;\n  param_1[0x1c] = 0;\n  param_1[0x1f] = 0;\n  param_1[0x20] = 0;\n  *(undefined1 *)(param_1 + 0x21) = 1;\n  *(undefined1 *)(param_1 + 0x23) = 0;\n  uVar1 = DAT_005eba75;\n  param_1[0x22] = 0;\n  param_1[0x24] = 0;\n  uVar2 = DAT_005ebcc9;\n                    \n  iVar5 = FUN_002b5cb0(&DAT_005eb780);\n  iVar4 = DAT_005f1194;\n  uVar3 = DAT_005f01ad;\n  piVar6 = (int *)FUN_003ac4d0(0x4c);\n  *piVar6 = (int)(piVar6 + 2);\n  pcVar7 = (char *)0xffffffff;\n  if (param_2 != (char *)0x0) {\n    sVar8 = strlen(param_2);\n    pcVar7 = param_2 + sVar8;\n  }\n                    \n  FUN_00072b90(piVar6,param_2,pcVar7,0);\n  piVar6[6] = 0;\n  piVar6[7] = (int)(piVar6 + 9);\n                    \n  FUN_00072b90(piVar6 + 7,"","",0);\n  *(undefined1 *)(piVar6 + 0xd) = 0;\n  piVar6[0x12] = 0;\n  *(undefined1 *)(piVar6 + 0xe) = uVar1;\n  *param_1 = piVar6;\n  *(undefined1 *)((int)piVar6 + 0x39) = uVar2;\n  piVar6[0xf] = iVar5;\n  *(undefined1 *)(piVar6 + 0x10) = uVar3;\n  piVar6[0x11] = iVar4;\n  return;\n}" ({ "{") (declaration "undefined1 uVar1;" (type_identifier "undefined1") (identifier "uVar1") (; ";")) (declaration "undefined1 uVar2;" (type_identifier "undefined1") (identifier "uVar2") (; ";")) (declaration "undefined1 uVar3;" (type_identifier "undefined1") (identifier "uVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "char *pcVar7;" (primitive_type "char") (pointer_declarator "*pcVar7" (* "*") (identifier "pcVar7")) (; ";")) (declaration "size_t sVar8;" (primitive_type "size_t") (identifier "sVar8") (; ";")) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (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 "param_1[7] = param_1 + 9;" (assignment_expression "param_1[7] = param_1 + 9" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (= "=") (binary_expression "param_1 + 9" (identifier "param_1") (+ "+") (number_literal "9"))) (; ";")) (expression_statement "param_1[0x1a] = param_1 + 0x18;" (assignment_expression "param_1[0x1a] = param_1 + 0x18" (subscript_expression "param_1[0x1a]" (identifier "param_1") ([ "[") (number_literal "0x1a") (] "]")) (= "=") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18"))) (; ";")) (expression_statement "param_1[0x1b] = param_1 + 0x18;" (assignment_expression "param_1[0x1b] = param_1 + 0x18" (subscript_expression "param_1[0x1b]" (identifier "param_1") ([ "[") (number_literal "0x1b") (] "]")) (= "=") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18"))) (; ";")) (expression_statement "param_1[0x1e] = param_1 + 0x1d;" (assignment_expression "param_1[0x1e] = param_1 + 0x1d" (subscript_expression "param_1[0x1e]" (identifier "param_1") ([ "[") (number_literal "0x1e") (] "]")) (= "=") (binary_expression "param_1 + 0x1d" (identifier "param_1") (+ "+") (number_literal "0x1d"))) (; ";")) (expression_statement "param_1[0x1d] = param_1 + 0x1d;" (assignment_expression "param_1[0x1d] = param_1 + 0x1d" (subscript_expression "param_1[0x1d]" (identifier "param_1") ([ "[") (number_literal "0x1d") (] "]")) (= "=") (binary_expression "param_1 + 0x1d" (identifier "param_1") (+ "+") (number_literal "0x1d"))) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 3) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 3) = 0" (pointer_expression "*(undefined1 *)(param_1 + 3)" (* "*") (cast_expression "(undefined1 *)(param_1 + 3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 3)" (( "(") (binary_expression "param_1 + 3" (identifier "param_1") (+ "+") (number_literal "3")) () ")")))) (= "=") (number_literal "0")) (; ";")) (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 "*(undefined1 *)(param_1 + 9) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 9) = 0" (pointer_expression "*(undefined1 *)(param_1 + 9)" (* "*") (cast_expression "(undefined1 *)(param_1 + 9)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 9)" (( "(") (binary_expression "param_1 + 9" (identifier "param_1") (+ "+") (number_literal "9")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0xd] = 0xffffffff;" (assignment_expression "param_1[0xd] = 0xffffffff" (subscript_expression "param_1[0xd]" (identifier "param_1") ([ "[") (number_literal "0xd") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 0xe) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xe) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xe)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0xe)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xe)" (( "(") (binary_expression "param_1 + 0xe" (identifier "param_1") (+ "+") (number_literal "0xe")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0xf] = 0;" (assignment_expression "param_1[0xf] = 0" (subscript_expression "param_1[0xf]" (identifier "param_1") ([ "[") (number_literal "0xf") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x10] = 0;" (assignment_expression "param_1[0x10] = 0" (subscript_expression "param_1[0x10]" (identifier "param_1") ([ "[") (number_literal "0x10") (] "]")) (= "=") (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 "*(undefined1 *)(param_1 + 0x12) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0x12) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0x12)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x12)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x12)" (( "(") (binary_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[0x15] = 0;" (assignment_expression "param_1[0x15] = 0" (subscript_expression "param_1[0x15]" (identifier "param_1") ([ "[") (number_literal "0x15") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x16] = 0;" (assignment_expression "param_1[0x16] = 0" (subscript_expression "param_1[0x16]" (identifier "param_1") ([ "[") (number_literal "0x16") (] "]")) (= "=") (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 "param_1[0x19] = 0;" (assignment_expression "param_1[0x19] = 0" (subscript_expression "param_1[0x19]" (identifier "param_1") ([ "[") (number_literal "0x19") (] "]")) (= "=") (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[0x1f] = 0;" (assignment_expression "param_1[0x1f] = 0" (subscript_expression "param_1[0x1f]" (identifier "param_1") ([ "[") (number_literal "0x1f") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x20] = 0;" (assignment_expression "param_1[0x20] = 0" (subscript_expression "param_1[0x20]" (identifier "param_1") ([ "[") (number_literal "0x20") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 0x21) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0x21) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0x21)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x21)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x21)" (( "(") (binary_expression "param_1 + 0x21" (identifier "param_1") (+ "+") (number_literal "0x21")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 0x23) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0x23) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0x23)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x23)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x23)" (( "(") (binary_expression "param_1 + 0x23" (identifier "param_1") (+ "+") (number_literal "0x23")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar1 = DAT_005eba75;" (assignment_expression "uVar1 = DAT_005eba75" (identifier "uVar1") (= "=") (identifier "DAT_005eba75")) (; ";")) (expression_statement "param_1[0x22] = 0;" (assignment_expression "param_1[0x22] = 0" (subscript_expression "param_1[0x22]" (identifier "param_1") ([ "[") (number_literal "0x22") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x24] = 0;" (assignment_expression "param_1[0x24] = 0" (subscript_expression "param_1[0x24]" (identifier "param_1") ([ "[") (number_literal "0x24") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar2 = DAT_005ebcc9;" (assignment_expression "uVar2 = DAT_005ebcc9" (identifier "uVar2") (= "=") (identifier "DAT_005ebcc9")) (; ";")) (expression_statement "iVar5 = FUN_002b5cb0(&DAT_005eb780);" (assignment_expression "iVar5 = FUN_002b5cb0(&DAT_005eb780)" (identifier "iVar5") (= "=") (call_expression "FUN_002b5cb0(&DAT_005eb780)" (identifier "FUN_002b5cb0") (argument_list "(&DAT_005eb780)" (( "(") (pointer_expression "&DAT_005eb780" (& "&") (identifier "DAT_005eb780")) () ")")))) (; ";")) (expression_statement "iVar4 = DAT_005f1194;" (assignment_expression "iVar4 = DAT_005f1194" (identifier "iVar4") (= "=") (identifier "DAT_005f1194")) (; ";")) (expression_statement "uVar3 = DAT_005f01ad;" (assignment_expression "uVar3 = DAT_005f01ad" (identifier "uVar3") (= "=") (identifier "DAT_005f01ad")) (; ";")) (expression_statement "piVar6 = (int *)FUN_003ac4d0(0x4c);" (assignment_expression "piVar6 = (int *)FUN_003ac4d0(0x4c)" (identifier "piVar6") (= "=") (cast_expression "(int *)FUN_003ac4d0(0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_003ac4d0(0x4c)" (identifier "FUN_003ac4d0") (argument_list "(0x4c)" (( "(") (number_literal "0x4c") () ")"))))) (; ";")) (expression_statement "*piVar6 = (int)(piVar6 + 2);" (assignment_expression "*piVar6 = (int)(piVar6 + 2)" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (= "=") (cast_expression "(int)(piVar6 + 2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(piVar6 + 2)" (( "(") (binary_expression "piVar6 + 2" (identifier "piVar6") (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "pcVar7 = (char *)0xffffffff;" (assignment_expression "pcVar7 = (char *)0xffffffff" (identifier "pcVar7") (= "=") (cast_expression "(char *)0xffffffff" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (if_statement "if (param_2 != (char *)0x0) {\n    sVar8 = strlen(param_2);\n    pcVar7 = param_2 + sVar8;\n  }" (if "if") (parenthesized_expression "(param_2 != (char *)0x0)" (( "(") (binary_expression "param_2 != (char *)0x0" (identifier "param_2") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    sVar8 = strlen(param_2);\n    pcVar7 = param_2 + sVar8;\n  }" ({ "{") (expression_statement "sVar8 = strlen(param_2);" (assignment_expression "sVar8 = strlen(param_2)" (identifier "sVar8") (= "=") (call_expression "strlen(param_2)" (identifier "strlen") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "pcVar7 = param_2 + sVar8;" (assignment_expression "pcVar7 = param_2 + sVar8" (identifier "pcVar7") (= "=") (binary_expression "param_2 + sVar8" (identifier "param_2") (+ "+") (identifier "sVar8"))) (; ";")) (} "}"))) (expression_statement "FUN_00072b90(piVar6,param_2,pcVar7,0);" (call_expression "FUN_00072b90(piVar6,param_2,pcVar7,0)" (identifier "FUN_00072b90") (argument_list "(piVar6,param_2,pcVar7,0)" (( "(") (identifier "piVar6") (, ",") (identifier "param_2") (, ",") (identifier "pcVar7") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "piVar6[6] = 0;" (assignment_expression "piVar6[6] = 0" (subscript_expression "piVar6[6]" (identifier "piVar6") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar6[7] = (int)(piVar6 + 9);" (assignment_expression "piVar6[7] = (int)(piVar6 + 9)" (subscript_expression "piVar6[7]" (identifier "piVar6") ([ "[") (number_literal "7") (] "]")) (= "=") (cast_expression "(int)(piVar6 + 9)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(piVar6 + 9)" (( "(") (binary_expression "piVar6 + 9" (identifier "piVar6") (+ "+") (number_literal "9")) () ")")))) (; ";")) (expression_statement "FUN_00072b90(piVar6 + 7,"","",0);" (call_expression "FUN_00072b90(piVar6 + 7,"","",0)" (identifier "FUN_00072b90") (argument_list "(piVar6 + 7,"","",0)" (( "(") (binary_expression "piVar6 + 7" (identifier "piVar6") (+ "+") (number_literal "7")) (, ",") (string_literal """" (" """) (" """)) (, ",") (string_literal """" (" """) (" """)) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "*(undefined1 *)(piVar6 + 0xd) = 0;" (assignment_expression "*(undefined1 *)(piVar6 + 0xd) = 0" (pointer_expression "*(undefined1 *)(piVar6 + 0xd)" (* "*") (cast_expression "(undefined1 *)(piVar6 + 0xd)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar6 + 0xd)" (( "(") (binary_expression "piVar6 + 0xd" (identifier "piVar6") (+ "+") (number_literal "0xd")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar6[0x12] = 0;" (assignment_expression "piVar6[0x12] = 0" (subscript_expression "piVar6[0x12]" (identifier "piVar6") ([ "[") (number_literal "0x12") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(piVar6 + 0xe) = uVar1;" (assignment_expression "*(undefined1 *)(piVar6 + 0xe) = uVar1" (pointer_expression "*(undefined1 *)(piVar6 + 0xe)" (* "*") (cast_expression "(undefined1 *)(piVar6 + 0xe)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar6 + 0xe)" (( "(") (binary_expression "piVar6 + 0xe" (identifier "piVar6") (+ "+") (number_literal "0xe")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "*param_1 = piVar6;" (assignment_expression "*param_1 = piVar6" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "piVar6")) (; ";")) (expression_statement "*(undefined1 *)((int)piVar6 + 0x39) = uVar2;" (assignment_expression "*(undefined1 *)((int)piVar6 + 0x39) = uVar2" (pointer_expression "*(undefined1 *)((int)piVar6 + 0x39)" (* "*") (cast_expression "(undefined1 *)((int)piVar6 + 0x39)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar6 + 0x39)" (( "(") (binary_expression "(int)piVar6 + 0x39" (cast_expression "(int)piVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar6")) (+ "+") (number_literal "0x39")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "piVar6[0xf] = iVar5;" (assignment_expression "piVar6[0xf] = iVar5" (subscript_expression "piVar6[0xf]" (identifier "piVar6") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "*(undefined1 *)(piVar6 + 0x10) = uVar3;" (assignment_expression "*(undefined1 *)(piVar6 + 0x10) = uVar3" (pointer_expression "*(undefined1 *)(piVar6 + 0x10)" (* "*") (cast_expression "(undefined1 *)(piVar6 + 0x10)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar6 + 0x10)" (( "(") (binary_expression "piVar6 + 0x10" (identifier "piVar6") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "piVar6[0x11] = iVar4;" (assignment_expression "piVar6[0x11] = iVar4" (subscript_expression "piVar6[0x11]" (identifier "piVar6") ([ "[") (number_literal "0x11") (] "]")) (= "=") (identifier "iVar4")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.cx replaced with injection: get_pc_thunk_cx */
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void Input_file(Input_file * this, char * name) */

void __thiscall gold::function_1::function_1(function_1 *this,char *var_5)

{
  type_1 *p_Var1;
  type_2 *pSVar2;
  bool bVar3;
  bool bVar4;
  bool bVar5;
  type_3 IVar6;
  type_4 OVar7;
  type_5 *pIVar8;
  char *pcVar9;
  size_t var_7;
  
  (this->found_name_)._M_string_length = 0;
  (this->found_name_)._M_dataplus._M_p = (pointer)&(this->found_name_).field_2;
  (this->file_).name_._M_dataplus._M_p = (pointer)&(this->file_).name_.field_2;
  p_Var1 = &(this->file_).views_._M_t._M_impl.super__Rb_tree_header;
  (this->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_left = &p_Var1->_M_header;
  (this->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_right = &p_Var1->_M_header;
  pSVar2 = &(this->file_).saved_views_;
  (this->file_).saved_views_.
  super__List_base<gold::var_1::type_10*,_std::var_10<gold::var_1::type_10*>var_2>._M_impl._M_node.
  super__List_node_base._M_prev = (type_6 *)pSVar2;
  (this->file_).saved_views_.
  super__List_base<gold::var_1::type_10*,_std::var_10<gold::var_1::type_10*>var_2>._M_impl._M_node.
  super__List_node_base._M_next = (type_6 *)pSVar2;
  (this->found_name_).field_2._M_local_buf[0] = '\0';
  (this->file_).name_._M_string_length = 0;
  (this->file_).name_.field_2._M_local_buf[0] = '\0';
  (this->file_).descriptor_ = -1;
  (this->file_).is_descriptor_opened_ = false;
  (this->file_).object_count_ = 0;
  *(type_7 *)&(this->file_).size_ = 0;
  *(type_7 *)((int)&(this->file_).size_ + 4) = 0;
  (this->file_).token_.is_blocker_ = false;
  (this->file_).token_.blockers_ = 0;
  (this->file_).token_.writer_ = (type_8 *)0x0;
  (this->file_).token_.waiting_.head_ = (type_8 *)0x0;
  (this->file_).token_.waiting_.tail_ = (type_8 *)0x0;
  (this->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_color = _S_red;
  (this->file_).views_._M_t._M_impl.super__Rb_tree_header._M_header._M_parent = (type_9)0x0;
  (this->file_).views_._M_t._M_impl.super__Rb_tree_header._M_node_count = 0;
  (this->file_).saved_views_.
  super__List_base<gold::var_1::type_10*,_std::var_10<gold::var_1::type_10*>var_2>._M_impl._M_node.
  _M_size = 0;
  (this->file_).mapped_bytes_ = 0;
  (this->file_).released_ = true;
  this->is_in_sysroot_ = false;
  bVar3 = Position_dependent_options::default_options_.as_needed_.value;
  (this->file_).whole_file_view_ = (type_10 *)0x0;
  this->format_ = FORMAT_NONE;
  bVar4 = Position_dependent_options::default_options_.Bdynamic_.value;
                    /* try { // try from 0023ed26 to 0023ed4f has its CatchHandler @ 0023ede8 */
  OVar7 = General_options::var_3(&Position_dependent_options::default_options_);
  IVar6 = Position_dependent_options::default_options_.incremental_disposition_;
  bVar5 = Position_dependent_options::default_options_.whole_archive_.value;
  pIVar8 = (type_5 *)var_4(0x4c);
  (pIVar8->name_)._M_dataplus._M_p = (pointer)&(pIVar8->name_).field_2;
  pcVar9 = (char *)0xffffffff;
  if (var_5 != (char *)0x0) {
    var_7 = var_6(var_5);
    pcVar9 = var_5 + var_7;
  }
                    /* try { // try from 0023ed84 to 0023ed88 has its CatchHandler @ 0023edf4 */
  std::__cxx11::basic_string<var_11,_std::char_traits<var_11>,_std::var_10<var_11>var_2>::
  var_8<var_9*>
            ((basic_string<var_11,_std::char_traits<var_11>,_std::var_10<var_11>var_2> *)pIVar8,var_5,pcVar9
             ,0);
  pIVar8->type_ = INPUT_FILE_TYPE_FILE;
  (pIVar8->extra_search_path_)._M_dataplus._M_p = (pointer)&(pIVar8->extra_search_path_).field_2;
                    /* try { // try from 0023edaa to 0023edae has its CatchHandler @ 0023edef */
  std::__cxx11::basic_string<var_11,_std::char_traits<var_11>,_std::var_10<var_11>var_2>::
  var_8<var_9*>(&pIVar8->extra_search_path_,"","",0);
  pIVar8->just_symbols_ = false;
  pIVar8->arg_serial_ = 0;
  (pIVar8->options_).as_needed_ = bVar3;
  this->input_argument_ = pIVar8;
  (pIVar8->options_).Bdynamic_ = bVar4;
  (pIVar8->options_).format_enum_ = OVar7;
  (pIVar8->options_).whole_archive_ = bVar5;
  (pIVar8->options_).incremental_disposition_ = IVar6;
  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: (primitive_type) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) 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: (binary_expression left: (identifier) 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: (binary_expression left: (identifier) 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: (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: (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: (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: (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: (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: (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: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (string_literal) (string_literal) (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: (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: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (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: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (return_statement))))

/* WARNING: Function: __i686.get_pc_thunk.cx replaced with injection: get_pc_thunk_cx */

void MASKED(undefined4 *param_1,char *param_2)

{
  undefined1 uVar1;
  undefined1 uVar2;
  undefined1 uVar3;
  int iVar4;
  int iVar5;
  int *piVar6;
  char *pcVar7;
  size_t sVar8;
  
  param_1[2] = 0;
  param_1[1] = param_1 + 3;
  param_1[7] = param_1 + 9;
  param_1[0x1a] = param_1 + 0x18;
  param_1[0x1b] = param_1 + 0x18;
  param_1[0x1e] = param_1 + 0x1d;
  param_1[0x1d] = param_1 + 0x1d;
  *(undefined1 *)(param_1 + 3) = 0;
  param_1[8] = 0;
  *(undefined1 *)(param_1 + 9) = 0;
  param_1[0xd] = 0xffffffff;
  *(undefined1 *)(param_1 + 0xe) = 0;
  param_1[0xf] = 0;
  param_1[0x10] = 0;
  param_1[0x11] = 0;
  *(undefined1 *)(param_1 + 0x12) = 0;
  param_1[0x13] = 0;
  param_1[0x14] = 0;
  param_1[0x15] = 0;
  param_1[0x16] = 0;
  param_1[0x18] = 0;
  param_1[0x19] = 0;
  param_1[0x1c] = 0;
  param_1[0x1f] = 0;
  param_1[0x20] = 0;
  *(undefined1 *)(param_1 + 0x21) = 1;
  *(undefined1 *)(param_1 + 0x23) = 0;
  uVar1 = DAT_005eba75;
  param_1[0x22] = 0;
  param_1[0x24] = 0;
  uVar2 = DAT_005ebcc9;
                    /* try { // try from 0023ed26 to 0023ed4f has its CatchHandler @ 0023ede8 */
  iVar5 = FUN_002b5cb0(&DAT_005eb780);
  iVar4 = DAT_005f1194;
  uVar3 = DAT_005f01ad;
  piVar6 = (int *)FUN_003ac4d0(0x4c);
  *piVar6 = (int)(piVar6 + 2);
  pcVar7 = (char *)0xffffffff;
  if (param_2 != (char *)0x0) {
    sVar8 = strlen(param_2);
    pcVar7 = param_2 + sVar8;
  }
                    /* try { // try from 0023ed84 to 0023ed88 has its CatchHandler @ 0023edf4 */
  FUN_00072b90(piVar6,param_2,pcVar7,0);
  piVar6[6] = 0;
  piVar6[7] = (int)(piVar6 + 9);
                    /* try { // try from 0023edaa to 0023edae has its CatchHandler @ 0023edef */
  FUN_00072b90(piVar6 + 7,"","",0);
  *(undefined1 *)(piVar6 + 0xd) = 0;
  piVar6[0x12] = 0;
  *(undefined1 *)(piVar6 + 0xe) = uVar1;
  *param_1 = piVar6;
  *(undefined1 *)((int)piVar6 + 0x39) = uVar2;
  piVar6[0xf] = iVar5;
  *(undefined1 *)(piVar6 + 0x10) = uVar3;
  piVar6[0x11] = iVar4;
  return;
}

