
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: Object * do_make_elf_object(Target_powerpc<32,_false> * this, string *
   name, Input_file * input_file, off_t offset, Ehdr<32,_false> * ehdr) */

Object * __thiscall
anon_unknown.dwarf_6462d4::Target_powerpc<32,_false>::do_make_elf_object
          (Target_powerpc<32,_false> *this,string *name,Input_file *input_file,off_t offset,
          Ehdr<32,_false> *ehdr)

{
  int iVar1;
  pointer pcVar2;
  _func_int_varargs **pp_Var3;
  Ehdr_data<32> *pEVar4;
  bool bVar5;
  Sized_dynobj<32,_false> *this_00;
  char *pcVar6;
  Sized_relobj_file<32,_false> *this_01;
  uint uVar7;
  uint uVar8;
  int unaff_EDI;
  
  __x86_get_pc_thunk_di();
  uVar8 = (uint)ehdr->p_->e_type;
  if (uVar8 != 1) {
    if (uVar8 == 2) {
      bVar5 = gold::Input_file::just_symbols(input_file);
      if (bVar5) goto LAB_000c775c;
    }
    else if (uVar8 == 3) {
      this_00 = (Sized_dynobj<32,_false> *)operator_new(0xa0);
                    /* try { // try from 000c7627 to 000c762b has its CatchHandler @ 000c79ad */
      gold::Sized_dynobj<32,_false>::Sized_dynobj(this_00,name,input_file,offset,ehdr);
      this_00[1].super_Dynobj.super_Object._vptr_Object = (_func_int_varargs **)0x0;
      (this_00->super_Dynobj).super_Object._vptr_Object =
           (_func_int_varargs **)(unaff_EDI + 0x516e67);
      uVar8 = ehdr->p_->e_flags;
      this_00[1].super_Dynobj.super_Object.name_.field_2._M_allocated_capacity = 0;
      *(undefined4 *)((int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 4) = 0;
      this_00[1].super_Dynobj.super_Object.name_._M_string_length = uVar8;
      uVar8 = uVar8 & 3;
      *(undefined4 *)((int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 8) = 0;
      *(undefined4 *)((int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 0xc) = 0;
      if (uVar8 != 0) {
        iVar1 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);
        if (iVar1 == 0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 000c7990 to 000c7994 has its CatchHandler @ 000c79c5 */
          gold::do_gold_unreachable
                    ((char *)(unaff_EDI + 0x380ca4),0x73,(char *)(unaff_EDI + 0x39d327));
        }
        uVar7 = *(uint *)(iVar1 + 8) & 3;
        if (uVar7 == 0) {
          *(undefined1 *)(iVar1 + 0xc) = 1;
          *(uint *)(iVar1 + 8) = *(uint *)(iVar1 + 8) & 0xfffffffc | uVar8;
          gold::Sized_dynobj<32,_false>::setup(this_00);
          return (Object *)this_00;
        }
        if (uVar8 != uVar7) {
          pcVar2 = (this_00->super_Dynobj).super_Object.name_._M_dataplus._M_p;
          pcVar6 = (char *)gettext(unaff_EDI + 0x39f4af);
                    /* try { // try from 000c76cc to 000c76d0 has its CatchHandler @ 000c79c5 */
          gold::gold_error(pcVar6,pcVar2,uVar8,uVar7);
        }
      }
      gold::Sized_dynobj<32,_false>::setup(this_00);
      return (Object *)this_00;
    }
    pcVar2 = (name->_M_dataplus)._M_p;
    pcVar6 = (char *)gettext(unaff_EDI + 0x39f517);
    gold::gold_error(pcVar6,pcVar2,uVar8);
    return (Object *)0x0;
  }
LAB_000c775c:
  this_01 = (Sized_relobj_file<32,_false> *)operator_new(0x1c0);
                    /* try { // try from 000c777f to 000c7783 has its CatchHandler @ 000c79bd */
  gold::Sized_relobj_file<32,_false>::Sized_relobj_file(this_01,name,input_file,offset,ehdr);
  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.name_._M_dataplus._M_p =
       (pointer)0x0;
  (this_01->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object =
       (_func_int_varargs **)(unaff_EDI + 0x516d5b);
  pp_Var3 = *(_func_int_varargs ***)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e);
  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.name_._M_string_length = 0;
  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object._vptr_Object = pp_Var3;
  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.name_.field_2.
  _M_allocated_capacity = 0;
  pEVar4 = ehdr->p_;
  *(undefined2 *)
   ((int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.name_.field_2 + 4) = 0;
  *(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e) = (int)pp_Var3 + 1;
  uVar8 = pEVar4->e_flags;
  uVar7 = 0;
  *(undefined4 *)
   ((int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.name_.field_2 + 0xc) =
       0;
  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.input_file_ = (Input_file *)0x0
  ;
  *(uint *)((int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.name_.field_2 +
           8) = uVar8;
  *(undefined4 *)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_ = 0;
  *(undefined4 *)
   ((int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_ + 4) = 0;
  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.shnum_ = 0;
  *(undefined4 *)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.field_0x2c = 0;
  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.xindex_ = (Xindex *)0x0;
  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.compressed_sections_ =
       (Compressed_section_map *)0x0;
  do {
    *(undefined4 *)
     ((int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.output_sections_.
            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.
            _M_impl._M_start + uVar7) = 0;
    uVar7 = uVar7 + 4;
  } while (uVar7 < 0x1c);
  uVar8 = uVar8 & 3;
  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.output_sections_.
  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.
  _M_finish = (pointer)0x1;
  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.output_sections_.
  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl._M_start
       = (pointer)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.rd_;
  this_01[1].super_Sized_relobj<32,_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_01[1].super_Sized_relobj<32,_false>.super_Relobj.map_to_relocatable_relocs_ =
       (vector<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_> *)0x0;
  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.object_merge_map_ =
       (Object_merge_map *)0x3f800000;
  *(undefined4 *)
   &this_01[1].super_Sized_relobj<32,_false>.super_Relobj.relocs_must_follow_section_writes_ = 0;
  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.rd_ = (Read_relocs_data *)0x0;
  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.sd_ = (Symbols_data *)0x0;
  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.reloc_counts_ = (uint *)0x0;
  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.reloc_bases_ = (uint *)0x0;
  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.first_dyn_reloc_ = 0;
  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.dyn_reloc_count_ = 0;
  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_buckets = (__bucket_type *)0x0
  ;
  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_bucket_count = 0;
  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_before_begin._M_nxt =
       (_Hash_node_base *)0x0;
  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_element_count = 0;
  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_rehash_policy.
  _M_max_load_factor = 0.0;
  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_rehash_policy._M_next_resize =
       0;
  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_single_bucket =
       (__bucket_type)0x0;
  if (uVar8 != 0) {
    iVar1 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);
    if (iVar1 == 0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 000c79a8 to 000c79ac has its CatchHandler @ 000c79b5 */
      gold::do_gold_unreachable((char *)(unaff_EDI + 0x380ca4),0x73,(char *)(unaff_EDI + 0x39d327));
    }
    uVar7 = *(uint *)(iVar1 + 8) & 3;
    if (uVar7 == 0) {
      *(undefined1 *)(iVar1 + 0xc) = 1;
      *(uint *)(iVar1 + 8) = *(uint *)(iVar1 + 8) & 0xfffffffc | uVar8;
    }
    else if (uVar8 != uVar7) {
      pcVar2 = (this_01->super_Sized_relobj<32,_false>).super_Relobj.super_Object.name_._M_dataplus.
               _M_p;
      pcVar6 = (char *)gettext(unaff_EDI + 0x39f4af);
                    /* try { // try from 000c794f to 000c7953 has its CatchHandler @ 000c79b5 */
      gold::gold_error(pcVar6,pcVar2,uVar8,uVar7);
    }
  }
  gold::Sized_relobj_file<32,_false>::do_setup(this_01);
  return (Object *)this_01;
}



int * FUN_000c75c0(undefined4 param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4,
                  undefined4 param_5,int *param_6)

{
  short sVar1;
  int iVar2;
  int iVar3;
  char cVar4;
  int *piVar5;
  uint uVar6;
  undefined4 uVar7;
  undefined4 uVar8;
  uint uVar9;
  int unaff_EDI;
  
  FUN_00074f0a();
  sVar1 = *(short *)(*param_6 + 0x10);
  if (sVar1 != 1) {
    if (sVar1 == 2) {
      cVar4 = FUN_0023df40(param_3);
      if (cVar4 != '\0') goto LAB_000c775c;
    }
    else if (sVar1 == 3) {
      piVar5 = (int *)FUN_003ac4d0(0xa0);
                    /* try { // try from 000c7627 to 000c762b has its CatchHandler @ 000c79ad */
      FUN_0023a130(piVar5,param_2,param_3,param_4,param_5,param_6);
      piVar5[0x21] = 0;
      *piVar5 = unaff_EDI + 0x516e67;
      uVar6 = *(uint *)(*param_6 + 0x24);
      piVar5[0x24] = 0;
      piVar5[0x25] = 0;
      piVar5[0x23] = uVar6;
      uVar6 = uVar6 & 3;
      piVar5[0x26] = 0;
      piVar5[0x27] = 0;
      if (uVar6 != 0) {
        iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);
        if (iVar2 == 0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 000c7990 to 000c7994 has its CatchHandler @ 000c79c5 */
          FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,
                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12));
        }
        uVar9 = *(uint *)(iVar2 + 8) & 3;
        if (uVar9 == 0) {
          *(undefined1 *)(iVar2 + 0xc) = 1;
          *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;
          FUN_00234d00(piVar5);
          return piVar5;
        }
        if (uVar6 != uVar9) {
          iVar2 = piVar5[1];
          uVar7 = gettext(&UNK_0039f4af + unaff_EDI);
                    /* try { // try from 000c76cc to 000c76d0 has its CatchHandler @ 000c79c5 */
          FUN_0023b810(uVar7,iVar2,uVar6,uVar9);
        }
      }
      FUN_00234d00(piVar5);
      return piVar5;
    }
    uVar7 = *param_2;
    uVar8 = gettext(&UNK_0039f517 + unaff_EDI);
    FUN_0023b810(uVar8,uVar7,sVar1);
    return (int *)0x0;
  }
LAB_000c775c:
  piVar5 = (int *)FUN_003ac4d0(0x1c0);
                    /* try { // try from 000c777f to 000c7783 has its CatchHandler @ 000c79bd */
  FUN_002a0e60(piVar5,param_2,param_3,param_4,param_5,param_6);
  piVar5[0x50] = 0;
  *piVar5 = unaff_EDI + 0x516d5b;
  iVar2 = *(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e);
  piVar5[0x51] = 0;
  piVar5[0x4f] = iVar2;
  piVar5[0x52] = 0;
  iVar3 = *param_6;
  *(undefined2 *)(piVar5 + 0x53) = 0;
  *(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e) = iVar2 + 1;
  uVar6 = *(uint *)(iVar3 + 0x24);
  uVar9 = 0;
  piVar5[0x55] = 0;
  piVar5[0x56] = 0;
  piVar5[0x54] = uVar6;
  piVar5[0x57] = 0;
  piVar5[0x58] = 0;
  piVar5[0x59] = 0;
  piVar5[0x5a] = 0;
  piVar5[0x5b] = 0;
  piVar5[0x5c] = 0;
  do {
    *(undefined4 *)((int)piVar5 + uVar9 + 0x174) = 0;
    uVar9 = uVar9 + 4;
  } while (uVar9 < 0x1c);
  uVar6 = uVar6 & 3;
  piVar5[0x5e] = 1;
  piVar5[0x5d] = (int)(piVar5 + 99);
  piVar5[0x5f] = 0;
  piVar5[0x60] = 0;
  piVar5[0x61] = 0x3f800000;
  piVar5[0x62] = 0;
  piVar5[99] = 0;
  piVar5[100] = 0;
  piVar5[0x65] = 0;
  piVar5[0x66] = 0;
  piVar5[0x67] = 0;
  piVar5[0x68] = 0;
  piVar5[0x69] = 0;
  piVar5[0x6a] = 0;
  piVar5[0x6b] = 0;
  piVar5[0x6c] = 0;
  piVar5[0x6d] = 0;
  piVar5[0x6e] = 0;
  piVar5[0x6f] = 0;
  if (uVar6 != 0) {
    iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);
    if (iVar2 == 0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 000c79a8 to 000c79ac has its CatchHandler @ 000c79b5 */
      FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,uVar6);
    }
    uVar9 = *(uint *)(iVar2 + 8) & 3;
    if (uVar9 == 0) {
      *(undefined1 *)(iVar2 + 0xc) = 1;
      *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;
    }
    else if (uVar6 != uVar9) {
      iVar2 = piVar5[1];
      uVar7 = gettext(&UNK_0039f4af + unaff_EDI);
                    /* try { // try from 000c794f to 000c7953 has its CatchHandler @ 000c79b5 */
      FUN_0023b810(uVar7,iVar2,uVar6,uVar9);
    }
  }
  FUN_002945e0(piVar5);
  return piVar5;
}


PUSH EBP
MOV EBP,ESP
PUSH EDI
CALL 0x00074f0a
ADD EDI,0x522a37
PUSH ESI
PUSH EBX
SUB ESP,0x1c
MOV EAX,dword ptr [EBP + 0x14]
MOV EDX,dword ptr [EBP + 0x18]
MOV dword ptr [EBP + -0x20],EAX
MOV EAX,dword ptr [EBP + 0x1c]
MOV dword ptr [EBP + -0x1c],EDX
MOV EAX,dword ptr [EAX]
MOVZX ESI,word ptr [EAX + 0x10]
CMP ESI,0x1
JZ 0x000c775c
CMP ESI,0x2
JZ 0x000c7748
CMP ESI,0x3
JNZ 0x000c76f0
SUB ESP,0xc
MOV EBX,EDI
PUSH 0xa0
CALL 0x003ac4d0
MOV ESI,EAX
POP EAX
POP EDX
PUSH dword ptr [EBP + 0x1c]
PUSH dword ptr [EBP + -0x1c]
PUSH dword ptr [EBP + -0x20]
PUSH dword ptr [EBP + 0x10]
PUSH dword ptr [EBP + 0xc]
PUSH ESI
CALL 0x0023a130
LEA EAX,[EDI + 0xffff4430]
ADD ESP,0x20
MOV dword ptr [ESI + 0x84],0x0
MOV dword ptr [ESI],EAX
MOV EAX,dword ptr [EBP + 0x1c]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x24]
MOV dword ptr [ESI + 0x90],0x0
MOV dword ptr [ESI + 0x94],0x0
MOV dword ptr [ESI + 0x8c],EAX
AND EAX,0x3
MOV dword ptr [ESI + 0x98],0x0
MOV dword ptr [ESI + 0x9c],0x0
MOV dword ptr [EBP + -0x20],EAX
JZ 0x000c76d8
LEA EAX,[EDI + 0x7c8]
MOV EAX,dword ptr [EAX]
MOV ECX,dword ptr [EAX + 0xc]
TEST ECX,ECX
JZ 0x000c797f
MOV EAX,dword ptr [ECX + 0x8]
MOV EDX,EAX
AND EDX,0x3
JZ 0x000c7728
CMP dword ptr [EBP + -0x20],EDX
MOV dword ptr [EBP + -0x24],EDX
JZ 0x000c76d8
SUB ESP,0xc
LEA EAX,[EDI + 0xffe7ca78]
MOV ECX,dword ptr [ESI + 0x4]
PUSH EAX
MOV dword ptr [EBP + -0x28],ECX
CALL 0x00039440
MOV EDX,dword ptr [EBP + -0x24]
MOV ECX,dword ptr [EBP + -0x28]
ADD ESP,0x10
PUSH EDX
PUSH dword ptr [EBP + -0x20]
PUSH ECX
PUSH EAX
CALL 0x0023b810
ADD ESP,0x10
LEA ESI,[ESI]
SUB ESP,0xc
MOV EBX,EDI
PUSH ESI
CALL 0x00234d00
ADD ESP,0x10
LEA ESP,[EBP + -0xc]
MOV EAX,ESI
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [EBP + 0xc]
SUB ESP,0xc
MOV EBX,EDI
MOV EAX,dword ptr [EAX]
MOV dword ptr [EBP + -0x20],EAX
LEA EAX,[EDI + 0xffe7cae0]
PUSH EAX
CALL 0x00039440
ADD ESP,0xc
PUSH ESI
XOR ESI,ESI
PUSH dword ptr [EBP + -0x20]
PUSH EAX
CALL 0x0023b810
ADD ESP,0x10
LEA ESP,[EBP + -0xc]
MOV EAX,ESI
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0xc
AND EAX,0xfffffffc
OR EAX,dword ptr [EBP + -0x20]
MOV byte ptr [ECX + 0xc],0x1
MOV dword ptr [ECX + 0x8],EAX
MOV EBX,EDI
PUSH ESI
CALL 0x00234d00
ADD ESP,0x10
JMP 0x000c76e6
SUB ESP,0xc
PUSH dword ptr [EBP + 0x10]
MOV EBX,EDI
CALL 0x0023df40
ADD ESP,0x10
TEST AL,AL
JZ 0x000c76f0
SUB ESP,0xc
MOV EBX,EDI
PUSH 0x1c0
CALL 0x003ac4d0
MOV ESI,EAX
POP EAX
POP EDX
PUSH dword ptr [EBP + 0x1c]
PUSH dword ptr [EBP + -0x1c]
PUSH dword ptr [EBP + -0x20]
PUSH dword ptr [EBP + 0x10]
PUSH dword ptr [EBP + 0xc]
PUSH ESI
CALL 0x002a0e60
LEA EAX,[EDI + 0xffff4324]
XOR EBX,EBX
ADD ESP,0x20
MOV dword ptr [ESI + 0x140],0x0
MOV dword ptr [ESI],EAX
MOV EAX,dword ptr [EDI + 0xb94]
MOV dword ptr [ESI + 0x144],0x0
LEA EDX,[EAX + 0x1]
MOV dword ptr [ESI + 0x13c],EAX
MOV EAX,dword ptr [EBP + 0x1c]
MOV dword ptr [ESI + 0x148],0x0
MOV EAX,dword ptr [EAX]
MOV word ptr [ESI + 0x14c],BX
MOV dword ptr [EDI + 0xb94],EDX
XOR EDX,EDX
MOV ECX,dword ptr [EAX + 0x24]
XOR EAX,EAX
MOV dword ptr [ESI + 0x154],0x0
MOV dword ptr [ESI + 0x158],0x0
MOV dword ptr [ESI + 0x150],ECX
MOV dword ptr [ESI + 0x15c],0x0
MOV dword ptr [ESI + 0x160],0x0
MOV dword ptr [ESI + 0x164],0x0
MOV dword ptr [ESI + 0x168],0x0
MOV dword ptr [ESI + 0x16c],0x0
MOV dword ptr [ESI + 0x170],0x0
MOV dword ptr [ESI + EAX*0x1 + 0x174],EDX
ADD EAX,0x4
CMP EAX,0x1c
JC 0x000c782d
LEA EAX,[ESI + 0x18c]
AND ECX,0x3
MOV dword ptr [ESI + 0x178],0x1
MOV dword ptr [ESI + 0x174],EAX
MOV dword ptr [ESI + 0x17c],0x0
MOV dword ptr [ESI + 0x180],0x0
MOV dword ptr [ESI + 0x184],0x3f800000
MOV dword ptr [ESI + 0x188],0x0
MOV dword ptr [ESI + 0x18c],0x0
MOV dword ptr [ESI + 0x190],0x0
MOV dword ptr [ESI + 0x194],0x0
MOV dword ptr [ESI + 0x198],0x0
MOV dword ptr [ESI + 0x19c],0x0
MOV dword ptr [ESI + 0x1a0],0x0
MOV dword ptr [ESI + 0x1a4],0x0
MOV dword ptr [ESI + 0x1a8],0x0
MOV dword ptr [ESI + 0x1ac],0x0
MOV dword ptr [ESI + 0x1b0],0x0
MOV dword ptr [ESI + 0x1b4],0x0
MOV dword ptr [ESI + 0x1b8],0x0
MOV dword ptr [ESI + 0x1bc],0x0
MOV dword ptr [EBP + -0x20],ECX
JZ 0x000c7957
LEA EAX,[EDI + 0x7c8]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JZ 0x000c7995
MOV ECX,dword ptr [EAX + 0x8]
MOV EDX,ECX
AND EDX,0x3
JZ 0x000c7970
CMP dword ptr [EBP + -0x20],EDX
MOV dword ptr [EBP + -0x24],EDX
JZ 0x000c7957
SUB ESP,0xc
LEA EAX,[EDI + 0xffe7ca78]
MOV ECX,dword ptr [ESI + 0x4]
MOV EBX,EDI
PUSH EAX
MOV dword ptr [EBP + -0x28],ECX
CALL 0x00039440
MOV EDX,dword ptr [EBP + -0x24]
MOV ECX,dword ptr [EBP + -0x28]
ADD ESP,0x10
PUSH EDX
PUSH dword ptr [EBP + -0x20]
PUSH ECX
PUSH EAX
CALL 0x0023b810
ADD ESP,0x10
SUB ESP,0xc
MOV EBX,EDI
PUSH ESI
CALL 0x002945e0
ADD ESP,0x10
LEA ESP,[EBP + -0xc]
MOV EAX,ESI
POP EBX
POP ESI
POP EDI
POP EBP
RET
AND ECX,0xfffffffc
OR ECX,dword ptr [EBP + -0x20]
MOV byte ptr [EAX + 0xc],0x1
MOV dword ptr [EAX + 0x8],ECX
JMP 0x000c7957
PUSH EAX
LEA EAX,[EDI + 0xffe7a8f0]
PUSH EAX
LEA EAX,[EDI + 0xffe5e26d]
PUSH 0x73
PUSH EAX
CALL 0x002446e0
LEA EAX,[EDI + 0xffe7a8f0]
PUSH ECX
MOV EBX,EDI
PUSH EAX
LEA EAX,[EDI + 0xffe5e26d]
PUSH 0x73
PUSH EAX
CALL 0x002446e0
(translation_unit "int * FUN_000c75c0(undefined4 param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4,\n                  undefined4 param_5,int *param_6)\n\n{\n  short sVar1;\n  int iVar2;\n  int iVar3;\n  char cVar4;\n  int *piVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  int unaff_EDI;\n  \n  FUN_00074f0a();\n  sVar1 = *(short *)(*param_6 + 0x10);\n  if (sVar1 != 1) {\n    if (sVar1 == 2) {\n      cVar4 = FUN_0023df40(param_3);\n      if (cVar4 != '\0') goto LAB_000c775c;\n    }\n    else if (sVar1 == 3) {\n      piVar5 = (int *)FUN_003ac4d0(0xa0);\n                    /* try { // try from 000c7627 to 000c762b has its CatchHandler @ 000c79ad */\n      FUN_0023a130(piVar5,param_2,param_3,param_4,param_5,param_6);\n      piVar5[0x21] = 0;\n      *piVar5 = unaff_EDI + 0x516e67;\n      uVar6 = *(uint *)(*param_6 + 0x24);\n      piVar5[0x24] = 0;\n      piVar5[0x25] = 0;\n      piVar5[0x23] = uVar6;\n      uVar6 = uVar6 & 3;\n      piVar5[0x26] = 0;\n      piVar5[0x27] = 0;\n      if (uVar6 != 0) {\n        iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n        if (iVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000c7990 to 000c7994 has its CatchHandler @ 000c79c5 */\n          FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12));\n        }\n        uVar9 = *(uint *)(iVar2 + 8) & 3;\n        if (uVar9 == 0) {\n          *(undefined1 *)(iVar2 + 0xc) = 1;\n          *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n          FUN_00234d00(piVar5);\n          return piVar5;\n        }\n        if (uVar6 != uVar9) {\n          iVar2 = piVar5[1];\n          uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    /* try { // try from 000c76cc to 000c76d0 has its CatchHandler @ 000c79c5 */\n          FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n        }\n      }\n      FUN_00234d00(piVar5);\n      return piVar5;\n    }\n    uVar7 = *param_2;\n    uVar8 = gettext(&UNK_0039f517 + unaff_EDI);\n    FUN_0023b810(uVar8,uVar7,sVar1);\n    return (int *)0x0;\n  }\nLAB_000c775c:\n  piVar5 = (int *)FUN_003ac4d0(0x1c0);\n                    /* try { // try from 000c777f to 000c7783 has its CatchHandler @ 000c79bd */\n  FUN_002a0e60(piVar5,param_2,param_3,param_4,param_5,param_6);\n  piVar5[0x50] = 0;\n  *piVar5 = unaff_EDI + 0x516d5b;\n  iVar2 = *(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e);\n  piVar5[0x51] = 0;\n  piVar5[0x4f] = iVar2;\n  piVar5[0x52] = 0;\n  iVar3 = *param_6;\n  *(undefined2 *)(piVar5 + 0x53) = 0;\n  *(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e) = iVar2 + 1;\n  uVar6 = *(uint *)(iVar3 + 0x24);\n  uVar9 = 0;\n  piVar5[0x55] = 0;\n  piVar5[0x56] = 0;\n  piVar5[0x54] = uVar6;\n  piVar5[0x57] = 0;\n  piVar5[0x58] = 0;\n  piVar5[0x59] = 0;\n  piVar5[0x5a] = 0;\n  piVar5[0x5b] = 0;\n  piVar5[0x5c] = 0;\n  do {\n    *(undefined4 *)((int)piVar5 + uVar9 + 0x174) = 0;\n    uVar9 = uVar9 + 4;\n  } while (uVar9 < 0x1c);\n  uVar6 = uVar6 & 3;\n  piVar5[0x5e] = 1;\n  piVar5[0x5d] = (int)(piVar5 + 99);\n  piVar5[0x5f] = 0;\n  piVar5[0x60] = 0;\n  piVar5[0x61] = 0x3f800000;\n  piVar5[0x62] = 0;\n  piVar5[99] = 0;\n  piVar5[100] = 0;\n  piVar5[0x65] = 0;\n  piVar5[0x66] = 0;\n  piVar5[0x67] = 0;\n  piVar5[0x68] = 0;\n  piVar5[0x69] = 0;\n  piVar5[0x6a] = 0;\n  piVar5[0x6b] = 0;\n  piVar5[0x6c] = 0;\n  piVar5[0x6d] = 0;\n  piVar5[0x6e] = 0;\n  piVar5[0x6f] = 0;\n  if (uVar6 != 0) {\n    iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n    if (iVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000c79a8 to 000c79ac has its CatchHandler @ 000c79b5 */\n      FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,uVar6);\n    }\n    uVar9 = *(uint *)(iVar2 + 8) & 3;\n    if (uVar9 == 0) {\n      *(undefined1 *)(iVar2 + 0xc) = 1;\n      *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n    }\n    else if (uVar6 != uVar9) {\n      iVar2 = piVar5[1];\n      uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    /* try { // try from 000c794f to 000c7953 has its CatchHandler @ 000c79b5 */\n      FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n    }\n  }\n  FUN_002945e0(piVar5);\n  return piVar5;\n}\n\n" (function_definition "int * FUN_000c75c0(undefined4 param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4,\n                  undefined4 param_5,int *param_6)\n\n{\n  short sVar1;\n  int iVar2;\n  int iVar3;\n  char cVar4;\n  int *piVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  int unaff_EDI;\n  \n  FUN_00074f0a();\n  sVar1 = *(short *)(*param_6 + 0x10);\n  if (sVar1 != 1) {\n    if (sVar1 == 2) {\n      cVar4 = FUN_0023df40(param_3);\n      if (cVar4 != '\0') goto LAB_000c775c;\n    }\n    else if (sVar1 == 3) {\n      piVar5 = (int *)FUN_003ac4d0(0xa0);\n                    /* try { // try from 000c7627 to 000c762b has its CatchHandler @ 000c79ad */\n      FUN_0023a130(piVar5,param_2,param_3,param_4,param_5,param_6);\n      piVar5[0x21] = 0;\n      *piVar5 = unaff_EDI + 0x516e67;\n      uVar6 = *(uint *)(*param_6 + 0x24);\n      piVar5[0x24] = 0;\n      piVar5[0x25] = 0;\n      piVar5[0x23] = uVar6;\n      uVar6 = uVar6 & 3;\n      piVar5[0x26] = 0;\n      piVar5[0x27] = 0;\n      if (uVar6 != 0) {\n        iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n        if (iVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000c7990 to 000c7994 has its CatchHandler @ 000c79c5 */\n          FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12));\n        }\n        uVar9 = *(uint *)(iVar2 + 8) & 3;\n        if (uVar9 == 0) {\n          *(undefined1 *)(iVar2 + 0xc) = 1;\n          *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n          FUN_00234d00(piVar5);\n          return piVar5;\n        }\n        if (uVar6 != uVar9) {\n          iVar2 = piVar5[1];\n          uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    /* try { // try from 000c76cc to 000c76d0 has its CatchHandler @ 000c79c5 */\n          FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n        }\n      }\n      FUN_00234d00(piVar5);\n      return piVar5;\n    }\n    uVar7 = *param_2;\n    uVar8 = gettext(&UNK_0039f517 + unaff_EDI);\n    FUN_0023b810(uVar8,uVar7,sVar1);\n    return (int *)0x0;\n  }\nLAB_000c775c:\n  piVar5 = (int *)FUN_003ac4d0(0x1c0);\n                    /* try { // try from 000c777f to 000c7783 has its CatchHandler @ 000c79bd */\n  FUN_002a0e60(piVar5,param_2,param_3,param_4,param_5,param_6);\n  piVar5[0x50] = 0;\n  *piVar5 = unaff_EDI + 0x516d5b;\n  iVar2 = *(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e);\n  piVar5[0x51] = 0;\n  piVar5[0x4f] = iVar2;\n  piVar5[0x52] = 0;\n  iVar3 = *param_6;\n  *(undefined2 *)(piVar5 + 0x53) = 0;\n  *(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e) = iVar2 + 1;\n  uVar6 = *(uint *)(iVar3 + 0x24);\n  uVar9 = 0;\n  piVar5[0x55] = 0;\n  piVar5[0x56] = 0;\n  piVar5[0x54] = uVar6;\n  piVar5[0x57] = 0;\n  piVar5[0x58] = 0;\n  piVar5[0x59] = 0;\n  piVar5[0x5a] = 0;\n  piVar5[0x5b] = 0;\n  piVar5[0x5c] = 0;\n  do {\n    *(undefined4 *)((int)piVar5 + uVar9 + 0x174) = 0;\n    uVar9 = uVar9 + 4;\n  } while (uVar9 < 0x1c);\n  uVar6 = uVar6 & 3;\n  piVar5[0x5e] = 1;\n  piVar5[0x5d] = (int)(piVar5 + 99);\n  piVar5[0x5f] = 0;\n  piVar5[0x60] = 0;\n  piVar5[0x61] = 0x3f800000;\n  piVar5[0x62] = 0;\n  piVar5[99] = 0;\n  piVar5[100] = 0;\n  piVar5[0x65] = 0;\n  piVar5[0x66] = 0;\n  piVar5[0x67] = 0;\n  piVar5[0x68] = 0;\n  piVar5[0x69] = 0;\n  piVar5[0x6a] = 0;\n  piVar5[0x6b] = 0;\n  piVar5[0x6c] = 0;\n  piVar5[0x6d] = 0;\n  piVar5[0x6e] = 0;\n  piVar5[0x6f] = 0;\n  if (uVar6 != 0) {\n    iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n    if (iVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000c79a8 to 000c79ac has its CatchHandler @ 000c79b5 */\n      FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,uVar6);\n    }\n    uVar9 = *(uint *)(iVar2 + 8) & 3;\n    if (uVar9 == 0) {\n      *(undefined1 *)(iVar2 + 0xc) = 1;\n      *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n    }\n    else if (uVar6 != uVar9) {\n      iVar2 = piVar5[1];\n      uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    /* try { // try from 000c794f to 000c7953 has its CatchHandler @ 000c79b5 */\n      FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n    }\n  }\n  FUN_002945e0(piVar5);\n  return piVar5;\n}" primitive_type (pointer_declarator "* FUN_000c75c0(undefined4 param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4,\n                  undefined4 param_5,int *param_6)" * (function_declarator "FUN_000c75c0(undefined4 param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4,\n                  undefined4 param_5,int *param_6)" identifier (parameter_list "(undefined4 param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4,\n                  undefined4 param_5,int *param_6)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "int *param_6" primitive_type (pointer_declarator "*param_6" * identifier)) )))) (compound_statement "{\n  short sVar1;\n  int iVar2;\n  int iVar3;\n  char cVar4;\n  int *piVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  int unaff_EDI;\n  \n  FUN_00074f0a();\n  sVar1 = *(short *)(*param_6 + 0x10);\n  if (sVar1 != 1) {\n    if (sVar1 == 2) {\n      cVar4 = FUN_0023df40(param_3);\n      if (cVar4 != '\0') goto LAB_000c775c;\n    }\n    else if (sVar1 == 3) {\n      piVar5 = (int *)FUN_003ac4d0(0xa0);\n                    /* try { // try from 000c7627 to 000c762b has its CatchHandler @ 000c79ad */\n      FUN_0023a130(piVar5,param_2,param_3,param_4,param_5,param_6);\n      piVar5[0x21] = 0;\n      *piVar5 = unaff_EDI + 0x516e67;\n      uVar6 = *(uint *)(*param_6 + 0x24);\n      piVar5[0x24] = 0;\n      piVar5[0x25] = 0;\n      piVar5[0x23] = uVar6;\n      uVar6 = uVar6 & 3;\n      piVar5[0x26] = 0;\n      piVar5[0x27] = 0;\n      if (uVar6 != 0) {\n        iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n        if (iVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000c7990 to 000c7994 has its CatchHandler @ 000c79c5 */\n          FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12));\n        }\n        uVar9 = *(uint *)(iVar2 + 8) & 3;\n        if (uVar9 == 0) {\n          *(undefined1 *)(iVar2 + 0xc) = 1;\n          *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n          FUN_00234d00(piVar5);\n          return piVar5;\n        }\n        if (uVar6 != uVar9) {\n          iVar2 = piVar5[1];\n          uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    /* try { // try from 000c76cc to 000c76d0 has its CatchHandler @ 000c79c5 */\n          FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n        }\n      }\n      FUN_00234d00(piVar5);\n      return piVar5;\n    }\n    uVar7 = *param_2;\n    uVar8 = gettext(&UNK_0039f517 + unaff_EDI);\n    FUN_0023b810(uVar8,uVar7,sVar1);\n    return (int *)0x0;\n  }\nLAB_000c775c:\n  piVar5 = (int *)FUN_003ac4d0(0x1c0);\n                    /* try { // try from 000c777f to 000c7783 has its CatchHandler @ 000c79bd */\n  FUN_002a0e60(piVar5,param_2,param_3,param_4,param_5,param_6);\n  piVar5[0x50] = 0;\n  *piVar5 = unaff_EDI + 0x516d5b;\n  iVar2 = *(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e);\n  piVar5[0x51] = 0;\n  piVar5[0x4f] = iVar2;\n  piVar5[0x52] = 0;\n  iVar3 = *param_6;\n  *(undefined2 *)(piVar5 + 0x53) = 0;\n  *(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e) = iVar2 + 1;\n  uVar6 = *(uint *)(iVar3 + 0x24);\n  uVar9 = 0;\n  piVar5[0x55] = 0;\n  piVar5[0x56] = 0;\n  piVar5[0x54] = uVar6;\n  piVar5[0x57] = 0;\n  piVar5[0x58] = 0;\n  piVar5[0x59] = 0;\n  piVar5[0x5a] = 0;\n  piVar5[0x5b] = 0;\n  piVar5[0x5c] = 0;\n  do {\n    *(undefined4 *)((int)piVar5 + uVar9 + 0x174) = 0;\n    uVar9 = uVar9 + 4;\n  } while (uVar9 < 0x1c);\n  uVar6 = uVar6 & 3;\n  piVar5[0x5e] = 1;\n  piVar5[0x5d] = (int)(piVar5 + 99);\n  piVar5[0x5f] = 0;\n  piVar5[0x60] = 0;\n  piVar5[0x61] = 0x3f800000;\n  piVar5[0x62] = 0;\n  piVar5[99] = 0;\n  piVar5[100] = 0;\n  piVar5[0x65] = 0;\n  piVar5[0x66] = 0;\n  piVar5[0x67] = 0;\n  piVar5[0x68] = 0;\n  piVar5[0x69] = 0;\n  piVar5[0x6a] = 0;\n  piVar5[0x6b] = 0;\n  piVar5[0x6c] = 0;\n  piVar5[0x6d] = 0;\n  piVar5[0x6e] = 0;\n  piVar5[0x6f] = 0;\n  if (uVar6 != 0) {\n    iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n    if (iVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000c79a8 to 000c79ac has its CatchHandler @ 000c79b5 */\n      FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,uVar6);\n    }\n    uVar9 = *(uint *)(iVar2 + 8) & 3;\n    if (uVar9 == 0) {\n      *(undefined1 *)(iVar2 + 0xc) = 1;\n      *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n    }\n    else if (uVar6 != uVar9) {\n      iVar2 = piVar5[1];\n      uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    /* try { // try from 000c794f to 000c7953 has its CatchHandler @ 000c79b5 */\n      FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n    }\n  }\n  FUN_002945e0(piVar5);\n  return piVar5;\n}" { (declaration "short sVar1;" (sized_type_specifier "short" short) identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (expression_statement "FUN_00074f0a();" (call_expression "FUN_00074f0a()" identifier (argument_list "()" ( ))) ;) (expression_statement "sVar1 = *(short *)(*param_6 + 0x10);" (assignment_expression "sVar1 = *(short *)(*param_6 + 0x10)" identifier = (pointer_expression "*(short *)(*param_6 + 0x10)" * (cast_expression "(short *)(*param_6 + 0x10)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_6 + 0x10)" ( (binary_expression "*param_6 + 0x10" (pointer_expression "*param_6" * identifier) + number_literal) ))))) ;) (if_statement "if (sVar1 != 1) {\n    if (sVar1 == 2) {\n      cVar4 = FUN_0023df40(param_3);\n      if (cVar4 != '\0') goto LAB_000c775c;\n    }\n    else if (sVar1 == 3) {\n      piVar5 = (int *)FUN_003ac4d0(0xa0);\n                    /* try { // try from 000c7627 to 000c762b has its CatchHandler @ 000c79ad */\n      FUN_0023a130(piVar5,param_2,param_3,param_4,param_5,param_6);\n      piVar5[0x21] = 0;\n      *piVar5 = unaff_EDI + 0x516e67;\n      uVar6 = *(uint *)(*param_6 + 0x24);\n      piVar5[0x24] = 0;\n      piVar5[0x25] = 0;\n      piVar5[0x23] = uVar6;\n      uVar6 = uVar6 & 3;\n      piVar5[0x26] = 0;\n      piVar5[0x27] = 0;\n      if (uVar6 != 0) {\n        iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n        if (iVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000c7990 to 000c7994 has its CatchHandler @ 000c79c5 */\n          FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12));\n        }\n        uVar9 = *(uint *)(iVar2 + 8) & 3;\n        if (uVar9 == 0) {\n          *(undefined1 *)(iVar2 + 0xc) = 1;\n          *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n          FUN_00234d00(piVar5);\n          return piVar5;\n        }\n        if (uVar6 != uVar9) {\n          iVar2 = piVar5[1];\n          uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    /* try { // try from 000c76cc to 000c76d0 has its CatchHandler @ 000c79c5 */\n          FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n        }\n      }\n      FUN_00234d00(piVar5);\n      return piVar5;\n    }\n    uVar7 = *param_2;\n    uVar8 = gettext(&UNK_0039f517 + unaff_EDI);\n    FUN_0023b810(uVar8,uVar7,sVar1);\n    return (int *)0x0;\n  }" if (parenthesized_expression "(sVar1 != 1)" ( (binary_expression "sVar1 != 1" identifier != number_literal) )) (compound_statement "{\n    if (sVar1 == 2) {\n      cVar4 = FUN_0023df40(param_3);\n      if (cVar4 != '\0') goto LAB_000c775c;\n    }\n    else if (sVar1 == 3) {\n      piVar5 = (int *)FUN_003ac4d0(0xa0);\n                    /* try { // try from 000c7627 to 000c762b has its CatchHandler @ 000c79ad */\n      FUN_0023a130(piVar5,param_2,param_3,param_4,param_5,param_6);\n      piVar5[0x21] = 0;\n      *piVar5 = unaff_EDI + 0x516e67;\n      uVar6 = *(uint *)(*param_6 + 0x24);\n      piVar5[0x24] = 0;\n      piVar5[0x25] = 0;\n      piVar5[0x23] = uVar6;\n      uVar6 = uVar6 & 3;\n      piVar5[0x26] = 0;\n      piVar5[0x27] = 0;\n      if (uVar6 != 0) {\n        iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n        if (iVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000c7990 to 000c7994 has its CatchHandler @ 000c79c5 */\n          FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12));\n        }\n        uVar9 = *(uint *)(iVar2 + 8) & 3;\n        if (uVar9 == 0) {\n          *(undefined1 *)(iVar2 + 0xc) = 1;\n          *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n          FUN_00234d00(piVar5);\n          return piVar5;\n        }\n        if (uVar6 != uVar9) {\n          iVar2 = piVar5[1];\n          uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    /* try { // try from 000c76cc to 000c76d0 has its CatchHandler @ 000c79c5 */\n          FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n        }\n      }\n      FUN_00234d00(piVar5);\n      return piVar5;\n    }\n    uVar7 = *param_2;\n    uVar8 = gettext(&UNK_0039f517 + unaff_EDI);\n    FUN_0023b810(uVar8,uVar7,sVar1);\n    return (int *)0x0;\n  }" { (if_statement "if (sVar1 == 2) {\n      cVar4 = FUN_0023df40(param_3);\n      if (cVar4 != '\0') goto LAB_000c775c;\n    }\n    else if (sVar1 == 3) {\n      piVar5 = (int *)FUN_003ac4d0(0xa0);\n                    /* try { // try from 000c7627 to 000c762b has its CatchHandler @ 000c79ad */\n      FUN_0023a130(piVar5,param_2,param_3,param_4,param_5,param_6);\n      piVar5[0x21] = 0;\n      *piVar5 = unaff_EDI + 0x516e67;\n      uVar6 = *(uint *)(*param_6 + 0x24);\n      piVar5[0x24] = 0;\n      piVar5[0x25] = 0;\n      piVar5[0x23] = uVar6;\n      uVar6 = uVar6 & 3;\n      piVar5[0x26] = 0;\n      piVar5[0x27] = 0;\n      if (uVar6 != 0) {\n        iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n        if (iVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000c7990 to 000c7994 has its CatchHandler @ 000c79c5 */\n          FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12));\n        }\n        uVar9 = *(uint *)(iVar2 + 8) & 3;\n        if (uVar9 == 0) {\n          *(undefined1 *)(iVar2 + 0xc) = 1;\n          *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n          FUN_00234d00(piVar5);\n          return piVar5;\n        }\n        if (uVar6 != uVar9) {\n          iVar2 = piVar5[1];\n          uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    /* try { // try from 000c76cc to 000c76d0 has its CatchHandler @ 000c79c5 */\n          FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n        }\n      }\n      FUN_00234d00(piVar5);\n      return piVar5;\n    }" if (parenthesized_expression "(sVar1 == 2)" ( (binary_expression "sVar1 == 2" identifier == number_literal) )) (compound_statement "{\n      cVar4 = FUN_0023df40(param_3);\n      if (cVar4 != '\0') goto LAB_000c775c;\n    }" { (expression_statement "cVar4 = FUN_0023df40(param_3);" (assignment_expression "cVar4 = FUN_0023df40(param_3)" identifier = (call_expression "FUN_0023df40(param_3)" identifier (argument_list "(param_3)" ( identifier )))) ;) (if_statement "if (cVar4 != '\0') goto LAB_000c775c;" if (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000c775c;" goto statement_identifier ;)) }) (else_clause "else if (sVar1 == 3) {\n      piVar5 = (int *)FUN_003ac4d0(0xa0);\n                    /* try { // try from 000c7627 to 000c762b has its CatchHandler @ 000c79ad */\n      FUN_0023a130(piVar5,param_2,param_3,param_4,param_5,param_6);\n      piVar5[0x21] = 0;\n      *piVar5 = unaff_EDI + 0x516e67;\n      uVar6 = *(uint *)(*param_6 + 0x24);\n      piVar5[0x24] = 0;\n      piVar5[0x25] = 0;\n      piVar5[0x23] = uVar6;\n      uVar6 = uVar6 & 3;\n      piVar5[0x26] = 0;\n      piVar5[0x27] = 0;\n      if (uVar6 != 0) {\n        iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n        if (iVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000c7990 to 000c7994 has its CatchHandler @ 000c79c5 */\n          FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12));\n        }\n        uVar9 = *(uint *)(iVar2 + 8) & 3;\n        if (uVar9 == 0) {\n          *(undefined1 *)(iVar2 + 0xc) = 1;\n          *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n          FUN_00234d00(piVar5);\n          return piVar5;\n        }\n        if (uVar6 != uVar9) {\n          iVar2 = piVar5[1];\n          uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    /* try { // try from 000c76cc to 000c76d0 has its CatchHandler @ 000c79c5 */\n          FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n        }\n      }\n      FUN_00234d00(piVar5);\n      return piVar5;\n    }" else (if_statement "if (sVar1 == 3) {\n      piVar5 = (int *)FUN_003ac4d0(0xa0);\n                    /* try { // try from 000c7627 to 000c762b has its CatchHandler @ 000c79ad */\n      FUN_0023a130(piVar5,param_2,param_3,param_4,param_5,param_6);\n      piVar5[0x21] = 0;\n      *piVar5 = unaff_EDI + 0x516e67;\n      uVar6 = *(uint *)(*param_6 + 0x24);\n      piVar5[0x24] = 0;\n      piVar5[0x25] = 0;\n      piVar5[0x23] = uVar6;\n      uVar6 = uVar6 & 3;\n      piVar5[0x26] = 0;\n      piVar5[0x27] = 0;\n      if (uVar6 != 0) {\n        iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n        if (iVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000c7990 to 000c7994 has its CatchHandler @ 000c79c5 */\n          FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12));\n        }\n        uVar9 = *(uint *)(iVar2 + 8) & 3;\n        if (uVar9 == 0) {\n          *(undefined1 *)(iVar2 + 0xc) = 1;\n          *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n          FUN_00234d00(piVar5);\n          return piVar5;\n        }\n        if (uVar6 != uVar9) {\n          iVar2 = piVar5[1];\n          uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    /* try { // try from 000c76cc to 000c76d0 has its CatchHandler @ 000c79c5 */\n          FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n        }\n      }\n      FUN_00234d00(piVar5);\n      return piVar5;\n    }" if (parenthesized_expression "(sVar1 == 3)" ( (binary_expression "sVar1 == 3" identifier == number_literal) )) (compound_statement "{\n      piVar5 = (int *)FUN_003ac4d0(0xa0);\n                    /* try { // try from 000c7627 to 000c762b has its CatchHandler @ 000c79ad */\n      FUN_0023a130(piVar5,param_2,param_3,param_4,param_5,param_6);\n      piVar5[0x21] = 0;\n      *piVar5 = unaff_EDI + 0x516e67;\n      uVar6 = *(uint *)(*param_6 + 0x24);\n      piVar5[0x24] = 0;\n      piVar5[0x25] = 0;\n      piVar5[0x23] = uVar6;\n      uVar6 = uVar6 & 3;\n      piVar5[0x26] = 0;\n      piVar5[0x27] = 0;\n      if (uVar6 != 0) {\n        iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n        if (iVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000c7990 to 000c7994 has its CatchHandler @ 000c79c5 */\n          FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12));\n        }\n        uVar9 = *(uint *)(iVar2 + 8) & 3;\n        if (uVar9 == 0) {\n          *(undefined1 *)(iVar2 + 0xc) = 1;\n          *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n          FUN_00234d00(piVar5);\n          return piVar5;\n        }\n        if (uVar6 != uVar9) {\n          iVar2 = piVar5[1];\n          uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    /* try { // try from 000c76cc to 000c76d0 has its CatchHandler @ 000c79c5 */\n          FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n        }\n      }\n      FUN_00234d00(piVar5);\n      return piVar5;\n    }" { (expression_statement "piVar5 = (int *)FUN_003ac4d0(0xa0);" (assignment_expression "piVar5 = (int *)FUN_003ac4d0(0xa0)" identifier = (cast_expression "(int *)FUN_003ac4d0(0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_003ac4d0(0xa0)" identifier (argument_list "(0xa0)" ( number_literal ))))) ;) comment (expression_statement "FUN_0023a130(piVar5,param_2,param_3,param_4,param_5,param_6);" (call_expression "FUN_0023a130(piVar5,param_2,param_3,param_4,param_5,param_6)" identifier (argument_list "(piVar5,param_2,param_3,param_4,param_5,param_6)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "piVar5[0x21] = 0;" (assignment_expression "piVar5[0x21] = 0" (subscript_expression "piVar5[0x21]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*piVar5 = unaff_EDI + 0x516e67;" (assignment_expression "*piVar5 = unaff_EDI + 0x516e67" (pointer_expression "*piVar5" * identifier) = (binary_expression "unaff_EDI + 0x516e67" identifier + number_literal)) ;) (expression_statement "uVar6 = *(uint *)(*param_6 + 0x24);" (assignment_expression "uVar6 = *(uint *)(*param_6 + 0x24)" identifier = (pointer_expression "*(uint *)(*param_6 + 0x24)" * (cast_expression "(uint *)(*param_6 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_6 + 0x24)" ( (binary_expression "*param_6 + 0x24" (pointer_expression "*param_6" * identifier) + number_literal) ))))) ;) (expression_statement "piVar5[0x24] = 0;" (assignment_expression "piVar5[0x24] = 0" (subscript_expression "piVar5[0x24]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x25] = 0;" (assignment_expression "piVar5[0x25] = 0" (subscript_expression "piVar5[0x25]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x23] = uVar6;" (assignment_expression "piVar5[0x23] = uVar6" (subscript_expression "piVar5[0x23]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar6 = uVar6 & 3;" (assignment_expression "uVar6 = uVar6 & 3" identifier = (binary_expression "uVar6 & 3" identifier & number_literal)) ;) (expression_statement "piVar5[0x26] = 0;" (assignment_expression "piVar5[0x26] = 0" (subscript_expression "piVar5[0x26]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x27] = 0;" (assignment_expression "piVar5[0x27] = 0" (subscript_expression "piVar5[0x27]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (uVar6 != 0) {\n        iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n        if (iVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000c7990 to 000c7994 has its CatchHandler @ 000c79c5 */\n          FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12));\n        }\n        uVar9 = *(uint *)(iVar2 + 8) & 3;\n        if (uVar9 == 0) {\n          *(undefined1 *)(iVar2 + 0xc) = 1;\n          *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n          FUN_00234d00(piVar5);\n          return piVar5;\n        }\n        if (uVar6 != uVar9) {\n          iVar2 = piVar5[1];\n          uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    /* try { // try from 000c76cc to 000c76d0 has its CatchHandler @ 000c79c5 */\n          FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n        }\n      }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n        if (iVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000c7990 to 000c7994 has its CatchHandler @ 000c79c5 */\n          FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12));\n        }\n        uVar9 = *(uint *)(iVar2 + 8) & 3;\n        if (uVar9 == 0) {\n          *(undefined1 *)(iVar2 + 0xc) = 1;\n          *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n          FUN_00234d00(piVar5);\n          return piVar5;\n        }\n        if (uVar6 != uVar9) {\n          iVar2 = piVar5[1];\n          uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    /* try { // try from 000c76cc to 000c76d0 has its CatchHandler @ 000c79c5 */\n          FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n        }\n      }" { (expression_statement "iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);" (assignment_expression "iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc)" identifier = (pointer_expression "*(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc)" * (cast_expression "(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc)" ( (binary_expression "*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc" (pointer_expression "*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12)" * (cast_expression "(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(BYTE_ARRAY_005231ed + unaff_EDI + 0x12)" ( (binary_expression "BYTE_ARRAY_005231ed + unaff_EDI + 0x12" (binary_expression "BYTE_ARRAY_005231ed + unaff_EDI" identifier + identifier) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (iVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000c7990 to 000c7994 has its CatchHandler @ 000c79c5 */\n          FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12));\n        }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000c7990 to 000c7994 has its CatchHandler @ 000c79c5 */\n          FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12));\n        }" { comment comment (expression_statement "FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12));" (call_expression "FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12))" identifier (argument_list "(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12))" ( (binary_expression "unaff_EDI + 0x380ca4" identifier + number_literal) , number_literal , (binary_expression "&UNK_0039d327 + unaff_EDI" (pointer_expression "&UNK_0039d327" & identifier) + identifier) , (pointer_expression "*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12)" * (cast_expression "(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(BYTE_ARRAY_005231ed + unaff_EDI + 0x12)" ( (binary_expression "BYTE_ARRAY_005231ed + unaff_EDI + 0x12" (binary_expression "BYTE_ARRAY_005231ed + unaff_EDI" identifier + identifier) + number_literal) )))) ))) ;) })) (expression_statement "uVar9 = *(uint *)(iVar2 + 8) & 3;" (assignment_expression "uVar9 = *(uint *)(iVar2 + 8) & 3" identifier = (binary_expression "*(uint *)(iVar2 + 8) & 3" (pointer_expression "*(uint *)(iVar2 + 8)" * (cast_expression "(uint *)(iVar2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (uVar9 == 0) {\n          *(undefined1 *)(iVar2 + 0xc) = 1;\n          *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n          FUN_00234d00(piVar5);\n          return piVar5;\n        }" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (compound_statement "{\n          *(undefined1 *)(iVar2 + 0xc) = 1;\n          *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n          FUN_00234d00(piVar5);\n          return piVar5;\n        }" { (expression_statement "*(undefined1 *)(iVar2 + 0xc) = 1;" (assignment_expression "*(undefined1 *)(iVar2 + 0xc) = 1" (pointer_expression "*(undefined1 *)(iVar2 + 0xc)" * (cast_expression "(undefined1 *)(iVar2 + 0xc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;" (assignment_expression "*(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6" (pointer_expression "*(uint *)(iVar2 + 8)" * (cast_expression "(uint *)(iVar2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar2 + 8) & 0xfffffffc | uVar6" (binary_expression "*(uint *)(iVar2 + 8) & 0xfffffffc" (pointer_expression "*(uint *)(iVar2 + 8)" * (cast_expression "(uint *)(iVar2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) & number_literal) | identifier)) ;) (expression_statement "FUN_00234d00(piVar5);" (call_expression "FUN_00234d00(piVar5)" identifier (argument_list "(piVar5)" ( identifier ))) ;) (return_statement "return piVar5;" return identifier ;) })) (if_statement "if (uVar6 != uVar9) {\n          iVar2 = piVar5[1];\n          uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    /* try { // try from 000c76cc to 000c76d0 has its CatchHandler @ 000c79c5 */\n          FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n        }" if (parenthesized_expression "(uVar6 != uVar9)" ( (binary_expression "uVar6 != uVar9" identifier != identifier) )) (compound_statement "{\n          iVar2 = piVar5[1];\n          uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    /* try { // try from 000c76cc to 000c76d0 has its CatchHandler @ 000c79c5 */\n          FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n        }" { (expression_statement "iVar2 = piVar5[1];" (assignment_expression "iVar2 = piVar5[1]" identifier = (subscript_expression "piVar5[1]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = gettext(&UNK_0039f4af + unaff_EDI);" (assignment_expression "uVar7 = gettext(&UNK_0039f4af + unaff_EDI)" identifier = (call_expression "gettext(&UNK_0039f4af + unaff_EDI)" identifier (argument_list "(&UNK_0039f4af + unaff_EDI)" ( (binary_expression "&UNK_0039f4af + unaff_EDI" (pointer_expression "&UNK_0039f4af" & identifier) + identifier) )))) ;) comment (expression_statement "FUN_0023b810(uVar7,iVar2,uVar6,uVar9);" (call_expression "FUN_0023b810(uVar7,iVar2,uVar6,uVar9)" identifier (argument_list "(uVar7,iVar2,uVar6,uVar9)" ( identifier , identifier , identifier , identifier ))) ;) })) })) (expression_statement "FUN_00234d00(piVar5);" (call_expression "FUN_00234d00(piVar5)" identifier (argument_list "(piVar5)" ( identifier ))) ;) (return_statement "return piVar5;" return identifier ;) })))) (expression_statement "uVar7 = *param_2;" (assignment_expression "uVar7 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "uVar8 = gettext(&UNK_0039f517 + unaff_EDI);" (assignment_expression "uVar8 = gettext(&UNK_0039f517 + unaff_EDI)" identifier = (call_expression "gettext(&UNK_0039f517 + unaff_EDI)" identifier (argument_list "(&UNK_0039f517 + unaff_EDI)" ( (binary_expression "&UNK_0039f517 + unaff_EDI" (pointer_expression "&UNK_0039f517" & identifier) + identifier) )))) ;) (expression_statement "FUN_0023b810(uVar8,uVar7,sVar1);" (call_expression "FUN_0023b810(uVar8,uVar7,sVar1)" identifier (argument_list "(uVar8,uVar7,sVar1)" ( identifier , identifier , identifier ))) ;) (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (labeled_statement "LAB_000c775c:\n  piVar5 = (int *)FUN_003ac4d0(0x1c0);" statement_identifier : (expression_statement "piVar5 = (int *)FUN_003ac4d0(0x1c0);" (assignment_expression "piVar5 = (int *)FUN_003ac4d0(0x1c0)" identifier = (cast_expression "(int *)FUN_003ac4d0(0x1c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_003ac4d0(0x1c0)" identifier (argument_list "(0x1c0)" ( number_literal ))))) ;)) comment (expression_statement "FUN_002a0e60(piVar5,param_2,param_3,param_4,param_5,param_6);" (call_expression "FUN_002a0e60(piVar5,param_2,param_3,param_4,param_5,param_6)" identifier (argument_list "(piVar5,param_2,param_3,param_4,param_5,param_6)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "piVar5[0x50] = 0;" (assignment_expression "piVar5[0x50] = 0" (subscript_expression "piVar5[0x50]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*piVar5 = unaff_EDI + 0x516d5b;" (assignment_expression "*piVar5 = unaff_EDI + 0x516d5b" (pointer_expression "*piVar5" * identifier) = (binary_expression "unaff_EDI + 0x516d5b" identifier + number_literal)) ;) (expression_statement "iVar2 = *(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e);" (assignment_expression "iVar2 = *(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e)" identifier = (pointer_expression "*(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e)" * (cast_expression "(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e)" ( (binary_expression "BYTE_ARRAY_005235ad + unaff_EDI + 0x1e" (binary_expression "BYTE_ARRAY_005235ad + unaff_EDI" identifier + identifier) + number_literal) ))))) ;) (expression_statement "piVar5[0x51] = 0;" (assignment_expression "piVar5[0x51] = 0" (subscript_expression "piVar5[0x51]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x4f] = iVar2;" (assignment_expression "piVar5[0x4f] = iVar2" (subscript_expression "piVar5[0x4f]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar5[0x52] = 0;" (assignment_expression "piVar5[0x52] = 0" (subscript_expression "piVar5[0x52]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar3 = *param_6;" (assignment_expression "iVar3 = *param_6" identifier = (pointer_expression "*param_6" * identifier)) ;) (expression_statement "*(undefined2 *)(piVar5 + 0x53) = 0;" (assignment_expression "*(undefined2 *)(piVar5 + 0x53) = 0" (pointer_expression "*(undefined2 *)(piVar5 + 0x53)" * (cast_expression "(undefined2 *)(piVar5 + 0x53)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 0x53)" ( (binary_expression "piVar5 + 0x53" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e) = iVar2 + 1;" (assignment_expression "*(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e) = iVar2 + 1" (pointer_expression "*(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e)" * (cast_expression "(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e)" ( (binary_expression "BYTE_ARRAY_005235ad + unaff_EDI + 0x1e" (binary_expression "BYTE_ARRAY_005235ad + unaff_EDI" identifier + identifier) + number_literal) )))) = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) (expression_statement "uVar6 = *(uint *)(iVar3 + 0x24);" (assignment_expression "uVar6 = *(uint *)(iVar3 + 0x24)" identifier = (pointer_expression "*(uint *)(iVar3 + 0x24)" * (cast_expression "(uint *)(iVar3 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x24)" ( (binary_expression "iVar3 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "piVar5[0x55] = 0;" (assignment_expression "piVar5[0x55] = 0" (subscript_expression "piVar5[0x55]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x56] = 0;" (assignment_expression "piVar5[0x56] = 0" (subscript_expression "piVar5[0x56]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x54] = uVar6;" (assignment_expression "piVar5[0x54] = uVar6" (subscript_expression "piVar5[0x54]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar5[0x57] = 0;" (assignment_expression "piVar5[0x57] = 0" (subscript_expression "piVar5[0x57]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x58] = 0;" (assignment_expression "piVar5[0x58] = 0" (subscript_expression "piVar5[0x58]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x59] = 0;" (assignment_expression "piVar5[0x59] = 0" (subscript_expression "piVar5[0x59]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x5a] = 0;" (assignment_expression "piVar5[0x5a] = 0" (subscript_expression "piVar5[0x5a]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x5b] = 0;" (assignment_expression "piVar5[0x5b] = 0" (subscript_expression "piVar5[0x5b]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x5c] = 0;" (assignment_expression "piVar5[0x5c] = 0" (subscript_expression "piVar5[0x5c]" identifier [ number_literal ]) = number_literal) ;) (do_statement "do {\n    *(undefined4 *)((int)piVar5 + uVar9 + 0x174) = 0;\n    uVar9 = uVar9 + 4;\n  } while (uVar9 < 0x1c);" do (compound_statement "{\n    *(undefined4 *)((int)piVar5 + uVar9 + 0x174) = 0;\n    uVar9 = uVar9 + 4;\n  }" { (expression_statement "*(undefined4 *)((int)piVar5 + uVar9 + 0x174) = 0;" (assignment_expression "*(undefined4 *)((int)piVar5 + uVar9 + 0x174) = 0" (pointer_expression "*(undefined4 *)((int)piVar5 + uVar9 + 0x174)" * (cast_expression "(undefined4 *)((int)piVar5 + uVar9 + 0x174)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar5 + uVar9 + 0x174)" ( (binary_expression "(int)piVar5 + uVar9 + 0x174" (binary_expression "(int)piVar5 + uVar9" (cast_expression "(int)piVar5" ( (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 "uVar6 = uVar6 & 3;" (assignment_expression "uVar6 = uVar6 & 3" identifier = (binary_expression "uVar6 & 3" identifier & number_literal)) ;) (expression_statement "piVar5[0x5e] = 1;" (assignment_expression "piVar5[0x5e] = 1" (subscript_expression "piVar5[0x5e]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x5d] = (int)(piVar5 + 99);" (assignment_expression "piVar5[0x5d] = (int)(piVar5 + 99)" (subscript_expression "piVar5[0x5d]" identifier [ number_literal ]) = (cast_expression "(int)(piVar5 + 99)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar5 + 99)" ( (binary_expression "piVar5 + 99" identifier + number_literal) )))) ;) (expression_statement "piVar5[0x5f] = 0;" (assignment_expression "piVar5[0x5f] = 0" (subscript_expression "piVar5[0x5f]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x60] = 0;" (assignment_expression "piVar5[0x60] = 0" (subscript_expression "piVar5[0x60]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x61] = 0x3f800000;" (assignment_expression "piVar5[0x61] = 0x3f800000" (subscript_expression "piVar5[0x61]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x62] = 0;" (assignment_expression "piVar5[0x62] = 0" (subscript_expression "piVar5[0x62]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[99] = 0;" (assignment_expression "piVar5[99] = 0" (subscript_expression "piVar5[99]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[100] = 0;" (assignment_expression "piVar5[100] = 0" (subscript_expression "piVar5[100]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x65] = 0;" (assignment_expression "piVar5[0x65] = 0" (subscript_expression "piVar5[0x65]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x66] = 0;" (assignment_expression "piVar5[0x66] = 0" (subscript_expression "piVar5[0x66]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x67] = 0;" (assignment_expression "piVar5[0x67] = 0" (subscript_expression "piVar5[0x67]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x68] = 0;" (assignment_expression "piVar5[0x68] = 0" (subscript_expression "piVar5[0x68]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x69] = 0;" (assignment_expression "piVar5[0x69] = 0" (subscript_expression "piVar5[0x69]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x6a] = 0;" (assignment_expression "piVar5[0x6a] = 0" (subscript_expression "piVar5[0x6a]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x6b] = 0;" (assignment_expression "piVar5[0x6b] = 0" (subscript_expression "piVar5[0x6b]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x6c] = 0;" (assignment_expression "piVar5[0x6c] = 0" (subscript_expression "piVar5[0x6c]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x6d] = 0;" (assignment_expression "piVar5[0x6d] = 0" (subscript_expression "piVar5[0x6d]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x6e] = 0;" (assignment_expression "piVar5[0x6e] = 0" (subscript_expression "piVar5[0x6e]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x6f] = 0;" (assignment_expression "piVar5[0x6f] = 0" (subscript_expression "piVar5[0x6f]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (uVar6 != 0) {\n    iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n    if (iVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000c79a8 to 000c79ac has its CatchHandler @ 000c79b5 */\n      FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,uVar6);\n    }\n    uVar9 = *(uint *)(iVar2 + 8) & 3;\n    if (uVar9 == 0) {\n      *(undefined1 *)(iVar2 + 0xc) = 1;\n      *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n    }\n    else if (uVar6 != uVar9) {\n      iVar2 = piVar5[1];\n      uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    /* try { // try from 000c794f to 000c7953 has its CatchHandler @ 000c79b5 */\n      FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n    }\n  }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n    if (iVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000c79a8 to 000c79ac has its CatchHandler @ 000c79b5 */\n      FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,uVar6);\n    }\n    uVar9 = *(uint *)(iVar2 + 8) & 3;\n    if (uVar9 == 0) {\n      *(undefined1 *)(iVar2 + 0xc) = 1;\n      *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n    }\n    else if (uVar6 != uVar9) {\n      iVar2 = piVar5[1];\n      uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    /* try { // try from 000c794f to 000c7953 has its CatchHandler @ 000c79b5 */\n      FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n    }\n  }" { (expression_statement "iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);" (assignment_expression "iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc)" identifier = (pointer_expression "*(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc)" * (cast_expression "(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc)" ( (binary_expression "*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc" (pointer_expression "*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12)" * (cast_expression "(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(BYTE_ARRAY_005231ed + unaff_EDI + 0x12)" ( (binary_expression "BYTE_ARRAY_005231ed + unaff_EDI + 0x12" (binary_expression "BYTE_ARRAY_005231ed + unaff_EDI" identifier + identifier) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (iVar2 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000c79a8 to 000c79ac has its CatchHandler @ 000c79b5 */\n      FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,uVar6);\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000c79a8 to 000c79ac has its CatchHandler @ 000c79b5 */\n      FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,uVar6);\n    }" { comment comment (expression_statement "FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,uVar6);" (call_expression "FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,uVar6)" identifier (argument_list "(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,uVar6)" ( (binary_expression "unaff_EDI + 0x380ca4" identifier + number_literal) , number_literal , (binary_expression "&UNK_0039d327 + unaff_EDI" (pointer_expression "&UNK_0039d327" & identifier) + identifier) , identifier ))) ;) })) (expression_statement "uVar9 = *(uint *)(iVar2 + 8) & 3;" (assignment_expression "uVar9 = *(uint *)(iVar2 + 8) & 3" identifier = (binary_expression "*(uint *)(iVar2 + 8) & 3" (pointer_expression "*(uint *)(iVar2 + 8)" * (cast_expression "(uint *)(iVar2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (uVar9 == 0) {\n      *(undefined1 *)(iVar2 + 0xc) = 1;\n      *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n    }\n    else if (uVar6 != uVar9) {\n      iVar2 = piVar5[1];\n      uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    /* try { // try from 000c794f to 000c7953 has its CatchHandler @ 000c79b5 */\n      FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n    }" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (compound_statement "{\n      *(undefined1 *)(iVar2 + 0xc) = 1;\n      *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n    }" { (expression_statement "*(undefined1 *)(iVar2 + 0xc) = 1;" (assignment_expression "*(undefined1 *)(iVar2 + 0xc) = 1" (pointer_expression "*(undefined1 *)(iVar2 + 0xc)" * (cast_expression "(undefined1 *)(iVar2 + 0xc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;" (assignment_expression "*(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6" (pointer_expression "*(uint *)(iVar2 + 8)" * (cast_expression "(uint *)(iVar2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar2 + 8) & 0xfffffffc | uVar6" (binary_expression "*(uint *)(iVar2 + 8) & 0xfffffffc" (pointer_expression "*(uint *)(iVar2 + 8)" * (cast_expression "(uint *)(iVar2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) & number_literal) | identifier)) ;) }) (else_clause "else if (uVar6 != uVar9) {\n      iVar2 = piVar5[1];\n      uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    /* try { // try from 000c794f to 000c7953 has its CatchHandler @ 000c79b5 */\n      FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n    }" else (if_statement "if (uVar6 != uVar9) {\n      iVar2 = piVar5[1];\n      uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    /* try { // try from 000c794f to 000c7953 has its CatchHandler @ 000c79b5 */\n      FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n    }" if (parenthesized_expression "(uVar6 != uVar9)" ( (binary_expression "uVar6 != uVar9" identifier != identifier) )) (compound_statement "{\n      iVar2 = piVar5[1];\n      uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    /* try { // try from 000c794f to 000c7953 has its CatchHandler @ 000c79b5 */\n      FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n    }" { (expression_statement "iVar2 = piVar5[1];" (assignment_expression "iVar2 = piVar5[1]" identifier = (subscript_expression "piVar5[1]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = gettext(&UNK_0039f4af + unaff_EDI);" (assignment_expression "uVar7 = gettext(&UNK_0039f4af + unaff_EDI)" identifier = (call_expression "gettext(&UNK_0039f4af + unaff_EDI)" identifier (argument_list "(&UNK_0039f4af + unaff_EDI)" ( (binary_expression "&UNK_0039f4af + unaff_EDI" (pointer_expression "&UNK_0039f4af" & identifier) + identifier) )))) ;) comment (expression_statement "FUN_0023b810(uVar7,iVar2,uVar6,uVar9);" (call_expression "FUN_0023b810(uVar7,iVar2,uVar6,uVar9)" identifier (argument_list "(uVar7,iVar2,uVar6,uVar9)" ( identifier , identifier , identifier , identifier ))) ;) })))) })) (expression_statement "FUN_002945e0(piVar5);" (call_expression "FUN_002945e0(piVar5)" identifier (argument_list "(piVar5)" ( identifier ))) ;) (return_statement "return piVar5;" return identifier ;) })))
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original prototype: Object * do_make_elf_object(Target_powerpc<32,_false> * this, string *\n   name, Input_file * input_file, off_t offset, Ehdr<32,_false> * ehdr) */\n\nObject * __thiscall\nanon_unknown.dwarf_6462d4::Target_powerpc<32,_false>::do_make_elf_object\n          (Target_powerpc<32,_false> *this,string *name,Input_file *input_file,off_t offset,\n          Ehdr<32,_false> *ehdr)\n\n{\n  int iVar1;\n  pointer pcVar2;\n  _func_int_varargs **pp_Var3;\n  Ehdr_data<32> *pEVar4;\n  bool bVar5;\n  Sized_dynobj<32,_false> *this_00;\n  char *pcVar6;\n  Sized_relobj_file<32,_false> *this_01;\n  uint uVar7;\n  uint uVar8;\n  int unaff_EDI;\n  \n  __x86_get_pc_thunk_di();\n  uVar8 = (uint)ehdr->p_->e_type;\n  if (uVar8 != 1) {\n    if (uVar8 == 2) {\n      bVar5 = gold::Input_file::just_symbols(input_file);\n      if (bVar5) goto LAB_000c775c;\n    }\n    else if (uVar8 == 3) {\n      this_00 = (Sized_dynobj<32,_false> *)operator_new(0xa0);\n                    /* try { // try from 000c7627 to 000c762b has its CatchHandler @ 000c79ad */\n      gold::Sized_dynobj<32,_false>::Sized_dynobj(this_00,name,input_file,offset,ehdr);\n      this_00[1].super_Dynobj.super_Object._vptr_Object = (_func_int_varargs **)0x0;\n      (this_00->super_Dynobj).super_Object._vptr_Object =\n           (_func_int_varargs **)(unaff_EDI + 0x516e67);\n      uVar8 = ehdr->p_->e_flags;\n      this_00[1].super_Dynobj.super_Object.name_.field_2._M_allocated_capacity = 0;\n      *(undefined4 *)((int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 4) = 0;\n      this_00[1].super_Dynobj.super_Object.name_._M_string_length = uVar8;\n      uVar8 = uVar8 & 3;\n      *(undefined4 *)((int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 8) = 0;\n      *(undefined4 *)((int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 0xc) = 0;\n      if (uVar8 != 0) {\n        iVar1 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n        if (iVar1 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000c7990 to 000c7994 has its CatchHandler @ 000c79c5 */\n          gold::do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x380ca4),0x73,(char *)(unaff_EDI + 0x39d327));\n        }\n        uVar7 = *(uint *)(iVar1 + 8) & 3;\n        if (uVar7 == 0) {\n          *(undefined1 *)(iVar1 + 0xc) = 1;\n          *(uint *)(iVar1 + 8) = *(uint *)(iVar1 + 8) & 0xfffffffc | uVar8;\n          gold::Sized_dynobj<32,_false>::setup(this_00);\n          return (Object *)this_00;\n        }\n        if (uVar8 != uVar7) {\n          pcVar2 = (this_00->super_Dynobj).super_Object.name_._M_dataplus._M_p;\n          pcVar6 = (char *)gettext(unaff_EDI + 0x39f4af);\n                    /* try { // try from 000c76cc to 000c76d0 has its CatchHandler @ 000c79c5 */\n          gold::gold_error(pcVar6,pcVar2,uVar8,uVar7);\n        }\n      }\n      gold::Sized_dynobj<32,_false>::setup(this_00);\n      return (Object *)this_00;\n    }\n    pcVar2 = (name->_M_dataplus)._M_p;\n    pcVar6 = (char *)gettext(unaff_EDI + 0x39f517);\n    gold::gold_error(pcVar6,pcVar2,uVar8);\n    return (Object *)0x0;\n  }\nLAB_000c775c:\n  this_01 = (Sized_relobj_file<32,_false> *)operator_new(0x1c0);\n                    /* try { // try from 000c777f to 000c7783 has its CatchHandler @ 000c79bd */\n  gold::Sized_relobj_file<32,_false>::Sized_relobj_file(this_01,name,input_file,offset,ehdr);\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.name_._M_dataplus._M_p =\n       (pointer)0x0;\n  (this_01->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object =\n       (_func_int_varargs **)(unaff_EDI + 0x516d5b);\n  pp_Var3 = *(_func_int_varargs ***)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e);\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.name_._M_string_length = 0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object._vptr_Object = pp_Var3;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.name_.field_2.\n  _M_allocated_capacity = 0;\n  pEVar4 = ehdr->p_;\n  *(undefined2 *)\n   ((int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.name_.field_2 + 4) = 0;\n  *(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e) = (int)pp_Var3 + 1;\n  uVar8 = pEVar4->e_flags;\n  uVar7 = 0;\n  *(undefined4 *)\n   ((int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.name_.field_2 + 0xc) =\n       0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.input_file_ = (Input_file *)0x0\n  ;\n  *(uint *)((int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.name_.field_2 +\n           8) = uVar8;\n  *(undefined4 *)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_ = 0;\n  *(undefined4 *)\n   ((int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_ + 4) = 0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.shnum_ = 0;\n  *(undefined4 *)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.field_0x2c = 0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.xindex_ = (Xindex *)0x0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.compressed_sections_ =\n       (Compressed_section_map *)0x0;\n  do {\n    *(undefined4 *)\n     ((int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.output_sections_.\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_start + uVar7) = 0;\n    uVar7 = uVar7 + 4;\n  } while (uVar7 < 0x1c);\n  uVar8 = uVar8 & 3;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n  _M_finish = (pointer)0x1;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl._M_start\n       = (pointer)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.rd_;\n  this_01[1].super_Sized_relobj<32,_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_01[1].super_Sized_relobj<32,_false>.super_Relobj.map_to_relocatable_relocs_ =\n       (vector<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_> *)0x0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.object_merge_map_ =\n       (Object_merge_map *)0x3f800000;\n  *(undefined4 *)\n   &this_01[1].super_Sized_relobj<32,_false>.super_Relobj.relocs_must_follow_section_writes_ = 0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.rd_ = (Read_relocs_data *)0x0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.sd_ = (Symbols_data *)0x0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.reloc_counts_ = (uint *)0x0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.reloc_bases_ = (uint *)0x0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.first_dyn_reloc_ = 0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.dyn_reloc_count_ = 0;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_buckets = (__bucket_type *)0x0\n  ;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_bucket_count = 0;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_before_begin._M_nxt =\n       (_Hash_node_base *)0x0;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_element_count = 0;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_rehash_policy.\n  _M_max_load_factor = 0.0;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_rehash_policy._M_next_resize =\n       0;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_single_bucket =\n       (__bucket_type)0x0;\n  if (uVar8 != 0) {\n    iVar1 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n    if (iVar1 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000c79a8 to 000c79ac has its CatchHandler @ 000c79b5 */\n      gold::do_gold_unreachable((char *)(unaff_EDI + 0x380ca4),0x73,(char *)(unaff_EDI + 0x39d327));\n    }\n    uVar7 = *(uint *)(iVar1 + 8) & 3;\n    if (uVar7 == 0) {\n      *(undefined1 *)(iVar1 + 0xc) = 1;\n      *(uint *)(iVar1 + 8) = *(uint *)(iVar1 + 8) & 0xfffffffc | uVar8;\n    }\n    else if (uVar8 != uVar7) {\n      pcVar2 = (this_01->super_Sized_relobj<32,_false>).super_Relobj.super_Object.name_._M_dataplus.\n               _M_p;\n      pcVar6 = (char *)gettext(unaff_EDI + 0x39f4af);\n                    /* try { // try from 000c794f to 000c7953 has its CatchHandler @ 000c79b5 */\n      gold::gold_error(pcVar6,pcVar2,uVar8,uVar7);\n    }\n  }\n  gold::Sized_relobj_file<32,_false>::do_setup(this_01);\n  return (Object *)this_01;\n}\n\n" comment comment comment (ERROR "Object * __thiscall\nanon_unknown.dwarf_6462d4::Target_powerpc<32,_false>::do_make_elf_object\n          (Target_powerpc<32,_false> *this,string *name,Input_file *input_file,off_t offset,\n          Ehdr<32,_false> *ehdr)" (binary_expression "Object * __thiscall\nanon_unknown.dwarf_6462d4::Target_powerpc<32,_false>::do_make_elf_object\n          (Target_powerpc<32,_false> *this,string *name,Input_file *input_file,off_t offset,\n          Ehdr<32,_false> *ehdr)" (binary_expression "Object * __thiscall\nanon_unknown.dwarf_6462d4::Target_powerpc<32" (binary_expression "Object * __thiscall\nanon_unknown.dwarf_6462d4" identifier * (ERROR "__thiscall" identifier) (field_expression "anon_unknown.dwarf_6462d4" identifier . field_identifier)) (ERROR "::Target_powerpc" : : identifier) < number_literal) (ERROR ",_false" , identifier) > (ERROR "::" : :) (call_expression "do_make_elf_object\n          (Target_powerpc<32,_false> *this,string *name,Input_file *input_file,off_t offset,\n          Ehdr<32,_false> *ehdr)" identifier (argument_list "(Target_powerpc<32,_false> *this,string *name,Input_file *input_file,off_t offset,\n          Ehdr<32,_false> *ehdr)" ( (binary_expression "Target_powerpc<32" identifier < number_literal) , (binary_expression "_false> *this" identifier > (pointer_expression "*this" * identifier)) , (binary_expression "string *name" identifier * identifier) , (binary_expression "Input_file *input_file" identifier * identifier) , (ERROR "off_t" identifier) identifier , (binary_expression "Ehdr<32" identifier < number_literal) , (binary_expression "_false> *ehdr" identifier > (pointer_expression "*ehdr" * identifier)) ))))) (compound_statement "{\n  int iVar1;\n  pointer pcVar2;\n  _func_int_varargs **pp_Var3;\n  Ehdr_data<32> *pEVar4;\n  bool bVar5;\n  Sized_dynobj<32,_false> *this_00;\n  char *pcVar6;\n  Sized_relobj_file<32,_false> *this_01;\n  uint uVar7;\n  uint uVar8;\n  int unaff_EDI;\n  \n  __x86_get_pc_thunk_di();\n  uVar8 = (uint)ehdr->p_->e_type;\n  if (uVar8 != 1) {\n    if (uVar8 == 2) {\n      bVar5 = gold::Input_file::just_symbols(input_file);\n      if (bVar5) goto LAB_000c775c;\n    }\n    else if (uVar8 == 3) {\n      this_00 = (Sized_dynobj<32,_false> *)operator_new(0xa0);\n                    /* try { // try from 000c7627 to 000c762b has its CatchHandler @ 000c79ad */\n      gold::Sized_dynobj<32,_false>::Sized_dynobj(this_00,name,input_file,offset,ehdr);\n      this_00[1].super_Dynobj.super_Object._vptr_Object = (_func_int_varargs **)0x0;\n      (this_00->super_Dynobj).super_Object._vptr_Object =\n           (_func_int_varargs **)(unaff_EDI + 0x516e67);\n      uVar8 = ehdr->p_->e_flags;\n      this_00[1].super_Dynobj.super_Object.name_.field_2._M_allocated_capacity = 0;\n      *(undefined4 *)((int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 4) = 0;\n      this_00[1].super_Dynobj.super_Object.name_._M_string_length = uVar8;\n      uVar8 = uVar8 & 3;\n      *(undefined4 *)((int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 8) = 0;\n      *(undefined4 *)((int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 0xc) = 0;\n      if (uVar8 != 0) {\n        iVar1 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n        if (iVar1 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000c7990 to 000c7994 has its CatchHandler @ 000c79c5 */\n          gold::do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x380ca4),0x73,(char *)(unaff_EDI + 0x39d327));\n        }\n        uVar7 = *(uint *)(iVar1 + 8) & 3;\n        if (uVar7 == 0) {\n          *(undefined1 *)(iVar1 + 0xc) = 1;\n          *(uint *)(iVar1 + 8) = *(uint *)(iVar1 + 8) & 0xfffffffc | uVar8;\n          gold::Sized_dynobj<32,_false>::setup(this_00);\n          return (Object *)this_00;\n        }\n        if (uVar8 != uVar7) {\n          pcVar2 = (this_00->super_Dynobj).super_Object.name_._M_dataplus._M_p;\n          pcVar6 = (char *)gettext(unaff_EDI + 0x39f4af);\n                    /* try { // try from 000c76cc to 000c76d0 has its CatchHandler @ 000c79c5 */\n          gold::gold_error(pcVar6,pcVar2,uVar8,uVar7);\n        }\n      }\n      gold::Sized_dynobj<32,_false>::setup(this_00);\n      return (Object *)this_00;\n    }\n    pcVar2 = (name->_M_dataplus)._M_p;\n    pcVar6 = (char *)gettext(unaff_EDI + 0x39f517);\n    gold::gold_error(pcVar6,pcVar2,uVar8);\n    return (Object *)0x0;\n  }\nLAB_000c775c:\n  this_01 = (Sized_relobj_file<32,_false> *)operator_new(0x1c0);\n                    /* try { // try from 000c777f to 000c7783 has its CatchHandler @ 000c79bd */\n  gold::Sized_relobj_file<32,_false>::Sized_relobj_file(this_01,name,input_file,offset,ehdr);\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.name_._M_dataplus._M_p =\n       (pointer)0x0;\n  (this_01->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object =\n       (_func_int_varargs **)(unaff_EDI + 0x516d5b);\n  pp_Var3 = *(_func_int_varargs ***)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e);\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.name_._M_string_length = 0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object._vptr_Object = pp_Var3;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.name_.field_2.\n  _M_allocated_capacity = 0;\n  pEVar4 = ehdr->p_;\n  *(undefined2 *)\n   ((int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.name_.field_2 + 4) = 0;\n  *(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e) = (int)pp_Var3 + 1;\n  uVar8 = pEVar4->e_flags;\n  uVar7 = 0;\n  *(undefined4 *)\n   ((int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.name_.field_2 + 0xc) =\n       0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.input_file_ = (Input_file *)0x0\n  ;\n  *(uint *)((int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.name_.field_2 +\n           8) = uVar8;\n  *(undefined4 *)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_ = 0;\n  *(undefined4 *)\n   ((int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_ + 4) = 0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.shnum_ = 0;\n  *(undefined4 *)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.field_0x2c = 0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.xindex_ = (Xindex *)0x0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.compressed_sections_ =\n       (Compressed_section_map *)0x0;\n  do {\n    *(undefined4 *)\n     ((int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.output_sections_.\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_start + uVar7) = 0;\n    uVar7 = uVar7 + 4;\n  } while (uVar7 < 0x1c);\n  uVar8 = uVar8 & 3;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n  _M_finish = (pointer)0x1;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl._M_start\n       = (pointer)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.rd_;\n  this_01[1].super_Sized_relobj<32,_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_01[1].super_Sized_relobj<32,_false>.super_Relobj.map_to_relocatable_relocs_ =\n       (vector<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_> *)0x0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.object_merge_map_ =\n       (Object_merge_map *)0x3f800000;\n  *(undefined4 *)\n   &this_01[1].super_Sized_relobj<32,_false>.super_Relobj.relocs_must_follow_section_writes_ = 0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.rd_ = (Read_relocs_data *)0x0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.sd_ = (Symbols_data *)0x0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.reloc_counts_ = (uint *)0x0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.reloc_bases_ = (uint *)0x0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.first_dyn_reloc_ = 0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.dyn_reloc_count_ = 0;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_buckets = (__bucket_type *)0x0\n  ;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_bucket_count = 0;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_before_begin._M_nxt =\n       (_Hash_node_base *)0x0;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_element_count = 0;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_rehash_policy.\n  _M_max_load_factor = 0.0;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_rehash_policy._M_next_resize =\n       0;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_single_bucket =\n       (__bucket_type)0x0;\n  if (uVar8 != 0) {\n    iVar1 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n    if (iVar1 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000c79a8 to 000c79ac has its CatchHandler @ 000c79b5 */\n      gold::do_gold_unreachable((char *)(unaff_EDI + 0x380ca4),0x73,(char *)(unaff_EDI + 0x39d327));\n    }\n    uVar7 = *(uint *)(iVar1 + 8) & 3;\n    if (uVar7 == 0) {\n      *(undefined1 *)(iVar1 + 0xc) = 1;\n      *(uint *)(iVar1 + 8) = *(uint *)(iVar1 + 8) & 0xfffffffc | uVar8;\n    }\n    else if (uVar8 != uVar7) {\n      pcVar2 = (this_01->super_Sized_relobj<32,_false>).super_Relobj.super_Object.name_._M_dataplus.\n               _M_p;\n      pcVar6 = (char *)gettext(unaff_EDI + 0x39f4af);\n                    /* try { // try from 000c794f to 000c7953 has its CatchHandler @ 000c79b5 */\n      gold::gold_error(pcVar6,pcVar2,uVar8,uVar7);\n    }\n  }\n  gold::Sized_relobj_file<32,_false>::do_setup(this_01);\n  return (Object *)this_01;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "pointer pcVar2;" type_identifier identifier ;) (declaration "_func_int_varargs **pp_Var3;" type_identifier (pointer_declarator "**pp_Var3" * (pointer_declarator "*pp_Var3" * identifier)) ;) (expression_statement "Ehdr_data<32> *pEVar4;" (binary_expression "Ehdr_data<32> *pEVar4" (binary_expression "Ehdr_data<32" identifier < number_literal) > (pointer_expression "*pEVar4" * identifier)) ;) (declaration "bool bVar5;" primitive_type identifier ;) (expression_statement "Sized_dynobj<32,_false> *this_00;" (comma_expression "Sized_dynobj<32,_false> *this_00" (binary_expression "Sized_dynobj<32" identifier < number_literal) , (binary_expression "_false> *this_00" identifier > (pointer_expression "*this_00" * identifier))) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (expression_statement "Sized_relobj_file<32,_false> *this_01;" (comma_expression "Sized_relobj_file<32,_false> *this_01" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false> *this_01" identifier > (pointer_expression "*this_01" * identifier))) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (expression_statement "__x86_get_pc_thunk_di();" (call_expression "__x86_get_pc_thunk_di()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar8 = (uint)ehdr->p_->e_type;" (assignment_expression "uVar8 = (uint)ehdr->p_->e_type" identifier = (cast_expression "(uint)ehdr->p_->e_type" ( (type_descriptor "uint" type_identifier) ) (field_expression "ehdr->p_->e_type" (field_expression "ehdr->p_" identifier -> field_identifier) -> field_identifier))) ;) (if_statement "if (uVar8 != 1) {\n    if (uVar8 == 2) {\n      bVar5 = gold::Input_file::just_symbols(input_file);\n      if (bVar5) goto LAB_000c775c;\n    }\n    else if (uVar8 == 3) {\n      this_00 = (Sized_dynobj<32,_false> *)operator_new(0xa0);\n                    /* try { // try from 000c7627 to 000c762b has its CatchHandler @ 000c79ad */\n      gold::Sized_dynobj<32,_false>::Sized_dynobj(this_00,name,input_file,offset,ehdr);\n      this_00[1].super_Dynobj.super_Object._vptr_Object = (_func_int_varargs **)0x0;\n      (this_00->super_Dynobj).super_Object._vptr_Object =\n           (_func_int_varargs **)(unaff_EDI + 0x516e67);\n      uVar8 = ehdr->p_->e_flags;\n      this_00[1].super_Dynobj.super_Object.name_.field_2._M_allocated_capacity = 0;\n      *(undefined4 *)((int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 4) = 0;\n      this_00[1].super_Dynobj.super_Object.name_._M_string_length = uVar8;\n      uVar8 = uVar8 & 3;\n      *(undefined4 *)((int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 8) = 0;\n      *(undefined4 *)((int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 0xc) = 0;\n      if (uVar8 != 0) {\n        iVar1 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n        if (iVar1 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000c7990 to 000c7994 has its CatchHandler @ 000c79c5 */\n          gold::do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x380ca4),0x73,(char *)(unaff_EDI + 0x39d327));\n        }\n        uVar7 = *(uint *)(iVar1 + 8) & 3;\n        if (uVar7 == 0) {\n          *(undefined1 *)(iVar1 + 0xc) = 1;\n          *(uint *)(iVar1 + 8) = *(uint *)(iVar1 + 8) & 0xfffffffc | uVar8;\n          gold::Sized_dynobj<32,_false>::setup(this_00);\n          return (Object *)this_00;\n        }\n        if (uVar8 != uVar7) {\n          pcVar2 = (this_00->super_Dynobj).super_Object.name_._M_dataplus._M_p;\n          pcVar6 = (char *)gettext(unaff_EDI + 0x39f4af);\n                    /* try { // try from 000c76cc to 000c76d0 has its CatchHandler @ 000c79c5 */\n          gold::gold_error(pcVar6,pcVar2,uVar8,uVar7);\n        }\n      }\n      gold::Sized_dynobj<32,_false>::setup(this_00);\n      return (Object *)this_00;\n    }\n    pcVar2 = (name->_M_dataplus)._M_p;\n    pcVar6 = (char *)gettext(unaff_EDI + 0x39f517);\n    gold::gold_error(pcVar6,pcVar2,uVar8);\n    return (Object *)0x0;\n  }" if (parenthesized_expression "(uVar8 != 1)" ( (binary_expression "uVar8 != 1" identifier != number_literal) )) (compound_statement "{\n    if (uVar8 == 2) {\n      bVar5 = gold::Input_file::just_symbols(input_file);\n      if (bVar5) goto LAB_000c775c;\n    }\n    else if (uVar8 == 3) {\n      this_00 = (Sized_dynobj<32,_false> *)operator_new(0xa0);\n                    /* try { // try from 000c7627 to 000c762b has its CatchHandler @ 000c79ad */\n      gold::Sized_dynobj<32,_false>::Sized_dynobj(this_00,name,input_file,offset,ehdr);\n      this_00[1].super_Dynobj.super_Object._vptr_Object = (_func_int_varargs **)0x0;\n      (this_00->super_Dynobj).super_Object._vptr_Object =\n           (_func_int_varargs **)(unaff_EDI + 0x516e67);\n      uVar8 = ehdr->p_->e_flags;\n      this_00[1].super_Dynobj.super_Object.name_.field_2._M_allocated_capacity = 0;\n      *(undefined4 *)((int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 4) = 0;\n      this_00[1].super_Dynobj.super_Object.name_._M_string_length = uVar8;\n      uVar8 = uVar8 & 3;\n      *(undefined4 *)((int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 8) = 0;\n      *(undefined4 *)((int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 0xc) = 0;\n      if (uVar8 != 0) {\n        iVar1 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n        if (iVar1 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000c7990 to 000c7994 has its CatchHandler @ 000c79c5 */\n          gold::do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x380ca4),0x73,(char *)(unaff_EDI + 0x39d327));\n        }\n        uVar7 = *(uint *)(iVar1 + 8) & 3;\n        if (uVar7 == 0) {\n          *(undefined1 *)(iVar1 + 0xc) = 1;\n          *(uint *)(iVar1 + 8) = *(uint *)(iVar1 + 8) & 0xfffffffc | uVar8;\n          gold::Sized_dynobj<32,_false>::setup(this_00);\n          return (Object *)this_00;\n        }\n        if (uVar8 != uVar7) {\n          pcVar2 = (this_00->super_Dynobj).super_Object.name_._M_dataplus._M_p;\n          pcVar6 = (char *)gettext(unaff_EDI + 0x39f4af);\n                    /* try { // try from 000c76cc to 000c76d0 has its CatchHandler @ 000c79c5 */\n          gold::gold_error(pcVar6,pcVar2,uVar8,uVar7);\n        }\n      }\n      gold::Sized_dynobj<32,_false>::setup(this_00);\n      return (Object *)this_00;\n    }\n    pcVar2 = (name->_M_dataplus)._M_p;\n    pcVar6 = (char *)gettext(unaff_EDI + 0x39f517);\n    gold::gold_error(pcVar6,pcVar2,uVar8);\n    return (Object *)0x0;\n  }" { (if_statement "if (uVar8 == 2) {\n      bVar5 = gold::Input_file::just_symbols(input_file);\n      if (bVar5) goto LAB_000c775c;\n    }\n    else if (uVar8 == 3) {\n      this_00 = (Sized_dynobj<32,_false> *)operator_new(0xa0);\n                    /* try { // try from 000c7627 to 000c762b has its CatchHandler @ 000c79ad */\n      gold::Sized_dynobj<32,_false>::Sized_dynobj(this_00,name,input_file,offset,ehdr);\n      this_00[1].super_Dynobj.super_Object._vptr_Object = (_func_int_varargs **)0x0;\n      (this_00->super_Dynobj).super_Object._vptr_Object =\n           (_func_int_varargs **)(unaff_EDI + 0x516e67);\n      uVar8 = ehdr->p_->e_flags;\n      this_00[1].super_Dynobj.super_Object.name_.field_2._M_allocated_capacity = 0;\n      *(undefined4 *)((int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 4) = 0;\n      this_00[1].super_Dynobj.super_Object.name_._M_string_length = uVar8;\n      uVar8 = uVar8 & 3;\n      *(undefined4 *)((int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 8) = 0;\n      *(undefined4 *)((int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 0xc) = 0;\n      if (uVar8 != 0) {\n        iVar1 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n        if (iVar1 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000c7990 to 000c7994 has its CatchHandler @ 000c79c5 */\n          gold::do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x380ca4),0x73,(char *)(unaff_EDI + 0x39d327));\n        }\n        uVar7 = *(uint *)(iVar1 + 8) & 3;\n        if (uVar7 == 0) {\n          *(undefined1 *)(iVar1 + 0xc) = 1;\n          *(uint *)(iVar1 + 8) = *(uint *)(iVar1 + 8) & 0xfffffffc | uVar8;\n          gold::Sized_dynobj<32,_false>::setup(this_00);\n          return (Object *)this_00;\n        }\n        if (uVar8 != uVar7) {\n          pcVar2 = (this_00->super_Dynobj).super_Object.name_._M_dataplus._M_p;\n          pcVar6 = (char *)gettext(unaff_EDI + 0x39f4af);\n                    /* try { // try from 000c76cc to 000c76d0 has its CatchHandler @ 000c79c5 */\n          gold::gold_error(pcVar6,pcVar2,uVar8,uVar7);\n        }\n      }\n      gold::Sized_dynobj<32,_false>::setup(this_00);\n      return (Object *)this_00;\n    }" if (parenthesized_expression "(uVar8 == 2)" ( (binary_expression "uVar8 == 2" identifier == number_literal) )) (compound_statement "{\n      bVar5 = gold::Input_file::just_symbols(input_file);\n      if (bVar5) goto LAB_000c775c;\n    }" { (ERROR "bVar5 = gold::" (assignment_expression "bVar5 = gold" identifier = identifier) : :) (labeled_statement "Input_file::just_symbols(input_file);" statement_identifier : (ERROR ":" :) (expression_statement "just_symbols(input_file);" (call_expression "just_symbols(input_file)" identifier (argument_list "(input_file)" ( identifier ))) ;)) (if_statement "if (bVar5) goto LAB_000c775c;" if (parenthesized_expression "(bVar5)" ( identifier )) (goto_statement "goto LAB_000c775c;" goto statement_identifier ;)) }) (else_clause "else if (uVar8 == 3) {\n      this_00 = (Sized_dynobj<32,_false> *)operator_new(0xa0);\n                    /* try { // try from 000c7627 to 000c762b has its CatchHandler @ 000c79ad */\n      gold::Sized_dynobj<32,_false>::Sized_dynobj(this_00,name,input_file,offset,ehdr);\n      this_00[1].super_Dynobj.super_Object._vptr_Object = (_func_int_varargs **)0x0;\n      (this_00->super_Dynobj).super_Object._vptr_Object =\n           (_func_int_varargs **)(unaff_EDI + 0x516e67);\n      uVar8 = ehdr->p_->e_flags;\n      this_00[1].super_Dynobj.super_Object.name_.field_2._M_allocated_capacity = 0;\n      *(undefined4 *)((int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 4) = 0;\n      this_00[1].super_Dynobj.super_Object.name_._M_string_length = uVar8;\n      uVar8 = uVar8 & 3;\n      *(undefined4 *)((int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 8) = 0;\n      *(undefined4 *)((int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 0xc) = 0;\n      if (uVar8 != 0) {\n        iVar1 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n        if (iVar1 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000c7990 to 000c7994 has its CatchHandler @ 000c79c5 */\n          gold::do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x380ca4),0x73,(char *)(unaff_EDI + 0x39d327));\n        }\n        uVar7 = *(uint *)(iVar1 + 8) & 3;\n        if (uVar7 == 0) {\n          *(undefined1 *)(iVar1 + 0xc) = 1;\n          *(uint *)(iVar1 + 8) = *(uint *)(iVar1 + 8) & 0xfffffffc | uVar8;\n          gold::Sized_dynobj<32,_false>::setup(this_00);\n          return (Object *)this_00;\n        }\n        if (uVar8 != uVar7) {\n          pcVar2 = (this_00->super_Dynobj).super_Object.name_._M_dataplus._M_p;\n          pcVar6 = (char *)gettext(unaff_EDI + 0x39f4af);\n                    /* try { // try from 000c76cc to 000c76d0 has its CatchHandler @ 000c79c5 */\n          gold::gold_error(pcVar6,pcVar2,uVar8,uVar7);\n        }\n      }\n      gold::Sized_dynobj<32,_false>::setup(this_00);\n      return (Object *)this_00;\n    }" else (if_statement "if (uVar8 == 3) {\n      this_00 = (Sized_dynobj<32,_false> *)operator_new(0xa0);\n                    /* try { // try from 000c7627 to 000c762b has its CatchHandler @ 000c79ad */\n      gold::Sized_dynobj<32,_false>::Sized_dynobj(this_00,name,input_file,offset,ehdr);\n      this_00[1].super_Dynobj.super_Object._vptr_Object = (_func_int_varargs **)0x0;\n      (this_00->super_Dynobj).super_Object._vptr_Object =\n           (_func_int_varargs **)(unaff_EDI + 0x516e67);\n      uVar8 = ehdr->p_->e_flags;\n      this_00[1].super_Dynobj.super_Object.name_.field_2._M_allocated_capacity = 0;\n      *(undefined4 *)((int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 4) = 0;\n      this_00[1].super_Dynobj.super_Object.name_._M_string_length = uVar8;\n      uVar8 = uVar8 & 3;\n      *(undefined4 *)((int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 8) = 0;\n      *(undefined4 *)((int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 0xc) = 0;\n      if (uVar8 != 0) {\n        iVar1 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n        if (iVar1 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000c7990 to 000c7994 has its CatchHandler @ 000c79c5 */\n          gold::do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x380ca4),0x73,(char *)(unaff_EDI + 0x39d327));\n        }\n        uVar7 = *(uint *)(iVar1 + 8) & 3;\n        if (uVar7 == 0) {\n          *(undefined1 *)(iVar1 + 0xc) = 1;\n          *(uint *)(iVar1 + 8) = *(uint *)(iVar1 + 8) & 0xfffffffc | uVar8;\n          gold::Sized_dynobj<32,_false>::setup(this_00);\n          return (Object *)this_00;\n        }\n        if (uVar8 != uVar7) {\n          pcVar2 = (this_00->super_Dynobj).super_Object.name_._M_dataplus._M_p;\n          pcVar6 = (char *)gettext(unaff_EDI + 0x39f4af);\n                    /* try { // try from 000c76cc to 000c76d0 has its CatchHandler @ 000c79c5 */\n          gold::gold_error(pcVar6,pcVar2,uVar8,uVar7);\n        }\n      }\n      gold::Sized_dynobj<32,_false>::setup(this_00);\n      return (Object *)this_00;\n    }" if (parenthesized_expression "(uVar8 == 3)" ( (binary_expression "uVar8 == 3" identifier == number_literal) )) (compound_statement "{\n      this_00 = (Sized_dynobj<32,_false> *)operator_new(0xa0);\n                    /* try { // try from 000c7627 to 000c762b has its CatchHandler @ 000c79ad */\n      gold::Sized_dynobj<32,_false>::Sized_dynobj(this_00,name,input_file,offset,ehdr);\n      this_00[1].super_Dynobj.super_Object._vptr_Object = (_func_int_varargs **)0x0;\n      (this_00->super_Dynobj).super_Object._vptr_Object =\n           (_func_int_varargs **)(unaff_EDI + 0x516e67);\n      uVar8 = ehdr->p_->e_flags;\n      this_00[1].super_Dynobj.super_Object.name_.field_2._M_allocated_capacity = 0;\n      *(undefined4 *)((int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 4) = 0;\n      this_00[1].super_Dynobj.super_Object.name_._M_string_length = uVar8;\n      uVar8 = uVar8 & 3;\n      *(undefined4 *)((int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 8) = 0;\n      *(undefined4 *)((int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 0xc) = 0;\n      if (uVar8 != 0) {\n        iVar1 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n        if (iVar1 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000c7990 to 000c7994 has its CatchHandler @ 000c79c5 */\n          gold::do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x380ca4),0x73,(char *)(unaff_EDI + 0x39d327));\n        }\n        uVar7 = *(uint *)(iVar1 + 8) & 3;\n        if (uVar7 == 0) {\n          *(undefined1 *)(iVar1 + 0xc) = 1;\n          *(uint *)(iVar1 + 8) = *(uint *)(iVar1 + 8) & 0xfffffffc | uVar8;\n          gold::Sized_dynobj<32,_false>::setup(this_00);\n          return (Object *)this_00;\n        }\n        if (uVar8 != uVar7) {\n          pcVar2 = (this_00->super_Dynobj).super_Object.name_._M_dataplus._M_p;\n          pcVar6 = (char *)gettext(unaff_EDI + 0x39f4af);\n                    /* try { // try from 000c76cc to 000c76d0 has its CatchHandler @ 000c79c5 */\n          gold::gold_error(pcVar6,pcVar2,uVar8,uVar7);\n        }\n      }\n      gold::Sized_dynobj<32,_false>::setup(this_00);\n      return (Object *)this_00;\n    }" { (expression_statement "this_00 = (Sized_dynobj<32,_false> *)operator_new(0xa0);" (assignment_expression "this_00 = (Sized_dynobj<32,_false> *)operator_new(0xa0)" identifier = (parenthesized_expression "(Sized_dynobj<32,_false> *)operator_new(0xa0)" ( (comma_expression "Sized_dynobj<32,_false> *)operator_new(0xa0)" (binary_expression "Sized_dynobj<32" identifier < number_literal) , (binary_expression "_false> *)operator_new(0xa0)" identifier > (pointer_expression "*)operator_new(0xa0)" * (ERROR ")" )) (call_expression "operator_new(0xa0)" identifier (argument_list "(0xa0)" ( number_literal )))))) ))) ;) comment (labeled_statement "gold::Sized_dynobj<32,_false>::Sized_dynobj(this_00,name,input_file,offset,ehdr);" statement_identifier : (ERROR ":" :) (expression_statement "Sized_dynobj<32,_false>::Sized_dynobj(this_00,name,input_file,offset,ehdr);" (comma_expression "Sized_dynobj<32,_false>::Sized_dynobj(this_00,name,input_file,offset,ehdr)" (binary_expression "Sized_dynobj<32" identifier < number_literal) , (binary_expression "_false>::Sized_dynobj(this_00,name,input_file,offset,ehdr)" identifier > (ERROR "::" : :) (call_expression "Sized_dynobj(this_00,name,input_file,offset,ehdr)" identifier (argument_list "(this_00,name,input_file,offset,ehdr)" ( identifier , identifier , identifier , identifier , identifier ))))) ;)) (expression_statement "this_00[1].super_Dynobj.super_Object._vptr_Object = (_func_int_varargs **)0x0;" (assignment_expression "this_00[1].super_Dynobj.super_Object._vptr_Object = (_func_int_varargs **)0x0" (field_expression "this_00[1].super_Dynobj.super_Object._vptr_Object" (field_expression "this_00[1].super_Dynobj.super_Object" (field_expression "this_00[1].super_Dynobj" (subscript_expression "this_00[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(_func_int_varargs **)0x0" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "(this_00->super_Dynobj).super_Object._vptr_Object =\n           (_func_int_varargs **)(unaff_EDI + 0x516e67);" (assignment_expression "(this_00->super_Dynobj).super_Object._vptr_Object =\n           (_func_int_varargs **)(unaff_EDI + 0x516e67)" (field_expression "(this_00->super_Dynobj).super_Object._vptr_Object" (field_expression "(this_00->super_Dynobj).super_Object" (parenthesized_expression "(this_00->super_Dynobj)" ( (field_expression "this_00->super_Dynobj" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(_func_int_varargs **)(unaff_EDI + 0x516e67)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EDI + 0x516e67)" ( (binary_expression "unaff_EDI + 0x516e67" identifier + number_literal) )))) ;) (expression_statement "uVar8 = ehdr->p_->e_flags;" (assignment_expression "uVar8 = ehdr->p_->e_flags" identifier = (field_expression "ehdr->p_->e_flags" (field_expression "ehdr->p_" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "this_00[1].super_Dynobj.super_Object.name_.field_2._M_allocated_capacity = 0;" (assignment_expression "this_00[1].super_Dynobj.super_Object.name_.field_2._M_allocated_capacity = 0" (field_expression "this_00[1].super_Dynobj.super_Object.name_.field_2._M_allocated_capacity" (field_expression "this_00[1].super_Dynobj.super_Object.name_.field_2" (field_expression "this_00[1].super_Dynobj.super_Object.name_" (field_expression "this_00[1].super_Dynobj.super_Object" (field_expression "this_00[1].super_Dynobj" (subscript_expression "this_00[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 4) = 0" (pointer_expression "*(undefined4 *)((int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 4)" * (cast_expression "(undefined4 *)((int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 4)" ( (binary_expression "(int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 4" (cast_expression "(int)&this_00[1].super_Dynobj.super_Object.name_.field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&this_00[1].super_Dynobj.super_Object.name_.field_2" & (field_expression "this_00[1].super_Dynobj.super_Object.name_.field_2" (field_expression "this_00[1].super_Dynobj.super_Object.name_" (field_expression "this_00[1].super_Dynobj.super_Object" (field_expression "this_00[1].super_Dynobj" (subscript_expression "this_00[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) . field_identifier) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "this_00[1].super_Dynobj.super_Object.name_._M_string_length = uVar8;" (assignment_expression "this_00[1].super_Dynobj.super_Object.name_._M_string_length = uVar8" (field_expression "this_00[1].super_Dynobj.super_Object.name_._M_string_length" (field_expression "this_00[1].super_Dynobj.super_Object.name_" (field_expression "this_00[1].super_Dynobj.super_Object" (field_expression "this_00[1].super_Dynobj" (subscript_expression "this_00[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "uVar8 = uVar8 & 3;" (assignment_expression "uVar8 = uVar8 & 3" identifier = (binary_expression "uVar8 & 3" identifier & number_literal)) ;) (expression_statement "*(undefined4 *)((int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 8) = 0;" (assignment_expression "*(undefined4 *)((int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 8) = 0" (pointer_expression "*(undefined4 *)((int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 8)" * (cast_expression "(undefined4 *)((int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 8)" ( (binary_expression "(int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 8" (cast_expression "(int)&this_00[1].super_Dynobj.super_Object.name_.field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&this_00[1].super_Dynobj.super_Object.name_.field_2" & (field_expression "this_00[1].super_Dynobj.super_Object.name_.field_2" (field_expression "this_00[1].super_Dynobj.super_Object.name_" (field_expression "this_00[1].super_Dynobj.super_Object" (field_expression "this_00[1].super_Dynobj" (subscript_expression "this_00[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) . field_identifier) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 0xc) = 0;" (assignment_expression "*(undefined4 *)((int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 0xc) = 0" (pointer_expression "*(undefined4 *)((int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 0xc)" * (cast_expression "(undefined4 *)((int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 0xc)" ( (binary_expression "(int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 0xc" (cast_expression "(int)&this_00[1].super_Dynobj.super_Object.name_.field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&this_00[1].super_Dynobj.super_Object.name_.field_2" & (field_expression "this_00[1].super_Dynobj.super_Object.name_.field_2" (field_expression "this_00[1].super_Dynobj.super_Object.name_" (field_expression "this_00[1].super_Dynobj.super_Object" (field_expression "this_00[1].super_Dynobj" (subscript_expression "this_00[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) . field_identifier) . field_identifier))) + number_literal) )))) = number_literal) ;) (if_statement "if (uVar8 != 0) {\n        iVar1 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n        if (iVar1 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000c7990 to 000c7994 has its CatchHandler @ 000c79c5 */\n          gold::do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x380ca4),0x73,(char *)(unaff_EDI + 0x39d327));\n        }\n        uVar7 = *(uint *)(iVar1 + 8) & 3;\n        if (uVar7 == 0) {\n          *(undefined1 *)(iVar1 + 0xc) = 1;\n          *(uint *)(iVar1 + 8) = *(uint *)(iVar1 + 8) & 0xfffffffc | uVar8;\n          gold::Sized_dynobj<32,_false>::setup(this_00);\n          return (Object *)this_00;\n        }\n        if (uVar8 != uVar7) {\n          pcVar2 = (this_00->super_Dynobj).super_Object.name_._M_dataplus._M_p;\n          pcVar6 = (char *)gettext(unaff_EDI + 0x39f4af);\n                    /* try { // try from 000c76cc to 000c76d0 has its CatchHandler @ 000c79c5 */\n          gold::gold_error(pcVar6,pcVar2,uVar8,uVar7);\n        }\n      }" if (parenthesized_expression "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar1 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n        if (iVar1 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000c7990 to 000c7994 has its CatchHandler @ 000c79c5 */\n          gold::do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x380ca4),0x73,(char *)(unaff_EDI + 0x39d327));\n        }\n        uVar7 = *(uint *)(iVar1 + 8) & 3;\n        if (uVar7 == 0) {\n          *(undefined1 *)(iVar1 + 0xc) = 1;\n          *(uint *)(iVar1 + 8) = *(uint *)(iVar1 + 8) & 0xfffffffc | uVar8;\n          gold::Sized_dynobj<32,_false>::setup(this_00);\n          return (Object *)this_00;\n        }\n        if (uVar8 != uVar7) {\n          pcVar2 = (this_00->super_Dynobj).super_Object.name_._M_dataplus._M_p;\n          pcVar6 = (char *)gettext(unaff_EDI + 0x39f4af);\n                    /* try { // try from 000c76cc to 000c76d0 has its CatchHandler @ 000c79c5 */\n          gold::gold_error(pcVar6,pcVar2,uVar8,uVar7);\n        }\n      }" { (expression_statement "iVar1 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);" (assignment_expression "iVar1 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc)" identifier = (pointer_expression "*(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc)" * (cast_expression "(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc)" ( (binary_expression "*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc" (pointer_expression "*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12)" * (cast_expression "(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(BYTE_ARRAY_005231ed + unaff_EDI + 0x12)" ( (binary_expression "BYTE_ARRAY_005231ed + unaff_EDI + 0x12" (binary_expression "BYTE_ARRAY_005231ed + unaff_EDI" identifier + identifier) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (iVar1 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000c7990 to 000c7994 has its CatchHandler @ 000c79c5 */\n          gold::do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x380ca4),0x73,(char *)(unaff_EDI + 0x39d327));\n        }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000c7990 to 000c7994 has its CatchHandler @ 000c79c5 */\n          gold::do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x380ca4),0x73,(char *)(unaff_EDI + 0x39d327));\n        }" { comment comment (labeled_statement "gold::do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x380ca4),0x73,(char *)(unaff_EDI + 0x39d327));" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x380ca4),0x73,(char *)(unaff_EDI + 0x39d327));" (call_expression "do_gold_unreachable\n                    ((char *)(unaff_EDI + 0x380ca4),0x73,(char *)(unaff_EDI + 0x39d327))" identifier (argument_list "((char *)(unaff_EDI + 0x380ca4),0x73,(char *)(unaff_EDI + 0x39d327))" ( (cast_expression "(char *)(unaff_EDI + 0x380ca4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x380ca4)" ( (binary_expression "unaff_EDI + 0x380ca4" identifier + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x39d327)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x39d327)" ( (binary_expression "unaff_EDI + 0x39d327" identifier + number_literal) ))) ))) ;)) })) (expression_statement "uVar7 = *(uint *)(iVar1 + 8) & 3;" (assignment_expression "uVar7 = *(uint *)(iVar1 + 8) & 3" identifier = (binary_expression "*(uint *)(iVar1 + 8) & 3" (pointer_expression "*(uint *)(iVar1 + 8)" * (cast_expression "(uint *)(iVar1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (uVar7 == 0) {\n          *(undefined1 *)(iVar1 + 0xc) = 1;\n          *(uint *)(iVar1 + 8) = *(uint *)(iVar1 + 8) & 0xfffffffc | uVar8;\n          gold::Sized_dynobj<32,_false>::setup(this_00);\n          return (Object *)this_00;\n        }" if (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          *(undefined1 *)(iVar1 + 0xc) = 1;\n          *(uint *)(iVar1 + 8) = *(uint *)(iVar1 + 8) & 0xfffffffc | uVar8;\n          gold::Sized_dynobj<32,_false>::setup(this_00);\n          return (Object *)this_00;\n        }" { (expression_statement "*(undefined1 *)(iVar1 + 0xc) = 1;" (assignment_expression "*(undefined1 *)(iVar1 + 0xc) = 1" (pointer_expression "*(undefined1 *)(iVar1 + 0xc)" * (cast_expression "(undefined1 *)(iVar1 + 0xc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xc)" ( (binary_expression "iVar1 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(iVar1 + 8) = *(uint *)(iVar1 + 8) & 0xfffffffc | uVar8;" (assignment_expression "*(uint *)(iVar1 + 8) = *(uint *)(iVar1 + 8) & 0xfffffffc | uVar8" (pointer_expression "*(uint *)(iVar1 + 8)" * (cast_expression "(uint *)(iVar1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar1 + 8) & 0xfffffffc | uVar8" (binary_expression "*(uint *)(iVar1 + 8) & 0xfffffffc" (pointer_expression "*(uint *)(iVar1 + 8)" * (cast_expression "(uint *)(iVar1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) )))) & number_literal) | identifier)) ;) (labeled_statement "gold::Sized_dynobj<32,_false>::setup(this_00);" statement_identifier : (ERROR ":" :) (expression_statement "Sized_dynobj<32,_false>::setup(this_00);" (comma_expression "Sized_dynobj<32,_false>::setup(this_00)" (binary_expression "Sized_dynobj<32" identifier < number_literal) , (binary_expression "_false>::setup(this_00)" identifier > (ERROR "::" : :) (call_expression "setup(this_00)" identifier (argument_list "(this_00)" ( identifier ))))) ;)) (return_statement "return (Object *)this_00;" return (cast_expression "(Object *)this_00" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ;) })) (if_statement "if (uVar8 != uVar7) {\n          pcVar2 = (this_00->super_Dynobj).super_Object.name_._M_dataplus._M_p;\n          pcVar6 = (char *)gettext(unaff_EDI + 0x39f4af);\n                    /* try { // try from 000c76cc to 000c76d0 has its CatchHandler @ 000c79c5 */\n          gold::gold_error(pcVar6,pcVar2,uVar8,uVar7);\n        }" if (parenthesized_expression "(uVar8 != uVar7)" ( (binary_expression "uVar8 != uVar7" identifier != identifier) )) (compound_statement "{\n          pcVar2 = (this_00->super_Dynobj).super_Object.name_._M_dataplus._M_p;\n          pcVar6 = (char *)gettext(unaff_EDI + 0x39f4af);\n                    /* try { // try from 000c76cc to 000c76d0 has its CatchHandler @ 000c79c5 */\n          gold::gold_error(pcVar6,pcVar2,uVar8,uVar7);\n        }" { (expression_statement "pcVar2 = (this_00->super_Dynobj).super_Object.name_._M_dataplus._M_p;" (assignment_expression "pcVar2 = (this_00->super_Dynobj).super_Object.name_._M_dataplus._M_p" identifier = (field_expression "(this_00->super_Dynobj).super_Object.name_._M_dataplus._M_p" (field_expression "(this_00->super_Dynobj).super_Object.name_._M_dataplus" (field_expression "(this_00->super_Dynobj).super_Object.name_" (field_expression "(this_00->super_Dynobj).super_Object" (parenthesized_expression "(this_00->super_Dynobj)" ( (field_expression "this_00->super_Dynobj" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "pcVar6 = (char *)gettext(unaff_EDI + 0x39f4af);" (assignment_expression "pcVar6 = (char *)gettext(unaff_EDI + 0x39f4af)" identifier = (cast_expression "(char *)gettext(unaff_EDI + 0x39f4af)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext(unaff_EDI + 0x39f4af)" identifier (argument_list "(unaff_EDI + 0x39f4af)" ( (binary_expression "unaff_EDI + 0x39f4af" identifier + number_literal) ))))) ;) comment (labeled_statement "gold::gold_error(pcVar6,pcVar2,uVar8,uVar7);" statement_identifier : (ERROR ":" :) (expression_statement "gold_error(pcVar6,pcVar2,uVar8,uVar7);" (call_expression "gold_error(pcVar6,pcVar2,uVar8,uVar7)" identifier (argument_list "(pcVar6,pcVar2,uVar8,uVar7)" ( identifier , identifier , identifier , identifier ))) ;)) })) })) (labeled_statement "gold::Sized_dynobj<32,_false>::setup(this_00);" statement_identifier : (ERROR ":" :) (expression_statement "Sized_dynobj<32,_false>::setup(this_00);" (comma_expression "Sized_dynobj<32,_false>::setup(this_00)" (binary_expression "Sized_dynobj<32" identifier < number_literal) , (binary_expression "_false>::setup(this_00)" identifier > (ERROR "::" : :) (call_expression "setup(this_00)" identifier (argument_list "(this_00)" ( identifier ))))) ;)) (return_statement "return (Object *)this_00;" return (cast_expression "(Object *)this_00" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ;) })))) (expression_statement "pcVar2 = (name->_M_dataplus)._M_p;" (assignment_expression "pcVar2 = (name->_M_dataplus)._M_p" identifier = (field_expression "(name->_M_dataplus)._M_p" (parenthesized_expression "(name->_M_dataplus)" ( (field_expression "name->_M_dataplus" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pcVar6 = (char *)gettext(unaff_EDI + 0x39f517);" (assignment_expression "pcVar6 = (char *)gettext(unaff_EDI + 0x39f517)" identifier = (cast_expression "(char *)gettext(unaff_EDI + 0x39f517)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext(unaff_EDI + 0x39f517)" identifier (argument_list "(unaff_EDI + 0x39f517)" ( (binary_expression "unaff_EDI + 0x39f517" identifier + number_literal) ))))) ;) (labeled_statement "gold::gold_error(pcVar6,pcVar2,uVar8);" statement_identifier : (ERROR ":" :) (expression_statement "gold_error(pcVar6,pcVar2,uVar8);" (call_expression "gold_error(pcVar6,pcVar2,uVar8)" identifier (argument_list "(pcVar6,pcVar2,uVar8)" ( identifier , identifier , identifier ))) ;)) (return_statement "return (Object *)0x0;" return (cast_expression "(Object *)0x0" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (labeled_statement "LAB_000c775c:\n  this_01 = (Sized_relobj_file<32,_false> *)operator_new(0x1c0);" statement_identifier : (expression_statement "this_01 = (Sized_relobj_file<32,_false> *)operator_new(0x1c0);" (assignment_expression "this_01 = (Sized_relobj_file<32,_false> *)operator_new(0x1c0)" identifier = (parenthesized_expression "(Sized_relobj_file<32,_false> *)operator_new(0x1c0)" ( (comma_expression "Sized_relobj_file<32,_false> *)operator_new(0x1c0)" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false> *)operator_new(0x1c0)" identifier > (pointer_expression "*)operator_new(0x1c0)" * (ERROR ")" )) (call_expression "operator_new(0x1c0)" identifier (argument_list "(0x1c0)" ( number_literal )))))) ))) ;)) comment (labeled_statement "gold::Sized_relobj_file<32,_false>::Sized_relobj_file(this_01,name,input_file,offset,ehdr);" statement_identifier : (ERROR ":" :) (expression_statement "Sized_relobj_file<32,_false>::Sized_relobj_file(this_01,name,input_file,offset,ehdr);" (comma_expression "Sized_relobj_file<32,_false>::Sized_relobj_file(this_01,name,input_file,offset,ehdr)" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false>::Sized_relobj_file(this_01,name,input_file,offset,ehdr)" identifier > (ERROR "::" : :) (call_expression "Sized_relobj_file(this_01,name,input_file,offset,ehdr)" identifier (argument_list "(this_01,name,input_file,offset,ehdr)" ( identifier , identifier , identifier , identifier , identifier ))))) ;)) (expression_statement "this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.name_._M_dataplus._M_p =\n       (pointer)0x0;" (comma_expression "this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.name_._M_dataplus._M_p =\n       (pointer)0x0" (binary_expression "this_01[1].super_Sized_relobj<32" (field_expression "this_01[1].super_Sized_relobj" (subscript_expression "this_01[1]" identifier [ number_literal ]) . field_identifier) < number_literal) , (assignment_expression "_false>.super_Relobj.super_Object.name_._M_dataplus._M_p =\n       (pointer)0x0" (field_expression "_false>.super_Relobj.super_Object.name_._M_dataplus._M_p" (field_expression "_false>.super_Relobj.super_Object.name_._M_dataplus" (field_expression "_false>.super_Relobj.super_Object.name_" (field_expression "_false>.super_Relobj.super_Object" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal))) ;) (expression_statement "(this_01->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object =\n       (_func_int_varargs **)(unaff_EDI + 0x516d5b);" (assignment_expression "(this_01->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object =\n       (_func_int_varargs **)(unaff_EDI + 0x516d5b)" (field_expression "(this_01->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object" (field_expression "(this_01->super_Sized_relobj<32,_false>).super_Relobj.super_Object" (field_expression "(this_01->super_Sized_relobj<32,_false>).super_Relobj" (parenthesized_expression "(this_01->super_Sized_relobj<32,_false>)" ( (comma_expression "this_01->super_Sized_relobj<32,_false" (binary_expression "this_01->super_Sized_relobj<32" (field_expression "this_01->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(_func_int_varargs **)(unaff_EDI + 0x516d5b)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EDI + 0x516d5b)" ( (binary_expression "unaff_EDI + 0x516d5b" identifier + number_literal) )))) ;) (expression_statement "pp_Var3 = *(_func_int_varargs ***)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e);" (assignment_expression "pp_Var3 = *(_func_int_varargs ***)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e)" identifier = (pointer_expression "*(_func_int_varargs ***)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e)" * (cast_expression "(_func_int_varargs ***)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e)" ( (type_descriptor "_func_int_varargs ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e)" ( (binary_expression "BYTE_ARRAY_005235ad + unaff_EDI + 0x1e" (binary_expression "BYTE_ARRAY_005235ad + unaff_EDI" identifier + identifier) + number_literal) ))))) ;) (expression_statement "this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.name_._M_string_length = 0;" (comma_expression "this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.name_._M_string_length = 0" (binary_expression "this_01[1].super_Sized_relobj<32" (field_expression "this_01[1].super_Sized_relobj" (subscript_expression "this_01[1]" identifier [ number_literal ]) . field_identifier) < number_literal) , (assignment_expression "_false>.super_Relobj.super_Object.name_._M_string_length = 0" (field_expression "_false>.super_Relobj.super_Object.name_._M_string_length" (field_expression "_false>.super_Relobj.super_Object.name_" (field_expression "_false>.super_Relobj.super_Object" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = number_literal)) ;) (expression_statement "this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object._vptr_Object = pp_Var3;" (comma_expression "this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object._vptr_Object = pp_Var3" (binary_expression "this_01[1].super_Sized_relobj<32" (field_expression "this_01[1].super_Sized_relobj" (subscript_expression "this_01[1]" identifier [ number_literal ]) . field_identifier) < number_literal) , (assignment_expression "_false>.super_Relobj.super_Object._vptr_Object = pp_Var3" (field_expression "_false>.super_Relobj.super_Object._vptr_Object" (field_expression "_false>.super_Relobj.super_Object" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) = identifier)) ;) (expression_statement "this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.name_.field_2.\n  _M_allocated_capacity = 0;" (comma_expression "this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.name_.field_2.\n  _M_allocated_capacity = 0" (binary_expression "this_01[1].super_Sized_relobj<32" (field_expression "this_01[1].super_Sized_relobj" (subscript_expression "this_01[1]" identifier [ number_literal ]) . field_identifier) < number_literal) , (assignment_expression "_false>.super_Relobj.super_Object.name_.field_2.\n  _M_allocated_capacity = 0" (field_expression "_false>.super_Relobj.super_Object.name_.field_2.\n  _M_allocated_capacity" (field_expression "_false>.super_Relobj.super_Object.name_.field_2" (field_expression "_false>.super_Relobj.super_Object.name_" (field_expression "_false>.super_Relobj.super_Object" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = number_literal)) ;) (expression_statement "pEVar4 = ehdr->p_;" (assignment_expression "pEVar4 = ehdr->p_" identifier = (field_expression "ehdr->p_" identifier -> field_identifier)) ;) (expression_statement "*(undefined2 *)\n   ((int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.name_.field_2 + 4) = 0;" (assignment_expression "*(undefined2 *)\n   ((int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.name_.field_2 + 4) = 0" (pointer_expression "*(undefined2 *)\n   ((int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.name_.field_2 + 4)" * (cast_expression "(undefined2 *)\n   ((int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.name_.field_2 + 4)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.name_.field_2 + 4)" ( (comma_expression "(int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.name_.field_2 + 4" (binary_expression "(int)&this_01[1].super_Sized_relobj<32" (cast_expression "(int)&this_01[1].super_Sized_relobj" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&this_01[1].super_Sized_relobj" & (field_expression "this_01[1].super_Sized_relobj" (subscript_expression "this_01[1]" identifier [ number_literal ]) . field_identifier))) < number_literal) , (binary_expression "_false>.super_Relobj.super_Object.name_.field_2 + 4" (field_expression "_false>.super_Relobj.super_Object.name_.field_2" (field_expression "_false>.super_Relobj.super_Object.name_" (field_expression "_false>.super_Relobj.super_Object" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) + number_literal)) )))) = number_literal) ;) (expression_statement "*(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e) = (int)pp_Var3 + 1;" (assignment_expression "*(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e) = (int)pp_Var3 + 1" (pointer_expression "*(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e)" * (cast_expression "(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e)" ( (binary_expression "BYTE_ARRAY_005235ad + unaff_EDI + 0x1e" (binary_expression "BYTE_ARRAY_005235ad + unaff_EDI" identifier + identifier) + number_literal) )))) = (binary_expression "(int)pp_Var3 + 1" (cast_expression "(int)pp_Var3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "uVar8 = pEVar4->e_flags;" (assignment_expression "uVar8 = pEVar4->e_flags" identifier = (field_expression "pEVar4->e_flags" identifier -> field_identifier)) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (expression_statement "*(undefined4 *)\n   ((int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.name_.field_2 + 0xc) =\n       0;" (assignment_expression "*(undefined4 *)\n   ((int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.name_.field_2 + 0xc) =\n       0" (pointer_expression "*(undefined4 *)\n   ((int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.name_.field_2 + 0xc)" * (cast_expression "(undefined4 *)\n   ((int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.name_.field_2 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.name_.field_2 + 0xc)" ( (comma_expression "(int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.name_.field_2 + 0xc" (binary_expression "(int)&this_01[1].super_Sized_relobj<32" (cast_expression "(int)&this_01[1].super_Sized_relobj" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&this_01[1].super_Sized_relobj" & (field_expression "this_01[1].super_Sized_relobj" (subscript_expression "this_01[1]" identifier [ number_literal ]) . field_identifier))) < number_literal) , (binary_expression "_false>.super_Relobj.super_Object.name_.field_2 + 0xc" (field_expression "_false>.super_Relobj.super_Object.name_.field_2" (field_expression "_false>.super_Relobj.super_Object.name_" (field_expression "_false>.super_Relobj.super_Object" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) + number_literal)) )))) = number_literal) ;) (expression_statement "this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.input_file_ = (Input_file *)0x0\n  ;" (comma_expression "this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.input_file_ = (Input_file *)0x0" (binary_expression "this_01[1].super_Sized_relobj<32" (field_expression "this_01[1].super_Sized_relobj" (subscript_expression "this_01[1]" identifier [ number_literal ]) . field_identifier) < number_literal) , (assignment_expression "_false>.super_Relobj.super_Object.input_file_ = (Input_file *)0x0" (field_expression "_false>.super_Relobj.super_Object.input_file_" (field_expression "_false>.super_Relobj.super_Object" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(Input_file *)0x0" ( (type_descriptor "Input_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "*(uint *)((int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.name_.field_2 +\n           8) = uVar8;" (assignment_expression "*(uint *)((int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.name_.field_2 +\n           8) = uVar8" (pointer_expression "*(uint *)((int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.name_.field_2 +\n           8)" * (cast_expression "(uint *)((int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.name_.field_2 +\n           8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.name_.field_2 +\n           8)" ( (comma_expression "(int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.name_.field_2 +\n           8" (binary_expression "(int)&this_01[1].super_Sized_relobj<32" (cast_expression "(int)&this_01[1].super_Sized_relobj" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&this_01[1].super_Sized_relobj" & (field_expression "this_01[1].super_Sized_relobj" (subscript_expression "this_01[1]" identifier [ number_literal ]) . field_identifier))) < number_literal) , (binary_expression "_false>.super_Relobj.super_Object.name_.field_2 +\n           8" (field_expression "_false>.super_Relobj.super_Object.name_.field_2" (field_expression "_false>.super_Relobj.super_Object.name_" (field_expression "_false>.super_Relobj.super_Object" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) + number_literal)) )))) = identifier) ;) (expression_statement "*(undefined4 *)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_ = 0;" (comma_expression "*(undefined4 *)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_ = 0" (binary_expression "*(undefined4 *)&this_01[1].super_Sized_relobj<32" (pointer_expression "*(undefined4 *)&this_01[1].super_Sized_relobj" * (cast_expression "(undefined4 *)&this_01[1].super_Sized_relobj" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this_01[1].super_Sized_relobj" & (field_expression "this_01[1].super_Sized_relobj" (subscript_expression "this_01[1]" identifier [ number_literal ]) . field_identifier)))) < number_literal) , (assignment_expression "_false>.super_Relobj.super_Object.offset_ = 0" (field_expression "_false>.super_Relobj.super_Object.offset_" (field_expression "_false>.super_Relobj.super_Object" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) = number_literal)) ;) (expression_statement "*(undefined4 *)\n   ((int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_ + 4) = 0;" (assignment_expression "*(undefined4 *)\n   ((int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_ + 4) = 0" (pointer_expression "*(undefined4 *)\n   ((int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_ + 4)" * (cast_expression "(undefined4 *)\n   ((int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_ + 4)" ( (comma_expression "(int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_ + 4" (binary_expression "(int)&this_01[1].super_Sized_relobj<32" (cast_expression "(int)&this_01[1].super_Sized_relobj" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&this_01[1].super_Sized_relobj" & (field_expression "this_01[1].super_Sized_relobj" (subscript_expression "this_01[1]" identifier [ number_literal ]) . field_identifier))) < number_literal) , (binary_expression "_false>.super_Relobj.super_Object.offset_ + 4" (field_expression "_false>.super_Relobj.super_Object.offset_" (field_expression "_false>.super_Relobj.super_Object" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) + number_literal)) )))) = number_literal) ;) (expression_statement "this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.shnum_ = 0;" (comma_expression "this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.shnum_ = 0" (binary_expression "this_01[1].super_Sized_relobj<32" (field_expression "this_01[1].super_Sized_relobj" (subscript_expression "this_01[1]" identifier [ number_literal ]) . field_identifier) < number_literal) , (assignment_expression "_false>.super_Relobj.super_Object.shnum_ = 0" (field_expression "_false>.super_Relobj.super_Object.shnum_" (field_expression "_false>.super_Relobj.super_Object" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) = number_literal)) ;) (expression_statement "*(undefined4 *)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.field_0x2c = 0;" (comma_expression "*(undefined4 *)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.field_0x2c = 0" (binary_expression "*(undefined4 *)&this_01[1].super_Sized_relobj<32" (pointer_expression "*(undefined4 *)&this_01[1].super_Sized_relobj" * (cast_expression "(undefined4 *)&this_01[1].super_Sized_relobj" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this_01[1].super_Sized_relobj" & (field_expression "this_01[1].super_Sized_relobj" (subscript_expression "this_01[1]" identifier [ number_literal ]) . field_identifier)))) < number_literal) , (assignment_expression "_false>.super_Relobj.super_Object.field_0x2c = 0" (field_expression "_false>.super_Relobj.super_Object.field_0x2c" (field_expression "_false>.super_Relobj.super_Object" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) = number_literal)) ;) (expression_statement "this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.xindex_ = (Xindex *)0x0;" (comma_expression "this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.xindex_ = (Xindex *)0x0" (binary_expression "this_01[1].super_Sized_relobj<32" (field_expression "this_01[1].super_Sized_relobj" (subscript_expression "this_01[1]" identifier [ number_literal ]) . field_identifier) < number_literal) , (assignment_expression "_false>.super_Relobj.super_Object.xindex_ = (Xindex *)0x0" (field_expression "_false>.super_Relobj.super_Object.xindex_" (field_expression "_false>.super_Relobj.super_Object" (field_expression "_false>.super_Relobj" 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_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.compressed_sections_ =\n       (Compressed_section_map *)0x0;" (comma_expression "this_01[1].super_Sized_relobj<32,_false>.super_Relobj.super_Object.compressed_sections_ =\n       (Compressed_section_map *)0x0" (binary_expression "this_01[1].super_Sized_relobj<32" (field_expression "this_01[1].super_Sized_relobj" (subscript_expression "this_01[1]" identifier [ number_literal ]) . field_identifier) < number_literal) , (assignment_expression "_false>.super_Relobj.super_Object.compressed_sections_ =\n       (Compressed_section_map *)0x0" (field_expression "_false>.super_Relobj.super_Object.compressed_sections_" (field_expression "_false>.super_Relobj.super_Object" (field_expression "_false>.super_Relobj" 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))) ;) (do_statement "do {\n    *(undefined4 *)\n     ((int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.output_sections_.\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_start + uVar7) = 0;\n    uVar7 = uVar7 + 4;\n  } while (uVar7 < 0x1c);" do (compound_statement "{\n    *(undefined4 *)\n     ((int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.output_sections_.\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_start + uVar7) = 0;\n    uVar7 = uVar7 + 4;\n  }" { (expression_statement "*(undefined4 *)\n     ((int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.output_sections_.\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_start + uVar7) = 0;" (assignment_expression "*(undefined4 *)\n     ((int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.output_sections_.\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_start + uVar7) = 0" (pointer_expression "*(undefined4 *)\n     ((int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.output_sections_.\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_start + uVar7)" * (cast_expression "(undefined4 *)\n     ((int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.output_sections_.\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_start + uVar7)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.output_sections_.\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_start + uVar7)" ( (ERROR "(int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.output_sections_.\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::" (comma_expression "(int)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.output_sections_.\n            super__Vector_base<gold" (binary_expression "(int)&this_01[1].super_Sized_relobj<32" (cast_expression "(int)&this_01[1].super_Sized_relobj" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&this_01[1].super_Sized_relobj" & (field_expression "this_01[1].super_Sized_relobj" (subscript_expression "this_01[1]" identifier [ number_literal ]) . field_identifier))) < number_literal) , (binary_expression "_false>.super_Relobj.output_sections_.\n            super__Vector_base<gold" (field_expression "_false>.super_Relobj.output_sections_.\n            super__Vector_base" (field_expression "_false>.super_Relobj.output_sections_" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) < identifier)) : : identifier * , identifier : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Output_section*>_>.\n            _M_impl._M_start + uVar7" (field_expression "Output_section*>_>.\n            _M_impl._M_start" (field_expression "Output_section*>_>.\n            _M_impl" (binary_expression "Output_section*>_" identifier * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) + identifier) )))) = number_literal) ;) (expression_statement "uVar7 = uVar7 + 4;" (assignment_expression "uVar7 = uVar7 + 4" identifier = (binary_expression "uVar7 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar7 < 0x1c)" ( (binary_expression "uVar7 < 0x1c" identifier < number_literal) )) ;) (expression_statement "uVar8 = uVar8 & 3;" (assignment_expression "uVar8 = uVar8 & 3" identifier = (binary_expression "uVar8 & 3" identifier & number_literal)) ;) (ERROR "this_01[1].super_Sized_relobj<32,_false>.super_Relobj.output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::" (comma_expression "this_01[1].super_Sized_relobj<32,_false>.super_Relobj.output_sections_.\n  super__Vector_base<gold" (binary_expression "this_01[1].super_Sized_relobj<32" (field_expression "this_01[1].super_Sized_relobj" (subscript_expression "this_01[1]" identifier [ number_literal ]) . field_identifier) < number_literal) , (binary_expression "_false>.super_Relobj.output_sections_.\n  super__Vector_base<gold" (field_expression "_false>.super_Relobj.output_sections_.\n  super__Vector_base" (field_expression "_false>.super_Relobj.output_sections_" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) < identifier)) : : identifier * , identifier : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "Output_section*>_>._M_impl.\n  _M_finish = (pointer)0x1;" (assignment_expression "Output_section*>_>._M_impl.\n  _M_finish = (pointer)0x1" (field_expression "Output_section*>_>._M_impl.\n  _M_finish" (field_expression "Output_section*>_>._M_impl" (binary_expression "Output_section*>_" identifier * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x1" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (ERROR "this_01[1].super_Sized_relobj<32,_false>.super_Relobj.output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::" (comma_expression "this_01[1].super_Sized_relobj<32,_false>.super_Relobj.output_sections_.\n  super__Vector_base<gold" (binary_expression "this_01[1].super_Sized_relobj<32" (field_expression "this_01[1].super_Sized_relobj" (subscript_expression "this_01[1]" identifier [ number_literal ]) . field_identifier) < number_literal) , (binary_expression "_false>.super_Relobj.output_sections_.\n  super__Vector_base<gold" (field_expression "_false>.super_Relobj.output_sections_.\n  super__Vector_base" (field_expression "_false>.super_Relobj.output_sections_" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) < identifier)) : : identifier * , identifier : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "Output_section*>_>._M_impl._M_start\n       = (pointer)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.rd_;" (comma_expression "Output_section*>_>._M_impl._M_start\n       = (pointer)&this_01[1].super_Sized_relobj<32,_false>.super_Relobj.rd_" (assignment_expression "Output_section*>_>._M_impl._M_start\n       = (pointer)&this_01[1].super_Sized_relobj<32" (field_expression "Output_section*>_>._M_impl._M_start" (field_expression "Output_section*>_>._M_impl" (binary_expression "Output_section*>_" identifier * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (binary_expression "(pointer)&this_01[1].super_Sized_relobj<32" (cast_expression "(pointer)&this_01[1].super_Sized_relobj" ( (type_descriptor "pointer" type_identifier) ) (pointer_expression "&this_01[1].super_Sized_relobj" & (field_expression "this_01[1].super_Sized_relobj" (subscript_expression "this_01[1]" identifier [ number_literal ]) . field_identifier))) < number_literal)) , (field_expression "_false>.super_Relobj.rd_" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier)) ;) (ERROR "this_01[1].super_Sized_relobj<32,_false>.super_Relobj.output_sections_.\n  super__Vector_base<gold::Output_section*,_std::allocator<gold::" (comma_expression "this_01[1].super_Sized_relobj<32,_false>.super_Relobj.output_sections_.\n  super__Vector_base<gold" (binary_expression "this_01[1].super_Sized_relobj<32" (field_expression "this_01[1].super_Sized_relobj" (subscript_expression "this_01[1]" identifier [ number_literal ]) . field_identifier) < number_literal) , (binary_expression "_false>.super_Relobj.output_sections_.\n  super__Vector_base<gold" (field_expression "_false>.super_Relobj.output_sections_.\n  super__Vector_base" (field_expression "_false>.super_Relobj.output_sections_" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) < identifier)) : : identifier * , identifier : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "Output_section*>_>._M_impl.\n  _M_end_of_storage = (pointer)0x0;" (assignment_expression "Output_section*>_>._M_impl.\n  _M_end_of_storage = (pointer)0x0" (field_expression "Output_section*>_>._M_impl.\n  _M_end_of_storage" (field_expression "Output_section*>_>._M_impl" (binary_expression "Output_section*>_" identifier * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "this_01[1].super_Sized_relobj<32,_false>.super_Relobj.map_to_relocatable_relocs_ =\n       (vector<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_> *)0x0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.object_merge_map_ =\n       (Object_merge_map *)0x3f800000;\n  *(undefined4 *)\n   &this_01[1].super_Sized_relobj<32,_false>.super_Relobj.relocs_must_follow_section_writes_ = 0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.rd_ = (Read_relocs_data *)0x0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.sd_ = (Symbols_data *)0x0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.reloc_counts_ = (uint *)0x0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.reloc_bases_ = (uint *)0x0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.first_dyn_reloc_ = 0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.dyn_reloc_count_ = 0;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_buckets = (__bucket_type *)0x0\n  ;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_bucket_count = 0;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_before_begin._M_nxt =\n       (_Hash_node_base *)0x0;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_element_count = 0;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_rehash_policy.\n  _M_max_load_factor = 0.0;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_rehash_policy._M_next_resize =\n       0;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_single_bucket =\n       (__bucket_type)0x0;" (comma_expression "this_01[1].super_Sized_relobj<32,_false>.super_Relobj.map_to_relocatable_relocs_ =\n       (vector<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_> *)0x0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.object_merge_map_ =\n       (Object_merge_map *)0x3f800000;\n  *(undefined4 *)\n   &this_01[1].super_Sized_relobj<32,_false>.super_Relobj.relocs_must_follow_section_writes_ = 0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.rd_ = (Read_relocs_data *)0x0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.sd_ = (Symbols_data *)0x0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.reloc_counts_ = (uint *)0x0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.reloc_bases_ = (uint *)0x0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.first_dyn_reloc_ = 0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.dyn_reloc_count_ = 0;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_buckets = (__bucket_type *)0x0\n  ;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_bucket_count = 0;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_before_begin._M_nxt =\n       (_Hash_node_base *)0x0;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_element_count = 0;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_rehash_policy.\n  _M_max_load_factor = 0.0;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_rehash_policy._M_next_resize =\n       0;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_single_bucket =\n       (__bucket_type)0x0" (binary_expression "this_01[1].super_Sized_relobj<32" (field_expression "this_01[1].super_Sized_relobj" (subscript_expression "this_01[1]" identifier [ number_literal ]) . field_identifier) < number_literal) , (assignment_expression "_false>.super_Relobj.map_to_relocatable_relocs_ =\n       (vector<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_> *)0x0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.object_merge_map_ =\n       (Object_merge_map *)0x3f800000;\n  *(undefined4 *)\n   &this_01[1].super_Sized_relobj<32,_false>.super_Relobj.relocs_must_follow_section_writes_ = 0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.rd_ = (Read_relocs_data *)0x0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.sd_ = (Symbols_data *)0x0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.reloc_counts_ = (uint *)0x0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.reloc_bases_ = (uint *)0x0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.first_dyn_reloc_ = 0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.dyn_reloc_count_ = 0;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_buckets = (__bucket_type *)0x0\n  ;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_bucket_count = 0;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_before_begin._M_nxt =\n       (_Hash_node_base *)0x0;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_element_count = 0;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_rehash_policy.\n  _M_max_load_factor = 0.0;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_rehash_policy._M_next_resize =\n       0;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_single_bucket =\n       (__bucket_type)0x0" (field_expression "_false>.super_Relobj.map_to_relocatable_relocs_" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) = (parenthesized_expression "(vector<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_> *)0x0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.object_merge_map_ =\n       (Object_merge_map *)0x3f800000;\n  *(undefined4 *)\n   &this_01[1].super_Sized_relobj<32,_false>.super_Relobj.relocs_must_follow_section_writes_ = 0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.rd_ = (Read_relocs_data *)0x0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.sd_ = (Symbols_data *)0x0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.reloc_counts_ = (uint *)0x0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.reloc_bases_ = (uint *)0x0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.first_dyn_reloc_ = 0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.dyn_reloc_count_ = 0;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_buckets = (__bucket_type *)0x0\n  ;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_bucket_count = 0;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_before_begin._M_nxt =\n       (_Hash_node_base *)0x0;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_element_count = 0;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_rehash_policy.\n  _M_max_load_factor = 0.0;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_rehash_policy._M_next_resize =\n       0;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_single_bucket =\n       (__bucket_type)0x0" ( (ERROR "vector<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>_> *)0x0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.object_merge_map_ =\n       (Object_merge_map *)0x3f800000;\n  *(undefined4 *)\n   &this_01[1].super_Sized_relobj<32,_false>.super_Relobj.relocs_must_follow_section_writes_ = 0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.rd_ = (Read_relocs_data *)0x0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.sd_ = (Symbols_data *)0x0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.reloc_counts_ = (uint *)0x0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.reloc_bases_ = (uint *)0x0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.first_dyn_reloc_ = 0;\n  this_01[1].super_Sized_relobj<32,_false>.super_Relobj.dyn_reloc_count_ = 0;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_buckets = (__bucket_type *)0x0\n  ;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_bucket_count = 0;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_before_begin._M_nxt =\n       (_Hash_node_base *)0x0;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_element_count = 0;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_rehash_policy.\n  _M_max_load_factor = 0.0;\n  this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_rehash_policy._M_next_resize =\n       0;" (binary_expression "vector<gold" identifier < identifier) : : (type_descriptor "Relocatable_relocs*" type_identifier (abstract_pointer_declarator "*" *)) , identifier : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Relocatable_relocs*>_> *)0x0" (binary_expression "Relocatable_relocs*>_" identifier * (ERROR ">" >) identifier) > (pointer_expression "*)0x0" * (ERROR ")" )) number_literal)) ; (comma_expression "this_01[1].super_Sized_relobj<32,_false>.super_Relobj.object_merge_map_ =\n       (Object_merge_map *)0x3f800000" (binary_expression "this_01[1].super_Sized_relobj<32" (field_expression "this_01[1].super_Sized_relobj" (subscript_expression "this_01[1]" identifier [ number_literal ]) . field_identifier) < number_literal) , (assignment_expression "_false>.super_Relobj.object_merge_map_ =\n       (Object_merge_map *)0x3f800000" (field_expression "_false>.super_Relobj.object_merge_map_" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(Object_merge_map *)0x3f800000" ( (type_descriptor "Object_merge_map *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ; (comma_expression "*(undefined4 *)\n   &this_01[1].super_Sized_relobj<32,_false>.super_Relobj.relocs_must_follow_section_writes_ = 0" (binary_expression "*(undefined4 *)\n   &this_01[1].super_Sized_relobj<32" (pointer_expression "*(undefined4 *)\n   &this_01[1].super_Sized_relobj" * (cast_expression "(undefined4 *)\n   &this_01[1].super_Sized_relobj" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this_01[1].super_Sized_relobj" & (field_expression "this_01[1].super_Sized_relobj" (subscript_expression "this_01[1]" identifier [ number_literal ]) . field_identifier)))) < number_literal) , (assignment_expression "_false>.super_Relobj.relocs_must_follow_section_writes_ = 0" (field_expression "_false>.super_Relobj.relocs_must_follow_section_writes_" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) = number_literal)) ; (comma_expression "this_01[1].super_Sized_relobj<32,_false>.super_Relobj.rd_ = (Read_relocs_data *)0x0" (binary_expression "this_01[1].super_Sized_relobj<32" (field_expression "this_01[1].super_Sized_relobj" (subscript_expression "this_01[1]" identifier [ number_literal ]) . field_identifier) < number_literal) , (assignment_expression "_false>.super_Relobj.rd_ = (Read_relocs_data *)0x0" (field_expression "_false>.super_Relobj.rd_" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(Read_relocs_data *)0x0" ( (type_descriptor "Read_relocs_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ; (comma_expression "this_01[1].super_Sized_relobj<32,_false>.super_Relobj.sd_ = (Symbols_data *)0x0" (binary_expression "this_01[1].super_Sized_relobj<32" (field_expression "this_01[1].super_Sized_relobj" (subscript_expression "this_01[1]" identifier [ number_literal ]) . field_identifier) < number_literal) , (assignment_expression "_false>.super_Relobj.sd_ = (Symbols_data *)0x0" (field_expression "_false>.super_Relobj.sd_" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(Symbols_data *)0x0" ( (type_descriptor "Symbols_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ; (comma_expression "this_01[1].super_Sized_relobj<32,_false>.super_Relobj.reloc_counts_ = (uint *)0x0" (binary_expression "this_01[1].super_Sized_relobj<32" (field_expression "this_01[1].super_Sized_relobj" (subscript_expression "this_01[1]" identifier [ number_literal ]) . field_identifier) < number_literal) , (assignment_expression "_false>.super_Relobj.reloc_counts_ = (uint *)0x0" (field_expression "_false>.super_Relobj.reloc_counts_" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ; (comma_expression "this_01[1].super_Sized_relobj<32,_false>.super_Relobj.reloc_bases_ = (uint *)0x0" (binary_expression "this_01[1].super_Sized_relobj<32" (field_expression "this_01[1].super_Sized_relobj" (subscript_expression "this_01[1]" identifier [ number_literal ]) . field_identifier) < number_literal) , (assignment_expression "_false>.super_Relobj.reloc_bases_ = (uint *)0x0" (field_expression "_false>.super_Relobj.reloc_bases_" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ; (comma_expression "this_01[1].super_Sized_relobj<32,_false>.super_Relobj.first_dyn_reloc_ = 0" (binary_expression "this_01[1].super_Sized_relobj<32" (field_expression "this_01[1].super_Sized_relobj" (subscript_expression "this_01[1]" identifier [ number_literal ]) . field_identifier) < number_literal) , (assignment_expression "_false>.super_Relobj.first_dyn_reloc_ = 0" (field_expression "_false>.super_Relobj.first_dyn_reloc_" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) = number_literal)) ; (comma_expression "this_01[1].super_Sized_relobj<32,_false>.super_Relobj.dyn_reloc_count_ = 0" (binary_expression "this_01[1].super_Sized_relobj<32" (field_expression "this_01[1].super_Sized_relobj" (subscript_expression "this_01[1]" identifier [ number_literal ]) . field_identifier) < number_literal) , (assignment_expression "_false>.super_Relobj.dyn_reloc_count_ = 0" (field_expression "_false>.super_Relobj.dyn_reloc_count_" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) = number_literal)) ; (comma_expression "this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_buckets = (__bucket_type *)0x0" (binary_expression "this_01[1].super_Sized_relobj<32" (field_expression "this_01[1].super_Sized_relobj" (subscript_expression "this_01[1]" identifier [ number_literal ]) . field_identifier) < number_literal) , (assignment_expression "_false>.local_got_offsets_._M_h._M_buckets = (__bucket_type *)0x0" (field_expression "_false>.local_got_offsets_._M_h._M_buckets" (field_expression "_false>.local_got_offsets_._M_h" (field_expression "_false>.local_got_offsets_" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(__bucket_type *)0x0" ( (type_descriptor "__bucket_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ; (comma_expression "this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_bucket_count = 0" (binary_expression "this_01[1].super_Sized_relobj<32" (field_expression "this_01[1].super_Sized_relobj" (subscript_expression "this_01[1]" identifier [ number_literal ]) . field_identifier) < number_literal) , (assignment_expression "_false>.local_got_offsets_._M_h._M_bucket_count = 0" (field_expression "_false>.local_got_offsets_._M_h._M_bucket_count" (field_expression "_false>.local_got_offsets_._M_h" (field_expression "_false>.local_got_offsets_" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) = number_literal)) ; (comma_expression "this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_before_begin._M_nxt =\n       (_Hash_node_base *)0x0" (binary_expression "this_01[1].super_Sized_relobj<32" (field_expression "this_01[1].super_Sized_relobj" (subscript_expression "this_01[1]" identifier [ number_literal ]) . field_identifier) < number_literal) , (assignment_expression "_false>.local_got_offsets_._M_h._M_before_begin._M_nxt =\n       (_Hash_node_base *)0x0" (field_expression "_false>.local_got_offsets_._M_h._M_before_begin._M_nxt" (field_expression "_false>.local_got_offsets_._M_h._M_before_begin" (field_expression "_false>.local_got_offsets_._M_h" (field_expression "_false>.local_got_offsets_" 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))) ; (comma_expression "this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_element_count = 0" (binary_expression "this_01[1].super_Sized_relobj<32" (field_expression "this_01[1].super_Sized_relobj" (subscript_expression "this_01[1]" identifier [ number_literal ]) . field_identifier) < number_literal) , (assignment_expression "_false>.local_got_offsets_._M_h._M_element_count = 0" (field_expression "_false>.local_got_offsets_._M_h._M_element_count" (field_expression "_false>.local_got_offsets_._M_h" (field_expression "_false>.local_got_offsets_" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) = number_literal)) ; (comma_expression "this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_rehash_policy.\n  _M_max_load_factor = 0.0" (binary_expression "this_01[1].super_Sized_relobj<32" (field_expression "this_01[1].super_Sized_relobj" (subscript_expression "this_01[1]" identifier [ number_literal ]) . field_identifier) < number_literal) , (assignment_expression "_false>.local_got_offsets_._M_h._M_rehash_policy.\n  _M_max_load_factor = 0.0" (field_expression "_false>.local_got_offsets_._M_h._M_rehash_policy.\n  _M_max_load_factor" (field_expression "_false>.local_got_offsets_._M_h._M_rehash_policy" (field_expression "_false>.local_got_offsets_._M_h" (field_expression "_false>.local_got_offsets_" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = number_literal)) ; (comma_expression "this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_rehash_policy._M_next_resize =\n       0" (binary_expression "this_01[1].super_Sized_relobj<32" (field_expression "this_01[1].super_Sized_relobj" (subscript_expression "this_01[1]" identifier [ number_literal ]) . field_identifier) < number_literal) , (assignment_expression "_false>.local_got_offsets_._M_h._M_rehash_policy._M_next_resize =\n       0" (field_expression "_false>.local_got_offsets_._M_h._M_rehash_policy._M_next_resize" (field_expression "_false>.local_got_offsets_._M_h._M_rehash_policy" (field_expression "_false>.local_got_offsets_._M_h" (field_expression "_false>.local_got_offsets_" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = number_literal)) ;) (comma_expression "this_01[1].super_Sized_relobj<32,_false>.local_got_offsets_._M_h._M_single_bucket =\n       (__bucket_type)0x0" (binary_expression "this_01[1].super_Sized_relobj<32" (field_expression "this_01[1].super_Sized_relobj" (subscript_expression "this_01[1]" identifier [ number_literal ]) . field_identifier) < number_literal) , (assignment_expression "_false>.local_got_offsets_._M_h._M_single_bucket =\n       (__bucket_type)0x0" (field_expression "_false>.local_got_offsets_._M_h._M_single_bucket" (field_expression "_false>.local_got_offsets_._M_h" (field_expression "_false>.local_got_offsets_" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(__bucket_type)0x0" ( (type_descriptor "__bucket_type" type_identifier) ) number_literal))) )))) ;) (if_statement "if (uVar8 != 0) {\n    iVar1 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n    if (iVar1 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000c79a8 to 000c79ac has its CatchHandler @ 000c79b5 */\n      gold::do_gold_unreachable((char *)(unaff_EDI + 0x380ca4),0x73,(char *)(unaff_EDI + 0x39d327));\n    }\n    uVar7 = *(uint *)(iVar1 + 8) & 3;\n    if (uVar7 == 0) {\n      *(undefined1 *)(iVar1 + 0xc) = 1;\n      *(uint *)(iVar1 + 8) = *(uint *)(iVar1 + 8) & 0xfffffffc | uVar8;\n    }\n    else if (uVar8 != uVar7) {\n      pcVar2 = (this_01->super_Sized_relobj<32,_false>).super_Relobj.super_Object.name_._M_dataplus.\n               _M_p;\n      pcVar6 = (char *)gettext(unaff_EDI + 0x39f4af);\n                    /* try { // try from 000c794f to 000c7953 has its CatchHandler @ 000c79b5 */\n      gold::gold_error(pcVar6,pcVar2,uVar8,uVar7);\n    }\n  }" if (parenthesized_expression "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar1 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n    if (iVar1 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000c79a8 to 000c79ac has its CatchHandler @ 000c79b5 */\n      gold::do_gold_unreachable((char *)(unaff_EDI + 0x380ca4),0x73,(char *)(unaff_EDI + 0x39d327));\n    }\n    uVar7 = *(uint *)(iVar1 + 8) & 3;\n    if (uVar7 == 0) {\n      *(undefined1 *)(iVar1 + 0xc) = 1;\n      *(uint *)(iVar1 + 8) = *(uint *)(iVar1 + 8) & 0xfffffffc | uVar8;\n    }\n    else if (uVar8 != uVar7) {\n      pcVar2 = (this_01->super_Sized_relobj<32,_false>).super_Relobj.super_Object.name_._M_dataplus.\n               _M_p;\n      pcVar6 = (char *)gettext(unaff_EDI + 0x39f4af);\n                    /* try { // try from 000c794f to 000c7953 has its CatchHandler @ 000c79b5 */\n      gold::gold_error(pcVar6,pcVar2,uVar8,uVar7);\n    }\n  }" { (expression_statement "iVar1 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);" (assignment_expression "iVar1 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc)" identifier = (pointer_expression "*(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc)" * (cast_expression "(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc)" ( (binary_expression "*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc" (pointer_expression "*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12)" * (cast_expression "(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(BYTE_ARRAY_005231ed + unaff_EDI + 0x12)" ( (binary_expression "BYTE_ARRAY_005231ed + unaff_EDI + 0x12" (binary_expression "BYTE_ARRAY_005231ed + unaff_EDI" identifier + identifier) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (iVar1 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000c79a8 to 000c79ac has its CatchHandler @ 000c79b5 */\n      gold::do_gold_unreachable((char *)(unaff_EDI + 0x380ca4),0x73,(char *)(unaff_EDI + 0x39d327));\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000c79a8 to 000c79ac has its CatchHandler @ 000c79b5 */\n      gold::do_gold_unreachable((char *)(unaff_EDI + 0x380ca4),0x73,(char *)(unaff_EDI + 0x39d327));\n    }" { comment comment (labeled_statement "gold::do_gold_unreachable((char *)(unaff_EDI + 0x380ca4),0x73,(char *)(unaff_EDI + 0x39d327));" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable((char *)(unaff_EDI + 0x380ca4),0x73,(char *)(unaff_EDI + 0x39d327));" (call_expression "do_gold_unreachable((char *)(unaff_EDI + 0x380ca4),0x73,(char *)(unaff_EDI + 0x39d327))" identifier (argument_list "((char *)(unaff_EDI + 0x380ca4),0x73,(char *)(unaff_EDI + 0x39d327))" ( (cast_expression "(char *)(unaff_EDI + 0x380ca4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x380ca4)" ( (binary_expression "unaff_EDI + 0x380ca4" identifier + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x39d327)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x39d327)" ( (binary_expression "unaff_EDI + 0x39d327" identifier + number_literal) ))) ))) ;)) })) (expression_statement "uVar7 = *(uint *)(iVar1 + 8) & 3;" (assignment_expression "uVar7 = *(uint *)(iVar1 + 8) & 3" identifier = (binary_expression "*(uint *)(iVar1 + 8) & 3" (pointer_expression "*(uint *)(iVar1 + 8)" * (cast_expression "(uint *)(iVar1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (uVar7 == 0) {\n      *(undefined1 *)(iVar1 + 0xc) = 1;\n      *(uint *)(iVar1 + 8) = *(uint *)(iVar1 + 8) & 0xfffffffc | uVar8;\n    }\n    else if (uVar8 != uVar7) {\n      pcVar2 = (this_01->super_Sized_relobj<32,_false>).super_Relobj.super_Object.name_._M_dataplus.\n               _M_p;\n      pcVar6 = (char *)gettext(unaff_EDI + 0x39f4af);\n                    /* try { // try from 000c794f to 000c7953 has its CatchHandler @ 000c79b5 */\n      gold::gold_error(pcVar6,pcVar2,uVar8,uVar7);\n    }" if (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) (compound_statement "{\n      *(undefined1 *)(iVar1 + 0xc) = 1;\n      *(uint *)(iVar1 + 8) = *(uint *)(iVar1 + 8) & 0xfffffffc | uVar8;\n    }" { (expression_statement "*(undefined1 *)(iVar1 + 0xc) = 1;" (assignment_expression "*(undefined1 *)(iVar1 + 0xc) = 1" (pointer_expression "*(undefined1 *)(iVar1 + 0xc)" * (cast_expression "(undefined1 *)(iVar1 + 0xc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xc)" ( (binary_expression "iVar1 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(iVar1 + 8) = *(uint *)(iVar1 + 8) & 0xfffffffc | uVar8;" (assignment_expression "*(uint *)(iVar1 + 8) = *(uint *)(iVar1 + 8) & 0xfffffffc | uVar8" (pointer_expression "*(uint *)(iVar1 + 8)" * (cast_expression "(uint *)(iVar1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar1 + 8) & 0xfffffffc | uVar8" (binary_expression "*(uint *)(iVar1 + 8) & 0xfffffffc" (pointer_expression "*(uint *)(iVar1 + 8)" * (cast_expression "(uint *)(iVar1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) )))) & number_literal) | identifier)) ;) }) (else_clause "else if (uVar8 != uVar7) {\n      pcVar2 = (this_01->super_Sized_relobj<32,_false>).super_Relobj.super_Object.name_._M_dataplus.\n               _M_p;\n      pcVar6 = (char *)gettext(unaff_EDI + 0x39f4af);\n                    /* try { // try from 000c794f to 000c7953 has its CatchHandler @ 000c79b5 */\n      gold::gold_error(pcVar6,pcVar2,uVar8,uVar7);\n    }" else (if_statement "if (uVar8 != uVar7) {\n      pcVar2 = (this_01->super_Sized_relobj<32,_false>).super_Relobj.super_Object.name_._M_dataplus.\n               _M_p;\n      pcVar6 = (char *)gettext(unaff_EDI + 0x39f4af);\n                    /* try { // try from 000c794f to 000c7953 has its CatchHandler @ 000c79b5 */\n      gold::gold_error(pcVar6,pcVar2,uVar8,uVar7);\n    }" if (parenthesized_expression "(uVar8 != uVar7)" ( (binary_expression "uVar8 != uVar7" identifier != identifier) )) (compound_statement "{\n      pcVar2 = (this_01->super_Sized_relobj<32,_false>).super_Relobj.super_Object.name_._M_dataplus.\n               _M_p;\n      pcVar6 = (char *)gettext(unaff_EDI + 0x39f4af);\n                    /* try { // try from 000c794f to 000c7953 has its CatchHandler @ 000c79b5 */\n      gold::gold_error(pcVar6,pcVar2,uVar8,uVar7);\n    }" { (expression_statement "pcVar2 = (this_01->super_Sized_relobj<32,_false>).super_Relobj.super_Object.name_._M_dataplus.\n               _M_p;" (assignment_expression "pcVar2 = (this_01->super_Sized_relobj<32,_false>).super_Relobj.super_Object.name_._M_dataplus.\n               _M_p" identifier = (field_expression "(this_01->super_Sized_relobj<32,_false>).super_Relobj.super_Object.name_._M_dataplus.\n               _M_p" (field_expression "(this_01->super_Sized_relobj<32,_false>).super_Relobj.super_Object.name_._M_dataplus" (field_expression "(this_01->super_Sized_relobj<32,_false>).super_Relobj.super_Object.name_" (field_expression "(this_01->super_Sized_relobj<32,_false>).super_Relobj.super_Object" (field_expression "(this_01->super_Sized_relobj<32,_false>).super_Relobj" (parenthesized_expression "(this_01->super_Sized_relobj<32,_false>)" ( (comma_expression "this_01->super_Sized_relobj<32,_false" (binary_expression "this_01->super_Sized_relobj<32" (field_expression "this_01->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "pcVar6 = (char *)gettext(unaff_EDI + 0x39f4af);" (assignment_expression "pcVar6 = (char *)gettext(unaff_EDI + 0x39f4af)" identifier = (cast_expression "(char *)gettext(unaff_EDI + 0x39f4af)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext(unaff_EDI + 0x39f4af)" identifier (argument_list "(unaff_EDI + 0x39f4af)" ( (binary_expression "unaff_EDI + 0x39f4af" identifier + number_literal) ))))) ;) comment (labeled_statement "gold::gold_error(pcVar6,pcVar2,uVar8,uVar7);" statement_identifier : (ERROR ":" :) (expression_statement "gold_error(pcVar6,pcVar2,uVar8,uVar7);" (call_expression "gold_error(pcVar6,pcVar2,uVar8,uVar7)" identifier (argument_list "(pcVar6,pcVar2,uVar8,uVar7)" ( identifier , identifier , identifier , identifier ))) ;)) })))) })) (labeled_statement "gold::Sized_relobj_file<32,_false>::do_setup(this_01);" statement_identifier : (ERROR ":" :) (expression_statement "Sized_relobj_file<32,_false>::do_setup(this_01);" (comma_expression "Sized_relobj_file<32,_false>::do_setup(this_01)" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false>::do_setup(this_01)" identifier > (ERROR "::" : :) (call_expression "do_setup(this_01)" identifier (argument_list "(this_01)" ( identifier ))))) ;)) (return_statement "return (Object *)this_01;" return (cast_expression "(Object *)this_01" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ;) }))
(translation_unit "int * FUN_000c75c0(undefined4 param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4,\n                  undefined4 param_5,int *param_6)\n\n{\n  short sVar1;\n  int iVar2;\n  int iVar3;\n  char cVar4;\n  int *piVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  int unaff_EDI;\n  \n  FUN_00074f0a();\n  sVar1 = *(short *)(*param_6 + 0x10);\n  if (sVar1 != 1) {\n    if (sVar1 == 2) {\n      cVar4 = FUN_0023df40(param_3);\n      if (cVar4 != '\0') goto LAB_000c775c;\n    }\n    else if (sVar1 == 3) {\n      piVar5 = (int *)FUN_003ac4d0(0xa0);\n                    \n      FUN_0023a130(piVar5,param_2,param_3,param_4,param_5,param_6);\n      piVar5[0x21] = 0;\n      *piVar5 = unaff_EDI + 0x516e67;\n      uVar6 = *(uint *)(*param_6 + 0x24);\n      piVar5[0x24] = 0;\n      piVar5[0x25] = 0;\n      piVar5[0x23] = uVar6;\n      uVar6 = uVar6 & 3;\n      piVar5[0x26] = 0;\n      piVar5[0x27] = 0;\n      if (uVar6 != 0) {\n        iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n        if (iVar2 == 0) {\n                    \n                    \n          FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12));\n        }\n        uVar9 = *(uint *)(iVar2 + 8) & 3;\n        if (uVar9 == 0) {\n          *(undefined1 *)(iVar2 + 0xc) = 1;\n          *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n          FUN_00234d00(piVar5);\n          return piVar5;\n        }\n        if (uVar6 != uVar9) {\n          iVar2 = piVar5[1];\n          uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    \n          FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n        }\n      }\n      FUN_00234d00(piVar5);\n      return piVar5;\n    }\n    uVar7 = *param_2;\n    uVar8 = gettext(&UNK_0039f517 + unaff_EDI);\n    FUN_0023b810(uVar8,uVar7,sVar1);\n    return (int *)0x0;\n  }\nLAB_000c775c:\n  piVar5 = (int *)FUN_003ac4d0(0x1c0);\n                    \n  FUN_002a0e60(piVar5,param_2,param_3,param_4,param_5,param_6);\n  piVar5[0x50] = 0;\n  *piVar5 = unaff_EDI + 0x516d5b;\n  iVar2 = *(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e);\n  piVar5[0x51] = 0;\n  piVar5[0x4f] = iVar2;\n  piVar5[0x52] = 0;\n  iVar3 = *param_6;\n  *(undefined2 *)(piVar5 + 0x53) = 0;\n  *(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e) = iVar2 + 1;\n  uVar6 = *(uint *)(iVar3 + 0x24);\n  uVar9 = 0;\n  piVar5[0x55] = 0;\n  piVar5[0x56] = 0;\n  piVar5[0x54] = uVar6;\n  piVar5[0x57] = 0;\n  piVar5[0x58] = 0;\n  piVar5[0x59] = 0;\n  piVar5[0x5a] = 0;\n  piVar5[0x5b] = 0;\n  piVar5[0x5c] = 0;\n  do {\n    *(undefined4 *)((int)piVar5 + uVar9 + 0x174) = 0;\n    uVar9 = uVar9 + 4;\n  } while (uVar9 < 0x1c);\n  uVar6 = uVar6 & 3;\n  piVar5[0x5e] = 1;\n  piVar5[0x5d] = (int)(piVar5 + 99);\n  piVar5[0x5f] = 0;\n  piVar5[0x60] = 0;\n  piVar5[0x61] = 0x3f800000;\n  piVar5[0x62] = 0;\n  piVar5[99] = 0;\n  piVar5[100] = 0;\n  piVar5[0x65] = 0;\n  piVar5[0x66] = 0;\n  piVar5[0x67] = 0;\n  piVar5[0x68] = 0;\n  piVar5[0x69] = 0;\n  piVar5[0x6a] = 0;\n  piVar5[0x6b] = 0;\n  piVar5[0x6c] = 0;\n  piVar5[0x6d] = 0;\n  piVar5[0x6e] = 0;\n  piVar5[0x6f] = 0;\n  if (uVar6 != 0) {\n    iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n    if (iVar2 == 0) {\n                    \n                    \n      FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,uVar6);\n    }\n    uVar9 = *(uint *)(iVar2 + 8) & 3;\n    if (uVar9 == 0) {\n      *(undefined1 *)(iVar2 + 0xc) = 1;\n      *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n    }\n    else if (uVar6 != uVar9) {\n      iVar2 = piVar5[1];\n      uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    \n      FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n    }\n  }\n  FUN_002945e0(piVar5);\n  return piVar5;\n}\n\n" (function_definition "int * FUN_000c75c0(undefined4 param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4,\n                  undefined4 param_5,int *param_6)\n\n{\n  short sVar1;\n  int iVar2;\n  int iVar3;\n  char cVar4;\n  int *piVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  int unaff_EDI;\n  \n  FUN_00074f0a();\n  sVar1 = *(short *)(*param_6 + 0x10);\n  if (sVar1 != 1) {\n    if (sVar1 == 2) {\n      cVar4 = FUN_0023df40(param_3);\n      if (cVar4 != '\0') goto LAB_000c775c;\n    }\n    else if (sVar1 == 3) {\n      piVar5 = (int *)FUN_003ac4d0(0xa0);\n                    \n      FUN_0023a130(piVar5,param_2,param_3,param_4,param_5,param_6);\n      piVar5[0x21] = 0;\n      *piVar5 = unaff_EDI + 0x516e67;\n      uVar6 = *(uint *)(*param_6 + 0x24);\n      piVar5[0x24] = 0;\n      piVar5[0x25] = 0;\n      piVar5[0x23] = uVar6;\n      uVar6 = uVar6 & 3;\n      piVar5[0x26] = 0;\n      piVar5[0x27] = 0;\n      if (uVar6 != 0) {\n        iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n        if (iVar2 == 0) {\n                    \n                    \n          FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12));\n        }\n        uVar9 = *(uint *)(iVar2 + 8) & 3;\n        if (uVar9 == 0) {\n          *(undefined1 *)(iVar2 + 0xc) = 1;\n          *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n          FUN_00234d00(piVar5);\n          return piVar5;\n        }\n        if (uVar6 != uVar9) {\n          iVar2 = piVar5[1];\n          uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    \n          FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n        }\n      }\n      FUN_00234d00(piVar5);\n      return piVar5;\n    }\n    uVar7 = *param_2;\n    uVar8 = gettext(&UNK_0039f517 + unaff_EDI);\n    FUN_0023b810(uVar8,uVar7,sVar1);\n    return (int *)0x0;\n  }\nLAB_000c775c:\n  piVar5 = (int *)FUN_003ac4d0(0x1c0);\n                    \n  FUN_002a0e60(piVar5,param_2,param_3,param_4,param_5,param_6);\n  piVar5[0x50] = 0;\n  *piVar5 = unaff_EDI + 0x516d5b;\n  iVar2 = *(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e);\n  piVar5[0x51] = 0;\n  piVar5[0x4f] = iVar2;\n  piVar5[0x52] = 0;\n  iVar3 = *param_6;\n  *(undefined2 *)(piVar5 + 0x53) = 0;\n  *(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e) = iVar2 + 1;\n  uVar6 = *(uint *)(iVar3 + 0x24);\n  uVar9 = 0;\n  piVar5[0x55] = 0;\n  piVar5[0x56] = 0;\n  piVar5[0x54] = uVar6;\n  piVar5[0x57] = 0;\n  piVar5[0x58] = 0;\n  piVar5[0x59] = 0;\n  piVar5[0x5a] = 0;\n  piVar5[0x5b] = 0;\n  piVar5[0x5c] = 0;\n  do {\n    *(undefined4 *)((int)piVar5 + uVar9 + 0x174) = 0;\n    uVar9 = uVar9 + 4;\n  } while (uVar9 < 0x1c);\n  uVar6 = uVar6 & 3;\n  piVar5[0x5e] = 1;\n  piVar5[0x5d] = (int)(piVar5 + 99);\n  piVar5[0x5f] = 0;\n  piVar5[0x60] = 0;\n  piVar5[0x61] = 0x3f800000;\n  piVar5[0x62] = 0;\n  piVar5[99] = 0;\n  piVar5[100] = 0;\n  piVar5[0x65] = 0;\n  piVar5[0x66] = 0;\n  piVar5[0x67] = 0;\n  piVar5[0x68] = 0;\n  piVar5[0x69] = 0;\n  piVar5[0x6a] = 0;\n  piVar5[0x6b] = 0;\n  piVar5[0x6c] = 0;\n  piVar5[0x6d] = 0;\n  piVar5[0x6e] = 0;\n  piVar5[0x6f] = 0;\n  if (uVar6 != 0) {\n    iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n    if (iVar2 == 0) {\n                    \n                    \n      FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,uVar6);\n    }\n    uVar9 = *(uint *)(iVar2 + 8) & 3;\n    if (uVar9 == 0) {\n      *(undefined1 *)(iVar2 + 0xc) = 1;\n      *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n    }\n    else if (uVar6 != uVar9) {\n      iVar2 = piVar5[1];\n      uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    \n      FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n    }\n  }\n  FUN_002945e0(piVar5);\n  return piVar5;\n}" primitive_type (pointer_declarator "* FUN_000c75c0(undefined4 param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4,\n                  undefined4 param_5,int *param_6)" * (function_declarator "FUN_000c75c0(undefined4 param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4,\n                  undefined4 param_5,int *param_6)" identifier (parameter_list "(undefined4 param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4,\n                  undefined4 param_5,int *param_6)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "int *param_6" primitive_type (pointer_declarator "*param_6" * identifier)) )))) (compound_statement "{\n  short sVar1;\n  int iVar2;\n  int iVar3;\n  char cVar4;\n  int *piVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  int unaff_EDI;\n  \n  FUN_00074f0a();\n  sVar1 = *(short *)(*param_6 + 0x10);\n  if (sVar1 != 1) {\n    if (sVar1 == 2) {\n      cVar4 = FUN_0023df40(param_3);\n      if (cVar4 != '\0') goto LAB_000c775c;\n    }\n    else if (sVar1 == 3) {\n      piVar5 = (int *)FUN_003ac4d0(0xa0);\n                    \n      FUN_0023a130(piVar5,param_2,param_3,param_4,param_5,param_6);\n      piVar5[0x21] = 0;\n      *piVar5 = unaff_EDI + 0x516e67;\n      uVar6 = *(uint *)(*param_6 + 0x24);\n      piVar5[0x24] = 0;\n      piVar5[0x25] = 0;\n      piVar5[0x23] = uVar6;\n      uVar6 = uVar6 & 3;\n      piVar5[0x26] = 0;\n      piVar5[0x27] = 0;\n      if (uVar6 != 0) {\n        iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n        if (iVar2 == 0) {\n                    \n                    \n          FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12));\n        }\n        uVar9 = *(uint *)(iVar2 + 8) & 3;\n        if (uVar9 == 0) {\n          *(undefined1 *)(iVar2 + 0xc) = 1;\n          *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n          FUN_00234d00(piVar5);\n          return piVar5;\n        }\n        if (uVar6 != uVar9) {\n          iVar2 = piVar5[1];\n          uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    \n          FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n        }\n      }\n      FUN_00234d00(piVar5);\n      return piVar5;\n    }\n    uVar7 = *param_2;\n    uVar8 = gettext(&UNK_0039f517 + unaff_EDI);\n    FUN_0023b810(uVar8,uVar7,sVar1);\n    return (int *)0x0;\n  }\nLAB_000c775c:\n  piVar5 = (int *)FUN_003ac4d0(0x1c0);\n                    \n  FUN_002a0e60(piVar5,param_2,param_3,param_4,param_5,param_6);\n  piVar5[0x50] = 0;\n  *piVar5 = unaff_EDI + 0x516d5b;\n  iVar2 = *(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e);\n  piVar5[0x51] = 0;\n  piVar5[0x4f] = iVar2;\n  piVar5[0x52] = 0;\n  iVar3 = *param_6;\n  *(undefined2 *)(piVar5 + 0x53) = 0;\n  *(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e) = iVar2 + 1;\n  uVar6 = *(uint *)(iVar3 + 0x24);\n  uVar9 = 0;\n  piVar5[0x55] = 0;\n  piVar5[0x56] = 0;\n  piVar5[0x54] = uVar6;\n  piVar5[0x57] = 0;\n  piVar5[0x58] = 0;\n  piVar5[0x59] = 0;\n  piVar5[0x5a] = 0;\n  piVar5[0x5b] = 0;\n  piVar5[0x5c] = 0;\n  do {\n    *(undefined4 *)((int)piVar5 + uVar9 + 0x174) = 0;\n    uVar9 = uVar9 + 4;\n  } while (uVar9 < 0x1c);\n  uVar6 = uVar6 & 3;\n  piVar5[0x5e] = 1;\n  piVar5[0x5d] = (int)(piVar5 + 99);\n  piVar5[0x5f] = 0;\n  piVar5[0x60] = 0;\n  piVar5[0x61] = 0x3f800000;\n  piVar5[0x62] = 0;\n  piVar5[99] = 0;\n  piVar5[100] = 0;\n  piVar5[0x65] = 0;\n  piVar5[0x66] = 0;\n  piVar5[0x67] = 0;\n  piVar5[0x68] = 0;\n  piVar5[0x69] = 0;\n  piVar5[0x6a] = 0;\n  piVar5[0x6b] = 0;\n  piVar5[0x6c] = 0;\n  piVar5[0x6d] = 0;\n  piVar5[0x6e] = 0;\n  piVar5[0x6f] = 0;\n  if (uVar6 != 0) {\n    iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n    if (iVar2 == 0) {\n                    \n                    \n      FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,uVar6);\n    }\n    uVar9 = *(uint *)(iVar2 + 8) & 3;\n    if (uVar9 == 0) {\n      *(undefined1 *)(iVar2 + 0xc) = 1;\n      *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n    }\n    else if (uVar6 != uVar9) {\n      iVar2 = piVar5[1];\n      uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    \n      FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n    }\n  }\n  FUN_002945e0(piVar5);\n  return piVar5;\n}" { (declaration "short sVar1;" (sized_type_specifier "short" short) identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (expression_statement "FUN_00074f0a();" (call_expression "FUN_00074f0a()" identifier (argument_list "()" ( ))) ;) (expression_statement "sVar1 = *(short *)(*param_6 + 0x10);" (assignment_expression "sVar1 = *(short *)(*param_6 + 0x10)" identifier = (pointer_expression "*(short *)(*param_6 + 0x10)" * (cast_expression "(short *)(*param_6 + 0x10)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_6 + 0x10)" ( (binary_expression "*param_6 + 0x10" (pointer_expression "*param_6" * identifier) + number_literal) ))))) ;) (if_statement "if (sVar1 != 1) {\n    if (sVar1 == 2) {\n      cVar4 = FUN_0023df40(param_3);\n      if (cVar4 != '\0') goto LAB_000c775c;\n    }\n    else if (sVar1 == 3) {\n      piVar5 = (int *)FUN_003ac4d0(0xa0);\n                    \n      FUN_0023a130(piVar5,param_2,param_3,param_4,param_5,param_6);\n      piVar5[0x21] = 0;\n      *piVar5 = unaff_EDI + 0x516e67;\n      uVar6 = *(uint *)(*param_6 + 0x24);\n      piVar5[0x24] = 0;\n      piVar5[0x25] = 0;\n      piVar5[0x23] = uVar6;\n      uVar6 = uVar6 & 3;\n      piVar5[0x26] = 0;\n      piVar5[0x27] = 0;\n      if (uVar6 != 0) {\n        iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n        if (iVar2 == 0) {\n                    \n                    \n          FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12));\n        }\n        uVar9 = *(uint *)(iVar2 + 8) & 3;\n        if (uVar9 == 0) {\n          *(undefined1 *)(iVar2 + 0xc) = 1;\n          *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n          FUN_00234d00(piVar5);\n          return piVar5;\n        }\n        if (uVar6 != uVar9) {\n          iVar2 = piVar5[1];\n          uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    \n          FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n        }\n      }\n      FUN_00234d00(piVar5);\n      return piVar5;\n    }\n    uVar7 = *param_2;\n    uVar8 = gettext(&UNK_0039f517 + unaff_EDI);\n    FUN_0023b810(uVar8,uVar7,sVar1);\n    return (int *)0x0;\n  }" if (parenthesized_expression "(sVar1 != 1)" ( (binary_expression "sVar1 != 1" identifier != number_literal) )) (compound_statement "{\n    if (sVar1 == 2) {\n      cVar4 = FUN_0023df40(param_3);\n      if (cVar4 != '\0') goto LAB_000c775c;\n    }\n    else if (sVar1 == 3) {\n      piVar5 = (int *)FUN_003ac4d0(0xa0);\n                    \n      FUN_0023a130(piVar5,param_2,param_3,param_4,param_5,param_6);\n      piVar5[0x21] = 0;\n      *piVar5 = unaff_EDI + 0x516e67;\n      uVar6 = *(uint *)(*param_6 + 0x24);\n      piVar5[0x24] = 0;\n      piVar5[0x25] = 0;\n      piVar5[0x23] = uVar6;\n      uVar6 = uVar6 & 3;\n      piVar5[0x26] = 0;\n      piVar5[0x27] = 0;\n      if (uVar6 != 0) {\n        iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n        if (iVar2 == 0) {\n                    \n                    \n          FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12));\n        }\n        uVar9 = *(uint *)(iVar2 + 8) & 3;\n        if (uVar9 == 0) {\n          *(undefined1 *)(iVar2 + 0xc) = 1;\n          *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n          FUN_00234d00(piVar5);\n          return piVar5;\n        }\n        if (uVar6 != uVar9) {\n          iVar2 = piVar5[1];\n          uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    \n          FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n        }\n      }\n      FUN_00234d00(piVar5);\n      return piVar5;\n    }\n    uVar7 = *param_2;\n    uVar8 = gettext(&UNK_0039f517 + unaff_EDI);\n    FUN_0023b810(uVar8,uVar7,sVar1);\n    return (int *)0x0;\n  }" { (if_statement "if (sVar1 == 2) {\n      cVar4 = FUN_0023df40(param_3);\n      if (cVar4 != '\0') goto LAB_000c775c;\n    }\n    else if (sVar1 == 3) {\n      piVar5 = (int *)FUN_003ac4d0(0xa0);\n                    \n      FUN_0023a130(piVar5,param_2,param_3,param_4,param_5,param_6);\n      piVar5[0x21] = 0;\n      *piVar5 = unaff_EDI + 0x516e67;\n      uVar6 = *(uint *)(*param_6 + 0x24);\n      piVar5[0x24] = 0;\n      piVar5[0x25] = 0;\n      piVar5[0x23] = uVar6;\n      uVar6 = uVar6 & 3;\n      piVar5[0x26] = 0;\n      piVar5[0x27] = 0;\n      if (uVar6 != 0) {\n        iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n        if (iVar2 == 0) {\n                    \n                    \n          FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12));\n        }\n        uVar9 = *(uint *)(iVar2 + 8) & 3;\n        if (uVar9 == 0) {\n          *(undefined1 *)(iVar2 + 0xc) = 1;\n          *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n          FUN_00234d00(piVar5);\n          return piVar5;\n        }\n        if (uVar6 != uVar9) {\n          iVar2 = piVar5[1];\n          uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    \n          FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n        }\n      }\n      FUN_00234d00(piVar5);\n      return piVar5;\n    }" if (parenthesized_expression "(sVar1 == 2)" ( (binary_expression "sVar1 == 2" identifier == number_literal) )) (compound_statement "{\n      cVar4 = FUN_0023df40(param_3);\n      if (cVar4 != '\0') goto LAB_000c775c;\n    }" { (expression_statement "cVar4 = FUN_0023df40(param_3);" (assignment_expression "cVar4 = FUN_0023df40(param_3)" identifier = (call_expression "FUN_0023df40(param_3)" identifier (argument_list "(param_3)" ( identifier )))) ;) (if_statement "if (cVar4 != '\0') goto LAB_000c775c;" if (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000c775c;" goto statement_identifier ;)) }) (else_clause "else if (sVar1 == 3) {\n      piVar5 = (int *)FUN_003ac4d0(0xa0);\n                    \n      FUN_0023a130(piVar5,param_2,param_3,param_4,param_5,param_6);\n      piVar5[0x21] = 0;\n      *piVar5 = unaff_EDI + 0x516e67;\n      uVar6 = *(uint *)(*param_6 + 0x24);\n      piVar5[0x24] = 0;\n      piVar5[0x25] = 0;\n      piVar5[0x23] = uVar6;\n      uVar6 = uVar6 & 3;\n      piVar5[0x26] = 0;\n      piVar5[0x27] = 0;\n      if (uVar6 != 0) {\n        iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n        if (iVar2 == 0) {\n                    \n                    \n          FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12));\n        }\n        uVar9 = *(uint *)(iVar2 + 8) & 3;\n        if (uVar9 == 0) {\n          *(undefined1 *)(iVar2 + 0xc) = 1;\n          *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n          FUN_00234d00(piVar5);\n          return piVar5;\n        }\n        if (uVar6 != uVar9) {\n          iVar2 = piVar5[1];\n          uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    \n          FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n        }\n      }\n      FUN_00234d00(piVar5);\n      return piVar5;\n    }" else (if_statement "if (sVar1 == 3) {\n      piVar5 = (int *)FUN_003ac4d0(0xa0);\n                    \n      FUN_0023a130(piVar5,param_2,param_3,param_4,param_5,param_6);\n      piVar5[0x21] = 0;\n      *piVar5 = unaff_EDI + 0x516e67;\n      uVar6 = *(uint *)(*param_6 + 0x24);\n      piVar5[0x24] = 0;\n      piVar5[0x25] = 0;\n      piVar5[0x23] = uVar6;\n      uVar6 = uVar6 & 3;\n      piVar5[0x26] = 0;\n      piVar5[0x27] = 0;\n      if (uVar6 != 0) {\n        iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n        if (iVar2 == 0) {\n                    \n                    \n          FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12));\n        }\n        uVar9 = *(uint *)(iVar2 + 8) & 3;\n        if (uVar9 == 0) {\n          *(undefined1 *)(iVar2 + 0xc) = 1;\n          *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n          FUN_00234d00(piVar5);\n          return piVar5;\n        }\n        if (uVar6 != uVar9) {\n          iVar2 = piVar5[1];\n          uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    \n          FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n        }\n      }\n      FUN_00234d00(piVar5);\n      return piVar5;\n    }" if (parenthesized_expression "(sVar1 == 3)" ( (binary_expression "sVar1 == 3" identifier == number_literal) )) (compound_statement "{\n      piVar5 = (int *)FUN_003ac4d0(0xa0);\n                    \n      FUN_0023a130(piVar5,param_2,param_3,param_4,param_5,param_6);\n      piVar5[0x21] = 0;\n      *piVar5 = unaff_EDI + 0x516e67;\n      uVar6 = *(uint *)(*param_6 + 0x24);\n      piVar5[0x24] = 0;\n      piVar5[0x25] = 0;\n      piVar5[0x23] = uVar6;\n      uVar6 = uVar6 & 3;\n      piVar5[0x26] = 0;\n      piVar5[0x27] = 0;\n      if (uVar6 != 0) {\n        iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n        if (iVar2 == 0) {\n                    \n                    \n          FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12));\n        }\n        uVar9 = *(uint *)(iVar2 + 8) & 3;\n        if (uVar9 == 0) {\n          *(undefined1 *)(iVar2 + 0xc) = 1;\n          *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n          FUN_00234d00(piVar5);\n          return piVar5;\n        }\n        if (uVar6 != uVar9) {\n          iVar2 = piVar5[1];\n          uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    \n          FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n        }\n      }\n      FUN_00234d00(piVar5);\n      return piVar5;\n    }" { (expression_statement "piVar5 = (int *)FUN_003ac4d0(0xa0);" (assignment_expression "piVar5 = (int *)FUN_003ac4d0(0xa0)" identifier = (cast_expression "(int *)FUN_003ac4d0(0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_003ac4d0(0xa0)" identifier (argument_list "(0xa0)" ( number_literal ))))) ;) (expression_statement "FUN_0023a130(piVar5,param_2,param_3,param_4,param_5,param_6);" (call_expression "FUN_0023a130(piVar5,param_2,param_3,param_4,param_5,param_6)" identifier (argument_list "(piVar5,param_2,param_3,param_4,param_5,param_6)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "piVar5[0x21] = 0;" (assignment_expression "piVar5[0x21] = 0" (subscript_expression "piVar5[0x21]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*piVar5 = unaff_EDI + 0x516e67;" (assignment_expression "*piVar5 = unaff_EDI + 0x516e67" (pointer_expression "*piVar5" * identifier) = (binary_expression "unaff_EDI + 0x516e67" identifier + number_literal)) ;) (expression_statement "uVar6 = *(uint *)(*param_6 + 0x24);" (assignment_expression "uVar6 = *(uint *)(*param_6 + 0x24)" identifier = (pointer_expression "*(uint *)(*param_6 + 0x24)" * (cast_expression "(uint *)(*param_6 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_6 + 0x24)" ( (binary_expression "*param_6 + 0x24" (pointer_expression "*param_6" * identifier) + number_literal) ))))) ;) (expression_statement "piVar5[0x24] = 0;" (assignment_expression "piVar5[0x24] = 0" (subscript_expression "piVar5[0x24]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x25] = 0;" (assignment_expression "piVar5[0x25] = 0" (subscript_expression "piVar5[0x25]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x23] = uVar6;" (assignment_expression "piVar5[0x23] = uVar6" (subscript_expression "piVar5[0x23]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar6 = uVar6 & 3;" (assignment_expression "uVar6 = uVar6 & 3" identifier = (binary_expression "uVar6 & 3" identifier & number_literal)) ;) (expression_statement "piVar5[0x26] = 0;" (assignment_expression "piVar5[0x26] = 0" (subscript_expression "piVar5[0x26]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x27] = 0;" (assignment_expression "piVar5[0x27] = 0" (subscript_expression "piVar5[0x27]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (uVar6 != 0) {\n        iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n        if (iVar2 == 0) {\n                    \n                    \n          FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12));\n        }\n        uVar9 = *(uint *)(iVar2 + 8) & 3;\n        if (uVar9 == 0) {\n          *(undefined1 *)(iVar2 + 0xc) = 1;\n          *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n          FUN_00234d00(piVar5);\n          return piVar5;\n        }\n        if (uVar6 != uVar9) {\n          iVar2 = piVar5[1];\n          uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    \n          FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n        }\n      }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n        if (iVar2 == 0) {\n                    \n                    \n          FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12));\n        }\n        uVar9 = *(uint *)(iVar2 + 8) & 3;\n        if (uVar9 == 0) {\n          *(undefined1 *)(iVar2 + 0xc) = 1;\n          *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n          FUN_00234d00(piVar5);\n          return piVar5;\n        }\n        if (uVar6 != uVar9) {\n          iVar2 = piVar5[1];\n          uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    \n          FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n        }\n      }" { (expression_statement "iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);" (assignment_expression "iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc)" identifier = (pointer_expression "*(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc)" * (cast_expression "(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc)" ( (binary_expression "*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc" (pointer_expression "*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12)" * (cast_expression "(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(BYTE_ARRAY_005231ed + unaff_EDI + 0x12)" ( (binary_expression "BYTE_ARRAY_005231ed + unaff_EDI + 0x12" (binary_expression "BYTE_ARRAY_005231ed + unaff_EDI" identifier + identifier) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (iVar2 == 0) {\n                    \n                    \n          FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12));\n        }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n                    \n          FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12));\n        }" { (expression_statement "FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12));" (call_expression "FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12))" identifier (argument_list "(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12))" ( (binary_expression "unaff_EDI + 0x380ca4" identifier + number_literal) , number_literal , (binary_expression "&UNK_0039d327 + unaff_EDI" (pointer_expression "&UNK_0039d327" & identifier) + identifier) , (pointer_expression "*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12)" * (cast_expression "(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(BYTE_ARRAY_005231ed + unaff_EDI + 0x12)" ( (binary_expression "BYTE_ARRAY_005231ed + unaff_EDI + 0x12" (binary_expression "BYTE_ARRAY_005231ed + unaff_EDI" identifier + identifier) + number_literal) )))) ))) ;) })) (expression_statement "uVar9 = *(uint *)(iVar2 + 8) & 3;" (assignment_expression "uVar9 = *(uint *)(iVar2 + 8) & 3" identifier = (binary_expression "*(uint *)(iVar2 + 8) & 3" (pointer_expression "*(uint *)(iVar2 + 8)" * (cast_expression "(uint *)(iVar2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (uVar9 == 0) {\n          *(undefined1 *)(iVar2 + 0xc) = 1;\n          *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n          FUN_00234d00(piVar5);\n          return piVar5;\n        }" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (compound_statement "{\n          *(undefined1 *)(iVar2 + 0xc) = 1;\n          *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n          FUN_00234d00(piVar5);\n          return piVar5;\n        }" { (expression_statement "*(undefined1 *)(iVar2 + 0xc) = 1;" (assignment_expression "*(undefined1 *)(iVar2 + 0xc) = 1" (pointer_expression "*(undefined1 *)(iVar2 + 0xc)" * (cast_expression "(undefined1 *)(iVar2 + 0xc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;" (assignment_expression "*(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6" (pointer_expression "*(uint *)(iVar2 + 8)" * (cast_expression "(uint *)(iVar2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar2 + 8) & 0xfffffffc | uVar6" (binary_expression "*(uint *)(iVar2 + 8) & 0xfffffffc" (pointer_expression "*(uint *)(iVar2 + 8)" * (cast_expression "(uint *)(iVar2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) & number_literal) | identifier)) ;) (expression_statement "FUN_00234d00(piVar5);" (call_expression "FUN_00234d00(piVar5)" identifier (argument_list "(piVar5)" ( identifier ))) ;) (return_statement "return piVar5;" return identifier ;) })) (if_statement "if (uVar6 != uVar9) {\n          iVar2 = piVar5[1];\n          uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    \n          FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n        }" if (parenthesized_expression "(uVar6 != uVar9)" ( (binary_expression "uVar6 != uVar9" identifier != identifier) )) (compound_statement "{\n          iVar2 = piVar5[1];\n          uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    \n          FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n        }" { (expression_statement "iVar2 = piVar5[1];" (assignment_expression "iVar2 = piVar5[1]" identifier = (subscript_expression "piVar5[1]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = gettext(&UNK_0039f4af + unaff_EDI);" (assignment_expression "uVar7 = gettext(&UNK_0039f4af + unaff_EDI)" identifier = (call_expression "gettext(&UNK_0039f4af + unaff_EDI)" identifier (argument_list "(&UNK_0039f4af + unaff_EDI)" ( (binary_expression "&UNK_0039f4af + unaff_EDI" (pointer_expression "&UNK_0039f4af" & identifier) + identifier) )))) ;) (expression_statement "FUN_0023b810(uVar7,iVar2,uVar6,uVar9);" (call_expression "FUN_0023b810(uVar7,iVar2,uVar6,uVar9)" identifier (argument_list "(uVar7,iVar2,uVar6,uVar9)" ( identifier , identifier , identifier , identifier ))) ;) })) })) (expression_statement "FUN_00234d00(piVar5);" (call_expression "FUN_00234d00(piVar5)" identifier (argument_list "(piVar5)" ( identifier ))) ;) (return_statement "return piVar5;" return identifier ;) })))) (expression_statement "uVar7 = *param_2;" (assignment_expression "uVar7 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "uVar8 = gettext(&UNK_0039f517 + unaff_EDI);" (assignment_expression "uVar8 = gettext(&UNK_0039f517 + unaff_EDI)" identifier = (call_expression "gettext(&UNK_0039f517 + unaff_EDI)" identifier (argument_list "(&UNK_0039f517 + unaff_EDI)" ( (binary_expression "&UNK_0039f517 + unaff_EDI" (pointer_expression "&UNK_0039f517" & identifier) + identifier) )))) ;) (expression_statement "FUN_0023b810(uVar8,uVar7,sVar1);" (call_expression "FUN_0023b810(uVar8,uVar7,sVar1)" identifier (argument_list "(uVar8,uVar7,sVar1)" ( identifier , identifier , identifier ))) ;) (return_statement "return (int *)0x0;" return (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (labeled_statement "LAB_000c775c:\n  piVar5 = (int *)FUN_003ac4d0(0x1c0);" statement_identifier : (expression_statement "piVar5 = (int *)FUN_003ac4d0(0x1c0);" (assignment_expression "piVar5 = (int *)FUN_003ac4d0(0x1c0)" identifier = (cast_expression "(int *)FUN_003ac4d0(0x1c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_003ac4d0(0x1c0)" identifier (argument_list "(0x1c0)" ( number_literal ))))) ;)) (expression_statement "FUN_002a0e60(piVar5,param_2,param_3,param_4,param_5,param_6);" (call_expression "FUN_002a0e60(piVar5,param_2,param_3,param_4,param_5,param_6)" identifier (argument_list "(piVar5,param_2,param_3,param_4,param_5,param_6)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "piVar5[0x50] = 0;" (assignment_expression "piVar5[0x50] = 0" (subscript_expression "piVar5[0x50]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*piVar5 = unaff_EDI + 0x516d5b;" (assignment_expression "*piVar5 = unaff_EDI + 0x516d5b" (pointer_expression "*piVar5" * identifier) = (binary_expression "unaff_EDI + 0x516d5b" identifier + number_literal)) ;) (expression_statement "iVar2 = *(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e);" (assignment_expression "iVar2 = *(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e)" identifier = (pointer_expression "*(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e)" * (cast_expression "(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e)" ( (binary_expression "BYTE_ARRAY_005235ad + unaff_EDI + 0x1e" (binary_expression "BYTE_ARRAY_005235ad + unaff_EDI" identifier + identifier) + number_literal) ))))) ;) (expression_statement "piVar5[0x51] = 0;" (assignment_expression "piVar5[0x51] = 0" (subscript_expression "piVar5[0x51]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x4f] = iVar2;" (assignment_expression "piVar5[0x4f] = iVar2" (subscript_expression "piVar5[0x4f]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar5[0x52] = 0;" (assignment_expression "piVar5[0x52] = 0" (subscript_expression "piVar5[0x52]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar3 = *param_6;" (assignment_expression "iVar3 = *param_6" identifier = (pointer_expression "*param_6" * identifier)) ;) (expression_statement "*(undefined2 *)(piVar5 + 0x53) = 0;" (assignment_expression "*(undefined2 *)(piVar5 + 0x53) = 0" (pointer_expression "*(undefined2 *)(piVar5 + 0x53)" * (cast_expression "(undefined2 *)(piVar5 + 0x53)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 0x53)" ( (binary_expression "piVar5 + 0x53" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e) = iVar2 + 1;" (assignment_expression "*(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e) = iVar2 + 1" (pointer_expression "*(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e)" * (cast_expression "(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e)" ( (binary_expression "BYTE_ARRAY_005235ad + unaff_EDI + 0x1e" (binary_expression "BYTE_ARRAY_005235ad + unaff_EDI" identifier + identifier) + number_literal) )))) = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) (expression_statement "uVar6 = *(uint *)(iVar3 + 0x24);" (assignment_expression "uVar6 = *(uint *)(iVar3 + 0x24)" identifier = (pointer_expression "*(uint *)(iVar3 + 0x24)" * (cast_expression "(uint *)(iVar3 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x24)" ( (binary_expression "iVar3 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "piVar5[0x55] = 0;" (assignment_expression "piVar5[0x55] = 0" (subscript_expression "piVar5[0x55]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x56] = 0;" (assignment_expression "piVar5[0x56] = 0" (subscript_expression "piVar5[0x56]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x54] = uVar6;" (assignment_expression "piVar5[0x54] = uVar6" (subscript_expression "piVar5[0x54]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar5[0x57] = 0;" (assignment_expression "piVar5[0x57] = 0" (subscript_expression "piVar5[0x57]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x58] = 0;" (assignment_expression "piVar5[0x58] = 0" (subscript_expression "piVar5[0x58]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x59] = 0;" (assignment_expression "piVar5[0x59] = 0" (subscript_expression "piVar5[0x59]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x5a] = 0;" (assignment_expression "piVar5[0x5a] = 0" (subscript_expression "piVar5[0x5a]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x5b] = 0;" (assignment_expression "piVar5[0x5b] = 0" (subscript_expression "piVar5[0x5b]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x5c] = 0;" (assignment_expression "piVar5[0x5c] = 0" (subscript_expression "piVar5[0x5c]" identifier [ number_literal ]) = number_literal) ;) (do_statement "do {\n    *(undefined4 *)((int)piVar5 + uVar9 + 0x174) = 0;\n    uVar9 = uVar9 + 4;\n  } while (uVar9 < 0x1c);" do (compound_statement "{\n    *(undefined4 *)((int)piVar5 + uVar9 + 0x174) = 0;\n    uVar9 = uVar9 + 4;\n  }" { (expression_statement "*(undefined4 *)((int)piVar5 + uVar9 + 0x174) = 0;" (assignment_expression "*(undefined4 *)((int)piVar5 + uVar9 + 0x174) = 0" (pointer_expression "*(undefined4 *)((int)piVar5 + uVar9 + 0x174)" * (cast_expression "(undefined4 *)((int)piVar5 + uVar9 + 0x174)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar5 + uVar9 + 0x174)" ( (binary_expression "(int)piVar5 + uVar9 + 0x174" (binary_expression "(int)piVar5 + uVar9" (cast_expression "(int)piVar5" ( (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 "uVar6 = uVar6 & 3;" (assignment_expression "uVar6 = uVar6 & 3" identifier = (binary_expression "uVar6 & 3" identifier & number_literal)) ;) (expression_statement "piVar5[0x5e] = 1;" (assignment_expression "piVar5[0x5e] = 1" (subscript_expression "piVar5[0x5e]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x5d] = (int)(piVar5 + 99);" (assignment_expression "piVar5[0x5d] = (int)(piVar5 + 99)" (subscript_expression "piVar5[0x5d]" identifier [ number_literal ]) = (cast_expression "(int)(piVar5 + 99)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar5 + 99)" ( (binary_expression "piVar5 + 99" identifier + number_literal) )))) ;) (expression_statement "piVar5[0x5f] = 0;" (assignment_expression "piVar5[0x5f] = 0" (subscript_expression "piVar5[0x5f]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x60] = 0;" (assignment_expression "piVar5[0x60] = 0" (subscript_expression "piVar5[0x60]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x61] = 0x3f800000;" (assignment_expression "piVar5[0x61] = 0x3f800000" (subscript_expression "piVar5[0x61]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x62] = 0;" (assignment_expression "piVar5[0x62] = 0" (subscript_expression "piVar5[0x62]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[99] = 0;" (assignment_expression "piVar5[99] = 0" (subscript_expression "piVar5[99]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[100] = 0;" (assignment_expression "piVar5[100] = 0" (subscript_expression "piVar5[100]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x65] = 0;" (assignment_expression "piVar5[0x65] = 0" (subscript_expression "piVar5[0x65]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x66] = 0;" (assignment_expression "piVar5[0x66] = 0" (subscript_expression "piVar5[0x66]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x67] = 0;" (assignment_expression "piVar5[0x67] = 0" (subscript_expression "piVar5[0x67]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x68] = 0;" (assignment_expression "piVar5[0x68] = 0" (subscript_expression "piVar5[0x68]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x69] = 0;" (assignment_expression "piVar5[0x69] = 0" (subscript_expression "piVar5[0x69]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x6a] = 0;" (assignment_expression "piVar5[0x6a] = 0" (subscript_expression "piVar5[0x6a]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x6b] = 0;" (assignment_expression "piVar5[0x6b] = 0" (subscript_expression "piVar5[0x6b]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x6c] = 0;" (assignment_expression "piVar5[0x6c] = 0" (subscript_expression "piVar5[0x6c]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x6d] = 0;" (assignment_expression "piVar5[0x6d] = 0" (subscript_expression "piVar5[0x6d]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x6e] = 0;" (assignment_expression "piVar5[0x6e] = 0" (subscript_expression "piVar5[0x6e]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[0x6f] = 0;" (assignment_expression "piVar5[0x6f] = 0" (subscript_expression "piVar5[0x6f]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (uVar6 != 0) {\n    iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n    if (iVar2 == 0) {\n                    \n                    \n      FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,uVar6);\n    }\n    uVar9 = *(uint *)(iVar2 + 8) & 3;\n    if (uVar9 == 0) {\n      *(undefined1 *)(iVar2 + 0xc) = 1;\n      *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n    }\n    else if (uVar6 != uVar9) {\n      iVar2 = piVar5[1];\n      uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    \n      FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n    }\n  }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n    if (iVar2 == 0) {\n                    \n                    \n      FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,uVar6);\n    }\n    uVar9 = *(uint *)(iVar2 + 8) & 3;\n    if (uVar9 == 0) {\n      *(undefined1 *)(iVar2 + 0xc) = 1;\n      *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n    }\n    else if (uVar6 != uVar9) {\n      iVar2 = piVar5[1];\n      uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    \n      FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n    }\n  }" { (expression_statement "iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);" (assignment_expression "iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc)" identifier = (pointer_expression "*(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc)" * (cast_expression "(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc)" ( (binary_expression "*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc" (pointer_expression "*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12)" * (cast_expression "(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(BYTE_ARRAY_005231ed + unaff_EDI + 0x12)" ( (binary_expression "BYTE_ARRAY_005231ed + unaff_EDI + 0x12" (binary_expression "BYTE_ARRAY_005231ed + unaff_EDI" identifier + identifier) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (iVar2 == 0) {\n                    \n                    \n      FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,uVar6);\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n                    \n      FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,uVar6);\n    }" { (expression_statement "FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,uVar6);" (call_expression "FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,uVar6)" identifier (argument_list "(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,uVar6)" ( (binary_expression "unaff_EDI + 0x380ca4" identifier + number_literal) , number_literal , (binary_expression "&UNK_0039d327 + unaff_EDI" (pointer_expression "&UNK_0039d327" & identifier) + identifier) , identifier ))) ;) })) (expression_statement "uVar9 = *(uint *)(iVar2 + 8) & 3;" (assignment_expression "uVar9 = *(uint *)(iVar2 + 8) & 3" identifier = (binary_expression "*(uint *)(iVar2 + 8) & 3" (pointer_expression "*(uint *)(iVar2 + 8)" * (cast_expression "(uint *)(iVar2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (uVar9 == 0) {\n      *(undefined1 *)(iVar2 + 0xc) = 1;\n      *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n    }\n    else if (uVar6 != uVar9) {\n      iVar2 = piVar5[1];\n      uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    \n      FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n    }" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (compound_statement "{\n      *(undefined1 *)(iVar2 + 0xc) = 1;\n      *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n    }" { (expression_statement "*(undefined1 *)(iVar2 + 0xc) = 1;" (assignment_expression "*(undefined1 *)(iVar2 + 0xc) = 1" (pointer_expression "*(undefined1 *)(iVar2 + 0xc)" * (cast_expression "(undefined1 *)(iVar2 + 0xc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;" (assignment_expression "*(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6" (pointer_expression "*(uint *)(iVar2 + 8)" * (cast_expression "(uint *)(iVar2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar2 + 8) & 0xfffffffc | uVar6" (binary_expression "*(uint *)(iVar2 + 8) & 0xfffffffc" (pointer_expression "*(uint *)(iVar2 + 8)" * (cast_expression "(uint *)(iVar2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) & number_literal) | identifier)) ;) }) (else_clause "else if (uVar6 != uVar9) {\n      iVar2 = piVar5[1];\n      uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    \n      FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n    }" else (if_statement "if (uVar6 != uVar9) {\n      iVar2 = piVar5[1];\n      uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    \n      FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n    }" if (parenthesized_expression "(uVar6 != uVar9)" ( (binary_expression "uVar6 != uVar9" identifier != identifier) )) (compound_statement "{\n      iVar2 = piVar5[1];\n      uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    \n      FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n    }" { (expression_statement "iVar2 = piVar5[1];" (assignment_expression "iVar2 = piVar5[1]" identifier = (subscript_expression "piVar5[1]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = gettext(&UNK_0039f4af + unaff_EDI);" (assignment_expression "uVar7 = gettext(&UNK_0039f4af + unaff_EDI)" identifier = (call_expression "gettext(&UNK_0039f4af + unaff_EDI)" identifier (argument_list "(&UNK_0039f4af + unaff_EDI)" ( (binary_expression "&UNK_0039f4af + unaff_EDI" (pointer_expression "&UNK_0039f4af" & identifier) + identifier) )))) ;) (expression_statement "FUN_0023b810(uVar7,iVar2,uVar6,uVar9);" (call_expression "FUN_0023b810(uVar7,iVar2,uVar6,uVar9)" identifier (argument_list "(uVar7,iVar2,uVar6,uVar9)" ( identifier , identifier , identifier , identifier ))) ;) })))) })) (expression_statement "FUN_002945e0(piVar5);" (call_expression "FUN_002945e0(piVar5)" identifier (argument_list "(piVar5)" ( identifier ))) ;) (return_statement "return piVar5;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) )))) (compound_statement { (declaration (sized_type_specifier short) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_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 ]) = IDENT) ;) (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) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression (pointer_expression & IDENT) + IDENT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )))) ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) })) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return IDENT ;) })))) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + 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 IDENT = (pointer_expression * 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 (binary_expression IDENT + IDENT) + LIT) )))) = (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 = 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 ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 IDENT = (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) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression (pointer_expression & IDENT) + IDENT) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | IDENT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) })))) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return IDENT ;) })))
(function_definition "int * FUN_000c75c0(undefined4 param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4,\n                  undefined4 param_5,int *param_6)\n\n{\n  short sVar1;\n  int iVar2;\n  int iVar3;\n  char cVar4;\n  int *piVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  int unaff_EDI;\n  \n  FUN_00074f0a();\n  sVar1 = *(short *)(*param_6 + 0x10);\n  if (sVar1 != 1) {\n    if (sVar1 == 2) {\n      cVar4 = FUN_0023df40(param_3);\n      if (cVar4 != '\0') goto LAB_000c775c;\n    }\n    else if (sVar1 == 3) {\n      piVar5 = (int *)FUN_003ac4d0(0xa0);\n                    \n      FUN_0023a130(piVar5,param_2,param_3,param_4,param_5,param_6);\n      piVar5[0x21] = 0;\n      *piVar5 = unaff_EDI + 0x516e67;\n      uVar6 = *(uint *)(*param_6 + 0x24);\n      piVar5[0x24] = 0;\n      piVar5[0x25] = 0;\n      piVar5[0x23] = uVar6;\n      uVar6 = uVar6 & 3;\n      piVar5[0x26] = 0;\n      piVar5[0x27] = 0;\n      if (uVar6 != 0) {\n        iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n        if (iVar2 == 0) {\n                    \n                    \n          FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12));\n        }\n        uVar9 = *(uint *)(iVar2 + 8) & 3;\n        if (uVar9 == 0) {\n          *(undefined1 *)(iVar2 + 0xc) = 1;\n          *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n          FUN_00234d00(piVar5);\n          return piVar5;\n        }\n        if (uVar6 != uVar9) {\n          iVar2 = piVar5[1];\n          uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    \n          FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n        }\n      }\n      FUN_00234d00(piVar5);\n      return piVar5;\n    }\n    uVar7 = *param_2;\n    uVar8 = gettext(&UNK_0039f517 + unaff_EDI);\n    FUN_0023b810(uVar8,uVar7,sVar1);\n    return (int *)0x0;\n  }\nLAB_000c775c:\n  piVar5 = (int *)FUN_003ac4d0(0x1c0);\n                    \n  FUN_002a0e60(piVar5,param_2,param_3,param_4,param_5,param_6);\n  piVar5[0x50] = 0;\n  *piVar5 = unaff_EDI + 0x516d5b;\n  iVar2 = *(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e);\n  piVar5[0x51] = 0;\n  piVar5[0x4f] = iVar2;\n  piVar5[0x52] = 0;\n  iVar3 = *param_6;\n  *(undefined2 *)(piVar5 + 0x53) = 0;\n  *(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e) = iVar2 + 1;\n  uVar6 = *(uint *)(iVar3 + 0x24);\n  uVar9 = 0;\n  piVar5[0x55] = 0;\n  piVar5[0x56] = 0;\n  piVar5[0x54] = uVar6;\n  piVar5[0x57] = 0;\n  piVar5[0x58] = 0;\n  piVar5[0x59] = 0;\n  piVar5[0x5a] = 0;\n  piVar5[0x5b] = 0;\n  piVar5[0x5c] = 0;\n  do {\n    *(undefined4 *)((int)piVar5 + uVar9 + 0x174) = 0;\n    uVar9 = uVar9 + 4;\n  } while (uVar9 < 0x1c);\n  uVar6 = uVar6 & 3;\n  piVar5[0x5e] = 1;\n  piVar5[0x5d] = (int)(piVar5 + 99);\n  piVar5[0x5f] = 0;\n  piVar5[0x60] = 0;\n  piVar5[0x61] = 0x3f800000;\n  piVar5[0x62] = 0;\n  piVar5[99] = 0;\n  piVar5[100] = 0;\n  piVar5[0x65] = 0;\n  piVar5[0x66] = 0;\n  piVar5[0x67] = 0;\n  piVar5[0x68] = 0;\n  piVar5[0x69] = 0;\n  piVar5[0x6a] = 0;\n  piVar5[0x6b] = 0;\n  piVar5[0x6c] = 0;\n  piVar5[0x6d] = 0;\n  piVar5[0x6e] = 0;\n  piVar5[0x6f] = 0;\n  if (uVar6 != 0) {\n    iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n    if (iVar2 == 0) {\n                    \n                    \n      FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,uVar6);\n    }\n    uVar9 = *(uint *)(iVar2 + 8) & 3;\n    if (uVar9 == 0) {\n      *(undefined1 *)(iVar2 + 0xc) = 1;\n      *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n    }\n    else if (uVar6 != uVar9) {\n      iVar2 = piVar5[1];\n      uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    \n      FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n    }\n  }\n  FUN_002945e0(piVar5);\n  return piVar5;\n}" (primitive_type "int") (pointer_declarator "* FUN_000c75c0(undefined4 param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4,\n                  undefined4 param_5,int *param_6)" (* "*") (function_declarator "FUN_000c75c0(undefined4 param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4,\n                  undefined4 param_5,int *param_6)" (identifier "FUN_000c75c0") (parameter_list "(undefined4 param_1,undefined4 *param_2,undefined4 param_3,undefined4 param_4,\n                  undefined4 param_5,int *param_6)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 *param_2" (type_identifier "undefined4") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) (, ",") (parameter_declaration "undefined4 param_5" (type_identifier "undefined4") (identifier "param_5")) (, ",") (parameter_declaration "int *param_6" (primitive_type "int") (pointer_declarator "*param_6" (* "*") (identifier "param_6"))) () ")")))) (compound_statement "{\n  short sVar1;\n  int iVar2;\n  int iVar3;\n  char cVar4;\n  int *piVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  int unaff_EDI;\n  \n  FUN_00074f0a();\n  sVar1 = *(short *)(*param_6 + 0x10);\n  if (sVar1 != 1) {\n    if (sVar1 == 2) {\n      cVar4 = FUN_0023df40(param_3);\n      if (cVar4 != '\0') goto LAB_000c775c;\n    }\n    else if (sVar1 == 3) {\n      piVar5 = (int *)FUN_003ac4d0(0xa0);\n                    \n      FUN_0023a130(piVar5,param_2,param_3,param_4,param_5,param_6);\n      piVar5[0x21] = 0;\n      *piVar5 = unaff_EDI + 0x516e67;\n      uVar6 = *(uint *)(*param_6 + 0x24);\n      piVar5[0x24] = 0;\n      piVar5[0x25] = 0;\n      piVar5[0x23] = uVar6;\n      uVar6 = uVar6 & 3;\n      piVar5[0x26] = 0;\n      piVar5[0x27] = 0;\n      if (uVar6 != 0) {\n        iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n        if (iVar2 == 0) {\n                    \n                    \n          FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12));\n        }\n        uVar9 = *(uint *)(iVar2 + 8) & 3;\n        if (uVar9 == 0) {\n          *(undefined1 *)(iVar2 + 0xc) = 1;\n          *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n          FUN_00234d00(piVar5);\n          return piVar5;\n        }\n        if (uVar6 != uVar9) {\n          iVar2 = piVar5[1];\n          uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    \n          FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n        }\n      }\n      FUN_00234d00(piVar5);\n      return piVar5;\n    }\n    uVar7 = *param_2;\n    uVar8 = gettext(&UNK_0039f517 + unaff_EDI);\n    FUN_0023b810(uVar8,uVar7,sVar1);\n    return (int *)0x0;\n  }\nLAB_000c775c:\n  piVar5 = (int *)FUN_003ac4d0(0x1c0);\n                    \n  FUN_002a0e60(piVar5,param_2,param_3,param_4,param_5,param_6);\n  piVar5[0x50] = 0;\n  *piVar5 = unaff_EDI + 0x516d5b;\n  iVar2 = *(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e);\n  piVar5[0x51] = 0;\n  piVar5[0x4f] = iVar2;\n  piVar5[0x52] = 0;\n  iVar3 = *param_6;\n  *(undefined2 *)(piVar5 + 0x53) = 0;\n  *(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e) = iVar2 + 1;\n  uVar6 = *(uint *)(iVar3 + 0x24);\n  uVar9 = 0;\n  piVar5[0x55] = 0;\n  piVar5[0x56] = 0;\n  piVar5[0x54] = uVar6;\n  piVar5[0x57] = 0;\n  piVar5[0x58] = 0;\n  piVar5[0x59] = 0;\n  piVar5[0x5a] = 0;\n  piVar5[0x5b] = 0;\n  piVar5[0x5c] = 0;\n  do {\n    *(undefined4 *)((int)piVar5 + uVar9 + 0x174) = 0;\n    uVar9 = uVar9 + 4;\n  } while (uVar9 < 0x1c);\n  uVar6 = uVar6 & 3;\n  piVar5[0x5e] = 1;\n  piVar5[0x5d] = (int)(piVar5 + 99);\n  piVar5[0x5f] = 0;\n  piVar5[0x60] = 0;\n  piVar5[0x61] = 0x3f800000;\n  piVar5[0x62] = 0;\n  piVar5[99] = 0;\n  piVar5[100] = 0;\n  piVar5[0x65] = 0;\n  piVar5[0x66] = 0;\n  piVar5[0x67] = 0;\n  piVar5[0x68] = 0;\n  piVar5[0x69] = 0;\n  piVar5[0x6a] = 0;\n  piVar5[0x6b] = 0;\n  piVar5[0x6c] = 0;\n  piVar5[0x6d] = 0;\n  piVar5[0x6e] = 0;\n  piVar5[0x6f] = 0;\n  if (uVar6 != 0) {\n    iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n    if (iVar2 == 0) {\n                    \n                    \n      FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,uVar6);\n    }\n    uVar9 = *(uint *)(iVar2 + 8) & 3;\n    if (uVar9 == 0) {\n      *(undefined1 *)(iVar2 + 0xc) = 1;\n      *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n    }\n    else if (uVar6 != uVar9) {\n      iVar2 = piVar5[1];\n      uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    \n      FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n    }\n  }\n  FUN_002945e0(piVar5);\n  return piVar5;\n}" ({ "{") (declaration "short sVar1;" (sized_type_specifier "short" (short "short")) (identifier "sVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "char cVar4;" (primitive_type "char") (identifier "cVar4") (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "int unaff_EDI;" (primitive_type "int") (identifier "unaff_EDI") (; ";")) (expression_statement "FUN_00074f0a();" (call_expression "FUN_00074f0a()" (identifier "FUN_00074f0a") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "sVar1 = *(short *)(*param_6 + 0x10);" (assignment_expression "sVar1 = *(short *)(*param_6 + 0x10)" (identifier "sVar1") (= "=") (pointer_expression "*(short *)(*param_6 + 0x10)" (* "*") (cast_expression "(short *)(*param_6 + 0x10)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_6 + 0x10)" (( "(") (binary_expression "*param_6 + 0x10" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (sVar1 != 1) {\n    if (sVar1 == 2) {\n      cVar4 = FUN_0023df40(param_3);\n      if (cVar4 != '\0') goto LAB_000c775c;\n    }\n    else if (sVar1 == 3) {\n      piVar5 = (int *)FUN_003ac4d0(0xa0);\n                    \n      FUN_0023a130(piVar5,param_2,param_3,param_4,param_5,param_6);\n      piVar5[0x21] = 0;\n      *piVar5 = unaff_EDI + 0x516e67;\n      uVar6 = *(uint *)(*param_6 + 0x24);\n      piVar5[0x24] = 0;\n      piVar5[0x25] = 0;\n      piVar5[0x23] = uVar6;\n      uVar6 = uVar6 & 3;\n      piVar5[0x26] = 0;\n      piVar5[0x27] = 0;\n      if (uVar6 != 0) {\n        iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n        if (iVar2 == 0) {\n                    \n                    \n          FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12));\n        }\n        uVar9 = *(uint *)(iVar2 + 8) & 3;\n        if (uVar9 == 0) {\n          *(undefined1 *)(iVar2 + 0xc) = 1;\n          *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n          FUN_00234d00(piVar5);\n          return piVar5;\n        }\n        if (uVar6 != uVar9) {\n          iVar2 = piVar5[1];\n          uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    \n          FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n        }\n      }\n      FUN_00234d00(piVar5);\n      return piVar5;\n    }\n    uVar7 = *param_2;\n    uVar8 = gettext(&UNK_0039f517 + unaff_EDI);\n    FUN_0023b810(uVar8,uVar7,sVar1);\n    return (int *)0x0;\n  }" (if "if") (parenthesized_expression "(sVar1 != 1)" (( "(") (binary_expression "sVar1 != 1" (identifier "sVar1") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n    if (sVar1 == 2) {\n      cVar4 = FUN_0023df40(param_3);\n      if (cVar4 != '\0') goto LAB_000c775c;\n    }\n    else if (sVar1 == 3) {\n      piVar5 = (int *)FUN_003ac4d0(0xa0);\n                    \n      FUN_0023a130(piVar5,param_2,param_3,param_4,param_5,param_6);\n      piVar5[0x21] = 0;\n      *piVar5 = unaff_EDI + 0x516e67;\n      uVar6 = *(uint *)(*param_6 + 0x24);\n      piVar5[0x24] = 0;\n      piVar5[0x25] = 0;\n      piVar5[0x23] = uVar6;\n      uVar6 = uVar6 & 3;\n      piVar5[0x26] = 0;\n      piVar5[0x27] = 0;\n      if (uVar6 != 0) {\n        iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n        if (iVar2 == 0) {\n                    \n                    \n          FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12));\n        }\n        uVar9 = *(uint *)(iVar2 + 8) & 3;\n        if (uVar9 == 0) {\n          *(undefined1 *)(iVar2 + 0xc) = 1;\n          *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n          FUN_00234d00(piVar5);\n          return piVar5;\n        }\n        if (uVar6 != uVar9) {\n          iVar2 = piVar5[1];\n          uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    \n          FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n        }\n      }\n      FUN_00234d00(piVar5);\n      return piVar5;\n    }\n    uVar7 = *param_2;\n    uVar8 = gettext(&UNK_0039f517 + unaff_EDI);\n    FUN_0023b810(uVar8,uVar7,sVar1);\n    return (int *)0x0;\n  }" ({ "{") (if_statement "if (sVar1 == 2) {\n      cVar4 = FUN_0023df40(param_3);\n      if (cVar4 != '\0') goto LAB_000c775c;\n    }\n    else if (sVar1 == 3) {\n      piVar5 = (int *)FUN_003ac4d0(0xa0);\n                    \n      FUN_0023a130(piVar5,param_2,param_3,param_4,param_5,param_6);\n      piVar5[0x21] = 0;\n      *piVar5 = unaff_EDI + 0x516e67;\n      uVar6 = *(uint *)(*param_6 + 0x24);\n      piVar5[0x24] = 0;\n      piVar5[0x25] = 0;\n      piVar5[0x23] = uVar6;\n      uVar6 = uVar6 & 3;\n      piVar5[0x26] = 0;\n      piVar5[0x27] = 0;\n      if (uVar6 != 0) {\n        iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n        if (iVar2 == 0) {\n                    \n                    \n          FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12));\n        }\n        uVar9 = *(uint *)(iVar2 + 8) & 3;\n        if (uVar9 == 0) {\n          *(undefined1 *)(iVar2 + 0xc) = 1;\n          *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n          FUN_00234d00(piVar5);\n          return piVar5;\n        }\n        if (uVar6 != uVar9) {\n          iVar2 = piVar5[1];\n          uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    \n          FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n        }\n      }\n      FUN_00234d00(piVar5);\n      return piVar5;\n    }" (if "if") (parenthesized_expression "(sVar1 == 2)" (( "(") (binary_expression "sVar1 == 2" (identifier "sVar1") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n      cVar4 = FUN_0023df40(param_3);\n      if (cVar4 != '\0') goto LAB_000c775c;\n    }" ({ "{") (expression_statement "cVar4 = FUN_0023df40(param_3);" (assignment_expression "cVar4 = FUN_0023df40(param_3)" (identifier "cVar4") (= "=") (call_expression "FUN_0023df40(param_3)" (identifier "FUN_0023df40") (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (cVar4 != '\0') goto LAB_000c775c;" (if "if") (parenthesized_expression "(cVar4 != '\0')" (( "(") (binary_expression "cVar4 != '\0'" (identifier "cVar4") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_000c775c;" (goto "goto") (statement_identifier "LAB_000c775c") (; ";"))) (} "}")) (else_clause "else if (sVar1 == 3) {\n      piVar5 = (int *)FUN_003ac4d0(0xa0);\n                    \n      FUN_0023a130(piVar5,param_2,param_3,param_4,param_5,param_6);\n      piVar5[0x21] = 0;\n      *piVar5 = unaff_EDI + 0x516e67;\n      uVar6 = *(uint *)(*param_6 + 0x24);\n      piVar5[0x24] = 0;\n      piVar5[0x25] = 0;\n      piVar5[0x23] = uVar6;\n      uVar6 = uVar6 & 3;\n      piVar5[0x26] = 0;\n      piVar5[0x27] = 0;\n      if (uVar6 != 0) {\n        iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n        if (iVar2 == 0) {\n                    \n                    \n          FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12));\n        }\n        uVar9 = *(uint *)(iVar2 + 8) & 3;\n        if (uVar9 == 0) {\n          *(undefined1 *)(iVar2 + 0xc) = 1;\n          *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n          FUN_00234d00(piVar5);\n          return piVar5;\n        }\n        if (uVar6 != uVar9) {\n          iVar2 = piVar5[1];\n          uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    \n          FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n        }\n      }\n      FUN_00234d00(piVar5);\n      return piVar5;\n    }" (else "else") (if_statement "if (sVar1 == 3) {\n      piVar5 = (int *)FUN_003ac4d0(0xa0);\n                    \n      FUN_0023a130(piVar5,param_2,param_3,param_4,param_5,param_6);\n      piVar5[0x21] = 0;\n      *piVar5 = unaff_EDI + 0x516e67;\n      uVar6 = *(uint *)(*param_6 + 0x24);\n      piVar5[0x24] = 0;\n      piVar5[0x25] = 0;\n      piVar5[0x23] = uVar6;\n      uVar6 = uVar6 & 3;\n      piVar5[0x26] = 0;\n      piVar5[0x27] = 0;\n      if (uVar6 != 0) {\n        iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n        if (iVar2 == 0) {\n                    \n                    \n          FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12));\n        }\n        uVar9 = *(uint *)(iVar2 + 8) & 3;\n        if (uVar9 == 0) {\n          *(undefined1 *)(iVar2 + 0xc) = 1;\n          *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n          FUN_00234d00(piVar5);\n          return piVar5;\n        }\n        if (uVar6 != uVar9) {\n          iVar2 = piVar5[1];\n          uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    \n          FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n        }\n      }\n      FUN_00234d00(piVar5);\n      return piVar5;\n    }" (if "if") (parenthesized_expression "(sVar1 == 3)" (( "(") (binary_expression "sVar1 == 3" (identifier "sVar1") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n      piVar5 = (int *)FUN_003ac4d0(0xa0);\n                    \n      FUN_0023a130(piVar5,param_2,param_3,param_4,param_5,param_6);\n      piVar5[0x21] = 0;\n      *piVar5 = unaff_EDI + 0x516e67;\n      uVar6 = *(uint *)(*param_6 + 0x24);\n      piVar5[0x24] = 0;\n      piVar5[0x25] = 0;\n      piVar5[0x23] = uVar6;\n      uVar6 = uVar6 & 3;\n      piVar5[0x26] = 0;\n      piVar5[0x27] = 0;\n      if (uVar6 != 0) {\n        iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n        if (iVar2 == 0) {\n                    \n                    \n          FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12));\n        }\n        uVar9 = *(uint *)(iVar2 + 8) & 3;\n        if (uVar9 == 0) {\n          *(undefined1 *)(iVar2 + 0xc) = 1;\n          *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n          FUN_00234d00(piVar5);\n          return piVar5;\n        }\n        if (uVar6 != uVar9) {\n          iVar2 = piVar5[1];\n          uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    \n          FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n        }\n      }\n      FUN_00234d00(piVar5);\n      return piVar5;\n    }" ({ "{") (expression_statement "piVar5 = (int *)FUN_003ac4d0(0xa0);" (assignment_expression "piVar5 = (int *)FUN_003ac4d0(0xa0)" (identifier "piVar5") (= "=") (cast_expression "(int *)FUN_003ac4d0(0xa0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_003ac4d0(0xa0)" (identifier "FUN_003ac4d0") (argument_list "(0xa0)" (( "(") (number_literal "0xa0") () ")"))))) (; ";")) (expression_statement "FUN_0023a130(piVar5,param_2,param_3,param_4,param_5,param_6);" (call_expression "FUN_0023a130(piVar5,param_2,param_3,param_4,param_5,param_6)" (identifier "FUN_0023a130") (argument_list "(piVar5,param_2,param_3,param_4,param_5,param_6)" (( "(") (identifier "piVar5") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_4") (, ",") (identifier "param_5") (, ",") (identifier "param_6") () ")"))) (; ";")) (expression_statement "piVar5[0x21] = 0;" (assignment_expression "piVar5[0x21] = 0" (subscript_expression "piVar5[0x21]" (identifier "piVar5") ([ "[") (number_literal "0x21") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*piVar5 = unaff_EDI + 0x516e67;" (assignment_expression "*piVar5 = unaff_EDI + 0x516e67" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (= "=") (binary_expression "unaff_EDI + 0x516e67" (identifier "unaff_EDI") (+ "+") (number_literal "0x516e67"))) (; ";")) (expression_statement "uVar6 = *(uint *)(*param_6 + 0x24);" (assignment_expression "uVar6 = *(uint *)(*param_6 + 0x24)" (identifier "uVar6") (= "=") (pointer_expression "*(uint *)(*param_6 + 0x24)" (* "*") (cast_expression "(uint *)(*param_6 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_6 + 0x24)" (( "(") (binary_expression "*param_6 + 0x24" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "piVar5[0x24] = 0;" (assignment_expression "piVar5[0x24] = 0" (subscript_expression "piVar5[0x24]" (identifier "piVar5") ([ "[") (number_literal "0x24") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar5[0x25] = 0;" (assignment_expression "piVar5[0x25] = 0" (subscript_expression "piVar5[0x25]" (identifier "piVar5") ([ "[") (number_literal "0x25") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar5[0x23] = uVar6;" (assignment_expression "piVar5[0x23] = uVar6" (subscript_expression "piVar5[0x23]" (identifier "piVar5") ([ "[") (number_literal "0x23") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "uVar6 = uVar6 & 3;" (assignment_expression "uVar6 = uVar6 & 3" (identifier "uVar6") (= "=") (binary_expression "uVar6 & 3" (identifier "uVar6") (& "&") (number_literal "3"))) (; ";")) (expression_statement "piVar5[0x26] = 0;" (assignment_expression "piVar5[0x26] = 0" (subscript_expression "piVar5[0x26]" (identifier "piVar5") ([ "[") (number_literal "0x26") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar5[0x27] = 0;" (assignment_expression "piVar5[0x27] = 0" (subscript_expression "piVar5[0x27]" (identifier "piVar5") ([ "[") (number_literal "0x27") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar6 != 0) {\n        iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n        if (iVar2 == 0) {\n                    \n                    \n          FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12));\n        }\n        uVar9 = *(uint *)(iVar2 + 8) & 3;\n        if (uVar9 == 0) {\n          *(undefined1 *)(iVar2 + 0xc) = 1;\n          *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n          FUN_00234d00(piVar5);\n          return piVar5;\n        }\n        if (uVar6 != uVar9) {\n          iVar2 = piVar5[1];\n          uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    \n          FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n        }\n      }" (if "if") (parenthesized_expression "(uVar6 != 0)" (( "(") (binary_expression "uVar6 != 0" (identifier "uVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n        if (iVar2 == 0) {\n                    \n                    \n          FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12));\n        }\n        uVar9 = *(uint *)(iVar2 + 8) & 3;\n        if (uVar9 == 0) {\n          *(undefined1 *)(iVar2 + 0xc) = 1;\n          *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n          FUN_00234d00(piVar5);\n          return piVar5;\n        }\n        if (uVar6 != uVar9) {\n          iVar2 = piVar5[1];\n          uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    \n          FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n        }\n      }" ({ "{") (expression_statement "iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);" (assignment_expression "iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc)" (* "*") (cast_expression "(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc)" (( "(") (binary_expression "*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc" (pointer_expression "*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12)" (* "*") (cast_expression "(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(BYTE_ARRAY_005231ed + unaff_EDI + 0x12)" (( "(") (binary_expression "BYTE_ARRAY_005231ed + unaff_EDI + 0x12" (binary_expression "BYTE_ARRAY_005231ed + unaff_EDI" (identifier "BYTE_ARRAY_005231ed") (+ "+") (identifier "unaff_EDI")) (+ "+") (number_literal "0x12")) () ")")))) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (iVar2 == 0) {\n                    \n                    \n          FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12));\n        }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n                    \n          FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12));\n        }" ({ "{") (expression_statement "FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12));" (call_expression "FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12))" (identifier "FUN_002446e0") (argument_list "(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,\n                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12))" (( "(") (binary_expression "unaff_EDI + 0x380ca4" (identifier "unaff_EDI") (+ "+") (number_literal "0x380ca4")) (, ",") (number_literal "0x73") (, ",") (binary_expression "&UNK_0039d327 + unaff_EDI" (pointer_expression "&UNK_0039d327" (& "&") (identifier "UNK_0039d327")) (+ "+") (identifier "unaff_EDI")) (, ",") (pointer_expression "*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12)" (* "*") (cast_expression "(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(BYTE_ARRAY_005231ed + unaff_EDI + 0x12)" (( "(") (binary_expression "BYTE_ARRAY_005231ed + unaff_EDI + 0x12" (binary_expression "BYTE_ARRAY_005231ed + unaff_EDI" (identifier "BYTE_ARRAY_005231ed") (+ "+") (identifier "unaff_EDI")) (+ "+") (number_literal "0x12")) () ")")))) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar9 = *(uint *)(iVar2 + 8) & 3;" (assignment_expression "uVar9 = *(uint *)(iVar2 + 8) & 3" (identifier "uVar9") (= "=") (binary_expression "*(uint *)(iVar2 + 8) & 3" (pointer_expression "*(uint *)(iVar2 + 8)" (* "*") (cast_expression "(uint *)(iVar2 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 8)" (( "(") (binary_expression "iVar2 + 8" (identifier "iVar2") (+ "+") (number_literal "8")) () ")")))) (& "&") (number_literal "3"))) (; ";")) (if_statement "if (uVar9 == 0) {\n          *(undefined1 *)(iVar2 + 0xc) = 1;\n          *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n          FUN_00234d00(piVar5);\n          return piVar5;\n        }" (if "if") (parenthesized_expression "(uVar9 == 0)" (( "(") (binary_expression "uVar9 == 0" (identifier "uVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          *(undefined1 *)(iVar2 + 0xc) = 1;\n          *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n          FUN_00234d00(piVar5);\n          return piVar5;\n        }" ({ "{") (expression_statement "*(undefined1 *)(iVar2 + 0xc) = 1;" (assignment_expression "*(undefined1 *)(iVar2 + 0xc) = 1" (pointer_expression "*(undefined1 *)(iVar2 + 0xc)" (* "*") (cast_expression "(undefined1 *)(iVar2 + 0xc)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0xc)" (( "(") (binary_expression "iVar2 + 0xc" (identifier "iVar2") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;" (assignment_expression "*(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6" (pointer_expression "*(uint *)(iVar2 + 8)" (* "*") (cast_expression "(uint *)(iVar2 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 8)" (( "(") (binary_expression "iVar2 + 8" (identifier "iVar2") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "*(uint *)(iVar2 + 8) & 0xfffffffc | uVar6" (binary_expression "*(uint *)(iVar2 + 8) & 0xfffffffc" (pointer_expression "*(uint *)(iVar2 + 8)" (* "*") (cast_expression "(uint *)(iVar2 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 8)" (( "(") (binary_expression "iVar2 + 8" (identifier "iVar2") (+ "+") (number_literal "8")) () ")")))) (& "&") (number_literal "0xfffffffc")) (| "|") (identifier "uVar6"))) (; ";")) (expression_statement "FUN_00234d00(piVar5);" (call_expression "FUN_00234d00(piVar5)" (identifier "FUN_00234d00") (argument_list "(piVar5)" (( "(") (identifier "piVar5") () ")"))) (; ";")) (return_statement "return piVar5;" (return "return") (identifier "piVar5") (; ";")) (} "}"))) (if_statement "if (uVar6 != uVar9) {\n          iVar2 = piVar5[1];\n          uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    \n          FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n        }" (if "if") (parenthesized_expression "(uVar6 != uVar9)" (( "(") (binary_expression "uVar6 != uVar9" (identifier "uVar6") (!= "!=") (identifier "uVar9")) () ")")) (compound_statement "{\n          iVar2 = piVar5[1];\n          uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    \n          FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n        }" ({ "{") (expression_statement "iVar2 = piVar5[1];" (assignment_expression "iVar2 = piVar5[1]" (identifier "iVar2") (= "=") (subscript_expression "piVar5[1]" (identifier "piVar5") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar7 = gettext(&UNK_0039f4af + unaff_EDI);" (assignment_expression "uVar7 = gettext(&UNK_0039f4af + unaff_EDI)" (identifier "uVar7") (= "=") (call_expression "gettext(&UNK_0039f4af + unaff_EDI)" (identifier "gettext") (argument_list "(&UNK_0039f4af + unaff_EDI)" (( "(") (binary_expression "&UNK_0039f4af + unaff_EDI" (pointer_expression "&UNK_0039f4af" (& "&") (identifier "UNK_0039f4af")) (+ "+") (identifier "unaff_EDI")) () ")")))) (; ";")) (expression_statement "FUN_0023b810(uVar7,iVar2,uVar6,uVar9);" (call_expression "FUN_0023b810(uVar7,iVar2,uVar6,uVar9)" (identifier "FUN_0023b810") (argument_list "(uVar7,iVar2,uVar6,uVar9)" (( "(") (identifier "uVar7") (, ",") (identifier "iVar2") (, ",") (identifier "uVar6") (, ",") (identifier "uVar9") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "FUN_00234d00(piVar5);" (call_expression "FUN_00234d00(piVar5)" (identifier "FUN_00234d00") (argument_list "(piVar5)" (( "(") (identifier "piVar5") () ")"))) (; ";")) (return_statement "return piVar5;" (return "return") (identifier "piVar5") (; ";")) (} "}"))))) (expression_statement "uVar7 = *param_2;" (assignment_expression "uVar7 = *param_2" (identifier "uVar7") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "uVar8 = gettext(&UNK_0039f517 + unaff_EDI);" (assignment_expression "uVar8 = gettext(&UNK_0039f517 + unaff_EDI)" (identifier "uVar8") (= "=") (call_expression "gettext(&UNK_0039f517 + unaff_EDI)" (identifier "gettext") (argument_list "(&UNK_0039f517 + unaff_EDI)" (( "(") (binary_expression "&UNK_0039f517 + unaff_EDI" (pointer_expression "&UNK_0039f517" (& "&") (identifier "UNK_0039f517")) (+ "+") (identifier "unaff_EDI")) () ")")))) (; ";")) (expression_statement "FUN_0023b810(uVar8,uVar7,sVar1);" (call_expression "FUN_0023b810(uVar8,uVar7,sVar1)" (identifier "FUN_0023b810") (argument_list "(uVar8,uVar7,sVar1)" (( "(") (identifier "uVar8") (, ",") (identifier "uVar7") (, ",") (identifier "sVar1") () ")"))) (; ";")) (return_statement "return (int *)0x0;" (return "return") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (labeled_statement "LAB_000c775c:\n  piVar5 = (int *)FUN_003ac4d0(0x1c0);" (statement_identifier "LAB_000c775c") (: ":") (expression_statement "piVar5 = (int *)FUN_003ac4d0(0x1c0);" (assignment_expression "piVar5 = (int *)FUN_003ac4d0(0x1c0)" (identifier "piVar5") (= "=") (cast_expression "(int *)FUN_003ac4d0(0x1c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_003ac4d0(0x1c0)" (identifier "FUN_003ac4d0") (argument_list "(0x1c0)" (( "(") (number_literal "0x1c0") () ")"))))) (; ";"))) (expression_statement "FUN_002a0e60(piVar5,param_2,param_3,param_4,param_5,param_6);" (call_expression "FUN_002a0e60(piVar5,param_2,param_3,param_4,param_5,param_6)" (identifier "FUN_002a0e60") (argument_list "(piVar5,param_2,param_3,param_4,param_5,param_6)" (( "(") (identifier "piVar5") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_4") (, ",") (identifier "param_5") (, ",") (identifier "param_6") () ")"))) (; ";")) (expression_statement "piVar5[0x50] = 0;" (assignment_expression "piVar5[0x50] = 0" (subscript_expression "piVar5[0x50]" (identifier "piVar5") ([ "[") (number_literal "0x50") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*piVar5 = unaff_EDI + 0x516d5b;" (assignment_expression "*piVar5 = unaff_EDI + 0x516d5b" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (= "=") (binary_expression "unaff_EDI + 0x516d5b" (identifier "unaff_EDI") (+ "+") (number_literal "0x516d5b"))) (; ";")) (expression_statement "iVar2 = *(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e);" (assignment_expression "iVar2 = *(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e)" (* "*") (cast_expression "(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e)" (( "(") (binary_expression "BYTE_ARRAY_005235ad + unaff_EDI + 0x1e" (binary_expression "BYTE_ARRAY_005235ad + unaff_EDI" (identifier "BYTE_ARRAY_005235ad") (+ "+") (identifier "unaff_EDI")) (+ "+") (number_literal "0x1e")) () ")"))))) (; ";")) (expression_statement "piVar5[0x51] = 0;" (assignment_expression "piVar5[0x51] = 0" (subscript_expression "piVar5[0x51]" (identifier "piVar5") ([ "[") (number_literal "0x51") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar5[0x4f] = iVar2;" (assignment_expression "piVar5[0x4f] = iVar2" (subscript_expression "piVar5[0x4f]" (identifier "piVar5") ([ "[") (number_literal "0x4f") (] "]")) (= "=") (identifier "iVar2")) (; ";")) (expression_statement "piVar5[0x52] = 0;" (assignment_expression "piVar5[0x52] = 0" (subscript_expression "piVar5[0x52]" (identifier "piVar5") ([ "[") (number_literal "0x52") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar3 = *param_6;" (assignment_expression "iVar3 = *param_6" (identifier "iVar3") (= "=") (pointer_expression "*param_6" (* "*") (identifier "param_6"))) (; ";")) (expression_statement "*(undefined2 *)(piVar5 + 0x53) = 0;" (assignment_expression "*(undefined2 *)(piVar5 + 0x53) = 0" (pointer_expression "*(undefined2 *)(piVar5 + 0x53)" (* "*") (cast_expression "(undefined2 *)(piVar5 + 0x53)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar5 + 0x53)" (( "(") (binary_expression "piVar5 + 0x53" (identifier "piVar5") (+ "+") (number_literal "0x53")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e) = iVar2 + 1;" (assignment_expression "*(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e) = iVar2 + 1" (pointer_expression "*(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e)" (* "*") (cast_expression "(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e)" (( "(") (binary_expression "BYTE_ARRAY_005235ad + unaff_EDI + 0x1e" (binary_expression "BYTE_ARRAY_005235ad + unaff_EDI" (identifier "BYTE_ARRAY_005235ad") (+ "+") (identifier "unaff_EDI")) (+ "+") (number_literal "0x1e")) () ")")))) (= "=") (binary_expression "iVar2 + 1" (identifier "iVar2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar6 = *(uint *)(iVar3 + 0x24);" (assignment_expression "uVar6 = *(uint *)(iVar3 + 0x24)" (identifier "uVar6") (= "=") (pointer_expression "*(uint *)(iVar3 + 0x24)" (* "*") (cast_expression "(uint *)(iVar3 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x24)" (( "(") (binary_expression "iVar3 + 0x24" (identifier "iVar3") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar5[0x55] = 0;" (assignment_expression "piVar5[0x55] = 0" (subscript_expression "piVar5[0x55]" (identifier "piVar5") ([ "[") (number_literal "0x55") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar5[0x56] = 0;" (assignment_expression "piVar5[0x56] = 0" (subscript_expression "piVar5[0x56]" (identifier "piVar5") ([ "[") (number_literal "0x56") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar5[0x54] = uVar6;" (assignment_expression "piVar5[0x54] = uVar6" (subscript_expression "piVar5[0x54]" (identifier "piVar5") ([ "[") (number_literal "0x54") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "piVar5[0x57] = 0;" (assignment_expression "piVar5[0x57] = 0" (subscript_expression "piVar5[0x57]" (identifier "piVar5") ([ "[") (number_literal "0x57") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar5[0x58] = 0;" (assignment_expression "piVar5[0x58] = 0" (subscript_expression "piVar5[0x58]" (identifier "piVar5") ([ "[") (number_literal "0x58") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar5[0x59] = 0;" (assignment_expression "piVar5[0x59] = 0" (subscript_expression "piVar5[0x59]" (identifier "piVar5") ([ "[") (number_literal "0x59") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar5[0x5a] = 0;" (assignment_expression "piVar5[0x5a] = 0" (subscript_expression "piVar5[0x5a]" (identifier "piVar5") ([ "[") (number_literal "0x5a") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar5[0x5b] = 0;" (assignment_expression "piVar5[0x5b] = 0" (subscript_expression "piVar5[0x5b]" (identifier "piVar5") ([ "[") (number_literal "0x5b") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar5[0x5c] = 0;" (assignment_expression "piVar5[0x5c] = 0" (subscript_expression "piVar5[0x5c]" (identifier "piVar5") ([ "[") (number_literal "0x5c") (] "]")) (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n    *(undefined4 *)((int)piVar5 + uVar9 + 0x174) = 0;\n    uVar9 = uVar9 + 4;\n  } while (uVar9 < 0x1c);" (do "do") (compound_statement "{\n    *(undefined4 *)((int)piVar5 + uVar9 + 0x174) = 0;\n    uVar9 = uVar9 + 4;\n  }" ({ "{") (expression_statement "*(undefined4 *)((int)piVar5 + uVar9 + 0x174) = 0;" (assignment_expression "*(undefined4 *)((int)piVar5 + uVar9 + 0x174) = 0" (pointer_expression "*(undefined4 *)((int)piVar5 + uVar9 + 0x174)" (* "*") (cast_expression "(undefined4 *)((int)piVar5 + uVar9 + 0x174)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar5 + uVar9 + 0x174)" (( "(") (binary_expression "(int)piVar5 + uVar9 + 0x174" (binary_expression "(int)piVar5 + uVar9" (cast_expression "(int)piVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar5")) (+ "+") (identifier "uVar9")) (+ "+") (number_literal "0x174")) () ")")))) (= "=") (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 "uVar6 = uVar6 & 3;" (assignment_expression "uVar6 = uVar6 & 3" (identifier "uVar6") (= "=") (binary_expression "uVar6 & 3" (identifier "uVar6") (& "&") (number_literal "3"))) (; ";")) (expression_statement "piVar5[0x5e] = 1;" (assignment_expression "piVar5[0x5e] = 1" (subscript_expression "piVar5[0x5e]" (identifier "piVar5") ([ "[") (number_literal "0x5e") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "piVar5[0x5d] = (int)(piVar5 + 99);" (assignment_expression "piVar5[0x5d] = (int)(piVar5 + 99)" (subscript_expression "piVar5[0x5d]" (identifier "piVar5") ([ "[") (number_literal "0x5d") (] "]")) (= "=") (cast_expression "(int)(piVar5 + 99)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(piVar5 + 99)" (( "(") (binary_expression "piVar5 + 99" (identifier "piVar5") (+ "+") (number_literal "99")) () ")")))) (; ";")) (expression_statement "piVar5[0x5f] = 0;" (assignment_expression "piVar5[0x5f] = 0" (subscript_expression "piVar5[0x5f]" (identifier "piVar5") ([ "[") (number_literal "0x5f") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar5[0x60] = 0;" (assignment_expression "piVar5[0x60] = 0" (subscript_expression "piVar5[0x60]" (identifier "piVar5") ([ "[") (number_literal "0x60") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar5[0x61] = 0x3f800000;" (assignment_expression "piVar5[0x61] = 0x3f800000" (subscript_expression "piVar5[0x61]" (identifier "piVar5") ([ "[") (number_literal "0x61") (] "]")) (= "=") (number_literal "0x3f800000")) (; ";")) (expression_statement "piVar5[0x62] = 0;" (assignment_expression "piVar5[0x62] = 0" (subscript_expression "piVar5[0x62]" (identifier "piVar5") ([ "[") (number_literal "0x62") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar5[99] = 0;" (assignment_expression "piVar5[99] = 0" (subscript_expression "piVar5[99]" (identifier "piVar5") ([ "[") (number_literal "99") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar5[100] = 0;" (assignment_expression "piVar5[100] = 0" (subscript_expression "piVar5[100]" (identifier "piVar5") ([ "[") (number_literal "100") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar5[0x65] = 0;" (assignment_expression "piVar5[0x65] = 0" (subscript_expression "piVar5[0x65]" (identifier "piVar5") ([ "[") (number_literal "0x65") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar5[0x66] = 0;" (assignment_expression "piVar5[0x66] = 0" (subscript_expression "piVar5[0x66]" (identifier "piVar5") ([ "[") (number_literal "0x66") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar5[0x67] = 0;" (assignment_expression "piVar5[0x67] = 0" (subscript_expression "piVar5[0x67]" (identifier "piVar5") ([ "[") (number_literal "0x67") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar5[0x68] = 0;" (assignment_expression "piVar5[0x68] = 0" (subscript_expression "piVar5[0x68]" (identifier "piVar5") ([ "[") (number_literal "0x68") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar5[0x69] = 0;" (assignment_expression "piVar5[0x69] = 0" (subscript_expression "piVar5[0x69]" (identifier "piVar5") ([ "[") (number_literal "0x69") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar5[0x6a] = 0;" (assignment_expression "piVar5[0x6a] = 0" (subscript_expression "piVar5[0x6a]" (identifier "piVar5") ([ "[") (number_literal "0x6a") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar5[0x6b] = 0;" (assignment_expression "piVar5[0x6b] = 0" (subscript_expression "piVar5[0x6b]" (identifier "piVar5") ([ "[") (number_literal "0x6b") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar5[0x6c] = 0;" (assignment_expression "piVar5[0x6c] = 0" (subscript_expression "piVar5[0x6c]" (identifier "piVar5") ([ "[") (number_literal "0x6c") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar5[0x6d] = 0;" (assignment_expression "piVar5[0x6d] = 0" (subscript_expression "piVar5[0x6d]" (identifier "piVar5") ([ "[") (number_literal "0x6d") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar5[0x6e] = 0;" (assignment_expression "piVar5[0x6e] = 0" (subscript_expression "piVar5[0x6e]" (identifier "piVar5") ([ "[") (number_literal "0x6e") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar5[0x6f] = 0;" (assignment_expression "piVar5[0x6f] = 0" (subscript_expression "piVar5[0x6f]" (identifier "piVar5") ([ "[") (number_literal "0x6f") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar6 != 0) {\n    iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n    if (iVar2 == 0) {\n                    \n                    \n      FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,uVar6);\n    }\n    uVar9 = *(uint *)(iVar2 + 8) & 3;\n    if (uVar9 == 0) {\n      *(undefined1 *)(iVar2 + 0xc) = 1;\n      *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n    }\n    else if (uVar6 != uVar9) {\n      iVar2 = piVar5[1];\n      uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    \n      FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n    }\n  }" (if "if") (parenthesized_expression "(uVar6 != 0)" (( "(") (binary_expression "uVar6 != 0" (identifier "uVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);\n    if (iVar2 == 0) {\n                    \n                    \n      FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,uVar6);\n    }\n    uVar9 = *(uint *)(iVar2 + 8) & 3;\n    if (uVar9 == 0) {\n      *(undefined1 *)(iVar2 + 0xc) = 1;\n      *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n    }\n    else if (uVar6 != uVar9) {\n      iVar2 = piVar5[1];\n      uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    \n      FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n    }\n  }" ({ "{") (expression_statement "iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);" (assignment_expression "iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc)" (* "*") (cast_expression "(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc)" (( "(") (binary_expression "*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc" (pointer_expression "*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12)" (* "*") (cast_expression "(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(BYTE_ARRAY_005231ed + unaff_EDI + 0x12)" (( "(") (binary_expression "BYTE_ARRAY_005231ed + unaff_EDI + 0x12" (binary_expression "BYTE_ARRAY_005231ed + unaff_EDI" (identifier "BYTE_ARRAY_005231ed") (+ "+") (identifier "unaff_EDI")) (+ "+") (number_literal "0x12")) () ")")))) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (iVar2 == 0) {\n                    \n                    \n      FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,uVar6);\n    }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n                    \n      FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,uVar6);\n    }" ({ "{") (expression_statement "FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,uVar6);" (call_expression "FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,uVar6)" (identifier "FUN_002446e0") (argument_list "(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,uVar6)" (( "(") (binary_expression "unaff_EDI + 0x380ca4" (identifier "unaff_EDI") (+ "+") (number_literal "0x380ca4")) (, ",") (number_literal "0x73") (, ",") (binary_expression "&UNK_0039d327 + unaff_EDI" (pointer_expression "&UNK_0039d327" (& "&") (identifier "UNK_0039d327")) (+ "+") (identifier "unaff_EDI")) (, ",") (identifier "uVar6") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar9 = *(uint *)(iVar2 + 8) & 3;" (assignment_expression "uVar9 = *(uint *)(iVar2 + 8) & 3" (identifier "uVar9") (= "=") (binary_expression "*(uint *)(iVar2 + 8) & 3" (pointer_expression "*(uint *)(iVar2 + 8)" (* "*") (cast_expression "(uint *)(iVar2 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 8)" (( "(") (binary_expression "iVar2 + 8" (identifier "iVar2") (+ "+") (number_literal "8")) () ")")))) (& "&") (number_literal "3"))) (; ";")) (if_statement "if (uVar9 == 0) {\n      *(undefined1 *)(iVar2 + 0xc) = 1;\n      *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n    }\n    else if (uVar6 != uVar9) {\n      iVar2 = piVar5[1];\n      uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    \n      FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n    }" (if "if") (parenthesized_expression "(uVar9 == 0)" (( "(") (binary_expression "uVar9 == 0" (identifier "uVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *(undefined1 *)(iVar2 + 0xc) = 1;\n      *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;\n    }" ({ "{") (expression_statement "*(undefined1 *)(iVar2 + 0xc) = 1;" (assignment_expression "*(undefined1 *)(iVar2 + 0xc) = 1" (pointer_expression "*(undefined1 *)(iVar2 + 0xc)" (* "*") (cast_expression "(undefined1 *)(iVar2 + 0xc)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0xc)" (( "(") (binary_expression "iVar2 + 0xc" (identifier "iVar2") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;" (assignment_expression "*(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6" (pointer_expression "*(uint *)(iVar2 + 8)" (* "*") (cast_expression "(uint *)(iVar2 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 8)" (( "(") (binary_expression "iVar2 + 8" (identifier "iVar2") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "*(uint *)(iVar2 + 8) & 0xfffffffc | uVar6" (binary_expression "*(uint *)(iVar2 + 8) & 0xfffffffc" (pointer_expression "*(uint *)(iVar2 + 8)" (* "*") (cast_expression "(uint *)(iVar2 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 8)" (( "(") (binary_expression "iVar2 + 8" (identifier "iVar2") (+ "+") (number_literal "8")) () ")")))) (& "&") (number_literal "0xfffffffc")) (| "|") (identifier "uVar6"))) (; ";")) (} "}")) (else_clause "else if (uVar6 != uVar9) {\n      iVar2 = piVar5[1];\n      uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    \n      FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n    }" (else "else") (if_statement "if (uVar6 != uVar9) {\n      iVar2 = piVar5[1];\n      uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    \n      FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n    }" (if "if") (parenthesized_expression "(uVar6 != uVar9)" (( "(") (binary_expression "uVar6 != uVar9" (identifier "uVar6") (!= "!=") (identifier "uVar9")) () ")")) (compound_statement "{\n      iVar2 = piVar5[1];\n      uVar7 = gettext(&UNK_0039f4af + unaff_EDI);\n                    \n      FUN_0023b810(uVar7,iVar2,uVar6,uVar9);\n    }" ({ "{") (expression_statement "iVar2 = piVar5[1];" (assignment_expression "iVar2 = piVar5[1]" (identifier "iVar2") (= "=") (subscript_expression "piVar5[1]" (identifier "piVar5") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar7 = gettext(&UNK_0039f4af + unaff_EDI);" (assignment_expression "uVar7 = gettext(&UNK_0039f4af + unaff_EDI)" (identifier "uVar7") (= "=") (call_expression "gettext(&UNK_0039f4af + unaff_EDI)" (identifier "gettext") (argument_list "(&UNK_0039f4af + unaff_EDI)" (( "(") (binary_expression "&UNK_0039f4af + unaff_EDI" (pointer_expression "&UNK_0039f4af" (& "&") (identifier "UNK_0039f4af")) (+ "+") (identifier "unaff_EDI")) () ")")))) (; ";")) (expression_statement "FUN_0023b810(uVar7,iVar2,uVar6,uVar9);" (call_expression "FUN_0023b810(uVar7,iVar2,uVar6,uVar9)" (identifier "FUN_0023b810") (argument_list "(uVar7,iVar2,uVar6,uVar9)" (( "(") (identifier "uVar7") (, ",") (identifier "iVar2") (, ",") (identifier "uVar6") (, ",") (identifier "uVar9") () ")"))) (; ";")) (} "}"))))) (} "}"))) (expression_statement "FUN_002945e0(piVar5);" (call_expression "FUN_002945e0(piVar5)" (identifier "FUN_002945e0") (argument_list "(piVar5)" (( "(") (identifier "piVar5") () ")"))) (; ";")) (return_statement "return piVar5;" (return "return") (identifier "piVar5") (; ";")) (} "}")))

/* WARNING: Type propagation algorithm not settling */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: Object * do_make_elf_object(Target_powerpc<32,_false> * this, string *
   name, Input_file * input_file, off_t offset, Ehdr<32,_false> * ehdr) */

type_6 * __thiscall
anon_unknown.dwarf_6462d4::Target_powerpc<32,var_3>::do_make_elf_object
          (Target_powerpc<32,var_3> *this,string *name,type_8 *input_file,off_t offset,
          Ehdr<32,var_3> *ehdr)

{
  int var_11;
  type_1 pcVar2;
  type_2 **pp_Var3;
  var_1<32> *pEVar4;
  bool bVar5;
  var_2<32,var_3> *this_00;
  char *pcVar6;
  var_4<32,var_3> *this_01;
  type_3 var_13;
  type_3 var_6;
  int var_9;
  
  var_5();
  var_6 = (type_3)ehdr->p_->e_type;
  if (var_6 != 1) {
    if (var_6 == 2) {
      bVar5 = gold::Input_file::var_7(input_file);
      if (bVar5) goto LAB_000c775c;
    }
    else if (var_6 == 3) {
      this_00 = (var_2<32,var_3> *)var_8(0xa0);
                    /* try { // try from 000c7627 to 000c762b has its CatchHandler @ 000c79ad */
      gold::var_2<32,var_3>::var_2(this_00,name,input_file,offset,ehdr);
      this_00[1].super_Dynobj.super_Object._vptr_Object = (type_2 **)0x0;
      (this_00->super_Dynobj).super_Object._vptr_Object =
           (type_2 **)(var_9 + 0x516e67);
      var_6 = ehdr->p_->e_flags;
      this_00[1].super_Dynobj.super_Object.name_.field_2._M_allocated_capacity = 0;
      *(type_4 *)((int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 4) = 0;
      this_00[1].super_Dynobj.super_Object.name_._M_string_length = var_6;
      var_6 = var_6 & 3;
      *(type_4 *)((int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 8) = 0;
      *(type_4 *)((int)&this_00[1].super_Dynobj.super_Object.name_.field_2 + 0xc) = 0;
      if (var_6 != 0) {
        var_11 = *(int *)(*(int *)(var_10 + var_9 + 0x12) + 0xc);
        if (var_11 == 0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 000c7990 to 000c7994 has its CatchHandler @ 000c79c5 */
          gold::var_12
                    ((char *)(var_9 + 0x380ca4),0x73,(char *)(var_9 + 0x39d327));
        }
        var_13 = *(type_3 *)(var_11 + 8) & 3;
        if (var_13 == 0) {
          *(type_5 *)(var_11 + 0xc) = 1;
          *(type_3 *)(var_11 + 8) = *(type_3 *)(var_11 + 8) & 0xfffffffc | var_6;
          gold::var_2<32,var_3>::var_14(this_00);
          return (type_6 *)this_00;
        }
        if (var_6 != var_13) {
          pcVar2 = (this_00->super_Dynobj).super_Object.name_._M_dataplus._M_p;
          pcVar6 = (char *)var_15(var_9 + 0x39f4af);
                    /* try { // try from 000c76cc to 000c76d0 has its CatchHandler @ 000c79c5 */
          gold::var_16(pcVar6,pcVar2,var_6,var_13);
        }
      }
      gold::var_2<32,var_3>::var_14(this_00);
      return (type_6 *)this_00;
    }
    pcVar2 = (name->_M_dataplus)._M_p;
    pcVar6 = (char *)var_15(var_9 + 0x39f517);
    gold::var_16(pcVar6,pcVar2,var_6);
    return (type_6 *)0x0;
  }
LAB_000c775c:
  this_01 = (var_4<32,var_3> *)var_8(0x1c0);
                    /* try { // try from 000c777f to 000c7783 has its CatchHandler @ 000c79bd */
  gold::var_4<32,var_3>::var_4(this_01,name,input_file,offset,ehdr);
  this_01[1].super_Sized_relobj<32,var_3>.super_Relobj.super_Object.name_._M_dataplus._M_p =
       (type_1)0x0;
  (this_01->super_Sized_relobj<32,var_3>).super_Relobj.super_Object._vptr_Object =
       (type_2 **)(var_9 + 0x516d5b);
  pp_Var3 = *(type_2 ***)(var_17 + var_9 + 0x1e);
  this_01[1].super_Sized_relobj<32,var_3>.super_Relobj.super_Object.name_._M_string_length = 0;
  this_01[1].super_Sized_relobj<32,var_3>.super_Relobj.super_Object._vptr_Object = pp_Var3;
  this_01[1].super_Sized_relobj<32,var_3>.super_Relobj.super_Object.name_.field_2.
  _M_allocated_capacity = 0;
  pEVar4 = ehdr->p_;
  *(type_7 *)
   ((int)&this_01[1].super_Sized_relobj<32,var_3>.super_Relobj.super_Object.name_.field_2 + 4) = 0;
  *(int *)(var_17 + var_9 + 0x1e) = (int)pp_Var3 + 1;
  var_6 = pEVar4->e_flags;
  var_13 = 0;
  *(type_4 *)
   ((int)&this_01[1].super_Sized_relobj<32,var_3>.super_Relobj.super_Object.name_.field_2 + 0xc) =
       0;
  this_01[1].super_Sized_relobj<32,var_3>.super_Relobj.super_Object.input_file_ = (type_8 *)0x0
  ;
  *(type_3 *)((int)&this_01[1].super_Sized_relobj<32,var_3>.super_Relobj.super_Object.name_.field_2 +
           8) = var_6;
  *(type_4 *)&this_01[1].super_Sized_relobj<32,var_3>.super_Relobj.super_Object.offset_ = 0;
  *(type_4 *)
   ((int)&this_01[1].super_Sized_relobj<32,var_3>.super_Relobj.super_Object.offset_ + 4) = 0;
  this_01[1].super_Sized_relobj<32,var_3>.super_Relobj.super_Object.shnum_ = 0;
  *(type_4 *)&this_01[1].super_Sized_relobj<32,var_3>.super_Relobj.super_Object.field_0x2c = 0;
  this_01[1].super_Sized_relobj<32,var_3>.super_Relobj.super_Object.xindex_ = (type_9 *)0x0;
  this_01[1].super_Sized_relobj<32,var_3>.super_Relobj.super_Object.compressed_sections_ =
       (type_10 *)0x0;
  do {
    *(type_4 *)
     ((int)&this_01[1].super_Sized_relobj<32,var_3>.super_Relobj.output_sections_.
            super__Vector_base<gold::var_18*,_std::allocator<gold::var_18*>var_19>.
            _M_impl._M_start + var_13) = 0;
    var_13 = var_13 + 4;
  } while (var_13 < 0x1c);
  var_6 = var_6 & 3;
  this_01[1].super_Sized_relobj<32,var_3>.super_Relobj.output_sections_.
  super__Vector_base<gold::var_18*,_std::allocator<gold::var_18*>var_19>._M_impl.
  _M_finish = (type_1)0x1;
  this_01[1].super_Sized_relobj<32,var_3>.super_Relobj.output_sections_.
  super__Vector_base<gold::var_18*,_std::allocator<gold::var_18*>var_19>._M_impl._M_start
       = (type_1)&this_01[1].super_Sized_relobj<32,var_3>.super_Relobj.rd_;
  this_01[1].super_Sized_relobj<32,var_3>.super_Relobj.output_sections_.
  super__Vector_base<gold::var_18*,_std::allocator<gold::var_18*>var_19>._M_impl.
  _M_end_of_storage = (type_1)0x0;
  this_01[1].super_Sized_relobj<32,var_3>.super_Relobj.map_to_relocatable_relocs_ =
       (vector<gold::Relocatable_relocs*,_std::allocator<gold::Relocatable_relocs*>var_19> *)0x0;
  this_01[1].super_Sized_relobj<32,var_3>.super_Relobj.object_merge_map_ =
       (Object_merge_map *)0x3f800000;
  *(type_4 *)
   &this_01[1].super_Sized_relobj<32,var_3>.super_Relobj.relocs_must_follow_section_writes_ = 0;
  this_01[1].super_Sized_relobj<32,var_3>.super_Relobj.rd_ = (Read_relocs_data *)0x0;
  this_01[1].super_Sized_relobj<32,var_3>.super_Relobj.sd_ = (Symbols_data *)0x0;
  this_01[1].super_Sized_relobj<32,var_3>.super_Relobj.reloc_counts_ = (type_3 *)0x0;
  this_01[1].super_Sized_relobj<32,var_3>.super_Relobj.reloc_bases_ = (type_3 *)0x0;
  this_01[1].super_Sized_relobj<32,var_3>.super_Relobj.first_dyn_reloc_ = 0;
  this_01[1].super_Sized_relobj<32,var_3>.super_Relobj.dyn_reloc_count_ = 0;
  this_01[1].super_Sized_relobj<32,var_3>.local_got_offsets_._M_h._M_buckets = (type_11 *)0x0
  ;
  this_01[1].super_Sized_relobj<32,var_3>.local_got_offsets_._M_h._M_bucket_count = 0;
  this_01[1].super_Sized_relobj<32,var_3>.local_got_offsets_._M_h._M_before_begin._M_nxt =
       (_Hash_node_base *)0x0;
  this_01[1].super_Sized_relobj<32,var_3>.local_got_offsets_._M_h._M_element_count = 0;
  this_01[1].super_Sized_relobj<32,var_3>.local_got_offsets_._M_h._M_rehash_policy.
  _M_max_load_factor = 0.0;
  this_01[1].super_Sized_relobj<32,var_3>.local_got_offsets_._M_h._M_rehash_policy._M_next_resize =
       0;
  this_01[1].super_Sized_relobj<32,var_3>.local_got_offsets_._M_h._M_single_bucket =
       (type_11)0x0;
  if (var_6 != 0) {
    var_11 = *(int *)(*(int *)(var_10 + var_9 + 0x12) + 0xc);
    if (var_11 == 0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 000c79a8 to 000c79ac has its CatchHandler @ 000c79b5 */
      gold::var_12((char *)(var_9 + 0x380ca4),0x73,(char *)(var_9 + 0x39d327));
    }
    var_13 = *(type_3 *)(var_11 + 8) & 3;
    if (var_13 == 0) {
      *(type_5 *)(var_11 + 0xc) = 1;
      *(type_3 *)(var_11 + 8) = *(type_3 *)(var_11 + 8) & 0xfffffffc | var_6;
    }
    else if (var_6 != var_13) {
      pcVar2 = (this_01->super_Sized_relobj<32,var_3>).super_Relobj.super_Object.name_._M_dataplus.
               _M_p;
      pcVar6 = (char *)var_15(var_9 + 0x39f4af);
                    /* try { // try from 000c794f to 000c7953 has its CatchHandler @ 000c79b5 */
      gold::var_16(pcVar6,pcVar2,var_6,var_13);
    }
  }
  gold::var_4<32,var_3>::var_20(this_01);
  return (type_6 *)this_01;
}


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

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

{
  short sVar1;
  int iVar2;
  int iVar3;
  char cVar4;
  int *piVar5;
  uint uVar6;
  undefined4 uVar7;
  undefined4 uVar8;
  uint uVar9;
  int unaff_EDI;
  
  FUN_00074f0a();
  sVar1 = *(short *)(*param_6 + 0x10);
  if (sVar1 != 1) {
    if (sVar1 == 2) {
      cVar4 = FUN_0023df40(param_3);
      if (cVar4 != '\0') goto LAB_000c775c;
    }
    else if (sVar1 == 3) {
      piVar5 = (int *)FUN_003ac4d0(0xa0);
                    /* try { // try from 000c7627 to 000c762b has its CatchHandler @ 000c79ad */
      FUN_0023a130(piVar5,param_2,param_3,param_4,param_5,param_6);
      piVar5[0x21] = 0;
      *piVar5 = unaff_EDI + 0x516e67;
      uVar6 = *(uint *)(*param_6 + 0x24);
      piVar5[0x24] = 0;
      piVar5[0x25] = 0;
      piVar5[0x23] = uVar6;
      uVar6 = uVar6 & 3;
      piVar5[0x26] = 0;
      piVar5[0x27] = 0;
      if (uVar6 != 0) {
        iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);
        if (iVar2 == 0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 000c7990 to 000c7994 has its CatchHandler @ 000c79c5 */
          FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,
                       *(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12));
        }
        uVar9 = *(uint *)(iVar2 + 8) & 3;
        if (uVar9 == 0) {
          *(undefined1 *)(iVar2 + 0xc) = 1;
          *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;
          FUN_00234d00(piVar5);
          return piVar5;
        }
        if (uVar6 != uVar9) {
          iVar2 = piVar5[1];
          uVar7 = gettext(&UNK_0039f4af + unaff_EDI);
                    /* try { // try from 000c76cc to 000c76d0 has its CatchHandler @ 000c79c5 */
          FUN_0023b810(uVar7,iVar2,uVar6,uVar9);
        }
      }
      FUN_00234d00(piVar5);
      return piVar5;
    }
    uVar7 = *param_2;
    uVar8 = gettext(&UNK_0039f517 + unaff_EDI);
    FUN_0023b810(uVar8,uVar7,sVar1);
    return (int *)0x0;
  }
LAB_000c775c:
  piVar5 = (int *)FUN_003ac4d0(0x1c0);
                    /* try { // try from 000c777f to 000c7783 has its CatchHandler @ 000c79bd */
  FUN_002a0e60(piVar5,param_2,param_3,param_4,param_5,param_6);
  piVar5[0x50] = 0;
  *piVar5 = unaff_EDI + 0x516d5b;
  iVar2 = *(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e);
  piVar5[0x51] = 0;
  piVar5[0x4f] = iVar2;
  piVar5[0x52] = 0;
  iVar3 = *param_6;
  *(undefined2 *)(piVar5 + 0x53) = 0;
  *(int *)(BYTE_ARRAY_005235ad + unaff_EDI + 0x1e) = iVar2 + 1;
  uVar6 = *(uint *)(iVar3 + 0x24);
  uVar9 = 0;
  piVar5[0x55] = 0;
  piVar5[0x56] = 0;
  piVar5[0x54] = uVar6;
  piVar5[0x57] = 0;
  piVar5[0x58] = 0;
  piVar5[0x59] = 0;
  piVar5[0x5a] = 0;
  piVar5[0x5b] = 0;
  piVar5[0x5c] = 0;
  do {
    *(undefined4 *)((int)piVar5 + uVar9 + 0x174) = 0;
    uVar9 = uVar9 + 4;
  } while (uVar9 < 0x1c);
  uVar6 = uVar6 & 3;
  piVar5[0x5e] = 1;
  piVar5[0x5d] = (int)(piVar5 + 99);
  piVar5[0x5f] = 0;
  piVar5[0x60] = 0;
  piVar5[0x61] = 0x3f800000;
  piVar5[0x62] = 0;
  piVar5[99] = 0;
  piVar5[100] = 0;
  piVar5[0x65] = 0;
  piVar5[0x66] = 0;
  piVar5[0x67] = 0;
  piVar5[0x68] = 0;
  piVar5[0x69] = 0;
  piVar5[0x6a] = 0;
  piVar5[0x6b] = 0;
  piVar5[0x6c] = 0;
  piVar5[0x6d] = 0;
  piVar5[0x6e] = 0;
  piVar5[0x6f] = 0;
  if (uVar6 != 0) {
    iVar2 = *(int *)(*(int *)(BYTE_ARRAY_005231ed + unaff_EDI + 0x12) + 0xc);
    if (iVar2 == 0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 000c79a8 to 000c79ac has its CatchHandler @ 000c79b5 */
      FUN_002446e0(unaff_EDI + 0x380ca4,0x73,&UNK_0039d327 + unaff_EDI,uVar6);
    }
    uVar9 = *(uint *)(iVar2 + 8) & 3;
    if (uVar9 == 0) {
      *(undefined1 *)(iVar2 + 0xc) = 1;
      *(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) & 0xfffffffc | uVar6;
    }
    else if (uVar6 != uVar9) {
      iVar2 = piVar5[1];
      uVar7 = gettext(&UNK_0039f4af + unaff_EDI);
                    /* try { // try from 000c794f to 000c7953 has its CatchHandler @ 000c79b5 */
      FUN_0023b810(uVar7,iVar2,uVar6,uVar9);
    }
  }
  FUN_002945e0(piVar5);
  return piVar5;
}

