
/* 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, Task * task, char * name, uchar *
   contents, off_t size) */

void __thiscall
gold::Input_file::Input_file(Input_file *this,Task *task,char *name,uchar *contents,off_t size)

{
  _Rb_tree_header *p_Var1;
  Saved_views *pSVar2;
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *paVar3;
  bool bVar4;
  bool bVar5;
  bool bVar6;
  Incremental_disposition IVar7;
  Object_format OVar8;
  Input_file_argument *pIVar9;
  char *pcVar10;
  size_t sVar11;
  int iVar12;
  basic_string<char,_std::char_traits<char>,_std::allocator<char>_> local_34;
  
  (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->found_name_)._M_string_length = 0;
  (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_header._M_right = &p_Var1->_M_header;
  pSVar2 = &(this->file_).saved_views_;
  (this->file_).released_ = true;
  (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;
  bVar4 = Position_dependent_options::default_options_.as_needed_.value;
  (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_).whole_file_view_ = (View *)0x0;
  bVar5 = Position_dependent_options::default_options_.Bdynamic_.value;
                    /* try { // try from 000d4a17 to 000d4a40 has its CatchHandler @ 000d4b7a */
  OVar8 = General_options::format_enum(&Position_dependent_options::default_options_);
  IVar7 = Position_dependent_options::default_options_.incremental_disposition_;
  bVar6 = Position_dependent_options::default_options_.whole_archive_.value;
  pIVar9 = (Input_file_argument *)operator_new(0x4c);
  (pIVar9->name_)._M_dataplus._M_p = (pointer)&(pIVar9->name_).field_2;
  pcVar10 = (char *)0xffffffff;
  if (name != (char *)0x0) {
    sVar11 = strlen(name);
    pcVar10 = name + sVar11;
  }
                    /* try { // try from 000d4a75 to 000d4a79 has its CatchHandler @ 000d4b75 */
  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>_> *)pIVar9,name,
             pcVar10,0);
  pIVar9->type_ = INPUT_FILE_TYPE_FILE;
  (pIVar9->extra_search_path_)._M_dataplus._M_p = (pointer)&(pIVar9->extra_search_path_).field_2;
                    /* try { // try from 000d4a9b to 000d4a9f has its CatchHandler @ 000d4b6b */
  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
  _M_construct<char_const*>(&pIVar9->extra_search_path_,"","",0);
  pIVar9->just_symbols_ = false;
  pIVar9->arg_serial_ = 0;
  (pIVar9->options_).as_needed_ = bVar4;
  this->input_argument_ = pIVar9;
  (pIVar9->options_).Bdynamic_ = bVar5;
  (pIVar9->options_).format_enum_ = OVar8;
  (pIVar9->options_).whole_archive_ = bVar6;
  (pIVar9->options_).incremental_disposition_ = IVar7;
  paVar3 = &local_34.field_2;
  local_34._M_dataplus._M_p = (pointer)paVar3;
  if (name == (char *)0x0) {
    pcVar10 = (char *)0xffffffff;
  }
  else {
    sVar11 = strlen(name);
    pcVar10 = name + sVar11;
  }
                    /* try { // try from 000d4afc to 000d4b00 has its CatchHandler @ 000d4b7a */
  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
  _M_construct<char_const*>(&local_34,name,pcVar10,0);
                    /* try { // try from 000d4b13 to 000d4b17 has its CatchHandler @ 000d4b70 */
  iVar12 = File_read::open(&this->file_,(char *)task,(int)&local_34,contents,(undefined4)size,
                           size._4_4_);
  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
       *)local_34._M_dataplus._M_p != paVar3) {
    operator_delete(local_34._M_dataplus._M_p);
  }
  if ((char)iVar12 != '\0') {
    return;
  }
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 000d4b66 to 000d4b6a has its CatchHandler @ 000d4b7a */
  do_gold_unreachable("../../gold/fileread.cc",0x37b,"Input_file");
}



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

void FUN_000d4920(undefined4 *param_1,undefined4 param_2,char *param_3,undefined4 param_4,
                 undefined4 param_5,undefined4 param_6)

