
/* WARNING: Enum "DW_SECT": Some values do not have unique names */
/* DWARF original prototype: void add_unit_set(Dwo_file * this, Dwp_output_file * output_file, uint
   * debug_shndx, bool is_debug_types) */

void __thiscall
gold::Dwo_file::add_unit_set
          (Dwo_file *this,Dwp_output_file *output_file,uint *debug_shndx,bool is_debug_types)

{
  _Hash_node_base *p_Var1;
  char *pcVar2;
  undefined1 auVar3 [16];
  Section_bounds *pSVar4;
  __node_base _Var5;
  Section_bounds *pSVar6;
  char *format;
  DW_SECT section_id;
  long lVar7;
  Abbrev_code **ppAVar8;
  byte bVar9;
  Section_bounds SVar10;
  uint local_a20;
  Section_bounds sections [9];
  Unit_reader reader;
  
  bVar9 = 0;
  if (is_debug_types) {
    local_a20 = debug_shndx[2];
  }
  else {
    local_a20 = debug_shndx[1];
  }
  if (local_a20 == 0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/dwp.cc",0x5f1,"add_unit_set");
  }
  if (debug_shndx[3] == 0) {
    pcVar2 = this->name_;
    format = (char *)gettext("%s: no .debug_abbrev.dwo section found");
                    /* WARNING: Subroutine does not return */
    gold_fatal(format,pcVar2);
  }
  pSVar6 = sections;
  do {
    pSVar6->offset = 0;
    pSVar4 = pSVar6 + 1;
    pSVar6->size = 0;
    pSVar6 = pSVar4;
  } while (&reader != (Unit_reader *)pSVar4);
  lVar7 = 3;
  do {
    while (debug_shndx[lVar7] != 0) {
      section_id = (DW_SECT)lVar7;
      SVar10 = copy_section(this,output_file,debug_shndx[lVar7],section_id);
      lVar7 = lVar7 + 1;
      sections[(int)section_id].offset = SVar10.offset;
      sections[(int)section_id].size = SVar10.size;
      if (lVar7 == 9) goto LAB_00149b6a;
    }
    lVar7 = lVar7 + 1;
  } while (lVar7 != 9);
LAB_00149b6a:
  reader.super_Dwarf_info_reader.object_ = this->obj_;
  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_element_count = 0;
  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_rehash_policy.
  _M_max_load_factor = 0.0;
  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_rehash_policy._4_4_ = 0;
  reader.super_Dwarf_info_reader.shndx_ = local_a20;
  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_buckets =
       &reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_single_bucket;
  ppAVar8 = reader.super_Dwarf_info_reader.abbrev_table_.low_abbrev_codes_;
  for (lVar7 = 0x100; lVar7 != 0; lVar7 = lVar7 + -1) {
    *ppAVar8 = (Abbrev_code *)0x0;
    ppAVar8 = ppAVar8 + (ulong)bVar9 * -2 + 1;
  }
  reader.super_Dwarf_info_reader.symtab_ = (uchar *)0x0;
  reader.super_Dwarf_info_reader.symtab_size_ = 0;
  reader.super_Dwarf_info_reader.reloc_shndx_ = 0;
  reader.super_Dwarf_info_reader.reloc_type_ = 0;
  reader.super_Dwarf_info_reader.string_shndx_ = 0;
  reader.super_Dwarf_info_reader.buffer_ = (uchar *)0x0;
  reader.super_Dwarf_info_reader.buffer_end_ = (uchar *)0x0;
  reader.super_Dwarf_info_reader.cu_offset_ = 0;
  reader.super_Dwarf_info_reader.cu_length_ = 0;
  reader.super_Dwarf_info_reader.offset_size_ = 0;
  reader.super_Dwarf_info_reader.address_size_ = 0;
  reader.super_Dwarf_info_reader.cu_version_ = 0;
  reader.super_Dwarf_info_reader.abbrev_table_.abbrev_shndx_ = 0;
  reader.super_Dwarf_info_reader.abbrev_table_.abbrev_offset_ = 0;
  reader.super_Dwarf_info_reader.abbrev_table_.buffer_ = (uchar *)0x0;
  reader.super_Dwarf_info_reader.abbrev_table_.buffer_end_ = (uchar *)0x0;
  reader.super_Dwarf_info_reader.abbrev_table_.owns_buffer_ = false;
  reader.super_Dwarf_info_reader.abbrev_table_.buffer_pos_ = (uchar *)0x0;
  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_rehash_policy.
  _M_next_resize = 0;
  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_single_bucket =
       (__bucket_type)0x0;
  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_bucket_count = 1;
  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_before_begin._M_nxt =
       (_Hash_node_base *)0x0;
  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_rehash_policy.
  _M_max_load_factor = 1.0;
  reader.super_Dwarf_info_reader.ranges_table_.ranges_shndx_ = 0;
  reader.super_Dwarf_info_reader.ranges_table_.ranges_buffer_ = (uchar *)0x0;
  reader.super_Dwarf_info_reader.ranges_table_.ranges_buffer_end_ = (uchar *)0x0;
  reader.super_Dwarf_info_reader.abbrev_shndx_ = debug_shndx[3];
  reader.super_Dwarf_info_reader.ranges_table_.owns_ranges_buffer_ = false;
  reader.super_Dwarf_info_reader.ranges_table_.ranges_reloc_mapper_ = (Elf_reloc_mapper *)0x0;
  reader.super_Dwarf_info_reader.ranges_table_.reloc_type_ = 0;
  reader.super_Dwarf_info_reader.ranges_table_.output_section_offset_ = 0;
  reader.super_Dwarf_info_reader.reloc_mapper_ = (Elf_reloc_mapper *)0x0;
  reader.super_Dwarf_info_reader.string_buffer_ = (char *)0x0;
  reader.super_Dwarf_info_reader.string_buffer_end_ = (char *)0x0;
  reader.super_Dwarf_info_reader.owns_string_buffer_ = false;
  reader.super_Dwarf_info_reader.string_output_section_offset_ = 0;
  reader.super_Dwarf_info_reader._vptr_Dwarf_info_reader =
       (_func_int_varargs **)&PTR__Unit_reader_003a9e98;
  reader.super_Dwarf_info_reader.is_type_unit_ = is_debug_types;
  reader.super_Dwarf_info_reader.ranges_table_.dwinfo_ = &reader.super_Dwarf_info_reader;
  reader.output_file_ = output_file;
  reader.sections_ = sections;
                    /* try { // try from 00149d64 to 00149d68 has its CatchHandler @ 00149ed9 */
  Dwarf_info_reader::parse(&reader.super_Dwarf_info_reader);
  reader.super_Dwarf_info_reader._vptr_Dwarf_info_reader =
       (_func_int_varargs **)&PTR__Dwarf_info_reader_003a9fb8;
  if (reader.super_Dwarf_info_reader.reloc_mapper_ != (Elf_reloc_mapper *)0x0) {
    (*(reader.super_Dwarf_info_reader.reloc_mapper_)->_vptr_Elf_reloc_mapper[1])();
  }
  if ((reader.super_Dwarf_info_reader.owns_string_buffer_ != false) &&
     (reader.super_Dwarf_info_reader.string_buffer_ != (char *)0x0)) {
    operator_delete__(reader.super_Dwarf_info_reader.string_buffer_);
  }
  if ((reader.super_Dwarf_info_reader.ranges_table_.owns_ranges_buffer_ != false) &&
     (reader.super_Dwarf_info_reader.ranges_table_.ranges_buffer_ != (uchar *)0x0)) {
    operator_delete__(reader.super_Dwarf_info_reader.ranges_table_.ranges_buffer_);
  }
  if (reader.super_Dwarf_info_reader.ranges_table_.ranges_reloc_mapper_ != (Elf_reloc_mapper *)0x0)
  {
    (*(reader.super_Dwarf_info_reader.ranges_table_.ranges_reloc_mapper_)->_vptr_Elf_reloc_mapper[1]
    )();
  }
  if ((reader.super_Dwarf_info_reader.abbrev_table_.owns_buffer_ != false) &&
     (reader.super_Dwarf_info_reader.abbrev_table_.buffer_ != (uchar *)0x0)) {
    operator_delete__(reader.super_Dwarf_info_reader.abbrev_table_.buffer_);
  }
  Dwarf_abbrev_table::clear_abbrev_codes(&reader.super_Dwarf_info_reader.abbrev_table_);
  _Var5 = reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_before_begin;
  while (_Var5._M_nxt != (_Hash_node_base *)0x0) {
    p_Var1 = (_Var5._M_nxt)->_M_nxt;
    operator_delete(_Var5._M_nxt);
    _Var5._M_nxt = p_Var1;
  }
  memset(reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_buckets,0,
         reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_bucket_count * 8);
  auVar3._8_8_ = 0;
  auVar3._0_8_ = reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h.
                 _M_rehash_policy._0_8_;
  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._24_16_ = auVar3 << 0x40;
  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_before_begin._M_nxt =
       (_Hash_node_base *)0x0;
  if (reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_buckets !=
      &reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_single_bucket) {
    operator_delete(reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_buckets)
    ;
  }
  return;
}



void FUN_00149ab0(undefined8 *param_1,undefined8 param_2,long param_3,char param_4)

{
  int iVar1;
  undefined8 uVar2;
  undefined ***pppuVar3;
  undefined ***pppuVar4;
  undefined8 uVar5;
  long lVar6;
  int iVar7;
  ulong uVar8;
  undefined8 *puVar9;
  byte bVar10;
  undefined1 auVar11 [16];
  int local_a20;
  undefined **local_a18 [19];
  char local_980;
  undefined8 local_978;
  undefined8 local_970;
  undefined8 local_968;
  int local_960;
  undefined8 local_95c;
  undefined4 local_954;
  undefined4 local_950;
  undefined8 local_948;
  undefined8 local_940;
  undefined8 local_938;
  undefined8 local_930;
  undefined8 local_928;
  undefined4 local_920;
  undefined4 local_918 [2];
  undefined8 local_910;
  long local_908;
  undefined8 local_900;
  char local_8f8;
  undefined8 local_8f0;
  undefined8 local_8e8 [256];
  undefined1 *local_e8;
  long local_e0;
  undefined8 *local_d8;
  undefined1 local_d0 [16];
  undefined1 local_c0 [16];
  undefined ***local_b0;
  undefined4 local_a8;
  long local_a0;
  undefined8 local_98;
  char local_90;
  long *local_88;
  undefined4 local_80;
  undefined8 local_78;
  long *local_70;
  long local_68;
  undefined8 local_60;
  char local_58;
  undefined8 local_50;
  undefined8 local_48;
  undefined ***local_40;
  
  bVar10 = 0;
  if (param_4 == '\0') {
    local_a20 = *(int *)(param_3 + 4);
  }
  else {
    local_a20 = *(int *)(param_3 + 8);
  }
  if (local_a20 == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0016cdf0("../../gold/dwp.cc",0x5f1,"add_unit_set");
  }
  if (*(int *)(param_3 + 0xc) == 0) {
    uVar2 = *param_1;
    uVar5 = gettext("%s: no .debug_abbrev.dwo section found");
                    /* WARNING: Subroutine does not return */
    FUN_00168f60(uVar5,uVar2);
  }
  pppuVar3 = local_a18;
  do {
    *pppuVar3 = (undefined **)0x0;
    pppuVar4 = pppuVar3 + 2;
    pppuVar3[1] = (undefined **)0x0;
    pppuVar3 = pppuVar4;
  } while (local_a18 + 0x12 != pppuVar4);
  uVar8 = 3;
  do {
    while (iVar1 = *(int *)(param_3 + uVar8 * 4), iVar1 != 0) {
      iVar7 = (int)uVar8;
      auVar11 = FUN_00149990(param_1,param_2,iVar1,uVar8 & 0xffffffff);
      uVar8 = uVar8 + 1;
      local_a18[(long)iVar7 * 2] = auVar11._0_8_;
      local_a18[(long)iVar7 * 2 + 1] = auVar11._8_8_;
      if (uVar8 == 9) goto LAB_00149b6a;
    }
    uVar8 = uVar8 + 1;
  } while (uVar8 != 9);
LAB_00149b6a:
  local_978 = param_1[1];
  local_d0 = (undefined1  [16])0x0;
  local_960 = local_a20;
  local_e8 = local_c0 + 8;
  puVar9 = local_8e8;
  for (lVar6 = 0x100; lVar6 != 0; lVar6 = lVar6 + -1) {
    *puVar9 = 0;
    puVar9 = puVar9 + (ulong)bVar10 * -2 + 1;
  }
  local_970 = 0;
  local_968 = 0;
  local_95c = 0;
  local_950 = 0;
  local_948 = 0;
  local_940 = 0;
  local_938 = 0;
  local_930 = 0;
  local_928 = 0;
  local_920 = 0;
  local_918[0] = 0;
  local_910 = 0;
  local_908 = 0;
  local_900 = 0;
  local_8f8 = '\0';
  local_8f0 = 0;
  local_c0 = (undefined1  [16])0x0;
  local_e0 = 1;
  local_d8 = (undefined8 *)0x0;
  local_d0._8_4_ = 0x3f800000;
  local_a8 = 0;
  local_a0 = 0;
  local_98 = 0;
  local_954 = *(undefined4 *)(param_3 + 0xc);
  local_90 = '\0';
  local_88 = (long *)0x0;
  local_80 = 0;
  local_78 = 0;
  local_70 = (long *)0x0;
  local_68 = 0;
  local_60 = 0;
  local_58 = '\0';
  local_50 = 0;
  local_a18[0x12] = &PTR_FUN_003a9e98;
  local_980 = param_4;
  local_b0 = local_a18 + 0x12;
  local_48 = param_2;
  local_40 = local_a18;
                    /* try { // try from 00149d64 to 00149d68 has its CatchHandler @ 00149ed9 */
  FUN_00162200(local_a18 + 0x12);
  local_a18[0x12] = &PTR_FUN_003a9fb8;
  if (local_70 != (long *)0x0) {
    (**(code **)(*local_70 + 8))();
  }
  if ((local_58 != '\0') && (local_68 != 0)) {
    thunk_FUN_00276d20();
  }
  if ((local_90 != '\0') && (local_a0 != 0)) {
    thunk_FUN_00276d20();
  }
  if (local_88 != (long *)0x0) {
    (**(code **)(*local_88 + 8))();
  }
  if ((local_8f8 != '\0') && (local_908 != 0)) {
    thunk_FUN_00276d20();
  }
  FUN_00160530(local_918);
  puVar9 = local_d8;
  while (puVar9 != (undefined8 *)0x0) {
    puVar9 = (undefined8 *)*puVar9;
    FUN_00276d20();
  }
  memset(local_e8,0,local_e0 * 8);
  auVar11._8_8_ = 0;
  auVar11._0_8_ = local_d0._8_8_;
  local_d0 = auVar11 << 0x40;
  local_d8 = (undefined8 *)0x0;
  if (local_e8 != local_c0 + 8) {
    FUN_00276d20();
  }
  return;
}


