
/* WARNING: Type propagation algorithm not settling */
/* DWARF original name: sized_make_object<64, false>
   DWARF original prototype: Relobj * sized_make_object<64,_false>(Dwo_file * this, uchar * p,
   Input_file * input_file, Dwp_output_file * output_file) */

Relobj * __thiscall
gold::Dwo_file::sized_make_object<64,_false>
          (Dwo_file *this,uchar *p,Input_file *input_file,Dwp_output_file *output_file)

{
  undefined1 *puVar1;
  int *piVar2;
  byte bVar3;
  byte bVar4;
  ushort uVar5;
  undefined4 uVar6;
  bool bVar7;
  Sized_relobj_dwo<64,_false> *this_00;
  char *pcVar8;
  size_t sVar9;
  Position_dependent_options *pPVar10;
  uint uVar11;
  char *pcVar12;
  char *pcVar13;
  int unaff_EDI;
  Dwp_output_file *this_01;
  _func_int_varargs **pp_Var14;
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *machine;
  undefined1 in_stack_ffffffc4;
  int in_stack_ffffffc8;
  _Alloc_hider abiversion;
  size_type local_30;
  char local_2c [28];
  
  __x86_get_pc_thunk_di();
  this_00 = (Sized_relobj_dwo<64,_false> *)operator_new(0xa8);
  pcVar13 = this->name_;
  pcVar12 = local_2c;
  pcVar8 = (char *)0xffffffff;
  abiversion._M_p = pcVar12;
  if (pcVar13 != (char *)0x0) {
    sVar9 = strlen(pcVar13);
    pcVar8 = pcVar13 + sVar9;
  }
                    /* try { // try from 0004e308 to 0004e30c has its CatchHandler @ 0004e672 */
  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>_> *)&stack0xffffffcc,
             pcVar13,pcVar8,0);
  this_01 = (Dwp_output_file *)(BYTE_ARRAY_002ae761 + unaff_EDI + 0x12);
  (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object =
       (_func_int_varargs **)this_01;
  machine = &(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_.field_2;
  (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_._M_dataplus._M_p =
       (pointer)machine;
                    /* try { // try from 0004e334 to 0004e338 has its CatchHandler @ 0004e66d */
  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
  _M_construct<char*>(&(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_,
                      abiversion._M_p,abiversion._M_p + local_30,0);
  *(undefined4 *)&(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.offset_ = 0;
  *(undefined4 *)
   ((int)&(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.offset_ + 4) = 0;
  (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.input_file_ = input_file;
  (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.shnum_ = 0xffffffff;
  puVar1 = &(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.field_0x2c;
  *puVar1 = *puVar1 & 0x80;
  (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = (Xindex *)0x0;
  (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.compressed_sections_ =
       (Compressed_section_map *)0x0;
  if (input_file != (Input_file *)0x0) {
    piVar2 = &(input_file->file_).object_count_;
    *piVar2 = *piVar2 + 1;
                    /* try { // try from 0004e377 to 0004e398 has its CatchHandler @ 0004e5a4 */
    bVar7 = Input_file::is_in_system_directory(input_file);
    (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.field_0x2c =
         (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.field_0x2c & 0xdf |
         bVar7 << 5;
    pPVar10 = Input_file::options(input_file);
    (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.field_0x2c =
         (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.field_0x2c & 0xbf |
         (byte)((pPVar10->as_needed_ & 1) << 6);
  }
  (this_00->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.
  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl._M_start
       = (pointer)0x0;
  pp_Var14 = (_func_int_varargs **)(BYTE_ARRAY_002aeae1 + unaff_EDI + 0x26);
  (this_00->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.
  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.
  _M_finish = (pointer)0x0;
  (this_00->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.
  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.
  _M_end_of_storage = (pointer)0x0;
  (this_00->super_Sized_relobj<64,_false>).super_Relobj.map_to_relocatable_relocs_ =
       (vector<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_> *)0x0;
  (this_00->super_Sized_relobj<64,_false>).super_Relobj.object_merge_map_ = (Object_merge_map *)0x0;
  (this_00->super_Sized_relobj<64,_false>).super_Relobj.relocs_must_follow_section_writes_ = false;
  (this_00->super_Sized_relobj<64,_false>).super_Relobj.sd_ = (Symbols_data *)0x0;
  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_counts_ = (uint *)0x0;
  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_bases_ = (uint *)0x0;
  (this_00->super_Sized_relobj<64,_false>).super_Relobj.first_dyn_reloc_ = 0;
  (this_00->super_Sized_relobj<64,_false>).super_Relobj.dyn_reloc_count_ = 0;
  (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object = pp_Var14;
  uVar11 = 0;
  do {
    *(undefined4 *)
     ((int)&(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_buckets + uVar11) =
         0;
    uVar11 = uVar11 + 4;
  } while (uVar11 < 0x1c);
  (this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_bucket_count = 1;
  (this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_buckets =
       &(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_single_bucket;
  (this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_before_begin._M_nxt =
       (_Hash_node_base *)0x0;
  (this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_element_count = 0;
  (this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_rehash_policy.
  _M_max_load_factor = 1.0;
  (this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_rehash_policy._M_next_resize =
       0;
  (this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_single_bucket =
       (__bucket_type)0x0;
  (this_00->super_Sized_relobj<64,_false>).section_offsets_.
  super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>._M_impl.
  _M_start = (pointer)0x0;
  (this_00->super_Sized_relobj<64,_false>).section_offsets_.
  super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>._M_impl.
  _M_finish = (pointer)0x0;
  (this_00->super_Sized_relobj<64,_false>).section_offsets_.
  super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>._M_impl.
  _M_end_of_storage = (pointer)0x0;
  if (abiversion._M_p != pcVar12) {
    operator_delete(abiversion._M_p);
  }
  (this_00->elf_file_).file_ = (Object *)this_00;
  (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object =
       (_func_int_varargs **)(unaff_EDI + 0x2aec03);
  (this_00->elf_file_).large_shndx_offset_ = 0;
  uVar6 = *(undefined4 *)(p + 0x2c);
  *(undefined4 *)&(this_00->elf_file_).shoff_ = *(undefined4 *)(p + 0x28);
  *(undefined4 *)((int)&(this_00->elf_file_).shoff_ + 4) = uVar6;
  (this_00->elf_file_).shnum_ = (uint)*(ushort *)(p + 0x3c);
  (this_00->elf_file_).shstrndx_ = (uint)*(ushort *)(p + 0x3e);
  pcVar13 = (char *)(uint)*(ushort *)(p + 0x34);
  if (*(ushort *)(p + 0x34) != 0x40) {
    pcVar12 = (char *)gettext(unaff_EDI + 0x1cc69f);
                    /* try { // try from 0004e4f8 to 0004e533 has its CatchHandler @ 0004e59f */
    Object::error((Object *)this_00,pcVar12,(uint)pcVar13 & 0xffff,0x40);
    pcVar12 = pcVar13;
  }
  pcVar13 = (char *)(uint)*(ushort *)(p + 0x3a);
  if (*(ushort *)(p + 0x3a) != 0x40) {
    pcVar12 = (char *)gettext(unaff_EDI + 0x1cc6b7);
    Object::error((Object *)this_00,pcVar12,(uint)pcVar13 & 0xffff,0x40);
    pcVar12 = pcVar13;
  }
  Sized_relobj_dwo<64,_false>::setup(this_00);
  if ((output_file != (Dwp_output_file *)0x0) && (output_file->size_ < 1)) {
    bVar3 = p[8];
    bVar4 = p[7];
    uVar5 = *(ushort *)(p + 0x12);
    output_file->size_ = 0x40;
    output_file->abiversion_ = (uint)bVar3;
    output_file->machine_ = (uint)uVar5;
    output_file->big_endian_ = 0;
    output_file->osabi_ = (uint)bVar4;
    *(undefined4 *)&output_file->next_file_offset_ = 0x40;
    *(undefined4 *)((int)&output_file->next_file_offset_ + 4) = 0;
    Dwp_output_file::record_target_info
              (this_01,(char *)pp_Var14,(int)machine,(int)pcVar12,(bool)in_stack_ffffffc4,
               in_stack_ffffffc8,(int)abiversion._M_p);
  }
  return (Relobj *)this_00;
}



int * FUN_0004e2b0(undefined4 *param_1,int param_2,int param_3,int param_4)

{
  byte bVar1;
  byte bVar2;
  short sVar3;
  ushort uVar4;
  int iVar5;
  int *piVar6;
  char *pcVar7;
  size_t sVar8;
  uint uVar9;
  byte *pbVar10;
  undefined4 uVar11;
  char *__s;
  int unaff_EDI;
  int iVar12;
  int iVar13;
  int *piVar14;
  undefined1 *local_34;
  int local_30;
  undefined1 local_2c [28];
  
  FUN_0004fb7e();
  piVar6 = (int *)FUN_0017ebf0(0xa8);
  __s = (char *)*param_1;
  pcVar7 = (char *)0xffffffff;
  local_34 = local_2c;
  if (__s != (char *)0x0) {
    sVar8 = strlen(__s);
    pcVar7 = __s + sVar8;
  }
                    /* try { // try from 0004e308 to 0004e30c has its CatchHandler @ 0004e672 */
  FUN_0004cf80(&local_34,__s,pcVar7,0);
  iVar12 = unaff_EDI + 0x2ae773;
  *piVar6 = iVar12;
  piVar14 = piVar6 + 3;
  piVar6[1] = (int)piVar14;
                    /* try { // try from 0004e334 to 0004e338 has its CatchHandler @ 0004e66d */
  FUN_0004d4e0(piVar6 + 1,local_34,local_34 + local_30,0,iVar12);
  piVar6[8] = 0;
  piVar6[9] = 0;
  piVar6[7] = param_3;
  piVar6[10] = -1;
  *(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0x80;
  piVar6[0xc] = 0;
  piVar6[0xd] = 0;
  if (param_3 != 0) {
    *(int *)(param_3 + 0x3c) = *(int *)(param_3 + 0x3c) + 1;
                    /* try { // try from 0004e377 to 0004e398 has its CatchHandler @ 0004e5a4 */
    uVar9 = FUN_0005cf30(param_3);
    *(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0xdf | (byte)((uVar9 & 1) << 5);
    pbVar10 = (byte *)FUN_0005cf10(param_3);
    *(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0xbf | (byte)((*pbVar10 & 1) << 6);
  }
  piVar6[0xe] = 0;
  iVar13 = unaff_EDI + 0x2aeb07;
  piVar6[0xf] = 0;
  piVar6[0x10] = 0;
  piVar6[0x11] = 0;
  piVar6[0x12] = 0;
  *(undefined1 *)(piVar6 + 0x13) = 0;
  piVar6[0x15] = 0;
  piVar6[0x16] = 0;
  piVar6[0x17] = 0;
  piVar6[0x18] = 0;
  piVar6[0x19] = 0;
  *piVar6 = iVar13;
  uVar9 = 0;
  do {
    *(undefined4 *)((int)piVar6 + uVar9 + 0x68) = 0;
    uVar9 = uVar9 + 4;
  } while (uVar9 < 0x1c);
  piVar6[0x1b] = 1;
  piVar6[0x1a] = (int)(piVar6 + 0x20);
  piVar6[0x1c] = 0;
  piVar6[0x1d] = 0;
  piVar6[0x1e] = 0x3f800000;
  piVar6[0x1f] = 0;
  piVar6[0x20] = 0;
  piVar6[0x21] = 0;
  piVar6[0x22] = 0;
  piVar6[0x23] = 0;
  if (local_34 != local_2c) {
    FUN_001807a0(local_34);
  }
  piVar6[0x24] = (int)piVar6;
  *piVar6 = unaff_EDI + 0x2aec03;
  piVar6[0x29] = 0;
  iVar5 = *(int *)(param_2 + 0x2c);
  piVar6[0x25] = *(int *)(param_2 + 0x28);
  piVar6[0x26] = iVar5;
  piVar6[0x27] = (uint)*(ushort *)(param_2 + 0x3c);
  piVar6[0x28] = (uint)*(ushort *)(param_2 + 0x3e);
  sVar3 = *(short *)(param_2 + 0x34);
  if (sVar3 != 0x40) {
    uVar11 = gettext(unaff_EDI + 0x1cc69f);
                    /* try { // try from 0004e4f8 to 0004e533 has its CatchHandler @ 0004e59f */
    FUN_00091980(piVar6,uVar11,sVar3,0x40,iVar12,iVar13,piVar14);
  }
  sVar3 = *(short *)(param_2 + 0x3a);
  if (sVar3 != 0x40) {
    uVar11 = gettext(unaff_EDI + 0x1cc6b7);
    FUN_00091980(piVar6,uVar11,sVar3,0x40);
  }
  FUN_0004e110(piVar6);
  if ((param_4 != 0) && (*(int *)(param_4 + 8) < 1)) {
    bVar1 = *(byte *)(param_2 + 8);
    bVar2 = *(byte *)(param_2 + 7);
    uVar4 = *(ushort *)(param_2 + 0x12);
    *(undefined4 *)(param_4 + 8) = 0x40;
    *(uint *)(param_4 + 0x14) = (uint)bVar1;
    *(uint *)(param_4 + 4) = (uint)uVar4;
    *(undefined4 *)(param_4 + 0xc) = 0;
    *(uint *)(param_4 + 0x10) = (uint)bVar2;
    *(undefined4 *)(param_4 + 0x1c) = 0x40;
    *(undefined4 *)(param_4 + 0x20) = 0;
    FUN_00032960();
  }
  return piVar6;
}


PUSH EBP
MOV EBP,ESP
PUSH EDI
CALL 0x0004fb7e
ADD EDI,0x2b3d47
PUSH ESI
PUSH EBX
SUB ESP,0x48
PUSH 0xa8
MOV EBX,EDI
CALL 0x0017ebf0
ADD ESP,0x10
MOV ESI,EAX
MOV EAX,dword ptr [EBP + 0x8]
MOV EDX,dword ptr [EAX]
LEA EAX,[EBP + -0x28]
MOV dword ptr [EBP + -0x3c],EAX
MOV dword ptr [EBP + -0x30],EAX
MOV EAX,0xffffffff
TEST EDX,EDX
JZ 0x0004e300
SUB ESP,0xc
MOV dword ptr [EBP + -0x40],EDX
PUSH EDX
CALL 0x000265f0
MOV EDX,dword ptr [EBP + -0x40]
ADD ESP,0x10
ADD EAX,EDX
PUSH 0x0
PUSH EAX
LEA EAX,[EBP + -0x30]
PUSH EDX
PUSH EAX
CALL 0x0004cf80
LEA EAX,[EDI + 0xffffaa2c]
MOV ECX,dword ptr [EBP + -0x2c]
ADD ESP,0x10
LEA EDX,[ESI + 0x4]
MOV dword ptr [EBP + -0x48],EAX
MOV dword ptr [ESI],EAX
LEA EAX,[ESI + 0xc]
MOV dword ptr [EBP + -0x40],EAX
MOV dword ptr [ESI + 0x4],EAX
MOV EAX,dword ptr [EBP + -0x30]
PUSH 0x0
ADD ECX,EAX
PUSH ECX
PUSH EAX
PUSH EDX
CALL 0x0004d4e0
MOV EAX,dword ptr [EBP + 0x10]
ADD ESP,0x10
MOV dword ptr [ESI + 0x20],0x0
MOV dword ptr [ESI + 0x24],0x0
MOV dword ptr [ESI + 0x1c],EAX
MOV dword ptr [ESI + 0x28],0xffffffff
AND byte ptr [ESI + 0x2c],0x80
MOV dword ptr [ESI + 0x30],0x0
MOV dword ptr [ESI + 0x34],0x0
TEST EAX,EAX
JZ 0x0004e3b3
ADD dword ptr [EAX + 0x3c],0x1
SUB ESP,0xc
MOV EBX,EDI
PUSH EAX
CALL 0x0005cf30
AND EAX,0x1
POP EDX
PUSH dword ptr [EBP + 0x10]
SHL EAX,0x5
MOV EDX,EAX
MOVZX EAX,byte ptr [ESI + 0x2c]
AND EAX,0xffffffdf
OR EAX,EDX
MOV byte ptr [ESI + 0x2c],AL
CALL 0x0005cf10
MOVZX EAX,byte ptr [EAX]
ADD ESP,0x10
AND EAX,0x1
SHL EAX,0x6
MOV EDX,EAX
MOVZX EAX,byte ptr [ESI + 0x2c]
AND EAX,0xffffffbf
OR EAX,EDX
MOV byte ptr [ESI + 0x2c],AL
MOV dword ptr [ESI + 0x38],0x0
LEA EAX,[EDI + 0xffffadc0]
XOR EDX,EDX
MOV dword ptr [ESI + 0x3c],0x0
MOV dword ptr [ESI + 0x40],0x0
MOV dword ptr [ESI + 0x44],0x0
MOV dword ptr [ESI + 0x48],0x0
MOV byte ptr [ESI + 0x4c],0x0
MOV dword ptr [ESI + 0x54],0x0
MOV dword ptr [ESI + 0x58],0x0
MOV dword ptr [ESI + 0x5c],0x0
MOV dword ptr [ESI + 0x60],0x0
MOV dword ptr [ESI + 0x64],0x0
MOV dword ptr [EBP + -0x44],EAX
MOV dword ptr [ESI],EAX
XOR EAX,EAX
MOV dword ptr [ESI + EAX*0x1 + 0x68],EDX
ADD EAX,0x4
CMP EAX,0x1c
JC 0x0004e40c
LEA EAX,[ESI + 0x80]
MOV dword ptr [ESI + 0x6c],0x1
MOV dword ptr [ESI + 0x68],EAX
MOV EAX,dword ptr [EBP + -0x30]
MOV dword ptr [ESI + 0x70],0x0
MOV dword ptr [ESI + 0x74],0x0
MOV dword ptr [ESI + 0x78],0x3f800000
MOV dword ptr [ESI + 0x7c],0x0
MOV dword ptr [ESI + 0x80],0x0
MOV dword ptr [ESI + 0x84],0x0
MOV dword ptr [ESI + 0x88],0x0
MOV dword ptr [ESI + 0x8c],0x0
CMP EAX,dword ptr [EBP + -0x3c]
JZ 0x0004e482
SUB ESP,0xc
MOV EBX,EDI
PUSH EAX
CALL 0x001807a0
ADD ESP,0x10
LEA EAX,[EDI + 0xffffaebc]
MOV dword ptr [ESI + 0x90],ESI
MOV dword ptr [ESI],EAX
MOV EAX,dword ptr [EBP + 0xc]
MOV dword ptr [ESI + 0xa4],0x0
MOV EDX,dword ptr [EAX + 0x2c]
MOV EAX,dword ptr [EAX + 0x28]
MOV dword ptr [ESI + 0x94],EAX
MOV EAX,dword ptr [EBP + 0xc]
MOV dword ptr [ESI + 0x98],EDX
MOVZX EAX,word ptr [EAX + 0x3c]
MOV dword ptr [ESI + 0x9c],EAX
MOV EAX,dword ptr [EBP + 0xc]
MOVZX EAX,word ptr [EAX + 0x3e]
MOV dword ptr [ESI + 0xa0],EAX
MOV EAX,dword ptr [EBP + 0xc]
MOVZX EDX,word ptr [EAX + 0x34]
CMP DX,0x40
JZ 0x0004e500
SUB ESP,0xc
LEA EAX,[EDI + 0xfff18958]
MOV EBX,EDI
MOV dword ptr [EBP + -0x3c],EDX
PUSH EAX
CALL 0x000263b0
MOV EDX,dword ptr [EBP + -0x3c]
ADD ESP,0x10
PUSH 0x40
MOVZX EDX,DX
PUSH EDX
PUSH EAX
PUSH ESI
CALL 0x00091980
ADD ESP,0x10
MOV EAX,dword ptr [EBP + 0xc]
MOVZX EDX,word ptr [EAX + 0x3a]
CMP DX,0x40
JZ 0x0004e537
SUB ESP,0xc
LEA EAX,[EDI + 0xfff18970]
MOV EBX,EDI
MOV dword ptr [EBP + -0x3c],EDX
PUSH EAX
CALL 0x000263b0
MOV EDX,dword ptr [EBP + -0x3c]
ADD ESP,0x10
PUSH 0x40
MOVZX EDX,DX
PUSH EDX
PUSH EAX
PUSH ESI
CALL 0x00091980
ADD ESP,0x10
SUB ESP,0xc
PUSH ESI
CALL 0x0004e110
MOV EBX,dword ptr [EBP + 0x14]
ADD ESP,0x10
TEST EBX,EBX
JZ 0x0004e595
MOV EAX,dword ptr [EBP + 0x14]
MOV ECX,dword ptr [EAX + 0x8]
TEST ECX,ECX
JG 0x0004e595
MOV ECX,dword ptr [EBP + 0xc]
MOV EAX,dword ptr [EBP + 0xc]
MOV EBX,dword ptr [EBP + 0x14]
MOVZX EAX,byte ptr [EAX + 0x8]
MOVZX EDX,byte ptr [ECX + 0x7]
MOVZX ECX,word ptr [ECX + 0x12]
MOV dword ptr [EBX + 0x8],0x40
MOV dword ptr [EBX + 0x14],EAX
MOV EAX,EBX
MOV dword ptr [EBX + 0x4],ECX
MOV dword ptr [EBX + 0xc],0x0
MOV dword ptr [EBX + 0x10],EDX
MOV dword ptr [EBX + 0x1c],0x40
MOV dword ptr [EBX + 0x20],0x0
CALL 0x00032960
LEA ESP,[EBP + -0xc]
MOV EAX,ESI
POP EBX
POP ESI
POP EDI
POP EBP
RET
(translation_unit "int * FUN_0004e2b0(undefined4 *param_1,int param_2,int param_3,int param_4)\n\n{\n  byte bVar1;\n  byte bVar2;\n  short sVar3;\n  ushort uVar4;\n  int iVar5;\n  int *piVar6;\n  char *pcVar7;\n  size_t sVar8;\n  uint uVar9;\n  byte *pbVar10;\n  undefined4 uVar11;\n  char *__s;\n  int unaff_EDI;\n  int iVar12;\n  int iVar13;\n  int *piVar14;\n  undefined1 *local_34;\n  int local_30;\n  undefined1 local_2c [28];\n  \n  FUN_0004fb7e();\n  piVar6 = (int *)FUN_0017ebf0(0xa8);\n  __s = (char *)*param_1;\n  pcVar7 = (char *)0xffffffff;\n  local_34 = local_2c;\n  if (__s != (char *)0x0) {\n    sVar8 = strlen(__s);\n    pcVar7 = __s + sVar8;\n  }\n                    /* try { // try from 0004e308 to 0004e30c has its CatchHandler @ 0004e672 */\n  FUN_0004cf80(&local_34,__s,pcVar7,0);\n  iVar12 = unaff_EDI + 0x2ae773;\n  *piVar6 = iVar12;\n  piVar14 = piVar6 + 3;\n  piVar6[1] = (int)piVar14;\n                    /* try { // try from 0004e334 to 0004e338 has its CatchHandler @ 0004e66d */\n  FUN_0004d4e0(piVar6 + 1,local_34,local_34 + local_30,0,iVar12);\n  piVar6[8] = 0;\n  piVar6[9] = 0;\n  piVar6[7] = param_3;\n  piVar6[10] = -1;\n  *(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0x80;\n  piVar6[0xc] = 0;\n  piVar6[0xd] = 0;\n  if (param_3 != 0) {\n    *(int *)(param_3 + 0x3c) = *(int *)(param_3 + 0x3c) + 1;\n                    /* try { // try from 0004e377 to 0004e398 has its CatchHandler @ 0004e5a4 */\n    uVar9 = FUN_0005cf30(param_3);\n    *(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0xdf | (byte)((uVar9 & 1) << 5);\n    pbVar10 = (byte *)FUN_0005cf10(param_3);\n    *(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0xbf | (byte)((*pbVar10 & 1) << 6);\n  }\n  piVar6[0xe] = 0;\n  iVar13 = unaff_EDI + 0x2aeb07;\n  piVar6[0xf] = 0;\n  piVar6[0x10] = 0;\n  piVar6[0x11] = 0;\n  piVar6[0x12] = 0;\n  *(undefined1 *)(piVar6 + 0x13) = 0;\n  piVar6[0x15] = 0;\n  piVar6[0x16] = 0;\n  piVar6[0x17] = 0;\n  piVar6[0x18] = 0;\n  piVar6[0x19] = 0;\n  *piVar6 = iVar13;\n  uVar9 = 0;\n  do {\n    *(undefined4 *)((int)piVar6 + uVar9 + 0x68) = 0;\n    uVar9 = uVar9 + 4;\n  } while (uVar9 < 0x1c);\n  piVar6[0x1b] = 1;\n  piVar6[0x1a] = (int)(piVar6 + 0x20);\n  piVar6[0x1c] = 0;\n  piVar6[0x1d] = 0;\n  piVar6[0x1e] = 0x3f800000;\n  piVar6[0x1f] = 0;\n  piVar6[0x20] = 0;\n  piVar6[0x21] = 0;\n  piVar6[0x22] = 0;\n  piVar6[0x23] = 0;\n  if (local_34 != local_2c) {\n    FUN_001807a0(local_34);\n  }\n  piVar6[0x24] = (int)piVar6;\n  *piVar6 = unaff_EDI + 0x2aec03;\n  piVar6[0x29] = 0;\n  iVar5 = *(int *)(param_2 + 0x2c);\n  piVar6[0x25] = *(int *)(param_2 + 0x28);\n  piVar6[0x26] = iVar5;\n  piVar6[0x27] = (uint)*(ushort *)(param_2 + 0x3c);\n  piVar6[0x28] = (uint)*(ushort *)(param_2 + 0x3e);\n  sVar3 = *(short *)(param_2 + 0x34);\n  if (sVar3 != 0x40) {\n    uVar11 = gettext(unaff_EDI + 0x1cc69f);\n                    /* try { // try from 0004e4f8 to 0004e533 has its CatchHandler @ 0004e59f */\n    FUN_00091980(piVar6,uVar11,sVar3,0x40,iVar12,iVar13,piVar14);\n  }\n  sVar3 = *(short *)(param_2 + 0x3a);\n  if (sVar3 != 0x40) {\n    uVar11 = gettext(unaff_EDI + 0x1cc6b7);\n    FUN_00091980(piVar6,uVar11,sVar3,0x40);\n  }\n  FUN_0004e110(piVar6);\n  if ((param_4 != 0) && (*(int *)(param_4 + 8) < 1)) {\n    bVar1 = *(byte *)(param_2 + 8);\n    bVar2 = *(byte *)(param_2 + 7);\n    uVar4 = *(ushort *)(param_2 + 0x12);\n    *(undefined4 *)(param_4 + 8) = 0x40;\n    *(uint *)(param_4 + 0x14) = (uint)bVar1;\n    *(uint *)(param_4 + 4) = (uint)uVar4;\n    *(undefined4 *)(param_4 + 0xc) = 0;\n    *(uint *)(param_4 + 0x10) = (uint)bVar2;\n    *(undefined4 *)(param_4 + 0x1c) = 0x40;\n    *(undefined4 *)(param_4 + 0x20) = 0;\n    FUN_00032960();\n  }\n  return piVar6;\n}\n\n" (function_definition "int * FUN_0004e2b0(undefined4 *param_1,int param_2,int param_3,int param_4)\n\n{\n  byte bVar1;\n  byte bVar2;\n  short sVar3;\n  ushort uVar4;\n  int iVar5;\n  int *piVar6;\n  char *pcVar7;\n  size_t sVar8;\n  uint uVar9;\n  byte *pbVar10;\n  undefined4 uVar11;\n  char *__s;\n  int unaff_EDI;\n  int iVar12;\n  int iVar13;\n  int *piVar14;\n  undefined1 *local_34;\n  int local_30;\n  undefined1 local_2c [28];\n  \n  FUN_0004fb7e();\n  piVar6 = (int *)FUN_0017ebf0(0xa8);\n  __s = (char *)*param_1;\n  pcVar7 = (char *)0xffffffff;\n  local_34 = local_2c;\n  if (__s != (char *)0x0) {\n    sVar8 = strlen(__s);\n    pcVar7 = __s + sVar8;\n  }\n                    /* try { // try from 0004e308 to 0004e30c has its CatchHandler @ 0004e672 */\n  FUN_0004cf80(&local_34,__s,pcVar7,0);\n  iVar12 = unaff_EDI + 0x2ae773;\n  *piVar6 = iVar12;\n  piVar14 = piVar6 + 3;\n  piVar6[1] = (int)piVar14;\n                    /* try { // try from 0004e334 to 0004e338 has its CatchHandler @ 0004e66d */\n  FUN_0004d4e0(piVar6 + 1,local_34,local_34 + local_30,0,iVar12);\n  piVar6[8] = 0;\n  piVar6[9] = 0;\n  piVar6[7] = param_3;\n  piVar6[10] = -1;\n  *(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0x80;\n  piVar6[0xc] = 0;\n  piVar6[0xd] = 0;\n  if (param_3 != 0) {\n    *(int *)(param_3 + 0x3c) = *(int *)(param_3 + 0x3c) + 1;\n                    /* try { // try from 0004e377 to 0004e398 has its CatchHandler @ 0004e5a4 */\n    uVar9 = FUN_0005cf30(param_3);\n    *(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0xdf | (byte)((uVar9 & 1) << 5);\n    pbVar10 = (byte *)FUN_0005cf10(param_3);\n    *(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0xbf | (byte)((*pbVar10 & 1) << 6);\n  }\n  piVar6[0xe] = 0;\n  iVar13 = unaff_EDI + 0x2aeb07;\n  piVar6[0xf] = 0;\n  piVar6[0x10] = 0;\n  piVar6[0x11] = 0;\n  piVar6[0x12] = 0;\n  *(undefined1 *)(piVar6 + 0x13) = 0;\n  piVar6[0x15] = 0;\n  piVar6[0x16] = 0;\n  piVar6[0x17] = 0;\n  piVar6[0x18] = 0;\n  piVar6[0x19] = 0;\n  *piVar6 = iVar13;\n  uVar9 = 0;\n  do {\n    *(undefined4 *)((int)piVar6 + uVar9 + 0x68) = 0;\n    uVar9 = uVar9 + 4;\n  } while (uVar9 < 0x1c);\n  piVar6[0x1b] = 1;\n  piVar6[0x1a] = (int)(piVar6 + 0x20);\n  piVar6[0x1c] = 0;\n  piVar6[0x1d] = 0;\n  piVar6[0x1e] = 0x3f800000;\n  piVar6[0x1f] = 0;\n  piVar6[0x20] = 0;\n  piVar6[0x21] = 0;\n  piVar6[0x22] = 0;\n  piVar6[0x23] = 0;\n  if (local_34 != local_2c) {\n    FUN_001807a0(local_34);\n  }\n  piVar6[0x24] = (int)piVar6;\n  *piVar6 = unaff_EDI + 0x2aec03;\n  piVar6[0x29] = 0;\n  iVar5 = *(int *)(param_2 + 0x2c);\n  piVar6[0x25] = *(int *)(param_2 + 0x28);\n  piVar6[0x26] = iVar5;\n  piVar6[0x27] = (uint)*(ushort *)(param_2 + 0x3c);\n  piVar6[0x28] = (uint)*(ushort *)(param_2 + 0x3e);\n  sVar3 = *(short *)(param_2 + 0x34);\n  if (sVar3 != 0x40) {\n    uVar11 = gettext(unaff_EDI + 0x1cc69f);\n                    /* try { // try from 0004e4f8 to 0004e533 has its CatchHandler @ 0004e59f */\n    FUN_00091980(piVar6,uVar11,sVar3,0x40,iVar12,iVar13,piVar14);\n  }\n  sVar3 = *(short *)(param_2 + 0x3a);\n  if (sVar3 != 0x40) {\n    uVar11 = gettext(unaff_EDI + 0x1cc6b7);\n    FUN_00091980(piVar6,uVar11,sVar3,0x40);\n  }\n  FUN_0004e110(piVar6);\n  if ((param_4 != 0) && (*(int *)(param_4 + 8) < 1)) {\n    bVar1 = *(byte *)(param_2 + 8);\n    bVar2 = *(byte *)(param_2 + 7);\n    uVar4 = *(ushort *)(param_2 + 0x12);\n    *(undefined4 *)(param_4 + 8) = 0x40;\n    *(uint *)(param_4 + 0x14) = (uint)bVar1;\n    *(uint *)(param_4 + 4) = (uint)uVar4;\n    *(undefined4 *)(param_4 + 0xc) = 0;\n    *(uint *)(param_4 + 0x10) = (uint)bVar2;\n    *(undefined4 *)(param_4 + 0x1c) = 0x40;\n    *(undefined4 *)(param_4 + 0x20) = 0;\n    FUN_00032960();\n  }\n  return piVar6;\n}" primitive_type (pointer_declarator "* FUN_0004e2b0(undefined4 *param_1,int param_2,int param_3,int param_4)" * (function_declarator "FUN_0004e2b0(undefined4 *param_1,int param_2,int param_3,int param_4)" identifier (parameter_list "(undefined4 *param_1,int param_2,int param_3,int param_4)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) )))) (compound_statement "{\n  byte bVar1;\n  byte bVar2;\n  short sVar3;\n  ushort uVar4;\n  int iVar5;\n  int *piVar6;\n  char *pcVar7;\n  size_t sVar8;\n  uint uVar9;\n  byte *pbVar10;\n  undefined4 uVar11;\n  char *__s;\n  int unaff_EDI;\n  int iVar12;\n  int iVar13;\n  int *piVar14;\n  undefined1 *local_34;\n  int local_30;\n  undefined1 local_2c [28];\n  \n  FUN_0004fb7e();\n  piVar6 = (int *)FUN_0017ebf0(0xa8);\n  __s = (char *)*param_1;\n  pcVar7 = (char *)0xffffffff;\n  local_34 = local_2c;\n  if (__s != (char *)0x0) {\n    sVar8 = strlen(__s);\n    pcVar7 = __s + sVar8;\n  }\n                    /* try { // try from 0004e308 to 0004e30c has its CatchHandler @ 0004e672 */\n  FUN_0004cf80(&local_34,__s,pcVar7,0);\n  iVar12 = unaff_EDI + 0x2ae773;\n  *piVar6 = iVar12;\n  piVar14 = piVar6 + 3;\n  piVar6[1] = (int)piVar14;\n                    /* try { // try from 0004e334 to 0004e338 has its CatchHandler @ 0004e66d */\n  FUN_0004d4e0(piVar6 + 1,local_34,local_34 + local_30,0,iVar12);\n  piVar6[8] = 0;\n  piVar6[9] = 0;\n  piVar6[7] = param_3;\n  piVar6[10] = -1;\n  *(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0x80;\n  piVar6[0xc] = 0;\n  piVar6[0xd] = 0;\n  if (param_3 != 0) {\n    *(int *)(param_3 + 0x3c) = *(int *)(param_3 + 0x3c) + 1;\n                    /* try { // try from 0004e377 to 0004e398 has its CatchHandler @ 0004e5a4 */\n    uVar9 = FUN_0005cf30(param_3);\n    *(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0xdf | (byte)((uVar9 & 1) << 5);\n    pbVar10 = (byte *)FUN_0005cf10(param_3);\n    *(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0xbf | (byte)((*pbVar10 & 1) << 6);\n  }\n  piVar6[0xe] = 0;\n  iVar13 = unaff_EDI + 0x2aeb07;\n  piVar6[0xf] = 0;\n  piVar6[0x10] = 0;\n  piVar6[0x11] = 0;\n  piVar6[0x12] = 0;\n  *(undefined1 *)(piVar6 + 0x13) = 0;\n  piVar6[0x15] = 0;\n  piVar6[0x16] = 0;\n  piVar6[0x17] = 0;\n  piVar6[0x18] = 0;\n  piVar6[0x19] = 0;\n  *piVar6 = iVar13;\n  uVar9 = 0;\n  do {\n    *(undefined4 *)((int)piVar6 + uVar9 + 0x68) = 0;\n    uVar9 = uVar9 + 4;\n  } while (uVar9 < 0x1c);\n  piVar6[0x1b] = 1;\n  piVar6[0x1a] = (int)(piVar6 + 0x20);\n  piVar6[0x1c] = 0;\n  piVar6[0x1d] = 0;\n  piVar6[0x1e] = 0x3f800000;\n  piVar6[0x1f] = 0;\n  piVar6[0x20] = 0;\n  piVar6[0x21] = 0;\n  piVar6[0x22] = 0;\n  piVar6[0x23] = 0;\n  if (local_34 != local_2c) {\n    FUN_001807a0(local_34);\n  }\n  piVar6[0x24] = (int)piVar6;\n  *piVar6 = unaff_EDI + 0x2aec03;\n  piVar6[0x29] = 0;\n  iVar5 = *(int *)(param_2 + 0x2c);\n  piVar6[0x25] = *(int *)(param_2 + 0x28);\n  piVar6[0x26] = iVar5;\n  piVar6[0x27] = (uint)*(ushort *)(param_2 + 0x3c);\n  piVar6[0x28] = (uint)*(ushort *)(param_2 + 0x3e);\n  sVar3 = *(short *)(param_2 + 0x34);\n  if (sVar3 != 0x40) {\n    uVar11 = gettext(unaff_EDI + 0x1cc69f);\n                    /* try { // try from 0004e4f8 to 0004e533 has its CatchHandler @ 0004e59f */\n    FUN_00091980(piVar6,uVar11,sVar3,0x40,iVar12,iVar13,piVar14);\n  }\n  sVar3 = *(short *)(param_2 + 0x3a);\n  if (sVar3 != 0x40) {\n    uVar11 = gettext(unaff_EDI + 0x1cc6b7);\n    FUN_00091980(piVar6,uVar11,sVar3,0x40);\n  }\n  FUN_0004e110(piVar6);\n  if ((param_4 != 0) && (*(int *)(param_4 + 8) < 1)) {\n    bVar1 = *(byte *)(param_2 + 8);\n    bVar2 = *(byte *)(param_2 + 7);\n    uVar4 = *(ushort *)(param_2 + 0x12);\n    *(undefined4 *)(param_4 + 8) = 0x40;\n    *(uint *)(param_4 + 0x14) = (uint)bVar1;\n    *(uint *)(param_4 + 4) = (uint)uVar4;\n    *(undefined4 *)(param_4 + 0xc) = 0;\n    *(uint *)(param_4 + 0x10) = (uint)bVar2;\n    *(undefined4 *)(param_4 + 0x1c) = 0x40;\n    *(undefined4 *)(param_4 + 0x20) = 0;\n    FUN_00032960();\n  }\n  return piVar6;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "short sVar3;" (sized_type_specifier "short" short) identifier ;) (declaration "ushort uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "size_t sVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "undefined1 *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "undefined1 local_2c [28];" type_identifier (array_declarator "local_2c [28]" identifier [ number_literal ]) ;) (expression_statement "FUN_0004fb7e();" (call_expression "FUN_0004fb7e()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar6 = (int *)FUN_0017ebf0(0xa8);" (assignment_expression "piVar6 = (int *)FUN_0017ebf0(0xa8)" identifier = (cast_expression "(int *)FUN_0017ebf0(0xa8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0017ebf0(0xa8)" identifier (argument_list "(0xa8)" ( number_literal ))))) ;) (expression_statement "__s = (char *)*param_1;" (assignment_expression "__s = (char *)*param_1" identifier = (cast_expression "(char *)*param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "pcVar7 = (char *)0xffffffff;" (assignment_expression "pcVar7 = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_34 = local_2c;" (assignment_expression "local_34 = local_2c" identifier = identifier) ;) (if_statement "if (__s != (char *)0x0) {\n    sVar8 = strlen(__s);\n    pcVar7 = __s + sVar8;\n  }" if (parenthesized_expression "(__s != (char *)0x0)" ( (binary_expression "__s != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sVar8 = strlen(__s);\n    pcVar7 = __s + sVar8;\n  }" { (expression_statement "sVar8 = strlen(__s);" (assignment_expression "sVar8 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (expression_statement "pcVar7 = __s + sVar8;" (assignment_expression "pcVar7 = __s + sVar8" identifier = (binary_expression "__s + sVar8" identifier + identifier)) ;) })) comment (expression_statement "FUN_0004cf80(&local_34,__s,pcVar7,0);" (call_expression "FUN_0004cf80(&local_34,__s,pcVar7,0)" identifier (argument_list "(&local_34,__s,pcVar7,0)" ( (pointer_expression "&local_34" & identifier) , identifier , identifier , number_literal ))) ;) (expression_statement "iVar12 = unaff_EDI + 0x2ae773;" (assignment_expression "iVar12 = unaff_EDI + 0x2ae773" identifier = (binary_expression "unaff_EDI + 0x2ae773" identifier + number_literal)) ;) (expression_statement "*piVar6 = iVar12;" (assignment_expression "*piVar6 = iVar12" (pointer_expression "*piVar6" * identifier) = identifier) ;) (expression_statement "piVar14 = piVar6 + 3;" (assignment_expression "piVar14 = piVar6 + 3" identifier = (binary_expression "piVar6 + 3" identifier + number_literal)) ;) (expression_statement "piVar6[1] = (int)piVar14;" (assignment_expression "piVar6[1] = (int)piVar14" (subscript_expression "piVar6[1]" identifier [ number_literal ]) = (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier)) ;) comment (expression_statement "FUN_0004d4e0(piVar6 + 1,local_34,local_34 + local_30,0,iVar12);" (call_expression "FUN_0004d4e0(piVar6 + 1,local_34,local_34 + local_30,0,iVar12)" identifier (argument_list "(piVar6 + 1,local_34,local_34 + local_30,0,iVar12)" ( (binary_expression "piVar6 + 1" identifier + number_literal) , identifier , (binary_expression "local_34 + local_30" identifier + identifier) , number_literal , identifier ))) ;) (expression_statement "piVar6[8] = 0;" (assignment_expression "piVar6[8] = 0" (subscript_expression "piVar6[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[9] = 0;" (assignment_expression "piVar6[9] = 0" (subscript_expression "piVar6[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[7] = param_3;" (assignment_expression "piVar6[7] = param_3" (subscript_expression "piVar6[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar6[10] = -1;" (assignment_expression "piVar6[10] = -1" (subscript_expression "piVar6[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0x80;" (assignment_expression "*(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0x80" (pointer_expression "*(byte *)(piVar6 + 0xb)" * (cast_expression "(byte *)(piVar6 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar6 + 0xb)" ( (binary_expression "piVar6 + 0xb" identifier + number_literal) )))) = (binary_expression "*(byte *)(piVar6 + 0xb) & 0x80" (pointer_expression "*(byte *)(piVar6 + 0xb)" * (cast_expression "(byte *)(piVar6 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar6 + 0xb)" ( (binary_expression "piVar6 + 0xb" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "piVar6[0xc] = 0;" (assignment_expression "piVar6[0xc] = 0" (subscript_expression "piVar6[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[0xd] = 0;" (assignment_expression "piVar6[0xd] = 0" (subscript_expression "piVar6[0xd]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (param_3 != 0) {\n    *(int *)(param_3 + 0x3c) = *(int *)(param_3 + 0x3c) + 1;\n                    /* try { // try from 0004e377 to 0004e398 has its CatchHandler @ 0004e5a4 */\n    uVar9 = FUN_0005cf30(param_3);\n    *(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0xdf | (byte)((uVar9 & 1) << 5);\n    pbVar10 = (byte *)FUN_0005cf10(param_3);\n    *(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0xbf | (byte)((*pbVar10 & 1) << 6);\n  }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n    *(int *)(param_3 + 0x3c) = *(int *)(param_3 + 0x3c) + 1;\n                    /* try { // try from 0004e377 to 0004e398 has its CatchHandler @ 0004e5a4 */\n    uVar9 = FUN_0005cf30(param_3);\n    *(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0xdf | (byte)((uVar9 & 1) << 5);\n    pbVar10 = (byte *)FUN_0005cf10(param_3);\n    *(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0xbf | (byte)((*pbVar10 & 1) << 6);\n  }" { (expression_statement "*(int *)(param_3 + 0x3c) = *(int *)(param_3 + 0x3c) + 1;" (assignment_expression "*(int *)(param_3 + 0x3c) = *(int *)(param_3 + 0x3c) + 1" (pointer_expression "*(int *)(param_3 + 0x3c)" * (cast_expression "(int *)(param_3 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x3c)" ( (binary_expression "param_3 + 0x3c" identifier + number_literal) )))) = (binary_expression "*(int *)(param_3 + 0x3c) + 1" (pointer_expression "*(int *)(param_3 + 0x3c)" * (cast_expression "(int *)(param_3 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x3c)" ( (binary_expression "param_3 + 0x3c" identifier + number_literal) )))) + number_literal)) ;) comment (expression_statement "uVar9 = FUN_0005cf30(param_3);" (assignment_expression "uVar9 = FUN_0005cf30(param_3)" identifier = (call_expression "FUN_0005cf30(param_3)" identifier (argument_list "(param_3)" ( identifier )))) ;) (expression_statement "*(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0xdf | (byte)((uVar9 & 1) << 5);" (assignment_expression "*(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0xdf | (byte)((uVar9 & 1) << 5)" (pointer_expression "*(byte *)(piVar6 + 0xb)" * (cast_expression "(byte *)(piVar6 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar6 + 0xb)" ( (binary_expression "piVar6 + 0xb" identifier + number_literal) )))) = (binary_expression "*(byte *)(piVar6 + 0xb) & 0xdf | (byte)((uVar9 & 1) << 5)" (binary_expression "*(byte *)(piVar6 + 0xb) & 0xdf" (pointer_expression "*(byte *)(piVar6 + 0xb)" * (cast_expression "(byte *)(piVar6 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar6 + 0xb)" ( (binary_expression "piVar6 + 0xb" identifier + number_literal) )))) & number_literal) | (call_expression "(byte)((uVar9 & 1) << 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uVar9 & 1) << 5)" ( (binary_expression "(uVar9 & 1) << 5" (parenthesized_expression "(uVar9 & 1)" ( (binary_expression "uVar9 & 1" identifier & number_literal) )) << number_literal) ))))) ;) (expression_statement "pbVar10 = (byte *)FUN_0005cf10(param_3);" (assignment_expression "pbVar10 = (byte *)FUN_0005cf10(param_3)" identifier = (cast_expression "(byte *)FUN_0005cf10(param_3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0005cf10(param_3)" identifier (argument_list "(param_3)" ( identifier ))))) ;) (expression_statement "*(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0xbf | (byte)((*pbVar10 & 1) << 6);" (assignment_expression "*(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0xbf | (byte)((*pbVar10 & 1) << 6)" (pointer_expression "*(byte *)(piVar6 + 0xb)" * (cast_expression "(byte *)(piVar6 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar6 + 0xb)" ( (binary_expression "piVar6 + 0xb" identifier + number_literal) )))) = (binary_expression "*(byte *)(piVar6 + 0xb) & 0xbf | (byte)((*pbVar10 & 1) << 6)" (binary_expression "*(byte *)(piVar6 + 0xb) & 0xbf" (pointer_expression "*(byte *)(piVar6 + 0xb)" * (cast_expression "(byte *)(piVar6 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar6 + 0xb)" ( (binary_expression "piVar6 + 0xb" identifier + number_literal) )))) & number_literal) | (call_expression "(byte)((*pbVar10 & 1) << 6)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((*pbVar10 & 1) << 6)" ( (binary_expression "(*pbVar10 & 1) << 6" (parenthesized_expression "(*pbVar10 & 1)" ( (binary_expression "*pbVar10 & 1" (pointer_expression "*pbVar10" * identifier) & number_literal) )) << number_literal) ))))) ;) })) (expression_statement "piVar6[0xe] = 0;" (assignment_expression "piVar6[0xe] = 0" (subscript_expression "piVar6[0xe]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar13 = unaff_EDI + 0x2aeb07;" (assignment_expression "iVar13 = unaff_EDI + 0x2aeb07" identifier = (binary_expression "unaff_EDI + 0x2aeb07" identifier + number_literal)) ;) (expression_statement "piVar6[0xf] = 0;" (assignment_expression "piVar6[0xf] = 0" (subscript_expression "piVar6[0xf]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[0x10] = 0;" (assignment_expression "piVar6[0x10] = 0" (subscript_expression "piVar6[0x10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[0x11] = 0;" (assignment_expression "piVar6[0x11] = 0" (subscript_expression "piVar6[0x11]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[0x12] = 0;" (assignment_expression "piVar6[0x12] = 0" (subscript_expression "piVar6[0x12]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(piVar6 + 0x13) = 0;" (assignment_expression "*(undefined1 *)(piVar6 + 0x13) = 0" (pointer_expression "*(undefined1 *)(piVar6 + 0x13)" * (cast_expression "(undefined1 *)(piVar6 + 0x13)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar6 + 0x13)" ( (binary_expression "piVar6 + 0x13" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar6[0x15] = 0;" (assignment_expression "piVar6[0x15] = 0" (subscript_expression "piVar6[0x15]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[0x16] = 0;" (assignment_expression "piVar6[0x16] = 0" (subscript_expression "piVar6[0x16]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[0x17] = 0;" (assignment_expression "piVar6[0x17] = 0" (subscript_expression "piVar6[0x17]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[0x18] = 0;" (assignment_expression "piVar6[0x18] = 0" (subscript_expression "piVar6[0x18]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[0x19] = 0;" (assignment_expression "piVar6[0x19] = 0" (subscript_expression "piVar6[0x19]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*piVar6 = iVar13;" (assignment_expression "*piVar6 = iVar13" (pointer_expression "*piVar6" * identifier) = identifier) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (do_statement "do {\n    *(undefined4 *)((int)piVar6 + uVar9 + 0x68) = 0;\n    uVar9 = uVar9 + 4;\n  } while (uVar9 < 0x1c);" do (compound_statement "{\n    *(undefined4 *)((int)piVar6 + uVar9 + 0x68) = 0;\n    uVar9 = uVar9 + 4;\n  }" { (expression_statement "*(undefined4 *)((int)piVar6 + uVar9 + 0x68) = 0;" (assignment_expression "*(undefined4 *)((int)piVar6 + uVar9 + 0x68) = 0" (pointer_expression "*(undefined4 *)((int)piVar6 + uVar9 + 0x68)" * (cast_expression "(undefined4 *)((int)piVar6 + uVar9 + 0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar6 + uVar9 + 0x68)" ( (binary_expression "(int)piVar6 + uVar9 + 0x68" (binary_expression "(int)piVar6 + uVar9" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar9 = uVar9 + 4;" (assignment_expression "uVar9 = uVar9 + 4" identifier = (binary_expression "uVar9 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar9 < 0x1c)" ( (binary_expression "uVar9 < 0x1c" identifier < number_literal) )) ;) (expression_statement "piVar6[0x1b] = 1;" (assignment_expression "piVar6[0x1b] = 1" (subscript_expression "piVar6[0x1b]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[0x1a] = (int)(piVar6 + 0x20);" (assignment_expression "piVar6[0x1a] = (int)(piVar6 + 0x20)" (subscript_expression "piVar6[0x1a]" identifier [ number_literal ]) = (cast_expression "(int)(piVar6 + 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar6 + 0x20)" ( (binary_expression "piVar6 + 0x20" identifier + number_literal) )))) ;) (expression_statement "piVar6[0x1c] = 0;" (assignment_expression "piVar6[0x1c] = 0" (subscript_expression "piVar6[0x1c]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[0x1d] = 0;" (assignment_expression "piVar6[0x1d] = 0" (subscript_expression "piVar6[0x1d]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[0x1e] = 0x3f800000;" (assignment_expression "piVar6[0x1e] = 0x3f800000" (subscript_expression "piVar6[0x1e]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[0x1f] = 0;" (assignment_expression "piVar6[0x1f] = 0" (subscript_expression "piVar6[0x1f]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[0x20] = 0;" (assignment_expression "piVar6[0x20] = 0" (subscript_expression "piVar6[0x20]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[0x21] = 0;" (assignment_expression "piVar6[0x21] = 0" (subscript_expression "piVar6[0x21]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[0x22] = 0;" (assignment_expression "piVar6[0x22] = 0" (subscript_expression "piVar6[0x22]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[0x23] = 0;" (assignment_expression "piVar6[0x23] = 0" (subscript_expression "piVar6[0x23]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (local_34 != local_2c) {\n    FUN_001807a0(local_34);\n  }" if (parenthesized_expression "(local_34 != local_2c)" ( (binary_expression "local_34 != local_2c" identifier != identifier) )) (compound_statement "{\n    FUN_001807a0(local_34);\n  }" { (expression_statement "FUN_001807a0(local_34);" (call_expression "FUN_001807a0(local_34)" identifier (argument_list "(local_34)" ( identifier ))) ;) })) (expression_statement "piVar6[0x24] = (int)piVar6;" (assignment_expression "piVar6[0x24] = (int)piVar6" (subscript_expression "piVar6[0x24]" identifier [ number_literal ]) = (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*piVar6 = unaff_EDI + 0x2aec03;" (assignment_expression "*piVar6 = unaff_EDI + 0x2aec03" (pointer_expression "*piVar6" * identifier) = (binary_expression "unaff_EDI + 0x2aec03" identifier + number_literal)) ;) (expression_statement "piVar6[0x29] = 0;" (assignment_expression "piVar6[0x29] = 0" (subscript_expression "piVar6[0x29]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar5 = *(int *)(param_2 + 0x2c);" (assignment_expression "iVar5 = *(int *)(param_2 + 0x2c)" identifier = (pointer_expression "*(int *)(param_2 + 0x2c)" * (cast_expression "(int *)(param_2 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2c)" ( (binary_expression "param_2 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "piVar6[0x25] = *(int *)(param_2 + 0x28);" (assignment_expression "piVar6[0x25] = *(int *)(param_2 + 0x28)" (subscript_expression "piVar6[0x25]" identifier [ number_literal ]) = (pointer_expression "*(int *)(param_2 + 0x28)" * (cast_expression "(int *)(param_2 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x28)" ( (binary_expression "param_2 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "piVar6[0x26] = iVar5;" (assignment_expression "piVar6[0x26] = iVar5" (subscript_expression "piVar6[0x26]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar6[0x27] = (uint)*(ushort *)(param_2 + 0x3c);" (assignment_expression "piVar6[0x27] = (uint)*(ushort *)(param_2 + 0x3c)" (subscript_expression "piVar6[0x27]" identifier [ number_literal ]) = (binary_expression "(uint)*(ushort *)(param_2 + 0x3c)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(param_2 + 0x3c)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3c)" ( (binary_expression "param_2 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "piVar6[0x28] = (uint)*(ushort *)(param_2 + 0x3e);" (assignment_expression "piVar6[0x28] = (uint)*(ushort *)(param_2 + 0x3e)" (subscript_expression "piVar6[0x28]" identifier [ number_literal ]) = (binary_expression "(uint)*(ushort *)(param_2 + 0x3e)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(param_2 + 0x3e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3e)" ( (binary_expression "param_2 + 0x3e" identifier + number_literal) ))))) ;) (expression_statement "sVar3 = *(short *)(param_2 + 0x34);" (assignment_expression "sVar3 = *(short *)(param_2 + 0x34)" identifier = (pointer_expression "*(short *)(param_2 + 0x34)" * (cast_expression "(short *)(param_2 + 0x34)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x34)" ( (binary_expression "param_2 + 0x34" identifier + number_literal) ))))) ;) (if_statement "if (sVar3 != 0x40) {\n    uVar11 = gettext(unaff_EDI + 0x1cc69f);\n                    /* try { // try from 0004e4f8 to 0004e533 has its CatchHandler @ 0004e59f */\n    FUN_00091980(piVar6,uVar11,sVar3,0x40,iVar12,iVar13,piVar14);\n  }" if (parenthesized_expression "(sVar3 != 0x40)" ( (binary_expression "sVar3 != 0x40" identifier != number_literal) )) (compound_statement "{\n    uVar11 = gettext(unaff_EDI + 0x1cc69f);\n                    /* try { // try from 0004e4f8 to 0004e533 has its CatchHandler @ 0004e59f */\n    FUN_00091980(piVar6,uVar11,sVar3,0x40,iVar12,iVar13,piVar14);\n  }" { (expression_statement "uVar11 = gettext(unaff_EDI + 0x1cc69f);" (assignment_expression "uVar11 = gettext(unaff_EDI + 0x1cc69f)" identifier = (call_expression "gettext(unaff_EDI + 0x1cc69f)" identifier (argument_list "(unaff_EDI + 0x1cc69f)" ( (binary_expression "unaff_EDI + 0x1cc69f" identifier + number_literal) )))) ;) comment (expression_statement "FUN_00091980(piVar6,uVar11,sVar3,0x40,iVar12,iVar13,piVar14);" (call_expression "FUN_00091980(piVar6,uVar11,sVar3,0x40,iVar12,iVar13,piVar14)" identifier (argument_list "(piVar6,uVar11,sVar3,0x40,iVar12,iVar13,piVar14)" ( identifier , identifier , identifier , number_literal , identifier , identifier , identifier ))) ;) })) (expression_statement "sVar3 = *(short *)(param_2 + 0x3a);" (assignment_expression "sVar3 = *(short *)(param_2 + 0x3a)" identifier = (pointer_expression "*(short *)(param_2 + 0x3a)" * (cast_expression "(short *)(param_2 + 0x3a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3a)" ( (binary_expression "param_2 + 0x3a" identifier + number_literal) ))))) ;) (if_statement "if (sVar3 != 0x40) {\n    uVar11 = gettext(unaff_EDI + 0x1cc6b7);\n    FUN_00091980(piVar6,uVar11,sVar3,0x40);\n  }" if (parenthesized_expression "(sVar3 != 0x40)" ( (binary_expression "sVar3 != 0x40" identifier != number_literal) )) (compound_statement "{\n    uVar11 = gettext(unaff_EDI + 0x1cc6b7);\n    FUN_00091980(piVar6,uVar11,sVar3,0x40);\n  }" { (expression_statement "uVar11 = gettext(unaff_EDI + 0x1cc6b7);" (assignment_expression "uVar11 = gettext(unaff_EDI + 0x1cc6b7)" identifier = (call_expression "gettext(unaff_EDI + 0x1cc6b7)" identifier (argument_list "(unaff_EDI + 0x1cc6b7)" ( (binary_expression "unaff_EDI + 0x1cc6b7" identifier + number_literal) )))) ;) (expression_statement "FUN_00091980(piVar6,uVar11,sVar3,0x40);" (call_expression "FUN_00091980(piVar6,uVar11,sVar3,0x40)" identifier (argument_list "(piVar6,uVar11,sVar3,0x40)" ( identifier , identifier , identifier , number_literal ))) ;) })) (expression_statement "FUN_0004e110(piVar6);" (call_expression "FUN_0004e110(piVar6)" identifier (argument_list "(piVar6)" ( identifier ))) ;) (if_statement "if ((param_4 != 0) && (*(int *)(param_4 + 8) < 1)) {\n    bVar1 = *(byte *)(param_2 + 8);\n    bVar2 = *(byte *)(param_2 + 7);\n    uVar4 = *(ushort *)(param_2 + 0x12);\n    *(undefined4 *)(param_4 + 8) = 0x40;\n    *(uint *)(param_4 + 0x14) = (uint)bVar1;\n    *(uint *)(param_4 + 4) = (uint)uVar4;\n    *(undefined4 *)(param_4 + 0xc) = 0;\n    *(uint *)(param_4 + 0x10) = (uint)bVar2;\n    *(undefined4 *)(param_4 + 0x1c) = 0x40;\n    *(undefined4 *)(param_4 + 0x20) = 0;\n    FUN_00032960();\n  }" if (parenthesized_expression "((param_4 != 0) && (*(int *)(param_4 + 8) < 1))" ( (binary_expression "(param_4 != 0) && (*(int *)(param_4 + 8) < 1)" (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(int *)(param_4 + 8) < 1)" ( (binary_expression "*(int *)(param_4 + 8) < 1" (pointer_expression "*(int *)(param_4 + 8)" * (cast_expression "(int *)(param_4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 8)" ( (binary_expression "param_4 + 8" identifier + number_literal) )))) < number_literal) ))) )) (compound_statement "{\n    bVar1 = *(byte *)(param_2 + 8);\n    bVar2 = *(byte *)(param_2 + 7);\n    uVar4 = *(ushort *)(param_2 + 0x12);\n    *(undefined4 *)(param_4 + 8) = 0x40;\n    *(uint *)(param_4 + 0x14) = (uint)bVar1;\n    *(uint *)(param_4 + 4) = (uint)uVar4;\n    *(undefined4 *)(param_4 + 0xc) = 0;\n    *(uint *)(param_4 + 0x10) = (uint)bVar2;\n    *(undefined4 *)(param_4 + 0x1c) = 0x40;\n    *(undefined4 *)(param_4 + 0x20) = 0;\n    FUN_00032960();\n  }" { (expression_statement "bVar1 = *(byte *)(param_2 + 8);" (assignment_expression "bVar1 = *(byte *)(param_2 + 8)" identifier = (pointer_expression "*(byte *)(param_2 + 8)" * (cast_expression "(byte *)(param_2 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) ))))) ;) (expression_statement "bVar2 = *(byte *)(param_2 + 7);" (assignment_expression "bVar2 = *(byte *)(param_2 + 7)" identifier = (pointer_expression "*(byte *)(param_2 + 7)" * (cast_expression "(byte *)(param_2 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(ushort *)(param_2 + 0x12);" (assignment_expression "uVar4 = *(ushort *)(param_2 + 0x12)" identifier = (pointer_expression "*(ushort *)(param_2 + 0x12)" * (cast_expression "(ushort *)(param_2 + 0x12)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x12)" ( (binary_expression "param_2 + 0x12" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_4 + 8) = 0x40;" (assignment_expression "*(undefined4 *)(param_4 + 8) = 0x40" (pointer_expression "*(undefined4 *)(param_4 + 8)" * (cast_expression "(undefined4 *)(param_4 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 8)" ( (binary_expression "param_4 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(param_4 + 0x14) = (uint)bVar1;" (assignment_expression "*(uint *)(param_4 + 0x14) = (uint)bVar1" (pointer_expression "*(uint *)(param_4 + 0x14)" * (cast_expression "(uint *)(param_4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x14)" ( (binary_expression "param_4 + 0x14" identifier + number_literal) )))) = (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(uint *)(param_4 + 4) = (uint)uVar4;" (assignment_expression "*(uint *)(param_4 + 4) = (uint)uVar4" (pointer_expression "*(uint *)(param_4 + 4)" * (cast_expression "(uint *)(param_4 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) )))) = (cast_expression "(uint)uVar4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(undefined4 *)(param_4 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(param_4 + 0xc) = 0" (pointer_expression "*(undefined4 *)(param_4 + 0xc)" * (cast_expression "(undefined4 *)(param_4 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xc)" ( (binary_expression "param_4 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(param_4 + 0x10) = (uint)bVar2;" (assignment_expression "*(uint *)(param_4 + 0x10) = (uint)bVar2" (pointer_expression "*(uint *)(param_4 + 0x10)" * (cast_expression "(uint *)(param_4 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x10)" ( (binary_expression "param_4 + 0x10" identifier + number_literal) )))) = (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(undefined4 *)(param_4 + 0x1c) = 0x40;" (assignment_expression "*(undefined4 *)(param_4 + 0x1c) = 0x40" (pointer_expression "*(undefined4 *)(param_4 + 0x1c)" * (cast_expression "(undefined4 *)(param_4 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x1c)" ( (binary_expression "param_4 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_4 + 0x20) = 0;" (assignment_expression "*(undefined4 *)(param_4 + 0x20) = 0" (pointer_expression "*(undefined4 *)(param_4 + 0x20)" * (cast_expression "(undefined4 *)(param_4 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x20)" ( (binary_expression "param_4 + 0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00032960();" (call_expression "FUN_00032960()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return piVar6;" return identifier ;) })))
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n/* DWARF original name: sized_make_object<64, false>\n   DWARF original prototype: Relobj * sized_make_object<64,_false>(Dwo_file * this, uchar * p,\n   Input_file * input_file, Dwp_output_file * output_file) */\n\nRelobj * __thiscall\ngold::Dwo_file::sized_make_object<64,_false>\n          (Dwo_file *this,uchar *p,Input_file *input_file,Dwp_output_file *output_file)\n\n{\n  undefined1 *puVar1;\n  int *piVar2;\n  byte bVar3;\n  byte bVar4;\n  ushort uVar5;\n  undefined4 uVar6;\n  bool bVar7;\n  Sized_relobj_dwo<64,_false> *this_00;\n  char *pcVar8;\n  size_t sVar9;\n  Position_dependent_options *pPVar10;\n  uint uVar11;\n  char *pcVar12;\n  char *pcVar13;\n  int unaff_EDI;\n  Dwp_output_file *this_01;\n  _func_int_varargs **pp_Var14;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *machine;\n  undefined1 in_stack_ffffffc4;\n  int in_stack_ffffffc8;\n  _Alloc_hider abiversion;\n  size_type local_30;\n  char local_2c [28];\n  \n  __x86_get_pc_thunk_di();\n  this_00 = (Sized_relobj_dwo<64,_false> *)operator_new(0xa8);\n  pcVar13 = this->name_;\n  pcVar12 = local_2c;\n  pcVar8 = (char *)0xffffffff;\n  abiversion._M_p = pcVar12;\n  if (pcVar13 != (char *)0x0) {\n    sVar9 = strlen(pcVar13);\n    pcVar8 = pcVar13 + sVar9;\n  }\n                    /* try { // try from 0004e308 to 0004e30c has its CatchHandler @ 0004e672 */\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>_> *)&stack0xffffffcc,\n             pcVar13,pcVar8,0);\n  this_01 = (Dwp_output_file *)(BYTE_ARRAY_002ae761 + unaff_EDI + 0x12);\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object =\n       (_func_int_varargs **)this_01;\n  machine = &(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_.field_2;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_._M_dataplus._M_p =\n       (pointer)machine;\n                    /* try { // try from 0004e334 to 0004e338 has its CatchHandler @ 0004e66d */\n  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char*>(&(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_,\n                      abiversion._M_p,abiversion._M_p + local_30,0);\n  *(undefined4 *)&(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.offset_ = 0;\n  *(undefined4 *)\n   ((int)&(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.offset_ + 4) = 0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.input_file_ = input_file;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.shnum_ = 0xffffffff;\n  puVar1 = &(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.field_0x2c;\n  *puVar1 = *puVar1 & 0x80;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = (Xindex *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.compressed_sections_ =\n       (Compressed_section_map *)0x0;\n  if (input_file != (Input_file *)0x0) {\n    piVar2 = &(input_file->file_).object_count_;\n    *piVar2 = *piVar2 + 1;\n                    /* try { // try from 0004e377 to 0004e398 has its CatchHandler @ 0004e5a4 */\n    bVar7 = Input_file::is_in_system_directory(input_file);\n    (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.field_0x2c =\n         (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.field_0x2c & 0xdf |\n         bVar7 << 5;\n    pPVar10 = Input_file::options(input_file);\n    (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.field_0x2c =\n         (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.field_0x2c & 0xbf |\n         (byte)((pPVar10->as_needed_ & 1) << 6);\n  }\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl._M_start\n       = (pointer)0x0;\n  pp_Var14 = (_func_int_varargs **)(BYTE_ARRAY_002aeae1 + unaff_EDI + 0x26);\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n  _M_finish = (pointer)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n  _M_end_of_storage = (pointer)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.map_to_relocatable_relocs_ =\n       (vector<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_> *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.object_merge_map_ = (Object_merge_map *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.relocs_must_follow_section_writes_ = false;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.sd_ = (Symbols_data *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_counts_ = (uint *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_bases_ = (uint *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.first_dyn_reloc_ = 0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.dyn_reloc_count_ = 0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object = pp_Var14;\n  uVar11 = 0;\n  do {\n    *(undefined4 *)\n     ((int)&(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_buckets + uVar11) =\n         0;\n    uVar11 = uVar11 + 4;\n  } while (uVar11 < 0x1c);\n  (this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_bucket_count = 1;\n  (this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_buckets =\n       &(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_single_bucket;\n  (this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_before_begin._M_nxt =\n       (_Hash_node_base *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_element_count = 0;\n  (this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_rehash_policy.\n  _M_max_load_factor = 1.0;\n  (this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_rehash_policy._M_next_resize =\n       0;\n  (this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_single_bucket =\n       (__bucket_type)0x0;\n  (this_00->super_Sized_relobj<64,_false>).section_offsets_.\n  super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>._M_impl.\n  _M_start = (pointer)0x0;\n  (this_00->super_Sized_relobj<64,_false>).section_offsets_.\n  super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>._M_impl.\n  _M_finish = (pointer)0x0;\n  (this_00->super_Sized_relobj<64,_false>).section_offsets_.\n  super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>._M_impl.\n  _M_end_of_storage = (pointer)0x0;\n  if (abiversion._M_p != pcVar12) {\n    operator_delete(abiversion._M_p);\n  }\n  (this_00->elf_file_).file_ = (Object *)this_00;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object =\n       (_func_int_varargs **)(unaff_EDI + 0x2aec03);\n  (this_00->elf_file_).large_shndx_offset_ = 0;\n  uVar6 = *(undefined4 *)(p + 0x2c);\n  *(undefined4 *)&(this_00->elf_file_).shoff_ = *(undefined4 *)(p + 0x28);\n  *(undefined4 *)((int)&(this_00->elf_file_).shoff_ + 4) = uVar6;\n  (this_00->elf_file_).shnum_ = (uint)*(ushort *)(p + 0x3c);\n  (this_00->elf_file_).shstrndx_ = (uint)*(ushort *)(p + 0x3e);\n  pcVar13 = (char *)(uint)*(ushort *)(p + 0x34);\n  if (*(ushort *)(p + 0x34) != 0x40) {\n    pcVar12 = (char *)gettext(unaff_EDI + 0x1cc69f);\n                    /* try { // try from 0004e4f8 to 0004e533 has its CatchHandler @ 0004e59f */\n    Object::error((Object *)this_00,pcVar12,(uint)pcVar13 & 0xffff,0x40);\n    pcVar12 = pcVar13;\n  }\n  pcVar13 = (char *)(uint)*(ushort *)(p + 0x3a);\n  if (*(ushort *)(p + 0x3a) != 0x40) {\n    pcVar12 = (char *)gettext(unaff_EDI + 0x1cc6b7);\n    Object::error((Object *)this_00,pcVar12,(uint)pcVar13 & 0xffff,0x40);\n    pcVar12 = pcVar13;\n  }\n  Sized_relobj_dwo<64,_false>::setup(this_00);\n  if ((output_file != (Dwp_output_file *)0x0) && (output_file->size_ < 1)) {\n    bVar3 = p[8];\n    bVar4 = p[7];\n    uVar5 = *(ushort *)(p + 0x12);\n    output_file->size_ = 0x40;\n    output_file->abiversion_ = (uint)bVar3;\n    output_file->machine_ = (uint)uVar5;\n    output_file->big_endian_ = 0;\n    output_file->osabi_ = (uint)bVar4;\n    *(undefined4 *)&output_file->next_file_offset_ = 0x40;\n    *(undefined4 *)((int)&output_file->next_file_offset_ + 4) = 0;\n    Dwp_output_file::record_target_info\n              (this_01,(char *)pp_Var14,(int)machine,(int)pcVar12,(bool)in_stack_ffffffc4,\n               in_stack_ffffffc8,(int)abiversion._M_p);\n  }\n  return (Relobj *)this_00;\n}\n\n" comment comment (ERROR "Relobj * __thiscall\ngold::Dwo_file::sized_make_object<64,_false>\n          (Dwo_file *this,uchar *p,Input_file *input_file,Dwp_output_file *output_file)" (binary_expression "Relobj * __thiscall\ngold::Dwo_file::sized_make_object<64,_false>\n          (Dwo_file *this,uchar *p,Input_file *input_file,Dwp_output_file *output_file)" (binary_expression "Relobj * __thiscall\ngold::Dwo_file::sized_make_object<64" (binary_expression "Relobj * __thiscall" identifier * identifier) (ERROR "gold::Dwo_file::sized_make_object" identifier : : identifier : : identifier) < number_literal) (ERROR ",_false" , identifier) > (parenthesized_expression "(Dwo_file *this,uchar *p,Input_file *input_file,Dwp_output_file *output_file)" ( (comma_expression "Dwo_file *this,uchar *p,Input_file *input_file,Dwp_output_file *output_file" (binary_expression "Dwo_file *this" identifier * identifier) , (comma_expression "uchar *p,Input_file *input_file,Dwp_output_file *output_file" (binary_expression "uchar *p" identifier * identifier) , (comma_expression "Input_file *input_file,Dwp_output_file *output_file" (binary_expression "Input_file *input_file" identifier * identifier) , (binary_expression "Dwp_output_file *output_file" identifier * identifier)))) )))) (compound_statement "{\n  undefined1 *puVar1;\n  int *piVar2;\n  byte bVar3;\n  byte bVar4;\n  ushort uVar5;\n  undefined4 uVar6;\n  bool bVar7;\n  Sized_relobj_dwo<64,_false> *this_00;\n  char *pcVar8;\n  size_t sVar9;\n  Position_dependent_options *pPVar10;\n  uint uVar11;\n  char *pcVar12;\n  char *pcVar13;\n  int unaff_EDI;\n  Dwp_output_file *this_01;\n  _func_int_varargs **pp_Var14;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *machine;\n  undefined1 in_stack_ffffffc4;\n  int in_stack_ffffffc8;\n  _Alloc_hider abiversion;\n  size_type local_30;\n  char local_2c [28];\n  \n  __x86_get_pc_thunk_di();\n  this_00 = (Sized_relobj_dwo<64,_false> *)operator_new(0xa8);\n  pcVar13 = this->name_;\n  pcVar12 = local_2c;\n  pcVar8 = (char *)0xffffffff;\n  abiversion._M_p = pcVar12;\n  if (pcVar13 != (char *)0x0) {\n    sVar9 = strlen(pcVar13);\n    pcVar8 = pcVar13 + sVar9;\n  }\n                    /* try { // try from 0004e308 to 0004e30c has its CatchHandler @ 0004e672 */\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>_> *)&stack0xffffffcc,\n             pcVar13,pcVar8,0);\n  this_01 = (Dwp_output_file *)(BYTE_ARRAY_002ae761 + unaff_EDI + 0x12);\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object =\n       (_func_int_varargs **)this_01;\n  machine = &(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_.field_2;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_._M_dataplus._M_p =\n       (pointer)machine;\n                    /* try { // try from 0004e334 to 0004e338 has its CatchHandler @ 0004e66d */\n  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char*>(&(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_,\n                      abiversion._M_p,abiversion._M_p + local_30,0);\n  *(undefined4 *)&(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.offset_ = 0;\n  *(undefined4 *)\n   ((int)&(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.offset_ + 4) = 0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.input_file_ = input_file;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.shnum_ = 0xffffffff;\n  puVar1 = &(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.field_0x2c;\n  *puVar1 = *puVar1 & 0x80;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = (Xindex *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.compressed_sections_ =\n       (Compressed_section_map *)0x0;\n  if (input_file != (Input_file *)0x0) {\n    piVar2 = &(input_file->file_).object_count_;\n    *piVar2 = *piVar2 + 1;\n                    /* try { // try from 0004e377 to 0004e398 has its CatchHandler @ 0004e5a4 */\n    bVar7 = Input_file::is_in_system_directory(input_file);\n    (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.field_0x2c =\n         (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.field_0x2c & 0xdf |\n         bVar7 << 5;\n    pPVar10 = Input_file::options(input_file);\n    (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.field_0x2c =\n         (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.field_0x2c & 0xbf |\n         (byte)((pPVar10->as_needed_ & 1) << 6);\n  }\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl._M_start\n       = (pointer)0x0;\n  pp_Var14 = (_func_int_varargs **)(BYTE_ARRAY_002aeae1 + unaff_EDI + 0x26);\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n  _M_finish = (pointer)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n  _M_end_of_storage = (pointer)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.map_to_relocatable_relocs_ =\n       (vector<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_> *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.object_merge_map_ = (Object_merge_map *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.relocs_must_follow_section_writes_ = false;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.sd_ = (Symbols_data *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_counts_ = (uint *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_bases_ = (uint *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.first_dyn_reloc_ = 0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.dyn_reloc_count_ = 0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object = pp_Var14;\n  uVar11 = 0;\n  do {\n    *(undefined4 *)\n     ((int)&(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_buckets + uVar11) =\n         0;\n    uVar11 = uVar11 + 4;\n  } while (uVar11 < 0x1c);\n  (this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_bucket_count = 1;\n  (this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_buckets =\n       &(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_single_bucket;\n  (this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_before_begin._M_nxt =\n       (_Hash_node_base *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_element_count = 0;\n  (this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_rehash_policy.\n  _M_max_load_factor = 1.0;\n  (this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_rehash_policy._M_next_resize =\n       0;\n  (this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_single_bucket =\n       (__bucket_type)0x0;\n  (this_00->super_Sized_relobj<64,_false>).section_offsets_.\n  super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>._M_impl.\n  _M_start = (pointer)0x0;\n  (this_00->super_Sized_relobj<64,_false>).section_offsets_.\n  super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>._M_impl.\n  _M_finish = (pointer)0x0;\n  (this_00->super_Sized_relobj<64,_false>).section_offsets_.\n  super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>._M_impl.\n  _M_end_of_storage = (pointer)0x0;\n  if (abiversion._M_p != pcVar12) {\n    operator_delete(abiversion._M_p);\n  }\n  (this_00->elf_file_).file_ = (Object *)this_00;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object =\n       (_func_int_varargs **)(unaff_EDI + 0x2aec03);\n  (this_00->elf_file_).large_shndx_offset_ = 0;\n  uVar6 = *(undefined4 *)(p + 0x2c);\n  *(undefined4 *)&(this_00->elf_file_).shoff_ = *(undefined4 *)(p + 0x28);\n  *(undefined4 *)((int)&(this_00->elf_file_).shoff_ + 4) = uVar6;\n  (this_00->elf_file_).shnum_ = (uint)*(ushort *)(p + 0x3c);\n  (this_00->elf_file_).shstrndx_ = (uint)*(ushort *)(p + 0x3e);\n  pcVar13 = (char *)(uint)*(ushort *)(p + 0x34);\n  if (*(ushort *)(p + 0x34) != 0x40) {\n    pcVar12 = (char *)gettext(unaff_EDI + 0x1cc69f);\n                    /* try { // try from 0004e4f8 to 0004e533 has its CatchHandler @ 0004e59f */\n    Object::error((Object *)this_00,pcVar12,(uint)pcVar13 & 0xffff,0x40);\n    pcVar12 = pcVar13;\n  }\n  pcVar13 = (char *)(uint)*(ushort *)(p + 0x3a);\n  if (*(ushort *)(p + 0x3a) != 0x40) {\n    pcVar12 = (char *)gettext(unaff_EDI + 0x1cc6b7);\n    Object::error((Object *)this_00,pcVar12,(uint)pcVar13 & 0xffff,0x40);\n    pcVar12 = pcVar13;\n  }\n  Sized_relobj_dwo<64,_false>::setup(this_00);\n  if ((output_file != (Dwp_output_file *)0x0) && (output_file->size_ < 1)) {\n    bVar3 = p[8];\n    bVar4 = p[7];\n    uVar5 = *(ushort *)(p + 0x12);\n    output_file->size_ = 0x40;\n    output_file->abiversion_ = (uint)bVar3;\n    output_file->machine_ = (uint)uVar5;\n    output_file->big_endian_ = 0;\n    output_file->osabi_ = (uint)bVar4;\n    *(undefined4 *)&output_file->next_file_offset_ = 0x40;\n    *(undefined4 *)((int)&output_file->next_file_offset_ + 4) = 0;\n    Dwp_output_file::record_target_info\n              (this_01,(char *)pp_Var14,(int)machine,(int)pcVar12,(bool)in_stack_ffffffc4,\n               in_stack_ffffffc8,(int)abiversion._M_p);\n  }\n  return (Relobj *)this_00;\n}" { (declaration "undefined1 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "ushort uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "bool bVar7;" primitive_type identifier ;) (expression_statement "Sized_relobj_dwo<64,_false> *this_00;" (comma_expression "Sized_relobj_dwo<64,_false> *this_00" (binary_expression "Sized_relobj_dwo<64" identifier < number_literal) , (binary_expression "_false> *this_00" identifier > (pointer_expression "*this_00" * identifier))) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "size_t sVar9;" primitive_type identifier ;) (declaration "Position_dependent_options *pPVar10;" type_identifier (pointer_declarator "*pPVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "Dwp_output_file *this_01;" type_identifier (pointer_declarator "*this_01" * identifier) ;) (declaration "_func_int_varargs **pp_Var14;" type_identifier (pointer_declarator "**pp_Var14" * (pointer_declarator "*pp_Var14" * 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  *machine;" (binary_expression "allocator<char>_>_9\n  *machine" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *machine" identifier * identifier)) ;) (declaration "undefined1 in_stack_ffffffc4;" type_identifier identifier ;) (declaration "int in_stack_ffffffc8;" primitive_type identifier ;) (declaration "_Alloc_hider abiversion;" type_identifier identifier ;) (declaration "size_type local_30;" type_identifier identifier ;) (declaration "char local_2c [28];" primitive_type (array_declarator "local_2c [28]" identifier [ number_literal ]) ;) (expression_statement "__x86_get_pc_thunk_di();" (call_expression "__x86_get_pc_thunk_di()" identifier (argument_list "()" ( ))) ;) (expression_statement "this_00 = (Sized_relobj_dwo<64,_false> *)operator_new(0xa8);" (assignment_expression "this_00 = (Sized_relobj_dwo<64,_false> *)operator_new(0xa8)" identifier = (parenthesized_expression "(Sized_relobj_dwo<64,_false> *)operator_new(0xa8)" ( (comma_expression "Sized_relobj_dwo<64,_false> *)operator_new(0xa8)" (binary_expression "Sized_relobj_dwo<64" identifier < number_literal) , (binary_expression "_false> *)operator_new(0xa8)" identifier > (pointer_expression "*)operator_new(0xa8)" * (ERROR ")" )) (call_expression "operator_new(0xa8)" identifier (argument_list "(0xa8)" ( number_literal )))))) ))) ;) (expression_statement "pcVar13 = this->name_;" (assignment_expression "pcVar13 = this->name_" identifier = (field_expression "this->name_" identifier -> field_identifier)) ;) (expression_statement "pcVar12 = local_2c;" (assignment_expression "pcVar12 = local_2c" identifier = identifier) ;) (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)) ;) (expression_statement "abiversion._M_p = pcVar12;" (assignment_expression "abiversion._M_p = pcVar12" (field_expression "abiversion._M_p" identifier . field_identifier) = identifier) ;) (if_statement "if (pcVar13 != (char *)0x0) {\n    sVar9 = strlen(pcVar13);\n    pcVar8 = pcVar13 + sVar9;\n  }" if (parenthesized_expression "(pcVar13 != (char *)0x0)" ( (binary_expression "pcVar13 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sVar9 = strlen(pcVar13);\n    pcVar8 = pcVar13 + sVar9;\n  }" { (expression_statement "sVar9 = strlen(pcVar13);" (assignment_expression "sVar9 = strlen(pcVar13)" identifier = (call_expression "strlen(pcVar13)" identifier (argument_list "(pcVar13)" ( identifier )))) ;) (expression_statement "pcVar8 = pcVar13 + sVar9;" (assignment_expression "pcVar8 = pcVar13 + sVar9" identifier = (binary_expression "pcVar13 + sVar9" 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>_> *)&stack0xffffffcc,\n             pcVar13,pcVar8,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>_> *)&stack0xffffffcc,\n             pcVar13,pcVar8,0);" (binary_expression "_M_construct<char_const*>\n            ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&stack0xffffffcc,\n             pcVar13,pcVar8,0)" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&stack0xffffffcc,\n             pcVar13,pcVar8,0)" ( (comma_expression "(basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&stack0xffffffcc,\n             pcVar13,pcVar8,0" (binary_expression "(basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&stack0xffffffcc" (parenthesized_expression "(basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)" ( (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) : :) (binary_expression "allocator<char>_> *" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (pointer_expression "*" * identifier)) )) & identifier) , (comma_expression "pcVar13,pcVar8,0" identifier , (comma_expression "pcVar8,0" identifier , number_literal))) ))) ;)) (expression_statement "this_01 = (Dwp_output_file *)(BYTE_ARRAY_002ae761 + unaff_EDI + 0x12);" (assignment_expression "this_01 = (Dwp_output_file *)(BYTE_ARRAY_002ae761 + unaff_EDI + 0x12)" identifier = (cast_expression "(Dwp_output_file *)(BYTE_ARRAY_002ae761 + unaff_EDI + 0x12)" ( (type_descriptor "Dwp_output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(BYTE_ARRAY_002ae761 + unaff_EDI + 0x12)" ( (binary_expression "BYTE_ARRAY_002ae761 + unaff_EDI + 0x12" (binary_expression "BYTE_ARRAY_002ae761 + unaff_EDI" identifier + identifier) + number_literal) )))) ;) (expression_statement "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object =\n       (_func_int_varargs **)this_01;" (assignment_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object =\n       (_func_int_varargs **)this_01" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(this_00->super_Sized_relobj<64,_false>)" ( (comma_expression "this_00->super_Sized_relobj<64,_false" (binary_expression "this_00->super_Sized_relobj<64" (field_expression "this_00->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(_func_int_varargs **)this_01" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "machine = &(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_.field_2;" (assignment_expression "machine = &(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_.field_2" identifier = (pointer_expression "&(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_.field_2" & (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_.field_2" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(this_00->super_Sized_relobj<64,_false>)" ( (comma_expression "this_00->super_Sized_relobj<64,_false" (binary_expression "this_00->super_Sized_relobj<64" (field_expression "this_00->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier))) ;) (expression_statement "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_._M_dataplus._M_p =\n       (pointer)machine;" (assignment_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_._M_dataplus._M_p =\n       (pointer)machine" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_._M_dataplus._M_p" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_._M_dataplus" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(this_00->super_Sized_relobj<64,_false>)" ( (comma_expression "this_00->super_Sized_relobj<64,_false" (binary_expression "this_00->super_Sized_relobj<64" (field_expression "this_00->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(pointer)machine" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) comment (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char*>(&(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_,\n                      abiversion._M_p,abiversion._M_p + local_30,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*>(&(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_,\n                      abiversion._M_p,abiversion._M_p + local_30,0);" (binary_expression "_M_construct<char*>(&(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_,\n                      abiversion._M_p,abiversion._M_p + local_30,0)" (binary_expression "_M_construct<char" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "(&(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_,\n                      abiversion._M_p,abiversion._M_p + local_30,0)" ( (comma_expression "&(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_,\n                      abiversion._M_p,abiversion._M_p + local_30,0" (pointer_expression "&(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_" & (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.name_" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(this_00->super_Sized_relobj<64,_false>)" ( (comma_expression "this_00->super_Sized_relobj<64,_false" (binary_expression "this_00->super_Sized_relobj<64" (field_expression "this_00->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier)) , (comma_expression "abiversion._M_p,abiversion._M_p + local_30,0" (field_expression "abiversion._M_p" identifier . field_identifier) , (comma_expression "abiversion._M_p + local_30,0" (binary_expression "abiversion._M_p + local_30" (field_expression "abiversion._M_p" identifier . field_identifier) + identifier) , number_literal))) ))) ;)) (expression_statement "*(undefined4 *)&(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.offset_ = 0;" (assignment_expression "*(undefined4 *)&(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.offset_ = 0" (pointer_expression "*(undefined4 *)&(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.offset_" * (cast_expression "(undefined4 *)&(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.offset_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.offset_" & (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.offset_" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(this_00->super_Sized_relobj<64,_false>)" ( (comma_expression "this_00->super_Sized_relobj<64,_false" (binary_expression "this_00->super_Sized_relobj<64" (field_expression "this_00->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)\n   ((int)&(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.offset_ + 4) = 0;" (assignment_expression "*(undefined4 *)\n   ((int)&(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.offset_ + 4) = 0" (pointer_expression "*(undefined4 *)\n   ((int)&(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.offset_ + 4)" * (cast_expression "(undefined4 *)\n   ((int)&(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.offset_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.offset_ + 4)" ( (binary_expression "(int)&(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.offset_ + 4" (cast_expression "(int)&(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.offset_" & (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.offset_" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(this_00->super_Sized_relobj<64,_false>)" ( (comma_expression "this_00->super_Sized_relobj<64,_false" (binary_expression "this_00->super_Sized_relobj<64" (field_expression "this_00->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.input_file_ = input_file;" (assignment_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.input_file_ = input_file" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.input_file_" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(this_00->super_Sized_relobj<64,_false>)" ( (comma_expression "this_00->super_Sized_relobj<64,_false" (binary_expression "this_00->super_Sized_relobj<64" (field_expression "this_00->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.shnum_ = 0xffffffff;" (assignment_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.shnum_ = 0xffffffff" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.shnum_" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(this_00->super_Sized_relobj<64,_false>)" ( (comma_expression "this_00->super_Sized_relobj<64,_false" (binary_expression "this_00->super_Sized_relobj<64" (field_expression "this_00->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "puVar1 = &(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.field_0x2c;" (assignment_expression "puVar1 = &(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.field_0x2c" identifier = (pointer_expression "&(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.field_0x2c" & (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.field_0x2c" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(this_00->super_Sized_relobj<64,_false>)" ( (comma_expression "this_00->super_Sized_relobj<64,_false" (binary_expression "this_00->super_Sized_relobj<64" (field_expression "this_00->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier))) ;) (expression_statement "*puVar1 = *puVar1 & 0x80;" (assignment_expression "*puVar1 = *puVar1 & 0x80" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 & 0x80" (pointer_expression "*puVar1" * identifier) & number_literal)) ;) (expression_statement "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = (Xindex *)0x0;" (assignment_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = (Xindex *)0x0" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(this_00->super_Sized_relobj<64,_false>)" ( (comma_expression "this_00->super_Sized_relobj<64,_false" (binary_expression "this_00->super_Sized_relobj<64" (field_expression "this_00->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(Xindex *)0x0" ( (type_descriptor "Xindex *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.compressed_sections_ =\n       (Compressed_section_map *)0x0;" (assignment_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.compressed_sections_ =\n       (Compressed_section_map *)0x0" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.compressed_sections_" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(this_00->super_Sized_relobj<64,_false>)" ( (comma_expression "this_00->super_Sized_relobj<64,_false" (binary_expression "this_00->super_Sized_relobj<64" (field_expression "this_00->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(Compressed_section_map *)0x0" ( (type_descriptor "Compressed_section_map *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (input_file != (Input_file *)0x0) {\n    piVar2 = &(input_file->file_).object_count_;\n    *piVar2 = *piVar2 + 1;\n                    /* try { // try from 0004e377 to 0004e398 has its CatchHandler @ 0004e5a4 */\n    bVar7 = Input_file::is_in_system_directory(input_file);\n    (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.field_0x2c =\n         (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.field_0x2c & 0xdf |\n         bVar7 << 5;\n    pPVar10 = Input_file::options(input_file);\n    (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.field_0x2c =\n         (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.field_0x2c & 0xbf |\n         (byte)((pPVar10->as_needed_ & 1) << 6);\n  }" if (parenthesized_expression "(input_file != (Input_file *)0x0)" ( (binary_expression "input_file != (Input_file *)0x0" identifier != (cast_expression "(Input_file *)0x0" ( (type_descriptor "Input_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    piVar2 = &(input_file->file_).object_count_;\n    *piVar2 = *piVar2 + 1;\n                    /* try { // try from 0004e377 to 0004e398 has its CatchHandler @ 0004e5a4 */\n    bVar7 = Input_file::is_in_system_directory(input_file);\n    (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.field_0x2c =\n         (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.field_0x2c & 0xdf |\n         bVar7 << 5;\n    pPVar10 = Input_file::options(input_file);\n    (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.field_0x2c =\n         (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.field_0x2c & 0xbf |\n         (byte)((pPVar10->as_needed_ & 1) << 6);\n  }" { (expression_statement "piVar2 = &(input_file->file_).object_count_;" (assignment_expression "piVar2 = &(input_file->file_).object_count_" identifier = (pointer_expression "&(input_file->file_).object_count_" & (field_expression "(input_file->file_).object_count_" (parenthesized_expression "(input_file->file_)" ( (field_expression "input_file->file_" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "*piVar2 = *piVar2 + 1;" (assignment_expression "*piVar2 = *piVar2 + 1" (pointer_expression "*piVar2" * identifier) = (binary_expression "*piVar2 + 1" (pointer_expression "*piVar2" * identifier) + number_literal)) ;) comment (ERROR "bVar7 = Input_file::" (assignment_expression "bVar7 = Input_file" identifier = identifier) : :) (expression_statement "is_in_system_directory(input_file);" (call_expression "is_in_system_directory(input_file)" identifier (argument_list "(input_file)" ( identifier ))) ;) (expression_statement "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.field_0x2c =\n         (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.field_0x2c & 0xdf |\n         bVar7 << 5;" (assignment_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.field_0x2c =\n         (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.field_0x2c & 0xdf |\n         bVar7 << 5" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.field_0x2c" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(this_00->super_Sized_relobj<64,_false>)" ( (comma_expression "this_00->super_Sized_relobj<64,_false" (binary_expression "this_00->super_Sized_relobj<64" (field_expression "this_00->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) = (binary_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.field_0x2c & 0xdf |\n         bVar7 << 5" (binary_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.field_0x2c & 0xdf" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.field_0x2c" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(this_00->super_Sized_relobj<64,_false>)" ( (comma_expression "this_00->super_Sized_relobj<64,_false" (binary_expression "this_00->super_Sized_relobj<64" (field_expression "this_00->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) & number_literal) | (binary_expression "bVar7 << 5" identifier << number_literal))) ;) (ERROR "pPVar10 = Input_file::" (assignment_expression "pPVar10 = Input_file" identifier = identifier) : :) (expression_statement "options(input_file);" (call_expression "options(input_file)" identifier (argument_list "(input_file)" ( identifier ))) ;) (expression_statement "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.field_0x2c =\n         (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.field_0x2c & 0xbf |\n         (byte)((pPVar10->as_needed_ & 1) << 6);" (assignment_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.field_0x2c =\n         (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.field_0x2c & 0xbf |\n         (byte)((pPVar10->as_needed_ & 1) << 6)" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.field_0x2c" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(this_00->super_Sized_relobj<64,_false>)" ( (comma_expression "this_00->super_Sized_relobj<64,_false" (binary_expression "this_00->super_Sized_relobj<64" (field_expression "this_00->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) = (binary_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.field_0x2c & 0xbf |\n         (byte)((pPVar10->as_needed_ & 1) << 6)" (binary_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.field_0x2c & 0xbf" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object.field_0x2c" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(this_00->super_Sized_relobj<64,_false>)" ( (comma_expression "this_00->super_Sized_relobj<64,_false" (binary_expression "this_00->super_Sized_relobj<64" (field_expression "this_00->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) & number_literal) | (call_expression "(byte)((pPVar10->as_needed_ & 1) << 6)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((pPVar10->as_needed_ & 1) << 6)" ( (binary_expression "(pPVar10->as_needed_ & 1) << 6" (parenthesized_expression "(pPVar10->as_needed_ & 1)" ( (binary_expression "pPVar10->as_needed_ & 1" (field_expression "pPVar10->as_needed_" identifier -> field_identifier) & number_literal) )) << number_literal) ))))) ;) })) (expression_statement "(this_00->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl._M_start\n       = (pointer)0x0;" (assignment_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl._M_start\n       = (pointer)0x0" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl._M_start" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl" (binary_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n  super__Vector_base<gold::Output_section*,_std" (binary_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n  super__Vector_base<gold" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n  super__Vector_base" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.output_sections_" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(this_00->super_Sized_relobj<64,_false>)" ( (comma_expression "this_00->super_Sized_relobj<64,_false" (binary_expression "this_00->super_Sized_relobj<64" (field_expression "this_00->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "pp_Var14 = (_func_int_varargs **)(BYTE_ARRAY_002aeae1 + unaff_EDI + 0x26);" (assignment_expression "pp_Var14 = (_func_int_varargs **)(BYTE_ARRAY_002aeae1 + unaff_EDI + 0x26)" identifier = (cast_expression "(_func_int_varargs **)(BYTE_ARRAY_002aeae1 + unaff_EDI + 0x26)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(BYTE_ARRAY_002aeae1 + unaff_EDI + 0x26)" ( (binary_expression "BYTE_ARRAY_002aeae1 + unaff_EDI + 0x26" (binary_expression "BYTE_ARRAY_002aeae1 + unaff_EDI" identifier + identifier) + number_literal) )))) ;) (expression_statement "(this_00->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n  _M_finish = (pointer)0x0;" (assignment_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n  _M_finish = (pointer)0x0" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n  _M_finish" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl" (binary_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n  super__Vector_base<gold::Output_section*,_std" (binary_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n  super__Vector_base<gold" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n  super__Vector_base" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.output_sections_" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(this_00->super_Sized_relobj<64,_false>)" ( (comma_expression "this_00->super_Sized_relobj<64,_false" (binary_expression "this_00->super_Sized_relobj<64" (field_expression "this_00->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "(this_00->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n  _M_end_of_storage = (pointer)0x0;" (assignment_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n  _M_end_of_storage = (pointer)0x0" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n  _M_end_of_storage" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl" (binary_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n  super__Vector_base<gold::Output_section*,_std" (binary_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n  super__Vector_base<gold" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.output_sections_.\n  super__Vector_base" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.output_sections_" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(this_00->super_Sized_relobj<64,_false>)" ( (comma_expression "this_00->super_Sized_relobj<64,_false" (binary_expression "this_00->super_Sized_relobj<64" (field_expression "this_00->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "(this_00->super_Sized_relobj<64,_false>).super_Relobj.map_to_relocatable_relocs_ =\n       (vector<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_> *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.object_merge_map_ = (Object_merge_map *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.relocs_must_follow_section_writes_ = false;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.sd_ = (Symbols_data *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_counts_ = (uint *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_bases_ = (uint *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.first_dyn_reloc_ = 0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.dyn_reloc_count_ = 0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object = pp_Var14;" (assignment_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.map_to_relocatable_relocs_ =\n       (vector<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_> *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.object_merge_map_ = (Object_merge_map *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.relocs_must_follow_section_writes_ = false;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.sd_ = (Symbols_data *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_counts_ = (uint *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_bases_ = (uint *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.first_dyn_reloc_ = 0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.dyn_reloc_count_ = 0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object = pp_Var14" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.map_to_relocatable_relocs_" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(this_00->super_Sized_relobj<64,_false>)" ( (comma_expression "this_00->super_Sized_relobj<64,_false" (binary_expression "this_00->super_Sized_relobj<64" (field_expression "this_00->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) = (parenthesized_expression "(vector<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_> *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.object_merge_map_ = (Object_merge_map *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.relocs_must_follow_section_writes_ = false;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.sd_ = (Symbols_data *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_counts_ = (uint *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_bases_ = (uint *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.first_dyn_reloc_ = 0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.dyn_reloc_count_ = 0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object = pp_Var14" ( (ERROR "vector<gold::Relocatable_relocs*,_std::allocator<gold::" (binary_expression "vector<gold" identifier < identifier) : : (type_descriptor "Relocatable_relocs*" type_identifier (abstract_pointer_declarator "*" *)) , identifier : : (binary_expression "allocator<gold" identifier < identifier) : :) (assignment_expression "Relocatable_relocs*>_> *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.object_merge_map_ = (Object_merge_map *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.relocs_must_follow_section_writes_ = false;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.sd_ = (Symbols_data *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_counts_ = (uint *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_bases_ = (uint *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.first_dyn_reloc_ = 0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.dyn_reloc_count_ = 0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object = pp_Var14" (field_expression "Relocatable_relocs*>_> *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.object_merge_map_ = (Object_merge_map *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.relocs_must_follow_section_writes_ = false;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.sd_ = (Symbols_data *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_counts_ = (uint *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_bases_ = (uint *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.first_dyn_reloc_ = 0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.dyn_reloc_count_ = 0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object" (field_expression "Relocatable_relocs*>_> *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.object_merge_map_ = (Object_merge_map *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.relocs_must_follow_section_writes_ = false;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.sd_ = (Symbols_data *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_counts_ = (uint *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_bases_ = (uint *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.first_dyn_reloc_ = 0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.dyn_reloc_count_ = 0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object" (field_expression "Relocatable_relocs*>_> *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.object_merge_map_ = (Object_merge_map *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.relocs_must_follow_section_writes_ = false;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.sd_ = (Symbols_data *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_counts_ = (uint *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_bases_ = (uint *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.first_dyn_reloc_ = 0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.dyn_reloc_count_ = 0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj" (call_expression "Relocatable_relocs*>_> *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.object_merge_map_ = (Object_merge_map *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.relocs_must_follow_section_writes_ = false;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.sd_ = (Symbols_data *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_counts_ = (uint *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_bases_ = (uint *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.first_dyn_reloc_ = 0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.dyn_reloc_count_ = 0;\n  (this_00->super_Sized_relobj<64,_false>)" (assignment_expression "Relocatable_relocs*>_> *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.object_merge_map_ = (Object_merge_map *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.relocs_must_follow_section_writes_ = false;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.sd_ = (Symbols_data *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_counts_ = (uint *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_bases_ = (uint *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.first_dyn_reloc_ = 0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.dyn_reloc_count_ = 0" (field_expression "Relocatable_relocs*>_> *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.object_merge_map_ = (Object_merge_map *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.relocs_must_follow_section_writes_ = false;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.sd_ = (Symbols_data *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_counts_ = (uint *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_bases_ = (uint *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.first_dyn_reloc_ = 0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.dyn_reloc_count_" (field_expression "Relocatable_relocs*>_> *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.object_merge_map_ = (Object_merge_map *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.relocs_must_follow_section_writes_ = false;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.sd_ = (Symbols_data *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_counts_ = (uint *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_bases_ = (uint *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.first_dyn_reloc_ = 0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj" (call_expression "Relocatable_relocs*>_> *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.object_merge_map_ = (Object_merge_map *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.relocs_must_follow_section_writes_ = false;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.sd_ = (Symbols_data *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_counts_ = (uint *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_bases_ = (uint *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.first_dyn_reloc_ = 0;\n  (this_00->super_Sized_relobj<64,_false>)" (assignment_expression "Relocatable_relocs*>_> *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.object_merge_map_ = (Object_merge_map *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.relocs_must_follow_section_writes_ = false;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.sd_ = (Symbols_data *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_counts_ = (uint *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_bases_ = (uint *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.first_dyn_reloc_ = 0" (field_expression "Relocatable_relocs*>_> *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.object_merge_map_ = (Object_merge_map *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.relocs_must_follow_section_writes_ = false;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.sd_ = (Symbols_data *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_counts_ = (uint *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_bases_ = (uint *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.first_dyn_reloc_" (field_expression "Relocatable_relocs*>_> *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.object_merge_map_ = (Object_merge_map *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.relocs_must_follow_section_writes_ = false;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.sd_ = (Symbols_data *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_counts_ = (uint *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_bases_ = (uint *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj" (call_expression "Relocatable_relocs*>_> *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.object_merge_map_ = (Object_merge_map *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.relocs_must_follow_section_writes_ = false;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.sd_ = (Symbols_data *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_counts_ = (uint *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_bases_ = (uint *)0x0;\n  (this_00->super_Sized_relobj<64,_false>)" (assignment_expression "Relocatable_relocs*>_> *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.object_merge_map_ = (Object_merge_map *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.relocs_must_follow_section_writes_ = false;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.sd_ = (Symbols_data *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_counts_ = (uint *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_bases_ = (uint *)0x0" (field_expression "Relocatable_relocs*>_> *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.object_merge_map_ = (Object_merge_map *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.relocs_must_follow_section_writes_ = false;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.sd_ = (Symbols_data *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_counts_ = (uint *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_bases_" (field_expression "Relocatable_relocs*>_> *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.object_merge_map_ = (Object_merge_map *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.relocs_must_follow_section_writes_ = false;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.sd_ = (Symbols_data *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_counts_ = (uint *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj" (call_expression "Relocatable_relocs*>_> *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.object_merge_map_ = (Object_merge_map *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.relocs_must_follow_section_writes_ = false;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.sd_ = (Symbols_data *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_counts_ = (uint *)0x0;\n  (this_00->super_Sized_relobj<64,_false>)" (assignment_expression "Relocatable_relocs*>_> *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.object_merge_map_ = (Object_merge_map *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.relocs_must_follow_section_writes_ = false;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.sd_ = (Symbols_data *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_counts_ = (uint *)0x0" (field_expression "Relocatable_relocs*>_> *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.object_merge_map_ = (Object_merge_map *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.relocs_must_follow_section_writes_ = false;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.sd_ = (Symbols_data *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.reloc_counts_" (field_expression "Relocatable_relocs*>_> *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.object_merge_map_ = (Object_merge_map *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.relocs_must_follow_section_writes_ = false;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.sd_ = (Symbols_data *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj" (call_expression "Relocatable_relocs*>_> *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.object_merge_map_ = (Object_merge_map *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.relocs_must_follow_section_writes_ = false;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.sd_ = (Symbols_data *)0x0;\n  (this_00->super_Sized_relobj<64,_false>)" (assignment_expression "Relocatable_relocs*>_> *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.object_merge_map_ = (Object_merge_map *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.relocs_must_follow_section_writes_ = false;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.sd_ = (Symbols_data *)0x0" (field_expression "Relocatable_relocs*>_> *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.object_merge_map_ = (Object_merge_map *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.relocs_must_follow_section_writes_ = false;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.sd_" (field_expression "Relocatable_relocs*>_> *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.object_merge_map_ = (Object_merge_map *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.relocs_must_follow_section_writes_ = false;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj" (call_expression "Relocatable_relocs*>_> *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.object_merge_map_ = (Object_merge_map *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.relocs_must_follow_section_writes_ = false;\n  (this_00->super_Sized_relobj<64,_false>)" (assignment_expression "Relocatable_relocs*>_> *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.object_merge_map_ = (Object_merge_map *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.relocs_must_follow_section_writes_ = false" (field_expression "Relocatable_relocs*>_> *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.object_merge_map_ = (Object_merge_map *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.relocs_must_follow_section_writes_" (field_expression "Relocatable_relocs*>_> *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.object_merge_map_ = (Object_merge_map *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj" (call_expression "Relocatable_relocs*>_> *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.object_merge_map_ = (Object_merge_map *)0x0;\n  (this_00->super_Sized_relobj<64,_false>)" (assignment_expression "Relocatable_relocs*>_> *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.object_merge_map_ = (Object_merge_map *)0x0" (field_expression "Relocatable_relocs*>_> *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj.object_merge_map_" (field_expression "Relocatable_relocs*>_> *)0x0;\n  (this_00->super_Sized_relobj<64,_false>).super_Relobj" (call_expression "Relocatable_relocs*>_> *)0x0;\n  (this_00->super_Sized_relobj<64,_false>)" (binary_expression "Relocatable_relocs*>_> *)0x0" (binary_expression "Relocatable_relocs*>_" identifier * (ERROR ">" >) identifier) > (pointer_expression "*)0x0" * (ERROR ")" )) number_literal)) (ERROR ";" ;) (argument_list "(this_00->super_Sized_relobj<64,_false>)" ( (binary_expression "this_00->super_Sized_relobj<64" (field_expression "this_00->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier (ERROR ">" >) ))) . field_identifier) . field_identifier) = (cast_expression "(Object_merge_map *)0x0" ( (type_descriptor "Object_merge_map *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) (ERROR ";" ;) (argument_list "(this_00->super_Sized_relobj<64,_false>)" ( (binary_expression "this_00->super_Sized_relobj<64" (field_expression "this_00->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier (ERROR ">" >) ))) . field_identifier) . field_identifier) = false) (ERROR ";" ;) (argument_list "(this_00->super_Sized_relobj<64,_false>)" ( (binary_expression "this_00->super_Sized_relobj<64" (field_expression "this_00->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier (ERROR ">" >) ))) . field_identifier) . field_identifier) = (cast_expression "(Symbols_data *)0x0" ( (type_descriptor "Symbols_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) (ERROR ";" ;) (argument_list "(this_00->super_Sized_relobj<64,_false>)" ( (binary_expression "this_00->super_Sized_relobj<64" (field_expression "this_00->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier (ERROR ">" >) ))) . field_identifier) . field_identifier) = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) (ERROR ";" ;) (argument_list "(this_00->super_Sized_relobj<64,_false>)" ( (binary_expression "this_00->super_Sized_relobj<64" (field_expression "this_00->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier (ERROR ">" >) ))) . field_identifier) . field_identifier) = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) (ERROR ";" ;) (argument_list "(this_00->super_Sized_relobj<64,_false>)" ( (binary_expression "this_00->super_Sized_relobj<64" (field_expression "this_00->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier (ERROR ">" >) ))) . field_identifier) . field_identifier) = number_literal) (ERROR ";" ;) (argument_list "(this_00->super_Sized_relobj<64,_false>)" ( (binary_expression "this_00->super_Sized_relobj<64" (field_expression "this_00->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier (ERROR ">" >) ))) . field_identifier) . field_identifier) = number_literal) (ERROR ";" ;) (argument_list "(this_00->super_Sized_relobj<64,_false>)" ( (binary_expression "this_00->super_Sized_relobj<64" (field_expression "this_00->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier (ERROR ">" >) ))) . field_identifier) . field_identifier) . field_identifier) = identifier) ))) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n    *(undefined4 *)\n     ((int)&(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_buckets + uVar11) =\n         0;\n    uVar11 = uVar11 + 4;\n  } while (uVar11 < 0x1c);" do (compound_statement "{\n    *(undefined4 *)\n     ((int)&(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_buckets + uVar11) =\n         0;\n    uVar11 = uVar11 + 4;\n  }" { (expression_statement "*(undefined4 *)\n     ((int)&(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_buckets + uVar11) =\n         0;" (assignment_expression "*(undefined4 *)\n     ((int)&(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_buckets + uVar11) =\n         0" (pointer_expression "*(undefined4 *)\n     ((int)&(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_buckets + uVar11)" * (cast_expression "(undefined4 *)\n     ((int)&(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_buckets + uVar11)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_buckets + uVar11)" ( (binary_expression "(int)&(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_buckets + uVar11" (cast_expression "(int)&(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_buckets" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_buckets" & (field_expression "(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_buckets" (field_expression "(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h" (field_expression "(this_00->super_Sized_relobj<64,_false>).local_got_offsets_" (parenthesized_expression "(this_00->super_Sized_relobj<64,_false>)" ( (comma_expression "this_00->super_Sized_relobj<64,_false" (binary_expression "this_00->super_Sized_relobj<64" (field_expression "this_00->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier))) + identifier) )))) = number_literal) ;) (expression_statement "uVar11 = uVar11 + 4;" (assignment_expression "uVar11 = uVar11 + 4" identifier = (binary_expression "uVar11 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar11 < 0x1c)" ( (binary_expression "uVar11 < 0x1c" identifier < number_literal) )) ;) (expression_statement "(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_bucket_count = 1;" (assignment_expression "(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_bucket_count = 1" (field_expression "(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_bucket_count" (field_expression "(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h" (field_expression "(this_00->super_Sized_relobj<64,_false>).local_got_offsets_" (parenthesized_expression "(this_00->super_Sized_relobj<64,_false>)" ( (comma_expression "this_00->super_Sized_relobj<64,_false" (binary_expression "this_00->super_Sized_relobj<64" (field_expression "this_00->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_buckets =\n       &(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_single_bucket;" (assignment_expression "(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_buckets =\n       &(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_single_bucket" (field_expression "(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_buckets" (field_expression "(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h" (field_expression "(this_00->super_Sized_relobj<64,_false>).local_got_offsets_" (parenthesized_expression "(this_00->super_Sized_relobj<64,_false>)" ( (comma_expression "this_00->super_Sized_relobj<64,_false" (binary_expression "this_00->super_Sized_relobj<64" (field_expression "this_00->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) = (pointer_expression "&(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_single_bucket" & (field_expression "(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_single_bucket" (field_expression "(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h" (field_expression "(this_00->super_Sized_relobj<64,_false>).local_got_offsets_" (parenthesized_expression "(this_00->super_Sized_relobj<64,_false>)" ( (comma_expression "this_00->super_Sized_relobj<64,_false" (binary_expression "this_00->super_Sized_relobj<64" (field_expression "this_00->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier))) ;) (expression_statement "(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_before_begin._M_nxt =\n       (_Hash_node_base *)0x0;" (assignment_expression "(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_before_begin._M_nxt =\n       (_Hash_node_base *)0x0" (field_expression "(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_before_begin._M_nxt" (field_expression "(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_before_begin" (field_expression "(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h" (field_expression "(this_00->super_Sized_relobj<64,_false>).local_got_offsets_" (parenthesized_expression "(this_00->super_Sized_relobj<64,_false>)" ( (comma_expression "this_00->super_Sized_relobj<64,_false" (binary_expression "this_00->super_Sized_relobj<64" (field_expression "this_00->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_element_count = 0;" (assignment_expression "(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_element_count = 0" (field_expression "(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_element_count" (field_expression "(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h" (field_expression "(this_00->super_Sized_relobj<64,_false>).local_got_offsets_" (parenthesized_expression "(this_00->super_Sized_relobj<64,_false>)" ( (comma_expression "this_00->super_Sized_relobj<64,_false" (binary_expression "this_00->super_Sized_relobj<64" (field_expression "this_00->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_rehash_policy.\n  _M_max_load_factor = 1.0;" (assignment_expression "(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_rehash_policy.\n  _M_max_load_factor = 1.0" (field_expression "(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_rehash_policy.\n  _M_max_load_factor" (field_expression "(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_rehash_policy" (field_expression "(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h" (field_expression "(this_00->super_Sized_relobj<64,_false>).local_got_offsets_" (parenthesized_expression "(this_00->super_Sized_relobj<64,_false>)" ( (comma_expression "this_00->super_Sized_relobj<64,_false" (binary_expression "this_00->super_Sized_relobj<64" (field_expression "this_00->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_rehash_policy._M_next_resize =\n       0;" (assignment_expression "(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_rehash_policy._M_next_resize =\n       0" (field_expression "(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_rehash_policy._M_next_resize" (field_expression "(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_rehash_policy" (field_expression "(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h" (field_expression "(this_00->super_Sized_relobj<64,_false>).local_got_offsets_" (parenthesized_expression "(this_00->super_Sized_relobj<64,_false>)" ( (comma_expression "this_00->super_Sized_relobj<64,_false" (binary_expression "this_00->super_Sized_relobj<64" (field_expression "this_00->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_single_bucket =\n       (__bucket_type)0x0;" (assignment_expression "(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_single_bucket =\n       (__bucket_type)0x0" (field_expression "(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h._M_single_bucket" (field_expression "(this_00->super_Sized_relobj<64,_false>).local_got_offsets_._M_h" (field_expression "(this_00->super_Sized_relobj<64,_false>).local_got_offsets_" (parenthesized_expression "(this_00->super_Sized_relobj<64,_false>)" ( (comma_expression "this_00->super_Sized_relobj<64,_false" (binary_expression "this_00->super_Sized_relobj<64" (field_expression "this_00->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(__bucket_type)0x0" ( (type_descriptor "__bucket_type" type_identifier) ) number_literal)) ;) (ERROR "(this_00->super_Sized_relobj<64,_false>).section_offsets_.\n  super__Vector_base<long_long_unsigned_int,_std::" (comma_expression "(this_00->super_Sized_relobj<64,_false>).section_offsets_.\n  super__Vector_base<long_long_unsigned_int,_std" (binary_expression "(this_00->super_Sized_relobj<64,_false>).section_offsets_.\n  super__Vector_base<long_long_unsigned_int" (field_expression "(this_00->super_Sized_relobj<64,_false>).section_offsets_.\n  super__Vector_base" (field_expression "(this_00->super_Sized_relobj<64,_false>).section_offsets_" (parenthesized_expression "(this_00->super_Sized_relobj<64,_false>)" ( (comma_expression "this_00->super_Sized_relobj<64,_false" (binary_expression "this_00->super_Sized_relobj<64" (field_expression "this_00->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) < identifier) , identifier) : :) (expression_statement "allocator<long_long_unsigned_int>_>._M_impl.\n  _M_start = (pointer)0x0;" (assignment_expression "allocator<long_long_unsigned_int>_>._M_impl.\n  _M_start = (pointer)0x0" (field_expression "allocator<long_long_unsigned_int>_>._M_impl.\n  _M_start" (field_expression "allocator<long_long_unsigned_int>_>._M_impl" (binary_expression "allocator<long_long_unsigned_int>_" (binary_expression "allocator<long_long_unsigned_int" identifier < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (ERROR "(this_00->super_Sized_relobj<64,_false>).section_offsets_.\n  super__Vector_base<long_long_unsigned_int,_std::" (comma_expression "(this_00->super_Sized_relobj<64,_false>).section_offsets_.\n  super__Vector_base<long_long_unsigned_int,_std" (binary_expression "(this_00->super_Sized_relobj<64,_false>).section_offsets_.\n  super__Vector_base<long_long_unsigned_int" (field_expression "(this_00->super_Sized_relobj<64,_false>).section_offsets_.\n  super__Vector_base" (field_expression "(this_00->super_Sized_relobj<64,_false>).section_offsets_" (parenthesized_expression "(this_00->super_Sized_relobj<64,_false>)" ( (comma_expression "this_00->super_Sized_relobj<64,_false" (binary_expression "this_00->super_Sized_relobj<64" (field_expression "this_00->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) < identifier) , identifier) : :) (expression_statement "allocator<long_long_unsigned_int>_>._M_impl.\n  _M_finish = (pointer)0x0;" (assignment_expression "allocator<long_long_unsigned_int>_>._M_impl.\n  _M_finish = (pointer)0x0" (field_expression "allocator<long_long_unsigned_int>_>._M_impl.\n  _M_finish" (field_expression "allocator<long_long_unsigned_int>_>._M_impl" (binary_expression "allocator<long_long_unsigned_int>_" (binary_expression "allocator<long_long_unsigned_int" identifier < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (ERROR "(this_00->super_Sized_relobj<64,_false>).section_offsets_.\n  super__Vector_base<long_long_unsigned_int,_std::" (comma_expression "(this_00->super_Sized_relobj<64,_false>).section_offsets_.\n  super__Vector_base<long_long_unsigned_int,_std" (binary_expression "(this_00->super_Sized_relobj<64,_false>).section_offsets_.\n  super__Vector_base<long_long_unsigned_int" (field_expression "(this_00->super_Sized_relobj<64,_false>).section_offsets_.\n  super__Vector_base" (field_expression "(this_00->super_Sized_relobj<64,_false>).section_offsets_" (parenthesized_expression "(this_00->super_Sized_relobj<64,_false>)" ( (comma_expression "this_00->super_Sized_relobj<64,_false" (binary_expression "this_00->super_Sized_relobj<64" (field_expression "this_00->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) < identifier) , identifier) : :) (expression_statement "allocator<long_long_unsigned_int>_>._M_impl.\n  _M_end_of_storage = (pointer)0x0;" (assignment_expression "allocator<long_long_unsigned_int>_>._M_impl.\n  _M_end_of_storage = (pointer)0x0" (field_expression "allocator<long_long_unsigned_int>_>._M_impl.\n  _M_end_of_storage" (field_expression "allocator<long_long_unsigned_int>_>._M_impl" (binary_expression "allocator<long_long_unsigned_int>_" (binary_expression "allocator<long_long_unsigned_int" identifier < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (if_statement "if (abiversion._M_p != pcVar12) {\n    operator_delete(abiversion._M_p);\n  }" if (parenthesized_expression "(abiversion._M_p != pcVar12)" ( (binary_expression "abiversion._M_p != pcVar12" (field_expression "abiversion._M_p" identifier . field_identifier) != identifier) )) (compound_statement "{\n    operator_delete(abiversion._M_p);\n  }" { (expression_statement "operator_delete(abiversion._M_p);" (call_expression "operator_delete(abiversion._M_p)" identifier (argument_list "(abiversion._M_p)" ( (field_expression "abiversion._M_p" identifier . field_identifier) ))) ;) })) (expression_statement "(this_00->elf_file_).file_ = (Object *)this_00;" (assignment_expression "(this_00->elf_file_).file_ = (Object *)this_00" (field_expression "(this_00->elf_file_).file_" (parenthesized_expression "(this_00->elf_file_)" ( (field_expression "this_00->elf_file_" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(Object *)this_00" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object =\n       (_func_int_varargs **)(unaff_EDI + 0x2aec03);" (assignment_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object =\n       (_func_int_varargs **)(unaff_EDI + 0x2aec03)" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj.super_Object" (field_expression "(this_00->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(this_00->super_Sized_relobj<64,_false>)" ( (comma_expression "this_00->super_Sized_relobj<64,_false" (binary_expression "this_00->super_Sized_relobj<64" (field_expression "this_00->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(_func_int_varargs **)(unaff_EDI + 0x2aec03)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EDI + 0x2aec03)" ( (binary_expression "unaff_EDI + 0x2aec03" identifier + number_literal) )))) ;) (expression_statement "(this_00->elf_file_).large_shndx_offset_ = 0;" (assignment_expression "(this_00->elf_file_).large_shndx_offset_ = 0" (field_expression "(this_00->elf_file_).large_shndx_offset_" (parenthesized_expression "(this_00->elf_file_)" ( (field_expression "this_00->elf_file_" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "uVar6 = *(undefined4 *)(p + 0x2c);" (assignment_expression "uVar6 = *(undefined4 *)(p + 0x2c)" identifier = (pointer_expression "*(undefined4 *)(p + 0x2c)" * (cast_expression "(undefined4 *)(p + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p + 0x2c)" ( (binary_expression "p + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)&(this_00->elf_file_).shoff_ = *(undefined4 *)(p + 0x28);" (assignment_expression "*(undefined4 *)&(this_00->elf_file_).shoff_ = *(undefined4 *)(p + 0x28)" (pointer_expression "*(undefined4 *)&(this_00->elf_file_).shoff_" * (cast_expression "(undefined4 *)&(this_00->elf_file_).shoff_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this_00->elf_file_).shoff_" & (field_expression "(this_00->elf_file_).shoff_" (parenthesized_expression "(this_00->elf_file_)" ( (field_expression "this_00->elf_file_" identifier -> field_identifier) )) . field_identifier)))) = (pointer_expression "*(undefined4 *)(p + 0x28)" * (cast_expression "(undefined4 *)(p + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p + 0x28)" ( (binary_expression "p + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)&(this_00->elf_file_).shoff_ + 4) = uVar6;" (assignment_expression "*(undefined4 *)((int)&(this_00->elf_file_).shoff_ + 4) = uVar6" (pointer_expression "*(undefined4 *)((int)&(this_00->elf_file_).shoff_ + 4)" * (cast_expression "(undefined4 *)((int)&(this_00->elf_file_).shoff_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(this_00->elf_file_).shoff_ + 4)" ( (binary_expression "(int)&(this_00->elf_file_).shoff_ + 4" (cast_expression "(int)&(this_00->elf_file_).shoff_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(this_00->elf_file_).shoff_" & (field_expression "(this_00->elf_file_).shoff_" (parenthesized_expression "(this_00->elf_file_)" ( (field_expression "this_00->elf_file_" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "(this_00->elf_file_).shnum_ = (uint)*(ushort *)(p + 0x3c);" (assignment_expression "(this_00->elf_file_).shnum_ = (uint)*(ushort *)(p + 0x3c)" (field_expression "(this_00->elf_file_).shnum_" (parenthesized_expression "(this_00->elf_file_)" ( (field_expression "this_00->elf_file_" identifier -> field_identifier) )) . field_identifier) = (binary_expression "(uint)*(ushort *)(p + 0x3c)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(p + 0x3c)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p + 0x3c)" ( (binary_expression "p + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "(this_00->elf_file_).shstrndx_ = (uint)*(ushort *)(p + 0x3e);" (assignment_expression "(this_00->elf_file_).shstrndx_ = (uint)*(ushort *)(p + 0x3e)" (field_expression "(this_00->elf_file_).shstrndx_" (parenthesized_expression "(this_00->elf_file_)" ( (field_expression "this_00->elf_file_" identifier -> field_identifier) )) . field_identifier) = (binary_expression "(uint)*(ushort *)(p + 0x3e)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(p + 0x3e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p + 0x3e)" ( (binary_expression "p + 0x3e" identifier + number_literal) ))))) ;) (expression_statement "pcVar13 = (char *)(uint)*(ushort *)(p + 0x34);" (assignment_expression "pcVar13 = (char *)(uint)*(ushort *)(p + 0x34)" identifier = (binary_expression "(char *)(uint)*(ushort *)(p + 0x34)" (cast_expression "(char *)(uint)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(ushort *)(p + 0x34)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p + 0x34)" ( (binary_expression "p + 0x34" identifier + number_literal) ))))) ;) (if_statement "if (*(ushort *)(p + 0x34) != 0x40) {\n    pcVar12 = (char *)gettext(unaff_EDI + 0x1cc69f);\n                    /* try { // try from 0004e4f8 to 0004e533 has its CatchHandler @ 0004e59f */\n    Object::error((Object *)this_00,pcVar12,(uint)pcVar13 & 0xffff,0x40);\n    pcVar12 = pcVar13;\n  }" if (parenthesized_expression "(*(ushort *)(p + 0x34) != 0x40)" ( (binary_expression "*(ushort *)(p + 0x34) != 0x40" (pointer_expression "*(ushort *)(p + 0x34)" * (cast_expression "(ushort *)(p + 0x34)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p + 0x34)" ( (binary_expression "p + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    pcVar12 = (char *)gettext(unaff_EDI + 0x1cc69f);\n                    /* try { // try from 0004e4f8 to 0004e533 has its CatchHandler @ 0004e59f */\n    Object::error((Object *)this_00,pcVar12,(uint)pcVar13 & 0xffff,0x40);\n    pcVar12 = pcVar13;\n  }" { (expression_statement "pcVar12 = (char *)gettext(unaff_EDI + 0x1cc69f);" (assignment_expression "pcVar12 = (char *)gettext(unaff_EDI + 0x1cc69f)" identifier = (cast_expression "(char *)gettext(unaff_EDI + 0x1cc69f)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext(unaff_EDI + 0x1cc69f)" identifier (argument_list "(unaff_EDI + 0x1cc69f)" ( (binary_expression "unaff_EDI + 0x1cc69f" identifier + number_literal) ))))) ;) comment (labeled_statement "Object::error((Object *)this_00,pcVar12,(uint)pcVar13 & 0xffff,0x40);" statement_identifier : (ERROR ":" :) (expression_statement "error((Object *)this_00,pcVar12,(uint)pcVar13 & 0xffff,0x40);" (call_expression "error((Object *)this_00,pcVar12,(uint)pcVar13 & 0xffff,0x40)" identifier (argument_list "((Object *)this_00,pcVar12,(uint)pcVar13 & 0xffff,0x40)" ( (cast_expression "(Object *)this_00" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (binary_expression "(uint)pcVar13 & 0xffff" (cast_expression "(uint)pcVar13" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) , number_literal ))) ;)) (expression_statement "pcVar12 = pcVar13;" (assignment_expression "pcVar12 = pcVar13" identifier = identifier) ;) })) (expression_statement "pcVar13 = (char *)(uint)*(ushort *)(p + 0x3a);" (assignment_expression "pcVar13 = (char *)(uint)*(ushort *)(p + 0x3a)" identifier = (binary_expression "(char *)(uint)*(ushort *)(p + 0x3a)" (cast_expression "(char *)(uint)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(ushort *)(p + 0x3a)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p + 0x3a)" ( (binary_expression "p + 0x3a" identifier + number_literal) ))))) ;) (if_statement "if (*(ushort *)(p + 0x3a) != 0x40) {\n    pcVar12 = (char *)gettext(unaff_EDI + 0x1cc6b7);\n    Object::error((Object *)this_00,pcVar12,(uint)pcVar13 & 0xffff,0x40);\n    pcVar12 = pcVar13;\n  }" if (parenthesized_expression "(*(ushort *)(p + 0x3a) != 0x40)" ( (binary_expression "*(ushort *)(p + 0x3a) != 0x40" (pointer_expression "*(ushort *)(p + 0x3a)" * (cast_expression "(ushort *)(p + 0x3a)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p + 0x3a)" ( (binary_expression "p + 0x3a" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    pcVar12 = (char *)gettext(unaff_EDI + 0x1cc6b7);\n    Object::error((Object *)this_00,pcVar12,(uint)pcVar13 & 0xffff,0x40);\n    pcVar12 = pcVar13;\n  }" { (expression_statement "pcVar12 = (char *)gettext(unaff_EDI + 0x1cc6b7);" (assignment_expression "pcVar12 = (char *)gettext(unaff_EDI + 0x1cc6b7)" identifier = (cast_expression "(char *)gettext(unaff_EDI + 0x1cc6b7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext(unaff_EDI + 0x1cc6b7)" identifier (argument_list "(unaff_EDI + 0x1cc6b7)" ( (binary_expression "unaff_EDI + 0x1cc6b7" identifier + number_literal) ))))) ;) (labeled_statement "Object::error((Object *)this_00,pcVar12,(uint)pcVar13 & 0xffff,0x40);" statement_identifier : (ERROR ":" :) (expression_statement "error((Object *)this_00,pcVar12,(uint)pcVar13 & 0xffff,0x40);" (call_expression "error((Object *)this_00,pcVar12,(uint)pcVar13 & 0xffff,0x40)" identifier (argument_list "((Object *)this_00,pcVar12,(uint)pcVar13 & 0xffff,0x40)" ( (cast_expression "(Object *)this_00" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (binary_expression "(uint)pcVar13 & 0xffff" (cast_expression "(uint)pcVar13" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) , number_literal ))) ;)) (expression_statement "pcVar12 = pcVar13;" (assignment_expression "pcVar12 = pcVar13" identifier = identifier) ;) })) (expression_statement "Sized_relobj_dwo<64,_false>::setup(this_00);" (comma_expression "Sized_relobj_dwo<64,_false>::setup(this_00)" (binary_expression "Sized_relobj_dwo<64" identifier < number_literal) , (binary_expression "_false>::setup(this_00)" identifier > (ERROR "::" : :) (call_expression "setup(this_00)" identifier (argument_list "(this_00)" ( identifier ))))) ;) (if_statement "if ((output_file != (Dwp_output_file *)0x0) && (output_file->size_ < 1)) {\n    bVar3 = p[8];\n    bVar4 = p[7];\n    uVar5 = *(ushort *)(p + 0x12);\n    output_file->size_ = 0x40;\n    output_file->abiversion_ = (uint)bVar3;\n    output_file->machine_ = (uint)uVar5;\n    output_file->big_endian_ = 0;\n    output_file->osabi_ = (uint)bVar4;\n    *(undefined4 *)&output_file->next_file_offset_ = 0x40;\n    *(undefined4 *)((int)&output_file->next_file_offset_ + 4) = 0;\n    Dwp_output_file::record_target_info\n              (this_01,(char *)pp_Var14,(int)machine,(int)pcVar12,(bool)in_stack_ffffffc4,\n               in_stack_ffffffc8,(int)abiversion._M_p);\n  }" if (parenthesized_expression "((output_file != (Dwp_output_file *)0x0) && (output_file->size_ < 1))" ( (binary_expression "(output_file != (Dwp_output_file *)0x0) && (output_file->size_ < 1)" (parenthesized_expression "(output_file != (Dwp_output_file *)0x0)" ( (binary_expression "output_file != (Dwp_output_file *)0x0" identifier != (cast_expression "(Dwp_output_file *)0x0" ( (type_descriptor "Dwp_output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(output_file->size_ < 1)" ( (binary_expression "output_file->size_ < 1" (field_expression "output_file->size_" identifier -> field_identifier) < number_literal) ))) )) (compound_statement "{\n    bVar3 = p[8];\n    bVar4 = p[7];\n    uVar5 = *(ushort *)(p + 0x12);\n    output_file->size_ = 0x40;\n    output_file->abiversion_ = (uint)bVar3;\n    output_file->machine_ = (uint)uVar5;\n    output_file->big_endian_ = 0;\n    output_file->osabi_ = (uint)bVar4;\n    *(undefined4 *)&output_file->next_file_offset_ = 0x40;\n    *(undefined4 *)((int)&output_file->next_file_offset_ + 4) = 0;\n    Dwp_output_file::record_target_info\n              (this_01,(char *)pp_Var14,(int)machine,(int)pcVar12,(bool)in_stack_ffffffc4,\n               in_stack_ffffffc8,(int)abiversion._M_p);\n  }" { (expression_statement "bVar3 = p[8];" (assignment_expression "bVar3 = p[8]" identifier = (subscript_expression "p[8]" identifier [ number_literal ])) ;) (expression_statement "bVar4 = p[7];" (assignment_expression "bVar4 = p[7]" identifier = (subscript_expression "p[7]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = *(ushort *)(p + 0x12);" (assignment_expression "uVar5 = *(ushort *)(p + 0x12)" identifier = (pointer_expression "*(ushort *)(p + 0x12)" * (cast_expression "(ushort *)(p + 0x12)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p + 0x12)" ( (binary_expression "p + 0x12" identifier + number_literal) ))))) ;) (expression_statement "output_file->size_ = 0x40;" (assignment_expression "output_file->size_ = 0x40" (field_expression "output_file->size_" identifier -> field_identifier) = number_literal) ;) (expression_statement "output_file->abiversion_ = (uint)bVar3;" (assignment_expression "output_file->abiversion_ = (uint)bVar3" (field_expression "output_file->abiversion_" identifier -> field_identifier) = (cast_expression "(uint)bVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "output_file->machine_ = (uint)uVar5;" (assignment_expression "output_file->machine_ = (uint)uVar5" (field_expression "output_file->machine_" identifier -> field_identifier) = (cast_expression "(uint)uVar5" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "output_file->big_endian_ = 0;" (assignment_expression "output_file->big_endian_ = 0" (field_expression "output_file->big_endian_" identifier -> field_identifier) = number_literal) ;) (expression_statement "output_file->osabi_ = (uint)bVar4;" (assignment_expression "output_file->osabi_ = (uint)bVar4" (field_expression "output_file->osabi_" identifier -> field_identifier) = (cast_expression "(uint)bVar4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(undefined4 *)&output_file->next_file_offset_ = 0x40;" (assignment_expression "*(undefined4 *)&output_file->next_file_offset_ = 0x40" (pointer_expression "*(undefined4 *)&output_file->next_file_offset_" * (cast_expression "(undefined4 *)&output_file->next_file_offset_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&output_file->next_file_offset_" & (field_expression "output_file->next_file_offset_" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&output_file->next_file_offset_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&output_file->next_file_offset_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&output_file->next_file_offset_ + 4)" * (cast_expression "(undefined4 *)((int)&output_file->next_file_offset_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&output_file->next_file_offset_ + 4)" ( (binary_expression "(int)&output_file->next_file_offset_ + 4" (cast_expression "(int)&output_file->next_file_offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&output_file->next_file_offset_" & (field_expression "output_file->next_file_offset_" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (labeled_statement "Dwp_output_file::record_target_info\n              (this_01,(char *)pp_Var14,(int)machine,(int)pcVar12,(bool)in_stack_ffffffc4,\n               in_stack_ffffffc8,(int)abiversion._M_p);" statement_identifier : (ERROR ":" :) (expression_statement "record_target_info\n              (this_01,(char *)pp_Var14,(int)machine,(int)pcVar12,(bool)in_stack_ffffffc4,\n               in_stack_ffffffc8,(int)abiversion._M_p);" (call_expression "record_target_info\n              (this_01,(char *)pp_Var14,(int)machine,(int)pcVar12,(bool)in_stack_ffffffc4,\n               in_stack_ffffffc8,(int)abiversion._M_p)" identifier (argument_list "(this_01,(char *)pp_Var14,(int)machine,(int)pcVar12,(bool)in_stack_ffffffc4,\n               in_stack_ffffffc8,(int)abiversion._M_p)" ( identifier , (cast_expression "(char *)pp_Var14" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(int)machine" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(int)pcVar12" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(bool)in_stack_ffffffc4" ( (type_descriptor "bool" primitive_type) ) identifier) , identifier , (cast_expression "(int)abiversion._M_p" ( (type_descriptor "int" primitive_type) ) (field_expression "abiversion._M_p" identifier . field_identifier)) ))) ;)) })) (return_statement "return (Relobj *)this_00;" return (cast_expression "(Relobj *)this_00" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ;) }))
(translation_unit "int * FUN_0004e2b0(undefined4 *param_1,int param_2,int param_3,int param_4)\n\n{\n  byte bVar1;\n  byte bVar2;\n  short sVar3;\n  ushort uVar4;\n  int iVar5;\n  int *piVar6;\n  char *pcVar7;\n  size_t sVar8;\n  uint uVar9;\n  byte *pbVar10;\n  undefined4 uVar11;\n  char *__s;\n  int unaff_EDI;\n  int iVar12;\n  int iVar13;\n  int *piVar14;\n  undefined1 *local_34;\n  int local_30;\n  undefined1 local_2c [28];\n  \n  FUN_0004fb7e();\n  piVar6 = (int *)FUN_0017ebf0(0xa8);\n  __s = (char *)*param_1;\n  pcVar7 = (char *)0xffffffff;\n  local_34 = local_2c;\n  if (__s != (char *)0x0) {\n    sVar8 = strlen(__s);\n    pcVar7 = __s + sVar8;\n  }\n                    \n  FUN_0004cf80(&local_34,__s,pcVar7,0);\n  iVar12 = unaff_EDI + 0x2ae773;\n  *piVar6 = iVar12;\n  piVar14 = piVar6 + 3;\n  piVar6[1] = (int)piVar14;\n                    \n  FUN_0004d4e0(piVar6 + 1,local_34,local_34 + local_30,0,iVar12);\n  piVar6[8] = 0;\n  piVar6[9] = 0;\n  piVar6[7] = param_3;\n  piVar6[10] = -1;\n  *(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0x80;\n  piVar6[0xc] = 0;\n  piVar6[0xd] = 0;\n  if (param_3 != 0) {\n    *(int *)(param_3 + 0x3c) = *(int *)(param_3 + 0x3c) + 1;\n                    \n    uVar9 = FUN_0005cf30(param_3);\n    *(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0xdf | (byte)((uVar9 & 1) << 5);\n    pbVar10 = (byte *)FUN_0005cf10(param_3);\n    *(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0xbf | (byte)((*pbVar10 & 1) << 6);\n  }\n  piVar6[0xe] = 0;\n  iVar13 = unaff_EDI + 0x2aeb07;\n  piVar6[0xf] = 0;\n  piVar6[0x10] = 0;\n  piVar6[0x11] = 0;\n  piVar6[0x12] = 0;\n  *(undefined1 *)(piVar6 + 0x13) = 0;\n  piVar6[0x15] = 0;\n  piVar6[0x16] = 0;\n  piVar6[0x17] = 0;\n  piVar6[0x18] = 0;\n  piVar6[0x19] = 0;\n  *piVar6 = iVar13;\n  uVar9 = 0;\n  do {\n    *(undefined4 *)((int)piVar6 + uVar9 + 0x68) = 0;\n    uVar9 = uVar9 + 4;\n  } while (uVar9 < 0x1c);\n  piVar6[0x1b] = 1;\n  piVar6[0x1a] = (int)(piVar6 + 0x20);\n  piVar6[0x1c] = 0;\n  piVar6[0x1d] = 0;\n  piVar6[0x1e] = 0x3f800000;\n  piVar6[0x1f] = 0;\n  piVar6[0x20] = 0;\n  piVar6[0x21] = 0;\n  piVar6[0x22] = 0;\n  piVar6[0x23] = 0;\n  if (local_34 != local_2c) {\n    FUN_001807a0(local_34);\n  }\n  piVar6[0x24] = (int)piVar6;\n  *piVar6 = unaff_EDI + 0x2aec03;\n  piVar6[0x29] = 0;\n  iVar5 = *(int *)(param_2 + 0x2c);\n  piVar6[0x25] = *(int *)(param_2 + 0x28);\n  piVar6[0x26] = iVar5;\n  piVar6[0x27] = (uint)*(ushort *)(param_2 + 0x3c);\n  piVar6[0x28] = (uint)*(ushort *)(param_2 + 0x3e);\n  sVar3 = *(short *)(param_2 + 0x34);\n  if (sVar3 != 0x40) {\n    uVar11 = gettext(unaff_EDI + 0x1cc69f);\n                    \n    FUN_00091980(piVar6,uVar11,sVar3,0x40,iVar12,iVar13,piVar14);\n  }\n  sVar3 = *(short *)(param_2 + 0x3a);\n  if (sVar3 != 0x40) {\n    uVar11 = gettext(unaff_EDI + 0x1cc6b7);\n    FUN_00091980(piVar6,uVar11,sVar3,0x40);\n  }\n  FUN_0004e110(piVar6);\n  if ((param_4 != 0) && (*(int *)(param_4 + 8) < 1)) {\n    bVar1 = *(byte *)(param_2 + 8);\n    bVar2 = *(byte *)(param_2 + 7);\n    uVar4 = *(ushort *)(param_2 + 0x12);\n    *(undefined4 *)(param_4 + 8) = 0x40;\n    *(uint *)(param_4 + 0x14) = (uint)bVar1;\n    *(uint *)(param_4 + 4) = (uint)uVar4;\n    *(undefined4 *)(param_4 + 0xc) = 0;\n    *(uint *)(param_4 + 0x10) = (uint)bVar2;\n    *(undefined4 *)(param_4 + 0x1c) = 0x40;\n    *(undefined4 *)(param_4 + 0x20) = 0;\n    FUN_00032960();\n  }\n  return piVar6;\n}\n\n" (function_definition "int * FUN_0004e2b0(undefined4 *param_1,int param_2,int param_3,int param_4)\n\n{\n  byte bVar1;\n  byte bVar2;\n  short sVar3;\n  ushort uVar4;\n  int iVar5;\n  int *piVar6;\n  char *pcVar7;\n  size_t sVar8;\n  uint uVar9;\n  byte *pbVar10;\n  undefined4 uVar11;\n  char *__s;\n  int unaff_EDI;\n  int iVar12;\n  int iVar13;\n  int *piVar14;\n  undefined1 *local_34;\n  int local_30;\n  undefined1 local_2c [28];\n  \n  FUN_0004fb7e();\n  piVar6 = (int *)FUN_0017ebf0(0xa8);\n  __s = (char *)*param_1;\n  pcVar7 = (char *)0xffffffff;\n  local_34 = local_2c;\n  if (__s != (char *)0x0) {\n    sVar8 = strlen(__s);\n    pcVar7 = __s + sVar8;\n  }\n                    \n  FUN_0004cf80(&local_34,__s,pcVar7,0);\n  iVar12 = unaff_EDI + 0x2ae773;\n  *piVar6 = iVar12;\n  piVar14 = piVar6 + 3;\n  piVar6[1] = (int)piVar14;\n                    \n  FUN_0004d4e0(piVar6 + 1,local_34,local_34 + local_30,0,iVar12);\n  piVar6[8] = 0;\n  piVar6[9] = 0;\n  piVar6[7] = param_3;\n  piVar6[10] = -1;\n  *(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0x80;\n  piVar6[0xc] = 0;\n  piVar6[0xd] = 0;\n  if (param_3 != 0) {\n    *(int *)(param_3 + 0x3c) = *(int *)(param_3 + 0x3c) + 1;\n                    \n    uVar9 = FUN_0005cf30(param_3);\n    *(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0xdf | (byte)((uVar9 & 1) << 5);\n    pbVar10 = (byte *)FUN_0005cf10(param_3);\n    *(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0xbf | (byte)((*pbVar10 & 1) << 6);\n  }\n  piVar6[0xe] = 0;\n  iVar13 = unaff_EDI + 0x2aeb07;\n  piVar6[0xf] = 0;\n  piVar6[0x10] = 0;\n  piVar6[0x11] = 0;\n  piVar6[0x12] = 0;\n  *(undefined1 *)(piVar6 + 0x13) = 0;\n  piVar6[0x15] = 0;\n  piVar6[0x16] = 0;\n  piVar6[0x17] = 0;\n  piVar6[0x18] = 0;\n  piVar6[0x19] = 0;\n  *piVar6 = iVar13;\n  uVar9 = 0;\n  do {\n    *(undefined4 *)((int)piVar6 + uVar9 + 0x68) = 0;\n    uVar9 = uVar9 + 4;\n  } while (uVar9 < 0x1c);\n  piVar6[0x1b] = 1;\n  piVar6[0x1a] = (int)(piVar6 + 0x20);\n  piVar6[0x1c] = 0;\n  piVar6[0x1d] = 0;\n  piVar6[0x1e] = 0x3f800000;\n  piVar6[0x1f] = 0;\n  piVar6[0x20] = 0;\n  piVar6[0x21] = 0;\n  piVar6[0x22] = 0;\n  piVar6[0x23] = 0;\n  if (local_34 != local_2c) {\n    FUN_001807a0(local_34);\n  }\n  piVar6[0x24] = (int)piVar6;\n  *piVar6 = unaff_EDI + 0x2aec03;\n  piVar6[0x29] = 0;\n  iVar5 = *(int *)(param_2 + 0x2c);\n  piVar6[0x25] = *(int *)(param_2 + 0x28);\n  piVar6[0x26] = iVar5;\n  piVar6[0x27] = (uint)*(ushort *)(param_2 + 0x3c);\n  piVar6[0x28] = (uint)*(ushort *)(param_2 + 0x3e);\n  sVar3 = *(short *)(param_2 + 0x34);\n  if (sVar3 != 0x40) {\n    uVar11 = gettext(unaff_EDI + 0x1cc69f);\n                    \n    FUN_00091980(piVar6,uVar11,sVar3,0x40,iVar12,iVar13,piVar14);\n  }\n  sVar3 = *(short *)(param_2 + 0x3a);\n  if (sVar3 != 0x40) {\n    uVar11 = gettext(unaff_EDI + 0x1cc6b7);\n    FUN_00091980(piVar6,uVar11,sVar3,0x40);\n  }\n  FUN_0004e110(piVar6);\n  if ((param_4 != 0) && (*(int *)(param_4 + 8) < 1)) {\n    bVar1 = *(byte *)(param_2 + 8);\n    bVar2 = *(byte *)(param_2 + 7);\n    uVar4 = *(ushort *)(param_2 + 0x12);\n    *(undefined4 *)(param_4 + 8) = 0x40;\n    *(uint *)(param_4 + 0x14) = (uint)bVar1;\n    *(uint *)(param_4 + 4) = (uint)uVar4;\n    *(undefined4 *)(param_4 + 0xc) = 0;\n    *(uint *)(param_4 + 0x10) = (uint)bVar2;\n    *(undefined4 *)(param_4 + 0x1c) = 0x40;\n    *(undefined4 *)(param_4 + 0x20) = 0;\n    FUN_00032960();\n  }\n  return piVar6;\n}" primitive_type (pointer_declarator "* FUN_0004e2b0(undefined4 *param_1,int param_2,int param_3,int param_4)" * (function_declarator "FUN_0004e2b0(undefined4 *param_1,int param_2,int param_3,int param_4)" identifier (parameter_list "(undefined4 *param_1,int param_2,int param_3,int param_4)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) )))) (compound_statement "{\n  byte bVar1;\n  byte bVar2;\n  short sVar3;\n  ushort uVar4;\n  int iVar5;\n  int *piVar6;\n  char *pcVar7;\n  size_t sVar8;\n  uint uVar9;\n  byte *pbVar10;\n  undefined4 uVar11;\n  char *__s;\n  int unaff_EDI;\n  int iVar12;\n  int iVar13;\n  int *piVar14;\n  undefined1 *local_34;\n  int local_30;\n  undefined1 local_2c [28];\n  \n  FUN_0004fb7e();\n  piVar6 = (int *)FUN_0017ebf0(0xa8);\n  __s = (char *)*param_1;\n  pcVar7 = (char *)0xffffffff;\n  local_34 = local_2c;\n  if (__s != (char *)0x0) {\n    sVar8 = strlen(__s);\n    pcVar7 = __s + sVar8;\n  }\n                    \n  FUN_0004cf80(&local_34,__s,pcVar7,0);\n  iVar12 = unaff_EDI + 0x2ae773;\n  *piVar6 = iVar12;\n  piVar14 = piVar6 + 3;\n  piVar6[1] = (int)piVar14;\n                    \n  FUN_0004d4e0(piVar6 + 1,local_34,local_34 + local_30,0,iVar12);\n  piVar6[8] = 0;\n  piVar6[9] = 0;\n  piVar6[7] = param_3;\n  piVar6[10] = -1;\n  *(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0x80;\n  piVar6[0xc] = 0;\n  piVar6[0xd] = 0;\n  if (param_3 != 0) {\n    *(int *)(param_3 + 0x3c) = *(int *)(param_3 + 0x3c) + 1;\n                    \n    uVar9 = FUN_0005cf30(param_3);\n    *(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0xdf | (byte)((uVar9 & 1) << 5);\n    pbVar10 = (byte *)FUN_0005cf10(param_3);\n    *(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0xbf | (byte)((*pbVar10 & 1) << 6);\n  }\n  piVar6[0xe] = 0;\n  iVar13 = unaff_EDI + 0x2aeb07;\n  piVar6[0xf] = 0;\n  piVar6[0x10] = 0;\n  piVar6[0x11] = 0;\n  piVar6[0x12] = 0;\n  *(undefined1 *)(piVar6 + 0x13) = 0;\n  piVar6[0x15] = 0;\n  piVar6[0x16] = 0;\n  piVar6[0x17] = 0;\n  piVar6[0x18] = 0;\n  piVar6[0x19] = 0;\n  *piVar6 = iVar13;\n  uVar9 = 0;\n  do {\n    *(undefined4 *)((int)piVar6 + uVar9 + 0x68) = 0;\n    uVar9 = uVar9 + 4;\n  } while (uVar9 < 0x1c);\n  piVar6[0x1b] = 1;\n  piVar6[0x1a] = (int)(piVar6 + 0x20);\n  piVar6[0x1c] = 0;\n  piVar6[0x1d] = 0;\n  piVar6[0x1e] = 0x3f800000;\n  piVar6[0x1f] = 0;\n  piVar6[0x20] = 0;\n  piVar6[0x21] = 0;\n  piVar6[0x22] = 0;\n  piVar6[0x23] = 0;\n  if (local_34 != local_2c) {\n    FUN_001807a0(local_34);\n  }\n  piVar6[0x24] = (int)piVar6;\n  *piVar6 = unaff_EDI + 0x2aec03;\n  piVar6[0x29] = 0;\n  iVar5 = *(int *)(param_2 + 0x2c);\n  piVar6[0x25] = *(int *)(param_2 + 0x28);\n  piVar6[0x26] = iVar5;\n  piVar6[0x27] = (uint)*(ushort *)(param_2 + 0x3c);\n  piVar6[0x28] = (uint)*(ushort *)(param_2 + 0x3e);\n  sVar3 = *(short *)(param_2 + 0x34);\n  if (sVar3 != 0x40) {\n    uVar11 = gettext(unaff_EDI + 0x1cc69f);\n                    \n    FUN_00091980(piVar6,uVar11,sVar3,0x40,iVar12,iVar13,piVar14);\n  }\n  sVar3 = *(short *)(param_2 + 0x3a);\n  if (sVar3 != 0x40) {\n    uVar11 = gettext(unaff_EDI + 0x1cc6b7);\n    FUN_00091980(piVar6,uVar11,sVar3,0x40);\n  }\n  FUN_0004e110(piVar6);\n  if ((param_4 != 0) && (*(int *)(param_4 + 8) < 1)) {\n    bVar1 = *(byte *)(param_2 + 8);\n    bVar2 = *(byte *)(param_2 + 7);\n    uVar4 = *(ushort *)(param_2 + 0x12);\n    *(undefined4 *)(param_4 + 8) = 0x40;\n    *(uint *)(param_4 + 0x14) = (uint)bVar1;\n    *(uint *)(param_4 + 4) = (uint)uVar4;\n    *(undefined4 *)(param_4 + 0xc) = 0;\n    *(uint *)(param_4 + 0x10) = (uint)bVar2;\n    *(undefined4 *)(param_4 + 0x1c) = 0x40;\n    *(undefined4 *)(param_4 + 0x20) = 0;\n    FUN_00032960();\n  }\n  return piVar6;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "short sVar3;" (sized_type_specifier "short" short) identifier ;) (declaration "ushort uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "size_t sVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "undefined1 *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "undefined1 local_2c [28];" type_identifier (array_declarator "local_2c [28]" identifier [ number_literal ]) ;) (expression_statement "FUN_0004fb7e();" (call_expression "FUN_0004fb7e()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar6 = (int *)FUN_0017ebf0(0xa8);" (assignment_expression "piVar6 = (int *)FUN_0017ebf0(0xa8)" identifier = (cast_expression "(int *)FUN_0017ebf0(0xa8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0017ebf0(0xa8)" identifier (argument_list "(0xa8)" ( number_literal ))))) ;) (expression_statement "__s = (char *)*param_1;" (assignment_expression "__s = (char *)*param_1" identifier = (cast_expression "(char *)*param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "pcVar7 = (char *)0xffffffff;" (assignment_expression "pcVar7 = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_34 = local_2c;" (assignment_expression "local_34 = local_2c" identifier = identifier) ;) (if_statement "if (__s != (char *)0x0) {\n    sVar8 = strlen(__s);\n    pcVar7 = __s + sVar8;\n  }" if (parenthesized_expression "(__s != (char *)0x0)" ( (binary_expression "__s != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sVar8 = strlen(__s);\n    pcVar7 = __s + sVar8;\n  }" { (expression_statement "sVar8 = strlen(__s);" (assignment_expression "sVar8 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (expression_statement "pcVar7 = __s + sVar8;" (assignment_expression "pcVar7 = __s + sVar8" identifier = (binary_expression "__s + sVar8" identifier + identifier)) ;) })) (expression_statement "FUN_0004cf80(&local_34,__s,pcVar7,0);" (call_expression "FUN_0004cf80(&local_34,__s,pcVar7,0)" identifier (argument_list "(&local_34,__s,pcVar7,0)" ( (pointer_expression "&local_34" & identifier) , identifier , identifier , number_literal ))) ;) (expression_statement "iVar12 = unaff_EDI + 0x2ae773;" (assignment_expression "iVar12 = unaff_EDI + 0x2ae773" identifier = (binary_expression "unaff_EDI + 0x2ae773" identifier + number_literal)) ;) (expression_statement "*piVar6 = iVar12;" (assignment_expression "*piVar6 = iVar12" (pointer_expression "*piVar6" * identifier) = identifier) ;) (expression_statement "piVar14 = piVar6 + 3;" (assignment_expression "piVar14 = piVar6 + 3" identifier = (binary_expression "piVar6 + 3" identifier + number_literal)) ;) (expression_statement "piVar6[1] = (int)piVar14;" (assignment_expression "piVar6[1] = (int)piVar14" (subscript_expression "piVar6[1]" identifier [ number_literal ]) = (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "FUN_0004d4e0(piVar6 + 1,local_34,local_34 + local_30,0,iVar12);" (call_expression "FUN_0004d4e0(piVar6 + 1,local_34,local_34 + local_30,0,iVar12)" identifier (argument_list "(piVar6 + 1,local_34,local_34 + local_30,0,iVar12)" ( (binary_expression "piVar6 + 1" identifier + number_literal) , identifier , (binary_expression "local_34 + local_30" identifier + identifier) , number_literal , identifier ))) ;) (expression_statement "piVar6[8] = 0;" (assignment_expression "piVar6[8] = 0" (subscript_expression "piVar6[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[9] = 0;" (assignment_expression "piVar6[9] = 0" (subscript_expression "piVar6[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[7] = param_3;" (assignment_expression "piVar6[7] = param_3" (subscript_expression "piVar6[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar6[10] = -1;" (assignment_expression "piVar6[10] = -1" (subscript_expression "piVar6[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0x80;" (assignment_expression "*(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0x80" (pointer_expression "*(byte *)(piVar6 + 0xb)" * (cast_expression "(byte *)(piVar6 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar6 + 0xb)" ( (binary_expression "piVar6 + 0xb" identifier + number_literal) )))) = (binary_expression "*(byte *)(piVar6 + 0xb) & 0x80" (pointer_expression "*(byte *)(piVar6 + 0xb)" * (cast_expression "(byte *)(piVar6 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar6 + 0xb)" ( (binary_expression "piVar6 + 0xb" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "piVar6[0xc] = 0;" (assignment_expression "piVar6[0xc] = 0" (subscript_expression "piVar6[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[0xd] = 0;" (assignment_expression "piVar6[0xd] = 0" (subscript_expression "piVar6[0xd]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (param_3 != 0) {\n    *(int *)(param_3 + 0x3c) = *(int *)(param_3 + 0x3c) + 1;\n                    \n    uVar9 = FUN_0005cf30(param_3);\n    *(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0xdf | (byte)((uVar9 & 1) << 5);\n    pbVar10 = (byte *)FUN_0005cf10(param_3);\n    *(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0xbf | (byte)((*pbVar10 & 1) << 6);\n  }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n    *(int *)(param_3 + 0x3c) = *(int *)(param_3 + 0x3c) + 1;\n                    \n    uVar9 = FUN_0005cf30(param_3);\n    *(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0xdf | (byte)((uVar9 & 1) << 5);\n    pbVar10 = (byte *)FUN_0005cf10(param_3);\n    *(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0xbf | (byte)((*pbVar10 & 1) << 6);\n  }" { (expression_statement "*(int *)(param_3 + 0x3c) = *(int *)(param_3 + 0x3c) + 1;" (assignment_expression "*(int *)(param_3 + 0x3c) = *(int *)(param_3 + 0x3c) + 1" (pointer_expression "*(int *)(param_3 + 0x3c)" * (cast_expression "(int *)(param_3 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x3c)" ( (binary_expression "param_3 + 0x3c" identifier + number_literal) )))) = (binary_expression "*(int *)(param_3 + 0x3c) + 1" (pointer_expression "*(int *)(param_3 + 0x3c)" * (cast_expression "(int *)(param_3 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x3c)" ( (binary_expression "param_3 + 0x3c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "uVar9 = FUN_0005cf30(param_3);" (assignment_expression "uVar9 = FUN_0005cf30(param_3)" identifier = (call_expression "FUN_0005cf30(param_3)" identifier (argument_list "(param_3)" ( identifier )))) ;) (expression_statement "*(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0xdf | (byte)((uVar9 & 1) << 5);" (assignment_expression "*(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0xdf | (byte)((uVar9 & 1) << 5)" (pointer_expression "*(byte *)(piVar6 + 0xb)" * (cast_expression "(byte *)(piVar6 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar6 + 0xb)" ( (binary_expression "piVar6 + 0xb" identifier + number_literal) )))) = (binary_expression "*(byte *)(piVar6 + 0xb) & 0xdf | (byte)((uVar9 & 1) << 5)" (binary_expression "*(byte *)(piVar6 + 0xb) & 0xdf" (pointer_expression "*(byte *)(piVar6 + 0xb)" * (cast_expression "(byte *)(piVar6 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar6 + 0xb)" ( (binary_expression "piVar6 + 0xb" identifier + number_literal) )))) & number_literal) | (call_expression "(byte)((uVar9 & 1) << 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uVar9 & 1) << 5)" ( (binary_expression "(uVar9 & 1) << 5" (parenthesized_expression "(uVar9 & 1)" ( (binary_expression "uVar9 & 1" identifier & number_literal) )) << number_literal) ))))) ;) (expression_statement "pbVar10 = (byte *)FUN_0005cf10(param_3);" (assignment_expression "pbVar10 = (byte *)FUN_0005cf10(param_3)" identifier = (cast_expression "(byte *)FUN_0005cf10(param_3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0005cf10(param_3)" identifier (argument_list "(param_3)" ( identifier ))))) ;) (expression_statement "*(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0xbf | (byte)((*pbVar10 & 1) << 6);" (assignment_expression "*(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0xbf | (byte)((*pbVar10 & 1) << 6)" (pointer_expression "*(byte *)(piVar6 + 0xb)" * (cast_expression "(byte *)(piVar6 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar6 + 0xb)" ( (binary_expression "piVar6 + 0xb" identifier + number_literal) )))) = (binary_expression "*(byte *)(piVar6 + 0xb) & 0xbf | (byte)((*pbVar10 & 1) << 6)" (binary_expression "*(byte *)(piVar6 + 0xb) & 0xbf" (pointer_expression "*(byte *)(piVar6 + 0xb)" * (cast_expression "(byte *)(piVar6 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar6 + 0xb)" ( (binary_expression "piVar6 + 0xb" identifier + number_literal) )))) & number_literal) | (call_expression "(byte)((*pbVar10 & 1) << 6)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((*pbVar10 & 1) << 6)" ( (binary_expression "(*pbVar10 & 1) << 6" (parenthesized_expression "(*pbVar10 & 1)" ( (binary_expression "*pbVar10 & 1" (pointer_expression "*pbVar10" * identifier) & number_literal) )) << number_literal) ))))) ;) })) (expression_statement "piVar6[0xe] = 0;" (assignment_expression "piVar6[0xe] = 0" (subscript_expression "piVar6[0xe]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar13 = unaff_EDI + 0x2aeb07;" (assignment_expression "iVar13 = unaff_EDI + 0x2aeb07" identifier = (binary_expression "unaff_EDI + 0x2aeb07" identifier + number_literal)) ;) (expression_statement "piVar6[0xf] = 0;" (assignment_expression "piVar6[0xf] = 0" (subscript_expression "piVar6[0xf]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[0x10] = 0;" (assignment_expression "piVar6[0x10] = 0" (subscript_expression "piVar6[0x10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[0x11] = 0;" (assignment_expression "piVar6[0x11] = 0" (subscript_expression "piVar6[0x11]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[0x12] = 0;" (assignment_expression "piVar6[0x12] = 0" (subscript_expression "piVar6[0x12]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(piVar6 + 0x13) = 0;" (assignment_expression "*(undefined1 *)(piVar6 + 0x13) = 0" (pointer_expression "*(undefined1 *)(piVar6 + 0x13)" * (cast_expression "(undefined1 *)(piVar6 + 0x13)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar6 + 0x13)" ( (binary_expression "piVar6 + 0x13" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar6[0x15] = 0;" (assignment_expression "piVar6[0x15] = 0" (subscript_expression "piVar6[0x15]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[0x16] = 0;" (assignment_expression "piVar6[0x16] = 0" (subscript_expression "piVar6[0x16]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[0x17] = 0;" (assignment_expression "piVar6[0x17] = 0" (subscript_expression "piVar6[0x17]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[0x18] = 0;" (assignment_expression "piVar6[0x18] = 0" (subscript_expression "piVar6[0x18]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[0x19] = 0;" (assignment_expression "piVar6[0x19] = 0" (subscript_expression "piVar6[0x19]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*piVar6 = iVar13;" (assignment_expression "*piVar6 = iVar13" (pointer_expression "*piVar6" * identifier) = identifier) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (do_statement "do {\n    *(undefined4 *)((int)piVar6 + uVar9 + 0x68) = 0;\n    uVar9 = uVar9 + 4;\n  } while (uVar9 < 0x1c);" do (compound_statement "{\n    *(undefined4 *)((int)piVar6 + uVar9 + 0x68) = 0;\n    uVar9 = uVar9 + 4;\n  }" { (expression_statement "*(undefined4 *)((int)piVar6 + uVar9 + 0x68) = 0;" (assignment_expression "*(undefined4 *)((int)piVar6 + uVar9 + 0x68) = 0" (pointer_expression "*(undefined4 *)((int)piVar6 + uVar9 + 0x68)" * (cast_expression "(undefined4 *)((int)piVar6 + uVar9 + 0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar6 + uVar9 + 0x68)" ( (binary_expression "(int)piVar6 + uVar9 + 0x68" (binary_expression "(int)piVar6 + uVar9" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar9 = uVar9 + 4;" (assignment_expression "uVar9 = uVar9 + 4" identifier = (binary_expression "uVar9 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar9 < 0x1c)" ( (binary_expression "uVar9 < 0x1c" identifier < number_literal) )) ;) (expression_statement "piVar6[0x1b] = 1;" (assignment_expression "piVar6[0x1b] = 1" (subscript_expression "piVar6[0x1b]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[0x1a] = (int)(piVar6 + 0x20);" (assignment_expression "piVar6[0x1a] = (int)(piVar6 + 0x20)" (subscript_expression "piVar6[0x1a]" identifier [ number_literal ]) = (cast_expression "(int)(piVar6 + 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar6 + 0x20)" ( (binary_expression "piVar6 + 0x20" identifier + number_literal) )))) ;) (expression_statement "piVar6[0x1c] = 0;" (assignment_expression "piVar6[0x1c] = 0" (subscript_expression "piVar6[0x1c]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[0x1d] = 0;" (assignment_expression "piVar6[0x1d] = 0" (subscript_expression "piVar6[0x1d]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[0x1e] = 0x3f800000;" (assignment_expression "piVar6[0x1e] = 0x3f800000" (subscript_expression "piVar6[0x1e]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[0x1f] = 0;" (assignment_expression "piVar6[0x1f] = 0" (subscript_expression "piVar6[0x1f]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[0x20] = 0;" (assignment_expression "piVar6[0x20] = 0" (subscript_expression "piVar6[0x20]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[0x21] = 0;" (assignment_expression "piVar6[0x21] = 0" (subscript_expression "piVar6[0x21]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[0x22] = 0;" (assignment_expression "piVar6[0x22] = 0" (subscript_expression "piVar6[0x22]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[0x23] = 0;" (assignment_expression "piVar6[0x23] = 0" (subscript_expression "piVar6[0x23]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (local_34 != local_2c) {\n    FUN_001807a0(local_34);\n  }" if (parenthesized_expression "(local_34 != local_2c)" ( (binary_expression "local_34 != local_2c" identifier != identifier) )) (compound_statement "{\n    FUN_001807a0(local_34);\n  }" { (expression_statement "FUN_001807a0(local_34);" (call_expression "FUN_001807a0(local_34)" identifier (argument_list "(local_34)" ( identifier ))) ;) })) (expression_statement "piVar6[0x24] = (int)piVar6;" (assignment_expression "piVar6[0x24] = (int)piVar6" (subscript_expression "piVar6[0x24]" identifier [ number_literal ]) = (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*piVar6 = unaff_EDI + 0x2aec03;" (assignment_expression "*piVar6 = unaff_EDI + 0x2aec03" (pointer_expression "*piVar6" * identifier) = (binary_expression "unaff_EDI + 0x2aec03" identifier + number_literal)) ;) (expression_statement "piVar6[0x29] = 0;" (assignment_expression "piVar6[0x29] = 0" (subscript_expression "piVar6[0x29]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar5 = *(int *)(param_2 + 0x2c);" (assignment_expression "iVar5 = *(int *)(param_2 + 0x2c)" identifier = (pointer_expression "*(int *)(param_2 + 0x2c)" * (cast_expression "(int *)(param_2 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2c)" ( (binary_expression "param_2 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "piVar6[0x25] = *(int *)(param_2 + 0x28);" (assignment_expression "piVar6[0x25] = *(int *)(param_2 + 0x28)" (subscript_expression "piVar6[0x25]" identifier [ number_literal ]) = (pointer_expression "*(int *)(param_2 + 0x28)" * (cast_expression "(int *)(param_2 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x28)" ( (binary_expression "param_2 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "piVar6[0x26] = iVar5;" (assignment_expression "piVar6[0x26] = iVar5" (subscript_expression "piVar6[0x26]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar6[0x27] = (uint)*(ushort *)(param_2 + 0x3c);" (assignment_expression "piVar6[0x27] = (uint)*(ushort *)(param_2 + 0x3c)" (subscript_expression "piVar6[0x27]" identifier [ number_literal ]) = (binary_expression "(uint)*(ushort *)(param_2 + 0x3c)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(param_2 + 0x3c)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3c)" ( (binary_expression "param_2 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "piVar6[0x28] = (uint)*(ushort *)(param_2 + 0x3e);" (assignment_expression "piVar6[0x28] = (uint)*(ushort *)(param_2 + 0x3e)" (subscript_expression "piVar6[0x28]" identifier [ number_literal ]) = (binary_expression "(uint)*(ushort *)(param_2 + 0x3e)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(param_2 + 0x3e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3e)" ( (binary_expression "param_2 + 0x3e" identifier + number_literal) ))))) ;) (expression_statement "sVar3 = *(short *)(param_2 + 0x34);" (assignment_expression "sVar3 = *(short *)(param_2 + 0x34)" identifier = (pointer_expression "*(short *)(param_2 + 0x34)" * (cast_expression "(short *)(param_2 + 0x34)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x34)" ( (binary_expression "param_2 + 0x34" identifier + number_literal) ))))) ;) (if_statement "if (sVar3 != 0x40) {\n    uVar11 = gettext(unaff_EDI + 0x1cc69f);\n                    \n    FUN_00091980(piVar6,uVar11,sVar3,0x40,iVar12,iVar13,piVar14);\n  }" if (parenthesized_expression "(sVar3 != 0x40)" ( (binary_expression "sVar3 != 0x40" identifier != number_literal) )) (compound_statement "{\n    uVar11 = gettext(unaff_EDI + 0x1cc69f);\n                    \n    FUN_00091980(piVar6,uVar11,sVar3,0x40,iVar12,iVar13,piVar14);\n  }" { (expression_statement "uVar11 = gettext(unaff_EDI + 0x1cc69f);" (assignment_expression "uVar11 = gettext(unaff_EDI + 0x1cc69f)" identifier = (call_expression "gettext(unaff_EDI + 0x1cc69f)" identifier (argument_list "(unaff_EDI + 0x1cc69f)" ( (binary_expression "unaff_EDI + 0x1cc69f" identifier + number_literal) )))) ;) (expression_statement "FUN_00091980(piVar6,uVar11,sVar3,0x40,iVar12,iVar13,piVar14);" (call_expression "FUN_00091980(piVar6,uVar11,sVar3,0x40,iVar12,iVar13,piVar14)" identifier (argument_list "(piVar6,uVar11,sVar3,0x40,iVar12,iVar13,piVar14)" ( identifier , identifier , identifier , number_literal , identifier , identifier , identifier ))) ;) })) (expression_statement "sVar3 = *(short *)(param_2 + 0x3a);" (assignment_expression "sVar3 = *(short *)(param_2 + 0x3a)" identifier = (pointer_expression "*(short *)(param_2 + 0x3a)" * (cast_expression "(short *)(param_2 + 0x3a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3a)" ( (binary_expression "param_2 + 0x3a" identifier + number_literal) ))))) ;) (if_statement "if (sVar3 != 0x40) {\n    uVar11 = gettext(unaff_EDI + 0x1cc6b7);\n    FUN_00091980(piVar6,uVar11,sVar3,0x40);\n  }" if (parenthesized_expression "(sVar3 != 0x40)" ( (binary_expression "sVar3 != 0x40" identifier != number_literal) )) (compound_statement "{\n    uVar11 = gettext(unaff_EDI + 0x1cc6b7);\n    FUN_00091980(piVar6,uVar11,sVar3,0x40);\n  }" { (expression_statement "uVar11 = gettext(unaff_EDI + 0x1cc6b7);" (assignment_expression "uVar11 = gettext(unaff_EDI + 0x1cc6b7)" identifier = (call_expression "gettext(unaff_EDI + 0x1cc6b7)" identifier (argument_list "(unaff_EDI + 0x1cc6b7)" ( (binary_expression "unaff_EDI + 0x1cc6b7" identifier + number_literal) )))) ;) (expression_statement "FUN_00091980(piVar6,uVar11,sVar3,0x40);" (call_expression "FUN_00091980(piVar6,uVar11,sVar3,0x40)" identifier (argument_list "(piVar6,uVar11,sVar3,0x40)" ( identifier , identifier , identifier , number_literal ))) ;) })) (expression_statement "FUN_0004e110(piVar6);" (call_expression "FUN_0004e110(piVar6)" identifier (argument_list "(piVar6)" ( identifier ))) ;) (if_statement "if ((param_4 != 0) && (*(int *)(param_4 + 8) < 1)) {\n    bVar1 = *(byte *)(param_2 + 8);\n    bVar2 = *(byte *)(param_2 + 7);\n    uVar4 = *(ushort *)(param_2 + 0x12);\n    *(undefined4 *)(param_4 + 8) = 0x40;\n    *(uint *)(param_4 + 0x14) = (uint)bVar1;\n    *(uint *)(param_4 + 4) = (uint)uVar4;\n    *(undefined4 *)(param_4 + 0xc) = 0;\n    *(uint *)(param_4 + 0x10) = (uint)bVar2;\n    *(undefined4 *)(param_4 + 0x1c) = 0x40;\n    *(undefined4 *)(param_4 + 0x20) = 0;\n    FUN_00032960();\n  }" if (parenthesized_expression "((param_4 != 0) && (*(int *)(param_4 + 8) < 1))" ( (binary_expression "(param_4 != 0) && (*(int *)(param_4 + 8) < 1)" (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(int *)(param_4 + 8) < 1)" ( (binary_expression "*(int *)(param_4 + 8) < 1" (pointer_expression "*(int *)(param_4 + 8)" * (cast_expression "(int *)(param_4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 8)" ( (binary_expression "param_4 + 8" identifier + number_literal) )))) < number_literal) ))) )) (compound_statement "{\n    bVar1 = *(byte *)(param_2 + 8);\n    bVar2 = *(byte *)(param_2 + 7);\n    uVar4 = *(ushort *)(param_2 + 0x12);\n    *(undefined4 *)(param_4 + 8) = 0x40;\n    *(uint *)(param_4 + 0x14) = (uint)bVar1;\n    *(uint *)(param_4 + 4) = (uint)uVar4;\n    *(undefined4 *)(param_4 + 0xc) = 0;\n    *(uint *)(param_4 + 0x10) = (uint)bVar2;\n    *(undefined4 *)(param_4 + 0x1c) = 0x40;\n    *(undefined4 *)(param_4 + 0x20) = 0;\n    FUN_00032960();\n  }" { (expression_statement "bVar1 = *(byte *)(param_2 + 8);" (assignment_expression "bVar1 = *(byte *)(param_2 + 8)" identifier = (pointer_expression "*(byte *)(param_2 + 8)" * (cast_expression "(byte *)(param_2 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) ))))) ;) (expression_statement "bVar2 = *(byte *)(param_2 + 7);" (assignment_expression "bVar2 = *(byte *)(param_2 + 7)" identifier = (pointer_expression "*(byte *)(param_2 + 7)" * (cast_expression "(byte *)(param_2 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(ushort *)(param_2 + 0x12);" (assignment_expression "uVar4 = *(ushort *)(param_2 + 0x12)" identifier = (pointer_expression "*(ushort *)(param_2 + 0x12)" * (cast_expression "(ushort *)(param_2 + 0x12)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x12)" ( (binary_expression "param_2 + 0x12" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_4 + 8) = 0x40;" (assignment_expression "*(undefined4 *)(param_4 + 8) = 0x40" (pointer_expression "*(undefined4 *)(param_4 + 8)" * (cast_expression "(undefined4 *)(param_4 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 8)" ( (binary_expression "param_4 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(param_4 + 0x14) = (uint)bVar1;" (assignment_expression "*(uint *)(param_4 + 0x14) = (uint)bVar1" (pointer_expression "*(uint *)(param_4 + 0x14)" * (cast_expression "(uint *)(param_4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x14)" ( (binary_expression "param_4 + 0x14" identifier + number_literal) )))) = (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(uint *)(param_4 + 4) = (uint)uVar4;" (assignment_expression "*(uint *)(param_4 + 4) = (uint)uVar4" (pointer_expression "*(uint *)(param_4 + 4)" * (cast_expression "(uint *)(param_4 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) )))) = (cast_expression "(uint)uVar4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(undefined4 *)(param_4 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(param_4 + 0xc) = 0" (pointer_expression "*(undefined4 *)(param_4 + 0xc)" * (cast_expression "(undefined4 *)(param_4 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0xc)" ( (binary_expression "param_4 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(param_4 + 0x10) = (uint)bVar2;" (assignment_expression "*(uint *)(param_4 + 0x10) = (uint)bVar2" (pointer_expression "*(uint *)(param_4 + 0x10)" * (cast_expression "(uint *)(param_4 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x10)" ( (binary_expression "param_4 + 0x10" identifier + number_literal) )))) = (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(undefined4 *)(param_4 + 0x1c) = 0x40;" (assignment_expression "*(undefined4 *)(param_4 + 0x1c) = 0x40" (pointer_expression "*(undefined4 *)(param_4 + 0x1c)" * (cast_expression "(undefined4 *)(param_4 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x1c)" ( (binary_expression "param_4 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_4 + 0x20) = 0;" (assignment_expression "*(undefined4 *)(param_4 + 0x20) = 0" (pointer_expression "*(undefined4 *)(param_4 + 0x20)" * (cast_expression "(undefined4 *)(param_4 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x20)" ( (binary_expression "param_4 + 0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00032960();" (call_expression "FUN_00032960()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return piVar6;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (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 (sized_type_specifier short) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * 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 (array_declarator IDENT [ LIT ]) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = 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 = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , (binary_expression IDENT + IDENT) , LIT , IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (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) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) << LIT) ))))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (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 (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression 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 (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT , IDENT , IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (return_statement return IDENT ;) })))
(function_definition "int * FUN_0004e2b0(undefined4 *param_1,int param_2,int param_3,int param_4)\n\n{\n  byte bVar1;\n  byte bVar2;\n  short sVar3;\n  ushort uVar4;\n  int iVar5;\n  int *piVar6;\n  char *pcVar7;\n  size_t sVar8;\n  uint uVar9;\n  byte *pbVar10;\n  undefined4 uVar11;\n  char *__s;\n  int unaff_EDI;\n  int iVar12;\n  int iVar13;\n  int *piVar14;\n  undefined1 *local_34;\n  int local_30;\n  undefined1 local_2c [28];\n  \n  FUN_0004fb7e();\n  piVar6 = (int *)FUN_0017ebf0(0xa8);\n  __s = (char *)*param_1;\n  pcVar7 = (char *)0xffffffff;\n  local_34 = local_2c;\n  if (__s != (char *)0x0) {\n    sVar8 = strlen(__s);\n    pcVar7 = __s + sVar8;\n  }\n                    \n  FUN_0004cf80(&local_34,__s,pcVar7,0);\n  iVar12 = unaff_EDI + 0x2ae773;\n  *piVar6 = iVar12;\n  piVar14 = piVar6 + 3;\n  piVar6[1] = (int)piVar14;\n                    \n  FUN_0004d4e0(piVar6 + 1,local_34,local_34 + local_30,0,iVar12);\n  piVar6[8] = 0;\n  piVar6[9] = 0;\n  piVar6[7] = param_3;\n  piVar6[10] = -1;\n  *(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0x80;\n  piVar6[0xc] = 0;\n  piVar6[0xd] = 0;\n  if (param_3 != 0) {\n    *(int *)(param_3 + 0x3c) = *(int *)(param_3 + 0x3c) + 1;\n                    \n    uVar9 = FUN_0005cf30(param_3);\n    *(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0xdf | (byte)((uVar9 & 1) << 5);\n    pbVar10 = (byte *)FUN_0005cf10(param_3);\n    *(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0xbf | (byte)((*pbVar10 & 1) << 6);\n  }\n  piVar6[0xe] = 0;\n  iVar13 = unaff_EDI + 0x2aeb07;\n  piVar6[0xf] = 0;\n  piVar6[0x10] = 0;\n  piVar6[0x11] = 0;\n  piVar6[0x12] = 0;\n  *(undefined1 *)(piVar6 + 0x13) = 0;\n  piVar6[0x15] = 0;\n  piVar6[0x16] = 0;\n  piVar6[0x17] = 0;\n  piVar6[0x18] = 0;\n  piVar6[0x19] = 0;\n  *piVar6 = iVar13;\n  uVar9 = 0;\n  do {\n    *(undefined4 *)((int)piVar6 + uVar9 + 0x68) = 0;\n    uVar9 = uVar9 + 4;\n  } while (uVar9 < 0x1c);\n  piVar6[0x1b] = 1;\n  piVar6[0x1a] = (int)(piVar6 + 0x20);\n  piVar6[0x1c] = 0;\n  piVar6[0x1d] = 0;\n  piVar6[0x1e] = 0x3f800000;\n  piVar6[0x1f] = 0;\n  piVar6[0x20] = 0;\n  piVar6[0x21] = 0;\n  piVar6[0x22] = 0;\n  piVar6[0x23] = 0;\n  if (local_34 != local_2c) {\n    FUN_001807a0(local_34);\n  }\n  piVar6[0x24] = (int)piVar6;\n  *piVar6 = unaff_EDI + 0x2aec03;\n  piVar6[0x29] = 0;\n  iVar5 = *(int *)(param_2 + 0x2c);\n  piVar6[0x25] = *(int *)(param_2 + 0x28);\n  piVar6[0x26] = iVar5;\n  piVar6[0x27] = (uint)*(ushort *)(param_2 + 0x3c);\n  piVar6[0x28] = (uint)*(ushort *)(param_2 + 0x3e);\n  sVar3 = *(short *)(param_2 + 0x34);\n  if (sVar3 != 0x40) {\n    uVar11 = gettext(unaff_EDI + 0x1cc69f);\n                    \n    FUN_00091980(piVar6,uVar11,sVar3,0x40,iVar12,iVar13,piVar14);\n  }\n  sVar3 = *(short *)(param_2 + 0x3a);\n  if (sVar3 != 0x40) {\n    uVar11 = gettext(unaff_EDI + 0x1cc6b7);\n    FUN_00091980(piVar6,uVar11,sVar3,0x40);\n  }\n  FUN_0004e110(piVar6);\n  if ((param_4 != 0) && (*(int *)(param_4 + 8) < 1)) {\n    bVar1 = *(byte *)(param_2 + 8);\n    bVar2 = *(byte *)(param_2 + 7);\n    uVar4 = *(ushort *)(param_2 + 0x12);\n    *(undefined4 *)(param_4 + 8) = 0x40;\n    *(uint *)(param_4 + 0x14) = (uint)bVar1;\n    *(uint *)(param_4 + 4) = (uint)uVar4;\n    *(undefined4 *)(param_4 + 0xc) = 0;\n    *(uint *)(param_4 + 0x10) = (uint)bVar2;\n    *(undefined4 *)(param_4 + 0x1c) = 0x40;\n    *(undefined4 *)(param_4 + 0x20) = 0;\n    FUN_00032960();\n  }\n  return piVar6;\n}" (primitive_type "int") (pointer_declarator "* FUN_0004e2b0(undefined4 *param_1,int param_2,int param_3,int param_4)" (* "*") (function_declarator "FUN_0004e2b0(undefined4 *param_1,int param_2,int param_3,int param_4)" (identifier "FUN_0004e2b0") (parameter_list "(undefined4 *param_1,int param_2,int param_3,int param_4)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) () ")")))) (compound_statement "{\n  byte bVar1;\n  byte bVar2;\n  short sVar3;\n  ushort uVar4;\n  int iVar5;\n  int *piVar6;\n  char *pcVar7;\n  size_t sVar8;\n  uint uVar9;\n  byte *pbVar10;\n  undefined4 uVar11;\n  char *__s;\n  int unaff_EDI;\n  int iVar12;\n  int iVar13;\n  int *piVar14;\n  undefined1 *local_34;\n  int local_30;\n  undefined1 local_2c [28];\n  \n  FUN_0004fb7e();\n  piVar6 = (int *)FUN_0017ebf0(0xa8);\n  __s = (char *)*param_1;\n  pcVar7 = (char *)0xffffffff;\n  local_34 = local_2c;\n  if (__s != (char *)0x0) {\n    sVar8 = strlen(__s);\n    pcVar7 = __s + sVar8;\n  }\n                    \n  FUN_0004cf80(&local_34,__s,pcVar7,0);\n  iVar12 = unaff_EDI + 0x2ae773;\n  *piVar6 = iVar12;\n  piVar14 = piVar6 + 3;\n  piVar6[1] = (int)piVar14;\n                    \n  FUN_0004d4e0(piVar6 + 1,local_34,local_34 + local_30,0,iVar12);\n  piVar6[8] = 0;\n  piVar6[9] = 0;\n  piVar6[7] = param_3;\n  piVar6[10] = -1;\n  *(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0x80;\n  piVar6[0xc] = 0;\n  piVar6[0xd] = 0;\n  if (param_3 != 0) {\n    *(int *)(param_3 + 0x3c) = *(int *)(param_3 + 0x3c) + 1;\n                    \n    uVar9 = FUN_0005cf30(param_3);\n    *(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0xdf | (byte)((uVar9 & 1) << 5);\n    pbVar10 = (byte *)FUN_0005cf10(param_3);\n    *(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0xbf | (byte)((*pbVar10 & 1) << 6);\n  }\n  piVar6[0xe] = 0;\n  iVar13 = unaff_EDI + 0x2aeb07;\n  piVar6[0xf] = 0;\n  piVar6[0x10] = 0;\n  piVar6[0x11] = 0;\n  piVar6[0x12] = 0;\n  *(undefined1 *)(piVar6 + 0x13) = 0;\n  piVar6[0x15] = 0;\n  piVar6[0x16] = 0;\n  piVar6[0x17] = 0;\n  piVar6[0x18] = 0;\n  piVar6[0x19] = 0;\n  *piVar6 = iVar13;\n  uVar9 = 0;\n  do {\n    *(undefined4 *)((int)piVar6 + uVar9 + 0x68) = 0;\n    uVar9 = uVar9 + 4;\n  } while (uVar9 < 0x1c);\n  piVar6[0x1b] = 1;\n  piVar6[0x1a] = (int)(piVar6 + 0x20);\n  piVar6[0x1c] = 0;\n  piVar6[0x1d] = 0;\n  piVar6[0x1e] = 0x3f800000;\n  piVar6[0x1f] = 0;\n  piVar6[0x20] = 0;\n  piVar6[0x21] = 0;\n  piVar6[0x22] = 0;\n  piVar6[0x23] = 0;\n  if (local_34 != local_2c) {\n    FUN_001807a0(local_34);\n  }\n  piVar6[0x24] = (int)piVar6;\n  *piVar6 = unaff_EDI + 0x2aec03;\n  piVar6[0x29] = 0;\n  iVar5 = *(int *)(param_2 + 0x2c);\n  piVar6[0x25] = *(int *)(param_2 + 0x28);\n  piVar6[0x26] = iVar5;\n  piVar6[0x27] = (uint)*(ushort *)(param_2 + 0x3c);\n  piVar6[0x28] = (uint)*(ushort *)(param_2 + 0x3e);\n  sVar3 = *(short *)(param_2 + 0x34);\n  if (sVar3 != 0x40) {\n    uVar11 = gettext(unaff_EDI + 0x1cc69f);\n                    \n    FUN_00091980(piVar6,uVar11,sVar3,0x40,iVar12,iVar13,piVar14);\n  }\n  sVar3 = *(short *)(param_2 + 0x3a);\n  if (sVar3 != 0x40) {\n    uVar11 = gettext(unaff_EDI + 0x1cc6b7);\n    FUN_00091980(piVar6,uVar11,sVar3,0x40);\n  }\n  FUN_0004e110(piVar6);\n  if ((param_4 != 0) && (*(int *)(param_4 + 8) < 1)) {\n    bVar1 = *(byte *)(param_2 + 8);\n    bVar2 = *(byte *)(param_2 + 7);\n    uVar4 = *(ushort *)(param_2 + 0x12);\n    *(undefined4 *)(param_4 + 8) = 0x40;\n    *(uint *)(param_4 + 0x14) = (uint)bVar1;\n    *(uint *)(param_4 + 4) = (uint)uVar4;\n    *(undefined4 *)(param_4 + 0xc) = 0;\n    *(uint *)(param_4 + 0x10) = (uint)bVar2;\n    *(undefined4 *)(param_4 + 0x1c) = 0x40;\n    *(undefined4 *)(param_4 + 0x20) = 0;\n    FUN_00032960();\n  }\n  return piVar6;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "byte bVar2;" (type_identifier "byte") (identifier "bVar2") (; ";")) (declaration "short sVar3;" (sized_type_specifier "short" (short "short")) (identifier "sVar3") (; ";")) (declaration "ushort uVar4;" (type_identifier "ushort") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "char *pcVar7;" (primitive_type "char") (pointer_declarator "*pcVar7" (* "*") (identifier "pcVar7")) (; ";")) (declaration "size_t sVar8;" (primitive_type "size_t") (identifier "sVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "byte *pbVar10;" (type_identifier "byte") (pointer_declarator "*pbVar10" (* "*") (identifier "pbVar10")) (; ";")) (declaration "undefined4 uVar11;" (type_identifier "undefined4") (identifier "uVar11") (; ";")) (declaration "char *__s;" (primitive_type "char") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "int unaff_EDI;" (primitive_type "int") (identifier "unaff_EDI") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "int *piVar14;" (primitive_type "int") (pointer_declarator "*piVar14" (* "*") (identifier "piVar14")) (; ";")) (declaration "undefined1 *local_34;" (type_identifier "undefined1") (pointer_declarator "*local_34" (* "*") (identifier "local_34")) (; ";")) (declaration "int local_30;" (primitive_type "int") (identifier "local_30") (; ";")) (declaration "undefined1 local_2c [28];" (type_identifier "undefined1") (array_declarator "local_2c [28]" (identifier "local_2c") ([ "[") (number_literal "28") (] "]")) (; ";")) (expression_statement "FUN_0004fb7e();" (call_expression "FUN_0004fb7e()" (identifier "FUN_0004fb7e") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar6 = (int *)FUN_0017ebf0(0xa8);" (assignment_expression "piVar6 = (int *)FUN_0017ebf0(0xa8)" (identifier "piVar6") (= "=") (cast_expression "(int *)FUN_0017ebf0(0xa8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0017ebf0(0xa8)" (identifier "FUN_0017ebf0") (argument_list "(0xa8)" (( "(") (number_literal "0xa8") () ")"))))) (; ";")) (expression_statement "__s = (char *)*param_1;" (assignment_expression "__s = (char *)*param_1" (identifier "__s") (= "=") (cast_expression "(char *)*param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (expression_statement "pcVar7 = (char *)0xffffffff;" (assignment_expression "pcVar7 = (char *)0xffffffff" (identifier "pcVar7") (= "=") (cast_expression "(char *)0xffffffff" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "local_34 = local_2c;" (assignment_expression "local_34 = local_2c" (identifier "local_34") (= "=") (identifier "local_2c")) (; ";")) (if_statement "if (__s != (char *)0x0) {\n    sVar8 = strlen(__s);\n    pcVar7 = __s + sVar8;\n  }" (if "if") (parenthesized_expression "(__s != (char *)0x0)" (( "(") (binary_expression "__s != (char *)0x0" (identifier "__s") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    sVar8 = strlen(__s);\n    pcVar7 = __s + sVar8;\n  }" ({ "{") (expression_statement "sVar8 = strlen(__s);" (assignment_expression "sVar8 = strlen(__s)" (identifier "sVar8") (= "=") (call_expression "strlen(__s)" (identifier "strlen") (argument_list "(__s)" (( "(") (identifier "__s") () ")")))) (; ";")) (expression_statement "pcVar7 = __s + sVar8;" (assignment_expression "pcVar7 = __s + sVar8" (identifier "pcVar7") (= "=") (binary_expression "__s + sVar8" (identifier "__s") (+ "+") (identifier "sVar8"))) (; ";")) (} "}"))) (expression_statement "FUN_0004cf80(&local_34,__s,pcVar7,0);" (call_expression "FUN_0004cf80(&local_34,__s,pcVar7,0)" (identifier "FUN_0004cf80") (argument_list "(&local_34,__s,pcVar7,0)" (( "(") (pointer_expression "&local_34" (& "&") (identifier "local_34")) (, ",") (identifier "__s") (, ",") (identifier "pcVar7") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "iVar12 = unaff_EDI + 0x2ae773;" (assignment_expression "iVar12 = unaff_EDI + 0x2ae773" (identifier "iVar12") (= "=") (binary_expression "unaff_EDI + 0x2ae773" (identifier "unaff_EDI") (+ "+") (number_literal "0x2ae773"))) (; ";")) (expression_statement "*piVar6 = iVar12;" (assignment_expression "*piVar6 = iVar12" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (= "=") (identifier "iVar12")) (; ";")) (expression_statement "piVar14 = piVar6 + 3;" (assignment_expression "piVar14 = piVar6 + 3" (identifier "piVar14") (= "=") (binary_expression "piVar6 + 3" (identifier "piVar6") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "piVar6[1] = (int)piVar14;" (assignment_expression "piVar6[1] = (int)piVar14" (subscript_expression "piVar6[1]" (identifier "piVar6") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(int)piVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar14"))) (; ";")) (expression_statement "FUN_0004d4e0(piVar6 + 1,local_34,local_34 + local_30,0,iVar12);" (call_expression "FUN_0004d4e0(piVar6 + 1,local_34,local_34 + local_30,0,iVar12)" (identifier "FUN_0004d4e0") (argument_list "(piVar6 + 1,local_34,local_34 + local_30,0,iVar12)" (( "(") (binary_expression "piVar6 + 1" (identifier "piVar6") (+ "+") (number_literal "1")) (, ",") (identifier "local_34") (, ",") (binary_expression "local_34 + local_30" (identifier "local_34") (+ "+") (identifier "local_30")) (, ",") (number_literal "0") (, ",") (identifier "iVar12") () ")"))) (; ";")) (expression_statement "piVar6[8] = 0;" (assignment_expression "piVar6[8] = 0" (subscript_expression "piVar6[8]" (identifier "piVar6") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar6[9] = 0;" (assignment_expression "piVar6[9] = 0" (subscript_expression "piVar6[9]" (identifier "piVar6") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar6[7] = param_3;" (assignment_expression "piVar6[7] = param_3" (subscript_expression "piVar6[7]" (identifier "piVar6") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "param_3")) (; ";")) (expression_statement "piVar6[10] = -1;" (assignment_expression "piVar6[10] = -1" (subscript_expression "piVar6[10]" (identifier "piVar6") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "-1")) (; ";")) (expression_statement "*(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0x80;" (assignment_expression "*(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0x80" (pointer_expression "*(byte *)(piVar6 + 0xb)" (* "*") (cast_expression "(byte *)(piVar6 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar6 + 0xb)" (( "(") (binary_expression "piVar6 + 0xb" (identifier "piVar6") (+ "+") (number_literal "0xb")) () ")")))) (= "=") (binary_expression "*(byte *)(piVar6 + 0xb) & 0x80" (pointer_expression "*(byte *)(piVar6 + 0xb)" (* "*") (cast_expression "(byte *)(piVar6 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar6 + 0xb)" (( "(") (binary_expression "piVar6 + 0xb" (identifier "piVar6") (+ "+") (number_literal "0xb")) () ")")))) (& "&") (number_literal "0x80"))) (; ";")) (expression_statement "piVar6[0xc] = 0;" (assignment_expression "piVar6[0xc] = 0" (subscript_expression "piVar6[0xc]" (identifier "piVar6") ([ "[") (number_literal "0xc") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar6[0xd] = 0;" (assignment_expression "piVar6[0xd] = 0" (subscript_expression "piVar6[0xd]" (identifier "piVar6") ([ "[") (number_literal "0xd") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_3 != 0) {\n    *(int *)(param_3 + 0x3c) = *(int *)(param_3 + 0x3c) + 1;\n                    \n    uVar9 = FUN_0005cf30(param_3);\n    *(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0xdf | (byte)((uVar9 & 1) << 5);\n    pbVar10 = (byte *)FUN_0005cf10(param_3);\n    *(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0xbf | (byte)((*pbVar10 & 1) << 6);\n  }" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    *(int *)(param_3 + 0x3c) = *(int *)(param_3 + 0x3c) + 1;\n                    \n    uVar9 = FUN_0005cf30(param_3);\n    *(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0xdf | (byte)((uVar9 & 1) << 5);\n    pbVar10 = (byte *)FUN_0005cf10(param_3);\n    *(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0xbf | (byte)((*pbVar10 & 1) << 6);\n  }" ({ "{") (expression_statement "*(int *)(param_3 + 0x3c) = *(int *)(param_3 + 0x3c) + 1;" (assignment_expression "*(int *)(param_3 + 0x3c) = *(int *)(param_3 + 0x3c) + 1" (pointer_expression "*(int *)(param_3 + 0x3c)" (* "*") (cast_expression "(int *)(param_3 + 0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x3c)" (( "(") (binary_expression "param_3 + 0x3c" (identifier "param_3") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (binary_expression "*(int *)(param_3 + 0x3c) + 1" (pointer_expression "*(int *)(param_3 + 0x3c)" (* "*") (cast_expression "(int *)(param_3 + 0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x3c)" (( "(") (binary_expression "param_3 + 0x3c" (identifier "param_3") (+ "+") (number_literal "0x3c")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar9 = FUN_0005cf30(param_3);" (assignment_expression "uVar9 = FUN_0005cf30(param_3)" (identifier "uVar9") (= "=") (call_expression "FUN_0005cf30(param_3)" (identifier "FUN_0005cf30") (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";")) (expression_statement "*(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0xdf | (byte)((uVar9 & 1) << 5);" (assignment_expression "*(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0xdf | (byte)((uVar9 & 1) << 5)" (pointer_expression "*(byte *)(piVar6 + 0xb)" (* "*") (cast_expression "(byte *)(piVar6 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar6 + 0xb)" (( "(") (binary_expression "piVar6 + 0xb" (identifier "piVar6") (+ "+") (number_literal "0xb")) () ")")))) (= "=") (binary_expression "*(byte *)(piVar6 + 0xb) & 0xdf | (byte)((uVar9 & 1) << 5)" (binary_expression "*(byte *)(piVar6 + 0xb) & 0xdf" (pointer_expression "*(byte *)(piVar6 + 0xb)" (* "*") (cast_expression "(byte *)(piVar6 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar6 + 0xb)" (( "(") (binary_expression "piVar6 + 0xb" (identifier "piVar6") (+ "+") (number_literal "0xb")) () ")")))) (& "&") (number_literal "0xdf")) (| "|") (call_expression "(byte)((uVar9 & 1) << 5)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uVar9 & 1) << 5)" (( "(") (binary_expression "(uVar9 & 1) << 5" (parenthesized_expression "(uVar9 & 1)" (( "(") (binary_expression "uVar9 & 1" (identifier "uVar9") (& "&") (number_literal "1")) () ")")) (<< "<<") (number_literal "5")) () ")"))))) (; ";")) (expression_statement "pbVar10 = (byte *)FUN_0005cf10(param_3);" (assignment_expression "pbVar10 = (byte *)FUN_0005cf10(param_3)" (identifier "pbVar10") (= "=") (cast_expression "(byte *)FUN_0005cf10(param_3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0005cf10(param_3)" (identifier "FUN_0005cf10") (argument_list "(param_3)" (( "(") (identifier "param_3") () ")"))))) (; ";")) (expression_statement "*(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0xbf | (byte)((*pbVar10 & 1) << 6);" (assignment_expression "*(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0xbf | (byte)((*pbVar10 & 1) << 6)" (pointer_expression "*(byte *)(piVar6 + 0xb)" (* "*") (cast_expression "(byte *)(piVar6 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar6 + 0xb)" (( "(") (binary_expression "piVar6 + 0xb" (identifier "piVar6") (+ "+") (number_literal "0xb")) () ")")))) (= "=") (binary_expression "*(byte *)(piVar6 + 0xb) & 0xbf | (byte)((*pbVar10 & 1) << 6)" (binary_expression "*(byte *)(piVar6 + 0xb) & 0xbf" (pointer_expression "*(byte *)(piVar6 + 0xb)" (* "*") (cast_expression "(byte *)(piVar6 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar6 + 0xb)" (( "(") (binary_expression "piVar6 + 0xb" (identifier "piVar6") (+ "+") (number_literal "0xb")) () ")")))) (& "&") (number_literal "0xbf")) (| "|") (call_expression "(byte)((*pbVar10 & 1) << 6)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((*pbVar10 & 1) << 6)" (( "(") (binary_expression "(*pbVar10 & 1) << 6" (parenthesized_expression "(*pbVar10 & 1)" (( "(") (binary_expression "*pbVar10 & 1" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (& "&") (number_literal "1")) () ")")) (<< "<<") (number_literal "6")) () ")"))))) (; ";")) (} "}"))) (expression_statement "piVar6[0xe] = 0;" (assignment_expression "piVar6[0xe] = 0" (subscript_expression "piVar6[0xe]" (identifier "piVar6") ([ "[") (number_literal "0xe") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar13 = unaff_EDI + 0x2aeb07;" (assignment_expression "iVar13 = unaff_EDI + 0x2aeb07" (identifier "iVar13") (= "=") (binary_expression "unaff_EDI + 0x2aeb07" (identifier "unaff_EDI") (+ "+") (number_literal "0x2aeb07"))) (; ";")) (expression_statement "piVar6[0xf] = 0;" (assignment_expression "piVar6[0xf] = 0" (subscript_expression "piVar6[0xf]" (identifier "piVar6") ([ "[") (number_literal "0xf") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar6[0x10] = 0;" (assignment_expression "piVar6[0x10] = 0" (subscript_expression "piVar6[0x10]" (identifier "piVar6") ([ "[") (number_literal "0x10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar6[0x11] = 0;" (assignment_expression "piVar6[0x11] = 0" (subscript_expression "piVar6[0x11]" (identifier "piVar6") ([ "[") (number_literal "0x11") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar6[0x12] = 0;" (assignment_expression "piVar6[0x12] = 0" (subscript_expression "piVar6[0x12]" (identifier "piVar6") ([ "[") (number_literal "0x12") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(piVar6 + 0x13) = 0;" (assignment_expression "*(undefined1 *)(piVar6 + 0x13) = 0" (pointer_expression "*(undefined1 *)(piVar6 + 0x13)" (* "*") (cast_expression "(undefined1 *)(piVar6 + 0x13)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar6 + 0x13)" (( "(") (binary_expression "piVar6 + 0x13" (identifier "piVar6") (+ "+") (number_literal "0x13")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar6[0x15] = 0;" (assignment_expression "piVar6[0x15] = 0" (subscript_expression "piVar6[0x15]" (identifier "piVar6") ([ "[") (number_literal "0x15") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar6[0x16] = 0;" (assignment_expression "piVar6[0x16] = 0" (subscript_expression "piVar6[0x16]" (identifier "piVar6") ([ "[") (number_literal "0x16") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar6[0x17] = 0;" (assignment_expression "piVar6[0x17] = 0" (subscript_expression "piVar6[0x17]" (identifier "piVar6") ([ "[") (number_literal "0x17") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar6[0x18] = 0;" (assignment_expression "piVar6[0x18] = 0" (subscript_expression "piVar6[0x18]" (identifier "piVar6") ([ "[") (number_literal "0x18") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar6[0x19] = 0;" (assignment_expression "piVar6[0x19] = 0" (subscript_expression "piVar6[0x19]" (identifier "piVar6") ([ "[") (number_literal "0x19") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*piVar6 = iVar13;" (assignment_expression "*piVar6 = iVar13" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (= "=") (identifier "iVar13")) (; ";")) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n    *(undefined4 *)((int)piVar6 + uVar9 + 0x68) = 0;\n    uVar9 = uVar9 + 4;\n  } while (uVar9 < 0x1c);" (do "do") (compound_statement "{\n    *(undefined4 *)((int)piVar6 + uVar9 + 0x68) = 0;\n    uVar9 = uVar9 + 4;\n  }" ({ "{") (expression_statement "*(undefined4 *)((int)piVar6 + uVar9 + 0x68) = 0;" (assignment_expression "*(undefined4 *)((int)piVar6 + uVar9 + 0x68) = 0" (pointer_expression "*(undefined4 *)((int)piVar6 + uVar9 + 0x68)" (* "*") (cast_expression "(undefined4 *)((int)piVar6 + uVar9 + 0x68)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar6 + uVar9 + 0x68)" (( "(") (binary_expression "(int)piVar6 + uVar9 + 0x68" (binary_expression "(int)piVar6 + uVar9" (cast_expression "(int)piVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar6")) (+ "+") (identifier "uVar9")) (+ "+") (number_literal "0x68")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar9 = uVar9 + 4;" (assignment_expression "uVar9 = uVar9 + 4" (identifier "uVar9") (= "=") (binary_expression "uVar9 + 4" (identifier "uVar9") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar9 < 0x1c)" (( "(") (binary_expression "uVar9 < 0x1c" (identifier "uVar9") (< "<") (number_literal "0x1c")) () ")")) (; ";")) (expression_statement "piVar6[0x1b] = 1;" (assignment_expression "piVar6[0x1b] = 1" (subscript_expression "piVar6[0x1b]" (identifier "piVar6") ([ "[") (number_literal "0x1b") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "piVar6[0x1a] = (int)(piVar6 + 0x20);" (assignment_expression "piVar6[0x1a] = (int)(piVar6 + 0x20)" (subscript_expression "piVar6[0x1a]" (identifier "piVar6") ([ "[") (number_literal "0x1a") (] "]")) (= "=") (cast_expression "(int)(piVar6 + 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(piVar6 + 0x20)" (( "(") (binary_expression "piVar6 + 0x20" (identifier "piVar6") (+ "+") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "piVar6[0x1c] = 0;" (assignment_expression "piVar6[0x1c] = 0" (subscript_expression "piVar6[0x1c]" (identifier "piVar6") ([ "[") (number_literal "0x1c") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar6[0x1d] = 0;" (assignment_expression "piVar6[0x1d] = 0" (subscript_expression "piVar6[0x1d]" (identifier "piVar6") ([ "[") (number_literal "0x1d") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar6[0x1e] = 0x3f800000;" (assignment_expression "piVar6[0x1e] = 0x3f800000" (subscript_expression "piVar6[0x1e]" (identifier "piVar6") ([ "[") (number_literal "0x1e") (] "]")) (= "=") (number_literal "0x3f800000")) (; ";")) (expression_statement "piVar6[0x1f] = 0;" (assignment_expression "piVar6[0x1f] = 0" (subscript_expression "piVar6[0x1f]" (identifier "piVar6") ([ "[") (number_literal "0x1f") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar6[0x20] = 0;" (assignment_expression "piVar6[0x20] = 0" (subscript_expression "piVar6[0x20]" (identifier "piVar6") ([ "[") (number_literal "0x20") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar6[0x21] = 0;" (assignment_expression "piVar6[0x21] = 0" (subscript_expression "piVar6[0x21]" (identifier "piVar6") ([ "[") (number_literal "0x21") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar6[0x22] = 0;" (assignment_expression "piVar6[0x22] = 0" (subscript_expression "piVar6[0x22]" (identifier "piVar6") ([ "[") (number_literal "0x22") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar6[0x23] = 0;" (assignment_expression "piVar6[0x23] = 0" (subscript_expression "piVar6[0x23]" (identifier "piVar6") ([ "[") (number_literal "0x23") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (local_34 != local_2c) {\n    FUN_001807a0(local_34);\n  }" (if "if") (parenthesized_expression "(local_34 != local_2c)" (( "(") (binary_expression "local_34 != local_2c" (identifier "local_34") (!= "!=") (identifier "local_2c")) () ")")) (compound_statement "{\n    FUN_001807a0(local_34);\n  }" ({ "{") (expression_statement "FUN_001807a0(local_34);" (call_expression "FUN_001807a0(local_34)" (identifier "FUN_001807a0") (argument_list "(local_34)" (( "(") (identifier "local_34") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar6[0x24] = (int)piVar6;" (assignment_expression "piVar6[0x24] = (int)piVar6" (subscript_expression "piVar6[0x24]" (identifier "piVar6") ([ "[") (number_literal "0x24") (] "]")) (= "=") (cast_expression "(int)piVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar6"))) (; ";")) (expression_statement "*piVar6 = unaff_EDI + 0x2aec03;" (assignment_expression "*piVar6 = unaff_EDI + 0x2aec03" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (= "=") (binary_expression "unaff_EDI + 0x2aec03" (identifier "unaff_EDI") (+ "+") (number_literal "0x2aec03"))) (; ";")) (expression_statement "piVar6[0x29] = 0;" (assignment_expression "piVar6[0x29] = 0" (subscript_expression "piVar6[0x29]" (identifier "piVar6") ([ "[") (number_literal "0x29") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar5 = *(int *)(param_2 + 0x2c);" (assignment_expression "iVar5 = *(int *)(param_2 + 0x2c)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(param_2 + 0x2c)" (* "*") (cast_expression "(int *)(param_2 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x2c)" (( "(") (binary_expression "param_2 + 0x2c" (identifier "param_2") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (expression_statement "piVar6[0x25] = *(int *)(param_2 + 0x28);" (assignment_expression "piVar6[0x25] = *(int *)(param_2 + 0x28)" (subscript_expression "piVar6[0x25]" (identifier "piVar6") ([ "[") (number_literal "0x25") (] "]")) (= "=") (pointer_expression "*(int *)(param_2 + 0x28)" (* "*") (cast_expression "(int *)(param_2 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x28)" (( "(") (binary_expression "param_2 + 0x28" (identifier "param_2") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "piVar6[0x26] = iVar5;" (assignment_expression "piVar6[0x26] = iVar5" (subscript_expression "piVar6[0x26]" (identifier "piVar6") ([ "[") (number_literal "0x26") (] "]")) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "piVar6[0x27] = (uint)*(ushort *)(param_2 + 0x3c);" (assignment_expression "piVar6[0x27] = (uint)*(ushort *)(param_2 + 0x3c)" (subscript_expression "piVar6[0x27]" (identifier "piVar6") ([ "[") (number_literal "0x27") (] "]")) (= "=") (binary_expression "(uint)*(ushort *)(param_2 + 0x3c)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(ushort *)(param_2 + 0x3c)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x3c)" (( "(") (binary_expression "param_2 + 0x3c" (identifier "param_2") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (expression_statement "piVar6[0x28] = (uint)*(ushort *)(param_2 + 0x3e);" (assignment_expression "piVar6[0x28] = (uint)*(ushort *)(param_2 + 0x3e)" (subscript_expression "piVar6[0x28]" (identifier "piVar6") ([ "[") (number_literal "0x28") (] "]")) (= "=") (binary_expression "(uint)*(ushort *)(param_2 + 0x3e)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(ushort *)(param_2 + 0x3e)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x3e)" (( "(") (binary_expression "param_2 + 0x3e" (identifier "param_2") (+ "+") (number_literal "0x3e")) () ")"))))) (; ";")) (expression_statement "sVar3 = *(short *)(param_2 + 0x34);" (assignment_expression "sVar3 = *(short *)(param_2 + 0x34)" (identifier "sVar3") (= "=") (pointer_expression "*(short *)(param_2 + 0x34)" (* "*") (cast_expression "(short *)(param_2 + 0x34)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x34)" (( "(") (binary_expression "param_2 + 0x34" (identifier "param_2") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (if_statement "if (sVar3 != 0x40) {\n    uVar11 = gettext(unaff_EDI + 0x1cc69f);\n                    \n    FUN_00091980(piVar6,uVar11,sVar3,0x40,iVar12,iVar13,piVar14);\n  }" (if "if") (parenthesized_expression "(sVar3 != 0x40)" (( "(") (binary_expression "sVar3 != 0x40" (identifier "sVar3") (!= "!=") (number_literal "0x40")) () ")")) (compound_statement "{\n    uVar11 = gettext(unaff_EDI + 0x1cc69f);\n                    \n    FUN_00091980(piVar6,uVar11,sVar3,0x40,iVar12,iVar13,piVar14);\n  }" ({ "{") (expression_statement "uVar11 = gettext(unaff_EDI + 0x1cc69f);" (assignment_expression "uVar11 = gettext(unaff_EDI + 0x1cc69f)" (identifier "uVar11") (= "=") (call_expression "gettext(unaff_EDI + 0x1cc69f)" (identifier "gettext") (argument_list "(unaff_EDI + 0x1cc69f)" (( "(") (binary_expression "unaff_EDI + 0x1cc69f" (identifier "unaff_EDI") (+ "+") (number_literal "0x1cc69f")) () ")")))) (; ";")) (expression_statement "FUN_00091980(piVar6,uVar11,sVar3,0x40,iVar12,iVar13,piVar14);" (call_expression "FUN_00091980(piVar6,uVar11,sVar3,0x40,iVar12,iVar13,piVar14)" (identifier "FUN_00091980") (argument_list "(piVar6,uVar11,sVar3,0x40,iVar12,iVar13,piVar14)" (( "(") (identifier "piVar6") (, ",") (identifier "uVar11") (, ",") (identifier "sVar3") (, ",") (number_literal "0x40") (, ",") (identifier "iVar12") (, ",") (identifier "iVar13") (, ",") (identifier "piVar14") () ")"))) (; ";")) (} "}"))) (expression_statement "sVar3 = *(short *)(param_2 + 0x3a);" (assignment_expression "sVar3 = *(short *)(param_2 + 0x3a)" (identifier "sVar3") (= "=") (pointer_expression "*(short *)(param_2 + 0x3a)" (* "*") (cast_expression "(short *)(param_2 + 0x3a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x3a)" (( "(") (binary_expression "param_2 + 0x3a" (identifier "param_2") (+ "+") (number_literal "0x3a")) () ")"))))) (; ";")) (if_statement "if (sVar3 != 0x40) {\n    uVar11 = gettext(unaff_EDI + 0x1cc6b7);\n    FUN_00091980(piVar6,uVar11,sVar3,0x40);\n  }" (if "if") (parenthesized_expression "(sVar3 != 0x40)" (( "(") (binary_expression "sVar3 != 0x40" (identifier "sVar3") (!= "!=") (number_literal "0x40")) () ")")) (compound_statement "{\n    uVar11 = gettext(unaff_EDI + 0x1cc6b7);\n    FUN_00091980(piVar6,uVar11,sVar3,0x40);\n  }" ({ "{") (expression_statement "uVar11 = gettext(unaff_EDI + 0x1cc6b7);" (assignment_expression "uVar11 = gettext(unaff_EDI + 0x1cc6b7)" (identifier "uVar11") (= "=") (call_expression "gettext(unaff_EDI + 0x1cc6b7)" (identifier "gettext") (argument_list "(unaff_EDI + 0x1cc6b7)" (( "(") (binary_expression "unaff_EDI + 0x1cc6b7" (identifier "unaff_EDI") (+ "+") (number_literal "0x1cc6b7")) () ")")))) (; ";")) (expression_statement "FUN_00091980(piVar6,uVar11,sVar3,0x40);" (call_expression "FUN_00091980(piVar6,uVar11,sVar3,0x40)" (identifier "FUN_00091980") (argument_list "(piVar6,uVar11,sVar3,0x40)" (( "(") (identifier "piVar6") (, ",") (identifier "uVar11") (, ",") (identifier "sVar3") (, ",") (number_literal "0x40") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_0004e110(piVar6);" (call_expression "FUN_0004e110(piVar6)" (identifier "FUN_0004e110") (argument_list "(piVar6)" (( "(") (identifier "piVar6") () ")"))) (; ";")) (if_statement "if ((param_4 != 0) && (*(int *)(param_4 + 8) < 1)) {\n    bVar1 = *(byte *)(param_2 + 8);\n    bVar2 = *(byte *)(param_2 + 7);\n    uVar4 = *(ushort *)(param_2 + 0x12);\n    *(undefined4 *)(param_4 + 8) = 0x40;\n    *(uint *)(param_4 + 0x14) = (uint)bVar1;\n    *(uint *)(param_4 + 4) = (uint)uVar4;\n    *(undefined4 *)(param_4 + 0xc) = 0;\n    *(uint *)(param_4 + 0x10) = (uint)bVar2;\n    *(undefined4 *)(param_4 + 0x1c) = 0x40;\n    *(undefined4 *)(param_4 + 0x20) = 0;\n    FUN_00032960();\n  }" (if "if") (parenthesized_expression "((param_4 != 0) && (*(int *)(param_4 + 8) < 1))" (( "(") (binary_expression "(param_4 != 0) && (*(int *)(param_4 + 8) < 1)" (parenthesized_expression "(param_4 != 0)" (( "(") (binary_expression "param_4 != 0" (identifier "param_4") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(param_4 + 8) < 1)" (( "(") (binary_expression "*(int *)(param_4 + 8) < 1" (pointer_expression "*(int *)(param_4 + 8)" (* "*") (cast_expression "(int *)(param_4 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 8)" (( "(") (binary_expression "param_4 + 8" (identifier "param_4") (+ "+") (number_literal "8")) () ")")))) (< "<") (number_literal "1")) () ")"))) () ")")) (compound_statement "{\n    bVar1 = *(byte *)(param_2 + 8);\n    bVar2 = *(byte *)(param_2 + 7);\n    uVar4 = *(ushort *)(param_2 + 0x12);\n    *(undefined4 *)(param_4 + 8) = 0x40;\n    *(uint *)(param_4 + 0x14) = (uint)bVar1;\n    *(uint *)(param_4 + 4) = (uint)uVar4;\n    *(undefined4 *)(param_4 + 0xc) = 0;\n    *(uint *)(param_4 + 0x10) = (uint)bVar2;\n    *(undefined4 *)(param_4 + 0x1c) = 0x40;\n    *(undefined4 *)(param_4 + 0x20) = 0;\n    FUN_00032960();\n  }" ({ "{") (expression_statement "bVar1 = *(byte *)(param_2 + 8);" (assignment_expression "bVar1 = *(byte *)(param_2 + 8)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(param_2 + 8)" (* "*") (cast_expression "(byte *)(param_2 + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "bVar2 = *(byte *)(param_2 + 7);" (assignment_expression "bVar2 = *(byte *)(param_2 + 7)" (identifier "bVar2") (= "=") (pointer_expression "*(byte *)(param_2 + 7)" (* "*") (cast_expression "(byte *)(param_2 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 7)" (( "(") (binary_expression "param_2 + 7" (identifier "param_2") (+ "+") (number_literal "7")) () ")"))))) (; ";")) (expression_statement "uVar4 = *(ushort *)(param_2 + 0x12);" (assignment_expression "uVar4 = *(ushort *)(param_2 + 0x12)" (identifier "uVar4") (= "=") (pointer_expression "*(ushort *)(param_2 + 0x12)" (* "*") (cast_expression "(ushort *)(param_2 + 0x12)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x12)" (( "(") (binary_expression "param_2 + 0x12" (identifier "param_2") (+ "+") (number_literal "0x12")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(param_4 + 8) = 0x40;" (assignment_expression "*(undefined4 *)(param_4 + 8) = 0x40" (pointer_expression "*(undefined4 *)(param_4 + 8)" (* "*") (cast_expression "(undefined4 *)(param_4 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 8)" (( "(") (binary_expression "param_4 + 8" (identifier "param_4") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0x40")) (; ";")) (expression_statement "*(uint *)(param_4 + 0x14) = (uint)bVar1;" (assignment_expression "*(uint *)(param_4 + 0x14) = (uint)bVar1" (pointer_expression "*(uint *)(param_4 + 0x14)" (* "*") (cast_expression "(uint *)(param_4 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x14)" (( "(") (binary_expression "param_4 + 0x14" (identifier "param_4") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1"))) (; ";")) (expression_statement "*(uint *)(param_4 + 4) = (uint)uVar4;" (assignment_expression "*(uint *)(param_4 + 4) = (uint)uVar4" (pointer_expression "*(uint *)(param_4 + 4)" (* "*") (cast_expression "(uint *)(param_4 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")")))) (= "=") (cast_expression "(uint)uVar4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar4"))) (; ";")) (expression_statement "*(undefined4 *)(param_4 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(param_4 + 0xc) = 0" (pointer_expression "*(undefined4 *)(param_4 + 0xc)" (* "*") (cast_expression "(undefined4 *)(param_4 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0xc)" (( "(") (binary_expression "param_4 + 0xc" (identifier "param_4") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(uint *)(param_4 + 0x10) = (uint)bVar2;" (assignment_expression "*(uint *)(param_4 + 0x10) = (uint)bVar2" (pointer_expression "*(uint *)(param_4 + 0x10)" (* "*") (cast_expression "(uint *)(param_4 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x10)" (( "(") (binary_expression "param_4 + 0x10" (identifier "param_4") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (cast_expression "(uint)bVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar2"))) (; ";")) (expression_statement "*(undefined4 *)(param_4 + 0x1c) = 0x40;" (assignment_expression "*(undefined4 *)(param_4 + 0x1c) = 0x40" (pointer_expression "*(undefined4 *)(param_4 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(param_4 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x1c)" (( "(") (binary_expression "param_4 + 0x1c" (identifier "param_4") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (number_literal "0x40")) (; ";")) (expression_statement "*(undefined4 *)(param_4 + 0x20) = 0;" (assignment_expression "*(undefined4 *)(param_4 + 0x20) = 0" (pointer_expression "*(undefined4 *)(param_4 + 0x20)" (* "*") (cast_expression "(undefined4 *)(param_4 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x20)" (( "(") (binary_expression "param_4 + 0x20" (identifier "param_4") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00032960();" (call_expression "FUN_00032960()" (identifier "FUN_00032960") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return piVar6;" (return "return") (identifier "piVar6") (; ";")) (} "}")))

/* WARNING: Type propagation algorithm not settling */
/* DWARF original name: sized_make_object<64, false>
   DWARF original prototype: Relobj * sized_make_object<64,_false>(Dwo_file * this, uchar * p,
   Input_file * input_file, Dwp_output_file * output_file) */

type_20 * __thiscall
var_23::Dwo_file::sized_make_object<64,var_2>
          (Dwo_file *this,uchar *var_31,type_14 *var_19,type_7 *var_35)

{
  type_1 *puVar1;
  int *piVar2;
  type_2 bVar3;
  type_2 bVar4;
  type_3 uVar5;
  type_4 uVar6;
  bool var_21;
  var_1<64,var_2> *this_00;
  char *pcVar8;
  size_t var_12;
  type_5 *pPVar10;
  type_6 var_27;
  char *var_29;
  char *var_10;
  int var_17;
  type_7 *this_01;
  type_8 **pp_Var14;
  anon_union_16_2_edb7204a_for_basic_string<var_4,var_24::char_traits<var_4>,var_24::var_3<var_4>var_5>var_6
  *var_7;
  type_1 in_stack_ffffffc4;
  int in_stack_ffffffc8;
  type_9 abiversion;
  type_10 var_18;
  char local_2c [28];
  
  var_8();
  this_00 = (var_1<64,var_2> *)var_9(0xa8);
  var_10 = this->name_;
  var_29 = local_2c;
  pcVar8 = (char *)0xffffffff;
  abiversion._M_p = var_29;
  if (var_10 != (char *)0x0) {
    var_12 = var_11(var_10);
    pcVar8 = var_10 + var_12;
  }
                    /* try { // try from 0004e308 to 0004e30c has its CatchHandler @ 0004e672 */
  std::__cxx11::basic_string<var_4,var_24::char_traits<var_4>,var_24::var_3<var_4>var_5>::
  var_13<var_14*>
            ((basic_string<var_4,var_24::char_traits<var_4>,var_24::var_3<var_4>var_5> *)&var_15,
             var_10,pcVar8,0);
  this_01 = (type_7 *)(var_16 + var_17 + 0x12);
  (this_00->super_Sized_relobj<64,var_2>).super_Relobj.super_Object._vptr_Object =
       (type_8 **)this_01;
  var_7 = &(this_00->super_Sized_relobj<64,var_2>).super_Relobj.super_Object.name_.field_2;
  (this_00->super_Sized_relobj<64,var_2>).super_Relobj.super_Object.name_._M_dataplus._M_p =
       (type_11)var_7;
                    /* try { // try from 0004e334 to 0004e338 has its CatchHandler @ 0004e66d */
  std::__cxx11::basic_string<var_4,var_24::char_traits<var_4>,var_24::var_3<var_4>var_5>::
  var_13<var_4*>(&(this_00->super_Sized_relobj<64,var_2>).super_Relobj.super_Object.name_,
                      abiversion._M_p,abiversion._M_p + var_18,0);
  *(type_4 *)&(this_00->super_Sized_relobj<64,var_2>).super_Relobj.super_Object.offset_ = 0;
  *(type_4 *)
   ((int)&(this_00->super_Sized_relobj<64,var_2>).super_Relobj.super_Object.offset_ + 4) = 0;
  (this_00->super_Sized_relobj<64,var_2>).super_Relobj.super_Object.input_file_ = var_19;
  (this_00->super_Sized_relobj<64,var_2>).super_Relobj.super_Object.shnum_ = 0xffffffff;
  puVar1 = &(this_00->super_Sized_relobj<64,var_2>).super_Relobj.super_Object.field_0x2c;
  *puVar1 = *puVar1 & 0x80;
  (this_00->super_Sized_relobj<64,var_2>).super_Relobj.super_Object.xindex_ = (type_12 *)0x0;
  (this_00->super_Sized_relobj<64,var_2>).super_Relobj.super_Object.compressed_sections_ =
       (type_13 *)0x0;
  if (var_19 != (type_14 *)0x0) {
    piVar2 = &(var_19->file_).object_count_;
    *piVar2 = *piVar2 + 1;
                    /* try { // try from 0004e377 to 0004e398 has its CatchHandler @ 0004e5a4 */
    var_21 = type_14::var_20(var_19);
    (this_00->super_Sized_relobj<64,var_2>).super_Relobj.super_Object.field_0x2c =
         (this_00->super_Sized_relobj<64,var_2>).super_Relobj.super_Object.field_0x2c & 0xdf |
         var_21 << 5;
    pPVar10 = type_14::var_22(var_19);
    (this_00->super_Sized_relobj<64,var_2>).super_Relobj.super_Object.field_0x2c =
         (this_00->super_Sized_relobj<64,var_2>).super_Relobj.super_Object.field_0x2c & 0xbf |
         (type_2)((pPVar10->as_needed_ & 1) << 6);
  }
  (this_00->super_Sized_relobj<64,var_2>).super_Relobj.output_sections_.
  super__Vector_base<var_23::Output_section*,var_24::var_3<var_23::Output_section*>var_5>._M_impl._M_start
       = (type_11)0x0;
  pp_Var14 = (type_8 **)(var_25 + var_17 + 0x26);
  (this_00->super_Sized_relobj<64,var_2>).super_Relobj.output_sections_.
  super__Vector_base<var_23::Output_section*,var_24::var_3<var_23::Output_section*>var_5>._M_impl.
  _M_finish = (type_11)0x0;
  (this_00->super_Sized_relobj<64,var_2>).super_Relobj.output_sections_.
  super__Vector_base<var_23::Output_section*,var_24::var_3<var_23::Output_section*>var_5>._M_impl.
  _M_end_of_storage = (type_11)0x0;
  (this_00->super_Sized_relobj<64,var_2>).super_Relobj.map_to_relocatable_relocs_ =
       (vector<var_23::var_26*,var_24::var_3<var_23::var_26*>var_5> *)0x0;
  (this_00->super_Sized_relobj<64,var_2>).super_Relobj.object_merge_map_ = (type_15 *)0x0;
  (this_00->super_Sized_relobj<64,var_2>).super_Relobj.relocs_must_follow_section_writes_ = false;
  (this_00->super_Sized_relobj<64,var_2>).super_Relobj.sd_ = (type_16 *)0x0;
  (this_00->super_Sized_relobj<64,var_2>).super_Relobj.reloc_counts_ = (type_6 *)0x0;
  (this_00->super_Sized_relobj<64,var_2>).super_Relobj.reloc_bases_ = (type_6 *)0x0;
  (this_00->super_Sized_relobj<64,var_2>).super_Relobj.first_dyn_reloc_ = 0;
  (this_00->super_Sized_relobj<64,var_2>).super_Relobj.dyn_reloc_count_ = 0;
  (this_00->super_Sized_relobj<64,var_2>).super_Relobj.super_Object._vptr_Object = pp_Var14;
  var_27 = 0;
  do {
    *(type_4 *)
     ((int)&(this_00->super_Sized_relobj<64,var_2>).local_got_offsets_._M_h._M_buckets + var_27) =
         0;
    var_27 = var_27 + 4;
  } while (var_27 < 0x1c);
  (this_00->super_Sized_relobj<64,var_2>).local_got_offsets_._M_h._M_bucket_count = 1;
  (this_00->super_Sized_relobj<64,var_2>).local_got_offsets_._M_h._M_buckets =
       &(this_00->super_Sized_relobj<64,var_2>).local_got_offsets_._M_h._M_single_bucket;
  (this_00->super_Sized_relobj<64,var_2>).local_got_offsets_._M_h._M_before_begin._M_nxt =
       (type_17 *)0x0;
  (this_00->super_Sized_relobj<64,var_2>).local_got_offsets_._M_h._M_element_count = 0;
  (this_00->super_Sized_relobj<64,var_2>).local_got_offsets_._M_h._M_rehash_policy.
  _M_max_load_factor = 1.0;
  (this_00->super_Sized_relobj<64,var_2>).local_got_offsets_._M_h._M_rehash_policy._M_next_resize =
       0;
  (this_00->super_Sized_relobj<64,var_2>).local_got_offsets_._M_h._M_single_bucket =
       (type_18)0x0;
  (this_00->super_Sized_relobj<64,var_2>).section_offsets_.
  super__Vector_base<var_28,var_24::var_3<var_28>var_5>._M_impl.
  _M_start = (type_11)0x0;
  (this_00->super_Sized_relobj<64,var_2>).section_offsets_.
  super__Vector_base<var_28,var_24::var_3<var_28>var_5>._M_impl.
  _M_finish = (type_11)0x0;
  (this_00->super_Sized_relobj<64,var_2>).section_offsets_.
  super__Vector_base<var_28,var_24::var_3<var_28>var_5>._M_impl.
  _M_end_of_storage = (type_11)0x0;
  if (abiversion._M_p != var_29) {
    var_30(abiversion._M_p);
  }
  (this_00->elf_file_).file_ = (type_19 *)this_00;
  (this_00->super_Sized_relobj<64,var_2>).super_Relobj.super_Object._vptr_Object =
       (type_8 **)(var_17 + 0x2aec03);
  (this_00->elf_file_).large_shndx_offset_ = 0;
  uVar6 = *(type_4 *)(var_31 + 0x2c);
  *(type_4 *)&(this_00->elf_file_).shoff_ = *(type_4 *)(var_31 + 0x28);
  *(type_4 *)((int)&(this_00->elf_file_).shoff_ + 4) = uVar6;
  (this_00->elf_file_).shnum_ = (type_6)*(type_3 *)(var_31 + 0x3c);
  (this_00->elf_file_).shstrndx_ = (type_6)*(type_3 *)(var_31 + 0x3e);
  var_10 = (char *)(type_6)*(type_3 *)(var_31 + 0x34);
  if (*(type_3 *)(var_31 + 0x34) != 0x40) {
    var_29 = (char *)var_32(var_17 + 0x1cc69f);
                    /* try { // try from 0004e4f8 to 0004e533 has its CatchHandler @ 0004e59f */
    Object::var_33((type_19 *)this_00,var_29,(type_6)var_10 & 0xffff,0x40);
    var_29 = var_10;
  }
  var_10 = (char *)(type_6)*(type_3 *)(var_31 + 0x3a);
  if (*(type_3 *)(var_31 + 0x3a) != 0x40) {
    var_29 = (char *)var_32(var_17 + 0x1cc6b7);
    Object::var_33((type_19 *)this_00,var_29,(type_6)var_10 & 0xffff,0x40);
    var_29 = var_10;
  }
  var_1<64,var_2>::var_34(this_00);
  if ((var_35 != (type_7 *)0x0) && (var_35->size_ < 1)) {
    bVar3 = var_31[8];
    bVar4 = var_31[7];
    uVar5 = *(type_3 *)(var_31 + 0x12);
    var_35->size_ = 0x40;
    var_35->abiversion_ = (type_6)bVar3;
    var_35->machine_ = (type_6)uVar5;
    var_35->big_endian_ = 0;
    var_35->osabi_ = (type_6)bVar4;
    *(type_4 *)&var_35->next_file_offset_ = 0x40;
    *(type_4 *)((int)&var_35->next_file_offset_ + 4) = 0;
    Dwp_output_file::var_36
              (this_01,(char *)pp_Var14,(int)var_7,(int)var_29,(bool)in_stack_ffffffc4,
               in_stack_ffffffc8,(int)abiversion._M_p);
  }
  return (type_20 *)this_00;
}


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

int * MASKED(undefined4 *param_1,int param_2,int param_3,int param_4)

{
  byte bVar1;
  byte bVar2;
  short sVar3;
  ushort uVar4;
  int iVar5;
  int *piVar6;
  char *pcVar7;
  size_t sVar8;
  uint uVar9;
  byte *pbVar10;
  undefined4 uVar11;
  char *__s;
  int unaff_EDI;
  int iVar12;
  int iVar13;
  int *piVar14;
  undefined1 *local_34;
  int local_30;
  undefined1 local_2c [28];
  
  FUN_0004fb7e();
  piVar6 = (int *)FUN_0017ebf0(0xa8);
  __s = (char *)*param_1;
  pcVar7 = (char *)0xffffffff;
  local_34 = local_2c;
  if (__s != (char *)0x0) {
    sVar8 = strlen(__s);
    pcVar7 = __s + sVar8;
  }
                    /* try { // try from 0004e308 to 0004e30c has its CatchHandler @ 0004e672 */
  FUN_0004cf80(&local_34,__s,pcVar7,0);
  iVar12 = unaff_EDI + 0x2ae773;
  *piVar6 = iVar12;
  piVar14 = piVar6 + 3;
  piVar6[1] = (int)piVar14;
                    /* try { // try from 0004e334 to 0004e338 has its CatchHandler @ 0004e66d */
  FUN_0004d4e0(piVar6 + 1,local_34,local_34 + local_30,0,iVar12);
  piVar6[8] = 0;
  piVar6[9] = 0;
  piVar6[7] = param_3;
  piVar6[10] = -1;
  *(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0x80;
  piVar6[0xc] = 0;
  piVar6[0xd] = 0;
  if (param_3 != 0) {
    *(int *)(param_3 + 0x3c) = *(int *)(param_3 + 0x3c) + 1;
                    /* try { // try from 0004e377 to 0004e398 has its CatchHandler @ 0004e5a4 */
    uVar9 = FUN_0005cf30(param_3);
    *(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0xdf | (byte)((uVar9 & 1) << 5);
    pbVar10 = (byte *)FUN_0005cf10(param_3);
    *(byte *)(piVar6 + 0xb) = *(byte *)(piVar6 + 0xb) & 0xbf | (byte)((*pbVar10 & 1) << 6);
  }
  piVar6[0xe] = 0;
  iVar13 = unaff_EDI + 0x2aeb07;
  piVar6[0xf] = 0;
  piVar6[0x10] = 0;
  piVar6[0x11] = 0;
  piVar6[0x12] = 0;
  *(undefined1 *)(piVar6 + 0x13) = 0;
  piVar6[0x15] = 0;
  piVar6[0x16] = 0;
  piVar6[0x17] = 0;
  piVar6[0x18] = 0;
  piVar6[0x19] = 0;
  *piVar6 = iVar13;
  uVar9 = 0;
  do {
    *(undefined4 *)((int)piVar6 + uVar9 + 0x68) = 0;
    uVar9 = uVar9 + 4;
  } while (uVar9 < 0x1c);
  piVar6[0x1b] = 1;
  piVar6[0x1a] = (int)(piVar6 + 0x20);
  piVar6[0x1c] = 0;
  piVar6[0x1d] = 0;
  piVar6[0x1e] = 0x3f800000;
  piVar6[0x1f] = 0;
  piVar6[0x20] = 0;
  piVar6[0x21] = 0;
  piVar6[0x22] = 0;
  piVar6[0x23] = 0;
  if (local_34 != local_2c) {
    FUN_001807a0(local_34);
  }
  piVar6[0x24] = (int)piVar6;
  *piVar6 = unaff_EDI + 0x2aec03;
  piVar6[0x29] = 0;
  iVar5 = *(int *)(param_2 + 0x2c);
  piVar6[0x25] = *(int *)(param_2 + 0x28);
  piVar6[0x26] = iVar5;
  piVar6[0x27] = (uint)*(ushort *)(param_2 + 0x3c);
  piVar6[0x28] = (uint)*(ushort *)(param_2 + 0x3e);
  sVar3 = *(short *)(param_2 + 0x34);
  if (sVar3 != 0x40) {
    uVar11 = gettext(unaff_EDI + 0x1cc69f);
                    /* try { // try from 0004e4f8 to 0004e533 has its CatchHandler @ 0004e59f */
    FUN_00091980(piVar6,uVar11,sVar3,0x40,iVar12,iVar13,piVar14);
  }
  sVar3 = *(short *)(param_2 + 0x3a);
  if (sVar3 != 0x40) {
    uVar11 = gettext(unaff_EDI + 0x1cc6b7);
    FUN_00091980(piVar6,uVar11,sVar3,0x40);
  }
  FUN_0004e110(piVar6);
  if ((param_4 != 0) && (*(int *)(param_4 + 8) < 1)) {
    bVar1 = *(byte *)(param_2 + 8);
    bVar2 = *(byte *)(param_2 + 7);
    uVar4 = *(ushort *)(param_2 + 0x12);
    *(undefined4 *)(param_4 + 8) = 0x40;
    *(uint *)(param_4 + 0x14) = (uint)bVar1;
    *(uint *)(param_4 + 4) = (uint)uVar4;
    *(undefined4 *)(param_4 + 0xc) = 0;
    *(uint *)(param_4 + 0x10) = (uint)bVar2;
    *(undefined4 *)(param_4 + 0x1c) = 0x40;
    *(undefined4 *)(param_4 + 0x20) = 0;
    FUN_00032960();
  }
  return piVar6;
}