{
  undefined1 uVar1;
  undefined1 uVar2;
  undefined1 uVar3;
  int iVar4;
  char cVar5;
  int iVar6;
  int *piVar7;
  char *pcVar8;
  size_t sVar9;
  undefined1 *extraout_EDX;
  undefined1 *puVar10;
  undefined1 *local_34 [2];
  undefined1 local_2c [28];
  
  param_1[1] = param_1 + 3;
  param_1[7] = param_1 + 9;
  param_1[0x1a] = param_1 + 0x18;
  param_1[2] = 0;
  *(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[0x1b] = param_1 + 0x18;
  *(undefined1 *)(param_1 + 0x21) = 1;
  param_1[0x1e] = param_1 + 0x1d;
  param_1[0x1d] = param_1 + 0x1d;
  uVar1 = DAT_00414a95;
  param_1[0x1c] = 0;
  param_1[0x1f] = 0;
  param_1[0x20] = 0;
  param_1[0x22] = 0;
  uVar2 = DAT_00414ce9;
                    /* try { // try from 000d4a17 to 000d4a40 has its CatchHandler @ 000d4b7a */
  iVar6 = FUN_0014c1a0(&DAT_004147a0);
  iVar4 = DAT_0041a1b4;
  uVar3 = DAT_004191cd;
  piVar7 = (int *)FUN_00246670(0x4c);
  *piVar7 = (int)(piVar7 + 2);
  pcVar8 = (char *)0xffffffff;
  if (param_3 != (char *)0x0) {
    sVar9 = strlen(param_3);
    pcVar8 = param_3 + sVar9;
  }
                    /* try { // try from 000d4a75 to 000d4a79 has its CatchHandler @ 000d4b75 */
  FUN_000a8880(piVar7,param_3,pcVar8,0);
  piVar7[6] = 0;
  piVar7[7] = (int)(piVar7 + 9);
                    /* try { // try from 000d4a9b to 000d4a9f has its CatchHandler @ 000d4b6b */
  FUN_000a8880(piVar7 + 7,"","",0);
  *(undefined1 *)(piVar7 + 0xd) = 0;
  piVar7[0x12] = 0;
  *(undefined1 *)(piVar7 + 0xe) = uVar1;
  *param_1 = piVar7;
  *(undefined1 *)((int)piVar7 + 0x39) = uVar2;
  piVar7[0xf] = iVar6;
  *(undefined1 *)(piVar7 + 0x10) = uVar3;
  piVar7[0x11] = iVar4;
  local_34[0] = local_2c;
  if (param_3 == (char *)0x0) {
    pcVar8 = (char *)0xffffffff;
  }
  else {
    sVar9 = strlen(param_3);
    pcVar8 = param_3 + sVar9;
  }
                    /* try { // try from 000d4afc to 000d4b00 has its CatchHandler @ 000d4b7a */
  FUN_000a8880(local_34,param_3,pcVar8,0);
                    /* try { // try from 000d4b13 to 000d4b17 has its CatchHandler @ 000d4b70 */
  cVar5 = FUN_000d3d70(param_1 + 7,param_2,local_34,param_4,param_5,param_6);
  puVar10 = local_34[0];
  if (local_34[0] != local_2c) {
    FUN_00248220(local_34[0]);
    puVar10 = extraout_EDX;
  }
  if (cVar5 != '\0') {
    return;
  }
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 000d4b66 to 000d4b6a has its CatchHandler @ 000d4b7a */
  FUN_000da200("../../gold/fileread.cc",0x37b,"Input_file",puVar10);
}


CALL 0x000b484a
ADD ECX,0x33f6db
PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
PUSH EBX
MOV EBX,ECX
SUB ESP,0x68
MOV ESI,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EBP + 0x18]
MOV dword ptr [EBP + -0x3c],ECX
MOV EDX,dword ptr [EBP + 0x1c]
MOV dword ptr [EBP + -0x58],EAX
LEA EAX,[ESI + 0xc]
MOV dword ptr [EBP + -0x50],EAX
MOV dword ptr [ESI + 0x4],EAX
LEA EAX,[ESI + 0x1c]
MOV dword ptr [EBP + -0x40],EAX
LEA EAX,[ESI + 0x24]
MOV dword ptr [ESI + 0x1c],EAX
LEA EAX,[ESI + 0x60]
MOV dword ptr [ESI + 0x68],EAX
MOV dword ptr [EBP + -0x54],EDX
MOV dword ptr [ESI + 0x8],0x0
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 + 0x6c],EAX
LEA EDI,[ECX + 0x7a0]
LEA EAX,[ESI + 0x74]
MOV byte ptr [ESI + 0x84],0x1
MOV dword ptr [ESI + 0x78],EAX
MOV dword ptr [ESI + 0x74],EAX
MOVZX EAX,byte ptr [EDI + 0x2f5]
MOV dword ptr [ESI + 0x70],0x0
MOV dword ptr [ESI + 0x7c],0x0
MOV dword ptr [ESI + 0x80],0x0
MOV dword ptr [ESI + 0x88],0x0
MOV byte ptr [EBP + -0x4b],AL
MOVZX EAX,byte ptr [EDI + 0x549]
PUSH EDI
MOV byte ptr [EBP + -0x4a],AL
CALL 0x0014c1a0
MOV dword ptr [EBP + -0x44],EAX
MOVZX EAX,byte ptr [EDI + 0x4a2d]
MOV EBX,dword ptr [EBP + -0x3c]
MOV byte ptr [EBP + -0x49],AL
MOV EAX,dword ptr [EDI + 0x5a14]
MOV dword ptr [ESP],0x4c
MOV dword ptr [EBP + -0x48],EAX
CALL 0x00246670
MOV EDX,dword ptr [EBP + 0x10]
MOV EDI,EAX
LEA EAX,[EAX + 0x8]
ADD ESP,0x10
MOV dword ptr [EBP + -0x5c],EAX
MOV dword ptr [EDI],EAX
MOV EAX,0xffffffff
TEST EDX,EDX
JZ 0x000d4a6e
SUB ESP,0xc
PUSH dword ptr [EBP + 0x10]
MOV EBX,dword ptr [EBP + -0x3c]
CALL 0x0002c330
ADD ESP,0x10
ADD EAX,dword ptr [EBP + 0x10]
PUSH 0x0
PUSH EAX
PUSH dword ptr [EBP + 0x10]
PUSH EDI
CALL 0x000a8880
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 + -0x3c]
PUSH 0x0
LEA EAX,[EAX + 0xffefd1b6]
PUSH EAX
PUSH EAX
PUSH EDX
CALL 0x000a8880
MOVZX EAX,byte ptr [EBP + -0x4b]
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 + -0x4a]
MOV dword ptr [ESI],EDI
MOV byte ptr [EDI + 0x39],AL
MOV EAX,dword ptr [EBP + -0x44]
MOV dword ptr [EDI + 0x3c],EAX
MOVZX EAX,byte ptr [EBP + -0x49]
MOV byte ptr [EDI + 0x40],AL
MOV EAX,dword ptr [EBP + -0x48]
MOV dword ptr [EDI + 0x44],EAX
MOV EAX,dword ptr [EBP + 0x10]
LEA EDI,[EBP + -0x28]
MOV dword ptr [EBP + -0x30],EDI
TEST EAX,EAX
JZ 0x000d4b48
SUB ESP,0xc
PUSH dword ptr [EBP + 0x10]
MOV EBX,dword ptr [EBP + -0x3c]
CALL 0x0002c330
ADD ESP,0x10
ADD EAX,dword ptr [EBP + 0x10]
LEA EBX,[EBP + -0x30]
PUSH 0x0
PUSH EAX
PUSH dword ptr [EBP + 0x10]
PUSH EBX
CALL 0x000a8880
POP ECX
POP EAX
PUSH dword ptr [EBP + -0x54]
PUSH dword ptr [EBP + -0x58]
PUSH dword ptr [EBP + 0x14]
PUSH EBX
PUSH dword ptr [EBP + 0xc]
PUSH dword ptr [EBP + -0x40]
CALL 0x000d3d70
MOV EDX,dword ptr [EBP + -0x30]
ADD ESP,0x20
CMP EDX,EDI
JZ 0x000d4b38
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x3c]
MOV byte ptr [EBP + -0x44],AL
PUSH EDX
CALL 0x00248220
MOVZX EAX,byte ptr [EBP + -0x44]
ADD ESP,0x10
TEST AL,AL
JZ 0x000d4b4f
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,0xffffffff
JMP 0x000d4af2
MOV EBX,dword ptr [EBP + -0x3c]
PUSH EDX
LEA EAX,[EBX + 0xffee5f08]
PUSH EAX
LEA EAX,[EBX + 0xffee5ca4]
PUSH 0x37b
PUSH EAX
CALL 0x000da200
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.cx replaced with injection: get_pc_thunk_cx */\n\nvoid FUN_000d4920(undefined4 *param_1,undefined4 param_2,char *param_3,undefined4 param_4,\n                 undefined4 param_5,undefined4 param_6)\n\n{\n  undefined1 uVar1;\n  undefined1 uVar2;\n  undefined1 uVar3;\n  int iVar4;\n  char cVar5;\n  int iVar6;\n  int *piVar7;\n  char *pcVar8;\n  size_t sVar9;\n  undefined1 *extraout_EDX;\n  undefined1 *puVar10;\n  undefined1 *local_34 [2];\n  undefined1 local_2c [28];\n  \n  param_1[1] = param_1 + 3;\n  param_1[7] = param_1 + 9;\n  param_1[0x1a] = param_1 + 0x18;\n  param_1[2] = 0;\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[0x1b] = param_1 + 0x18;\n  *(undefined1 *)(param_1 + 0x21) = 1;\n  param_1[0x1e] = param_1 + 0x1d;\n  param_1[0x1d] = param_1 + 0x1d;\n  uVar1 = DAT_00414a95;\n  param_1[0x1c] = 0;\n  param_1[0x1f] = 0;\n  param_1[0x20] = 0;\n  param_1[0x22] = 0;\n  uVar2 = DAT_00414ce9;\n                    /* try { // try from 000d4a17 to 000d4a40 has its CatchHandler @ 000d4b7a */\n  iVar6 = FUN_0014c1a0(&DAT_004147a0);\n  iVar4 = DAT_0041a1b4;\n  uVar3 = DAT_004191cd;\n  piVar7 = (int *)FUN_00246670(0x4c);\n  *piVar7 = (int)(piVar7 + 2);\n  pcVar8 = (char *)0xffffffff;\n  if (param_3 != (char *)0x0) {\n    sVar9 = strlen(param_3);\n    pcVar8 = param_3 + sVar9;\n  }\n                    /* try { // try from 000d4a75 to 000d4a79 has its CatchHandler @ 000d4b75 */\n  FUN_000a8880(piVar7,param_3,pcVar8,0);\n  piVar7[6] = 0;\n  piVar7[7] = (int)(piVar7 + 9);\n                    /* try { // try from 000d4a9b to 000d4a9f has its CatchHandler @ 000d4b6b */\n  FUN_000a8880(piVar7 + 7,"","",0);\n  *(undefined1 *)(piVar7 + 0xd) = 0;\n  piVar7[0x12] = 0;\n  *(undefined1 *)(piVar7 + 0xe) = uVar1;\n  *param_1 = piVar7;\n  *(undefined1 *)((int)piVar7 + 0x39) = uVar2;\n  piVar7[0xf] = iVar6;\n  *(undefined1 *)(piVar7 + 0x10) = uVar3;\n  piVar7[0x11] = iVar4;\n  local_34[0] = local_2c;\n  if (param_3 == (char *)0x0) {\n    pcVar8 = (char *)0xffffffff;\n  }\n  else {\n    sVar9 = strlen(param_3);\n    pcVar8 = param_3 + sVar9;\n  }\n                    /* try { // try from 000d4afc to 000d4b00 has its CatchHandler @ 000d4b7a */\n  FUN_000a8880(local_34,param_3,pcVar8,0);\n                    /* try { // try from 000d4b13 to 000d4b17 has its CatchHandler @ 000d4b70 */\n  cVar5 = FUN_000d3d70(param_1 + 7,param_2,local_34,param_4,param_5,param_6);\n  puVar10 = local_34[0];\n  if (local_34[0] != local_2c) {\n    FUN_00248220(local_34[0]);\n    puVar10 = extraout_EDX;\n  }\n  if (cVar5 != '\0') {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000d4b66 to 000d4b6a has its CatchHandler @ 000d4b7a */\n  FUN_000da200("../../gold/fileread.cc",0x37b,"Input_file",puVar10);\n}\n\n" comment (function_definition "void FUN_000d4920(undefined4 *param_1,undefined4 param_2,char *param_3,undefined4 param_4,\n                 undefined4 param_5,undefined4 param_6)\n\n{\n  undefined1 uVar1;\n  undefined1 uVar2;\n  undefined1 uVar3;\n  int iVar4;\n  char cVar5;\n  int iVar6;\n  int *piVar7;\n  char *pcVar8;\n  size_t sVar9;\n  undefined1 *extraout_EDX;\n  undefined1 *puVar10;\n  undefined1 *local_34 [2];\n  undefined1 local_2c [28];\n  \n  param_1[1] = param_1 + 3;\n  param_1[7] = param_1 + 9;\n  param_1[0x1a] = param_1 + 0x18;\n  param_1[2] = 0;\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[0x1b] = param_1 + 0x18;\n  *(undefined1 *)(param_1 + 0x21) = 1;\n  param_1[0x1e] = param_1 + 0x1d;\n  param_1[0x1d] = param_1 + 0x1d;\n  uVar1 = DAT_00414a95;\n  param_1[0x1c] = 0;\n  param_1[0x1f] = 0;\n  param_1[0x20] = 0;\n  param_1[0x22] = 0;\n  uVar2 = DAT_00414ce9;\n                    /* try { // try from 000d4a17 to 000d4a40 has its CatchHandler @ 000d4b7a */\n  iVar6 = FUN_0014c1a0(&DAT_004147a0);\n  iVar4 = DAT_0041a1b4;\n  uVar3 = DAT_004191cd;\n  piVar7 = (int *)FUN_00246670(0x4c);\n  *piVar7 = (int)(piVar7 + 2);\n  pcVar8 = (char *)0xffffffff;\n  if (param_3 != (char *)0x0) {\n    sVar9 = strlen(param_3);\n    pcVar8 = param_3 + sVar9;\n  }\n                    /* try { // try from 000d4a75 to 000d4a79 has its CatchHandler @ 000d4b75 */\n  FUN_000a8880(piVar7,param_3,pcVar8,0);\n  piVar7[6] = 0;\n  piVar7[7] = (int)(piVar7 + 9);\n                    /* try { // try from 000d4a9b to 000d4a9f has its CatchHandler @ 000d4b6b */\n  FUN_000a8880(piVar7 + 7,"","",0);\n  *(undefined1 *)(piVar7 + 0xd) = 0;\n  piVar7[0x12] = 0;\n  *(undefined1 *)(piVar7 + 0xe) = uVar1;\n  *param_1 = piVar7;\n  *(undefined1 *)((int)piVar7 + 0x39) = uVar2;\n  piVar7[0xf] = iVar6;\n  *(undefined1 *)(piVar7 + 0x10) = uVar3;\n  piVar7[0x11] = iVar4;\n  local_34[0] = local_2c;\n  if (param_3 == (char *)0x0) {\n    pcVar8 = (char *)0xffffffff;\n  }\n  else {\n    sVar9 = strlen(param_3);\n    pcVar8 = param_3 + sVar9;\n  }\n                    /* try { // try from 000d4afc to 000d4b00 has its CatchHandler @ 000d4b7a */\n  FUN_000a8880(local_34,param_3,pcVar8,0);\n                    /* try { // try from 000d4b13 to 000d4b17 has its CatchHandler @ 000d4b70 */\n  cVar5 = FUN_000d3d70(param_1 + 7,param_2,local_34,param_4,param_5,param_6);\n  puVar10 = local_34[0];\n  if (local_34[0] != local_2c) {\n    FUN_00248220(local_34[0]);\n    puVar10 = extraout_EDX;\n  }\n  if (cVar5 != '\0') {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000d4b66 to 000d4b6a has its CatchHandler @ 000d4b7a */\n  FUN_000da200("../../gold/fileread.cc",0x37b,"Input_file",puVar10);\n}" primitive_type (function_declarator "FUN_000d4920(undefined4 *param_1,undefined4 param_2,char *param_3,undefined4 param_4,\n                 undefined4 param_5,undefined4 param_6)" identifier (parameter_list "(undefined4 *param_1,undefined4 param_2,char *param_3,undefined4 param_4,\n                 undefined4 param_5,undefined4 param_6)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) ))) (compound_statement "{\n  undefined1 uVar1;\n  undefined1 uVar2;\n  undefined1 uVar3;\n  int iVar4;\n  char cVar5;\n  int iVar6;\n  int *piVar7;\n  char *pcVar8;\n  size_t sVar9;\n  undefined1 *extraout_EDX;\n  undefined1 *puVar10;\n  undefined1 *local_34 [2];\n  undefined1 local_2c [28];\n  \n  param_1[1] = param_1 + 3;\n  param_1[7] = param_1 + 9;\n  param_1[0x1a] = param_1 + 0x18;\n  param_1[2] = 0;\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[0x1b] = param_1 + 0x18;\n  *(undefined1 *)(param_1 + 0x21) = 1;\n  param_1[0x1e] = param_1 + 0x1d;\n  param_1[0x1d] = param_1 + 0x1d;\n  uVar1 = DAT_00414a95;\n  param_1[0x1c] = 0;\n  param_1[0x1f] = 0;\n  param_1[0x20] = 0;\n  param_1[0x22] = 0;\n  uVar2 = DAT_00414ce9;\n                    /* try { // try from 000d4a17 to 000d4a40 has its CatchHandler @ 000d4b7a */\n  iVar6 = FUN_0014c1a0(&DAT_004147a0);\n  iVar4 = DAT_0041a1b4;\n  uVar3 = DAT_004191cd;\n  piVar7 = (int *)FUN_00246670(0x4c);\n  *piVar7 = (int)(piVar7 + 2);\n  pcVar8 = (char *)0xffffffff;\n  if (param_3 != (char *)0x0) {\n    sVar9 = strlen(param_3);\n    pcVar8 = param_3 + sVar9;\n  }\n                    /* try { // try from 000d4a75 to 000d4a79 has its CatchHandler @ 000d4b75 */\n  FUN_000a8880(piVar7,param_3,pcVar8,0);\n  piVar7[6] = 0;\n  piVar7[7] = (int)(piVar7 + 9);\n                    /* try { // try from 000d4a9b to 000d4a9f has its CatchHandler @ 000d4b6b */\n  FUN_000a8880(piVar7 + 7,"","",0);\n  *(undefined1 *)(piVar7 + 0xd) = 0;\n  piVar7[0x12] = 0;\n  *(undefined1 *)(piVar7 + 0xe) = uVar1;\n  *param_1 = piVar7;\n  *(undefined1 *)((int)piVar7 + 0x39) = uVar2;\n  piVar7[0xf] = iVar6;\n  *(undefined1 *)(piVar7 + 0x10) = uVar3;\n  piVar7[0x11] = iVar4;\n  local_34[0] = local_2c;\n  if (param_3 == (char *)0x0) {\n    pcVar8 = (char *)0xffffffff;\n  }\n  else {\n    sVar9 = strlen(param_3);\n    pcVar8 = param_3 + sVar9;\n  }\n                    /* try { // try from 000d4afc to 000d4b00 has its CatchHandler @ 000d4b7a */\n  FUN_000a8880(local_34,param_3,pcVar8,0);\n                    /* try { // try from 000d4b13 to 000d4b17 has its CatchHandler @ 000d4b70 */\n  cVar5 = FUN_000d3d70(param_1 + 7,param_2,local_34,param_4,param_5,param_6);\n  puVar10 = local_34[0];\n  if (local_34[0] != local_2c) {\n    FUN_00248220(local_34[0]);\n    puVar10 = extraout_EDX;\n  }\n  if (cVar5 != '\0') {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000d4b66 to 000d4b6a has its CatchHandler @ 000d4b7a */\n  FUN_000da200("../../gold/fileread.cc",0x37b,"Input_file",puVar10);\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 "char cVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "size_t sVar9;" primitive_type identifier ;) (declaration "undefined1 *extraout_EDX;" type_identifier (pointer_declarator "*extraout_EDX" * identifier) ;) (declaration "undefined1 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined1 *local_34 [2];" type_identifier (pointer_declarator "*local_34 [2]" * (array_declarator "local_34 [2]" identifier [ number_literal ])) ;) (declaration "undefined1 local_2c [28];" type_identifier (array_declarator "local_2c [28]" identifier [ 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[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = 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[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 "*(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 "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 "uVar1 = DAT_00414a95;" (assignment_expression "uVar1 = DAT_00414a95" identifier = identifier) ;) (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 "param_1[0x22] = 0;" (assignment_expression "param_1[0x22] = 0" (subscript_expression "param_1[0x22]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar2 = DAT_00414ce9;" (assignment_expression "uVar2 = DAT_00414ce9" identifier = identifier) ;) comment (expression_statement "iVar6 = FUN_0014c1a0(&DAT_004147a0);" (assignment_expression "iVar6 = FUN_0014c1a0(&DAT_004147a0)" identifier = (call_expression "FUN_0014c1a0(&DAT_004147a0)" identifier (argument_list "(&DAT_004147a0)" ( (pointer_expression "&DAT_004147a0" & identifier) )))) ;) (expression_statement "iVar4 = DAT_0041a1b4;" (assignment_expression "iVar4 = DAT_0041a1b4" identifier = identifier) ;) (expression_statement "uVar3 = DAT_004191cd;" (assignment_expression "uVar3 = DAT_004191cd" identifier = identifier) ;) (expression_statement "piVar7 = (int *)FUN_00246670(0x4c);" (assignment_expression "piVar7 = (int *)FUN_00246670(0x4c)" identifier = (cast_expression "(int *)FUN_00246670(0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00246670(0x4c)" identifier (argument_list "(0x4c)" ( number_literal ))))) ;) (expression_statement "*piVar7 = (int)(piVar7 + 2);" (assignment_expression "*piVar7 = (int)(piVar7 + 2)" (pointer_expression "*piVar7" * identifier) = (cast_expression "(int)(piVar7 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar7 + 2)" ( (binary_expression "piVar7 + 2" identifier + number_literal) )))) ;) (expression_statement "pcVar8 = (char *)0xffffffff;" (assignment_expression "pcVar8 = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (param_3 != (char *)0x0) {\n    sVar9 = strlen(param_3);\n    pcVar8 = param_3 + sVar9;\n  }" if (parenthesized_expression "(param_3 != (char *)0x0)" ( (binary_expression "param_3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sVar9 = strlen(param_3);\n    pcVar8 = param_3 + sVar9;\n  }" { (expression_statement "sVar9 = strlen(param_3);" (assignment_expression "sVar9 = strlen(param_3)" identifier = (call_expression "strlen(param_3)" identifier (argument_list "(param_3)" ( identifier )))) ;) (expression_statement "pcVar8 = param_3 + sVar9;" (assignment_expression "pcVar8 = param_3 + sVar9" identifier = (binary_expression "param_3 + sVar9" identifier + identifier)) ;) })) comment (expression_statement "FUN_000a8880(piVar7,param_3,pcVar8,0);" (call_expression "FUN_000a8880(piVar7,param_3,pcVar8,0)" identifier (argument_list "(piVar7,param_3,pcVar8,0)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "piVar7[6] = 0;" (assignment_expression "piVar7[6] = 0" (subscript_expression "piVar7[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar7[7] = (int)(piVar7 + 9);" (assignment_expression "piVar7[7] = (int)(piVar7 + 9)" (subscript_expression "piVar7[7]" identifier [ number_literal ]) = (cast_expression "(int)(piVar7 + 9)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar7 + 9)" ( (binary_expression "piVar7 + 9" identifier + number_literal) )))) ;) comment (expression_statement "FUN_000a8880(piVar7 + 7,"","",0);" (call_expression "FUN_000a8880(piVar7 + 7,"","",0)" identifier (argument_list "(piVar7 + 7,"","",0)" ( (binary_expression "piVar7 + 7" identifier + number_literal) , (string_literal """" " ") , (string_literal """" " ") , number_literal ))) ;) (expression_statement "*(undefined1 *)(piVar7 + 0xd) = 0;" (assignment_expression "*(undefined1 *)(piVar7 + 0xd) = 0" (pointer_expression "*(undefined1 *)(piVar7 + 0xd)" * (cast_expression "(undefined1 *)(piVar7 + 0xd)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar7 + 0xd)" ( (binary_expression "piVar7 + 0xd" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar7[0x12] = 0;" (assignment_expression "piVar7[0x12] = 0" (subscript_expression "piVar7[0x12]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(piVar7 + 0xe) = uVar1;" (assignment_expression "*(undefined1 *)(piVar7 + 0xe) = uVar1" (pointer_expression "*(undefined1 *)(piVar7 + 0xe)" * (cast_expression "(undefined1 *)(piVar7 + 0xe)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar7 + 0xe)" ( (binary_expression "piVar7 + 0xe" identifier + number_literal) )))) = identifier) ;) (expression_statement "*param_1 = piVar7;" (assignment_expression "*param_1 = piVar7" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "*(undefined1 *)((int)piVar7 + 0x39) = uVar2;" (assignment_expression "*(undefined1 *)((int)piVar7 + 0x39) = uVar2" (pointer_expression "*(undefined1 *)((int)piVar7 + 0x39)" * (cast_expression "(undefined1 *)((int)piVar7 + 0x39)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar7 + 0x39)" ( (binary_expression "(int)piVar7 + 0x39" (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "piVar7[0xf] = iVar6;" (assignment_expression "piVar7[0xf] = iVar6" (subscript_expression "piVar7[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(piVar7 + 0x10) = uVar3;" (assignment_expression "*(undefined1 *)(piVar7 + 0x10) = uVar3" (pointer_expression "*(undefined1 *)(piVar7 + 0x10)" * (cast_expression "(undefined1 *)(piVar7 + 0x10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar7 + 0x10)" ( (binary_expression "piVar7 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar7[0x11] = iVar4;" (assignment_expression "piVar7[0x11] = iVar4" (subscript_expression "piVar7[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_34[0] = local_2c;" (assignment_expression "local_34[0] = local_2c" (subscript_expression "local_34[0]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (param_3 == (char *)0x0) {\n    pcVar8 = (char *)0xffffffff;\n  }\n  else {\n    sVar9 = strlen(param_3);\n    pcVar8 = param_3 + sVar9;\n  }" if (parenthesized_expression "(param_3 == (char *)0x0)" ( (binary_expression "param_3 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar8 = (char *)0xffffffff;\n  }" { (expression_statement "pcVar8 = (char *)0xffffffff;" (assignment_expression "pcVar8 = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    sVar9 = strlen(param_3);\n    pcVar8 = param_3 + sVar9;\n  }" else (compound_statement "{\n    sVar9 = strlen(param_3);\n    pcVar8 = param_3 + sVar9;\n  }" { (expression_statement "sVar9 = strlen(param_3);" (assignment_expression "sVar9 = strlen(param_3)" identifier = (call_expression "strlen(param_3)" identifier (argument_list "(param_3)" ( identifier )))) ;) (expression_statement "pcVar8 = param_3 + sVar9;" (assignment_expression "pcVar8 = param_3 + sVar9" identifier = (binary_expression "param_3 + sVar9" identifier + identifier)) ;) }))) comment (expression_statement "FUN_000a8880(local_34,param_3,pcVar8,0);" (call_expression "FUN_000a8880(local_34,param_3,pcVar8,0)" identifier (argument_list "(local_34,param_3,pcVar8,0)" ( identifier , identifier , identifier , number_literal ))) ;) comment (expression_statement "cVar5 = FUN_000d3d70(param_1 + 7,param_2,local_34,param_4,param_5,param_6);" (assignment_expression "cVar5 = FUN_000d3d70(param_1 + 7,param_2,local_34,param_4,param_5,param_6)" identifier = (call_expression "FUN_000d3d70(param_1 + 7,param_2,local_34,param_4,param_5,param_6)" identifier (argument_list "(param_1 + 7,param_2,local_34,param_4,param_5,param_6)" ( (binary_expression "param_1 + 7" identifier + number_literal) , identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "puVar10 = local_34[0];" (assignment_expression "puVar10 = local_34[0]" identifier = (subscript_expression "local_34[0]" identifier [ number_literal ])) ;) (if_statement "if (local_34[0] != local_2c) {\n    FUN_00248220(local_34[0]);\n    puVar10 = extraout_EDX;\n  }" if (parenthesized_expression "(local_34[0] != local_2c)" ( (binary_expression "local_34[0] != local_2c" (subscript_expression "local_34[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n    FUN_00248220(local_34[0]);\n    puVar10 = extraout_EDX;\n  }" { (expression_statement "FUN_00248220(local_34[0]);" (call_expression "FUN_00248220(local_34[0])" identifier (argument_list "(local_34[0])" ( (subscript_expression "local_34[0]" identifier [ number_literal ]) ))) ;) (expression_statement "puVar10 = extraout_EDX;" (assignment_expression "puVar10 = extraout_EDX" identifier = identifier) ;) })) (if_statement "if (cVar5 != '\0') {\n    return;\n  }" if (parenthesized_expression "(cVar5 != '\0')" ( (binary_expression "cVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) comment comment (expression_statement "FUN_000da200("../../gold/fileread.cc",0x37b,"Input_file",puVar10);" (call_expression "FUN_000da200("../../gold/fileread.cc",0x37b,"Input_file",puVar10)" identifier (argument_list "("../../gold/fileread.cc",0x37b,"Input_file",puVar10)" ( (string_literal ""../../gold/fileread.cc"" " string_content ") , number_literal , (string_literal ""Input_file"" " string_content ") , identifier ))) ;) })))
(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, Task * task, char * name, uchar *\n   contents, off_t size) */\n\nvoid __thiscall\ngold::Input_file::Input_file(Input_file *this,Task *task,char *name,uchar *contents,off_t size)\n\n{\n  _Rb_tree_header *p_Var1;\n  Saved_views *pSVar2;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar3;\n  bool bVar4;\n  bool bVar5;\n  bool bVar6;\n  Incremental_disposition IVar7;\n  Object_format OVar8;\n  Input_file_argument *pIVar9;\n  char *pcVar10;\n  size_t sVar11;\n  int iVar12;\n  basic_string<char,_std::char_traits<char>,_std::allocator<char>_> local_34;\n  \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->found_name_)._M_string_length = 0;\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_header._M_right = &p_Var1->_M_header;\n  pSVar2 = &(this->file_).saved_views_;\n  (this->file_).released_ = true;\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  bVar4 = Position_dependent_options::default_options_.as_needed_.value;\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_).whole_file_view_ = (View *)0x0;\n  bVar5 = Position_dependent_options::default_options_.Bdynamic_.value;\n                    /* try { // try from 000d4a17 to 000d4a40 has its CatchHandler @ 000d4b7a */\n  OVar8 = General_options::format_enum(&Position_dependent_options::default_options_);\n  IVar7 = Position_dependent_options::default_options_.incremental_disposition_;\n  bVar6 = Position_dependent_options::default_options_.whole_archive_.value;\n  pIVar9 = (Input_file_argument *)operator_new(0x4c);\n  (pIVar9->name_)._M_dataplus._M_p = (pointer)&(pIVar9->name_).field_2;\n  pcVar10 = (char *)0xffffffff;\n  if (name != (char *)0x0) {\n    sVar11 = strlen(name);\n    pcVar10 = name + sVar11;\n  }\n                    /* try { // try from 000d4a75 to 000d4a79 has its CatchHandler @ 000d4b75 */\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>_> *)pIVar9,name,\n             pcVar10,0);\n  pIVar9->type_ = INPUT_FILE_TYPE_FILE;\n  (pIVar9->extra_search_path_)._M_dataplus._M_p = (pointer)&(pIVar9->extra_search_path_).field_2;\n                    /* try { // try from 000d4a9b to 000d4a9f has its CatchHandler @ 000d4b6b */\n  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>(&pIVar9->extra_search_path_,"","",0);\n  pIVar9->just_symbols_ = false;\n  pIVar9->arg_serial_ = 0;\n  (pIVar9->options_).as_needed_ = bVar4;\n  this->input_argument_ = pIVar9;\n  (pIVar9->options_).Bdynamic_ = bVar5;\n  (pIVar9->options_).format_enum_ = OVar8;\n  (pIVar9->options_).whole_archive_ = bVar6;\n  (pIVar9->options_).incremental_disposition_ = IVar7;\n  paVar3 = &local_34.field_2;\n  local_34._M_dataplus._M_p = (pointer)paVar3;\n  if (name == (char *)0x0) {\n    pcVar10 = (char *)0xffffffff;\n  }\n  else {\n    sVar11 = strlen(name);\n    pcVar10 = name + sVar11;\n  }\n                    /* try { // try from 000d4afc to 000d4b00 has its CatchHandler @ 000d4b7a */\n  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>(&local_34,name,pcVar10,0);\n                    /* try { // try from 000d4b13 to 000d4b17 has its CatchHandler @ 000d4b70 */\n  iVar12 = File_read::open(&this->file_,(char *)task,(int)&local_34,contents,(undefined4)size,\n                           size._4_4_);\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)local_34._M_dataplus._M_p != paVar3) {\n    operator_delete(local_34._M_dataplus._M_p);\n  }\n  if ((char)iVar12 != '\0') {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000d4b66 to 000d4b6a has its CatchHandler @ 000d4b7a */\n  do_gold_unreachable("../../gold/fileread.cc",0x37b,"Input_file");\n}\n\n" comment comment comment comment (function_definition "void __thiscall\ngold::Input_file::Input_file(Input_file *this,Task *task,char *name,uchar *contents,off_t size)\n\n{\n  _Rb_tree_header *p_Var1;\n  Saved_views *pSVar2;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar3;\n  bool bVar4;\n  bool bVar5;\n  bool bVar6;\n  Incremental_disposition IVar7;\n  Object_format OVar8;\n  Input_file_argument *pIVar9;\n  char *pcVar10;\n  size_t sVar11;\n  int iVar12;\n  basic_string<char,_std::char_traits<char>,_std::allocator<char>_> local_34;\n  \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->found_name_)._M_string_length = 0;\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_header._M_right = &p_Var1->_M_header;\n  pSVar2 = &(this->file_).saved_views_;\n  (this->file_).released_ = true;\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  bVar4 = Position_dependent_options::default_options_.as_needed_.value;\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_).whole_file_view_ = (View *)0x0;\n  bVar5 = Position_dependent_options::default_options_.Bdynamic_.value;\n                    /* try { // try from 000d4a17 to 000d4a40 has its CatchHandler @ 000d4b7a */\n  OVar8 = General_options::format_enum(&Position_dependent_options::default_options_);\n  IVar7 = Position_dependent_options::default_options_.incremental_disposition_;\n  bVar6 = Position_dependent_options::default_options_.whole_archive_.value;\n  pIVar9 = (Input_file_argument *)operator_new(0x4c);\n  (pIVar9->name_)._M_dataplus._M_p = (pointer)&(pIVar9->name_).field_2;\n  pcVar10 = (char *)0xffffffff;\n  if (name != (char *)0x0) {\n    sVar11 = strlen(name);\n    pcVar10 = name + sVar11;\n  }\n                    /* try { // try from 000d4a75 to 000d4a79 has its CatchHandler @ 000d4b75 */\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>_> *)pIVar9,name,\n             pcVar10,0);\n  pIVar9->type_ = INPUT_FILE_TYPE_FILE;\n  (pIVar9->extra_search_path_)._M_dataplus._M_p = (pointer)&(pIVar9->extra_search_path_).field_2;\n                    /* try { // try from 000d4a9b to 000d4a9f has its CatchHandler @ 000d4b6b */\n  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>(&pIVar9->extra_search_path_,"","",0);\n  pIVar9->just_symbols_ = false;\n  pIVar9->arg_serial_ = 0;\n  (pIVar9->options_).as_needed_ = bVar4;\n  this->input_argument_ = pIVar9;\n  (pIVar9->options_).Bdynamic_ = bVar5;\n  (pIVar9->options_).format_enum_ = OVar8;\n  (pIVar9->options_).whole_archive_ = bVar6;\n  (pIVar9->options_).incremental_disposition_ = IVar7;\n  paVar3 = &local_34.field_2;\n  local_34._M_dataplus._M_p = (pointer)paVar3;\n  if (name == (char *)0x0) {\n    pcVar10 = (char *)0xffffffff;\n  }\n  else {\n    sVar11 = strlen(name);\n    pcVar10 = name + sVar11;\n  }\n                    /* try { // try from 000d4afc to 000d4b00 has its CatchHandler @ 000d4b7a */\n  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>(&local_34,name,pcVar10,0);\n                    /* try { // try from 000d4b13 to 000d4b17 has its CatchHandler @ 000d4b70 */\n  iVar12 = File_read::open(&this->file_,(char *)task,(int)&local_34,contents,(undefined4)size,\n                           size._4_4_);\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)local_34._M_dataplus._M_p != paVar3) {\n    operator_delete(local_34._M_dataplus._M_p);\n  }\n  if ((char)iVar12 != '\0') {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000d4b66 to 000d4b6a has its CatchHandler @ 000d4b7a */\n  do_gold_unreachable("../../gold/fileread.cc",0x37b,"Input_file");\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Input_file::" identifier : : identifier : :) (function_declarator "Input_file(Input_file *this,Task *task,char *name,uchar *contents,off_t size)" identifier (parameter_list "(Input_file *this,Task *task,char *name,uchar *contents,off_t size)" ( (parameter_declaration "Input_file *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Task *task" type_identifier (pointer_declarator "*task" * identifier)) , (parameter_declaration "char *name" primitive_type (pointer_declarator "*name" * identifier)) , (parameter_declaration "uchar *contents" type_identifier (pointer_declarator "*contents" * identifier)) , (parameter_declaration "off_t size" type_identifier identifier) ))) (compound_statement "{\n  _Rb_tree_header *p_Var1;\n  Saved_views *pSVar2;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar3;\n  bool bVar4;\n  bool bVar5;\n  bool bVar6;\n  Incremental_disposition IVar7;\n  Object_format OVar8;\n  Input_file_argument *pIVar9;\n  char *pcVar10;\n  size_t sVar11;\n  int iVar12;\n  basic_string<char,_std::char_traits<char>,_std::allocator<char>_> local_34;\n  \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->found_name_)._M_string_length = 0;\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_header._M_right = &p_Var1->_M_header;\n  pSVar2 = &(this->file_).saved_views_;\n  (this->file_).released_ = true;\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  bVar4 = Position_dependent_options::default_options_.as_needed_.value;\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_).whole_file_view_ = (View *)0x0;\n  bVar5 = Position_dependent_options::default_options_.Bdynamic_.value;\n                    /* try { // try from 000d4a17 to 000d4a40 has its CatchHandler @ 000d4b7a */\n  OVar8 = General_options::format_enum(&Position_dependent_options::default_options_);\n  IVar7 = Position_dependent_options::default_options_.incremental_disposition_;\n  bVar6 = Position_dependent_options::default_options_.whole_archive_.value;\n  pIVar9 = (Input_file_argument *)operator_new(0x4c);\n  (pIVar9->name_)._M_dataplus._M_p = (pointer)&(pIVar9->name_).field_2;\n  pcVar10 = (char *)0xffffffff;\n  if (name != (char *)0x0) {\n    sVar11 = strlen(name);\n    pcVar10 = name + sVar11;\n  }\n                    /* try { // try from 000d4a75 to 000d4a79 has its CatchHandler @ 000d4b75 */\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>_> *)pIVar9,name,\n             pcVar10,0);\n  pIVar9->type_ = INPUT_FILE_TYPE_FILE;\n  (pIVar9->extra_search_path_)._M_dataplus._M_p = (pointer)&(pIVar9->extra_search_path_).field_2;\n                    /* try { // try from 000d4a9b to 000d4a9f has its CatchHandler @ 000d4b6b */\n  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>(&pIVar9->extra_search_path_,"","",0);\n  pIVar9->just_symbols_ = false;\n  pIVar9->arg_serial_ = 0;\n  (pIVar9->options_).as_needed_ = bVar4;\n  this->input_argument_ = pIVar9;\n  (pIVar9->options_).Bdynamic_ = bVar5;\n  (pIVar9->options_).format_enum_ = OVar8;\n  (pIVar9->options_).whole_archive_ = bVar6;\n  (pIVar9->options_).incremental_disposition_ = IVar7;\n  paVar3 = &local_34.field_2;\n  local_34._M_dataplus._M_p = (pointer)paVar3;\n  if (name == (char *)0x0) {\n    pcVar10 = (char *)0xffffffff;\n  }\n  else {\n    sVar11 = strlen(name);\n    pcVar10 = name + sVar11;\n  }\n                    /* try { // try from 000d4afc to 000d4b00 has its CatchHandler @ 000d4b7a */\n  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>(&local_34,name,pcVar10,0);\n                    /* try { // try from 000d4b13 to 000d4b17 has its CatchHandler @ 000d4b70 */\n  iVar12 = File_read::open(&this->file_,(char *)task,(int)&local_34,contents,(undefined4)size,\n                           size._4_4_);\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)local_34._M_dataplus._M_p != paVar3) {\n    operator_delete(local_34._M_dataplus._M_p);\n  }\n  if ((char)iVar12 != '\0') {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000d4b66 to 000d4b6a has its CatchHandler @ 000d4b7a */\n  do_gold_unreachable("../../gold/fileread.cc",0x37b,"Input_file");\n}" { (declaration "_Rb_tree_header *p_Var1;" type_identifier (pointer_declarator "*p_Var1" * identifier) ;) (declaration "Saved_views *pSVar2;" type_identifier (pointer_declarator "*pSVar2" * identifier) ;) (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (expression_statement "allocator<char>_>_9\n  *paVar3;" (binary_expression "allocator<char>_>_9\n  *paVar3" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *paVar3" identifier * identifier)) ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "bool bVar6;" primitive_type identifier ;) (declaration "Incremental_disposition IVar7;" type_identifier identifier ;) (declaration "Object_format OVar8;" type_identifier identifier ;) (declaration "Input_file_argument *pIVar9;" type_identifier (pointer_declarator "*pIVar9" * identifier) ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "size_t sVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (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) : :) (expression_statement "allocator<char>_> local_34;" (binary_expression "allocator<char>_> local_34" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) ;) (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->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_).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_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))) ;) (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) ;) (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 "bVar4 = Position_dependent_options::default_options_.as_needed_.value;" (field_expression "bVar4 = Position_dependent_options::default_options_.as_needed_.value" (field_expression "bVar4 = Position_dependent_options::default_options_.as_needed_" (assignment_expression "bVar4 = Position_dependent_options" identifier = identifier) (ERROR "::default_options_" : : identifier) . field_identifier) . field_identifier) ;) (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_).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 "bVar5 = Position_dependent_options::default_options_.Bdynamic_.value;" (field_expression "bVar5 = Position_dependent_options::default_options_.Bdynamic_.value" (field_expression "bVar5 = Position_dependent_options::default_options_.Bdynamic_" (assignment_expression "bVar5 = Position_dependent_options" identifier = identifier) (ERROR "::default_options_" : : identifier) . field_identifier) . field_identifier) ;) comment (ERROR "OVar8 = General_options::" (assignment_expression "OVar8 = 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 "IVar7 = Position_dependent_options::default_options_.incremental_disposition_;" (field_expression "IVar7 = Position_dependent_options::default_options_.incremental_disposition_" (assignment_expression "IVar7 = Position_dependent_options" identifier = identifier) (ERROR "::default_options_" : : identifier) . field_identifier) ;) (expression_statement "bVar6 = Position_dependent_options::default_options_.whole_archive_.value;" (field_expression "bVar6 = Position_dependent_options::default_options_.whole_archive_.value" (field_expression "bVar6 = Position_dependent_options::default_options_.whole_archive_" (assignment_expression "bVar6 = Position_dependent_options" identifier = identifier) (ERROR "::default_options_" : : identifier) . field_identifier) . field_identifier) ;) (expression_statement "pIVar9 = (Input_file_argument *)operator_new(0x4c);" (assignment_expression "pIVar9 = (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 "(pIVar9->name_)._M_dataplus._M_p = (pointer)&(pIVar9->name_).field_2;" (assignment_expression "(pIVar9->name_)._M_dataplus._M_p = (pointer)&(pIVar9->name_).field_2" (field_expression "(pIVar9->name_)._M_dataplus._M_p" (field_expression "(pIVar9->name_)._M_dataplus" (parenthesized_expression "(pIVar9->name_)" ( (field_expression "pIVar9->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (binary_expression "(pointer)&(pIVar9->name_).field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "(pIVar9->name_).field_2" (parenthesized_expression "(pIVar9->name_)" ( (field_expression "pIVar9->name_" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "pcVar10 = (char *)0xffffffff;" (assignment_expression "pcVar10 = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (name != (char *)0x0) {\n    sVar11 = strlen(name);\n    pcVar10 = name + sVar11;\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    sVar11 = strlen(name);\n    pcVar10 = name + sVar11;\n  }" { (expression_statement "sVar11 = strlen(name);" (assignment_expression "sVar11 = strlen(name)" identifier = (call_expression "strlen(name)" identifier (argument_list "(name)" ( identifier )))) ;) (expression_statement "pcVar10 = name + sVar11;" (assignment_expression "pcVar10 = name + sVar11" identifier = (binary_expression "name + sVar11" 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>_> *)pIVar9,name,\n             pcVar10,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>_> *)pIVar9,name,\n             pcVar10,0);" (binary_expression "_M_construct<char_const*>\n            ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)pIVar9,name,\n             pcVar10,0)" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)pIVar9,name,\n             pcVar10,0)" ( (parenthesized_expression "(basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)pIVar9,name,\n             pcVar10,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>_> *)pIVar9,name,\n             pcVar10,0" (binary_expression "allocator<char>_> *)pIVar9" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (pointer_expression "*)pIVar9" * (ERROR ")" )) identifier)) , (comma_expression "name,\n             pcVar10,0" identifier , (comma_expression "pcVar10,0" identifier , number_literal))) )) ))) ;)) (expression_statement "pIVar9->type_ = INPUT_FILE_TYPE_FILE;" (assignment_expression "pIVar9->type_ = INPUT_FILE_TYPE_FILE" (field_expression "pIVar9->type_" identifier -> field_identifier) = identifier) ;) (expression_statement "(pIVar9->extra_search_path_)._M_dataplus._M_p = (pointer)&(pIVar9->extra_search_path_).field_2;" (assignment_expression "(pIVar9->extra_search_path_)._M_dataplus._M_p = (pointer)&(pIVar9->extra_search_path_).field_2" (field_expression "(pIVar9->extra_search_path_)._M_dataplus._M_p" (field_expression "(pIVar9->extra_search_path_)._M_dataplus" (parenthesized_expression "(pIVar9->extra_search_path_)" ( (field_expression "pIVar9->extra_search_path_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (binary_expression "(pointer)&(pIVar9->extra_search_path_).field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "(pIVar9->extra_search_path_).field_2" (parenthesized_expression "(pIVar9->extra_search_path_)" ( (field_expression "pIVar9->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*>(&pIVar9->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*>(&pIVar9->extra_search_path_,"","",0);" (binary_expression "_M_construct<char_const*>(&pIVar9->extra_search_path_,"","",0)" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "(&pIVar9->extra_search_path_,"","",0)" ( (comma_expression "&pIVar9->extra_search_path_,"","",0" (pointer_expression "&pIVar9->extra_search_path_" & (field_expression "pIVar9->extra_search_path_" identifier -> field_identifier)) , (comma_expression ""","",0" (string_literal """" " ") , (comma_expression """,0" (string_literal """" " ") , number_literal))) ))) ;)) (expression_statement "pIVar9->just_symbols_ = false;" (assignment_expression "pIVar9->just_symbols_ = false" (field_expression "pIVar9->just_symbols_" identifier -> field_identifier) = false) ;) (expression_statement "pIVar9->arg_serial_ = 0;" (assignment_expression "pIVar9->arg_serial_ = 0" (field_expression "pIVar9->arg_serial_" identifier -> field_identifier) = number_literal) ;) (expression_statement "(pIVar9->options_).as_needed_ = bVar4;" (assignment_expression "(pIVar9->options_).as_needed_ = bVar4" (field_expression "(pIVar9->options_).as_needed_" (parenthesized_expression "(pIVar9->options_)" ( (field_expression "pIVar9->options_" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "this->input_argument_ = pIVar9;" (assignment_expression "this->input_argument_ = pIVar9" (field_expression "this->input_argument_" identifier -> field_identifier) = identifier) ;) (expression_statement "(pIVar9->options_).Bdynamic_ = bVar5;" (assignment_expression "(pIVar9->options_).Bdynamic_ = bVar5" (field_expression "(pIVar9->options_).Bdynamic_" (parenthesized_expression "(pIVar9->options_)" ( (field_expression "pIVar9->options_" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(pIVar9->options_).format_enum_ = OVar8;" (assignment_expression "(pIVar9->options_).format_enum_ = OVar8" (field_expression "(pIVar9->options_).format_enum_" (parenthesized_expression "(pIVar9->options_)" ( (field_expression "pIVar9->options_" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(pIVar9->options_).whole_archive_ = bVar6;" (assignment_expression "(pIVar9->options_).whole_archive_ = bVar6" (field_expression "(pIVar9->options_).whole_archive_" (parenthesized_expression "(pIVar9->options_)" ( (field_expression "pIVar9->options_" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(pIVar9->options_).incremental_disposition_ = IVar7;" (assignment_expression "(pIVar9->options_).incremental_disposition_ = IVar7" (field_expression "(pIVar9->options_).incremental_disposition_" (parenthesized_expression "(pIVar9->options_)" ( (field_expression "pIVar9->options_" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "paVar3 = &local_34.field_2;" (assignment_expression "paVar3 = &local_34.field_2" identifier = (pointer_expression "&local_34.field_2" & (field_expression "local_34.field_2" identifier . field_identifier))) ;) (expression_statement "local_34._M_dataplus._M_p = (pointer)paVar3;" (assignment_expression "local_34._M_dataplus._M_p = (pointer)paVar3" (field_expression "local_34._M_dataplus._M_p" (field_expression "local_34._M_dataplus" identifier . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar3" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (if_statement "if (name == (char *)0x0) {\n    pcVar10 = (char *)0xffffffff;\n  }\n  else {\n    sVar11 = strlen(name);\n    pcVar10 = name + sVar11;\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    pcVar10 = (char *)0xffffffff;\n  }" { (expression_statement "pcVar10 = (char *)0xffffffff;" (assignment_expression "pcVar10 = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    sVar11 = strlen(name);\n    pcVar10 = name + sVar11;\n  }" else (compound_statement "{\n    sVar11 = strlen(name);\n    pcVar10 = name + sVar11;\n  }" { (expression_statement "sVar11 = strlen(name);" (assignment_expression "sVar11 = strlen(name)" identifier = (call_expression "strlen(name)" identifier (argument_list "(name)" ( identifier )))) ;) (expression_statement "pcVar10 = name + sVar11;" (assignment_expression "pcVar10 = name + sVar11" identifier = (binary_expression "name + sVar11" identifier + identifier)) ;) }))) comment (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>(&local_34,name,pcVar10,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*>(&local_34,name,pcVar10,0);" (binary_expression "_M_construct<char_const*>(&local_34,name,pcVar10,0)" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "(&local_34,name,pcVar10,0)" ( (comma_expression "&local_34,name,pcVar10,0" (pointer_expression "&local_34" & identifier) , (comma_expression "name,pcVar10,0" identifier , (comma_expression "pcVar10,0" identifier , number_literal))) ))) ;)) comment (ERROR "iVar12 = File_read::" (assignment_expression "iVar12 = File_read" identifier = identifier) : :) (expression_statement "open(&this->file_,(char *)task,(int)&local_34,contents,(undefined4)size,\n                           size._4_4_);" (call_expression "open(&this->file_,(char *)task,(int)&local_34,contents,(undefined4)size,\n                           size._4_4_)" identifier (argument_list "(&this->file_,(char *)task,(int)&local_34,contents,(undefined4)size,\n                           size._4_4_)" ( (pointer_expression "&this->file_" & (field_expression "this->file_" identifier -> field_identifier)) , (cast_expression "(char *)task" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(int)&local_34" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_34" & identifier)) , identifier , (cast_expression "(undefined4)size" ( (type_descriptor "undefined4" type_identifier) ) identifier) , (field_expression "size._4_4_" identifier . field_identifier) ))) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)local_34._M_dataplus._M_p != paVar3) {\n    operator_delete(local_34._M_dataplus._M_p);\n  }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)local_34._M_dataplus._M_p != paVar3)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)local_34._M_dataplus._M_p != paVar3)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n       *)local_34._M_dataplus._M_p != paVar3" (binary_expression "allocator<char>_>_9\n       *)local_34._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n       *)local_34._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "local_34._M_dataplus._M_p" (field_expression "local_34._M_dataplus" identifier . field_identifier) . field_identifier))) != identifier) )) )) (compound_statement "{\n    operator_delete(local_34._M_dataplus._M_p);\n  }" { (expression_statement "operator_delete(local_34._M_dataplus._M_p);" (call_expression "operator_delete(local_34._M_dataplus._M_p)" identifier (argument_list "(local_34._M_dataplus._M_p)" ( (field_expression "local_34._M_dataplus._M_p" (field_expression "local_34._M_dataplus" identifier . field_identifier) . field_identifier) ))) ;) })) (if_statement "if ((char)iVar12 != '\0') {\n    return;\n  }" if (parenthesized_expression "((char)iVar12 != '\0')" ( (binary_expression "(char)iVar12 != '\0'" (cast_expression "(char)iVar12" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) comment comment (expression_statement "do_gold_unreachable("../../gold/fileread.cc",0x37b,"Input_file");" (call_expression "do_gold_unreachable("../../gold/fileread.cc",0x37b,"Input_file")" identifier (argument_list "("../../gold/fileread.cc",0x37b,"Input_file")" ( (string_literal ""../../gold/fileread.cc"" " string_content ") , number_literal , (string_literal ""Input_file"" " string_content ") ))) ;) })))
(translation_unit "void FUN_000d4920(undefined4 *param_1,undefined4 param_2,char *param_3,undefined4 param_4,\n                 undefined4 param_5,undefined4 param_6)\n\n{\n  undefined1 uVar1;\n  undefined1 uVar2;\n  undefined1 uVar3;\n  int iVar4;\n  char cVar5;\n  int iVar6;\n  int *piVar7;\n  char *pcVar8;\n  size_t sVar9;\n  undefined1 *extraout_EDX;\n  undefined1 *puVar10;\n  undefined1 *local_34 [2];\n  undefined1 local_2c [28];\n  \n  param_1[1] = param_1 + 3;\n  param_1[7] = param_1 + 9;\n  param_1[0x1a] = param_1 + 0x18;\n  param_1[2] = 0;\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[0x1b] = param_1 + 0x18;\n  *(undefined1 *)(param_1 + 0x21) = 1;\n  param_1[0x1e] = param_1 + 0x1d;\n  param_1[0x1d] = param_1 + 0x1d;\n  uVar1 = DAT_00414a95;\n  param_1[0x1c] = 0;\n  param_1[0x1f] = 0;\n  param_1[0x20] = 0;\n  param_1[0x22] = 0;\n  uVar2 = DAT_00414ce9;\n                    \n  iVar6 = FUN_0014c1a0(&DAT_004147a0);\n  iVar4 = DAT_0041a1b4;\n  uVar3 = DAT_004191cd;\n  piVar7 = (int *)FUN_00246670(0x4c);\n  *piVar7 = (int)(piVar7 + 2);\n  pcVar8 = (char *)0xffffffff;\n  if (param_3 != (char *)0x0) {\n    sVar9 = strlen(param_3);\n    pcVar8 = param_3 + sVar9;\n  }\n                    \n  FUN_000a8880(piVar7,param_3,pcVar8,0);\n  piVar7[6] = 0;\n  piVar7[7] = (int)(piVar7 + 9);\n                    \n  FUN_000a8880(piVar7 + 7,"","",0);\n  *(undefined1 *)(piVar7 + 0xd) = 0;\n  piVar7[0x12] = 0;\n  *(undefined1 *)(piVar7 + 0xe) = uVar1;\n  *param_1 = piVar7;\n  *(undefined1 *)((int)piVar7 + 0x39) = uVar2;\n  piVar7[0xf] = iVar6;\n  *(undefined1 *)(piVar7 + 0x10) = uVar3;\n  piVar7[0x11] = iVar4;\n  local_34[0] = local_2c;\n  if (param_3 == (char *)0x0) {\n    pcVar8 = (char *)0xffffffff;\n  }\n  else {\n    sVar9 = strlen(param_3);\n    pcVar8 = param_3 + sVar9;\n  }\n                    \n  FUN_000a8880(local_34,param_3,pcVar8,0);\n                    \n  cVar5 = FUN_000d3d70(param_1 + 7,param_2,local_34,param_4,param_5,param_6);\n  puVar10 = local_34[0];\n  if (local_34[0] != local_2c) {\n    FUN_00248220(local_34[0]);\n    puVar10 = extraout_EDX;\n  }\n  if (cVar5 != '\0') {\n    return;\n  }\n                    \n                    \n  FUN_000da200("../../gold/fileread.cc",0x37b,"Input_file",puVar10);\n}\n\n" (function_definition "void FUN_000d4920(undefined4 *param_1,undefined4 param_2,char *param_3,undefined4 param_4,\n                 undefined4 param_5,undefined4 param_6)\n\n{\n  undefined1 uVar1;\n  undefined1 uVar2;\n  undefined1 uVar3;\n  int iVar4;\n  char cVar5;\n  int iVar6;\n  int *piVar7;\n  char *pcVar8;\n  size_t sVar9;\n  undefined1 *extraout_EDX;\n  undefined1 *puVar10;\n  undefined1 *local_34 [2];\n  undefined1 local_2c [28];\n  \n  param_1[1] = param_1 + 3;\n  param_1[7] = param_1 + 9;\n  param_1[0x1a] = param_1 + 0x18;\n  param_1[2] = 0;\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[0x1b] = param_1 + 0x18;\n  *(undefined1 *)(param_1 + 0x21) = 1;\n  param_1[0x1e] = param_1 + 0x1d;\n  param_1[0x1d] = param_1 + 0x1d;\n  uVar1 = DAT_00414a95;\n  param_1[0x1c] = 0;\n  param_1[0x1f] = 0;\n  param_1[0x20] = 0;\n  param_1[0x22] = 0;\n  uVar2 = DAT_00414ce9;\n                    \n  iVar6 = FUN_0014c1a0(&DAT_004147a0);\n  iVar4 = DAT_0041a1b4;\n  uVar3 = DAT_004191cd;\n  piVar7 = (int *)FUN_00246670(0x4c);\n  *piVar7 = (int)(piVar7 + 2);\n  pcVar8 = (char *)0xffffffff;\n  if (param_3 != (char *)0x0) {\n    sVar9 = strlen(param_3);\n    pcVar8 = param_3 + sVar9;\n  }\n                    \n  FUN_000a8880(piVar7,param_3,pcVar8,0);\n  piVar7[6] = 0;\n  piVar7[7] = (int)(piVar7 + 9);\n                    \n  FUN_000a8880(piVar7 + 7,"","",0);\n  *(undefined1 *)(piVar7 + 0xd) = 0;\n  piVar7[0x12] = 0;\n  *(undefined1 *)(piVar7 + 0xe) = uVar1;\n  *param_1 = piVar7;\n  *(undefined1 *)((int)piVar7 + 0x39) = uVar2;\n  piVar7[0xf] = iVar6;\n  *(undefined1 *)(piVar7 + 0x10) = uVar3;\n  piVar7[0x11] = iVar4;\n  local_34[0] = local_2c;\n  if (param_3 == (char *)0x0) {\n    pcVar8 = (char *)0xffffffff;\n  }\n  else {\n    sVar9 = strlen(param_3);\n    pcVar8 = param_3 + sVar9;\n  }\n                    \n  FUN_000a8880(local_34,param_3,pcVar8,0);\n                    \n  cVar5 = FUN_000d3d70(param_1 + 7,param_2,local_34,param_4,param_5,param_6);\n  puVar10 = local_34[0];\n  if (local_34[0] != local_2c) {\n    FUN_00248220(local_34[0]);\n    puVar10 = extraout_EDX;\n  }\n  if (cVar5 != '\0') {\n    return;\n  }\n                    \n                    \n  FUN_000da200("../../gold/fileread.cc",0x37b,"Input_file",puVar10);\n}" primitive_type (function_declarator "FUN_000d4920(undefined4 *param_1,undefined4 param_2,char *param_3,undefined4 param_4,\n                 undefined4 param_5,undefined4 param_6)" identifier (parameter_list "(undefined4 *param_1,undefined4 param_2,char *param_3,undefined4 param_4,\n                 undefined4 param_5,undefined4 param_6)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) ))) (compound_statement "{\n  undefined1 uVar1;\n  undefined1 uVar2;\n  undefined1 uVar3;\n  int iVar4;\n  char cVar5;\n  int iVar6;\n  int *piVar7;\n  char *pcVar8;\n  size_t sVar9;\n  undefined1 *extraout_EDX;\n  undefined1 *puVar10;\n  undefined1 *local_34 [2];\n  undefined1 local_2c [28];\n  \n  param_1[1] = param_1 + 3;\n  param_1[7] = param_1 + 9;\n  param_1[0x1a] = param_1 + 0x18;\n  param_1[2] = 0;\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[0x1b] = param_1 + 0x18;\n  *(undefined1 *)(param_1 + 0x21) = 1;\n  param_1[0x1e] = param_1 + 0x1d;\n  param_1[0x1d] = param_1 + 0x1d;\n  uVar1 = DAT_00414a95;\n  param_1[0x1c] = 0;\n  param_1[0x1f] = 0;\n  param_1[0x20] = 0;\n  param_1[0x22] = 0;\n  uVar2 = DAT_00414ce9;\n                    \n  iVar6 = FUN_0014c1a0(&DAT_004147a0);\n  iVar4 = DAT_0041a1b4;\n  uVar3 = DAT_004191cd;\n  piVar7 = (int *)FUN_00246670(0x4c);\n  *piVar7 = (int)(piVar7 + 2);\n  pcVar8 = (char *)0xffffffff;\n  if (param_3 != (char *)0x0) {\n    sVar9 = strlen(param_3);\n    pcVar8 = param_3 + sVar9;\n  }\n                    \n  FUN_000a8880(piVar7,param_3,pcVar8,0);\n  piVar7[6] = 0;\n  piVar7[7] = (int)(piVar7 + 9);\n                    \n  FUN_000a8880(piVar7 + 7,"","",0);\n  *(undefined1 *)(piVar7 + 0xd) = 0;\n  piVar7[0x12] = 0;\n  *(undefined1 *)(piVar7 + 0xe) = uVar1;\n  *param_1 = piVar7;\n  *(undefined1 *)((int)piVar7 + 0x39) = uVar2;\n  piVar7[0xf] = iVar6;\n  *(undefined1 *)(piVar7 + 0x10) = uVar3;\n  piVar7[0x11] = iVar4;\n  local_34[0] = local_2c;\n  if (param_3 == (char *)0x0) {\n    pcVar8 = (char *)0xffffffff;\n  }\n  else {\n    sVar9 = strlen(param_3);\n    pcVar8 = param_3 + sVar9;\n  }\n                    \n  FUN_000a8880(local_34,param_3,pcVar8,0);\n                    \n  cVar5 = FUN_000d3d70(param_1 + 7,param_2,local_34,param_4,param_5,param_6);\n  puVar10 = local_34[0];\n  if (local_34[0] != local_2c) {\n    FUN_00248220(local_34[0]);\n    puVar10 = extraout_EDX;\n  }\n  if (cVar5 != '\0') {\n    return;\n  }\n                    \n                    \n  FUN_000da200("../../gold/fileread.cc",0x37b,"Input_file",puVar10);\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 "char cVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "size_t sVar9;" primitive_type identifier ;) (declaration "undefined1 *extraout_EDX;" type_identifier (pointer_declarator "*extraout_EDX" * identifier) ;) (declaration "undefined1 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined1 *local_34 [2];" type_identifier (pointer_declarator "*local_34 [2]" * (array_declarator "local_34 [2]" identifier [ number_literal ])) ;) (declaration "undefined1 local_2c [28];" type_identifier (array_declarator "local_2c [28]" identifier [ 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[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = 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[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 "*(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 "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 "uVar1 = DAT_00414a95;" (assignment_expression "uVar1 = DAT_00414a95" identifier = identifier) ;) (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 "param_1[0x22] = 0;" (assignment_expression "param_1[0x22] = 0" (subscript_expression "param_1[0x22]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar2 = DAT_00414ce9;" (assignment_expression "uVar2 = DAT_00414ce9" identifier = identifier) ;) (expression_statement "iVar6 = FUN_0014c1a0(&DAT_004147a0);" (assignment_expression "iVar6 = FUN_0014c1a0(&DAT_004147a0)" identifier = (call_expression "FUN_0014c1a0(&DAT_004147a0)" identifier (argument_list "(&DAT_004147a0)" ( (pointer_expression "&DAT_004147a0" & identifier) )))) ;) (expression_statement "iVar4 = DAT_0041a1b4;" (assignment_expression "iVar4 = DAT_0041a1b4" identifier = identifier) ;) (expression_statement "uVar3 = DAT_004191cd;" (assignment_expression "uVar3 = DAT_004191cd" identifier = identifier) ;) (expression_statement "piVar7 = (int *)FUN_00246670(0x4c);" (assignment_expression "piVar7 = (int *)FUN_00246670(0x4c)" identifier = (cast_expression "(int *)FUN_00246670(0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00246670(0x4c)" identifier (argument_list "(0x4c)" ( number_literal ))))) ;) (expression_statement "*piVar7 = (int)(piVar7 + 2);" (assignment_expression "*piVar7 = (int)(piVar7 + 2)" (pointer_expression "*piVar7" * identifier) = (cast_expression "(int)(piVar7 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar7 + 2)" ( (binary_expression "piVar7 + 2" identifier + number_literal) )))) ;) (expression_statement "pcVar8 = (char *)0xffffffff;" (assignment_expression "pcVar8 = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (param_3 != (char *)0x0) {\n    sVar9 = strlen(param_3);\n    pcVar8 = param_3 + sVar9;\n  }" if (parenthesized_expression "(param_3 != (char *)0x0)" ( (binary_expression "param_3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sVar9 = strlen(param_3);\n    pcVar8 = param_3 + sVar9;\n  }" { (expression_statement "sVar9 = strlen(param_3);" (assignment_expression "sVar9 = strlen(param_3)" identifier = (call_expression "strlen(param_3)" identifier (argument_list "(param_3)" ( identifier )))) ;) (expression_statement "pcVar8 = param_3 + sVar9;" (assignment_expression "pcVar8 = param_3 + sVar9" identifier = (binary_expression "param_3 + sVar9" identifier + identifier)) ;) })) (expression_statement "FUN_000a8880(piVar7,param_3,pcVar8,0);" (call_expression "FUN_000a8880(piVar7,param_3,pcVar8,0)" identifier (argument_list "(piVar7,param_3,pcVar8,0)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "piVar7[6] = 0;" (assignment_expression "piVar7[6] = 0" (subscript_expression "piVar7[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar7[7] = (int)(piVar7 + 9);" (assignment_expression "piVar7[7] = (int)(piVar7 + 9)" (subscript_expression "piVar7[7]" identifier [ number_literal ]) = (cast_expression "(int)(piVar7 + 9)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar7 + 9)" ( (binary_expression "piVar7 + 9" identifier + number_literal) )))) ;) (expression_statement "FUN_000a8880(piVar7 + 7,"","",0);" (call_expression "FUN_000a8880(piVar7 + 7,"","",0)" identifier (argument_list "(piVar7 + 7,"","",0)" ( (binary_expression "piVar7 + 7" identifier + number_literal) , (string_literal """" " ") , (string_literal """" " ") , number_literal ))) ;) (expression_statement "*(undefined1 *)(piVar7 + 0xd) = 0;" (assignment_expression "*(undefined1 *)(piVar7 + 0xd) = 0" (pointer_expression "*(undefined1 *)(piVar7 + 0xd)" * (cast_expression "(undefined1 *)(piVar7 + 0xd)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar7 + 0xd)" ( (binary_expression "piVar7 + 0xd" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar7[0x12] = 0;" (assignment_expression "piVar7[0x12] = 0" (subscript_expression "piVar7[0x12]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(piVar7 + 0xe) = uVar1;" (assignment_expression "*(undefined1 *)(piVar7 + 0xe) = uVar1" (pointer_expression "*(undefined1 *)(piVar7 + 0xe)" * (cast_expression "(undefined1 *)(piVar7 + 0xe)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar7 + 0xe)" ( (binary_expression "piVar7 + 0xe" identifier + number_literal) )))) = identifier) ;) (expression_statement "*param_1 = piVar7;" (assignment_expression "*param_1 = piVar7" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "*(undefined1 *)((int)piVar7 + 0x39) = uVar2;" (assignment_expression "*(undefined1 *)((int)piVar7 + 0x39) = uVar2" (pointer_expression "*(undefined1 *)((int)piVar7 + 0x39)" * (cast_expression "(undefined1 *)((int)piVar7 + 0x39)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar7 + 0x39)" ( (binary_expression "(int)piVar7 + 0x39" (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "piVar7[0xf] = iVar6;" (assignment_expression "piVar7[0xf] = iVar6" (subscript_expression "piVar7[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(piVar7 + 0x10) = uVar3;" (assignment_expression "*(undefined1 *)(piVar7 + 0x10) = uVar3" (pointer_expression "*(undefined1 *)(piVar7 + 0x10)" * (cast_expression "(undefined1 *)(piVar7 + 0x10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar7 + 0x10)" ( (binary_expression "piVar7 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar7[0x11] = iVar4;" (assignment_expression "piVar7[0x11] = iVar4" (subscript_expression "piVar7[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_34[0] = local_2c;" (assignment_expression "local_34[0] = local_2c" (subscript_expression "local_34[0]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (param_3 == (char *)0x0) {\n    pcVar8 = (char *)0xffffffff;\n  }\n  else {\n    sVar9 = strlen(param_3);\n    pcVar8 = param_3 + sVar9;\n  }" if (parenthesized_expression "(param_3 == (char *)0x0)" ( (binary_expression "param_3 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar8 = (char *)0xffffffff;\n  }" { (expression_statement "pcVar8 = (char *)0xffffffff;" (assignment_expression "pcVar8 = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    sVar9 = strlen(param_3);\n    pcVar8 = param_3 + sVar9;\n  }" else (compound_statement "{\n    sVar9 = strlen(param_3);\n    pcVar8 = param_3 + sVar9;\n  }" { (expression_statement "sVar9 = strlen(param_3);" (assignment_expression "sVar9 = strlen(param_3)" identifier = (call_expression "strlen(param_3)" identifier (argument_list "(param_3)" ( identifier )))) ;) (expression_statement "pcVar8 = param_3 + sVar9;" (assignment_expression "pcVar8 = param_3 + sVar9" identifier = (binary_expression "param_3 + sVar9" identifier + identifier)) ;) }))) (expression_statement "FUN_000a8880(local_34,param_3,pcVar8,0);" (call_expression "FUN_000a8880(local_34,param_3,pcVar8,0)" identifier (argument_list "(local_34,param_3,pcVar8,0)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "cVar5 = FUN_000d3d70(param_1 + 7,param_2,local_34,param_4,param_5,param_6);" (assignment_expression "cVar5 = FUN_000d3d70(param_1 + 7,param_2,local_34,param_4,param_5,param_6)" identifier = (call_expression "FUN_000d3d70(param_1 + 7,param_2,local_34,param_4,param_5,param_6)" identifier (argument_list "(param_1 + 7,param_2,local_34,param_4,param_5,param_6)" ( (binary_expression "param_1 + 7" identifier + number_literal) , identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "puVar10 = local_34[0];" (assignment_expression "puVar10 = local_34[0]" identifier = (subscript_expression "local_34[0]" identifier [ number_literal ])) ;) (if_statement "if (local_34[0] != local_2c) {\n    FUN_00248220(local_34[0]);\n    puVar10 = extraout_EDX;\n  }" if (parenthesized_expression "(local_34[0] != local_2c)" ( (binary_expression "local_34[0] != local_2c" (subscript_expression "local_34[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n    FUN_00248220(local_34[0]);\n    puVar10 = extraout_EDX;\n  }" { (expression_statement "FUN_00248220(local_34[0]);" (call_expression "FUN_00248220(local_34[0])" identifier (argument_list "(local_34[0])" ( (subscript_expression "local_34[0]" identifier [ number_literal ]) ))) ;) (expression_statement "puVar10 = extraout_EDX;" (assignment_expression "puVar10 = extraout_EDX" identifier = identifier) ;) })) (if_statement "if (cVar5 != '\0') {\n    return;\n  }" if (parenthesized_expression "(cVar5 != '\0')" ( (binary_expression "cVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "FUN_000da200("../../gold/fileread.cc",0x37b,"Input_file",puVar10);" (call_expression "FUN_000da200("../../gold/fileread.cc",0x37b,"Input_file",puVar10)" identifier (argument_list "("../../gold/fileread.cc",0x37b,"Input_file",puVar10)" ( (string_literal ""../../gold/fileread.cc"" " string_content ") , number_literal , (string_literal ""Input_file"" " string_content ") , identifier ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (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 ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (array_declarator 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 ]) = 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 ]) = (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 ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + 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 (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) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (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 IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })))
(function_definition "void FUN_000d4920(undefined4 *param_1,undefined4 param_2,char *param_3,undefined4 param_4,\n                 undefined4 param_5,undefined4 param_6)\n\n{\n  undefined1 uVar1;\n  undefined1 uVar2;\n  undefined1 uVar3;\n  int iVar4;\n  char cVar5;\n  int iVar6;\n  int *piVar7;\n  char *pcVar8;\n  size_t sVar9;\n  undefined1 *extraout_EDX;\n  undefined1 *puVar10;\n  undefined1 *local_34 [2];\n  undefined1 local_2c [28];\n  \n  param_1[1] = param_1 + 3;\n  param_1[7] = param_1 + 9;\n  param_1[0x1a] = param_1 + 0x18;\n  param_1[2] = 0;\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[0x1b] = param_1 + 0x18;\n  *(undefined1 *)(param_1 + 0x21) = 1;\n  param_1[0x1e] = param_1 + 0x1d;\n  param_1[0x1d] = param_1 + 0x1d;\n  uVar1 = DAT_00414a95;\n  param_1[0x1c] = 0;\n  param_1[0x1f] = 0;\n  param_1[0x20] = 0;\n  param_1[0x22] = 0;\n  uVar2 = DAT_00414ce9;\n                    \n  iVar6 = FUN_0014c1a0(&DAT_004147a0);\n  iVar4 = DAT_0041a1b4;\n  uVar3 = DAT_004191cd;\n  piVar7 = (int *)FUN_00246670(0x4c);\n  *piVar7 = (int)(piVar7 + 2);\n  pcVar8 = (char *)0xffffffff;\n  if (param_3 != (char *)0x0) {\n    sVar9 = strlen(param_3);\n    pcVar8 = param_3 + sVar9;\n  }\n                    \n  FUN_000a8880(piVar7,param_3,pcVar8,0);\n  piVar7[6] = 0;\n  piVar7[7] = (int)(piVar7 + 9);\n                    \n  FUN_000a8880(piVar7 + 7,"","",0);\n  *(undefined1 *)(piVar7 + 0xd) = 0;\n  piVar7[0x12] = 0;\n  *(undefined1 *)(piVar7 + 0xe) = uVar1;\n  *param_1 = piVar7;\n  *(undefined1 *)((int)piVar7 + 0x39) = uVar2;\n  piVar7[0xf] = iVar6;\n  *(undefined1 *)(piVar7 + 0x10) = uVar3;\n  piVar7[0x11] = iVar4;\n  local_34[0] = local_2c;\n  if (param_3 == (char *)0x0) {\n    pcVar8 = (char *)0xffffffff;\n  }\n  else {\n    sVar9 = strlen(param_3);\n    pcVar8 = param_3 + sVar9;\n  }\n                    \n  FUN_000a8880(local_34,param_3,pcVar8,0);\n                    \n  cVar5 = FUN_000d3d70(param_1 + 7,param_2,local_34,param_4,param_5,param_6);\n  puVar10 = local_34[0];\n  if (local_34[0] != local_2c) {\n    FUN_00248220(local_34[0]);\n    puVar10 = extraout_EDX;\n  }\n  if (cVar5 != '\0') {\n    return;\n  }\n                    \n                    \n  FUN_000da200("../../gold/fileread.cc",0x37b,"Input_file",puVar10);\n}" (primitive_type "void") (function_declarator "FUN_000d4920(undefined4 *param_1,undefined4 param_2,char *param_3,undefined4 param_4,\n                 undefined4 param_5,undefined4 param_6)" (identifier "FUN_000d4920") (parameter_list "(undefined4 *param_1,undefined4 param_2,char *param_3,undefined4 param_4,\n                 undefined4 param_5,undefined4 param_6)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "char *param_3" (primitive_type "char") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) (, ",") (parameter_declaration "undefined4 param_5" (type_identifier "undefined4") (identifier "param_5")) (, ",") (parameter_declaration "undefined4 param_6" (type_identifier "undefined4") (identifier "param_6")) () ")"))) (compound_statement "{\n  undefined1 uVar1;\n  undefined1 uVar2;\n  undefined1 uVar3;\n  int iVar4;\n  char cVar5;\n  int iVar6;\n  int *piVar7;\n  char *pcVar8;\n  size_t sVar9;\n  undefined1 *extraout_EDX;\n  undefined1 *puVar10;\n  undefined1 *local_34 [2];\n  undefined1 local_2c [28];\n  \n  param_1[1] = param_1 + 3;\n  param_1[7] = param_1 + 9;\n  param_1[0x1a] = param_1 + 0x18;\n  param_1[2] = 0;\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[0x1b] = param_1 + 0x18;\n  *(undefined1 *)(param_1 + 0x21) = 1;\n  param_1[0x1e] = param_1 + 0x1d;\n  param_1[0x1d] = param_1 + 0x1d;\n  uVar1 = DAT_00414a95;\n  param_1[0x1c] = 0;\n  param_1[0x1f] = 0;\n  param_1[0x20] = 0;\n  param_1[0x22] = 0;\n  uVar2 = DAT_00414ce9;\n                    \n  iVar6 = FUN_0014c1a0(&DAT_004147a0);\n  iVar4 = DAT_0041a1b4;\n  uVar3 = DAT_004191cd;\n  piVar7 = (int *)FUN_00246670(0x4c);\n  *piVar7 = (int)(piVar7 + 2);\n  pcVar8 = (char *)0xffffffff;\n  if (param_3 != (char *)0x0) {\n    sVar9 = strlen(param_3);\n    pcVar8 = param_3 + sVar9;\n  }\n                    \n  FUN_000a8880(piVar7,param_3,pcVar8,0);\n  piVar7[6] = 0;\n  piVar7[7] = (int)(piVar7 + 9);\n                    \n  FUN_000a8880(piVar7 + 7,"","",0);\n  *(undefined1 *)(piVar7 + 0xd) = 0;\n  piVar7[0x12] = 0;\n  *(undefined1 *)(piVar7 + 0xe) = uVar1;\n  *param_1 = piVar7;\n  *(undefined1 *)((int)piVar7 + 0x39) = uVar2;\n  piVar7[0xf] = iVar6;\n  *(undefined1 *)(piVar7 + 0x10) = uVar3;\n  piVar7[0x11] = iVar4;\n  local_34[0] = local_2c;\n  if (param_3 == (char *)0x0) {\n    pcVar8 = (char *)0xffffffff;\n  }\n  else {\n    sVar9 = strlen(param_3);\n    pcVar8 = param_3 + sVar9;\n  }\n                    \n  FUN_000a8880(local_34,param_3,pcVar8,0);\n                    \n  cVar5 = FUN_000d3d70(param_1 + 7,param_2,local_34,param_4,param_5,param_6);\n  puVar10 = local_34[0];\n  if (local_34[0] != local_2c) {\n    FUN_00248220(local_34[0]);\n    puVar10 = extraout_EDX;\n  }\n  if (cVar5 != '\0') {\n    return;\n  }\n                    \n                    \n  FUN_000da200("../../gold/fileread.cc",0x37b,"Input_file",puVar10);\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 "char cVar5;" (primitive_type "char") (identifier "cVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int *piVar7;" (primitive_type "int") (pointer_declarator "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (declaration "char *pcVar8;" (primitive_type "char") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (declaration "size_t sVar9;" (primitive_type "size_t") (identifier "sVar9") (; ";")) (declaration "undefined1 *extraout_EDX;" (type_identifier "undefined1") (pointer_declarator "*extraout_EDX" (* "*") (identifier "extraout_EDX")) (; ";")) (declaration "undefined1 *puVar10;" (type_identifier "undefined1") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "undefined1 *local_34 [2];" (type_identifier "undefined1") (pointer_declarator "*local_34 [2]" (* "*") (array_declarator "local_34 [2]" (identifier "local_34") ([ "[") (number_literal "2") (] "]"))) (; ";")) (declaration "undefined1 local_2c [28];" (type_identifier "undefined1") (array_declarator "local_2c [28]" (identifier "local_2c") ([ "[") (number_literal "28") (] "]")) (; ";")) (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[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (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[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 "*(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 "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 "uVar1 = DAT_00414a95;" (assignment_expression "uVar1 = DAT_00414a95" (identifier "uVar1") (= "=") (identifier "DAT_00414a95")) (; ";")) (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 "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 "uVar2 = DAT_00414ce9;" (assignment_expression "uVar2 = DAT_00414ce9" (identifier "uVar2") (= "=") (identifier "DAT_00414ce9")) (; ";")) (expression_statement "iVar6 = FUN_0014c1a0(&DAT_004147a0);" (assignment_expression "iVar6 = FUN_0014c1a0(&DAT_004147a0)" (identifier "iVar6") (= "=") (call_expression "FUN_0014c1a0(&DAT_004147a0)" (identifier "FUN_0014c1a0") (argument_list "(&DAT_004147a0)" (( "(") (pointer_expression "&DAT_004147a0" (& "&") (identifier "DAT_004147a0")) () ")")))) (; ";")) (expression_statement "iVar4 = DAT_0041a1b4;" (assignment_expression "iVar4 = DAT_0041a1b4" (identifier "iVar4") (= "=") (identifier "DAT_0041a1b4")) (; ";")) (expression_statement "uVar3 = DAT_004191cd;" (assignment_expression "uVar3 = DAT_004191cd" (identifier "uVar3") (= "=") (identifier "DAT_004191cd")) (; ";")) (expression_statement "piVar7 = (int *)FUN_00246670(0x4c);" (assignment_expression "piVar7 = (int *)FUN_00246670(0x4c)" (identifier "piVar7") (= "=") (cast_expression "(int *)FUN_00246670(0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00246670(0x4c)" (identifier "FUN_00246670") (argument_list "(0x4c)" (( "(") (number_literal "0x4c") () ")"))))) (; ";")) (expression_statement "*piVar7 = (int)(piVar7 + 2);" (assignment_expression "*piVar7 = (int)(piVar7 + 2)" (pointer_expression "*piVar7" (* "*") (identifier "piVar7")) (= "=") (cast_expression "(int)(piVar7 + 2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(piVar7 + 2)" (( "(") (binary_expression "piVar7 + 2" (identifier "piVar7") (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "pcVar8 = (char *)0xffffffff;" (assignment_expression "pcVar8 = (char *)0xffffffff" (identifier "pcVar8") (= "=") (cast_expression "(char *)0xffffffff" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (if_statement "if (param_3 != (char *)0x0) {\n    sVar9 = strlen(param_3);\n    pcVar8 = param_3 + sVar9;\n  }" (if "if") (parenthesized_expression "(param_3 != (char *)0x0)" (( "(") (binary_expression "param_3 != (char *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    sVar9 = strlen(param_3);\n    pcVar8 = param_3 + sVar9;\n  }" ({ "{") (expression_statement "sVar9 = strlen(param_3);" (assignment_expression "sVar9 = strlen(param_3)" (identifier "sVar9") (= "=") (call_expression "strlen(param_3)" (identifier "strlen") (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";")) (expression_statement "pcVar8 = param_3 + sVar9;" (assignment_expression "pcVar8 = param_3 + sVar9" (identifier "pcVar8") (= "=") (binary_expression "param_3 + sVar9" (identifier "param_3") (+ "+") (identifier "sVar9"))) (; ";")) (} "}"))) (expression_statement "FUN_000a8880(piVar7,param_3,pcVar8,0);" (call_expression "FUN_000a8880(piVar7,param_3,pcVar8,0)" (identifier "FUN_000a8880") (argument_list "(piVar7,param_3,pcVar8,0)" (( "(") (identifier "piVar7") (, ",") (identifier "param_3") (, ",") (identifier "pcVar8") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "piVar7[6] = 0;" (assignment_expression "piVar7[6] = 0" (subscript_expression "piVar7[6]" (identifier "piVar7") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar7[7] = (int)(piVar7 + 9);" (assignment_expression "piVar7[7] = (int)(piVar7 + 9)" (subscript_expression "piVar7[7]" (identifier "piVar7") ([ "[") (number_literal "7") (] "]")) (= "=") (cast_expression "(int)(piVar7 + 9)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(piVar7 + 9)" (( "(") (binary_expression "piVar7 + 9" (identifier "piVar7") (+ "+") (number_literal "9")) () ")")))) (; ";")) (expression_statement "FUN_000a8880(piVar7 + 7,"","",0);" (call_expression "FUN_000a8880(piVar7 + 7,"","",0)" (identifier "FUN_000a8880") (argument_list "(piVar7 + 7,"","",0)" (( "(") (binary_expression "piVar7 + 7" (identifier "piVar7") (+ "+") (number_literal "7")) (, ",") (string_literal """" (" """) (" """)) (, ",") (string_literal """" (" """) (" """)) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "*(undefined1 *)(piVar7 + 0xd) = 0;" (assignment_expression "*(undefined1 *)(piVar7 + 0xd) = 0" (pointer_expression "*(undefined1 *)(piVar7 + 0xd)" (* "*") (cast_expression "(undefined1 *)(piVar7 + 0xd)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar7 + 0xd)" (( "(") (binary_expression "piVar7 + 0xd" (identifier "piVar7") (+ "+") (number_literal "0xd")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar7[0x12] = 0;" (assignment_expression "piVar7[0x12] = 0" (subscript_expression "piVar7[0x12]" (identifier "piVar7") ([ "[") (number_literal "0x12") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(piVar7 + 0xe) = uVar1;" (assignment_expression "*(undefined1 *)(piVar7 + 0xe) = uVar1" (pointer_expression "*(undefined1 *)(piVar7 + 0xe)" (* "*") (cast_expression "(undefined1 *)(piVar7 + 0xe)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar7 + 0xe)" (( "(") (binary_expression "piVar7 + 0xe" (identifier "piVar7") (+ "+") (number_literal "0xe")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "*param_1 = piVar7;" (assignment_expression "*param_1 = piVar7" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "piVar7")) (; ";")) (expression_statement "*(undefined1 *)((int)piVar7 + 0x39) = uVar2;" (assignment_expression "*(undefined1 *)((int)piVar7 + 0x39) = uVar2" (pointer_expression "*(undefined1 *)((int)piVar7 + 0x39)" (* "*") (cast_expression "(undefined1 *)((int)piVar7 + 0x39)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar7 + 0x39)" (( "(") (binary_expression "(int)piVar7 + 0x39" (cast_expression "(int)piVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar7")) (+ "+") (number_literal "0x39")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "piVar7[0xf] = iVar6;" (assignment_expression "piVar7[0xf] = iVar6" (subscript_expression "piVar7[0xf]" (identifier "piVar7") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "*(undefined1 *)(piVar7 + 0x10) = uVar3;" (assignment_expression "*(undefined1 *)(piVar7 + 0x10) = uVar3" (pointer_expression "*(undefined1 *)(piVar7 + 0x10)" (* "*") (cast_expression "(undefined1 *)(piVar7 + 0x10)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar7 + 0x10)" (( "(") (binary_expression "piVar7 + 0x10" (identifier "piVar7") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "piVar7[0x11] = iVar4;" (assignment_expression "piVar7[0x11] = iVar4" (subscript_expression "piVar7[0x11]" (identifier "piVar7") ([ "[") (number_literal "0x11") (] "]")) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "local_34[0] = local_2c;" (assignment_expression "local_34[0] = local_2c" (subscript_expression "local_34[0]" (identifier "local_34") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "local_2c")) (; ";")) (if_statement "if (param_3 == (char *)0x0) {\n    pcVar8 = (char *)0xffffffff;\n  }\n  else {\n    sVar9 = strlen(param_3);\n    pcVar8 = param_3 + sVar9;\n  }" (if "if") (parenthesized_expression "(param_3 == (char *)0x0)" (( "(") (binary_expression "param_3 == (char *)0x0" (identifier "param_3") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    pcVar8 = (char *)0xffffffff;\n  }" ({ "{") (expression_statement "pcVar8 = (char *)0xffffffff;" (assignment_expression "pcVar8 = (char *)0xffffffff" (identifier "pcVar8") (= "=") (cast_expression "(char *)0xffffffff" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (} "}")) (else_clause "else {\n    sVar9 = strlen(param_3);\n    pcVar8 = param_3 + sVar9;\n  }" (else "else") (compound_statement "{\n    sVar9 = strlen(param_3);\n    pcVar8 = param_3 + sVar9;\n  }" ({ "{") (expression_statement "sVar9 = strlen(param_3);" (assignment_expression "sVar9 = strlen(param_3)" (identifier "sVar9") (= "=") (call_expression "strlen(param_3)" (identifier "strlen") (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";")) (expression_statement "pcVar8 = param_3 + sVar9;" (assignment_expression "pcVar8 = param_3 + sVar9" (identifier "pcVar8") (= "=") (binary_expression "param_3 + sVar9" (identifier "param_3") (+ "+") (identifier "sVar9"))) (; ";")) (} "}")))) (expression_statement "FUN_000a8880(local_34,param_3,pcVar8,0);" (call_expression "FUN_000a8880(local_34,param_3,pcVar8,0)" (identifier "FUN_000a8880") (argument_list "(local_34,param_3,pcVar8,0)" (( "(") (identifier "local_34") (, ",") (identifier "param_3") (, ",") (identifier "pcVar8") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "cVar5 = FUN_000d3d70(param_1 + 7,param_2,local_34,param_4,param_5,param_6);" (assignment_expression "cVar5 = FUN_000d3d70(param_1 + 7,param_2,local_34,param_4,param_5,param_6)" (identifier "cVar5") (= "=") (call_expression "FUN_000d3d70(param_1 + 7,param_2,local_34,param_4,param_5,param_6)" (identifier "FUN_000d3d70") (argument_list "(param_1 + 7,param_2,local_34,param_4,param_5,param_6)" (( "(") (binary_expression "param_1 + 7" (identifier "param_1") (+ "+") (number_literal "7")) (, ",") (identifier "param_2") (, ",") (identifier "local_34") (, ",") (identifier "param_4") (, ",") (identifier "param_5") (, ",") (identifier "param_6") () ")")))) (; ";")) (expression_statement "puVar10 = local_34[0];" (assignment_expression "puVar10 = local_34[0]" (identifier "puVar10") (= "=") (subscript_expression "local_34[0]" (identifier "local_34") ([ "[") (number_literal "0") (] "]"))) (; ";")) (if_statement "if (local_34[0] != local_2c) {\n    FUN_00248220(local_34[0]);\n    puVar10 = extraout_EDX;\n  }" (if "if") (parenthesized_expression "(local_34[0] != local_2c)" (( "(") (binary_expression "local_34[0] != local_2c" (subscript_expression "local_34[0]" (identifier "local_34") ([ "[") (number_literal "0") (] "]")) (!= "!=") (identifier "local_2c")) () ")")) (compound_statement "{\n    FUN_00248220(local_34[0]);\n    puVar10 = extraout_EDX;\n  }" ({ "{") (expression_statement "FUN_00248220(local_34[0]);" (call_expression "FUN_00248220(local_34[0])" (identifier "FUN_00248220") (argument_list "(local_34[0])" (( "(") (subscript_expression "local_34[0]" (identifier "local_34") ([ "[") (number_literal "0") (] "]")) () ")"))) (; ";")) (expression_statement "puVar10 = extraout_EDX;" (assignment_expression "puVar10 = extraout_EDX" (identifier "puVar10") (= "=") (identifier "extraout_EDX")) (; ";")) (} "}"))) (if_statement "if (cVar5 != '\0') {\n    return;\n  }" (if "if") (parenthesized_expression "(cVar5 != '\0')" (( "(") (binary_expression "cVar5 != '\0'" (identifier "cVar5") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_000da200("../../gold/fileread.cc",0x37b,"Input_file",puVar10);" (call_expression "FUN_000da200("../../gold/fileread.cc",0x37b,"Input_file",puVar10)" (identifier "FUN_000da200") (argument_list "("../../gold/fileread.cc",0x37b,"Input_file",puVar10)" (( "(") (string_literal ""../../gold/fileread.cc"" (" """) (string_content "../../gold/fileread.cc") (" """)) (, ",") (number_literal "0x37b") (, ",") (string_literal ""Input_file"" (" """) (string_content "Input_file") (" """)) (, ",") (identifier "puVar10") () ")"))) (; ";")) (} "}")))

/* 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, Task * task, char * name, uchar *
   contents, off_t size) */

void __thiscall
gold::function_1::function_1(function_1 *this,type_1 *task,char *var_10,type_2 *contents,type_3 size)

{
  type_4 *p_Var1;
  type_5 *pSVar2;
  anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
  *var_5;
  bool bVar4;
  bool bVar5;
  bool bVar6;
  type_6 IVar7;
  type_7 OVar8;
  type_8 *pIVar9;
  char *pcVar10;
  size_t var_12;
  int iVar12;
  basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3> var_6;
  
  (this->found_name_)._M_dataplus._M_p = (type_13)&(this->found_name_).field_2;
  (this->file_).name_._M_dataplus._M_p = (type_13)&(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->found_name_)._M_string_length = 0;
  (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_9 *)&(this->file_).size_ = 0;
  *(type_9 *)((int)&(this->file_).size_ + 4) = 0;
  (this->file_).token_.is_blocker_ = false;
  (this->file_).token_.blockers_ = 0;
  (this->file_).token_.writer_ = (type_1 *)0x0;
  (this->file_).token_.waiting_.head_ = (type_1 *)0x0;
  (this->file_).token_.waiting_.tail_ = (type_1 *)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_10)0x0;
  (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_).released_ = true;
  (this->file_).saved_views_.
  super__List_base<gold::var_7::type_12*,_std::var_1<gold::var_7::type_12*>var_3>._M_impl._M_node.
  super__List_node_base._M_prev = (type_11 *)pSVar2;
  (this->file_).saved_views_.
  super__List_base<gold::var_7::type_12*,_std::var_1<gold::var_7::type_12*>var_3>._M_impl._M_node.
  super__List_node_base._M_next = (type_11 *)pSVar2;
  bVar4 = Position_dependent_options::default_options_.as_needed_.value;
  (this->file_).views_._M_t._M_impl.super__Rb_tree_header._M_node_count = 0;
  (this->file_).saved_views_.
  super__List_base<gold::var_7::type_12*,_std::var_1<gold::var_7::type_12*>var_3>._M_impl._M_node.
  _M_size = 0;
  (this->file_).mapped_bytes_ = 0;
  (this->file_).whole_file_view_ = (type_12 *)0x0;
  bVar5 = Position_dependent_options::default_options_.Bdynamic_.value;
                    /* try { // try from 000d4a17 to 000d4a40 has its CatchHandler @ 000d4b7a */
  OVar8 = General_options::var_8(&Position_dependent_options::default_options_);
  IVar7 = Position_dependent_options::default_options_.incremental_disposition_;
  bVar6 = Position_dependent_options::default_options_.whole_archive_.value;
  pIVar9 = (type_8 *)var_9(0x4c);
  (pIVar9->name_)._M_dataplus._M_p = (type_13)&(pIVar9->name_).field_2;
  pcVar10 = (char *)0xffffffff;
  if (var_10 != (char *)0x0) {
    var_12 = var_11(var_10);
    pcVar10 = var_10 + var_12;
  }
                    /* try { // try from 000d4a75 to 000d4a79 has its CatchHandler @ 000d4b75 */
  std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>::
  var_13<var_14*>
            ((basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3> *)pIVar9,var_10,
             pcVar10,0);
  pIVar9->type_ = INPUT_FILE_TYPE_FILE;
  (pIVar9->extra_search_path_)._M_dataplus._M_p = (type_13)&(pIVar9->extra_search_path_).field_2;
                    /* try { // try from 000d4a9b to 000d4a9f has its CatchHandler @ 000d4b6b */
  std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>::
  var_13<var_14*>(&pIVar9->extra_search_path_,"","",0);
  pIVar9->just_symbols_ = false;
  pIVar9->arg_serial_ = 0;
  (pIVar9->options_).as_needed_ = bVar4;
  this->input_argument_ = pIVar9;
  (pIVar9->options_).Bdynamic_ = bVar5;
  (pIVar9->options_).format_enum_ = OVar8;
  (pIVar9->options_).whole_archive_ = bVar6;
  (pIVar9->options_).incremental_disposition_ = IVar7;
  var_5 = &var_6.field_2;
  var_6._M_dataplus._M_p = (type_13)var_5;
  if (var_10 == (char *)0x0) {
    pcVar10 = (char *)0xffffffff;
  }
  else {
    var_12 = var_11(var_10);
    pcVar10 = var_10 + var_12;
  }
                    /* try { // try from 000d4afc to 000d4b00 has its CatchHandler @ 000d4b7a */
  std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>::
  var_13<var_14*>(&var_6,var_10,pcVar10,0);
                    /* try { // try from 000d4b13 to 000d4b17 has its CatchHandler @ 000d4b70 */
  iVar12 = var_7::var_15(&this->file_,(char *)task,(int)&var_6,contents,(type_9)size,
                           size._4_4_);
  if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
       *)var_6._M_dataplus._M_p != var_5) {
    var_16(var_6._M_dataplus._M_p);
  }
  if ((char)iVar12 != '\0') {
    return;
  }
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 000d4b66 to 000d4b6a has its CatchHandler @ 000d4b7a */
  var_17("../../gold/fileread.cc",0x37b,"Input_file");
}


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

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

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

{
  undefined1 uVar1;
  undefined1 uVar2;
  undefined1 uVar3;
  int iVar4;
  char cVar5;
  int iVar6;
  int *piVar7;
  char *pcVar8;
  size_t sVar9;
  undefined1 *extraout_EDX;
  undefined1 *puVar10;
  undefined1 *local_34 [2];
  undefined1 local_2c [28];
  
  param_1[1] = param_1 + 3;
  param_1[7] = param_1 + 9;
  param_1[0x1a] = param_1 + 0x18;
  param_1[2] = 0;
  *(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[0x1b] = param_1 + 0x18;
  *(undefined1 *)(param_1 + 0x21) = 1;
  param_1[0x1e] = param_1 + 0x1d;
  param_1[0x1d] = param_1 + 0x1d;
  uVar1 = DAT_00414a95;
  param_1[0x1c] = 0;
  param_1[0x1f] = 0;
  param_1[0x20] = 0;
  param_1[0x22] = 0;
  uVar2 = DAT_00414ce9;
                    /* try { // try from 000d4a17 to 000d4a40 has its CatchHandler @ 000d4b7a */
  iVar6 = FUN_0014c1a0(&DAT_004147a0);
  iVar4 = DAT_0041a1b4;
  uVar3 = DAT_004191cd;
  piVar7 = (int *)FUN_00246670(0x4c);
  *piVar7 = (int)(piVar7 + 2);
  pcVar8 = (char *)0xffffffff;
  if (param_3 != (char *)0x0) {
    sVar9 = strlen(param_3);
    pcVar8 = param_3 + sVar9;
  }
                    /* try { // try from 000d4a75 to 000d4a79 has its CatchHandler @ 000d4b75 */
  FUN_000a8880(piVar7,param_3,pcVar8,0);
  piVar7[6] = 0;
  piVar7[7] = (int)(piVar7 + 9);
                    /* try { // try from 000d4a9b to 000d4a9f has its CatchHandler @ 000d4b6b */
  FUN_000a8880(piVar7 + 7,"","",0);
  *(undefined1 *)(piVar7 + 0xd) = 0;
  piVar7[0x12] = 0;
  *(undefined1 *)(piVar7 + 0xe) = uVar1;
  *param_1 = piVar7;
  *(undefined1 *)((int)piVar7 + 0x39) = uVar2;
  piVar7[0xf] = iVar6;
  *(undefined1 *)(piVar7 + 0x10) = uVar3;
  piVar7[0x11] = iVar4;
  local_34[0] = local_2c;
  if (param_3 == (char *)0x0) {
    pcVar8 = (char *)0xffffffff;
  }
  else {
    sVar9 = strlen(param_3);
    pcVar8 = param_3 + sVar9;
  }
                    /* try { // try from 000d4afc to 000d4b00 has its CatchHandler @ 000d4b7a */
  FUN_000a8880(local_34,param_3,pcVar8,0);
                    /* try { // try from 000d4b13 to 000d4b17 has its CatchHandler @ 000d4b70 */
  cVar5 = FUN_000d3d70(param_1 + 7,param_2,local_34,param_4,param_5,param_6);
  puVar10 = local_34[0];
  if (local_34[0] != local_2c) {
    FUN_00248220(local_34[0]);
    puVar10 = extraout_EDX;
  }
  if (cVar5 != '\0') {
    return;
  }
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 000d4b66 to 000d4b6a has its CatchHandler @ 000d4b7a */
  FUN_000da200("../../gold/fileread.cc",0x37b,"Input_file",puVar10);
}