PUSH R15
PUSH R14
MOV R14,RDX
PUSH R13
MOV R13,RDI
PUSH R12
MOV R12,RSI
PUSH RBP
PUSH RBX
SUB RSP,0x9f8
MOV dword ptr [RSP + 0xc],ECX
TEST CL,CL
JZ 0x00149e98
MOV EAX,dword ptr [RDX + 0x8]
MOV dword ptr [RSP + 0x8],EAX
MOV EDX,dword ptr [RSP + 0x8]
TEST EDX,EDX
JZ 0x00149ea4
MOV EAX,dword ptr [R14 + 0xc]
TEST EAX,EAX
JZ 0x00149ebc
LEA RBP,[RSP + 0x10]
MOV RAX,RBP
LEA RDX,[RBP + 0x90]
NOP dword ptr [RAX]
MOV qword ptr [RAX],0x0
ADD RAX,0x10
MOV qword ptr [RAX + -0x8],0x0
CMP RDX,RAX
JNZ 0x00149b08
MOV EBX,0x3
JMP 0x00149b3a
ADD RBX,0x1
CMP RBX,0x9
JZ 0x00149b6a
MOV EDX,dword ptr [R14 + RBX*0x4]
TEST EDX,EDX
JZ 0x00149b30
MOVSXD R15,EBX
MOV ECX,EBX
MOV RSI,R12
MOV RDI,R13
CALL 0x00149990
SHL R15,0x4
ADD RBX,0x1
MOV qword ptr [RSP + R15*0x1 + 0x10],RAX
MOV qword ptr [RSP + R15*0x1 + 0x18],RDX
CMP RBX,0x9
JNZ 0x00149b3a
MOV RAX,qword ptr [R13 + 0x8]
MOVZX ESI,byte ptr [RSP + 0xc]
PXOR XMM0,XMM0
LEA R13,[RSP + 0xa0]
LEA RDX,[R13 + 0xa0]
MOV ECX,0x100
MOVUPS xmmword ptr [RSP + 0x958],XMM0
LEA RBX,[0x3a9e98]
MOV qword ptr [RSP + 0xb0],RAX
MOV EAX,dword ptr [RSP + 0x8]
MOV RDI,RDX
MOV byte ptr [RSP + 0xa8],SIL
MOV dword ptr [RSP + 0xc8],EAX
LEA RAX,[R13 + 0x8d0]
MOV qword ptr [RSP + 0x940],RAX
XOR EAX,EAX
STOSQ.REP RDI
MOV RDI,R13
MOV qword ptr [RSP + 0xb8],0x0
MOV qword ptr [RSP + 0xc0],0x0
MOV qword ptr [RSP + 0xcc],0x0
MOV dword ptr [RSP + 0xd8],0x0
MOV qword ptr [RSP + 0xe0],0x0
MOV qword ptr [RSP + 0xe8],0x0
MOV qword ptr [RSP + 0xf0],0x0
MOV qword ptr [RSP + 0xf8],0x0
MOV qword ptr [RSP + 0x100],0x0
MOV dword ptr [RSP + 0x108],0x0
MOV dword ptr [RSP + 0x110],0x0
MOV qword ptr [RSP + 0x118],0x0
MOV qword ptr [RSP + 0x120],0x0
MOV qword ptr [RSP + 0x128],0x0
MOV byte ptr [RSP + 0x130],0x0
MOV qword ptr [RSP + 0x138],0x0
MOVUPS xmmword ptr [RSP + 0x968],XMM0
MOV qword ptr [RSP + 0x948],0x1
MOV qword ptr [RSP + 0x950],0x0
MOV dword ptr [RSP + 0x960],0x3f800000
MOV qword ptr [RSP + 0x978],R13
MOV dword ptr [RSP + 0x980],0x0
MOV qword ptr [RSP + 0x988],0x0
MOV qword ptr [RSP + 0x990],0x0
MOV EAX,dword ptr [R14 + 0xc]
MOV byte ptr [RSP + 0x998],0x0
MOV qword ptr [RSP + 0x9a0],0x0
MOV dword ptr [RSP + 0x9a8],0x0
MOV qword ptr [RSP + 0x9b0],0x0
MOV qword ptr [RSP + 0x9b8],0x0
MOV qword ptr [RSP + 0x9c0],0x0
MOV qword ptr [RSP + 0x9c8],0x0
MOV byte ptr [RSP + 0x9d0],0x0
MOV qword ptr [RSP + 0x9d8],0x0
MOV qword ptr [RSP + 0xa0],RBX
MOV qword ptr [RSP + 0x9e0],R12
MOV qword ptr [RSP + 0x9e8],RBP
MOV dword ptr [RSP + 0xd4],EAX
CALL 0x00162200
MOV RDI,qword ptr [RSP + 0x9b8]
LEA RAX,[0x3a9fb8]
MOV qword ptr [RSP + 0xa0],RAX
TEST RDI,RDI
JZ 0x00149d8b
MOV RAX,qword ptr [RDI]
CALL qword ptr [RAX + 0x8]
CMP byte ptr [RSP + 0x9d0],0x0
JZ 0x00149da7
MOV RDI,qword ptr [RSP + 0x9c0]
TEST RDI,RDI
JZ 0x00149da7
CALL 0x00276cf0
CMP byte ptr [RSP + 0x998],0x0
JNZ 0x00149e78
MOV RDI,qword ptr [RSP + 0x9a0]
TEST RDI,RDI
JZ 0x00149dc8
MOV RAX,qword ptr [RDI]
CALL qword ptr [RAX + 0x8]
CMP byte ptr [RSP + 0x130],0x0
JZ 0x00149de4
MOV RDI,qword ptr [RSP + 0x120]
TEST RDI,RDI
JZ 0x00149de4
CALL 0x00276cf0
LEA RDI,[R13 + 0x70]
CALL 0x00160530
MOV RDI,qword ptr [RSP + 0x950]
TEST RDI,RDI
JZ 0x00149e10
NOP word ptr [RAX + RAX*0x1]
MOV RBX,qword ptr [RDI]
CALL 0x00276d20
MOV RDI,RBX
TEST RBX,RBX
JNZ 0x00149e00
MOV RAX,qword ptr [RSP + 0x948]
XOR ESI,ESI
MOV RDI,qword ptr [RSP + 0x940]
ADD R13,0x8d0
LEA RDX,[RAX*0x8]
CALL 0x0013e100
MOV RDI,qword ptr [RSP + 0x940]
MOV qword ptr [RSP + 0x958],0x0
MOV qword ptr [RSP + 0x950],0x0
CMP RDI,R13
JZ 0x00149e60
CALL 0x00276d20
ADD RSP,0x9f8
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV RDI,qword ptr [RSP + 0x988]
TEST RDI,RDI
JZ 0x00149db5
CALL 0x00276cf0
JMP 0x00149db5
MOV EAX,dword ptr [RDX + 0x4]
MOV dword ptr [RSP + 0x8],EAX
JMP 0x00149add
LEA RDX,[0x307c08]
MOV ESI,0x5f1
LEA RDI,[0x307004]
CALL 0x0016cdf0
MOV RBX,qword ptr [R13]
LEA RDI,[0x3072e8]
CALL 0x0013e320
MOV RDI,RAX
MOV RSI,RBX
XOR EAX,EAX
CALL 0x00168f60
(translation_unit "void FUN_00149ab0(undefined8 *param_1,undefined8 param_2,long param_3,char param_4)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  undefined ***pppuVar3;\n  undefined ***pppuVar4;\n  undefined8 uVar5;\n  long lVar6;\n  int iVar7;\n  ulong uVar8;\n  undefined8 *puVar9;\n  byte bVar10;\n  undefined1 auVar11 [16];\n  int local_a20;\n  undefined **local_a18 [19];\n  char local_980;\n  undefined8 local_978;\n  undefined8 local_970;\n  undefined8 local_968;\n  int local_960;\n  undefined8 local_95c;\n  undefined4 local_954;\n  undefined4 local_950;\n  undefined8 local_948;\n  undefined8 local_940;\n  undefined8 local_938;\n  undefined8 local_930;\n  undefined8 local_928;\n  undefined4 local_920;\n  undefined4 local_918 [2];\n  undefined8 local_910;\n  long local_908;\n  undefined8 local_900;\n  char local_8f8;\n  undefined8 local_8f0;\n  undefined8 local_8e8 [256];\n  undefined1 *local_e8;\n  long local_e0;\n  undefined8 *local_d8;\n  undefined1 local_d0 [16];\n  undefined1 local_c0 [16];\n  undefined ***local_b0;\n  undefined4 local_a8;\n  long local_a0;\n  undefined8 local_98;\n  char local_90;\n  long *local_88;\n  undefined4 local_80;\n  undefined8 local_78;\n  long *local_70;\n  long local_68;\n  undefined8 local_60;\n  char local_58;\n  undefined8 local_50;\n  undefined8 local_48;\n  undefined ***local_40;\n  \n  bVar10 = 0;\n  if (param_4 == '\0') {\n    local_a20 = *(int *)(param_3 + 4);\n  }\n  else {\n    local_a20 = *(int *)(param_3 + 8);\n  }\n  if (local_a20 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/dwp.cc",0x5f1,"add_unit_set");\n  }\n  if (*(int *)(param_3 + 0xc) == 0) {\n    uVar2 = *param_1;\n    uVar5 = gettext("%s: no .debug_abbrev.dwo section found");\n                    /* WARNING: Subroutine does not return */\n    FUN_00168f60(uVar5,uVar2);\n  }\n  pppuVar3 = local_a18;\n  do {\n    *pppuVar3 = (undefined **)0x0;\n    pppuVar4 = pppuVar3 + 2;\n    pppuVar3[1] = (undefined **)0x0;\n    pppuVar3 = pppuVar4;\n  } while (local_a18 + 0x12 != pppuVar4);\n  uVar8 = 3;\n  do {\n    while (iVar1 = *(int *)(param_3 + uVar8 * 4), iVar1 != 0) {\n      iVar7 = (int)uVar8;\n      auVar11 = FUN_00149990(param_1,param_2,iVar1,uVar8 & 0xffffffff);\n      uVar8 = uVar8 + 1;\n      local_a18[(long)iVar7 * 2] = auVar11._0_8_;\n      local_a18[(long)iVar7 * 2 + 1] = auVar11._8_8_;\n      if (uVar8 == 9) goto LAB_00149b6a;\n    }\n    uVar8 = uVar8 + 1;\n  } while (uVar8 != 9);\nLAB_00149b6a:\n  local_978 = param_1[1];\n  local_d0 = (undefined1  [16])0x0;\n  local_960 = local_a20;\n  local_e8 = local_c0 + 8;\n  puVar9 = local_8e8;\n  for (lVar6 = 0x100; lVar6 != 0; lVar6 = lVar6 + -1) {\n    *puVar9 = 0;\n    puVar9 = puVar9 + (ulong)bVar10 * -2 + 1;\n  }\n  local_970 = 0;\n  local_968 = 0;\n  local_95c = 0;\n  local_950 = 0;\n  local_948 = 0;\n  local_940 = 0;\n  local_938 = 0;\n  local_930 = 0;\n  local_928 = 0;\n  local_920 = 0;\n  local_918[0] = 0;\n  local_910 = 0;\n  local_908 = 0;\n  local_900 = 0;\n  local_8f8 = '\0';\n  local_8f0 = 0;\n  local_c0 = (undefined1  [16])0x0;\n  local_e0 = 1;\n  local_d8 = (undefined8 *)0x0;\n  local_d0._8_4_ = 0x3f800000;\n  local_a8 = 0;\n  local_a0 = 0;\n  local_98 = 0;\n  local_954 = *(undefined4 *)(param_3 + 0xc);\n  local_90 = '\0';\n  local_88 = (long *)0x0;\n  local_80 = 0;\n  local_78 = 0;\n  local_70 = (long *)0x0;\n  local_68 = 0;\n  local_60 = 0;\n  local_58 = '\0';\n  local_50 = 0;\n  local_a18[0x12] = &PTR_FUN_003a9e98;\n  local_980 = param_4;\n  local_b0 = local_a18 + 0x12;\n  local_48 = param_2;\n  local_40 = local_a18;\n                    /* try { // try from 00149d64 to 00149d68 has its CatchHandler @ 00149ed9 */\n  FUN_00162200(local_a18 + 0x12);\n  local_a18[0x12] = &PTR_FUN_003a9fb8;\n  if (local_70 != (long *)0x0) {\n    (**(code **)(*local_70 + 8))();\n  }\n  if ((local_58 != '\0') && (local_68 != 0)) {\n    thunk_FUN_00276d20();\n  }\n  if ((local_90 != '\0') && (local_a0 != 0)) {\n    thunk_FUN_00276d20();\n  }\n  if (local_88 != (long *)0x0) {\n    (**(code **)(*local_88 + 8))();\n  }\n  if ((local_8f8 != '\0') && (local_908 != 0)) {\n    thunk_FUN_00276d20();\n  }\n  FUN_00160530(local_918);\n  puVar9 = local_d8;\n  while (puVar9 != (undefined8 *)0x0) {\n    puVar9 = (undefined8 *)*puVar9;\n    FUN_00276d20();\n  }\n  memset(local_e8,0,local_e0 * 8);\n  auVar11._8_8_ = 0;\n  auVar11._0_8_ = local_d0._8_8_;\n  local_d0 = auVar11 << 0x40;\n  local_d8 = (undefined8 *)0x0;\n  if (local_e8 != local_c0 + 8) {\n    FUN_00276d20();\n  }\n  return;\n}\n\n" (function_definition "void FUN_00149ab0(undefined8 *param_1,undefined8 param_2,long param_3,char param_4)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  undefined ***pppuVar3;\n  undefined ***pppuVar4;\n  undefined8 uVar5;\n  long lVar6;\n  int iVar7;\n  ulong uVar8;\n  undefined8 *puVar9;\n  byte bVar10;\n  undefined1 auVar11 [16];\n  int local_a20;\n  undefined **local_a18 [19];\n  char local_980;\n  undefined8 local_978;\n  undefined8 local_970;\n  undefined8 local_968;\n  int local_960;\n  undefined8 local_95c;\n  undefined4 local_954;\n  undefined4 local_950;\n  undefined8 local_948;\n  undefined8 local_940;\n  undefined8 local_938;\n  undefined8 local_930;\n  undefined8 local_928;\n  undefined4 local_920;\n  undefined4 local_918 [2];\n  undefined8 local_910;\n  long local_908;\n  undefined8 local_900;\n  char local_8f8;\n  undefined8 local_8f0;\n  undefined8 local_8e8 [256];\n  undefined1 *local_e8;\n  long local_e0;\n  undefined8 *local_d8;\n  undefined1 local_d0 [16];\n  undefined1 local_c0 [16];\n  undefined ***local_b0;\n  undefined4 local_a8;\n  long local_a0;\n  undefined8 local_98;\n  char local_90;\n  long *local_88;\n  undefined4 local_80;\n  undefined8 local_78;\n  long *local_70;\n  long local_68;\n  undefined8 local_60;\n  char local_58;\n  undefined8 local_50;\n  undefined8 local_48;\n  undefined ***local_40;\n  \n  bVar10 = 0;\n  if (param_4 == '\0') {\n    local_a20 = *(int *)(param_3 + 4);\n  }\n  else {\n    local_a20 = *(int *)(param_3 + 8);\n  }\n  if (local_a20 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/dwp.cc",0x5f1,"add_unit_set");\n  }\n  if (*(int *)(param_3 + 0xc) == 0) {\n    uVar2 = *param_1;\n    uVar5 = gettext("%s: no .debug_abbrev.dwo section found");\n                    /* WARNING: Subroutine does not return */\n    FUN_00168f60(uVar5,uVar2);\n  }\n  pppuVar3 = local_a18;\n  do {\n    *pppuVar3 = (undefined **)0x0;\n    pppuVar4 = pppuVar3 + 2;\n    pppuVar3[1] = (undefined **)0x0;\n    pppuVar3 = pppuVar4;\n  } while (local_a18 + 0x12 != pppuVar4);\n  uVar8 = 3;\n  do {\n    while (iVar1 = *(int *)(param_3 + uVar8 * 4), iVar1 != 0) {\n      iVar7 = (int)uVar8;\n      auVar11 = FUN_00149990(param_1,param_2,iVar1,uVar8 & 0xffffffff);\n      uVar8 = uVar8 + 1;\n      local_a18[(long)iVar7 * 2] = auVar11._0_8_;\n      local_a18[(long)iVar7 * 2 + 1] = auVar11._8_8_;\n      if (uVar8 == 9) goto LAB_00149b6a;\n    }\n    uVar8 = uVar8 + 1;\n  } while (uVar8 != 9);\nLAB_00149b6a:\n  local_978 = param_1[1];\n  local_d0 = (undefined1  [16])0x0;\n  local_960 = local_a20;\n  local_e8 = local_c0 + 8;\n  puVar9 = local_8e8;\n  for (lVar6 = 0x100; lVar6 != 0; lVar6 = lVar6 + -1) {\n    *puVar9 = 0;\n    puVar9 = puVar9 + (ulong)bVar10 * -2 + 1;\n  }\n  local_970 = 0;\n  local_968 = 0;\n  local_95c = 0;\n  local_950 = 0;\n  local_948 = 0;\n  local_940 = 0;\n  local_938 = 0;\n  local_930 = 0;\n  local_928 = 0;\n  local_920 = 0;\n  local_918[0] = 0;\n  local_910 = 0;\n  local_908 = 0;\n  local_900 = 0;\n  local_8f8 = '\0';\n  local_8f0 = 0;\n  local_c0 = (undefined1  [16])0x0;\n  local_e0 = 1;\n  local_d8 = (undefined8 *)0x0;\n  local_d0._8_4_ = 0x3f800000;\n  local_a8 = 0;\n  local_a0 = 0;\n  local_98 = 0;\n  local_954 = *(undefined4 *)(param_3 + 0xc);\n  local_90 = '\0';\n  local_88 = (long *)0x0;\n  local_80 = 0;\n  local_78 = 0;\n  local_70 = (long *)0x0;\n  local_68 = 0;\n  local_60 = 0;\n  local_58 = '\0';\n  local_50 = 0;\n  local_a18[0x12] = &PTR_FUN_003a9e98;\n  local_980 = param_4;\n  local_b0 = local_a18 + 0x12;\n  local_48 = param_2;\n  local_40 = local_a18;\n                    /* try { // try from 00149d64 to 00149d68 has its CatchHandler @ 00149ed9 */\n  FUN_00162200(local_a18 + 0x12);\n  local_a18[0x12] = &PTR_FUN_003a9fb8;\n  if (local_70 != (long *)0x0) {\n    (**(code **)(*local_70 + 8))();\n  }\n  if ((local_58 != '\0') && (local_68 != 0)) {\n    thunk_FUN_00276d20();\n  }\n  if ((local_90 != '\0') && (local_a0 != 0)) {\n    thunk_FUN_00276d20();\n  }\n  if (local_88 != (long *)0x0) {\n    (**(code **)(*local_88 + 8))();\n  }\n  if ((local_8f8 != '\0') && (local_908 != 0)) {\n    thunk_FUN_00276d20();\n  }\n  FUN_00160530(local_918);\n  puVar9 = local_d8;\n  while (puVar9 != (undefined8 *)0x0) {\n    puVar9 = (undefined8 *)*puVar9;\n    FUN_00276d20();\n  }\n  memset(local_e8,0,local_e0 * 8);\n  auVar11._8_8_ = 0;\n  auVar11._0_8_ = local_d0._8_8_;\n  local_d0 = auVar11 << 0x40;\n  local_d8 = (undefined8 *)0x0;\n  if (local_e8 != local_c0 + 8) {\n    FUN_00276d20();\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00149ab0(undefined8 *param_1,undefined8 param_2,long param_3,char param_4)" identifier (parameter_list "(undefined8 *param_1,undefined8 param_2,long param_3,char param_4)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) , (parameter_declaration "char param_4" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined8 uVar2;\n  undefined ***pppuVar3;\n  undefined ***pppuVar4;\n  undefined8 uVar5;\n  long lVar6;\n  int iVar7;\n  ulong uVar8;\n  undefined8 *puVar9;\n  byte bVar10;\n  undefined1 auVar11 [16];\n  int local_a20;\n  undefined **local_a18 [19];\n  char local_980;\n  undefined8 local_978;\n  undefined8 local_970;\n  undefined8 local_968;\n  int local_960;\n  undefined8 local_95c;\n  undefined4 local_954;\n  undefined4 local_950;\n  undefined8 local_948;\n  undefined8 local_940;\n  undefined8 local_938;\n  undefined8 local_930;\n  undefined8 local_928;\n  undefined4 local_920;\n  undefined4 local_918 [2];\n  undefined8 local_910;\n  long local_908;\n  undefined8 local_900;\n  char local_8f8;\n  undefined8 local_8f0;\n  undefined8 local_8e8 [256];\n  undefined1 *local_e8;\n  long local_e0;\n  undefined8 *local_d8;\n  undefined1 local_d0 [16];\n  undefined1 local_c0 [16];\n  undefined ***local_b0;\n  undefined4 local_a8;\n  long local_a0;\n  undefined8 local_98;\n  char local_90;\n  long *local_88;\n  undefined4 local_80;\n  undefined8 local_78;\n  long *local_70;\n  long local_68;\n  undefined8 local_60;\n  char local_58;\n  undefined8 local_50;\n  undefined8 local_48;\n  undefined ***local_40;\n  \n  bVar10 = 0;\n  if (param_4 == '\0') {\n    local_a20 = *(int *)(param_3 + 4);\n  }\n  else {\n    local_a20 = *(int *)(param_3 + 8);\n  }\n  if (local_a20 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/dwp.cc",0x5f1,"add_unit_set");\n  }\n  if (*(int *)(param_3 + 0xc) == 0) {\n    uVar2 = *param_1;\n    uVar5 = gettext("%s: no .debug_abbrev.dwo section found");\n                    /* WARNING: Subroutine does not return */\n    FUN_00168f60(uVar5,uVar2);\n  }\n  pppuVar3 = local_a18;\n  do {\n    *pppuVar3 = (undefined **)0x0;\n    pppuVar4 = pppuVar3 + 2;\n    pppuVar3[1] = (undefined **)0x0;\n    pppuVar3 = pppuVar4;\n  } while (local_a18 + 0x12 != pppuVar4);\n  uVar8 = 3;\n  do {\n    while (iVar1 = *(int *)(param_3 + uVar8 * 4), iVar1 != 0) {\n      iVar7 = (int)uVar8;\n      auVar11 = FUN_00149990(param_1,param_2,iVar1,uVar8 & 0xffffffff);\n      uVar8 = uVar8 + 1;\n      local_a18[(long)iVar7 * 2] = auVar11._0_8_;\n      local_a18[(long)iVar7 * 2 + 1] = auVar11._8_8_;\n      if (uVar8 == 9) goto LAB_00149b6a;\n    }\n    uVar8 = uVar8 + 1;\n  } while (uVar8 != 9);\nLAB_00149b6a:\n  local_978 = param_1[1];\n  local_d0 = (undefined1  [16])0x0;\n  local_960 = local_a20;\n  local_e8 = local_c0 + 8;\n  puVar9 = local_8e8;\n  for (lVar6 = 0x100; lVar6 != 0; lVar6 = lVar6 + -1) {\n    *puVar9 = 0;\n    puVar9 = puVar9 + (ulong)bVar10 * -2 + 1;\n  }\n  local_970 = 0;\n  local_968 = 0;\n  local_95c = 0;\n  local_950 = 0;\n  local_948 = 0;\n  local_940 = 0;\n  local_938 = 0;\n  local_930 = 0;\n  local_928 = 0;\n  local_920 = 0;\n  local_918[0] = 0;\n  local_910 = 0;\n  local_908 = 0;\n  local_900 = 0;\n  local_8f8 = '\0';\n  local_8f0 = 0;\n  local_c0 = (undefined1  [16])0x0;\n  local_e0 = 1;\n  local_d8 = (undefined8 *)0x0;\n  local_d0._8_4_ = 0x3f800000;\n  local_a8 = 0;\n  local_a0 = 0;\n  local_98 = 0;\n  local_954 = *(undefined4 *)(param_3 + 0xc);\n  local_90 = '\0';\n  local_88 = (long *)0x0;\n  local_80 = 0;\n  local_78 = 0;\n  local_70 = (long *)0x0;\n  local_68 = 0;\n  local_60 = 0;\n  local_58 = '\0';\n  local_50 = 0;\n  local_a18[0x12] = &PTR_FUN_003a9e98;\n  local_980 = param_4;\n  local_b0 = local_a18 + 0x12;\n  local_48 = param_2;\n  local_40 = local_a18;\n                    /* try { // try from 00149d64 to 00149d68 has its CatchHandler @ 00149ed9 */\n  FUN_00162200(local_a18 + 0x12);\n  local_a18[0x12] = &PTR_FUN_003a9fb8;\n  if (local_70 != (long *)0x0) {\n    (**(code **)(*local_70 + 8))();\n  }\n  if ((local_58 != '\0') && (local_68 != 0)) {\n    thunk_FUN_00276d20();\n  }\n  if ((local_90 != '\0') && (local_a0 != 0)) {\n    thunk_FUN_00276d20();\n  }\n  if (local_88 != (long *)0x0) {\n    (**(code **)(*local_88 + 8))();\n  }\n  if ((local_8f8 != '\0') && (local_908 != 0)) {\n    thunk_FUN_00276d20();\n  }\n  FUN_00160530(local_918);\n  puVar9 = local_d8;\n  while (puVar9 != (undefined8 *)0x0) {\n    puVar9 = (undefined8 *)*puVar9;\n    FUN_00276d20();\n  }\n  memset(local_e8,0,local_e0 * 8);\n  auVar11._8_8_ = 0;\n  auVar11._0_8_ = local_d0._8_8_;\n  local_d0 = auVar11 << 0x40;\n  local_d8 = (undefined8 *)0x0;\n  if (local_e8 != local_c0 + 8) {\n    FUN_00276d20();\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "undefined ***pppuVar3;" type_identifier (pointer_declarator "***pppuVar3" * (pointer_declarator "**pppuVar3" * (pointer_declarator "*pppuVar3" * identifier))) ;) (declaration "undefined ***pppuVar4;" type_identifier (pointer_declarator "***pppuVar4" * (pointer_declarator "**pppuVar4" * (pointer_declarator "*pppuVar4" * identifier))) ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "ulong uVar8;" type_identifier identifier ;) (declaration "undefined8 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "byte bVar10;" type_identifier identifier ;) (declaration "undefined1 auVar11 [16];" type_identifier (array_declarator "auVar11 [16]" identifier [ number_literal ]) ;) (declaration "int local_a20;" primitive_type identifier ;) (declaration "undefined **local_a18 [19];" type_identifier (pointer_declarator "**local_a18 [19]" * (pointer_declarator "*local_a18 [19]" * (array_declarator "local_a18 [19]" identifier [ number_literal ]))) ;) (declaration "char local_980;" primitive_type identifier ;) (declaration "undefined8 local_978;" type_identifier identifier ;) (declaration "undefined8 local_970;" type_identifier identifier ;) (declaration "undefined8 local_968;" type_identifier identifier ;) (declaration "int local_960;" primitive_type identifier ;) (declaration "undefined8 local_95c;" type_identifier identifier ;) (declaration "undefined4 local_954;" type_identifier identifier ;) (declaration "undefined4 local_950;" type_identifier identifier ;) (declaration "undefined8 local_948;" type_identifier identifier ;) (declaration "undefined8 local_940;" type_identifier identifier ;) (declaration "undefined8 local_938;" type_identifier identifier ;) (declaration "undefined8 local_930;" type_identifier identifier ;) (declaration "undefined8 local_928;" type_identifier identifier ;) (declaration "undefined4 local_920;" type_identifier identifier ;) (declaration "undefined4 local_918 [2];" type_identifier (array_declarator "local_918 [2]" identifier [ number_literal ]) ;) (declaration "undefined8 local_910;" type_identifier identifier ;) (declaration "long local_908;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 local_900;" type_identifier identifier ;) (declaration "char local_8f8;" primitive_type identifier ;) (declaration "undefined8 local_8f0;" type_identifier identifier ;) (declaration "undefined8 local_8e8 [256];" type_identifier (array_declarator "local_8e8 [256]" identifier [ number_literal ]) ;) (declaration "undefined1 *local_e8;" type_identifier (pointer_declarator "*local_e8" * identifier) ;) (declaration "long local_e0;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *local_d8;" type_identifier (pointer_declarator "*local_d8" * identifier) ;) (declaration "undefined1 local_d0 [16];" type_identifier (array_declarator "local_d0 [16]" identifier [ number_literal ]) ;) (declaration "undefined1 local_c0 [16];" type_identifier (array_declarator "local_c0 [16]" identifier [ number_literal ]) ;) (declaration "undefined ***local_b0;" type_identifier (pointer_declarator "***local_b0" * (pointer_declarator "**local_b0" * (pointer_declarator "*local_b0" * identifier))) ;) (declaration "undefined4 local_a8;" type_identifier identifier ;) (declaration "long local_a0;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 local_98;" type_identifier identifier ;) (declaration "char local_90;" primitive_type identifier ;) (declaration "long *local_88;" (sized_type_specifier "long" long) (pointer_declarator "*local_88" * identifier) ;) (declaration "undefined4 local_80;" type_identifier identifier ;) (declaration "undefined8 local_78;" type_identifier identifier ;) (declaration "long *local_70;" (sized_type_specifier "long" long) (pointer_declarator "*local_70" * identifier) ;) (declaration "long local_68;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 local_60;" type_identifier identifier ;) (declaration "char local_58;" primitive_type identifier ;) (declaration "undefined8 local_50;" type_identifier identifier ;) (declaration "undefined8 local_48;" type_identifier identifier ;) (declaration "undefined ***local_40;" type_identifier (pointer_declarator "***local_40" * (pointer_declarator "**local_40" * (pointer_declarator "*local_40" * identifier))) ;) (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" identifier = number_literal) ;) (if_statement "if (param_4 == '\0') {\n    local_a20 = *(int *)(param_3 + 4);\n  }\n  else {\n    local_a20 = *(int *)(param_3 + 8);\n  }" if (parenthesized_expression "(param_4 == '\0')" ( (binary_expression "param_4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    local_a20 = *(int *)(param_3 + 4);\n  }" { (expression_statement "local_a20 = *(int *)(param_3 + 4);" (assignment_expression "local_a20 = *(int *)(param_3 + 4)" identifier = (pointer_expression "*(int *)(param_3 + 4)" * (cast_expression "(int *)(param_3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    local_a20 = *(int *)(param_3 + 8);\n  }" else (compound_statement "{\n    local_a20 = *(int *)(param_3 + 8);\n  }" { (expression_statement "local_a20 = *(int *)(param_3 + 8);" (assignment_expression "local_a20 = *(int *)(param_3 + 8)" identifier = (pointer_expression "*(int *)(param_3 + 8)" * (cast_expression "(int *)(param_3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 8)" ( (binary_expression "param_3 + 8" identifier + number_literal) ))))) ;) }))) (if_statement "if (local_a20 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/dwp.cc",0x5f1,"add_unit_set");\n  }" if (parenthesized_expression "(local_a20 == 0)" ( (binary_expression "local_a20 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/dwp.cc",0x5f1,"add_unit_set");\n  }" { comment (expression_statement "FUN_0016cdf0("../../gold/dwp.cc",0x5f1,"add_unit_set");" (call_expression "FUN_0016cdf0("../../gold/dwp.cc",0x5f1,"add_unit_set")" identifier (argument_list "("../../gold/dwp.cc",0x5f1,"add_unit_set")" ( (string_literal ""../../gold/dwp.cc"" " string_content ") , number_literal , (string_literal ""add_unit_set"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_3 + 0xc) == 0) {\n    uVar2 = *param_1;\n    uVar5 = gettext("%s: no .debug_abbrev.dwo section found");\n                    /* WARNING: Subroutine does not return */\n    FUN_00168f60(uVar5,uVar2);\n  }" if (parenthesized_expression "(*(int *)(param_3 + 0xc) == 0)" ( (binary_expression "*(int *)(param_3 + 0xc) == 0" (pointer_expression "*(int *)(param_3 + 0xc)" * (cast_expression "(int *)(param_3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xc)" ( (binary_expression "param_3 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    uVar2 = *param_1;\n    uVar5 = gettext("%s: no .debug_abbrev.dwo section found");\n                    /* WARNING: Subroutine does not return */\n    FUN_00168f60(uVar5,uVar2);\n  }" { (expression_statement "uVar2 = *param_1;" (assignment_expression "uVar2 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar5 = gettext("%s: no .debug_abbrev.dwo section found");" (assignment_expression "uVar5 = gettext("%s: no .debug_abbrev.dwo section found")" identifier = (call_expression "gettext("%s: no .debug_abbrev.dwo section found")" identifier (argument_list "("%s: no .debug_abbrev.dwo section found")" ( (string_literal ""%s: no .debug_abbrev.dwo section found"" " string_content ") )))) ;) comment (expression_statement "FUN_00168f60(uVar5,uVar2);" (call_expression "FUN_00168f60(uVar5,uVar2)" identifier (argument_list "(uVar5,uVar2)" ( identifier , identifier ))) ;) })) (expression_statement "pppuVar3 = local_a18;" (assignment_expression "pppuVar3 = local_a18" identifier = identifier) ;) (do_statement "do {\n    *pppuVar3 = (undefined **)0x0;\n    pppuVar4 = pppuVar3 + 2;\n    pppuVar3[1] = (undefined **)0x0;\n    pppuVar3 = pppuVar4;\n  } while (local_a18 + 0x12 != pppuVar4);" do (compound_statement "{\n    *pppuVar3 = (undefined **)0x0;\n    pppuVar4 = pppuVar3 + 2;\n    pppuVar3[1] = (undefined **)0x0;\n    pppuVar3 = pppuVar4;\n  }" { (expression_statement "*pppuVar3 = (undefined **)0x0;" (assignment_expression "*pppuVar3 = (undefined **)0x0" (pointer_expression "*pppuVar3" * identifier) = (cast_expression "(undefined **)0x0" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pppuVar4 = pppuVar3 + 2;" (assignment_expression "pppuVar4 = pppuVar3 + 2" identifier = (binary_expression "pppuVar3 + 2" identifier + number_literal)) ;) (expression_statement "pppuVar3[1] = (undefined **)0x0;" (assignment_expression "pppuVar3[1] = (undefined **)0x0" (subscript_expression "pppuVar3[1]" identifier [ number_literal ]) = (cast_expression "(undefined **)0x0" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pppuVar3 = pppuVar4;" (assignment_expression "pppuVar3 = pppuVar4" identifier = identifier) ;) }) while (parenthesized_expression "(local_a18 + 0x12 != pppuVar4)" ( (binary_expression "local_a18 + 0x12 != pppuVar4" (binary_expression "local_a18 + 0x12" identifier + number_literal) != identifier) )) ;) (expression_statement "uVar8 = 3;" (assignment_expression "uVar8 = 3" identifier = number_literal) ;) (do_statement "do {\n    while (iVar1 = *(int *)(param_3 + uVar8 * 4), iVar1 != 0) {\n      iVar7 = (int)uVar8;\n      auVar11 = FUN_00149990(param_1,param_2,iVar1,uVar8 & 0xffffffff);\n      uVar8 = uVar8 + 1;\n      local_a18[(long)iVar7 * 2] = auVar11._0_8_;\n      local_a18[(long)iVar7 * 2 + 1] = auVar11._8_8_;\n      if (uVar8 == 9) goto LAB_00149b6a;\n    }\n    uVar8 = uVar8 + 1;\n  } while (uVar8 != 9);" do (compound_statement "{\n    while (iVar1 = *(int *)(param_3 + uVar8 * 4), iVar1 != 0) {\n      iVar7 = (int)uVar8;\n      auVar11 = FUN_00149990(param_1,param_2,iVar1,uVar8 & 0xffffffff);\n      uVar8 = uVar8 + 1;\n      local_a18[(long)iVar7 * 2] = auVar11._0_8_;\n      local_a18[(long)iVar7 * 2 + 1] = auVar11._8_8_;\n      if (uVar8 == 9) goto LAB_00149b6a;\n    }\n    uVar8 = uVar8 + 1;\n  }" { (while_statement "while (iVar1 = *(int *)(param_3 + uVar8 * 4), iVar1 != 0) {\n      iVar7 = (int)uVar8;\n      auVar11 = FUN_00149990(param_1,param_2,iVar1,uVar8 & 0xffffffff);\n      uVar8 = uVar8 + 1;\n      local_a18[(long)iVar7 * 2] = auVar11._0_8_;\n      local_a18[(long)iVar7 * 2 + 1] = auVar11._8_8_;\n      if (uVar8 == 9) goto LAB_00149b6a;\n    }" while (parenthesized_expression "(iVar1 = *(int *)(param_3 + uVar8 * 4), iVar1 != 0)" ( (comma_expression "iVar1 = *(int *)(param_3 + uVar8 * 4), iVar1 != 0" (assignment_expression "iVar1 = *(int *)(param_3 + uVar8 * 4)" identifier = (pointer_expression "*(int *)(param_3 + uVar8 * 4)" * (cast_expression "(int *)(param_3 + uVar8 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + uVar8 * 4)" ( (binary_expression "param_3 + uVar8 * 4" identifier + (binary_expression "uVar8 * 4" identifier * number_literal)) ))))) , (binary_expression "iVar1 != 0" identifier != number_literal)) )) (compound_statement "{\n      iVar7 = (int)uVar8;\n      auVar11 = FUN_00149990(param_1,param_2,iVar1,uVar8 & 0xffffffff);\n      uVar8 = uVar8 + 1;\n      local_a18[(long)iVar7 * 2] = auVar11._0_8_;\n      local_a18[(long)iVar7 * 2 + 1] = auVar11._8_8_;\n      if (uVar8 == 9) goto LAB_00149b6a;\n    }" { (expression_statement "iVar7 = (int)uVar8;" (assignment_expression "iVar7 = (int)uVar8" identifier = (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "auVar11 = FUN_00149990(param_1,param_2,iVar1,uVar8 & 0xffffffff);" (assignment_expression "auVar11 = FUN_00149990(param_1,param_2,iVar1,uVar8 & 0xffffffff)" identifier = (call_expression "FUN_00149990(param_1,param_2,iVar1,uVar8 & 0xffffffff)" identifier (argument_list "(param_1,param_2,iVar1,uVar8 & 0xffffffff)" ( identifier , identifier , identifier , (binary_expression "uVar8 & 0xffffffff" identifier & number_literal) )))) ;) (expression_statement "uVar8 = uVar8 + 1;" (assignment_expression "uVar8 = uVar8 + 1" identifier = (binary_expression "uVar8 + 1" identifier + number_literal)) ;) (expression_statement "local_a18[(long)iVar7 * 2] = auVar11._0_8_;" (assignment_expression "local_a18[(long)iVar7 * 2] = auVar11._0_8_" (subscript_expression "local_a18[(long)iVar7 * 2]" identifier [ (binary_expression "(long)iVar7 * 2" (cast_expression "(long)iVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal) ]) = (field_expression "auVar11._0_8_" identifier . field_identifier)) ;) (expression_statement "local_a18[(long)iVar7 * 2 + 1] = auVar11._8_8_;" (assignment_expression "local_a18[(long)iVar7 * 2 + 1] = auVar11._8_8_" (subscript_expression "local_a18[(long)iVar7 * 2 + 1]" identifier [ (binary_expression "(long)iVar7 * 2 + 1" (binary_expression "(long)iVar7 * 2" (cast_expression "(long)iVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal) + number_literal) ]) = (field_expression "auVar11._8_8_" identifier . field_identifier)) ;) (if_statement "if (uVar8 == 9) goto LAB_00149b6a;" if (parenthesized_expression "(uVar8 == 9)" ( (binary_expression "uVar8 == 9" identifier == number_literal) )) (goto_statement "goto LAB_00149b6a;" goto statement_identifier ;)) })) (expression_statement "uVar8 = uVar8 + 1;" (assignment_expression "uVar8 = uVar8 + 1" identifier = (binary_expression "uVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar8 != 9)" ( (binary_expression "uVar8 != 9" identifier != number_literal) )) ;) (labeled_statement "LAB_00149b6a:\n  local_978 = param_1[1];" statement_identifier : (expression_statement "local_978 = param_1[1];" (assignment_expression "local_978 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;)) (expression_statement "local_d0 = (undefined1  [16])0x0;" (assignment_expression "local_d0 = (undefined1  [16])0x0" identifier = (cast_expression "(undefined1  [16])0x0" ( (type_descriptor "undefined1  [16]" type_identifier (abstract_array_declarator "[16]" [ number_literal ])) ) number_literal)) ;) (expression_statement "local_960 = local_a20;" (assignment_expression "local_960 = local_a20" identifier = identifier) ;) (expression_statement "local_e8 = local_c0 + 8;" (assignment_expression "local_e8 = local_c0 + 8" identifier = (binary_expression "local_c0 + 8" identifier + number_literal)) ;) (expression_statement "puVar9 = local_8e8;" (assignment_expression "puVar9 = local_8e8" identifier = identifier) ;) (for_statement "for (lVar6 = 0x100; lVar6 != 0; lVar6 = lVar6 + -1) {\n    *puVar9 = 0;\n    puVar9 = puVar9 + (ulong)bVar10 * -2 + 1;\n  }" for ( (assignment_expression "lVar6 = 0x100" identifier = number_literal) ; (binary_expression "lVar6 != 0" identifier != number_literal) ; (assignment_expression "lVar6 = lVar6 + -1" identifier = (binary_expression "lVar6 + -1" identifier + number_literal)) ) (compound_statement "{\n    *puVar9 = 0;\n    puVar9 = puVar9 + (ulong)bVar10 * -2 + 1;\n  }" { (expression_statement "*puVar9 = 0;" (assignment_expression "*puVar9 = 0" (pointer_expression "*puVar9" * identifier) = number_literal) ;) (expression_statement "puVar9 = puVar9 + (ulong)bVar10 * -2 + 1;" (assignment_expression "puVar9 = puVar9 + (ulong)bVar10 * -2 + 1" identifier = (binary_expression "puVar9 + (ulong)bVar10 * -2 + 1" (binary_expression "puVar9 + (ulong)bVar10 * -2" identifier + (binary_expression "(ulong)bVar10 * -2" (cast_expression "(ulong)bVar10" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "local_970 = 0;" (assignment_expression "local_970 = 0" identifier = number_literal) ;) (expression_statement "local_968 = 0;" (assignment_expression "local_968 = 0" identifier = number_literal) ;) (expression_statement "local_95c = 0;" (assignment_expression "local_95c = 0" identifier = number_literal) ;) (expression_statement "local_950 = 0;" (assignment_expression "local_950 = 0" identifier = number_literal) ;) (expression_statement "local_948 = 0;" (assignment_expression "local_948 = 0" identifier = number_literal) ;) (expression_statement "local_940 = 0;" (assignment_expression "local_940 = 0" identifier = number_literal) ;) (expression_statement "local_938 = 0;" (assignment_expression "local_938 = 0" identifier = number_literal) ;) (expression_statement "local_930 = 0;" (assignment_expression "local_930 = 0" identifier = number_literal) ;) (expression_statement "local_928 = 0;" (assignment_expression "local_928 = 0" identifier = number_literal) ;) (expression_statement "local_920 = 0;" (assignment_expression "local_920 = 0" identifier = number_literal) ;) (expression_statement "local_918[0] = 0;" (assignment_expression "local_918[0] = 0" (subscript_expression "local_918[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_910 = 0;" (assignment_expression "local_910 = 0" identifier = number_literal) ;) (expression_statement "local_908 = 0;" (assignment_expression "local_908 = 0" identifier = number_literal) ;) (expression_statement "local_900 = 0;" (assignment_expression "local_900 = 0" identifier = number_literal) ;) (expression_statement "local_8f8 = '\0';" (assignment_expression "local_8f8 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_8f0 = 0;" (assignment_expression "local_8f0 = 0" identifier = number_literal) ;) (expression_statement "local_c0 = (undefined1  [16])0x0;" (assignment_expression "local_c0 = (undefined1  [16])0x0" identifier = (cast_expression "(undefined1  [16])0x0" ( (type_descriptor "undefined1  [16]" type_identifier (abstract_array_declarator "[16]" [ number_literal ])) ) number_literal)) ;) (expression_statement "local_e0 = 1;" (assignment_expression "local_e0 = 1" identifier = number_literal) ;) (expression_statement "local_d8 = (undefined8 *)0x0;" (assignment_expression "local_d8 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_d0._8_4_ = 0x3f800000;" (assignment_expression "local_d0._8_4_ = 0x3f800000" (field_expression "local_d0._8_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "local_a8 = 0;" (assignment_expression "local_a8 = 0" identifier = number_literal) ;) (expression_statement "local_a0 = 0;" (assignment_expression "local_a0 = 0" identifier = number_literal) ;) (expression_statement "local_98 = 0;" (assignment_expression "local_98 = 0" identifier = number_literal) ;) (expression_statement "local_954 = *(undefined4 *)(param_3 + 0xc);" (assignment_expression "local_954 = *(undefined4 *)(param_3 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(param_3 + 0xc)" * (cast_expression "(undefined4 *)(param_3 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xc)" ( (binary_expression "param_3 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "local_90 = '\0';" (assignment_expression "local_90 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_88 = (long *)0x0;" (assignment_expression "local_88 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_80 = 0;" (assignment_expression "local_80 = 0" identifier = number_literal) ;) (expression_statement "local_78 = 0;" (assignment_expression "local_78 = 0" identifier = number_literal) ;) (expression_statement "local_70 = (long *)0x0;" (assignment_expression "local_70 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" identifier = number_literal) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "local_58 = '\0';" (assignment_expression "local_58 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "local_a18[0x12] = &PTR_FUN_003a9e98;" (assignment_expression "local_a18[0x12] = &PTR_FUN_003a9e98" (subscript_expression "local_a18[0x12]" identifier [ number_literal ]) = (pointer_expression "&PTR_FUN_003a9e98" & identifier)) ;) (expression_statement "local_980 = param_4;" (assignment_expression "local_980 = param_4" identifier = identifier) ;) (expression_statement "local_b0 = local_a18 + 0x12;" (assignment_expression "local_b0 = local_a18 + 0x12" identifier = (binary_expression "local_a18 + 0x12" identifier + number_literal)) ;) (expression_statement "local_48 = param_2;" (assignment_expression "local_48 = param_2" identifier = identifier) ;) (expression_statement "local_40 = local_a18;" (assignment_expression "local_40 = local_a18" identifier = identifier) ;) comment (expression_statement "FUN_00162200(local_a18 + 0x12);" (call_expression "FUN_00162200(local_a18 + 0x12)" identifier (argument_list "(local_a18 + 0x12)" ( (binary_expression "local_a18 + 0x12" identifier + number_literal) ))) ;) (expression_statement "local_a18[0x12] = &PTR_FUN_003a9fb8;" (assignment_expression "local_a18[0x12] = &PTR_FUN_003a9fb8" (subscript_expression "local_a18[0x12]" identifier [ number_literal ]) = (pointer_expression "&PTR_FUN_003a9fb8" & identifier)) ;) (if_statement "if (local_70 != (long *)0x0) {\n    (**(code **)(*local_70 + 8))();\n  }" if (parenthesized_expression "(local_70 != (long *)0x0)" ( (binary_expression "local_70 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(*local_70 + 8))();\n  }" { (expression_statement "(**(code **)(*local_70 + 8))();" (call_expression "(**(code **)(*local_70 + 8))()" (parenthesized_expression "(**(code **)(*local_70 + 8))" ( (pointer_expression "**(code **)(*local_70 + 8)" * (pointer_expression "*(code **)(*local_70 + 8)" * (cast_expression "(code **)(*local_70 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_70 + 8)" ( (binary_expression "*local_70 + 8" (pointer_expression "*local_70" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (if_statement "if ((local_58 != '\0') && (local_68 != 0)) {\n    thunk_FUN_00276d20();\n  }" if (parenthesized_expression "((local_58 != '\0') && (local_68 != 0))" ( (binary_expression "(local_58 != '\0') && (local_68 != 0)" (parenthesized_expression "(local_58 != '\0')" ( (binary_expression "local_58 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(local_68 != 0)" ( (binary_expression "local_68 != 0" identifier != number_literal) ))) )) (compound_statement "{\n    thunk_FUN_00276d20();\n  }" { (expression_statement "thunk_FUN_00276d20();" (call_expression "thunk_FUN_00276d20()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if ((local_90 != '\0') && (local_a0 != 0)) {\n    thunk_FUN_00276d20();\n  }" if (parenthesized_expression "((local_90 != '\0') && (local_a0 != 0))" ( (binary_expression "(local_90 != '\0') && (local_a0 != 0)" (parenthesized_expression "(local_90 != '\0')" ( (binary_expression "local_90 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(local_a0 != 0)" ( (binary_expression "local_a0 != 0" identifier != number_literal) ))) )) (compound_statement "{\n    thunk_FUN_00276d20();\n  }" { (expression_statement "thunk_FUN_00276d20();" (call_expression "thunk_FUN_00276d20()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (local_88 != (long *)0x0) {\n    (**(code **)(*local_88 + 8))();\n  }" if (parenthesized_expression "(local_88 != (long *)0x0)" ( (binary_expression "local_88 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(*local_88 + 8))();\n  }" { (expression_statement "(**(code **)(*local_88 + 8))();" (call_expression "(**(code **)(*local_88 + 8))()" (parenthesized_expression "(**(code **)(*local_88 + 8))" ( (pointer_expression "**(code **)(*local_88 + 8)" * (pointer_expression "*(code **)(*local_88 + 8)" * (cast_expression "(code **)(*local_88 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_88 + 8)" ( (binary_expression "*local_88 + 8" (pointer_expression "*local_88" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (if_statement "if ((local_8f8 != '\0') && (local_908 != 0)) {\n    thunk_FUN_00276d20();\n  }" if (parenthesized_expression "((local_8f8 != '\0') && (local_908 != 0))" ( (binary_expression "(local_8f8 != '\0') && (local_908 != 0)" (parenthesized_expression "(local_8f8 != '\0')" ( (binary_expression "local_8f8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(local_908 != 0)" ( (binary_expression "local_908 != 0" identifier != number_literal) ))) )) (compound_statement "{\n    thunk_FUN_00276d20();\n  }" { (expression_statement "thunk_FUN_00276d20();" (call_expression "thunk_FUN_00276d20()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_00160530(local_918);" (call_expression "FUN_00160530(local_918)" identifier (argument_list "(local_918)" ( identifier ))) ;) (expression_statement "puVar9 = local_d8;" (assignment_expression "puVar9 = local_d8" identifier = identifier) ;) (while_statement "while (puVar9 != (undefined8 *)0x0) {\n    puVar9 = (undefined8 *)*puVar9;\n    FUN_00276d20();\n  }" while (parenthesized_expression "(puVar9 != (undefined8 *)0x0)" ( (binary_expression "puVar9 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar9 = (undefined8 *)*puVar9;\n    FUN_00276d20();\n  }" { (expression_statement "puVar9 = (undefined8 *)*puVar9;" (assignment_expression "puVar9 = (undefined8 *)*puVar9" identifier = (cast_expression "(undefined8 *)*puVar9" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar9" * identifier))) ;) (expression_statement "FUN_00276d20();" (call_expression "FUN_00276d20()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "memset(local_e8,0,local_e0 * 8);" (call_expression "memset(local_e8,0,local_e0 * 8)" identifier (argument_list "(local_e8,0,local_e0 * 8)" ( identifier , number_literal , (binary_expression "local_e0 * 8" identifier * number_literal) ))) ;) (expression_statement "auVar11._8_8_ = 0;" (assignment_expression "auVar11._8_8_ = 0" (field_expression "auVar11._8_8_" identifier . field_identifier) = number_literal) ;) (expression_statement "auVar11._0_8_ = local_d0._8_8_;" (assignment_expression "auVar11._0_8_ = local_d0._8_8_" (field_expression "auVar11._0_8_" identifier . field_identifier) = (field_expression "local_d0._8_8_" identifier . field_identifier)) ;) (expression_statement "local_d0 = auVar11 << 0x40;" (assignment_expression "local_d0 = auVar11 << 0x40" identifier = (binary_expression "auVar11 << 0x40" identifier << number_literal)) ;) (expression_statement "local_d8 = (undefined8 *)0x0;" (assignment_expression "local_d8 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (local_e8 != local_c0 + 8) {\n    FUN_00276d20();\n  }" if (parenthesized_expression "(local_e8 != local_c0 + 8)" ( (binary_expression "local_e8 != local_c0 + 8" identifier != (binary_expression "local_c0 + 8" identifier + number_literal)) )) (compound_statement "{\n    FUN_00276d20();\n  }" { (expression_statement "FUN_00276d20();" (call_expression "FUN_00276d20()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Enum "DW_SECT": Some values do not have unique names */\n/* DWARF original prototype: void add_unit_set(Dwo_file * this, Dwp_output_file * output_file, uint\n   * debug_shndx, bool is_debug_types) */\n\nvoid __thiscall\ngold::Dwo_file::add_unit_set\n          (Dwo_file *this,Dwp_output_file *output_file,uint *debug_shndx,bool is_debug_types)\n\n{\n  _Hash_node_base *p_Var1;\n  char *pcVar2;\n  undefined1 auVar3 [16];\n  Section_bounds *pSVar4;\n  __node_base _Var5;\n  Section_bounds *pSVar6;\n  char *format;\n  DW_SECT section_id;\n  long lVar7;\n  Abbrev_code **ppAVar8;\n  byte bVar9;\n  Section_bounds SVar10;\n  uint local_a20;\n  Section_bounds sections [9];\n  Unit_reader reader;\n  \n  bVar9 = 0;\n  if (is_debug_types) {\n    local_a20 = debug_shndx[2];\n  }\n  else {\n    local_a20 = debug_shndx[1];\n  }\n  if (local_a20 == 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dwp.cc",0x5f1,"add_unit_set");\n  }\n  if (debug_shndx[3] == 0) {\n    pcVar2 = this->name_;\n    format = (char *)gettext("%s: no .debug_abbrev.dwo section found");\n                    /* WARNING: Subroutine does not return */\n    gold_fatal(format,pcVar2);\n  }\n  pSVar6 = sections;\n  do {\n    pSVar6->offset = 0;\n    pSVar4 = pSVar6 + 1;\n    pSVar6->size = 0;\n    pSVar6 = pSVar4;\n  } while (&reader != (Unit_reader *)pSVar4);\n  lVar7 = 3;\n  do {\n    while (debug_shndx[lVar7] != 0) {\n      section_id = (DW_SECT)lVar7;\n      SVar10 = copy_section(this,output_file,debug_shndx[lVar7],section_id);\n      lVar7 = lVar7 + 1;\n      sections[(int)section_id].offset = SVar10.offset;\n      sections[(int)section_id].size = SVar10.size;\n      if (lVar7 == 9) goto LAB_00149b6a;\n    }\n    lVar7 = lVar7 + 1;\n  } while (lVar7 != 9);\nLAB_00149b6a:\n  reader.super_Dwarf_info_reader.object_ = this->obj_;\n  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_element_count = 0;\n  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_rehash_policy.\n  _M_max_load_factor = 0.0;\n  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_rehash_policy._4_4_ = 0;\n  reader.super_Dwarf_info_reader.shndx_ = local_a20;\n  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_buckets =\n       &reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_single_bucket;\n  ppAVar8 = reader.super_Dwarf_info_reader.abbrev_table_.low_abbrev_codes_;\n  for (lVar7 = 0x100; lVar7 != 0; lVar7 = lVar7 + -1) {\n    *ppAVar8 = (Abbrev_code *)0x0;\n    ppAVar8 = ppAVar8 + (ulong)bVar9 * -2 + 1;\n  }\n  reader.super_Dwarf_info_reader.symtab_ = (uchar *)0x0;\n  reader.super_Dwarf_info_reader.symtab_size_ = 0;\n  reader.super_Dwarf_info_reader.reloc_shndx_ = 0;\n  reader.super_Dwarf_info_reader.reloc_type_ = 0;\n  reader.super_Dwarf_info_reader.string_shndx_ = 0;\n  reader.super_Dwarf_info_reader.buffer_ = (uchar *)0x0;\n  reader.super_Dwarf_info_reader.buffer_end_ = (uchar *)0x0;\n  reader.super_Dwarf_info_reader.cu_offset_ = 0;\n  reader.super_Dwarf_info_reader.cu_length_ = 0;\n  reader.super_Dwarf_info_reader.offset_size_ = 0;\n  reader.super_Dwarf_info_reader.address_size_ = 0;\n  reader.super_Dwarf_info_reader.cu_version_ = 0;\n  reader.super_Dwarf_info_reader.abbrev_table_.abbrev_shndx_ = 0;\n  reader.super_Dwarf_info_reader.abbrev_table_.abbrev_offset_ = 0;\n  reader.super_Dwarf_info_reader.abbrev_table_.buffer_ = (uchar *)0x0;\n  reader.super_Dwarf_info_reader.abbrev_table_.buffer_end_ = (uchar *)0x0;\n  reader.super_Dwarf_info_reader.abbrev_table_.owns_buffer_ = false;\n  reader.super_Dwarf_info_reader.abbrev_table_.buffer_pos_ = (uchar *)0x0;\n  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_rehash_policy.\n  _M_next_resize = 0;\n  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_single_bucket =\n       (__bucket_type)0x0;\n  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_bucket_count = 1;\n  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_before_begin._M_nxt =\n       (_Hash_node_base *)0x0;\n  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_rehash_policy.\n  _M_max_load_factor = 1.0;\n  reader.super_Dwarf_info_reader.ranges_table_.ranges_shndx_ = 0;\n  reader.super_Dwarf_info_reader.ranges_table_.ranges_buffer_ = (uchar *)0x0;\n  reader.super_Dwarf_info_reader.ranges_table_.ranges_buffer_end_ = (uchar *)0x0;\n  reader.super_Dwarf_info_reader.abbrev_shndx_ = debug_shndx[3];\n  reader.super_Dwarf_info_reader.ranges_table_.owns_ranges_buffer_ = false;\n  reader.super_Dwarf_info_reader.ranges_table_.ranges_reloc_mapper_ = (Elf_reloc_mapper *)0x0;\n  reader.super_Dwarf_info_reader.ranges_table_.reloc_type_ = 0;\n  reader.super_Dwarf_info_reader.ranges_table_.output_section_offset_ = 0;\n  reader.super_Dwarf_info_reader.reloc_mapper_ = (Elf_reloc_mapper *)0x0;\n  reader.super_Dwarf_info_reader.string_buffer_ = (char *)0x0;\n  reader.super_Dwarf_info_reader.string_buffer_end_ = (char *)0x0;\n  reader.super_Dwarf_info_reader.owns_string_buffer_ = false;\n  reader.super_Dwarf_info_reader.string_output_section_offset_ = 0;\n  reader.super_Dwarf_info_reader._vptr_Dwarf_info_reader =\n       (_func_int_varargs **)&PTR__Unit_reader_003a9e98;\n  reader.super_Dwarf_info_reader.is_type_unit_ = is_debug_types;\n  reader.super_Dwarf_info_reader.ranges_table_.dwinfo_ = &reader.super_Dwarf_info_reader;\n  reader.output_file_ = output_file;\n  reader.sections_ = sections;\n                    /* try { // try from 00149d64 to 00149d68 has its CatchHandler @ 00149ed9 */\n  Dwarf_info_reader::parse(&reader.super_Dwarf_info_reader);\n  reader.super_Dwarf_info_reader._vptr_Dwarf_info_reader =\n       (_func_int_varargs **)&PTR__Dwarf_info_reader_003a9fb8;\n  if (reader.super_Dwarf_info_reader.reloc_mapper_ != (Elf_reloc_mapper *)0x0) {\n    (*(reader.super_Dwarf_info_reader.reloc_mapper_)->_vptr_Elf_reloc_mapper[1])();\n  }\n  if ((reader.super_Dwarf_info_reader.owns_string_buffer_ != false) &&\n     (reader.super_Dwarf_info_reader.string_buffer_ != (char *)0x0)) {\n    operator_delete__(reader.super_Dwarf_info_reader.string_buffer_);\n  }\n  if ((reader.super_Dwarf_info_reader.ranges_table_.owns_ranges_buffer_ != false) &&\n     (reader.super_Dwarf_info_reader.ranges_table_.ranges_buffer_ != (uchar *)0x0)) {\n    operator_delete__(reader.super_Dwarf_info_reader.ranges_table_.ranges_buffer_);\n  }\n  if (reader.super_Dwarf_info_reader.ranges_table_.ranges_reloc_mapper_ != (Elf_reloc_mapper *)0x0)\n  {\n    (*(reader.super_Dwarf_info_reader.ranges_table_.ranges_reloc_mapper_)->_vptr_Elf_reloc_mapper[1]\n    )();\n  }\n  if ((reader.super_Dwarf_info_reader.abbrev_table_.owns_buffer_ != false) &&\n     (reader.super_Dwarf_info_reader.abbrev_table_.buffer_ != (uchar *)0x0)) {\n    operator_delete__(reader.super_Dwarf_info_reader.abbrev_table_.buffer_);\n  }\n  Dwarf_abbrev_table::clear_abbrev_codes(&reader.super_Dwarf_info_reader.abbrev_table_);\n  _Var5 = reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_before_begin;\n  while (_Var5._M_nxt != (_Hash_node_base *)0x0) {\n    p_Var1 = (_Var5._M_nxt)->_M_nxt;\n    operator_delete(_Var5._M_nxt);\n    _Var5._M_nxt = p_Var1;\n  }\n  memset(reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_buckets,0,\n         reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_bucket_count * 8);\n  auVar3._8_8_ = 0;\n  auVar3._0_8_ = reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h.\n                 _M_rehash_policy._0_8_;\n  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._24_16_ = auVar3 << 0x40;\n  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_before_begin._M_nxt =\n       (_Hash_node_base *)0x0;\n  if (reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_buckets !=\n      &reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_single_bucket) {\n    operator_delete(reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_buckets)\n    ;\n  }\n  return;\n}\n\n" comment comment (function_definition "void __thiscall\ngold::Dwo_file::add_unit_set\n          (Dwo_file *this,Dwp_output_file *output_file,uint *debug_shndx,bool is_debug_types)\n\n{\n  _Hash_node_base *p_Var1;\n  char *pcVar2;\n  undefined1 auVar3 [16];\n  Section_bounds *pSVar4;\n  __node_base _Var5;\n  Section_bounds *pSVar6;\n  char *format;\n  DW_SECT section_id;\n  long lVar7;\n  Abbrev_code **ppAVar8;\n  byte bVar9;\n  Section_bounds SVar10;\n  uint local_a20;\n  Section_bounds sections [9];\n  Unit_reader reader;\n  \n  bVar9 = 0;\n  if (is_debug_types) {\n    local_a20 = debug_shndx[2];\n  }\n  else {\n    local_a20 = debug_shndx[1];\n  }\n  if (local_a20 == 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dwp.cc",0x5f1,"add_unit_set");\n  }\n  if (debug_shndx[3] == 0) {\n    pcVar2 = this->name_;\n    format = (char *)gettext("%s: no .debug_abbrev.dwo section found");\n                    /* WARNING: Subroutine does not return */\n    gold_fatal(format,pcVar2);\n  }\n  pSVar6 = sections;\n  do {\n    pSVar6->offset = 0;\n    pSVar4 = pSVar6 + 1;\n    pSVar6->size = 0;\n    pSVar6 = pSVar4;\n  } while (&reader != (Unit_reader *)pSVar4);\n  lVar7 = 3;\n  do {\n    while (debug_shndx[lVar7] != 0) {\n      section_id = (DW_SECT)lVar7;\n      SVar10 = copy_section(this,output_file,debug_shndx[lVar7],section_id);\n      lVar7 = lVar7 + 1;\n      sections[(int)section_id].offset = SVar10.offset;\n      sections[(int)section_id].size = SVar10.size;\n      if (lVar7 == 9) goto LAB_00149b6a;\n    }\n    lVar7 = lVar7 + 1;\n  } while (lVar7 != 9);\nLAB_00149b6a:\n  reader.super_Dwarf_info_reader.object_ = this->obj_;\n  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_element_count = 0;\n  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_rehash_policy.\n  _M_max_load_factor = 0.0;\n  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_rehash_policy._4_4_ = 0;\n  reader.super_Dwarf_info_reader.shndx_ = local_a20;\n  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_buckets =\n       &reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_single_bucket;\n  ppAVar8 = reader.super_Dwarf_info_reader.abbrev_table_.low_abbrev_codes_;\n  for (lVar7 = 0x100; lVar7 != 0; lVar7 = lVar7 + -1) {\n    *ppAVar8 = (Abbrev_code *)0x0;\n    ppAVar8 = ppAVar8 + (ulong)bVar9 * -2 + 1;\n  }\n  reader.super_Dwarf_info_reader.symtab_ = (uchar *)0x0;\n  reader.super_Dwarf_info_reader.symtab_size_ = 0;\n  reader.super_Dwarf_info_reader.reloc_shndx_ = 0;\n  reader.super_Dwarf_info_reader.reloc_type_ = 0;\n  reader.super_Dwarf_info_reader.string_shndx_ = 0;\n  reader.super_Dwarf_info_reader.buffer_ = (uchar *)0x0;\n  reader.super_Dwarf_info_reader.buffer_end_ = (uchar *)0x0;\n  reader.super_Dwarf_info_reader.cu_offset_ = 0;\n  reader.super_Dwarf_info_reader.cu_length_ = 0;\n  reader.super_Dwarf_info_reader.offset_size_ = 0;\n  reader.super_Dwarf_info_reader.address_size_ = 0;\n  reader.super_Dwarf_info_reader.cu_version_ = 0;\n  reader.super_Dwarf_info_reader.abbrev_table_.abbrev_shndx_ = 0;\n  reader.super_Dwarf_info_reader.abbrev_table_.abbrev_offset_ = 0;\n  reader.super_Dwarf_info_reader.abbrev_table_.buffer_ = (uchar *)0x0;\n  reader.super_Dwarf_info_reader.abbrev_table_.buffer_end_ = (uchar *)0x0;\n  reader.super_Dwarf_info_reader.abbrev_table_.owns_buffer_ = false;\n  reader.super_Dwarf_info_reader.abbrev_table_.buffer_pos_ = (uchar *)0x0;\n  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_rehash_policy.\n  _M_next_resize = 0;\n  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_single_bucket =\n       (__bucket_type)0x0;\n  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_bucket_count = 1;\n  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_before_begin._M_nxt =\n       (_Hash_node_base *)0x0;\n  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_rehash_policy.\n  _M_max_load_factor = 1.0;\n  reader.super_Dwarf_info_reader.ranges_table_.ranges_shndx_ = 0;\n  reader.super_Dwarf_info_reader.ranges_table_.ranges_buffer_ = (uchar *)0x0;\n  reader.super_Dwarf_info_reader.ranges_table_.ranges_buffer_end_ = (uchar *)0x0;\n  reader.super_Dwarf_info_reader.abbrev_shndx_ = debug_shndx[3];\n  reader.super_Dwarf_info_reader.ranges_table_.owns_ranges_buffer_ = false;\n  reader.super_Dwarf_info_reader.ranges_table_.ranges_reloc_mapper_ = (Elf_reloc_mapper *)0x0;\n  reader.super_Dwarf_info_reader.ranges_table_.reloc_type_ = 0;\n  reader.super_Dwarf_info_reader.ranges_table_.output_section_offset_ = 0;\n  reader.super_Dwarf_info_reader.reloc_mapper_ = (Elf_reloc_mapper *)0x0;\n  reader.super_Dwarf_info_reader.string_buffer_ = (char *)0x0;\n  reader.super_Dwarf_info_reader.string_buffer_end_ = (char *)0x0;\n  reader.super_Dwarf_info_reader.owns_string_buffer_ = false;\n  reader.super_Dwarf_info_reader.string_output_section_offset_ = 0;\n  reader.super_Dwarf_info_reader._vptr_Dwarf_info_reader =\n       (_func_int_varargs **)&PTR__Unit_reader_003a9e98;\n  reader.super_Dwarf_info_reader.is_type_unit_ = is_debug_types;\n  reader.super_Dwarf_info_reader.ranges_table_.dwinfo_ = &reader.super_Dwarf_info_reader;\n  reader.output_file_ = output_file;\n  reader.sections_ = sections;\n                    /* try { // try from 00149d64 to 00149d68 has its CatchHandler @ 00149ed9 */\n  Dwarf_info_reader::parse(&reader.super_Dwarf_info_reader);\n  reader.super_Dwarf_info_reader._vptr_Dwarf_info_reader =\n       (_func_int_varargs **)&PTR__Dwarf_info_reader_003a9fb8;\n  if (reader.super_Dwarf_info_reader.reloc_mapper_ != (Elf_reloc_mapper *)0x0) {\n    (*(reader.super_Dwarf_info_reader.reloc_mapper_)->_vptr_Elf_reloc_mapper[1])();\n  }\n  if ((reader.super_Dwarf_info_reader.owns_string_buffer_ != false) &&\n     (reader.super_Dwarf_info_reader.string_buffer_ != (char *)0x0)) {\n    operator_delete__(reader.super_Dwarf_info_reader.string_buffer_);\n  }\n  if ((reader.super_Dwarf_info_reader.ranges_table_.owns_ranges_buffer_ != false) &&\n     (reader.super_Dwarf_info_reader.ranges_table_.ranges_buffer_ != (uchar *)0x0)) {\n    operator_delete__(reader.super_Dwarf_info_reader.ranges_table_.ranges_buffer_);\n  }\n  if (reader.super_Dwarf_info_reader.ranges_table_.ranges_reloc_mapper_ != (Elf_reloc_mapper *)0x0)\n  {\n    (*(reader.super_Dwarf_info_reader.ranges_table_.ranges_reloc_mapper_)->_vptr_Elf_reloc_mapper[1]\n    )();\n  }\n  if ((reader.super_Dwarf_info_reader.abbrev_table_.owns_buffer_ != false) &&\n     (reader.super_Dwarf_info_reader.abbrev_table_.buffer_ != (uchar *)0x0)) {\n    operator_delete__(reader.super_Dwarf_info_reader.abbrev_table_.buffer_);\n  }\n  Dwarf_abbrev_table::clear_abbrev_codes(&reader.super_Dwarf_info_reader.abbrev_table_);\n  _Var5 = reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_before_begin;\n  while (_Var5._M_nxt != (_Hash_node_base *)0x0) {\n    p_Var1 = (_Var5._M_nxt)->_M_nxt;\n    operator_delete(_Var5._M_nxt);\n    _Var5._M_nxt = p_Var1;\n  }\n  memset(reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_buckets,0,\n         reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_bucket_count * 8);\n  auVar3._8_8_ = 0;\n  auVar3._0_8_ = reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h.\n                 _M_rehash_policy._0_8_;\n  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._24_16_ = auVar3 << 0x40;\n  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_before_begin._M_nxt =\n       (_Hash_node_base *)0x0;\n  if (reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_buckets !=\n      &reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_single_bucket) {\n    operator_delete(reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_buckets)\n    ;\n  }\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Dwo_file::" identifier : : identifier : :) (function_declarator "add_unit_set\n          (Dwo_file *this,Dwp_output_file *output_file,uint *debug_shndx,bool is_debug_types)" identifier (parameter_list "(Dwo_file *this,Dwp_output_file *output_file,uint *debug_shndx,bool is_debug_types)" ( (parameter_declaration "Dwo_file *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Dwp_output_file *output_file" type_identifier (pointer_declarator "*output_file" * identifier)) , (parameter_declaration "uint *debug_shndx" type_identifier (pointer_declarator "*debug_shndx" * identifier)) , (parameter_declaration "bool is_debug_types" primitive_type identifier) ))) (compound_statement "{\n  _Hash_node_base *p_Var1;\n  char *pcVar2;\n  undefined1 auVar3 [16];\n  Section_bounds *pSVar4;\n  __node_base _Var5;\n  Section_bounds *pSVar6;\n  char *format;\n  DW_SECT section_id;\n  long lVar7;\n  Abbrev_code **ppAVar8;\n  byte bVar9;\n  Section_bounds SVar10;\n  uint local_a20;\n  Section_bounds sections [9];\n  Unit_reader reader;\n  \n  bVar9 = 0;\n  if (is_debug_types) {\n    local_a20 = debug_shndx[2];\n  }\n  else {\n    local_a20 = debug_shndx[1];\n  }\n  if (local_a20 == 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dwp.cc",0x5f1,"add_unit_set");\n  }\n  if (debug_shndx[3] == 0) {\n    pcVar2 = this->name_;\n    format = (char *)gettext("%s: no .debug_abbrev.dwo section found");\n                    /* WARNING: Subroutine does not return */\n    gold_fatal(format,pcVar2);\n  }\n  pSVar6 = sections;\n  do {\n    pSVar6->offset = 0;\n    pSVar4 = pSVar6 + 1;\n    pSVar6->size = 0;\n    pSVar6 = pSVar4;\n  } while (&reader != (Unit_reader *)pSVar4);\n  lVar7 = 3;\n  do {\n    while (debug_shndx[lVar7] != 0) {\n      section_id = (DW_SECT)lVar7;\n      SVar10 = copy_section(this,output_file,debug_shndx[lVar7],section_id);\n      lVar7 = lVar7 + 1;\n      sections[(int)section_id].offset = SVar10.offset;\n      sections[(int)section_id].size = SVar10.size;\n      if (lVar7 == 9) goto LAB_00149b6a;\n    }\n    lVar7 = lVar7 + 1;\n  } while (lVar7 != 9);\nLAB_00149b6a:\n  reader.super_Dwarf_info_reader.object_ = this->obj_;\n  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_element_count = 0;\n  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_rehash_policy.\n  _M_max_load_factor = 0.0;\n  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_rehash_policy._4_4_ = 0;\n  reader.super_Dwarf_info_reader.shndx_ = local_a20;\n  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_buckets =\n       &reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_single_bucket;\n  ppAVar8 = reader.super_Dwarf_info_reader.abbrev_table_.low_abbrev_codes_;\n  for (lVar7 = 0x100; lVar7 != 0; lVar7 = lVar7 + -1) {\n    *ppAVar8 = (Abbrev_code *)0x0;\n    ppAVar8 = ppAVar8 + (ulong)bVar9 * -2 + 1;\n  }\n  reader.super_Dwarf_info_reader.symtab_ = (uchar *)0x0;\n  reader.super_Dwarf_info_reader.symtab_size_ = 0;\n  reader.super_Dwarf_info_reader.reloc_shndx_ = 0;\n  reader.super_Dwarf_info_reader.reloc_type_ = 0;\n  reader.super_Dwarf_info_reader.string_shndx_ = 0;\n  reader.super_Dwarf_info_reader.buffer_ = (uchar *)0x0;\n  reader.super_Dwarf_info_reader.buffer_end_ = (uchar *)0x0;\n  reader.super_Dwarf_info_reader.cu_offset_ = 0;\n  reader.super_Dwarf_info_reader.cu_length_ = 0;\n  reader.super_Dwarf_info_reader.offset_size_ = 0;\n  reader.super_Dwarf_info_reader.address_size_ = 0;\n  reader.super_Dwarf_info_reader.cu_version_ = 0;\n  reader.super_Dwarf_info_reader.abbrev_table_.abbrev_shndx_ = 0;\n  reader.super_Dwarf_info_reader.abbrev_table_.abbrev_offset_ = 0;\n  reader.super_Dwarf_info_reader.abbrev_table_.buffer_ = (uchar *)0x0;\n  reader.super_Dwarf_info_reader.abbrev_table_.buffer_end_ = (uchar *)0x0;\n  reader.super_Dwarf_info_reader.abbrev_table_.owns_buffer_ = false;\n  reader.super_Dwarf_info_reader.abbrev_table_.buffer_pos_ = (uchar *)0x0;\n  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_rehash_policy.\n  _M_next_resize = 0;\n  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_single_bucket =\n       (__bucket_type)0x0;\n  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_bucket_count = 1;\n  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_before_begin._M_nxt =\n       (_Hash_node_base *)0x0;\n  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_rehash_policy.\n  _M_max_load_factor = 1.0;\n  reader.super_Dwarf_info_reader.ranges_table_.ranges_shndx_ = 0;\n  reader.super_Dwarf_info_reader.ranges_table_.ranges_buffer_ = (uchar *)0x0;\n  reader.super_Dwarf_info_reader.ranges_table_.ranges_buffer_end_ = (uchar *)0x0;\n  reader.super_Dwarf_info_reader.abbrev_shndx_ = debug_shndx[3];\n  reader.super_Dwarf_info_reader.ranges_table_.owns_ranges_buffer_ = false;\n  reader.super_Dwarf_info_reader.ranges_table_.ranges_reloc_mapper_ = (Elf_reloc_mapper *)0x0;\n  reader.super_Dwarf_info_reader.ranges_table_.reloc_type_ = 0;\n  reader.super_Dwarf_info_reader.ranges_table_.output_section_offset_ = 0;\n  reader.super_Dwarf_info_reader.reloc_mapper_ = (Elf_reloc_mapper *)0x0;\n  reader.super_Dwarf_info_reader.string_buffer_ = (char *)0x0;\n  reader.super_Dwarf_info_reader.string_buffer_end_ = (char *)0x0;\n  reader.super_Dwarf_info_reader.owns_string_buffer_ = false;\n  reader.super_Dwarf_info_reader.string_output_section_offset_ = 0;\n  reader.super_Dwarf_info_reader._vptr_Dwarf_info_reader =\n       (_func_int_varargs **)&PTR__Unit_reader_003a9e98;\n  reader.super_Dwarf_info_reader.is_type_unit_ = is_debug_types;\n  reader.super_Dwarf_info_reader.ranges_table_.dwinfo_ = &reader.super_Dwarf_info_reader;\n  reader.output_file_ = output_file;\n  reader.sections_ = sections;\n                    /* try { // try from 00149d64 to 00149d68 has its CatchHandler @ 00149ed9 */\n  Dwarf_info_reader::parse(&reader.super_Dwarf_info_reader);\n  reader.super_Dwarf_info_reader._vptr_Dwarf_info_reader =\n       (_func_int_varargs **)&PTR__Dwarf_info_reader_003a9fb8;\n  if (reader.super_Dwarf_info_reader.reloc_mapper_ != (Elf_reloc_mapper *)0x0) {\n    (*(reader.super_Dwarf_info_reader.reloc_mapper_)->_vptr_Elf_reloc_mapper[1])();\n  }\n  if ((reader.super_Dwarf_info_reader.owns_string_buffer_ != false) &&\n     (reader.super_Dwarf_info_reader.string_buffer_ != (char *)0x0)) {\n    operator_delete__(reader.super_Dwarf_info_reader.string_buffer_);\n  }\n  if ((reader.super_Dwarf_info_reader.ranges_table_.owns_ranges_buffer_ != false) &&\n     (reader.super_Dwarf_info_reader.ranges_table_.ranges_buffer_ != (uchar *)0x0)) {\n    operator_delete__(reader.super_Dwarf_info_reader.ranges_table_.ranges_buffer_);\n  }\n  if (reader.super_Dwarf_info_reader.ranges_table_.ranges_reloc_mapper_ != (Elf_reloc_mapper *)0x0)\n  {\n    (*(reader.super_Dwarf_info_reader.ranges_table_.ranges_reloc_mapper_)->_vptr_Elf_reloc_mapper[1]\n    )();\n  }\n  if ((reader.super_Dwarf_info_reader.abbrev_table_.owns_buffer_ != false) &&\n     (reader.super_Dwarf_info_reader.abbrev_table_.buffer_ != (uchar *)0x0)) {\n    operator_delete__(reader.super_Dwarf_info_reader.abbrev_table_.buffer_);\n  }\n  Dwarf_abbrev_table::clear_abbrev_codes(&reader.super_Dwarf_info_reader.abbrev_table_);\n  _Var5 = reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_before_begin;\n  while (_Var5._M_nxt != (_Hash_node_base *)0x0) {\n    p_Var1 = (_Var5._M_nxt)->_M_nxt;\n    operator_delete(_Var5._M_nxt);\n    _Var5._M_nxt = p_Var1;\n  }\n  memset(reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_buckets,0,\n         reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_bucket_count * 8);\n  auVar3._8_8_ = 0;\n  auVar3._0_8_ = reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h.\n                 _M_rehash_policy._0_8_;\n  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._24_16_ = auVar3 << 0x40;\n  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_before_begin._M_nxt =\n       (_Hash_node_base *)0x0;\n  if (reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_buckets !=\n      &reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_single_bucket) {\n    operator_delete(reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_buckets)\n    ;\n  }\n  return;\n}" { (declaration "_Hash_node_base *p_Var1;" type_identifier (pointer_declarator "*p_Var1" * identifier) ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "undefined1 auVar3 [16];" type_identifier (array_declarator "auVar3 [16]" identifier [ number_literal ]) ;) (declaration "Section_bounds *pSVar4;" type_identifier (pointer_declarator "*pSVar4" * identifier) ;) (declaration "__node_base _Var5;" type_identifier identifier ;) (declaration "Section_bounds *pSVar6;" type_identifier (pointer_declarator "*pSVar6" * identifier) ;) (declaration "char *format;" primitive_type (pointer_declarator "*format" * identifier) ;) (declaration "DW_SECT section_id;" type_identifier identifier ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "Abbrev_code **ppAVar8;" type_identifier (pointer_declarator "**ppAVar8" * (pointer_declarator "*ppAVar8" * identifier)) ;) (declaration "byte bVar9;" type_identifier identifier ;) (declaration "Section_bounds SVar10;" type_identifier identifier ;) (declaration "uint local_a20;" type_identifier identifier ;) (declaration "Section_bounds sections [9];" type_identifier (array_declarator "sections [9]" identifier [ number_literal ]) ;) (declaration "Unit_reader reader;" type_identifier identifier ;) (expression_statement "bVar9 = 0;" (assignment_expression "bVar9 = 0" identifier = number_literal) ;) (if_statement "if (is_debug_types) {\n    local_a20 = debug_shndx[2];\n  }\n  else {\n    local_a20 = debug_shndx[1];\n  }" if (parenthesized_expression "(is_debug_types)" ( identifier )) (compound_statement "{\n    local_a20 = debug_shndx[2];\n  }" { (expression_statement "local_a20 = debug_shndx[2];" (assignment_expression "local_a20 = debug_shndx[2]" identifier = (subscript_expression "debug_shndx[2]" identifier [ number_literal ])) ;) }) (else_clause "else {\n    local_a20 = debug_shndx[1];\n  }" else (compound_statement "{\n    local_a20 = debug_shndx[1];\n  }" { (expression_statement "local_a20 = debug_shndx[1];" (assignment_expression "local_a20 = debug_shndx[1]" identifier = (subscript_expression "debug_shndx[1]" identifier [ number_literal ])) ;) }))) (if_statement "if (local_a20 == 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dwp.cc",0x5f1,"add_unit_set");\n  }" if (parenthesized_expression "(local_a20 == 0)" ( (binary_expression "local_a20 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dwp.cc",0x5f1,"add_unit_set");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/dwp.cc",0x5f1,"add_unit_set");" (call_expression "do_gold_unreachable("../../gold/dwp.cc",0x5f1,"add_unit_set")" identifier (argument_list "("../../gold/dwp.cc",0x5f1,"add_unit_set")" ( (string_literal ""../../gold/dwp.cc"" " string_content ") , number_literal , (string_literal ""add_unit_set"" " string_content ") ))) ;) })) (if_statement "if (debug_shndx[3] == 0) {\n    pcVar2 = this->name_;\n    format = (char *)gettext("%s: no .debug_abbrev.dwo section found");\n                    /* WARNING: Subroutine does not return */\n    gold_fatal(format,pcVar2);\n  }" if (parenthesized_expression "(debug_shndx[3] == 0)" ( (binary_expression "debug_shndx[3] == 0" (subscript_expression "debug_shndx[3]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    pcVar2 = this->name_;\n    format = (char *)gettext("%s: no .debug_abbrev.dwo section found");\n                    /* WARNING: Subroutine does not return */\n    gold_fatal(format,pcVar2);\n  }" { (expression_statement "pcVar2 = this->name_;" (assignment_expression "pcVar2 = this->name_" identifier = (field_expression "this->name_" identifier -> field_identifier)) ;) (expression_statement "format = (char *)gettext("%s: no .debug_abbrev.dwo section found");" (assignment_expression "format = (char *)gettext("%s: no .debug_abbrev.dwo section found")" identifier = (cast_expression "(char *)gettext("%s: no .debug_abbrev.dwo section found")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("%s: no .debug_abbrev.dwo section found")" identifier (argument_list "("%s: no .debug_abbrev.dwo section found")" ( (string_literal ""%s: no .debug_abbrev.dwo section found"" " string_content ") ))))) ;) comment (expression_statement "gold_fatal(format,pcVar2);" (call_expression "gold_fatal(format,pcVar2)" identifier (argument_list "(format,pcVar2)" ( identifier , identifier ))) ;) })) (expression_statement "pSVar6 = sections;" (assignment_expression "pSVar6 = sections" identifier = identifier) ;) (do_statement "do {\n    pSVar6->offset = 0;\n    pSVar4 = pSVar6 + 1;\n    pSVar6->size = 0;\n    pSVar6 = pSVar4;\n  } while (&reader != (Unit_reader *)pSVar4);" do (compound_statement "{\n    pSVar6->offset = 0;\n    pSVar4 = pSVar6 + 1;\n    pSVar6->size = 0;\n    pSVar6 = pSVar4;\n  }" { (expression_statement "pSVar6->offset = 0;" (assignment_expression "pSVar6->offset = 0" (field_expression "pSVar6->offset" identifier -> field_identifier) = number_literal) ;) (expression_statement "pSVar4 = pSVar6 + 1;" (assignment_expression "pSVar4 = pSVar6 + 1" identifier = (binary_expression "pSVar6 + 1" identifier + number_literal)) ;) (expression_statement "pSVar6->size = 0;" (assignment_expression "pSVar6->size = 0" (field_expression "pSVar6->size" identifier -> field_identifier) = number_literal) ;) (expression_statement "pSVar6 = pSVar4;" (assignment_expression "pSVar6 = pSVar4" identifier = identifier) ;) }) while (parenthesized_expression "(&reader != (Unit_reader *)pSVar4)" ( (binary_expression "&reader != (Unit_reader *)pSVar4" (pointer_expression "&reader" & identifier) != (cast_expression "(Unit_reader *)pSVar4" ( (type_descriptor "Unit_reader *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) ;) (expression_statement "lVar7 = 3;" (assignment_expression "lVar7 = 3" identifier = number_literal) ;) (do_statement "do {\n    while (debug_shndx[lVar7] != 0) {\n      section_id = (DW_SECT)lVar7;\n      SVar10 = copy_section(this,output_file,debug_shndx[lVar7],section_id);\n      lVar7 = lVar7 + 1;\n      sections[(int)section_id].offset = SVar10.offset;\n      sections[(int)section_id].size = SVar10.size;\n      if (lVar7 == 9) goto LAB_00149b6a;\n    }\n    lVar7 = lVar7 + 1;\n  } while (lVar7 != 9);" do (compound_statement "{\n    while (debug_shndx[lVar7] != 0) {\n      section_id = (DW_SECT)lVar7;\n      SVar10 = copy_section(this,output_file,debug_shndx[lVar7],section_id);\n      lVar7 = lVar7 + 1;\n      sections[(int)section_id].offset = SVar10.offset;\n      sections[(int)section_id].size = SVar10.size;\n      if (lVar7 == 9) goto LAB_00149b6a;\n    }\n    lVar7 = lVar7 + 1;\n  }" { (while_statement "while (debug_shndx[lVar7] != 0) {\n      section_id = (DW_SECT)lVar7;\n      SVar10 = copy_section(this,output_file,debug_shndx[lVar7],section_id);\n      lVar7 = lVar7 + 1;\n      sections[(int)section_id].offset = SVar10.offset;\n      sections[(int)section_id].size = SVar10.size;\n      if (lVar7 == 9) goto LAB_00149b6a;\n    }" while (parenthesized_expression "(debug_shndx[lVar7] != 0)" ( (binary_expression "debug_shndx[lVar7] != 0" (subscript_expression "debug_shndx[lVar7]" identifier [ identifier ]) != number_literal) )) (compound_statement "{\n      section_id = (DW_SECT)lVar7;\n      SVar10 = copy_section(this,output_file,debug_shndx[lVar7],section_id);\n      lVar7 = lVar7 + 1;\n      sections[(int)section_id].offset = SVar10.offset;\n      sections[(int)section_id].size = SVar10.size;\n      if (lVar7 == 9) goto LAB_00149b6a;\n    }" { (expression_statement "section_id = (DW_SECT)lVar7;" (assignment_expression "section_id = (DW_SECT)lVar7" identifier = (cast_expression "(DW_SECT)lVar7" ( (type_descriptor "DW_SECT" type_identifier) ) identifier)) ;) (expression_statement "SVar10 = copy_section(this,output_file,debug_shndx[lVar7],section_id);" (assignment_expression "SVar10 = copy_section(this,output_file,debug_shndx[lVar7],section_id)" identifier = (call_expression "copy_section(this,output_file,debug_shndx[lVar7],section_id)" identifier (argument_list "(this,output_file,debug_shndx[lVar7],section_id)" ( identifier , identifier , (subscript_expression "debug_shndx[lVar7]" identifier [ identifier ]) , identifier )))) ;) (expression_statement "lVar7 = lVar7 + 1;" (assignment_expression "lVar7 = lVar7 + 1" identifier = (binary_expression "lVar7 + 1" identifier + number_literal)) ;) (expression_statement "sections[(int)section_id].offset = SVar10.offset;" (assignment_expression "sections[(int)section_id].offset = SVar10.offset" (field_expression "sections[(int)section_id].offset" (subscript_expression "sections[(int)section_id]" identifier [ (cast_expression "(int)section_id" ( (type_descriptor "int" primitive_type) ) identifier) ]) . field_identifier) = (field_expression "SVar10.offset" identifier . field_identifier)) ;) (expression_statement "sections[(int)section_id].size = SVar10.size;" (assignment_expression "sections[(int)section_id].size = SVar10.size" (field_expression "sections[(int)section_id].size" (subscript_expression "sections[(int)section_id]" identifier [ (cast_expression "(int)section_id" ( (type_descriptor "int" primitive_type) ) identifier) ]) . field_identifier) = (field_expression "SVar10.size" identifier . field_identifier)) ;) (if_statement "if (lVar7 == 9) goto LAB_00149b6a;" if (parenthesized_expression "(lVar7 == 9)" ( (binary_expression "lVar7 == 9" identifier == number_literal) )) (goto_statement "goto LAB_00149b6a;" goto statement_identifier ;)) })) (expression_statement "lVar7 = lVar7 + 1;" (assignment_expression "lVar7 = lVar7 + 1" identifier = (binary_expression "lVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar7 != 9)" ( (binary_expression "lVar7 != 9" identifier != number_literal) )) ;) (labeled_statement "LAB_00149b6a:\n  reader.super_Dwarf_info_reader.object_ = this->obj_;" statement_identifier : (expression_statement "reader.super_Dwarf_info_reader.object_ = this->obj_;" (assignment_expression "reader.super_Dwarf_info_reader.object_ = this->obj_" (field_expression "reader.super_Dwarf_info_reader.object_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) = (field_expression "this->obj_" identifier -> field_identifier)) ;)) (expression_statement "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_element_count = 0;" (assignment_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_element_count = 0" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_element_count" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_rehash_policy.\n  _M_max_load_factor = 0.0;" (assignment_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_rehash_policy.\n  _M_max_load_factor = 0.0" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_rehash_policy.\n  _M_max_load_factor" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_rehash_policy" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_rehash_policy._4_4_ = 0;" (assignment_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_rehash_policy._4_4_ = 0" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_rehash_policy._4_4_" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_rehash_policy" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "reader.super_Dwarf_info_reader.shndx_ = local_a20;" (assignment_expression "reader.super_Dwarf_info_reader.shndx_ = local_a20" (field_expression "reader.super_Dwarf_info_reader.shndx_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_buckets =\n       &reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_single_bucket;" (assignment_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_buckets =\n       &reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_single_bucket" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_buckets" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (pointer_expression "&reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_single_bucket" & (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_single_bucket" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier))) ;) (expression_statement "ppAVar8 = reader.super_Dwarf_info_reader.abbrev_table_.low_abbrev_codes_;" (assignment_expression "ppAVar8 = reader.super_Dwarf_info_reader.abbrev_table_.low_abbrev_codes_" identifier = (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.low_abbrev_codes_" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (for_statement "for (lVar7 = 0x100; lVar7 != 0; lVar7 = lVar7 + -1) {\n    *ppAVar8 = (Abbrev_code *)0x0;\n    ppAVar8 = ppAVar8 + (ulong)bVar9 * -2 + 1;\n  }" for ( (assignment_expression "lVar7 = 0x100" identifier = number_literal) ; (binary_expression "lVar7 != 0" identifier != number_literal) ; (assignment_expression "lVar7 = lVar7 + -1" identifier = (binary_expression "lVar7 + -1" identifier + number_literal)) ) (compound_statement "{\n    *ppAVar8 = (Abbrev_code *)0x0;\n    ppAVar8 = ppAVar8 + (ulong)bVar9 * -2 + 1;\n  }" { (expression_statement "*ppAVar8 = (Abbrev_code *)0x0;" (assignment_expression "*ppAVar8 = (Abbrev_code *)0x0" (pointer_expression "*ppAVar8" * identifier) = (cast_expression "(Abbrev_code *)0x0" ( (type_descriptor "Abbrev_code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppAVar8 = ppAVar8 + (ulong)bVar9 * -2 + 1;" (assignment_expression "ppAVar8 = ppAVar8 + (ulong)bVar9 * -2 + 1" identifier = (binary_expression "ppAVar8 + (ulong)bVar9 * -2 + 1" (binary_expression "ppAVar8 + (ulong)bVar9 * -2" identifier + (binary_expression "(ulong)bVar9 * -2" (cast_expression "(ulong)bVar9" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "reader.super_Dwarf_info_reader.symtab_ = (uchar *)0x0;" (assignment_expression "reader.super_Dwarf_info_reader.symtab_ = (uchar *)0x0" (field_expression "reader.super_Dwarf_info_reader.symtab_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "reader.super_Dwarf_info_reader.symtab_size_ = 0;" (assignment_expression "reader.super_Dwarf_info_reader.symtab_size_ = 0" (field_expression "reader.super_Dwarf_info_reader.symtab_size_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "reader.super_Dwarf_info_reader.reloc_shndx_ = 0;" (assignment_expression "reader.super_Dwarf_info_reader.reloc_shndx_ = 0" (field_expression "reader.super_Dwarf_info_reader.reloc_shndx_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "reader.super_Dwarf_info_reader.reloc_type_ = 0;" (assignment_expression "reader.super_Dwarf_info_reader.reloc_type_ = 0" (field_expression "reader.super_Dwarf_info_reader.reloc_type_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "reader.super_Dwarf_info_reader.string_shndx_ = 0;" (assignment_expression "reader.super_Dwarf_info_reader.string_shndx_ = 0" (field_expression "reader.super_Dwarf_info_reader.string_shndx_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "reader.super_Dwarf_info_reader.buffer_ = (uchar *)0x0;" (assignment_expression "reader.super_Dwarf_info_reader.buffer_ = (uchar *)0x0" (field_expression "reader.super_Dwarf_info_reader.buffer_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "reader.super_Dwarf_info_reader.buffer_end_ = (uchar *)0x0;" (assignment_expression "reader.super_Dwarf_info_reader.buffer_end_ = (uchar *)0x0" (field_expression "reader.super_Dwarf_info_reader.buffer_end_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "reader.super_Dwarf_info_reader.cu_offset_ = 0;" (assignment_expression "reader.super_Dwarf_info_reader.cu_offset_ = 0" (field_expression "reader.super_Dwarf_info_reader.cu_offset_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "reader.super_Dwarf_info_reader.cu_length_ = 0;" (assignment_expression "reader.super_Dwarf_info_reader.cu_length_ = 0" (field_expression "reader.super_Dwarf_info_reader.cu_length_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "reader.super_Dwarf_info_reader.offset_size_ = 0;" (assignment_expression "reader.super_Dwarf_info_reader.offset_size_ = 0" (field_expression "reader.super_Dwarf_info_reader.offset_size_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "reader.super_Dwarf_info_reader.address_size_ = 0;" (assignment_expression "reader.super_Dwarf_info_reader.address_size_ = 0" (field_expression "reader.super_Dwarf_info_reader.address_size_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "reader.super_Dwarf_info_reader.cu_version_ = 0;" (assignment_expression "reader.super_Dwarf_info_reader.cu_version_ = 0" (field_expression "reader.super_Dwarf_info_reader.cu_version_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "reader.super_Dwarf_info_reader.abbrev_table_.abbrev_shndx_ = 0;" (assignment_expression "reader.super_Dwarf_info_reader.abbrev_table_.abbrev_shndx_ = 0" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.abbrev_shndx_" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "reader.super_Dwarf_info_reader.abbrev_table_.abbrev_offset_ = 0;" (assignment_expression "reader.super_Dwarf_info_reader.abbrev_table_.abbrev_offset_ = 0" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.abbrev_offset_" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "reader.super_Dwarf_info_reader.abbrev_table_.buffer_ = (uchar *)0x0;" (assignment_expression "reader.super_Dwarf_info_reader.abbrev_table_.buffer_ = (uchar *)0x0" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.buffer_" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "reader.super_Dwarf_info_reader.abbrev_table_.buffer_end_ = (uchar *)0x0;" (assignment_expression "reader.super_Dwarf_info_reader.abbrev_table_.buffer_end_ = (uchar *)0x0" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.buffer_end_" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "reader.super_Dwarf_info_reader.abbrev_table_.owns_buffer_ = false;" (assignment_expression "reader.super_Dwarf_info_reader.abbrev_table_.owns_buffer_ = false" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.owns_buffer_" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) . field_identifier) = false) ;) (expression_statement "reader.super_Dwarf_info_reader.abbrev_table_.buffer_pos_ = (uchar *)0x0;" (assignment_expression "reader.super_Dwarf_info_reader.abbrev_table_.buffer_pos_ = (uchar *)0x0" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.buffer_pos_" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_rehash_policy.\n  _M_next_resize = 0;" (assignment_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_rehash_policy.\n  _M_next_resize = 0" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_rehash_policy.\n  _M_next_resize" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_rehash_policy" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_single_bucket =\n       (__bucket_type)0x0;" (assignment_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_single_bucket =\n       (__bucket_type)0x0" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_single_bucket" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(__bucket_type)0x0" ( (type_descriptor "__bucket_type" type_identifier) ) number_literal)) ;) (expression_statement "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_bucket_count = 1;" (assignment_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_bucket_count = 1" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_bucket_count" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_before_begin._M_nxt =\n       (_Hash_node_base *)0x0;" (assignment_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_before_begin._M_nxt =\n       (_Hash_node_base *)0x0" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_before_begin._M_nxt" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_before_begin" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_rehash_policy.\n  _M_max_load_factor = 1.0;" (assignment_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_rehash_policy.\n  _M_max_load_factor = 1.0" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_rehash_policy.\n  _M_max_load_factor" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_rehash_policy" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "reader.super_Dwarf_info_reader.ranges_table_.ranges_shndx_ = 0;" (assignment_expression "reader.super_Dwarf_info_reader.ranges_table_.ranges_shndx_ = 0" (field_expression "reader.super_Dwarf_info_reader.ranges_table_.ranges_shndx_" (field_expression "reader.super_Dwarf_info_reader.ranges_table_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "reader.super_Dwarf_info_reader.ranges_table_.ranges_buffer_ = (uchar *)0x0;" (assignment_expression "reader.super_Dwarf_info_reader.ranges_table_.ranges_buffer_ = (uchar *)0x0" (field_expression "reader.super_Dwarf_info_reader.ranges_table_.ranges_buffer_" (field_expression "reader.super_Dwarf_info_reader.ranges_table_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "reader.super_Dwarf_info_reader.ranges_table_.ranges_buffer_end_ = (uchar *)0x0;" (assignment_expression "reader.super_Dwarf_info_reader.ranges_table_.ranges_buffer_end_ = (uchar *)0x0" (field_expression "reader.super_Dwarf_info_reader.ranges_table_.ranges_buffer_end_" (field_expression "reader.super_Dwarf_info_reader.ranges_table_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "reader.super_Dwarf_info_reader.abbrev_shndx_ = debug_shndx[3];" (assignment_expression "reader.super_Dwarf_info_reader.abbrev_shndx_ = debug_shndx[3]" (field_expression "reader.super_Dwarf_info_reader.abbrev_shndx_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) = (subscript_expression "debug_shndx[3]" identifier [ number_literal ])) ;) (expression_statement "reader.super_Dwarf_info_reader.ranges_table_.owns_ranges_buffer_ = false;" (assignment_expression "reader.super_Dwarf_info_reader.ranges_table_.owns_ranges_buffer_ = false" (field_expression "reader.super_Dwarf_info_reader.ranges_table_.owns_ranges_buffer_" (field_expression "reader.super_Dwarf_info_reader.ranges_table_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) . field_identifier) = false) ;) (expression_statement "reader.super_Dwarf_info_reader.ranges_table_.ranges_reloc_mapper_ = (Elf_reloc_mapper *)0x0;" (assignment_expression "reader.super_Dwarf_info_reader.ranges_table_.ranges_reloc_mapper_ = (Elf_reloc_mapper *)0x0" (field_expression "reader.super_Dwarf_info_reader.ranges_table_.ranges_reloc_mapper_" (field_expression "reader.super_Dwarf_info_reader.ranges_table_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(Elf_reloc_mapper *)0x0" ( (type_descriptor "Elf_reloc_mapper *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "reader.super_Dwarf_info_reader.ranges_table_.reloc_type_ = 0;" (assignment_expression "reader.super_Dwarf_info_reader.ranges_table_.reloc_type_ = 0" (field_expression "reader.super_Dwarf_info_reader.ranges_table_.reloc_type_" (field_expression "reader.super_Dwarf_info_reader.ranges_table_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "reader.super_Dwarf_info_reader.ranges_table_.output_section_offset_ = 0;" (assignment_expression "reader.super_Dwarf_info_reader.ranges_table_.output_section_offset_ = 0" (field_expression "reader.super_Dwarf_info_reader.ranges_table_.output_section_offset_" (field_expression "reader.super_Dwarf_info_reader.ranges_table_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "reader.super_Dwarf_info_reader.reloc_mapper_ = (Elf_reloc_mapper *)0x0;" (assignment_expression "reader.super_Dwarf_info_reader.reloc_mapper_ = (Elf_reloc_mapper *)0x0" (field_expression "reader.super_Dwarf_info_reader.reloc_mapper_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) = (cast_expression "(Elf_reloc_mapper *)0x0" ( (type_descriptor "Elf_reloc_mapper *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "reader.super_Dwarf_info_reader.string_buffer_ = (char *)0x0;" (assignment_expression "reader.super_Dwarf_info_reader.string_buffer_ = (char *)0x0" (field_expression "reader.super_Dwarf_info_reader.string_buffer_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "reader.super_Dwarf_info_reader.string_buffer_end_ = (char *)0x0;" (assignment_expression "reader.super_Dwarf_info_reader.string_buffer_end_ = (char *)0x0" (field_expression "reader.super_Dwarf_info_reader.string_buffer_end_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "reader.super_Dwarf_info_reader.owns_string_buffer_ = false;" (assignment_expression "reader.super_Dwarf_info_reader.owns_string_buffer_ = false" (field_expression "reader.super_Dwarf_info_reader.owns_string_buffer_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) = false) ;) (expression_statement "reader.super_Dwarf_info_reader.string_output_section_offset_ = 0;" (assignment_expression "reader.super_Dwarf_info_reader.string_output_section_offset_ = 0" (field_expression "reader.super_Dwarf_info_reader.string_output_section_offset_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "reader.super_Dwarf_info_reader._vptr_Dwarf_info_reader =\n       (_func_int_varargs **)&PTR__Unit_reader_003a9e98;" (assignment_expression "reader.super_Dwarf_info_reader._vptr_Dwarf_info_reader =\n       (_func_int_varargs **)&PTR__Unit_reader_003a9e98" (field_expression "reader.super_Dwarf_info_reader._vptr_Dwarf_info_reader" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Unit_reader_003a9e98" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Unit_reader_003a9e98" & identifier))) ;) (expression_statement "reader.super_Dwarf_info_reader.is_type_unit_ = is_debug_types;" (assignment_expression "reader.super_Dwarf_info_reader.is_type_unit_ = is_debug_types" (field_expression "reader.super_Dwarf_info_reader.is_type_unit_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "reader.super_Dwarf_info_reader.ranges_table_.dwinfo_ = &reader.super_Dwarf_info_reader;" (assignment_expression "reader.super_Dwarf_info_reader.ranges_table_.dwinfo_ = &reader.super_Dwarf_info_reader" (field_expression "reader.super_Dwarf_info_reader.ranges_table_.dwinfo_" (field_expression "reader.super_Dwarf_info_reader.ranges_table_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) . field_identifier) = (pointer_expression "&reader.super_Dwarf_info_reader" & (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier))) ;) (expression_statement "reader.output_file_ = output_file;" (assignment_expression "reader.output_file_ = output_file" (field_expression "reader.output_file_" identifier . field_identifier) = identifier) ;) (expression_statement "reader.sections_ = sections;" (assignment_expression "reader.sections_ = sections" (field_expression "reader.sections_" identifier . field_identifier) = identifier) ;) comment (labeled_statement "Dwarf_info_reader::parse(&reader.super_Dwarf_info_reader);" statement_identifier : (ERROR ":" :) (expression_statement "parse(&reader.super_Dwarf_info_reader);" (call_expression "parse(&reader.super_Dwarf_info_reader)" identifier (argument_list "(&reader.super_Dwarf_info_reader)" ( (pointer_expression "&reader.super_Dwarf_info_reader" & (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier)) ))) ;)) (expression_statement "reader.super_Dwarf_info_reader._vptr_Dwarf_info_reader =\n       (_func_int_varargs **)&PTR__Dwarf_info_reader_003a9fb8;" (assignment_expression "reader.super_Dwarf_info_reader._vptr_Dwarf_info_reader =\n       (_func_int_varargs **)&PTR__Dwarf_info_reader_003a9fb8" (field_expression "reader.super_Dwarf_info_reader._vptr_Dwarf_info_reader" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Dwarf_info_reader_003a9fb8" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Dwarf_info_reader_003a9fb8" & identifier))) ;) (if_statement "if (reader.super_Dwarf_info_reader.reloc_mapper_ != (Elf_reloc_mapper *)0x0) {\n    (*(reader.super_Dwarf_info_reader.reloc_mapper_)->_vptr_Elf_reloc_mapper[1])();\n  }" if (parenthesized_expression "(reader.super_Dwarf_info_reader.reloc_mapper_ != (Elf_reloc_mapper *)0x0)" ( (binary_expression "reader.super_Dwarf_info_reader.reloc_mapper_ != (Elf_reloc_mapper *)0x0" (field_expression "reader.super_Dwarf_info_reader.reloc_mapper_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) != (cast_expression "(Elf_reloc_mapper *)0x0" ( (type_descriptor "Elf_reloc_mapper *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (*(reader.super_Dwarf_info_reader.reloc_mapper_)->_vptr_Elf_reloc_mapper[1])();\n  }" { (expression_statement "(*(reader.super_Dwarf_info_reader.reloc_mapper_)->_vptr_Elf_reloc_mapper[1])();" (call_expression "(*(reader.super_Dwarf_info_reader.reloc_mapper_)->_vptr_Elf_reloc_mapper[1])()" (parenthesized_expression "(*(reader.super_Dwarf_info_reader.reloc_mapper_)->_vptr_Elf_reloc_mapper[1])" ( (pointer_expression "*(reader.super_Dwarf_info_reader.reloc_mapper_)->_vptr_Elf_reloc_mapper[1]" * (subscript_expression "(reader.super_Dwarf_info_reader.reloc_mapper_)->_vptr_Elf_reloc_mapper[1]" (field_expression "(reader.super_Dwarf_info_reader.reloc_mapper_)->_vptr_Elf_reloc_mapper" (parenthesized_expression "(reader.super_Dwarf_info_reader.reloc_mapper_)" ( (field_expression "reader.super_Dwarf_info_reader.reloc_mapper_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) )) -> field_identifier) [ number_literal ])) )) (argument_list "()" ( ))) ;) })) (if_statement "if ((reader.super_Dwarf_info_reader.owns_string_buffer_ != false) &&\n     (reader.super_Dwarf_info_reader.string_buffer_ != (char *)0x0)) {\n    operator_delete__(reader.super_Dwarf_info_reader.string_buffer_);\n  }" if (parenthesized_expression "((reader.super_Dwarf_info_reader.owns_string_buffer_ != false) &&\n     (reader.super_Dwarf_info_reader.string_buffer_ != (char *)0x0))" ( (binary_expression "(reader.super_Dwarf_info_reader.owns_string_buffer_ != false) &&\n     (reader.super_Dwarf_info_reader.string_buffer_ != (char *)0x0)" (parenthesized_expression "(reader.super_Dwarf_info_reader.owns_string_buffer_ != false)" ( (binary_expression "reader.super_Dwarf_info_reader.owns_string_buffer_ != false" (field_expression "reader.super_Dwarf_info_reader.owns_string_buffer_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) != false) )) && (parenthesized_expression "(reader.super_Dwarf_info_reader.string_buffer_ != (char *)0x0)" ( (binary_expression "reader.super_Dwarf_info_reader.string_buffer_ != (char *)0x0" (field_expression "reader.super_Dwarf_info_reader.string_buffer_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    operator_delete__(reader.super_Dwarf_info_reader.string_buffer_);\n  }" { (expression_statement "operator_delete__(reader.super_Dwarf_info_reader.string_buffer_);" (call_expression "operator_delete__(reader.super_Dwarf_info_reader.string_buffer_)" identifier (argument_list "(reader.super_Dwarf_info_reader.string_buffer_)" ( (field_expression "reader.super_Dwarf_info_reader.string_buffer_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) ))) ;) })) (if_statement "if ((reader.super_Dwarf_info_reader.ranges_table_.owns_ranges_buffer_ != false) &&\n     (reader.super_Dwarf_info_reader.ranges_table_.ranges_buffer_ != (uchar *)0x0)) {\n    operator_delete__(reader.super_Dwarf_info_reader.ranges_table_.ranges_buffer_);\n  }" if (parenthesized_expression "((reader.super_Dwarf_info_reader.ranges_table_.owns_ranges_buffer_ != false) &&\n     (reader.super_Dwarf_info_reader.ranges_table_.ranges_buffer_ != (uchar *)0x0))" ( (binary_expression "(reader.super_Dwarf_info_reader.ranges_table_.owns_ranges_buffer_ != false) &&\n     (reader.super_Dwarf_info_reader.ranges_table_.ranges_buffer_ != (uchar *)0x0)" (parenthesized_expression "(reader.super_Dwarf_info_reader.ranges_table_.owns_ranges_buffer_ != false)" ( (binary_expression "reader.super_Dwarf_info_reader.ranges_table_.owns_ranges_buffer_ != false" (field_expression "reader.super_Dwarf_info_reader.ranges_table_.owns_ranges_buffer_" (field_expression "reader.super_Dwarf_info_reader.ranges_table_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) . field_identifier) != false) )) && (parenthesized_expression "(reader.super_Dwarf_info_reader.ranges_table_.ranges_buffer_ != (uchar *)0x0)" ( (binary_expression "reader.super_Dwarf_info_reader.ranges_table_.ranges_buffer_ != (uchar *)0x0" (field_expression "reader.super_Dwarf_info_reader.ranges_table_.ranges_buffer_" (field_expression "reader.super_Dwarf_info_reader.ranges_table_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) . field_identifier) != (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    operator_delete__(reader.super_Dwarf_info_reader.ranges_table_.ranges_buffer_);\n  }" { (expression_statement "operator_delete__(reader.super_Dwarf_info_reader.ranges_table_.ranges_buffer_);" (call_expression "operator_delete__(reader.super_Dwarf_info_reader.ranges_table_.ranges_buffer_)" identifier (argument_list "(reader.super_Dwarf_info_reader.ranges_table_.ranges_buffer_)" ( (field_expression "reader.super_Dwarf_info_reader.ranges_table_.ranges_buffer_" (field_expression "reader.super_Dwarf_info_reader.ranges_table_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) . field_identifier) ))) ;) })) (if_statement "if (reader.super_Dwarf_info_reader.ranges_table_.ranges_reloc_mapper_ != (Elf_reloc_mapper *)0x0)\n  {\n    (*(reader.super_Dwarf_info_reader.ranges_table_.ranges_reloc_mapper_)->_vptr_Elf_reloc_mapper[1]\n    )();\n  }" if (parenthesized_expression "(reader.super_Dwarf_info_reader.ranges_table_.ranges_reloc_mapper_ != (Elf_reloc_mapper *)0x0)" ( (binary_expression "reader.super_Dwarf_info_reader.ranges_table_.ranges_reloc_mapper_ != (Elf_reloc_mapper *)0x0" (field_expression "reader.super_Dwarf_info_reader.ranges_table_.ranges_reloc_mapper_" (field_expression "reader.super_Dwarf_info_reader.ranges_table_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) . field_identifier) != (cast_expression "(Elf_reloc_mapper *)0x0" ( (type_descriptor "Elf_reloc_mapper *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (*(reader.super_Dwarf_info_reader.ranges_table_.ranges_reloc_mapper_)->_vptr_Elf_reloc_mapper[1]\n    )();\n  }" { (expression_statement "(*(reader.super_Dwarf_info_reader.ranges_table_.ranges_reloc_mapper_)->_vptr_Elf_reloc_mapper[1]\n    )();" (call_expression "(*(reader.super_Dwarf_info_reader.ranges_table_.ranges_reloc_mapper_)->_vptr_Elf_reloc_mapper[1]\n    )()" (parenthesized_expression "(*(reader.super_Dwarf_info_reader.ranges_table_.ranges_reloc_mapper_)->_vptr_Elf_reloc_mapper[1]\n    )" ( (pointer_expression "*(reader.super_Dwarf_info_reader.ranges_table_.ranges_reloc_mapper_)->_vptr_Elf_reloc_mapper[1]" * (subscript_expression "(reader.super_Dwarf_info_reader.ranges_table_.ranges_reloc_mapper_)->_vptr_Elf_reloc_mapper[1]" (field_expression "(reader.super_Dwarf_info_reader.ranges_table_.ranges_reloc_mapper_)->_vptr_Elf_reloc_mapper" (parenthesized_expression "(reader.super_Dwarf_info_reader.ranges_table_.ranges_reloc_mapper_)" ( (field_expression "reader.super_Dwarf_info_reader.ranges_table_.ranges_reloc_mapper_" (field_expression "reader.super_Dwarf_info_reader.ranges_table_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) . field_identifier) )) -> field_identifier) [ number_literal ])) )) (argument_list "()" ( ))) ;) })) (if_statement "if ((reader.super_Dwarf_info_reader.abbrev_table_.owns_buffer_ != false) &&\n     (reader.super_Dwarf_info_reader.abbrev_table_.buffer_ != (uchar *)0x0)) {\n    operator_delete__(reader.super_Dwarf_info_reader.abbrev_table_.buffer_);\n  }" if (parenthesized_expression "((reader.super_Dwarf_info_reader.abbrev_table_.owns_buffer_ != false) &&\n     (reader.super_Dwarf_info_reader.abbrev_table_.buffer_ != (uchar *)0x0))" ( (binary_expression "(reader.super_Dwarf_info_reader.abbrev_table_.owns_buffer_ != false) &&\n     (reader.super_Dwarf_info_reader.abbrev_table_.buffer_ != (uchar *)0x0)" (parenthesized_expression "(reader.super_Dwarf_info_reader.abbrev_table_.owns_buffer_ != false)" ( (binary_expression "reader.super_Dwarf_info_reader.abbrev_table_.owns_buffer_ != false" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.owns_buffer_" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) . field_identifier) != false) )) && (parenthesized_expression "(reader.super_Dwarf_info_reader.abbrev_table_.buffer_ != (uchar *)0x0)" ( (binary_expression "reader.super_Dwarf_info_reader.abbrev_table_.buffer_ != (uchar *)0x0" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.buffer_" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) . field_identifier) != (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    operator_delete__(reader.super_Dwarf_info_reader.abbrev_table_.buffer_);\n  }" { (expression_statement "operator_delete__(reader.super_Dwarf_info_reader.abbrev_table_.buffer_);" (call_expression "operator_delete__(reader.super_Dwarf_info_reader.abbrev_table_.buffer_)" identifier (argument_list "(reader.super_Dwarf_info_reader.abbrev_table_.buffer_)" ( (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.buffer_" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) . field_identifier) ))) ;) })) (labeled_statement "Dwarf_abbrev_table::clear_abbrev_codes(&reader.super_Dwarf_info_reader.abbrev_table_);" statement_identifier : (ERROR ":" :) (expression_statement "clear_abbrev_codes(&reader.super_Dwarf_info_reader.abbrev_table_);" (call_expression "clear_abbrev_codes(&reader.super_Dwarf_info_reader.abbrev_table_)" identifier (argument_list "(&reader.super_Dwarf_info_reader.abbrev_table_)" ( (pointer_expression "&reader.super_Dwarf_info_reader.abbrev_table_" & (field_expression "reader.super_Dwarf_info_reader.abbrev_table_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier)) ))) ;)) (expression_statement "_Var5 = reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_before_begin;" (assignment_expression "_Var5 = reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_before_begin" identifier = (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_before_begin" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (while_statement "while (_Var5._M_nxt != (_Hash_node_base *)0x0) {\n    p_Var1 = (_Var5._M_nxt)->_M_nxt;\n    operator_delete(_Var5._M_nxt);\n    _Var5._M_nxt = p_Var1;\n  }" while (parenthesized_expression "(_Var5._M_nxt != (_Hash_node_base *)0x0)" ( (binary_expression "_Var5._M_nxt != (_Hash_node_base *)0x0" (field_expression "_Var5._M_nxt" identifier . field_identifier) != (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    p_Var1 = (_Var5._M_nxt)->_M_nxt;\n    operator_delete(_Var5._M_nxt);\n    _Var5._M_nxt = p_Var1;\n  }" { (expression_statement "p_Var1 = (_Var5._M_nxt)->_M_nxt;" (assignment_expression "p_Var1 = (_Var5._M_nxt)->_M_nxt" identifier = (field_expression "(_Var5._M_nxt)->_M_nxt" (parenthesized_expression "(_Var5._M_nxt)" ( (field_expression "_Var5._M_nxt" identifier . field_identifier) )) -> field_identifier)) ;) (expression_statement "operator_delete(_Var5._M_nxt);" (call_expression "operator_delete(_Var5._M_nxt)" identifier (argument_list "(_Var5._M_nxt)" ( (field_expression "_Var5._M_nxt" identifier . field_identifier) ))) ;) (expression_statement "_Var5._M_nxt = p_Var1;" (assignment_expression "_Var5._M_nxt = p_Var1" (field_expression "_Var5._M_nxt" identifier . field_identifier) = identifier) ;) })) (expression_statement "memset(reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_buckets,0,\n         reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_bucket_count * 8);" (call_expression "memset(reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_buckets,0,\n         reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_bucket_count * 8)" identifier (argument_list "(reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_buckets,0,\n         reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_bucket_count * 8)" ( (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_buckets" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) , number_literal , (binary_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_bucket_count * 8" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_bucket_count" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) * number_literal) ))) ;) (expression_statement "auVar3._8_8_ = 0;" (assignment_expression "auVar3._8_8_ = 0" (field_expression "auVar3._8_8_" identifier . field_identifier) = number_literal) ;) (expression_statement "auVar3._0_8_ = reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h.\n                 _M_rehash_policy._0_8_;" (assignment_expression "auVar3._0_8_ = reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h.\n                 _M_rehash_policy._0_8_" (field_expression "auVar3._0_8_" identifier . field_identifier) = (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h.\n                 _M_rehash_policy._0_8_" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h.\n                 _M_rehash_policy" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._24_16_ = auVar3 << 0x40;" (assignment_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._24_16_ = auVar3 << 0x40" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._24_16_" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (binary_expression "auVar3 << 0x40" identifier << number_literal)) ;) (expression_statement "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_before_begin._M_nxt =\n       (_Hash_node_base *)0x0;" (assignment_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_before_begin._M_nxt =\n       (_Hash_node_base *)0x0" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_before_begin._M_nxt" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_before_begin" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) . 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)) ;) (if_statement "if (reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_buckets !=\n      &reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_single_bucket) {\n    operator_delete(reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_buckets)\n    ;\n  }" if (parenthesized_expression "(reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_buckets !=\n      &reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_single_bucket)" ( (binary_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_buckets !=\n      &reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_single_bucket" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_buckets" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) != (pointer_expression "&reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_single_bucket" & (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_single_bucket" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier))) )) (compound_statement "{\n    operator_delete(reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_buckets)\n    ;\n  }" { (expression_statement "operator_delete(reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_buckets)\n    ;" (call_expression "operator_delete(reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_buckets)" identifier (argument_list "(reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_buckets)" ( (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_buckets" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_" (field_expression "reader.super_Dwarf_info_reader.abbrev_table_" (field_expression "reader.super_Dwarf_info_reader" identifier . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00149ab0(undefined8 *param_1,undefined8 param_2,long param_3,char param_4)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  undefined ***pppuVar3;\n  undefined ***pppuVar4;\n  undefined8 uVar5;\n  long lVar6;\n  int iVar7;\n  ulong uVar8;\n  undefined8 *puVar9;\n  byte bVar10;\n  undefined1 auVar11 [16];\n  int local_a20;\n  undefined **local_a18 [19];\n  char local_980;\n  undefined8 local_978;\n  undefined8 local_970;\n  undefined8 local_968;\n  int local_960;\n  undefined8 local_95c;\n  undefined4 local_954;\n  undefined4 local_950;\n  undefined8 local_948;\n  undefined8 local_940;\n  undefined8 local_938;\n  undefined8 local_930;\n  undefined8 local_928;\n  undefined4 local_920;\n  undefined4 local_918 [2];\n  undefined8 local_910;\n  long local_908;\n  undefined8 local_900;\n  char local_8f8;\n  undefined8 local_8f0;\n  undefined8 local_8e8 [256];\n  undefined1 *local_e8;\n  long local_e0;\n  undefined8 *local_d8;\n  undefined1 local_d0 [16];\n  undefined1 local_c0 [16];\n  undefined ***local_b0;\n  undefined4 local_a8;\n  long local_a0;\n  undefined8 local_98;\n  char local_90;\n  long *local_88;\n  undefined4 local_80;\n  undefined8 local_78;\n  long *local_70;\n  long local_68;\n  undefined8 local_60;\n  char local_58;\n  undefined8 local_50;\n  undefined8 local_48;\n  undefined ***local_40;\n  \n  bVar10 = 0;\n  if (param_4 == '\0') {\n    local_a20 = *(int *)(param_3 + 4);\n  }\n  else {\n    local_a20 = *(int *)(param_3 + 8);\n  }\n  if (local_a20 == 0) {\n                    \n    FUN_0016cdf0("../../gold/dwp.cc",0x5f1,"add_unit_set");\n  }\n  if (*(int *)(param_3 + 0xc) == 0) {\n    uVar2 = *param_1;\n    uVar5 = gettext("%s: no .debug_abbrev.dwo section found");\n                    \n    FUN_00168f60(uVar5,uVar2);\n  }\n  pppuVar3 = local_a18;\n  do {\n    *pppuVar3 = (undefined **)0x0;\n    pppuVar4 = pppuVar3 + 2;\n    pppuVar3[1] = (undefined **)0x0;\n    pppuVar3 = pppuVar4;\n  } while (local_a18 + 0x12 != pppuVar4);\n  uVar8 = 3;\n  do {\n    while (iVar1 = *(int *)(param_3 + uVar8 * 4), iVar1 != 0) {\n      iVar7 = (int)uVar8;\n      auVar11 = FUN_00149990(param_1,param_2,iVar1,uVar8 & 0xffffffff);\n      uVar8 = uVar8 + 1;\n      local_a18[(long)iVar7 * 2] = auVar11._0_8_;\n      local_a18[(long)iVar7 * 2 + 1] = auVar11._8_8_;\n      if (uVar8 == 9) goto LAB_00149b6a;\n    }\n    uVar8 = uVar8 + 1;\n  } while (uVar8 != 9);\nLAB_00149b6a:\n  local_978 = param_1[1];\n  local_d0 = (undefined1  [16])0x0;\n  local_960 = local_a20;\n  local_e8 = local_c0 + 8;\n  puVar9 = local_8e8;\n  for (lVar6 = 0x100; lVar6 != 0; lVar6 = lVar6 + -1) {\n    *puVar9 = 0;\n    puVar9 = puVar9 + (ulong)bVar10 * -2 + 1;\n  }\n  local_970 = 0;\n  local_968 = 0;\n  local_95c = 0;\n  local_950 = 0;\n  local_948 = 0;\n  local_940 = 0;\n  local_938 = 0;\n  local_930 = 0;\n  local_928 = 0;\n  local_920 = 0;\n  local_918[0] = 0;\n  local_910 = 0;\n  local_908 = 0;\n  local_900 = 0;\n  local_8f8 = '\0';\n  local_8f0 = 0;\n  local_c0 = (undefined1  [16])0x0;\n  local_e0 = 1;\n  local_d8 = (undefined8 *)0x0;\n  local_d0._8_4_ = 0x3f800000;\n  local_a8 = 0;\n  local_a0 = 0;\n  local_98 = 0;\n  local_954 = *(undefined4 *)(param_3 + 0xc);\n  local_90 = '\0';\n  local_88 = (long *)0x0;\n  local_80 = 0;\n  local_78 = 0;\n  local_70 = (long *)0x0;\n  local_68 = 0;\n  local_60 = 0;\n  local_58 = '\0';\n  local_50 = 0;\n  local_a18[0x12] = &PTR_FUN_003a9e98;\n  local_980 = param_4;\n  local_b0 = local_a18 + 0x12;\n  local_48 = param_2;\n  local_40 = local_a18;\n                    \n  FUN_00162200(local_a18 + 0x12);\n  local_a18[0x12] = &PTR_FUN_003a9fb8;\n  if (local_70 != (long *)0x0) {\n    (**(code **)(*local_70 + 8))();\n  }\n  if ((local_58 != '\0') && (local_68 != 0)) {\n    thunk_FUN_00276d20();\n  }\n  if ((local_90 != '\0') && (local_a0 != 0)) {\n    thunk_FUN_00276d20();\n  }\n  if (local_88 != (long *)0x0) {\n    (**(code **)(*local_88 + 8))();\n  }\n  if ((local_8f8 != '\0') && (local_908 != 0)) {\n    thunk_FUN_00276d20();\n  }\n  FUN_00160530(local_918);\n  puVar9 = local_d8;\n  while (puVar9 != (undefined8 *)0x0) {\n    puVar9 = (undefined8 *)*puVar9;\n    FUN_00276d20();\n  }\n  memset(local_e8,0,local_e0 * 8);\n  auVar11._8_8_ = 0;\n  auVar11._0_8_ = local_d0._8_8_;\n  local_d0 = auVar11 << 0x40;\n  local_d8 = (undefined8 *)0x0;\n  if (local_e8 != local_c0 + 8) {\n    FUN_00276d20();\n  }\n  return;\n}\n\n" (function_definition "void FUN_00149ab0(undefined8 *param_1,undefined8 param_2,long param_3,char param_4)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  undefined ***pppuVar3;\n  undefined ***pppuVar4;\n  undefined8 uVar5;\n  long lVar6;\n  int iVar7;\n  ulong uVar8;\n  undefined8 *puVar9;\n  byte bVar10;\n  undefined1 auVar11 [16];\n  int local_a20;\n  undefined **local_a18 [19];\n  char local_980;\n  undefined8 local_978;\n  undefined8 local_970;\n  undefined8 local_968;\n  int local_960;\n  undefined8 local_95c;\n  undefined4 local_954;\n  undefined4 local_950;\n  undefined8 local_948;\n  undefined8 local_940;\n  undefined8 local_938;\n  undefined8 local_930;\n  undefined8 local_928;\n  undefined4 local_920;\n  undefined4 local_918 [2];\n  undefined8 local_910;\n  long local_908;\n  undefined8 local_900;\n  char local_8f8;\n  undefined8 local_8f0;\n  undefined8 local_8e8 [256];\n  undefined1 *local_e8;\n  long local_e0;\n  undefined8 *local_d8;\n  undefined1 local_d0 [16];\n  undefined1 local_c0 [16];\n  undefined ***local_b0;\n  undefined4 local_a8;\n  long local_a0;\n  undefined8 local_98;\n  char local_90;\n  long *local_88;\n  undefined4 local_80;\n  undefined8 local_78;\n  long *local_70;\n  long local_68;\n  undefined8 local_60;\n  char local_58;\n  undefined8 local_50;\n  undefined8 local_48;\n  undefined ***local_40;\n  \n  bVar10 = 0;\n  if (param_4 == '\0') {\n    local_a20 = *(int *)(param_3 + 4);\n  }\n  else {\n    local_a20 = *(int *)(param_3 + 8);\n  }\n  if (local_a20 == 0) {\n                    \n    FUN_0016cdf0("../../gold/dwp.cc",0x5f1,"add_unit_set");\n  }\n  if (*(int *)(param_3 + 0xc) == 0) {\n    uVar2 = *param_1;\n    uVar5 = gettext("%s: no .debug_abbrev.dwo section found");\n                    \n    FUN_00168f60(uVar5,uVar2);\n  }\n  pppuVar3 = local_a18;\n  do {\n    *pppuVar3 = (undefined **)0x0;\n    pppuVar4 = pppuVar3 + 2;\n    pppuVar3[1] = (undefined **)0x0;\n    pppuVar3 = pppuVar4;\n  } while (local_a18 + 0x12 != pppuVar4);\n  uVar8 = 3;\n  do {\n    while (iVar1 = *(int *)(param_3 + uVar8 * 4), iVar1 != 0) {\n      iVar7 = (int)uVar8;\n      auVar11 = FUN_00149990(param_1,param_2,iVar1,uVar8 & 0xffffffff);\n      uVar8 = uVar8 + 1;\n      local_a18[(long)iVar7 * 2] = auVar11._0_8_;\n      local_a18[(long)iVar7 * 2 + 1] = auVar11._8_8_;\n      if (uVar8 == 9) goto LAB_00149b6a;\n    }\n    uVar8 = uVar8 + 1;\n  } while (uVar8 != 9);\nLAB_00149b6a:\n  local_978 = param_1[1];\n  local_d0 = (undefined1  [16])0x0;\n  local_960 = local_a20;\n  local_e8 = local_c0 + 8;\n  puVar9 = local_8e8;\n  for (lVar6 = 0x100; lVar6 != 0; lVar6 = lVar6 + -1) {\n    *puVar9 = 0;\n    puVar9 = puVar9 + (ulong)bVar10 * -2 + 1;\n  }\n  local_970 = 0;\n  local_968 = 0;\n  local_95c = 0;\n  local_950 = 0;\n  local_948 = 0;\n  local_940 = 0;\n  local_938 = 0;\n  local_930 = 0;\n  local_928 = 0;\n  local_920 = 0;\n  local_918[0] = 0;\n  local_910 = 0;\n  local_908 = 0;\n  local_900 = 0;\n  local_8f8 = '\0';\n  local_8f0 = 0;\n  local_c0 = (undefined1  [16])0x0;\n  local_e0 = 1;\n  local_d8 = (undefined8 *)0x0;\n  local_d0._8_4_ = 0x3f800000;\n  local_a8 = 0;\n  local_a0 = 0;\n  local_98 = 0;\n  local_954 = *(undefined4 *)(param_3 + 0xc);\n  local_90 = '\0';\n  local_88 = (long *)0x0;\n  local_80 = 0;\n  local_78 = 0;\n  local_70 = (long *)0x0;\n  local_68 = 0;\n  local_60 = 0;\n  local_58 = '\0';\n  local_50 = 0;\n  local_a18[0x12] = &PTR_FUN_003a9e98;\n  local_980 = param_4;\n  local_b0 = local_a18 + 0x12;\n  local_48 = param_2;\n  local_40 = local_a18;\n                    \n  FUN_00162200(local_a18 + 0x12);\n  local_a18[0x12] = &PTR_FUN_003a9fb8;\n  if (local_70 != (long *)0x0) {\n    (**(code **)(*local_70 + 8))();\n  }\n  if ((local_58 != '\0') && (local_68 != 0)) {\n    thunk_FUN_00276d20();\n  }\n  if ((local_90 != '\0') && (local_a0 != 0)) {\n    thunk_FUN_00276d20();\n  }\n  if (local_88 != (long *)0x0) {\n    (**(code **)(*local_88 + 8))();\n  }\n  if ((local_8f8 != '\0') && (local_908 != 0)) {\n    thunk_FUN_00276d20();\n  }\n  FUN_00160530(local_918);\n  puVar9 = local_d8;\n  while (puVar9 != (undefined8 *)0x0) {\n    puVar9 = (undefined8 *)*puVar9;\n    FUN_00276d20();\n  }\n  memset(local_e8,0,local_e0 * 8);\n  auVar11._8_8_ = 0;\n  auVar11._0_8_ = local_d0._8_8_;\n  local_d0 = auVar11 << 0x40;\n  local_d8 = (undefined8 *)0x0;\n  if (local_e8 != local_c0 + 8) {\n    FUN_00276d20();\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00149ab0(undefined8 *param_1,undefined8 param_2,long param_3,char param_4)" identifier (parameter_list "(undefined8 *param_1,undefined8 param_2,long param_3,char param_4)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) , (parameter_declaration "char param_4" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined8 uVar2;\n  undefined ***pppuVar3;\n  undefined ***pppuVar4;\n  undefined8 uVar5;\n  long lVar6;\n  int iVar7;\n  ulong uVar8;\n  undefined8 *puVar9;\n  byte bVar10;\n  undefined1 auVar11 [16];\n  int local_a20;\n  undefined **local_a18 [19];\n  char local_980;\n  undefined8 local_978;\n  undefined8 local_970;\n  undefined8 local_968;\n  int local_960;\n  undefined8 local_95c;\n  undefined4 local_954;\n  undefined4 local_950;\n  undefined8 local_948;\n  undefined8 local_940;\n  undefined8 local_938;\n  undefined8 local_930;\n  undefined8 local_928;\n  undefined4 local_920;\n  undefined4 local_918 [2];\n  undefined8 local_910;\n  long local_908;\n  undefined8 local_900;\n  char local_8f8;\n  undefined8 local_8f0;\n  undefined8 local_8e8 [256];\n  undefined1 *local_e8;\n  long local_e0;\n  undefined8 *local_d8;\n  undefined1 local_d0 [16];\n  undefined1 local_c0 [16];\n  undefined ***local_b0;\n  undefined4 local_a8;\n  long local_a0;\n  undefined8 local_98;\n  char local_90;\n  long *local_88;\n  undefined4 local_80;\n  undefined8 local_78;\n  long *local_70;\n  long local_68;\n  undefined8 local_60;\n  char local_58;\n  undefined8 local_50;\n  undefined8 local_48;\n  undefined ***local_40;\n  \n  bVar10 = 0;\n  if (param_4 == '\0') {\n    local_a20 = *(int *)(param_3 + 4);\n  }\n  else {\n    local_a20 = *(int *)(param_3 + 8);\n  }\n  if (local_a20 == 0) {\n                    \n    FUN_0016cdf0("../../gold/dwp.cc",0x5f1,"add_unit_set");\n  }\n  if (*(int *)(param_3 + 0xc) == 0) {\n    uVar2 = *param_1;\n    uVar5 = gettext("%s: no .debug_abbrev.dwo section found");\n                    \n    FUN_00168f60(uVar5,uVar2);\n  }\n  pppuVar3 = local_a18;\n  do {\n    *pppuVar3 = (undefined **)0x0;\n    pppuVar4 = pppuVar3 + 2;\n    pppuVar3[1] = (undefined **)0x0;\n    pppuVar3 = pppuVar4;\n  } while (local_a18 + 0x12 != pppuVar4);\n  uVar8 = 3;\n  do {\n    while (iVar1 = *(int *)(param_3 + uVar8 * 4), iVar1 != 0) {\n      iVar7 = (int)uVar8;\n      auVar11 = FUN_00149990(param_1,param_2,iVar1,uVar8 & 0xffffffff);\n      uVar8 = uVar8 + 1;\n      local_a18[(long)iVar7 * 2] = auVar11._0_8_;\n      local_a18[(long)iVar7 * 2 + 1] = auVar11._8_8_;\n      if (uVar8 == 9) goto LAB_00149b6a;\n    }\n    uVar8 = uVar8 + 1;\n  } while (uVar8 != 9);\nLAB_00149b6a:\n  local_978 = param_1[1];\n  local_d0 = (undefined1  [16])0x0;\n  local_960 = local_a20;\n  local_e8 = local_c0 + 8;\n  puVar9 = local_8e8;\n  for (lVar6 = 0x100; lVar6 != 0; lVar6 = lVar6 + -1) {\n    *puVar9 = 0;\n    puVar9 = puVar9 + (ulong)bVar10 * -2 + 1;\n  }\n  local_970 = 0;\n  local_968 = 0;\n  local_95c = 0;\n  local_950 = 0;\n  local_948 = 0;\n  local_940 = 0;\n  local_938 = 0;\n  local_930 = 0;\n  local_928 = 0;\n  local_920 = 0;\n  local_918[0] = 0;\n  local_910 = 0;\n  local_908 = 0;\n  local_900 = 0;\n  local_8f8 = '\0';\n  local_8f0 = 0;\n  local_c0 = (undefined1  [16])0x0;\n  local_e0 = 1;\n  local_d8 = (undefined8 *)0x0;\n  local_d0._8_4_ = 0x3f800000;\n  local_a8 = 0;\n  local_a0 = 0;\n  local_98 = 0;\n  local_954 = *(undefined4 *)(param_3 + 0xc);\n  local_90 = '\0';\n  local_88 = (long *)0x0;\n  local_80 = 0;\n  local_78 = 0;\n  local_70 = (long *)0x0;\n  local_68 = 0;\n  local_60 = 0;\n  local_58 = '\0';\n  local_50 = 0;\n  local_a18[0x12] = &PTR_FUN_003a9e98;\n  local_980 = param_4;\n  local_b0 = local_a18 + 0x12;\n  local_48 = param_2;\n  local_40 = local_a18;\n                    \n  FUN_00162200(local_a18 + 0x12);\n  local_a18[0x12] = &PTR_FUN_003a9fb8;\n  if (local_70 != (long *)0x0) {\n    (**(code **)(*local_70 + 8))();\n  }\n  if ((local_58 != '\0') && (local_68 != 0)) {\n    thunk_FUN_00276d20();\n  }\n  if ((local_90 != '\0') && (local_a0 != 0)) {\n    thunk_FUN_00276d20();\n  }\n  if (local_88 != (long *)0x0) {\n    (**(code **)(*local_88 + 8))();\n  }\n  if ((local_8f8 != '\0') && (local_908 != 0)) {\n    thunk_FUN_00276d20();\n  }\n  FUN_00160530(local_918);\n  puVar9 = local_d8;\n  while (puVar9 != (undefined8 *)0x0) {\n    puVar9 = (undefined8 *)*puVar9;\n    FUN_00276d20();\n  }\n  memset(local_e8,0,local_e0 * 8);\n  auVar11._8_8_ = 0;\n  auVar11._0_8_ = local_d0._8_8_;\n  local_d0 = auVar11 << 0x40;\n  local_d8 = (undefined8 *)0x0;\n  if (local_e8 != local_c0 + 8) {\n    FUN_00276d20();\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "undefined ***pppuVar3;" type_identifier (pointer_declarator "***pppuVar3" * (pointer_declarator "**pppuVar3" * (pointer_declarator "*pppuVar3" * identifier))) ;) (declaration "undefined ***pppuVar4;" type_identifier (pointer_declarator "***pppuVar4" * (pointer_declarator "**pppuVar4" * (pointer_declarator "*pppuVar4" * identifier))) ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "ulong uVar8;" type_identifier identifier ;) (declaration "undefined8 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "byte bVar10;" type_identifier identifier ;) (declaration "undefined1 auVar11 [16];" type_identifier (array_declarator "auVar11 [16]" identifier [ number_literal ]) ;) (declaration "int local_a20;" primitive_type identifier ;) (declaration "undefined **local_a18 [19];" type_identifier (pointer_declarator "**local_a18 [19]" * (pointer_declarator "*local_a18 [19]" * (array_declarator "local_a18 [19]" identifier [ number_literal ]))) ;) (declaration "char local_980;" primitive_type identifier ;) (declaration "undefined8 local_978;" type_identifier identifier ;) (declaration "undefined8 local_970;" type_identifier identifier ;) (declaration "undefined8 local_968;" type_identifier identifier ;) (declaration "int local_960;" primitive_type identifier ;) (declaration "undefined8 local_95c;" type_identifier identifier ;) (declaration "undefined4 local_954;" type_identifier identifier ;) (declaration "undefined4 local_950;" type_identifier identifier ;) (declaration "undefined8 local_948;" type_identifier identifier ;) (declaration "undefined8 local_940;" type_identifier identifier ;) (declaration "undefined8 local_938;" type_identifier identifier ;) (declaration "undefined8 local_930;" type_identifier identifier ;) (declaration "undefined8 local_928;" type_identifier identifier ;) (declaration "undefined4 local_920;" type_identifier identifier ;) (declaration "undefined4 local_918 [2];" type_identifier (array_declarator "local_918 [2]" identifier [ number_literal ]) ;) (declaration "undefined8 local_910;" type_identifier identifier ;) (declaration "long local_908;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 local_900;" type_identifier identifier ;) (declaration "char local_8f8;" primitive_type identifier ;) (declaration "undefined8 local_8f0;" type_identifier identifier ;) (declaration "undefined8 local_8e8 [256];" type_identifier (array_declarator "local_8e8 [256]" identifier [ number_literal ]) ;) (declaration "undefined1 *local_e8;" type_identifier (pointer_declarator "*local_e8" * identifier) ;) (declaration "long local_e0;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *local_d8;" type_identifier (pointer_declarator "*local_d8" * identifier) ;) (declaration "undefined1 local_d0 [16];" type_identifier (array_declarator "local_d0 [16]" identifier [ number_literal ]) ;) (declaration "undefined1 local_c0 [16];" type_identifier (array_declarator "local_c0 [16]" identifier [ number_literal ]) ;) (declaration "undefined ***local_b0;" type_identifier (pointer_declarator "***local_b0" * (pointer_declarator "**local_b0" * (pointer_declarator "*local_b0" * identifier))) ;) (declaration "undefined4 local_a8;" type_identifier identifier ;) (declaration "long local_a0;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 local_98;" type_identifier identifier ;) (declaration "char local_90;" primitive_type identifier ;) (declaration "long *local_88;" (sized_type_specifier "long" long) (pointer_declarator "*local_88" * identifier) ;) (declaration "undefined4 local_80;" type_identifier identifier ;) (declaration "undefined8 local_78;" type_identifier identifier ;) (declaration "long *local_70;" (sized_type_specifier "long" long) (pointer_declarator "*local_70" * identifier) ;) (declaration "long local_68;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 local_60;" type_identifier identifier ;) (declaration "char local_58;" primitive_type identifier ;) (declaration "undefined8 local_50;" type_identifier identifier ;) (declaration "undefined8 local_48;" type_identifier identifier ;) (declaration "undefined ***local_40;" type_identifier (pointer_declarator "***local_40" * (pointer_declarator "**local_40" * (pointer_declarator "*local_40" * identifier))) ;) (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" identifier = number_literal) ;) (if_statement "if (param_4 == '\0') {\n    local_a20 = *(int *)(param_3 + 4);\n  }\n  else {\n    local_a20 = *(int *)(param_3 + 8);\n  }" if (parenthesized_expression "(param_4 == '\0')" ( (binary_expression "param_4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    local_a20 = *(int *)(param_3 + 4);\n  }" { (expression_statement "local_a20 = *(int *)(param_3 + 4);" (assignment_expression "local_a20 = *(int *)(param_3 + 4)" identifier = (pointer_expression "*(int *)(param_3 + 4)" * (cast_expression "(int *)(param_3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    local_a20 = *(int *)(param_3 + 8);\n  }" else (compound_statement "{\n    local_a20 = *(int *)(param_3 + 8);\n  }" { (expression_statement "local_a20 = *(int *)(param_3 + 8);" (assignment_expression "local_a20 = *(int *)(param_3 + 8)" identifier = (pointer_expression "*(int *)(param_3 + 8)" * (cast_expression "(int *)(param_3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 8)" ( (binary_expression "param_3 + 8" identifier + number_literal) ))))) ;) }))) (if_statement "if (local_a20 == 0) {\n                    \n    FUN_0016cdf0("../../gold/dwp.cc",0x5f1,"add_unit_set");\n  }" if (parenthesized_expression "(local_a20 == 0)" ( (binary_expression "local_a20 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    FUN_0016cdf0("../../gold/dwp.cc",0x5f1,"add_unit_set");\n  }" { (expression_statement "FUN_0016cdf0("../../gold/dwp.cc",0x5f1,"add_unit_set");" (call_expression "FUN_0016cdf0("../../gold/dwp.cc",0x5f1,"add_unit_set")" identifier (argument_list "("../../gold/dwp.cc",0x5f1,"add_unit_set")" ( (string_literal ""../../gold/dwp.cc"" " string_content ") , number_literal , (string_literal ""add_unit_set"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_3 + 0xc) == 0) {\n    uVar2 = *param_1;\n    uVar5 = gettext("%s: no .debug_abbrev.dwo section found");\n                    \n    FUN_00168f60(uVar5,uVar2);\n  }" if (parenthesized_expression "(*(int *)(param_3 + 0xc) == 0)" ( (binary_expression "*(int *)(param_3 + 0xc) == 0" (pointer_expression "*(int *)(param_3 + 0xc)" * (cast_expression "(int *)(param_3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xc)" ( (binary_expression "param_3 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    uVar2 = *param_1;\n    uVar5 = gettext("%s: no .debug_abbrev.dwo section found");\n                    \n    FUN_00168f60(uVar5,uVar2);\n  }" { (expression_statement "uVar2 = *param_1;" (assignment_expression "uVar2 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar5 = gettext("%s: no .debug_abbrev.dwo section found");" (assignment_expression "uVar5 = gettext("%s: no .debug_abbrev.dwo section found")" identifier = (call_expression "gettext("%s: no .debug_abbrev.dwo section found")" identifier (argument_list "("%s: no .debug_abbrev.dwo section found")" ( (string_literal ""%s: no .debug_abbrev.dwo section found"" " string_content ") )))) ;) (expression_statement "FUN_00168f60(uVar5,uVar2);" (call_expression "FUN_00168f60(uVar5,uVar2)" identifier (argument_list "(uVar5,uVar2)" ( identifier , identifier ))) ;) })) (expression_statement "pppuVar3 = local_a18;" (assignment_expression "pppuVar3 = local_a18" identifier = identifier) ;) (do_statement "do {\n    *pppuVar3 = (undefined **)0x0;\n    pppuVar4 = pppuVar3 + 2;\n    pppuVar3[1] = (undefined **)0x0;\n    pppuVar3 = pppuVar4;\n  } while (local_a18 + 0x12 != pppuVar4);" do (compound_statement "{\n    *pppuVar3 = (undefined **)0x0;\n    pppuVar4 = pppuVar3 + 2;\n    pppuVar3[1] = (undefined **)0x0;\n    pppuVar3 = pppuVar4;\n  }" { (expression_statement "*pppuVar3 = (undefined **)0x0;" (assignment_expression "*pppuVar3 = (undefined **)0x0" (pointer_expression "*pppuVar3" * identifier) = (cast_expression "(undefined **)0x0" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pppuVar4 = pppuVar3 + 2;" (assignment_expression "pppuVar4 = pppuVar3 + 2" identifier = (binary_expression "pppuVar3 + 2" identifier + number_literal)) ;) (expression_statement "pppuVar3[1] = (undefined **)0x0;" (assignment_expression "pppuVar3[1] = (undefined **)0x0" (subscript_expression "pppuVar3[1]" identifier [ number_literal ]) = (cast_expression "(undefined **)0x0" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pppuVar3 = pppuVar4;" (assignment_expression "pppuVar3 = pppuVar4" identifier = identifier) ;) }) while (parenthesized_expression "(local_a18 + 0x12 != pppuVar4)" ( (binary_expression "local_a18 + 0x12 != pppuVar4" (binary_expression "local_a18 + 0x12" identifier + number_literal) != identifier) )) ;) (expression_statement "uVar8 = 3;" (assignment_expression "uVar8 = 3" identifier = number_literal) ;) (do_statement "do {\n    while (iVar1 = *(int *)(param_3 + uVar8 * 4), iVar1 != 0) {\n      iVar7 = (int)uVar8;\n      auVar11 = FUN_00149990(param_1,param_2,iVar1,uVar8 & 0xffffffff);\n      uVar8 = uVar8 + 1;\n      local_a18[(long)iVar7 * 2] = auVar11._0_8_;\n      local_a18[(long)iVar7 * 2 + 1] = auVar11._8_8_;\n      if (uVar8 == 9) goto LAB_00149b6a;\n    }\n    uVar8 = uVar8 + 1;\n  } while (uVar8 != 9);" do (compound_statement "{\n    while (iVar1 = *(int *)(param_3 + uVar8 * 4), iVar1 != 0) {\n      iVar7 = (int)uVar8;\n      auVar11 = FUN_00149990(param_1,param_2,iVar1,uVar8 & 0xffffffff);\n      uVar8 = uVar8 + 1;\n      local_a18[(long)iVar7 * 2] = auVar11._0_8_;\n      local_a18[(long)iVar7 * 2 + 1] = auVar11._8_8_;\n      if (uVar8 == 9) goto LAB_00149b6a;\n    }\n    uVar8 = uVar8 + 1;\n  }" { (while_statement "while (iVar1 = *(int *)(param_3 + uVar8 * 4), iVar1 != 0) {\n      iVar7 = (int)uVar8;\n      auVar11 = FUN_00149990(param_1,param_2,iVar1,uVar8 & 0xffffffff);\n      uVar8 = uVar8 + 1;\n      local_a18[(long)iVar7 * 2] = auVar11._0_8_;\n      local_a18[(long)iVar7 * 2 + 1] = auVar11._8_8_;\n      if (uVar8 == 9) goto LAB_00149b6a;\n    }" while (parenthesized_expression "(iVar1 = *(int *)(param_3 + uVar8 * 4), iVar1 != 0)" ( (comma_expression "iVar1 = *(int *)(param_3 + uVar8 * 4), iVar1 != 0" (assignment_expression "iVar1 = *(int *)(param_3 + uVar8 * 4)" identifier = (pointer_expression "*(int *)(param_3 + uVar8 * 4)" * (cast_expression "(int *)(param_3 + uVar8 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + uVar8 * 4)" ( (binary_expression "param_3 + uVar8 * 4" identifier + (binary_expression "uVar8 * 4" identifier * number_literal)) ))))) , (binary_expression "iVar1 != 0" identifier != number_literal)) )) (compound_statement "{\n      iVar7 = (int)uVar8;\n      auVar11 = FUN_00149990(param_1,param_2,iVar1,uVar8 & 0xffffffff);\n      uVar8 = uVar8 + 1;\n      local_a18[(long)iVar7 * 2] = auVar11._0_8_;\n      local_a18[(long)iVar7 * 2 + 1] = auVar11._8_8_;\n      if (uVar8 == 9) goto LAB_00149b6a;\n    }" { (expression_statement "iVar7 = (int)uVar8;" (assignment_expression "iVar7 = (int)uVar8" identifier = (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "auVar11 = FUN_00149990(param_1,param_2,iVar1,uVar8 & 0xffffffff);" (assignment_expression "auVar11 = FUN_00149990(param_1,param_2,iVar1,uVar8 & 0xffffffff)" identifier = (call_expression "FUN_00149990(param_1,param_2,iVar1,uVar8 & 0xffffffff)" identifier (argument_list "(param_1,param_2,iVar1,uVar8 & 0xffffffff)" ( identifier , identifier , identifier , (binary_expression "uVar8 & 0xffffffff" identifier & number_literal) )))) ;) (expression_statement "uVar8 = uVar8 + 1;" (assignment_expression "uVar8 = uVar8 + 1" identifier = (binary_expression "uVar8 + 1" identifier + number_literal)) ;) (expression_statement "local_a18[(long)iVar7 * 2] = auVar11._0_8_;" (assignment_expression "local_a18[(long)iVar7 * 2] = auVar11._0_8_" (subscript_expression "local_a18[(long)iVar7 * 2]" identifier [ (binary_expression "(long)iVar7 * 2" (cast_expression "(long)iVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal) ]) = (field_expression "auVar11._0_8_" identifier . field_identifier)) ;) (expression_statement "local_a18[(long)iVar7 * 2 + 1] = auVar11._8_8_;" (assignment_expression "local_a18[(long)iVar7 * 2 + 1] = auVar11._8_8_" (subscript_expression "local_a18[(long)iVar7 * 2 + 1]" identifier [ (binary_expression "(long)iVar7 * 2 + 1" (binary_expression "(long)iVar7 * 2" (cast_expression "(long)iVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal) + number_literal) ]) = (field_expression "auVar11._8_8_" identifier . field_identifier)) ;) (if_statement "if (uVar8 == 9) goto LAB_00149b6a;" if (parenthesized_expression "(uVar8 == 9)" ( (binary_expression "uVar8 == 9" identifier == number_literal) )) (goto_statement "goto LAB_00149b6a;" goto statement_identifier ;)) })) (expression_statement "uVar8 = uVar8 + 1;" (assignment_expression "uVar8 = uVar8 + 1" identifier = (binary_expression "uVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar8 != 9)" ( (binary_expression "uVar8 != 9" identifier != number_literal) )) ;) (labeled_statement "LAB_00149b6a:\n  local_978 = param_1[1];" statement_identifier : (expression_statement "local_978 = param_1[1];" (assignment_expression "local_978 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;)) (expression_statement "local_d0 = (undefined1  [16])0x0;" (assignment_expression "local_d0 = (undefined1  [16])0x0" identifier = (cast_expression "(undefined1  [16])0x0" ( (type_descriptor "undefined1  [16]" type_identifier (abstract_array_declarator "[16]" [ number_literal ])) ) number_literal)) ;) (expression_statement "local_960 = local_a20;" (assignment_expression "local_960 = local_a20" identifier = identifier) ;) (expression_statement "local_e8 = local_c0 + 8;" (assignment_expression "local_e8 = local_c0 + 8" identifier = (binary_expression "local_c0 + 8" identifier + number_literal)) ;) (expression_statement "puVar9 = local_8e8;" (assignment_expression "puVar9 = local_8e8" identifier = identifier) ;) (for_statement "for (lVar6 = 0x100; lVar6 != 0; lVar6 = lVar6 + -1) {\n    *puVar9 = 0;\n    puVar9 = puVar9 + (ulong)bVar10 * -2 + 1;\n  }" for ( (assignment_expression "lVar6 = 0x100" identifier = number_literal) ; (binary_expression "lVar6 != 0" identifier != number_literal) ; (assignment_expression "lVar6 = lVar6 + -1" identifier = (binary_expression "lVar6 + -1" identifier + number_literal)) ) (compound_statement "{\n    *puVar9 = 0;\n    puVar9 = puVar9 + (ulong)bVar10 * -2 + 1;\n  }" { (expression_statement "*puVar9 = 0;" (assignment_expression "*puVar9 = 0" (pointer_expression "*puVar9" * identifier) = number_literal) ;) (expression_statement "puVar9 = puVar9 + (ulong)bVar10 * -2 + 1;" (assignment_expression "puVar9 = puVar9 + (ulong)bVar10 * -2 + 1" identifier = (binary_expression "puVar9 + (ulong)bVar10 * -2 + 1" (binary_expression "puVar9 + (ulong)bVar10 * -2" identifier + (binary_expression "(ulong)bVar10 * -2" (cast_expression "(ulong)bVar10" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "local_970 = 0;" (assignment_expression "local_970 = 0" identifier = number_literal) ;) (expression_statement "local_968 = 0;" (assignment_expression "local_968 = 0" identifier = number_literal) ;) (expression_statement "local_95c = 0;" (assignment_expression "local_95c = 0" identifier = number_literal) ;) (expression_statement "local_950 = 0;" (assignment_expression "local_950 = 0" identifier = number_literal) ;) (expression_statement "local_948 = 0;" (assignment_expression "local_948 = 0" identifier = number_literal) ;) (expression_statement "local_940 = 0;" (assignment_expression "local_940 = 0" identifier = number_literal) ;) (expression_statement "local_938 = 0;" (assignment_expression "local_938 = 0" identifier = number_literal) ;) (expression_statement "local_930 = 0;" (assignment_expression "local_930 = 0" identifier = number_literal) ;) (expression_statement "local_928 = 0;" (assignment_expression "local_928 = 0" identifier = number_literal) ;) (expression_statement "local_920 = 0;" (assignment_expression "local_920 = 0" identifier = number_literal) ;) (expression_statement "local_918[0] = 0;" (assignment_expression "local_918[0] = 0" (subscript_expression "local_918[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_910 = 0;" (assignment_expression "local_910 = 0" identifier = number_literal) ;) (expression_statement "local_908 = 0;" (assignment_expression "local_908 = 0" identifier = number_literal) ;) (expression_statement "local_900 = 0;" (assignment_expression "local_900 = 0" identifier = number_literal) ;) (expression_statement "local_8f8 = '\0';" (assignment_expression "local_8f8 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_8f0 = 0;" (assignment_expression "local_8f0 = 0" identifier = number_literal) ;) (expression_statement "local_c0 = (undefined1  [16])0x0;" (assignment_expression "local_c0 = (undefined1  [16])0x0" identifier = (cast_expression "(undefined1  [16])0x0" ( (type_descriptor "undefined1  [16]" type_identifier (abstract_array_declarator "[16]" [ number_literal ])) ) number_literal)) ;) (expression_statement "local_e0 = 1;" (assignment_expression "local_e0 = 1" identifier = number_literal) ;) (expression_statement "local_d8 = (undefined8 *)0x0;" (assignment_expression "local_d8 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_d0._8_4_ = 0x3f800000;" (assignment_expression "local_d0._8_4_ = 0x3f800000" (field_expression "local_d0._8_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "local_a8 = 0;" (assignment_expression "local_a8 = 0" identifier = number_literal) ;) (expression_statement "local_a0 = 0;" (assignment_expression "local_a0 = 0" identifier = number_literal) ;) (expression_statement "local_98 = 0;" (assignment_expression "local_98 = 0" identifier = number_literal) ;) (expression_statement "local_954 = *(undefined4 *)(param_3 + 0xc);" (assignment_expression "local_954 = *(undefined4 *)(param_3 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(param_3 + 0xc)" * (cast_expression "(undefined4 *)(param_3 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xc)" ( (binary_expression "param_3 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "local_90 = '\0';" (assignment_expression "local_90 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_88 = (long *)0x0;" (assignment_expression "local_88 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_80 = 0;" (assignment_expression "local_80 = 0" identifier = number_literal) ;) (expression_statement "local_78 = 0;" (assignment_expression "local_78 = 0" identifier = number_literal) ;) (expression_statement "local_70 = (long *)0x0;" (assignment_expression "local_70 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" identifier = number_literal) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "local_58 = '\0';" (assignment_expression "local_58 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "local_a18[0x12] = &PTR_FUN_003a9e98;" (assignment_expression "local_a18[0x12] = &PTR_FUN_003a9e98" (subscript_expression "local_a18[0x12]" identifier [ number_literal ]) = (pointer_expression "&PTR_FUN_003a9e98" & identifier)) ;) (expression_statement "local_980 = param_4;" (assignment_expression "local_980 = param_4" identifier = identifier) ;) (expression_statement "local_b0 = local_a18 + 0x12;" (assignment_expression "local_b0 = local_a18 + 0x12" identifier = (binary_expression "local_a18 + 0x12" identifier + number_literal)) ;) (expression_statement "local_48 = param_2;" (assignment_expression "local_48 = param_2" identifier = identifier) ;) (expression_statement "local_40 = local_a18;" (assignment_expression "local_40 = local_a18" identifier = identifier) ;) (expression_statement "FUN_00162200(local_a18 + 0x12);" (call_expression "FUN_00162200(local_a18 + 0x12)" identifier (argument_list "(local_a18 + 0x12)" ( (binary_expression "local_a18 + 0x12" identifier + number_literal) ))) ;) (expression_statement "local_a18[0x12] = &PTR_FUN_003a9fb8;" (assignment_expression "local_a18[0x12] = &PTR_FUN_003a9fb8" (subscript_expression "local_a18[0x12]" identifier [ number_literal ]) = (pointer_expression "&PTR_FUN_003a9fb8" & identifier)) ;) (if_statement "if (local_70 != (long *)0x0) {\n    (**(code **)(*local_70 + 8))();\n  }" if (parenthesized_expression "(local_70 != (long *)0x0)" ( (binary_expression "local_70 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(*local_70 + 8))();\n  }" { (expression_statement "(**(code **)(*local_70 + 8))();" (call_expression "(**(code **)(*local_70 + 8))()" (parenthesized_expression "(**(code **)(*local_70 + 8))" ( (pointer_expression "**(code **)(*local_70 + 8)" * (pointer_expression "*(code **)(*local_70 + 8)" * (cast_expression "(code **)(*local_70 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_70 + 8)" ( (binary_expression "*local_70 + 8" (pointer_expression "*local_70" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (if_statement "if ((local_58 != '\0') && (local_68 != 0)) {\n    thunk_FUN_00276d20();\n  }" if (parenthesized_expression "((local_58 != '\0') && (local_68 != 0))" ( (binary_expression "(local_58 != '\0') && (local_68 != 0)" (parenthesized_expression "(local_58 != '\0')" ( (binary_expression "local_58 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(local_68 != 0)" ( (binary_expression "local_68 != 0" identifier != number_literal) ))) )) (compound_statement "{\n    thunk_FUN_00276d20();\n  }" { (expression_statement "thunk_FUN_00276d20();" (call_expression "thunk_FUN_00276d20()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if ((local_90 != '\0') && (local_a0 != 0)) {\n    thunk_FUN_00276d20();\n  }" if (parenthesized_expression "((local_90 != '\0') && (local_a0 != 0))" ( (binary_expression "(local_90 != '\0') && (local_a0 != 0)" (parenthesized_expression "(local_90 != '\0')" ( (binary_expression "local_90 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(local_a0 != 0)" ( (binary_expression "local_a0 != 0" identifier != number_literal) ))) )) (compound_statement "{\n    thunk_FUN_00276d20();\n  }" { (expression_statement "thunk_FUN_00276d20();" (call_expression "thunk_FUN_00276d20()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (local_88 != (long *)0x0) {\n    (**(code **)(*local_88 + 8))();\n  }" if (parenthesized_expression "(local_88 != (long *)0x0)" ( (binary_expression "local_88 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(*local_88 + 8))();\n  }" { (expression_statement "(**(code **)(*local_88 + 8))();" (call_expression "(**(code **)(*local_88 + 8))()" (parenthesized_expression "(**(code **)(*local_88 + 8))" ( (pointer_expression "**(code **)(*local_88 + 8)" * (pointer_expression "*(code **)(*local_88 + 8)" * (cast_expression "(code **)(*local_88 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_88 + 8)" ( (binary_expression "*local_88 + 8" (pointer_expression "*local_88" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (if_statement "if ((local_8f8 != '\0') && (local_908 != 0)) {\n    thunk_FUN_00276d20();\n  }" if (parenthesized_expression "((local_8f8 != '\0') && (local_908 != 0))" ( (binary_expression "(local_8f8 != '\0') && (local_908 != 0)" (parenthesized_expression "(local_8f8 != '\0')" ( (binary_expression "local_8f8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(local_908 != 0)" ( (binary_expression "local_908 != 0" identifier != number_literal) ))) )) (compound_statement "{\n    thunk_FUN_00276d20();\n  }" { (expression_statement "thunk_FUN_00276d20();" (call_expression "thunk_FUN_00276d20()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_00160530(local_918);" (call_expression "FUN_00160530(local_918)" identifier (argument_list "(local_918)" ( identifier ))) ;) (expression_statement "puVar9 = local_d8;" (assignment_expression "puVar9 = local_d8" identifier = identifier) ;) (while_statement "while (puVar9 != (undefined8 *)0x0) {\n    puVar9 = (undefined8 *)*puVar9;\n    FUN_00276d20();\n  }" while (parenthesized_expression "(puVar9 != (undefined8 *)0x0)" ( (binary_expression "puVar9 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar9 = (undefined8 *)*puVar9;\n    FUN_00276d20();\n  }" { (expression_statement "puVar9 = (undefined8 *)*puVar9;" (assignment_expression "puVar9 = (undefined8 *)*puVar9" identifier = (cast_expression "(undefined8 *)*puVar9" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar9" * identifier))) ;) (expression_statement "FUN_00276d20();" (call_expression "FUN_00276d20()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "memset(local_e8,0,local_e0 * 8);" (call_expression "memset(local_e8,0,local_e0 * 8)" identifier (argument_list "(local_e8,0,local_e0 * 8)" ( identifier , number_literal , (binary_expression "local_e0 * 8" identifier * number_literal) ))) ;) (expression_statement "auVar11._8_8_ = 0;" (assignment_expression "auVar11._8_8_ = 0" (field_expression "auVar11._8_8_" identifier . field_identifier) = number_literal) ;) (expression_statement "auVar11._0_8_ = local_d0._8_8_;" (assignment_expression "auVar11._0_8_ = local_d0._8_8_" (field_expression "auVar11._0_8_" identifier . field_identifier) = (field_expression "local_d0._8_8_" identifier . field_identifier)) ;) (expression_statement "local_d0 = auVar11 << 0x40;" (assignment_expression "local_d0 = auVar11 << 0x40" identifier = (binary_expression "auVar11 << 0x40" identifier << number_literal)) ;) (expression_statement "local_d8 = (undefined8 *)0x0;" (assignment_expression "local_d8 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (local_e8 != local_c0 + 8) {\n    FUN_00276d20();\n  }" if (parenthesized_expression "(local_e8 != local_c0 + 8)" ( (binary_expression "local_e8 != local_c0 + 8" identifier != (binary_expression "local_c0 + 8" identifier + number_literal)) )) (compound_statement "{\n    FUN_00276d20();\n  }" { (expression_statement "FUN_00276d20();" (call_expression "FUN_00276d20()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (array_declarator IDENT [ LIT ]))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) != IDENT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) , (binary_expression IDENT != LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , (binary_expression IDENT & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) * LIT) ]) = (field_expression IDENT . field_identifier)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) * LIT) + LIT) ]) = (field_expression IDENT . field_identifier)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_array_declarator [ LIT ])) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (for_statement for ( (assignment_expression IDENT = LIT) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_array_declarator [ LIT ])) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_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 = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression IDENT * LIT) ))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (field_expression IDENT . field_identifier)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT << LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (return_statement return ;) })))
(function_definition "void FUN_00149ab0(undefined8 *param_1,undefined8 param_2,long param_3,char param_4)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  undefined ***pppuVar3;\n  undefined ***pppuVar4;\n  undefined8 uVar5;\n  long lVar6;\n  int iVar7;\n  ulong uVar8;\n  undefined8 *puVar9;\n  byte bVar10;\n  undefined1 auVar11 [16];\n  int local_a20;\n  undefined **local_a18 [19];\n  char local_980;\n  undefined8 local_978;\n  undefined8 local_970;\n  undefined8 local_968;\n  int local_960;\n  undefined8 local_95c;\n  undefined4 local_954;\n  undefined4 local_950;\n  undefined8 local_948;\n  undefined8 local_940;\n  undefined8 local_938;\n  undefined8 local_930;\n  undefined8 local_928;\n  undefined4 local_920;\n  undefined4 local_918 [2];\n  undefined8 local_910;\n  long local_908;\n  undefined8 local_900;\n  char local_8f8;\n  undefined8 local_8f0;\n  undefined8 local_8e8 [256];\n  undefined1 *local_e8;\n  long local_e0;\n  undefined8 *local_d8;\n  undefined1 local_d0 [16];\n  undefined1 local_c0 [16];\n  undefined ***local_b0;\n  undefined4 local_a8;\n  long local_a0;\n  undefined8 local_98;\n  char local_90;\n  long *local_88;\n  undefined4 local_80;\n  undefined8 local_78;\n  long *local_70;\n  long local_68;\n  undefined8 local_60;\n  char local_58;\n  undefined8 local_50;\n  undefined8 local_48;\n  undefined ***local_40;\n  \n  bVar10 = 0;\n  if (param_4 == '\0') {\n    local_a20 = *(int *)(param_3 + 4);\n  }\n  else {\n    local_a20 = *(int *)(param_3 + 8);\n  }\n  if (local_a20 == 0) {\n                    \n    FUN_0016cdf0("../../gold/dwp.cc",0x5f1,"add_unit_set");\n  }\n  if (*(int *)(param_3 + 0xc) == 0) {\n    uVar2 = *param_1;\n    uVar5 = gettext("%s: no .debug_abbrev.dwo section found");\n                    \n    FUN_00168f60(uVar5,uVar2);\n  }\n  pppuVar3 = local_a18;\n  do {\n    *pppuVar3 = (undefined **)0x0;\n    pppuVar4 = pppuVar3 + 2;\n    pppuVar3[1] = (undefined **)0x0;\n    pppuVar3 = pppuVar4;\n  } while (local_a18 + 0x12 != pppuVar4);\n  uVar8 = 3;\n  do {\n    while (iVar1 = *(int *)(param_3 + uVar8 * 4), iVar1 != 0) {\n      iVar7 = (int)uVar8;\n      auVar11 = FUN_00149990(param_1,param_2,iVar1,uVar8 & 0xffffffff);\n      uVar8 = uVar8 + 1;\n      local_a18[(long)iVar7 * 2] = auVar11._0_8_;\n      local_a18[(long)iVar7 * 2 + 1] = auVar11._8_8_;\n      if (uVar8 == 9) goto LAB_00149b6a;\n    }\n    uVar8 = uVar8 + 1;\n  } while (uVar8 != 9);\nLAB_00149b6a:\n  local_978 = param_1[1];\n  local_d0 = (undefined1  [16])0x0;\n  local_960 = local_a20;\n  local_e8 = local_c0 + 8;\n  puVar9 = local_8e8;\n  for (lVar6 = 0x100; lVar6 != 0; lVar6 = lVar6 + -1) {\n    *puVar9 = 0;\n    puVar9 = puVar9 + (ulong)bVar10 * -2 + 1;\n  }\n  local_970 = 0;\n  local_968 = 0;\n  local_95c = 0;\n  local_950 = 0;\n  local_948 = 0;\n  local_940 = 0;\n  local_938 = 0;\n  local_930 = 0;\n  local_928 = 0;\n  local_920 = 0;\n  local_918[0] = 0;\n  local_910 = 0;\n  local_908 = 0;\n  local_900 = 0;\n  local_8f8 = '\0';\n  local_8f0 = 0;\n  local_c0 = (undefined1  [16])0x0;\n  local_e0 = 1;\n  local_d8 = (undefined8 *)0x0;\n  local_d0._8_4_ = 0x3f800000;\n  local_a8 = 0;\n  local_a0 = 0;\n  local_98 = 0;\n  local_954 = *(undefined4 *)(param_3 + 0xc);\n  local_90 = '\0';\n  local_88 = (long *)0x0;\n  local_80 = 0;\n  local_78 = 0;\n  local_70 = (long *)0x0;\n  local_68 = 0;\n  local_60 = 0;\n  local_58 = '\0';\n  local_50 = 0;\n  local_a18[0x12] = &PTR_FUN_003a9e98;\n  local_980 = param_4;\n  local_b0 = local_a18 + 0x12;\n  local_48 = param_2;\n  local_40 = local_a18;\n                    \n  FUN_00162200(local_a18 + 0x12);\n  local_a18[0x12] = &PTR_FUN_003a9fb8;\n  if (local_70 != (long *)0x0) {\n    (**(code **)(*local_70 + 8))();\n  }\n  if ((local_58 != '\0') && (local_68 != 0)) {\n    thunk_FUN_00276d20();\n  }\n  if ((local_90 != '\0') && (local_a0 != 0)) {\n    thunk_FUN_00276d20();\n  }\n  if (local_88 != (long *)0x0) {\n    (**(code **)(*local_88 + 8))();\n  }\n  if ((local_8f8 != '\0') && (local_908 != 0)) {\n    thunk_FUN_00276d20();\n  }\n  FUN_00160530(local_918);\n  puVar9 = local_d8;\n  while (puVar9 != (undefined8 *)0x0) {\n    puVar9 = (undefined8 *)*puVar9;\n    FUN_00276d20();\n  }\n  memset(local_e8,0,local_e0 * 8);\n  auVar11._8_8_ = 0;\n  auVar11._0_8_ = local_d0._8_8_;\n  local_d0 = auVar11 << 0x40;\n  local_d8 = (undefined8 *)0x0;\n  if (local_e8 != local_c0 + 8) {\n    FUN_00276d20();\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00149ab0(undefined8 *param_1,undefined8 param_2,long param_3,char param_4)" (identifier "FUN_00149ab0") (parameter_list "(undefined8 *param_1,undefined8 param_2,long param_3,char param_4)" (( "(") (parameter_declaration "undefined8 *param_1" (type_identifier "undefined8") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined8 param_2" (type_identifier "undefined8") (identifier "param_2")) (, ",") (parameter_declaration "long param_3" (sized_type_specifier "long" (long "long")) (identifier "param_3")) (, ",") (parameter_declaration "char param_4" (primitive_type "char") (identifier "param_4")) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined8 uVar2;\n  undefined ***pppuVar3;\n  undefined ***pppuVar4;\n  undefined8 uVar5;\n  long lVar6;\n  int iVar7;\n  ulong uVar8;\n  undefined8 *puVar9;\n  byte bVar10;\n  undefined1 auVar11 [16];\n  int local_a20;\n  undefined **local_a18 [19];\n  char local_980;\n  undefined8 local_978;\n  undefined8 local_970;\n  undefined8 local_968;\n  int local_960;\n  undefined8 local_95c;\n  undefined4 local_954;\n  undefined4 local_950;\n  undefined8 local_948;\n  undefined8 local_940;\n  undefined8 local_938;\n  undefined8 local_930;\n  undefined8 local_928;\n  undefined4 local_920;\n  undefined4 local_918 [2];\n  undefined8 local_910;\n  long local_908;\n  undefined8 local_900;\n  char local_8f8;\n  undefined8 local_8f0;\n  undefined8 local_8e8 [256];\n  undefined1 *local_e8;\n  long local_e0;\n  undefined8 *local_d8;\n  undefined1 local_d0 [16];\n  undefined1 local_c0 [16];\n  undefined ***local_b0;\n  undefined4 local_a8;\n  long local_a0;\n  undefined8 local_98;\n  char local_90;\n  long *local_88;\n  undefined4 local_80;\n  undefined8 local_78;\n  long *local_70;\n  long local_68;\n  undefined8 local_60;\n  char local_58;\n  undefined8 local_50;\n  undefined8 local_48;\n  undefined ***local_40;\n  \n  bVar10 = 0;\n  if (param_4 == '\0') {\n    local_a20 = *(int *)(param_3 + 4);\n  }\n  else {\n    local_a20 = *(int *)(param_3 + 8);\n  }\n  if (local_a20 == 0) {\n                    \n    FUN_0016cdf0("../../gold/dwp.cc",0x5f1,"add_unit_set");\n  }\n  if (*(int *)(param_3 + 0xc) == 0) {\n    uVar2 = *param_1;\n    uVar5 = gettext("%s: no .debug_abbrev.dwo section found");\n                    \n    FUN_00168f60(uVar5,uVar2);\n  }\n  pppuVar3 = local_a18;\n  do {\n    *pppuVar3 = (undefined **)0x0;\n    pppuVar4 = pppuVar3 + 2;\n    pppuVar3[1] = (undefined **)0x0;\n    pppuVar3 = pppuVar4;\n  } while (local_a18 + 0x12 != pppuVar4);\n  uVar8 = 3;\n  do {\n    while (iVar1 = *(int *)(param_3 + uVar8 * 4), iVar1 != 0) {\n      iVar7 = (int)uVar8;\n      auVar11 = FUN_00149990(param_1,param_2,iVar1,uVar8 & 0xffffffff);\n      uVar8 = uVar8 + 1;\n      local_a18[(long)iVar7 * 2] = auVar11._0_8_;\n      local_a18[(long)iVar7 * 2 + 1] = auVar11._8_8_;\n      if (uVar8 == 9) goto LAB_00149b6a;\n    }\n    uVar8 = uVar8 + 1;\n  } while (uVar8 != 9);\nLAB_00149b6a:\n  local_978 = param_1[1];\n  local_d0 = (undefined1  [16])0x0;\n  local_960 = local_a20;\n  local_e8 = local_c0 + 8;\n  puVar9 = local_8e8;\n  for (lVar6 = 0x100; lVar6 != 0; lVar6 = lVar6 + -1) {\n    *puVar9 = 0;\n    puVar9 = puVar9 + (ulong)bVar10 * -2 + 1;\n  }\n  local_970 = 0;\n  local_968 = 0;\n  local_95c = 0;\n  local_950 = 0;\n  local_948 = 0;\n  local_940 = 0;\n  local_938 = 0;\n  local_930 = 0;\n  local_928 = 0;\n  local_920 = 0;\n  local_918[0] = 0;\n  local_910 = 0;\n  local_908 = 0;\n  local_900 = 0;\n  local_8f8 = '\0';\n  local_8f0 = 0;\n  local_c0 = (undefined1  [16])0x0;\n  local_e0 = 1;\n  local_d8 = (undefined8 *)0x0;\n  local_d0._8_4_ = 0x3f800000;\n  local_a8 = 0;\n  local_a0 = 0;\n  local_98 = 0;\n  local_954 = *(undefined4 *)(param_3 + 0xc);\n  local_90 = '\0';\n  local_88 = (long *)0x0;\n  local_80 = 0;\n  local_78 = 0;\n  local_70 = (long *)0x0;\n  local_68 = 0;\n  local_60 = 0;\n  local_58 = '\0';\n  local_50 = 0;\n  local_a18[0x12] = &PTR_FUN_003a9e98;\n  local_980 = param_4;\n  local_b0 = local_a18 + 0x12;\n  local_48 = param_2;\n  local_40 = local_a18;\n                    \n  FUN_00162200(local_a18 + 0x12);\n  local_a18[0x12] = &PTR_FUN_003a9fb8;\n  if (local_70 != (long *)0x0) {\n    (**(code **)(*local_70 + 8))();\n  }\n  if ((local_58 != '\0') && (local_68 != 0)) {\n    thunk_FUN_00276d20();\n  }\n  if ((local_90 != '\0') && (local_a0 != 0)) {\n    thunk_FUN_00276d20();\n  }\n  if (local_88 != (long *)0x0) {\n    (**(code **)(*local_88 + 8))();\n  }\n  if ((local_8f8 != '\0') && (local_908 != 0)) {\n    thunk_FUN_00276d20();\n  }\n  FUN_00160530(local_918);\n  puVar9 = local_d8;\n  while (puVar9 != (undefined8 *)0x0) {\n    puVar9 = (undefined8 *)*puVar9;\n    FUN_00276d20();\n  }\n  memset(local_e8,0,local_e0 * 8);\n  auVar11._8_8_ = 0;\n  auVar11._0_8_ = local_d0._8_8_;\n  local_d0 = auVar11 << 0x40;\n  local_d8 = (undefined8 *)0x0;\n  if (local_e8 != local_c0 + 8) {\n    FUN_00276d20();\n  }\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined8 uVar2;" (type_identifier "undefined8") (identifier "uVar2") (; ";")) (declaration "undefined ***pppuVar3;" (type_identifier "undefined") (pointer_declarator "***pppuVar3" (* "*") (pointer_declarator "**pppuVar3" (* "*") (pointer_declarator "*pppuVar3" (* "*") (identifier "pppuVar3")))) (; ";")) (declaration "undefined ***pppuVar4;" (type_identifier "undefined") (pointer_declarator "***pppuVar4" (* "*") (pointer_declarator "**pppuVar4" (* "*") (pointer_declarator "*pppuVar4" (* "*") (identifier "pppuVar4")))) (; ";")) (declaration "undefined8 uVar5;" (type_identifier "undefined8") (identifier "uVar5") (; ";")) (declaration "long lVar6;" (sized_type_specifier "long" (long "long")) (identifier "lVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "ulong uVar8;" (type_identifier "ulong") (identifier "uVar8") (; ";")) (declaration "undefined8 *puVar9;" (type_identifier "undefined8") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "byte bVar10;" (type_identifier "byte") (identifier "bVar10") (; ";")) (declaration "undefined1 auVar11 [16];" (type_identifier "undefined1") (array_declarator "auVar11 [16]" (identifier "auVar11") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "int local_a20;" (primitive_type "int") (identifier "local_a20") (; ";")) (declaration "undefined **local_a18 [19];" (type_identifier "undefined") (pointer_declarator "**local_a18 [19]" (* "*") (pointer_declarator "*local_a18 [19]" (* "*") (array_declarator "local_a18 [19]" (identifier "local_a18") ([ "[") (number_literal "19") (] "]")))) (; ";")) (declaration "char local_980;" (primitive_type "char") (identifier "local_980") (; ";")) (declaration "undefined8 local_978;" (type_identifier "undefined8") (identifier "local_978") (; ";")) (declaration "undefined8 local_970;" (type_identifier "undefined8") (identifier "local_970") (; ";")) (declaration "undefined8 local_968;" (type_identifier "undefined8") (identifier "local_968") (; ";")) (declaration "int local_960;" (primitive_type "int") (identifier "local_960") (; ";")) (declaration "undefined8 local_95c;" (type_identifier "undefined8") (identifier "local_95c") (; ";")) (declaration "undefined4 local_954;" (type_identifier "undefined4") (identifier "local_954") (; ";")) (declaration "undefined4 local_950;" (type_identifier "undefined4") (identifier "local_950") (; ";")) (declaration "undefined8 local_948;" (type_identifier "undefined8") (identifier "local_948") (; ";")) (declaration "undefined8 local_940;" (type_identifier "undefined8") (identifier "local_940") (; ";")) (declaration "undefined8 local_938;" (type_identifier "undefined8") (identifier "local_938") (; ";")) (declaration "undefined8 local_930;" (type_identifier "undefined8") (identifier "local_930") (; ";")) (declaration "undefined8 local_928;" (type_identifier "undefined8") (identifier "local_928") (; ";")) (declaration "undefined4 local_920;" (type_identifier "undefined4") (identifier "local_920") (; ";")) (declaration "undefined4 local_918 [2];" (type_identifier "undefined4") (array_declarator "local_918 [2]" (identifier "local_918") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "undefined8 local_910;" (type_identifier "undefined8") (identifier "local_910") (; ";")) (declaration "long local_908;" (sized_type_specifier "long" (long "long")) (identifier "local_908") (; ";")) (declaration "undefined8 local_900;" (type_identifier "undefined8") (identifier "local_900") (; ";")) (declaration "char local_8f8;" (primitive_type "char") (identifier "local_8f8") (; ";")) (declaration "undefined8 local_8f0;" (type_identifier "undefined8") (identifier "local_8f0") (; ";")) (declaration "undefined8 local_8e8 [256];" (type_identifier "undefined8") (array_declarator "local_8e8 [256]" (identifier "local_8e8") ([ "[") (number_literal "256") (] "]")) (; ";")) (declaration "undefined1 *local_e8;" (type_identifier "undefined1") (pointer_declarator "*local_e8" (* "*") (identifier "local_e8")) (; ";")) (declaration "long local_e0;" (sized_type_specifier "long" (long "long")) (identifier "local_e0") (; ";")) (declaration "undefined8 *local_d8;" (type_identifier "undefined8") (pointer_declarator "*local_d8" (* "*") (identifier "local_d8")) (; ";")) (declaration "undefined1 local_d0 [16];" (type_identifier "undefined1") (array_declarator "local_d0 [16]" (identifier "local_d0") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "undefined1 local_c0 [16];" (type_identifier "undefined1") (array_declarator "local_c0 [16]" (identifier "local_c0") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "undefined ***local_b0;" (type_identifier "undefined") (pointer_declarator "***local_b0" (* "*") (pointer_declarator "**local_b0" (* "*") (pointer_declarator "*local_b0" (* "*") (identifier "local_b0")))) (; ";")) (declaration "undefined4 local_a8;" (type_identifier "undefined4") (identifier "local_a8") (; ";")) (declaration "long local_a0;" (sized_type_specifier "long" (long "long")) (identifier "local_a0") (; ";")) (declaration "undefined8 local_98;" (type_identifier "undefined8") (identifier "local_98") (; ";")) (declaration "char local_90;" (primitive_type "char") (identifier "local_90") (; ";")) (declaration "long *local_88;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*local_88" (* "*") (identifier "local_88")) (; ";")) (declaration "undefined4 local_80;" (type_identifier "undefined4") (identifier "local_80") (; ";")) (declaration "undefined8 local_78;" (type_identifier "undefined8") (identifier "local_78") (; ";")) (declaration "long *local_70;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*local_70" (* "*") (identifier "local_70")) (; ";")) (declaration "long local_68;" (sized_type_specifier "long" (long "long")) (identifier "local_68") (; ";")) (declaration "undefined8 local_60;" (type_identifier "undefined8") (identifier "local_60") (; ";")) (declaration "char local_58;" (primitive_type "char") (identifier "local_58") (; ";")) (declaration "undefined8 local_50;" (type_identifier "undefined8") (identifier "local_50") (; ";")) (declaration "undefined8 local_48;" (type_identifier "undefined8") (identifier "local_48") (; ";")) (declaration "undefined ***local_40;" (type_identifier "undefined") (pointer_declarator "***local_40" (* "*") (pointer_declarator "**local_40" (* "*") (pointer_declarator "*local_40" (* "*") (identifier "local_40")))) (; ";")) (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" (identifier "bVar10") (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_4 == '\0') {\n    local_a20 = *(int *)(param_3 + 4);\n  }\n  else {\n    local_a20 = *(int *)(param_3 + 8);\n  }" (if "if") (parenthesized_expression "(param_4 == '\0')" (( "(") (binary_expression "param_4 == '\0'" (identifier "param_4") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    local_a20 = *(int *)(param_3 + 4);\n  }" ({ "{") (expression_statement "local_a20 = *(int *)(param_3 + 4);" (assignment_expression "local_a20 = *(int *)(param_3 + 4)" (identifier "local_a20") (= "=") (pointer_expression "*(int *)(param_3 + 4)" (* "*") (cast_expression "(int *)(param_3 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 4)" (( "(") (binary_expression "param_3 + 4" (identifier "param_3") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    local_a20 = *(int *)(param_3 + 8);\n  }" (else "else") (compound_statement "{\n    local_a20 = *(int *)(param_3 + 8);\n  }" ({ "{") (expression_statement "local_a20 = *(int *)(param_3 + 8);" (assignment_expression "local_a20 = *(int *)(param_3 + 8)" (identifier "local_a20") (= "=") (pointer_expression "*(int *)(param_3 + 8)" (* "*") (cast_expression "(int *)(param_3 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 8)" (( "(") (binary_expression "param_3 + 8" (identifier "param_3") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (local_a20 == 0) {\n                    \n    FUN_0016cdf0("../../gold/dwp.cc",0x5f1,"add_unit_set");\n  }" (if "if") (parenthesized_expression "(local_a20 == 0)" (( "(") (binary_expression "local_a20 == 0" (identifier "local_a20") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_0016cdf0("../../gold/dwp.cc",0x5f1,"add_unit_set");\n  }" ({ "{") (expression_statement "FUN_0016cdf0("../../gold/dwp.cc",0x5f1,"add_unit_set");" (call_expression "FUN_0016cdf0("../../gold/dwp.cc",0x5f1,"add_unit_set")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/dwp.cc",0x5f1,"add_unit_set")" (( "(") (string_literal ""../../gold/dwp.cc"" (" """) (string_content "../../gold/dwp.cc") (" """)) (, ",") (number_literal "0x5f1") (, ",") (string_literal ""add_unit_set"" (" """) (string_content "add_unit_set") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_3 + 0xc) == 0) {\n    uVar2 = *param_1;\n    uVar5 = gettext("%s: no .debug_abbrev.dwo section found");\n                    \n    FUN_00168f60(uVar5,uVar2);\n  }" (if "if") (parenthesized_expression "(*(int *)(param_3 + 0xc) == 0)" (( "(") (binary_expression "*(int *)(param_3 + 0xc) == 0" (pointer_expression "*(int *)(param_3 + 0xc)" (* "*") (cast_expression "(int *)(param_3 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xc)" (( "(") (binary_expression "param_3 + 0xc" (identifier "param_3") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar2 = *param_1;\n    uVar5 = gettext("%s: no .debug_abbrev.dwo section found");\n                    \n    FUN_00168f60(uVar5,uVar2);\n  }" ({ "{") (expression_statement "uVar2 = *param_1;" (assignment_expression "uVar2 = *param_1" (identifier "uVar2") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "uVar5 = gettext("%s: no .debug_abbrev.dwo section found");" (assignment_expression "uVar5 = gettext("%s: no .debug_abbrev.dwo section found")" (identifier "uVar5") (= "=") (call_expression "gettext("%s: no .debug_abbrev.dwo section found")" (identifier "gettext") (argument_list "("%s: no .debug_abbrev.dwo section found")" (( "(") (string_literal ""%s: no .debug_abbrev.dwo section found"" (" """) (string_content "%s: no .debug_abbrev.dwo section found") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00168f60(uVar5,uVar2);" (call_expression "FUN_00168f60(uVar5,uVar2)" (identifier "FUN_00168f60") (argument_list "(uVar5,uVar2)" (( "(") (identifier "uVar5") (, ",") (identifier "uVar2") () ")"))) (; ";")) (} "}"))) (expression_statement "pppuVar3 = local_a18;" (assignment_expression "pppuVar3 = local_a18" (identifier "pppuVar3") (= "=") (identifier "local_a18")) (; ";")) (do_statement "do {\n    *pppuVar3 = (undefined **)0x0;\n    pppuVar4 = pppuVar3 + 2;\n    pppuVar3[1] = (undefined **)0x0;\n    pppuVar3 = pppuVar4;\n  } while (local_a18 + 0x12 != pppuVar4);" (do "do") (compound_statement "{\n    *pppuVar3 = (undefined **)0x0;\n    pppuVar4 = pppuVar3 + 2;\n    pppuVar3[1] = (undefined **)0x0;\n    pppuVar3 = pppuVar4;\n  }" ({ "{") (expression_statement "*pppuVar3 = (undefined **)0x0;" (assignment_expression "*pppuVar3 = (undefined **)0x0" (pointer_expression "*pppuVar3" (* "*") (identifier "pppuVar3")) (= "=") (cast_expression "(undefined **)0x0" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppuVar4 = pppuVar3 + 2;" (assignment_expression "pppuVar4 = pppuVar3 + 2" (identifier "pppuVar4") (= "=") (binary_expression "pppuVar3 + 2" (identifier "pppuVar3") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "pppuVar3[1] = (undefined **)0x0;" (assignment_expression "pppuVar3[1] = (undefined **)0x0" (subscript_expression "pppuVar3[1]" (identifier "pppuVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(undefined **)0x0" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppuVar3 = pppuVar4;" (assignment_expression "pppuVar3 = pppuVar4" (identifier "pppuVar3") (= "=") (identifier "pppuVar4")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_a18 + 0x12 != pppuVar4)" (( "(") (binary_expression "local_a18 + 0x12 != pppuVar4" (binary_expression "local_a18 + 0x12" (identifier "local_a18") (+ "+") (number_literal "0x12")) (!= "!=") (identifier "pppuVar4")) () ")")) (; ";")) (expression_statement "uVar8 = 3;" (assignment_expression "uVar8 = 3" (identifier "uVar8") (= "=") (number_literal "3")) (; ";")) (do_statement "do {\n    while (iVar1 = *(int *)(param_3 + uVar8 * 4), iVar1 != 0) {\n      iVar7 = (int)uVar8;\n      auVar11 = FUN_00149990(param_1,param_2,iVar1,uVar8 & 0xffffffff);\n      uVar8 = uVar8 + 1;\n      local_a18[(long)iVar7 * 2] = auVar11._0_8_;\n      local_a18[(long)iVar7 * 2 + 1] = auVar11._8_8_;\n      if (uVar8 == 9) goto LAB_00149b6a;\n    }\n    uVar8 = uVar8 + 1;\n  } while (uVar8 != 9);" (do "do") (compound_statement "{\n    while (iVar1 = *(int *)(param_3 + uVar8 * 4), iVar1 != 0) {\n      iVar7 = (int)uVar8;\n      auVar11 = FUN_00149990(param_1,param_2,iVar1,uVar8 & 0xffffffff);\n      uVar8 = uVar8 + 1;\n      local_a18[(long)iVar7 * 2] = auVar11._0_8_;\n      local_a18[(long)iVar7 * 2 + 1] = auVar11._8_8_;\n      if (uVar8 == 9) goto LAB_00149b6a;\n    }\n    uVar8 = uVar8 + 1;\n  }" ({ "{") (while_statement "while (iVar1 = *(int *)(param_3 + uVar8 * 4), iVar1 != 0) {\n      iVar7 = (int)uVar8;\n      auVar11 = FUN_00149990(param_1,param_2,iVar1,uVar8 & 0xffffffff);\n      uVar8 = uVar8 + 1;\n      local_a18[(long)iVar7 * 2] = auVar11._0_8_;\n      local_a18[(long)iVar7 * 2 + 1] = auVar11._8_8_;\n      if (uVar8 == 9) goto LAB_00149b6a;\n    }" (while "while") (parenthesized_expression "(iVar1 = *(int *)(param_3 + uVar8 * 4), iVar1 != 0)" (( "(") (comma_expression "iVar1 = *(int *)(param_3 + uVar8 * 4), iVar1 != 0" (assignment_expression "iVar1 = *(int *)(param_3 + uVar8 * 4)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(param_3 + uVar8 * 4)" (* "*") (cast_expression "(int *)(param_3 + uVar8 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + uVar8 * 4)" (( "(") (binary_expression "param_3 + uVar8 * 4" (identifier "param_3") (+ "+") (binary_expression "uVar8 * 4" (identifier "uVar8") (* "*") (number_literal "4"))) () ")"))))) (, ",") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n      iVar7 = (int)uVar8;\n      auVar11 = FUN_00149990(param_1,param_2,iVar1,uVar8 & 0xffffffff);\n      uVar8 = uVar8 + 1;\n      local_a18[(long)iVar7 * 2] = auVar11._0_8_;\n      local_a18[(long)iVar7 * 2 + 1] = auVar11._8_8_;\n      if (uVar8 == 9) goto LAB_00149b6a;\n    }" ({ "{") (expression_statement "iVar7 = (int)uVar8;" (assignment_expression "iVar7 = (int)uVar8" (identifier "iVar7") (= "=") (cast_expression "(int)uVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar8"))) (; ";")) (expression_statement "auVar11 = FUN_00149990(param_1,param_2,iVar1,uVar8 & 0xffffffff);" (assignment_expression "auVar11 = FUN_00149990(param_1,param_2,iVar1,uVar8 & 0xffffffff)" (identifier "auVar11") (= "=") (call_expression "FUN_00149990(param_1,param_2,iVar1,uVar8 & 0xffffffff)" (identifier "FUN_00149990") (argument_list "(param_1,param_2,iVar1,uVar8 & 0xffffffff)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "iVar1") (, ",") (binary_expression "uVar8 & 0xffffffff" (identifier "uVar8") (& "&") (number_literal "0xffffffff")) () ")")))) (; ";")) (expression_statement "uVar8 = uVar8 + 1;" (assignment_expression "uVar8 = uVar8 + 1" (identifier "uVar8") (= "=") (binary_expression "uVar8 + 1" (identifier "uVar8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_a18[(long)iVar7 * 2] = auVar11._0_8_;" (assignment_expression "local_a18[(long)iVar7 * 2] = auVar11._0_8_" (subscript_expression "local_a18[(long)iVar7 * 2]" (identifier "local_a18") ([ "[") (binary_expression "(long)iVar7 * 2" (cast_expression "(long)iVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar7")) (* "*") (number_literal "2")) (] "]")) (= "=") (field_expression "auVar11._0_8_" (identifier "auVar11") (. ".") (field_identifier "_0_8_"))) (; ";")) (expression_statement "local_a18[(long)iVar7 * 2 + 1] = auVar11._8_8_;" (assignment_expression "local_a18[(long)iVar7 * 2 + 1] = auVar11._8_8_" (subscript_expression "local_a18[(long)iVar7 * 2 + 1]" (identifier "local_a18") ([ "[") (binary_expression "(long)iVar7 * 2 + 1" (binary_expression "(long)iVar7 * 2" (cast_expression "(long)iVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar7")) (* "*") (number_literal "2")) (+ "+") (number_literal "1")) (] "]")) (= "=") (field_expression "auVar11._8_8_" (identifier "auVar11") (. ".") (field_identifier "_8_8_"))) (; ";")) (if_statement "if (uVar8 == 9) goto LAB_00149b6a;" (if "if") (parenthesized_expression "(uVar8 == 9)" (( "(") (binary_expression "uVar8 == 9" (identifier "uVar8") (== "==") (number_literal "9")) () ")")) (goto_statement "goto LAB_00149b6a;" (goto "goto") (statement_identifier "LAB_00149b6a") (; ";"))) (} "}"))) (expression_statement "uVar8 = uVar8 + 1;" (assignment_expression "uVar8 = uVar8 + 1" (identifier "uVar8") (= "=") (binary_expression "uVar8 + 1" (identifier "uVar8") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar8 != 9)" (( "(") (binary_expression "uVar8 != 9" (identifier "uVar8") (!= "!=") (number_literal "9")) () ")")) (; ";")) (labeled_statement "LAB_00149b6a:\n  local_978 = param_1[1];" (statement_identifier "LAB_00149b6a") (: ":") (expression_statement "local_978 = param_1[1];" (assignment_expression "local_978 = param_1[1]" (identifier "local_978") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";"))) (expression_statement "local_d0 = (undefined1  [16])0x0;" (assignment_expression "local_d0 = (undefined1  [16])0x0" (identifier "local_d0") (= "=") (cast_expression "(undefined1  [16])0x0" (( "(") (type_descriptor "undefined1  [16]" (type_identifier "undefined1") (abstract_array_declarator "[16]" ([ "[") (number_literal "16") (] "]"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_960 = local_a20;" (assignment_expression "local_960 = local_a20" (identifier "local_960") (= "=") (identifier "local_a20")) (; ";")) (expression_statement "local_e8 = local_c0 + 8;" (assignment_expression "local_e8 = local_c0 + 8" (identifier "local_e8") (= "=") (binary_expression "local_c0 + 8" (identifier "local_c0") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "puVar9 = local_8e8;" (assignment_expression "puVar9 = local_8e8" (identifier "puVar9") (= "=") (identifier "local_8e8")) (; ";")) (for_statement "for (lVar6 = 0x100; lVar6 != 0; lVar6 = lVar6 + -1) {\n    *puVar9 = 0;\n    puVar9 = puVar9 + (ulong)bVar10 * -2 + 1;\n  }" (for "for") (( "(") (assignment_expression "lVar6 = 0x100" (identifier "lVar6") (= "=") (number_literal "0x100")) (; ";") (binary_expression "lVar6 != 0" (identifier "lVar6") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "lVar6 = lVar6 + -1" (identifier "lVar6") (= "=") (binary_expression "lVar6 + -1" (identifier "lVar6") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n    *puVar9 = 0;\n    puVar9 = puVar9 + (ulong)bVar10 * -2 + 1;\n  }" ({ "{") (expression_statement "*puVar9 = 0;" (assignment_expression "*puVar9 = 0" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar9 = puVar9 + (ulong)bVar10 * -2 + 1;" (assignment_expression "puVar9 = puVar9 + (ulong)bVar10 * -2 + 1" (identifier "puVar9") (= "=") (binary_expression "puVar9 + (ulong)bVar10 * -2 + 1" (binary_expression "puVar9 + (ulong)bVar10 * -2" (identifier "puVar9") (+ "+") (binary_expression "(ulong)bVar10 * -2" (cast_expression "(ulong)bVar10" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar10")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "local_970 = 0;" (assignment_expression "local_970 = 0" (identifier "local_970") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_968 = 0;" (assignment_expression "local_968 = 0" (identifier "local_968") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_95c = 0;" (assignment_expression "local_95c = 0" (identifier "local_95c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_950 = 0;" (assignment_expression "local_950 = 0" (identifier "local_950") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_948 = 0;" (assignment_expression "local_948 = 0" (identifier "local_948") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_940 = 0;" (assignment_expression "local_940 = 0" (identifier "local_940") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_938 = 0;" (assignment_expression "local_938 = 0" (identifier "local_938") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_930 = 0;" (assignment_expression "local_930 = 0" (identifier "local_930") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_928 = 0;" (assignment_expression "local_928 = 0" (identifier "local_928") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_920 = 0;" (assignment_expression "local_920 = 0" (identifier "local_920") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_918[0] = 0;" (assignment_expression "local_918[0] = 0" (subscript_expression "local_918[0]" (identifier "local_918") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_910 = 0;" (assignment_expression "local_910 = 0" (identifier "local_910") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_908 = 0;" (assignment_expression "local_908 = 0" (identifier "local_908") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_900 = 0;" (assignment_expression "local_900 = 0" (identifier "local_900") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_8f8 = '\0';" (assignment_expression "local_8f8 = '\0'" (identifier "local_8f8") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "local_8f0 = 0;" (assignment_expression "local_8f0 = 0" (identifier "local_8f0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_c0 = (undefined1  [16])0x0;" (assignment_expression "local_c0 = (undefined1  [16])0x0" (identifier "local_c0") (= "=") (cast_expression "(undefined1  [16])0x0" (( "(") (type_descriptor "undefined1  [16]" (type_identifier "undefined1") (abstract_array_declarator "[16]" ([ "[") (number_literal "16") (] "]"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_e0 = 1;" (assignment_expression "local_e0 = 1" (identifier "local_e0") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_d8 = (undefined8 *)0x0;" (assignment_expression "local_d8 = (undefined8 *)0x0" (identifier "local_d8") (= "=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_d0._8_4_ = 0x3f800000;" (assignment_expression "local_d0._8_4_ = 0x3f800000" (field_expression "local_d0._8_4_" (identifier "local_d0") (. ".") (field_identifier "_8_4_")) (= "=") (number_literal "0x3f800000")) (; ";")) (expression_statement "local_a8 = 0;" (assignment_expression "local_a8 = 0" (identifier "local_a8") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_a0 = 0;" (assignment_expression "local_a0 = 0" (identifier "local_a0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_98 = 0;" (assignment_expression "local_98 = 0" (identifier "local_98") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_954 = *(undefined4 *)(param_3 + 0xc);" (assignment_expression "local_954 = *(undefined4 *)(param_3 + 0xc)" (identifier "local_954") (= "=") (pointer_expression "*(undefined4 *)(param_3 + 0xc)" (* "*") (cast_expression "(undefined4 *)(param_3 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xc)" (( "(") (binary_expression "param_3 + 0xc" (identifier "param_3") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "local_90 = '\0';" (assignment_expression "local_90 = '\0'" (identifier "local_90") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "local_88 = (long *)0x0;" (assignment_expression "local_88 = (long *)0x0" (identifier "local_88") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_80 = 0;" (assignment_expression "local_80 = 0" (identifier "local_80") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_78 = 0;" (assignment_expression "local_78 = 0" (identifier "local_78") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_70 = (long *)0x0;" (assignment_expression "local_70 = (long *)0x0" (identifier "local_70") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" (identifier "local_68") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" (identifier "local_60") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_58 = '\0';" (assignment_expression "local_58 = '\0'" (identifier "local_58") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" (identifier "local_50") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_a18[0x12] = &PTR_FUN_003a9e98;" (assignment_expression "local_a18[0x12] = &PTR_FUN_003a9e98" (subscript_expression "local_a18[0x12]" (identifier "local_a18") ([ "[") (number_literal "0x12") (] "]")) (= "=") (pointer_expression "&PTR_FUN_003a9e98" (& "&") (identifier "PTR_FUN_003a9e98"))) (; ";")) (expression_statement "local_980 = param_4;" (assignment_expression "local_980 = param_4" (identifier "local_980") (= "=") (identifier "param_4")) (; ";")) (expression_statement "local_b0 = local_a18 + 0x12;" (assignment_expression "local_b0 = local_a18 + 0x12" (identifier "local_b0") (= "=") (binary_expression "local_a18 + 0x12" (identifier "local_a18") (+ "+") (number_literal "0x12"))) (; ";")) (expression_statement "local_48 = param_2;" (assignment_expression "local_48 = param_2" (identifier "local_48") (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_40 = local_a18;" (assignment_expression "local_40 = local_a18" (identifier "local_40") (= "=") (identifier "local_a18")) (; ";")) (expression_statement "FUN_00162200(local_a18 + 0x12);" (call_expression "FUN_00162200(local_a18 + 0x12)" (identifier "FUN_00162200") (argument_list "(local_a18 + 0x12)" (( "(") (binary_expression "local_a18 + 0x12" (identifier "local_a18") (+ "+") (number_literal "0x12")) () ")"))) (; ";")) (expression_statement "local_a18[0x12] = &PTR_FUN_003a9fb8;" (assignment_expression "local_a18[0x12] = &PTR_FUN_003a9fb8" (subscript_expression "local_a18[0x12]" (identifier "local_a18") ([ "[") (number_literal "0x12") (] "]")) (= "=") (pointer_expression "&PTR_FUN_003a9fb8" (& "&") (identifier "PTR_FUN_003a9fb8"))) (; ";")) (if_statement "if (local_70 != (long *)0x0) {\n    (**(code **)(*local_70 + 8))();\n  }" (if "if") (parenthesized_expression "(local_70 != (long *)0x0)" (( "(") (binary_expression "local_70 != (long *)0x0" (identifier "local_70") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    (**(code **)(*local_70 + 8))();\n  }" ({ "{") (expression_statement "(**(code **)(*local_70 + 8))();" (call_expression "(**(code **)(*local_70 + 8))()" (parenthesized_expression "(**(code **)(*local_70 + 8))" (( "(") (pointer_expression "**(code **)(*local_70 + 8)" (* "*") (pointer_expression "*(code **)(*local_70 + 8)" (* "*") (cast_expression "(code **)(*local_70 + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*local_70 + 8)" (( "(") (binary_expression "*local_70 + 8" (pointer_expression "*local_70" (* "*") (identifier "local_70")) (+ "+") (number_literal "8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if ((local_58 != '\0') && (local_68 != 0)) {\n    thunk_FUN_00276d20();\n  }" (if "if") (parenthesized_expression "((local_58 != '\0') && (local_68 != 0))" (( "(") (binary_expression "(local_58 != '\0') && (local_68 != 0)" (parenthesized_expression "(local_58 != '\0')" (( "(") (binary_expression "local_58 != '\0'" (identifier "local_58") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(local_68 != 0)" (( "(") (binary_expression "local_68 != 0" (identifier "local_68") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    thunk_FUN_00276d20();\n  }" ({ "{") (expression_statement "thunk_FUN_00276d20();" (call_expression "thunk_FUN_00276d20()" (identifier "thunk_FUN_00276d20") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if ((local_90 != '\0') && (local_a0 != 0)) {\n    thunk_FUN_00276d20();\n  }" (if "if") (parenthesized_expression "((local_90 != '\0') && (local_a0 != 0))" (( "(") (binary_expression "(local_90 != '\0') && (local_a0 != 0)" (parenthesized_expression "(local_90 != '\0')" (( "(") (binary_expression "local_90 != '\0'" (identifier "local_90") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(local_a0 != 0)" (( "(") (binary_expression "local_a0 != 0" (identifier "local_a0") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    thunk_FUN_00276d20();\n  }" ({ "{") (expression_statement "thunk_FUN_00276d20();" (call_expression "thunk_FUN_00276d20()" (identifier "thunk_FUN_00276d20") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_88 != (long *)0x0) {\n    (**(code **)(*local_88 + 8))();\n  }" (if "if") (parenthesized_expression "(local_88 != (long *)0x0)" (( "(") (binary_expression "local_88 != (long *)0x0" (identifier "local_88") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    (**(code **)(*local_88 + 8))();\n  }" ({ "{") (expression_statement "(**(code **)(*local_88 + 8))();" (call_expression "(**(code **)(*local_88 + 8))()" (parenthesized_expression "(**(code **)(*local_88 + 8))" (( "(") (pointer_expression "**(code **)(*local_88 + 8)" (* "*") (pointer_expression "*(code **)(*local_88 + 8)" (* "*") (cast_expression "(code **)(*local_88 + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*local_88 + 8)" (( "(") (binary_expression "*local_88 + 8" (pointer_expression "*local_88" (* "*") (identifier "local_88")) (+ "+") (number_literal "8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if ((local_8f8 != '\0') && (local_908 != 0)) {\n    thunk_FUN_00276d20();\n  }" (if "if") (parenthesized_expression "((local_8f8 != '\0') && (local_908 != 0))" (( "(") (binary_expression "(local_8f8 != '\0') && (local_908 != 0)" (parenthesized_expression "(local_8f8 != '\0')" (( "(") (binary_expression "local_8f8 != '\0'" (identifier "local_8f8") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(local_908 != 0)" (( "(") (binary_expression "local_908 != 0" (identifier "local_908") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    thunk_FUN_00276d20();\n  }" ({ "{") (expression_statement "thunk_FUN_00276d20();" (call_expression "thunk_FUN_00276d20()" (identifier "thunk_FUN_00276d20") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00160530(local_918);" (call_expression "FUN_00160530(local_918)" (identifier "FUN_00160530") (argument_list "(local_918)" (( "(") (identifier "local_918") () ")"))) (; ";")) (expression_statement "puVar9 = local_d8;" (assignment_expression "puVar9 = local_d8" (identifier "puVar9") (= "=") (identifier "local_d8")) (; ";")) (while_statement "while (puVar9 != (undefined8 *)0x0) {\n    puVar9 = (undefined8 *)*puVar9;\n    FUN_00276d20();\n  }" (while "while") (parenthesized_expression "(puVar9 != (undefined8 *)0x0)" (( "(") (binary_expression "puVar9 != (undefined8 *)0x0" (identifier "puVar9") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    puVar9 = (undefined8 *)*puVar9;\n    FUN_00276d20();\n  }" ({ "{") (expression_statement "puVar9 = (undefined8 *)*puVar9;" (assignment_expression "puVar9 = (undefined8 *)*puVar9" (identifier "puVar9") (= "=") (cast_expression "(undefined8 *)*puVar9" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar9" (* "*") (identifier "puVar9")))) (; ";")) (expression_statement "FUN_00276d20();" (call_expression "FUN_00276d20()" (identifier "FUN_00276d20") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "memset(local_e8,0,local_e0 * 8);" (call_expression "memset(local_e8,0,local_e0 * 8)" (identifier "memset") (argument_list "(local_e8,0,local_e0 * 8)" (( "(") (identifier "local_e8") (, ",") (number_literal "0") (, ",") (binary_expression "local_e0 * 8" (identifier "local_e0") (* "*") (number_literal "8")) () ")"))) (; ";")) (expression_statement "auVar11._8_8_ = 0;" (assignment_expression "auVar11._8_8_ = 0" (field_expression "auVar11._8_8_" (identifier "auVar11") (. ".") (field_identifier "_8_8_")) (= "=") (number_literal "0")) (; ";")) (expression_statement "auVar11._0_8_ = local_d0._8_8_;" (assignment_expression "auVar11._0_8_ = local_d0._8_8_" (field_expression "auVar11._0_8_" (identifier "auVar11") (. ".") (field_identifier "_0_8_")) (= "=") (field_expression "local_d0._8_8_" (identifier "local_d0") (. ".") (field_identifier "_8_8_"))) (; ";")) (expression_statement "local_d0 = auVar11 << 0x40;" (assignment_expression "local_d0 = auVar11 << 0x40" (identifier "local_d0") (= "=") (binary_expression "auVar11 << 0x40" (identifier "auVar11") (<< "<<") (number_literal "0x40"))) (; ";")) (expression_statement "local_d8 = (undefined8 *)0x0;" (assignment_expression "local_d8 = (undefined8 *)0x0" (identifier "local_d8") (= "=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (local_e8 != local_c0 + 8) {\n    FUN_00276d20();\n  }" (if "if") (parenthesized_expression "(local_e8 != local_c0 + 8)" (( "(") (binary_expression "local_e8 != local_c0 + 8" (identifier "local_e8") (!= "!=") (binary_expression "local_c0 + 8" (identifier "local_c0") (+ "+") (number_literal "8"))) () ")")) (compound_statement "{\n    FUN_00276d20();\n  }" ({ "{") (expression_statement "FUN_00276d20();" (call_expression "FUN_00276d20()" (identifier "FUN_00276d20") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Enum "DW_SECT": Some values do not have unique names */
/* DWARF original prototype: void add_unit_set(Dwo_file * this, Dwp_output_file * output_file, uint
   * debug_shndx, bool is_debug_types) */

void __thiscall
gold::type_1::function_1
          (type_1 *this,type_2 *output_file,type_3 *debug_shndx,bool is_debug_types)

{
  type_4 *p_Var1;
  char *pcVar2;
  type_5 var_14 [16];
  type_6 *pSVar4;
  type_7 _Var5;
  type_6 *var_5;
  char *format;
  type_8 section_id;
  long var_7;
  type_9 **var_8;
  type_10 bVar9;
  type_6 SVar10;
  type_3 var_1;
  type_6 sections [9];
  type_11 reader;
  
  bVar9 = 0;
  if (is_debug_types) {
    var_1 = debug_shndx[2];
  }
  else {
    var_1 = debug_shndx[1];
  }
  if (var_1 == 0) {
                    /* WARNING: Subroutine does not return */
    var_2("../../gold/dwp.cc",0x5f1,"add_unit_set");
  }
  if (debug_shndx[3] == 0) {
    pcVar2 = this->name_;
    format = (char *)var_3("%s: no .debug_abbrev.dwo section found");
                    /* WARNING: Subroutine does not return */
    var_4(format,pcVar2);
  }
  var_5 = sections;
  do {
    var_5->offset = 0;
    pSVar4 = var_5 + 1;
    var_5->size = 0;
    var_5 = pSVar4;
  } while (&reader != (type_11 *)pSVar4);
  var_7 = 3;
  do {
    while (debug_shndx[var_7] != 0) {
      section_id = (type_8)var_7;
      SVar10 = var_6(this,output_file,debug_shndx[var_7],section_id);
      var_7 = var_7 + 1;
      sections[(int)section_id].offset = SVar10.offset;
      sections[(int)section_id].size = SVar10.size;
      if (var_7 == 9) goto LAB_00149b6a;
    }
    var_7 = var_7 + 1;
  } while (var_7 != 9);
LAB_00149b6a:
  reader.super_Dwarf_info_reader.object_ = this->obj_;
  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_element_count = 0;
  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_rehash_policy.
  _M_max_load_factor = 0.0;
  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_rehash_policy._4_4_ = 0;
  reader.super_Dwarf_info_reader.shndx_ = var_1;
  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_buckets =
       &reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_single_bucket;
  var_8 = reader.super_Dwarf_info_reader.abbrev_table_.low_abbrev_codes_;
  for (var_7 = 0x100; var_7 != 0; var_7 = var_7 + -1) {
    *var_8 = (type_9 *)0x0;
    var_8 = var_8 + (type_12)bVar9 * -2 + 1;
  }
  reader.super_Dwarf_info_reader.symtab_ = (type_13 *)0x0;
  reader.super_Dwarf_info_reader.symtab_size_ = 0;
  reader.super_Dwarf_info_reader.reloc_shndx_ = 0;
  reader.super_Dwarf_info_reader.reloc_type_ = 0;
  reader.super_Dwarf_info_reader.string_shndx_ = 0;
  reader.super_Dwarf_info_reader.buffer_ = (type_13 *)0x0;
  reader.super_Dwarf_info_reader.buffer_end_ = (type_13 *)0x0;
  reader.super_Dwarf_info_reader.cu_offset_ = 0;
  reader.super_Dwarf_info_reader.cu_length_ = 0;
  reader.super_Dwarf_info_reader.offset_size_ = 0;
  reader.super_Dwarf_info_reader.address_size_ = 0;
  reader.super_Dwarf_info_reader.cu_version_ = 0;
  reader.super_Dwarf_info_reader.abbrev_table_.abbrev_shndx_ = 0;
  reader.super_Dwarf_info_reader.abbrev_table_.abbrev_offset_ = 0;
  reader.super_Dwarf_info_reader.abbrev_table_.buffer_ = (type_13 *)0x0;
  reader.super_Dwarf_info_reader.abbrev_table_.buffer_end_ = (type_13 *)0x0;
  reader.super_Dwarf_info_reader.abbrev_table_.owns_buffer_ = false;
  reader.super_Dwarf_info_reader.abbrev_table_.buffer_pos_ = (type_13 *)0x0;
  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_rehash_policy.
  _M_next_resize = 0;
  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_single_bucket =
       (type_14)0x0;
  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_bucket_count = 1;
  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_before_begin._M_nxt =
       (type_4 *)0x0;
  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_rehash_policy.
  _M_max_load_factor = 1.0;
  reader.super_Dwarf_info_reader.ranges_table_.ranges_shndx_ = 0;
  reader.super_Dwarf_info_reader.ranges_table_.ranges_buffer_ = (type_13 *)0x0;
  reader.super_Dwarf_info_reader.ranges_table_.ranges_buffer_end_ = (type_13 *)0x0;
  reader.super_Dwarf_info_reader.abbrev_shndx_ = debug_shndx[3];
  reader.super_Dwarf_info_reader.ranges_table_.owns_ranges_buffer_ = false;
  reader.super_Dwarf_info_reader.ranges_table_.ranges_reloc_mapper_ = (type_15 *)0x0;
  reader.super_Dwarf_info_reader.ranges_table_.reloc_type_ = 0;
  reader.super_Dwarf_info_reader.ranges_table_.output_section_offset_ = 0;
  reader.super_Dwarf_info_reader.reloc_mapper_ = (type_15 *)0x0;
  reader.super_Dwarf_info_reader.string_buffer_ = (char *)0x0;
  reader.super_Dwarf_info_reader.string_buffer_end_ = (char *)0x0;
  reader.super_Dwarf_info_reader.owns_string_buffer_ = false;
  reader.super_Dwarf_info_reader.string_output_section_offset_ = 0;
  reader.super_Dwarf_info_reader._vptr_Dwarf_info_reader =
       (type_16 **)&PTR__Unit_reader_003a9e98;
  reader.super_Dwarf_info_reader.is_type_unit_ = is_debug_types;
  reader.super_Dwarf_info_reader.ranges_table_.dwinfo_ = &reader.super_Dwarf_info_reader;
  reader.output_file_ = output_file;
  reader.sections_ = sections;
                    /* try { // try from 00149d64 to 00149d68 has its CatchHandler @ 00149ed9 */
  Dwarf_info_reader::var_9(&reader.super_Dwarf_info_reader);
  reader.super_Dwarf_info_reader._vptr_Dwarf_info_reader =
       (type_16 **)&PTR__Dwarf_info_reader_003a9fb8;
  if (reader.super_Dwarf_info_reader.reloc_mapper_ != (type_15 *)0x0) {
    (*(reader.super_Dwarf_info_reader.reloc_mapper_)->_vptr_Elf_reloc_mapper[1])();
  }
  if ((reader.super_Dwarf_info_reader.owns_string_buffer_ != false) &&
     (reader.super_Dwarf_info_reader.string_buffer_ != (char *)0x0)) {
    var_10(reader.super_Dwarf_info_reader.string_buffer_);
  }
  if ((reader.super_Dwarf_info_reader.ranges_table_.owns_ranges_buffer_ != false) &&
     (reader.super_Dwarf_info_reader.ranges_table_.ranges_buffer_ != (type_13 *)0x0)) {
    var_10(reader.super_Dwarf_info_reader.ranges_table_.ranges_buffer_);
  }
  if (reader.super_Dwarf_info_reader.ranges_table_.ranges_reloc_mapper_ != (type_15 *)0x0)
  {
    (*(reader.super_Dwarf_info_reader.ranges_table_.ranges_reloc_mapper_)->_vptr_Elf_reloc_mapper[1]
    )();
  }
  if ((reader.super_Dwarf_info_reader.abbrev_table_.owns_buffer_ != false) &&
     (reader.super_Dwarf_info_reader.abbrev_table_.buffer_ != (type_13 *)0x0)) {
    var_10(reader.super_Dwarf_info_reader.abbrev_table_.buffer_);
  }
  Dwarf_abbrev_table::var_11(&reader.super_Dwarf_info_reader.abbrev_table_);
  _Var5 = reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_before_begin;
  while (_Var5._M_nxt != (type_4 *)0x0) {
    p_Var1 = (_Var5._M_nxt)->_M_nxt;
    var_12(_Var5._M_nxt);
    _Var5._M_nxt = p_Var1;
  }
  var_13(reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_buckets,0,
         reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_bucket_count * 8);
  var_14._8_8_ = 0;
  var_14._0_8_ = reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h.
                 _M_rehash_policy._0_8_;
  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._24_16_ = var_14 << 0x40;
  reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_before_begin._M_nxt =
       (type_4 *)0x0;
  if (reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_buckets !=
      &reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_single_bucket) {
    var_12(reader.super_Dwarf_info_reader.abbrev_table_.high_abbrev_codes_._M_h._M_buckets)
    ;
  }
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (sized_type_specifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (array_declarator declarator: (identifier) size: (number_literal))))) (declaration type: (primitive_type) 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)) (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: (type_identifier) 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: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) 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: (identifier) right: (number_literal)))))))) alternative: (else_clause (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: (identifier) 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 (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) right: (binary_expression left: (identifier) right: (number_literal)))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (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: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (number_literal))) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (number_literal)) right: (number_literal))) right: (field_expression argument: (identifier) field: (field_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_array_declarator size: (number_literal))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (for_statement initializer: (assignment_expression left: (identifier) right: (number_literal)) condition: (binary_expression left: (identifier) right: (number_literal)) update: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_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: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_array_declarator size: (number_literal))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_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: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (return_statement))))

void MASKED(undefined8 *param_1,undefined8 param_2,long param_3,char param_4)

{
  int iVar1;
  undefined8 uVar2;
  undefined ***pppuVar3;
  undefined ***pppuVar4;
  undefined8 uVar5;
  long lVar6;
  int iVar7;
  ulong uVar8;
  undefined8 *puVar9;
  byte bVar10;
  undefined1 auVar11 [16];
  int local_a20;
  undefined **local_a18 [19];
  char local_980;
  undefined8 local_978;
  undefined8 local_970;
  undefined8 local_968;
  int local_960;
  undefined8 local_95c;
  undefined4 local_954;
  undefined4 local_950;
  undefined8 local_948;
  undefined8 local_940;
  undefined8 local_938;
  undefined8 local_930;
  undefined8 local_928;
  undefined4 local_920;
  undefined4 local_918 [2];
  undefined8 local_910;
  long local_908;
  undefined8 local_900;
  char local_8f8;
  undefined8 local_8f0;
  undefined8 local_8e8 [256];
  undefined1 *local_e8;
  long local_e0;
  undefined8 *local_d8;
  undefined1 local_d0 [16];
  undefined1 local_c0 [16];
  undefined ***local_b0;
  undefined4 local_a8;
  long local_a0;
  undefined8 local_98;
  char local_90;
  long *local_88;
  undefined4 local_80;
  undefined8 local_78;
  long *local_70;
  long local_68;
  undefined8 local_60;
  char local_58;
  undefined8 local_50;
  undefined8 local_48;
  undefined ***local_40;
  
  bVar10 = 0;
  if (param_4 == '\0') {
    local_a20 = *(int *)(param_3 + 4);
  }
  else {
    local_a20 = *(int *)(param_3 + 8);
  }
  if (local_a20 == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0016cdf0("../../gold/dwp.cc",0x5f1,"add_unit_set");
  }
  if (*(int *)(param_3 + 0xc) == 0) {
    uVar2 = *param_1;
    uVar5 = gettext("%s: no .debug_abbrev.dwo section found");
                    /* WARNING: Subroutine does not return */
    FUN_00168f60(uVar5,uVar2);
  }
  pppuVar3 = local_a18;
  do {
    *pppuVar3 = (undefined **)0x0;
    pppuVar4 = pppuVar3 + 2;
    pppuVar3[1] = (undefined **)0x0;
    pppuVar3 = pppuVar4;
  } while (local_a18 + 0x12 != pppuVar4);
  uVar8 = 3;
  do {
    while (iVar1 = *(int *)(param_3 + uVar8 * 4), iVar1 != 0) {
      iVar7 = (int)uVar8;
      auVar11 = FUN_00149990(param_1,param_2,iVar1,uVar8 & 0xffffffff);
      uVar8 = uVar8 + 1;
      local_a18[(long)iVar7 * 2] = auVar11._0_8_;
      local_a18[(long)iVar7 * 2 + 1] = auVar11._8_8_;
      if (uVar8 == 9) goto LAB_00149b6a;
    }
    uVar8 = uVar8 + 1;
  } while (uVar8 != 9);
LAB_00149b6a:
  local_978 = param_1[1];
  local_d0 = (undefined1  [16])0x0;
  local_960 = local_a20;
  local_e8 = local_c0 + 8;
  puVar9 = local_8e8;
  for (lVar6 = 0x100; lVar6 != 0; lVar6 = lVar6 + -1) {
    *puVar9 = 0;
    puVar9 = puVar9 + (ulong)bVar10 * -2 + 1;
  }
  local_970 = 0;
  local_968 = 0;
  local_95c = 0;
  local_950 = 0;
  local_948 = 0;
  local_940 = 0;
  local_938 = 0;
  local_930 = 0;
  local_928 = 0;
  local_920 = 0;
  local_918[0] = 0;
  local_910 = 0;
  local_908 = 0;
  local_900 = 0;
  local_8f8 = '\0';
  local_8f0 = 0;
  local_c0 = (undefined1  [16])0x0;
  local_e0 = 1;
  local_d8 = (undefined8 *)0x0;
  local_d0._8_4_ = 0x3f800000;
  local_a8 = 0;
  local_a0 = 0;
  local_98 = 0;
  local_954 = *(undefined4 *)(param_3 + 0xc);
  local_90 = '\0';
  local_88 = (long *)0x0;
  local_80 = 0;
  local_78 = 0;
  local_70 = (long *)0x0;
  local_68 = 0;
  local_60 = 0;
  local_58 = '\0';
  local_50 = 0;
  local_a18[0x12] = &PTR_FUN_003a9e98;
  local_980 = param_4;
  local_b0 = local_a18 + 0x12;
  local_48 = param_2;
  local_40 = local_a18;
                    /* try { // try from 00149d64 to 00149d68 has its CatchHandler @ 00149ed9 */
  FUN_00162200(local_a18 + 0x12);
  local_a18[0x12] = &PTR_FUN_003a9fb8;
  if (local_70 != (long *)0x0) {
    (**(code **)(*local_70 + 8))();
  }
  if ((local_58 != '\0') && (local_68 != 0)) {
    thunk_FUN_00276d20();
  }
  if ((local_90 != '\0') && (local_a0 != 0)) {
    thunk_FUN_00276d20();
  }
  if (local_88 != (long *)0x0) {
    (**(code **)(*local_88 + 8))();
  }
  if ((local_8f8 != '\0') && (local_908 != 0)) {
    thunk_FUN_00276d20();
  }
  FUN_00160530(local_918);
  puVar9 = local_d8;
  while (puVar9 != (undefined8 *)0x0) {
    puVar9 = (undefined8 *)*puVar9;
    FUN_00276d20();
  }
  memset(local_e8,0,local_e0 * 8);
  auVar11._8_8_ = 0;
  auVar11._0_8_ = local_d0._8_8_;
  local_d0 = auVar11 << 0x40;
  local_d8 = (undefined8 *)0x0;
  if (local_e8 != local_c0 + 8) {
    FUN_00276d20();
  }
  return;
}

