
/* WARNING: Removing unreachable block (ram,0x000d6aa0) */
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* DWARF original prototype: off_t sibling_offset(Dwarf_die * this) */

off_t __thiscall gold::Dwarf_die::sibling_offset(Dwarf_die *this)

{
  undefined3 extraout_var;
  int iVar1;
  bool bVar2;
  Dwarf_die *parent;
  int iVar3;
  undefined4 uVar4;
  int iVar5;
  undefined4 uVar6;
  off_t oVar7;
  undefined4 in_stack_ffffff64;
  Dwarf_die die;
  
  if (this->abbrev_code_ == (Abbrev_code *)0x0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x4a8,
                        PTR_s_alize_xindex_004323b4 + -0x5fbc);
  }
  iVar5 = *(int *)&this->sibling_offset_;
  iVar3 = (int)this->sibling_offset_;
  if (iVar5 != 0 || iVar3 != 0) goto LAB_000d69f0;
  iVar1 = *(int *)&this->abbrev_code_->field_0x4;
  if (-1 < iVar1) {
    oVar7 = skip_attributes(this);
    this->sibling_offset_ = oVar7;
    return oVar7;
  }
  if ((iVar1 << 1 < 0) && (this->attributes_read_ == false)) {
    bVar2 = read_attributes(this);
    if (CONCAT31(extraout_var,bVar2) == 0) {
LAB_000d69f0:
      return CONCAT44(iVar5,iVar3);
    }
    iVar5 = *(int *)&this->sibling_offset_;
    iVar3 = (int)this->sibling_offset_;
    if (iVar5 != 0 || iVar3 != 0) goto LAB_000d69f0;
  }
  oVar7 = child_offset(this);
  parent = (Dwarf_die *)((ulonglong)oVar7 >> 0x20);
  if (oVar7 < 0x100000000) {
    if (parent == (Dwarf_die *)0x0) {
      if ((int)oVar7 == 0) {
        uVar6 = *(undefined4 *)&this->sibling_offset_;
        uVar4 = (undefined4)this->sibling_offset_;
        goto LAB_000d6ab0;
      }
      goto LAB_000d6a28;
    }
  }
  else {
LAB_000d6a28:
    do {
      Dwarf_die(&die,this->dwinfo_,CONCAT44(this,in_stack_ffffff64),parent);
      if ((die.abbrev_code_ == (Abbrev_code *)0x0) || ((die.abbrev_code_)->tag == 0)) {
        if (die.attributes_.
            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>
            ._M_impl._M_start != (pointer)0x0) {
          (*(code *)PTR_operator_delete_0043228c)();
          uVar6 = *(undefined4 *)&this->sibling_offset_;
          uVar4 = (undefined4)this->sibling_offset_;
          goto LAB_000d6ab0;
        }
        break;
      }
                    /* try { // try from 000d6a60 to 000d6a67 has its CatchHandler @ 000d6b60 */
      oVar7 = sibling_offset(&die);
      if (die.attributes_.
          super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>
          ._M_impl._M_start != (pointer)0x0) {
        (*(code *)PTR_operator_delete_0043228c)();
      }
      parent = (Dwarf_die *)((ulonglong)oVar7 >> 0x20);
    } while (0 < oVar7);
  }
  uVar6 = *(undefined4 *)&this->sibling_offset_;
  uVar4 = (undefined4)this->sibling_offset_;
LAB_000d6ab0:
  return CONCAT44(uVar6,uVar4);
}



/* WARNING: Removing unreachable block (ram,0x000d6aa0) */
/* gold::Dwarf_die::sibling_offset() */

undefined8 __thiscall gold::Dwarf_die::sibling_offset(Dwarf_die *this)

{
  int iVar1;
  Dwarf_die *pDVar2;
  int iVar3;
  undefined4 uVar4;
  int iVar5;
  undefined4 uVar6;
  longlong lVar7;
  undefined8 uVar8;
  undefined4 in_stack_ffffff64;
  Dwarf_die aDStack_90 [40];
  int *local_68;
  int local_64;
  undefined8 local_20;
  
  if (*(int *)(this + 0x28) == 0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x4a8,
                        PTR_s_alize_xindex_004323b4 + -0x5fbc);
  }
  iVar5 = *(int *)(this + 0x20);
  iVar3 = *(int *)(this + 0x24);
  if (iVar5 != 0 || iVar3 != 0) goto LAB_000d69f0;
  iVar1 = *(int *)(*(int *)(this + 0x28) + 4);
  if (-1 < iVar1) {
    uVar8 = skip_attributes(this);
    *(undefined8 *)(this + 0x20) = uVar8;
    return uVar8;
  }
  if ((iVar1 << 1 < 0) && (local_20._0_4_ = iVar3, this[0x38] == (Dwarf_die)0x0)) {
    iVar1 = FUN_000d46c8();
    iVar3 = local_20._0_4_;
    if (iVar1 == 0) {
LAB_000d69f0:
      return CONCAT44(iVar5,iVar3);
    }
    iVar5 = *(int *)(this + 0x20);
    iVar3 = *(int *)(this + 0x24);
    if (iVar5 != 0 || iVar3 != 0) goto LAB_000d69f0;
  }
  lVar7 = child_offset(this);
  pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20);
  if (lVar7 < 0x100000000) {
    if (pDVar2 == (Dwarf_die *)0x0) {
      if ((int)lVar7 == 0) {
        uVar6 = *(undefined4 *)(this + 0x20);
        uVar4 = *(undefined4 *)(this + 0x24);
        goto LAB_000d6ab0;
      }
      goto LAB_000d6a28;
    }
  }
  else {
LAB_000d6a28:
    do {
      Dwarf_die(aDStack_90,*(Dwarf_info_reader **)this,CONCAT44(this,in_stack_ffffff64),pDVar2);
      if ((local_68 == (int *)0x0) || (*local_68 == 0)) {
        if (local_64 != 0) {
          (*(code *)PTR_operator_delete_0043228c)();
          uVar6 = *(undefined4 *)(this + 0x20);
          uVar4 = *(undefined4 *)(this + 0x24);
          goto LAB_000d6ab0;
        }
        break;
      }
                    /* try { // try from 000d6a60 to 000d6a67 has its CatchHandler @ 000d6b60 */
      lVar7 = sibling_offset(aDStack_90);
      if (local_64 != 0) {
        local_20 = lVar7;
        (*(code *)PTR_operator_delete_0043228c)();
        lVar7 = local_20;
      }
      pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20);
    } while (0 < lVar7);
  }
  uVar6 = *(undefined4 *)(this + 0x20);
  uVar4 = *(undefined4 *)(this + 0x24);
LAB_000d6ab0:
  return CONCAT44(uVar6,uVar4);
}


lui gp,0x36
addiu gp,gp,0x3874
addu gp,gp,t9
addiu sp,sp,-0xb0
lw v0,0x28(a0)
sw gp,0x18(sp)
sw ra,0xac(sp)
sw s3,0xa8(sp)
sw s2,0xa4(sp)
sw s1,0xa0(sp)
beq v0,zero,0x000d6b44
_sw s0,0x9c(sp)
lw s1,0x20(a0)
lw v1,0x24(a0)
or a1,s1,v1
bne a1,zero,0x000d69f0
_or s0,a0,zero
lw v0,0x4(v0)
bgez v0,0x000d6af0
_ext v0,v0,0x1e,0x1
beq v0,zero,0x000d6a10
_lw t9,-0x7620(gp)
lbu v0,0x38(a0)
bne v0,zero,0x000d6a10
_sw v1,0x90(sp)
lw t9,-0x7644(gp)
addiu t9,t9,0x46c8
bal 0x000d46c8
_nop
lw gp,0x18(sp)
beq v0,zero,0x000d69f0
_lw v1,0x90(sp)
lw s1,0x20(s0)
lw v1,0x24(s0)
or v0,s1,v1
beq v0,zero,0x000d6a10
_lw t9,-0x7620(gp)
lw ra,0xac(sp)
or v0,s1,zero
lw s3,0xa8(sp)
lw s2,0xa4(sp)
lw s1,0xa0(sp)
lw s0,0x9c(sp)
jr ra
_addiu sp,sp,0xb0
bal 0x000d4268
_or a0,s0,zero
lw gp,0x18(sp)
blez v0,0x000d6b28
_or a3,v1,zero
lw s2,-0x761c(gp)
addiu s1,sp,0x20
lw s3,-0x7618(gp)
lw a1,0x0(s0)
or a2,v0,zero
sw s0,0x10(sp)
or t9,s2,zero
bal 0x000d6738
_or a0,s1,zero
lw v0,0x48(sp)
beq v0,zero,0x000d6ad0
_lw gp,0x18(sp)
lw v0,0x0(v0)
beq v0,zero,0x000d6ad0
_or t9,s3,zero
bal 0x000d695c
_or a0,s1,zero
lw a0,0x4c(sp)
or a3,v1,zero
beq a0,zero,0x000d6a90
_lw gp,0x18(sp)
lw t9,-0x7f44(gp)
sw v0,0x90(sp)
jalr t9
_sw v1,0x94(sp)
lw a3,0x94(sp)
lw v0,0x90(sp)
bgtz v0,0x000d6a30
_nop
bne v0,zero,0x000d6aa8
_nop
bne a3,zero,0x000d6a30
_nop
lw s1,0x20(s0)
lw v1,0x24(s0)
lw ra,0xac(sp)
or v0,s1,zero
lw s3,0xa8(sp)
lw s2,0xa4(sp)
lw s1,0xa0(sp)
lw s0,0x9c(sp)
jr ra
_addiu sp,sp,0xb0
lw a0,0x4c(sp)
beq a0,zero,0x000d6aa8
_lw t9,-0x7f44(gp)
jalr t9
_nop
lw s1,0x20(s0)
b 0x000d6ab0
_lw v1,0x24(s0)
lw t9,-0x7658(gp)
bal 0x000d3b98
_nop
lw ra,0xac(sp)
or s1,v0,zero
lw s3,0xa8(sp)
or v0,s1,zero
lw s2,0xa4(sp)
sw s1,0x20(s0)
sw v1,0x24(s0)
lw s1,0xa0(sp)
lw s0,0x9c(sp)
jr ra
_addiu sp,sp,0xb0
bne v0,zero,0x000d6aa8
_nop
bne v1,zero,0x000d6a28
_lw s2,-0x761c(gp)
lw s1,0x20(s0)
b 0x000d6ab0
_lw v1,0x24(s0)
lw a2,-0x7e1c(gp)
li a1,0x4a8
lw a0,-0x7e1c(gp)
lw t9,-0x7e0c(gp)
addiu a2,a2,-0x5fbc
bal 0x000eb2f0
_addiu a0,a0,-0x6368
(translation_unit "/* WARNING: Removing unreachable block (ram,0x000d6aa0) */\n/* gold::Dwarf_die::sibling_offset() */\n\nundefined8 __thiscall gold::Dwarf_die::sibling_offset(Dwarf_die *this)\n\n{\n  int iVar1;\n  Dwarf_die *pDVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  longlong lVar7;\n  undefined8 uVar8;\n  undefined4 in_stack_ffffff64;\n  Dwarf_die aDStack_90 [40];\n  int *local_68;\n  int local_64;\n  undefined8 local_20;\n  \n  if (*(int *)(this + 0x28) == 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x4a8,\n                        PTR_s_alize_xindex_004323b4 + -0x5fbc);\n  }\n  iVar5 = *(int *)(this + 0x20);\n  iVar3 = *(int *)(this + 0x24);\n  if (iVar5 != 0 || iVar3 != 0) goto LAB_000d69f0;\n  iVar1 = *(int *)(*(int *)(this + 0x28) + 4);\n  if (-1 < iVar1) {\n    uVar8 = skip_attributes(this);\n    *(undefined8 *)(this + 0x20) = uVar8;\n    return uVar8;\n  }\n  if ((iVar1 << 1 < 0) && (local_20._0_4_ = iVar3, this[0x38] == (Dwarf_die)0x0)) {\n    iVar1 = FUN_000d46c8();\n    iVar3 = local_20._0_4_;\n    if (iVar1 == 0) {\nLAB_000d69f0:\n      return CONCAT44(iVar5,iVar3);\n    }\n    iVar5 = *(int *)(this + 0x20);\n    iVar3 = *(int *)(this + 0x24);\n    if (iVar5 != 0 || iVar3 != 0) goto LAB_000d69f0;\n  }\n  lVar7 = child_offset(this);\n  pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20);\n  if (lVar7 < 0x100000000) {\n    if (pDVar2 == (Dwarf_die *)0x0) {\n      if ((int)lVar7 == 0) {\n        uVar6 = *(undefined4 *)(this + 0x20);\n        uVar4 = *(undefined4 *)(this + 0x24);\n        goto LAB_000d6ab0;\n      }\n      goto LAB_000d6a28;\n    }\n  }\n  else {\nLAB_000d6a28:\n    do {\n      Dwarf_die(aDStack_90,*(Dwarf_info_reader **)this,CONCAT44(this,in_stack_ffffff64),pDVar2);\n      if ((local_68 == (int *)0x0) || (*local_68 == 0)) {\n        if (local_64 != 0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)(this + 0x20);\n          uVar4 = *(undefined4 *)(this + 0x24);\n          goto LAB_000d6ab0;\n        }\n        break;\n      }\n                    /* try { // try from 000d6a60 to 000d6a67 has its CatchHandler @ 000d6b60 */\n      lVar7 = sibling_offset(aDStack_90);\n      if (local_64 != 0) {\n        local_20 = lVar7;\n        (*(code *)PTR_operator_delete_0043228c)();\n        lVar7 = local_20;\n      }\n      pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20);\n    } while (0 < lVar7);\n  }\n  uVar6 = *(undefined4 *)(this + 0x20);\n  uVar4 = *(undefined4 *)(this + 0x24);\nLAB_000d6ab0:\n  return CONCAT44(uVar6,uVar4);\n}\n\n" comment comment (function_definition "undefined8 __thiscall gold::Dwarf_die::sibling_offset(Dwarf_die *this)\n\n{\n  int iVar1;\n  Dwarf_die *pDVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  longlong lVar7;\n  undefined8 uVar8;\n  undefined4 in_stack_ffffff64;\n  Dwarf_die aDStack_90 [40];\n  int *local_68;\n  int local_64;\n  undefined8 local_20;\n  \n  if (*(int *)(this + 0x28) == 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x4a8,\n                        PTR_s_alize_xindex_004323b4 + -0x5fbc);\n  }\n  iVar5 = *(int *)(this + 0x20);\n  iVar3 = *(int *)(this + 0x24);\n  if (iVar5 != 0 || iVar3 != 0) goto LAB_000d69f0;\n  iVar1 = *(int *)(*(int *)(this + 0x28) + 4);\n  if (-1 < iVar1) {\n    uVar8 = skip_attributes(this);\n    *(undefined8 *)(this + 0x20) = uVar8;\n    return uVar8;\n  }\n  if ((iVar1 << 1 < 0) && (local_20._0_4_ = iVar3, this[0x38] == (Dwarf_die)0x0)) {\n    iVar1 = FUN_000d46c8();\n    iVar3 = local_20._0_4_;\n    if (iVar1 == 0) {\nLAB_000d69f0:\n      return CONCAT44(iVar5,iVar3);\n    }\n    iVar5 = *(int *)(this + 0x20);\n    iVar3 = *(int *)(this + 0x24);\n    if (iVar5 != 0 || iVar3 != 0) goto LAB_000d69f0;\n  }\n  lVar7 = child_offset(this);\n  pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20);\n  if (lVar7 < 0x100000000) {\n    if (pDVar2 == (Dwarf_die *)0x0) {\n      if ((int)lVar7 == 0) {\n        uVar6 = *(undefined4 *)(this + 0x20);\n        uVar4 = *(undefined4 *)(this + 0x24);\n        goto LAB_000d6ab0;\n      }\n      goto LAB_000d6a28;\n    }\n  }\n  else {\nLAB_000d6a28:\n    do {\n      Dwarf_die(aDStack_90,*(Dwarf_info_reader **)this,CONCAT44(this,in_stack_ffffff64),pDVar2);\n      if ((local_68 == (int *)0x0) || (*local_68 == 0)) {\n        if (local_64 != 0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)(this + 0x20);\n          uVar4 = *(undefined4 *)(this + 0x24);\n          goto LAB_000d6ab0;\n        }\n        break;\n      }\n                    /* try { // try from 000d6a60 to 000d6a67 has its CatchHandler @ 000d6b60 */\n      lVar7 = sibling_offset(aDStack_90);\n      if (local_64 != 0) {\n        local_20 = lVar7;\n        (*(code *)PTR_operator_delete_0043228c)();\n        lVar7 = local_20;\n      }\n      pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20);\n    } while (0 < lVar7);\n  }\n  uVar6 = *(undefined4 *)(this + 0x20);\n  uVar4 = *(undefined4 *)(this + 0x24);\nLAB_000d6ab0:\n  return CONCAT44(uVar6,uVar4);\n}" type_identifier (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Dwarf_die::" identifier : : identifier : :) (function_declarator "sibling_offset(Dwarf_die *this)" identifier (parameter_list "(Dwarf_die *this)" ( (parameter_declaration "Dwarf_die *this" type_identifier (pointer_declarator "*this" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  Dwarf_die *pDVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  longlong lVar7;\n  undefined8 uVar8;\n  undefined4 in_stack_ffffff64;\n  Dwarf_die aDStack_90 [40];\n  int *local_68;\n  int local_64;\n  undefined8 local_20;\n  \n  if (*(int *)(this + 0x28) == 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x4a8,\n                        PTR_s_alize_xindex_004323b4 + -0x5fbc);\n  }\n  iVar5 = *(int *)(this + 0x20);\n  iVar3 = *(int *)(this + 0x24);\n  if (iVar5 != 0 || iVar3 != 0) goto LAB_000d69f0;\n  iVar1 = *(int *)(*(int *)(this + 0x28) + 4);\n  if (-1 < iVar1) {\n    uVar8 = skip_attributes(this);\n    *(undefined8 *)(this + 0x20) = uVar8;\n    return uVar8;\n  }\n  if ((iVar1 << 1 < 0) && (local_20._0_4_ = iVar3, this[0x38] == (Dwarf_die)0x0)) {\n    iVar1 = FUN_000d46c8();\n    iVar3 = local_20._0_4_;\n    if (iVar1 == 0) {\nLAB_000d69f0:\n      return CONCAT44(iVar5,iVar3);\n    }\n    iVar5 = *(int *)(this + 0x20);\n    iVar3 = *(int *)(this + 0x24);\n    if (iVar5 != 0 || iVar3 != 0) goto LAB_000d69f0;\n  }\n  lVar7 = child_offset(this);\n  pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20);\n  if (lVar7 < 0x100000000) {\n    if (pDVar2 == (Dwarf_die *)0x0) {\n      if ((int)lVar7 == 0) {\n        uVar6 = *(undefined4 *)(this + 0x20);\n        uVar4 = *(undefined4 *)(this + 0x24);\n        goto LAB_000d6ab0;\n      }\n      goto LAB_000d6a28;\n    }\n  }\n  else {\nLAB_000d6a28:\n    do {\n      Dwarf_die(aDStack_90,*(Dwarf_info_reader **)this,CONCAT44(this,in_stack_ffffff64),pDVar2);\n      if ((local_68 == (int *)0x0) || (*local_68 == 0)) {\n        if (local_64 != 0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)(this + 0x20);\n          uVar4 = *(undefined4 *)(this + 0x24);\n          goto LAB_000d6ab0;\n        }\n        break;\n      }\n                    /* try { // try from 000d6a60 to 000d6a67 has its CatchHandler @ 000d6b60 */\n      lVar7 = sibling_offset(aDStack_90);\n      if (local_64 != 0) {\n        local_20 = lVar7;\n        (*(code *)PTR_operator_delete_0043228c)();\n        lVar7 = local_20;\n      }\n      pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20);\n    } while (0 < lVar7);\n  }\n  uVar6 = *(undefined4 *)(this + 0x20);\n  uVar4 = *(undefined4 *)(this + 0x24);\nLAB_000d6ab0:\n  return CONCAT44(uVar6,uVar4);\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "Dwarf_die *pDVar2;" type_identifier (pointer_declarator "*pDVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "longlong lVar7;" type_identifier identifier ;) (declaration "undefined8 uVar8;" type_identifier identifier ;) (declaration "undefined4 in_stack_ffffff64;" type_identifier identifier ;) (declaration "Dwarf_die aDStack_90 [40];" type_identifier (array_declarator "aDStack_90 [40]" identifier [ number_literal ]) ;) (declaration "int *local_68;" primitive_type (pointer_declarator "*local_68" * identifier) ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "undefined8 local_20;" type_identifier identifier ;) (if_statement "if (*(int *)(this + 0x28) == 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x4a8,\n                        PTR_s_alize_xindex_004323b4 + -0x5fbc);\n  }" if (parenthesized_expression "(*(int *)(this + 0x28) == 0)" ( (binary_expression "*(int *)(this + 0x28) == 0" (pointer_expression "*(int *)(this + 0x28)" * (cast_expression "(int *)(this + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x28)" ( (binary_expression "this + 0x28" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x4a8,\n                        PTR_s_alize_xindex_004323b4 + -0x5fbc);\n  }" { comment (expression_statement "do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x4a8,\n                        PTR_s_alize_xindex_004323b4 + -0x5fbc);" (call_expression "do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x4a8,\n                        PTR_s_alize_xindex_004323b4 + -0x5fbc)" identifier (argument_list "(PTR_s_alize_xindex_004323b4 + -0x6368,0x4a8,\n                        PTR_s_alize_xindex_004323b4 + -0x5fbc)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x6368" identifier + number_literal) , number_literal , (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5fbc" identifier + number_literal) ))) ;) })) (expression_statement "iVar5 = *(int *)(this + 0x20);" (assignment_expression "iVar5 = *(int *)(this + 0x20)" identifier = (pointer_expression "*(int *)(this + 0x20)" * (cast_expression "(int *)(this + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x20)" ( (binary_expression "this + 0x20" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(this + 0x24);" (assignment_expression "iVar3 = *(int *)(this + 0x24)" identifier = (pointer_expression "*(int *)(this + 0x24)" * (cast_expression "(int *)(this + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x24)" ( (binary_expression "this + 0x24" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 != 0 || iVar3 != 0) goto LAB_000d69f0;" if (parenthesized_expression "(iVar5 != 0 || iVar3 != 0)" ( (binary_expression "iVar5 != 0 || iVar3 != 0" (binary_expression "iVar5 != 0" identifier != number_literal) || (binary_expression "iVar3 != 0" identifier != number_literal)) )) (goto_statement "goto LAB_000d69f0;" goto statement_identifier ;)) (expression_statement "iVar1 = *(int *)(*(int *)(this + 0x28) + 4);" (assignment_expression "iVar1 = *(int *)(*(int *)(this + 0x28) + 4)" identifier = (pointer_expression "*(int *)(*(int *)(this + 0x28) + 4)" * (cast_expression "(int *)(*(int *)(this + 0x28) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(this + 0x28) + 4)" ( (binary_expression "*(int *)(this + 0x28) + 4" (pointer_expression "*(int *)(this + 0x28)" * (cast_expression "(int *)(this + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x28)" ( (binary_expression "this + 0x28" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (-1 < iVar1) {\n    uVar8 = skip_attributes(this);\n    *(undefined8 *)(this + 0x20) = uVar8;\n    return uVar8;\n  }" if (parenthesized_expression "(-1 < iVar1)" ( (binary_expression "-1 < iVar1" number_literal < identifier) )) (compound_statement "{\n    uVar8 = skip_attributes(this);\n    *(undefined8 *)(this + 0x20) = uVar8;\n    return uVar8;\n  }" { (expression_statement "uVar8 = skip_attributes(this);" (assignment_expression "uVar8 = skip_attributes(this)" identifier = (call_expression "skip_attributes(this)" identifier (argument_list "(this)" ( identifier )))) ;) (expression_statement "*(undefined8 *)(this + 0x20) = uVar8;" (assignment_expression "*(undefined8 *)(this + 0x20) = uVar8" (pointer_expression "*(undefined8 *)(this + 0x20)" * (cast_expression "(undefined8 *)(this + 0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x20)" ( (binary_expression "this + 0x20" identifier + number_literal) )))) = identifier) ;) (return_statement "return uVar8;" return identifier ;) })) (if_statement "if ((iVar1 << 1 < 0) && (local_20._0_4_ = iVar3, this[0x38] == (Dwarf_die)0x0)) {\n    iVar1 = FUN_000d46c8();\n    iVar3 = local_20._0_4_;\n    if (iVar1 == 0) {\nLAB_000d69f0:\n      return CONCAT44(iVar5,iVar3);\n    }\n    iVar5 = *(int *)(this + 0x20);\n    iVar3 = *(int *)(this + 0x24);\n    if (iVar5 != 0 || iVar3 != 0) goto LAB_000d69f0;\n  }" if (parenthesized_expression "((iVar1 << 1 < 0) && (local_20._0_4_ = iVar3, this[0x38] == (Dwarf_die)0x0))" ( (binary_expression "(iVar1 << 1 < 0) && (local_20._0_4_ = iVar3, this[0x38] == (Dwarf_die)0x0)" (parenthesized_expression "(iVar1 << 1 < 0)" ( (binary_expression "iVar1 << 1 < 0" (binary_expression "iVar1 << 1" identifier << number_literal) < number_literal) )) && (parenthesized_expression "(local_20._0_4_ = iVar3, this[0x38] == (Dwarf_die)0x0)" ( (comma_expression "local_20._0_4_ = iVar3, this[0x38] == (Dwarf_die)0x0" (assignment_expression "local_20._0_4_ = iVar3" (field_expression "local_20._0_4_" identifier . field_identifier) = identifier) , (binary_expression "this[0x38] == (Dwarf_die)0x0" (subscript_expression "this[0x38]" identifier [ number_literal ]) == (cast_expression "(Dwarf_die)0x0" ( (type_descriptor "Dwarf_die" type_identifier) ) number_literal))) ))) )) (compound_statement "{\n    iVar1 = FUN_000d46c8();\n    iVar3 = local_20._0_4_;\n    if (iVar1 == 0) {\nLAB_000d69f0:\n      return CONCAT44(iVar5,iVar3);\n    }\n    iVar5 = *(int *)(this + 0x20);\n    iVar3 = *(int *)(this + 0x24);\n    if (iVar5 != 0 || iVar3 != 0) goto LAB_000d69f0;\n  }" { (expression_statement "iVar1 = FUN_000d46c8();" (assignment_expression "iVar1 = FUN_000d46c8()" identifier = (call_expression "FUN_000d46c8()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar3 = local_20._0_4_;" (assignment_expression "iVar3 = local_20._0_4_" identifier = (field_expression "local_20._0_4_" identifier . field_identifier)) ;) (if_statement "if (iVar1 == 0) {\nLAB_000d69f0:\n      return CONCAT44(iVar5,iVar3);\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000d69f0:\n      return CONCAT44(iVar5,iVar3);\n    }" { (labeled_statement "LAB_000d69f0:\n      return CONCAT44(iVar5,iVar3);" statement_identifier : (return_statement "return CONCAT44(iVar5,iVar3);" return (call_expression "CONCAT44(iVar5,iVar3)" identifier (argument_list "(iVar5,iVar3)" ( identifier , identifier ))) ;)) })) (expression_statement "iVar5 = *(int *)(this + 0x20);" (assignment_expression "iVar5 = *(int *)(this + 0x20)" identifier = (pointer_expression "*(int *)(this + 0x20)" * (cast_expression "(int *)(this + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x20)" ( (binary_expression "this + 0x20" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(this + 0x24);" (assignment_expression "iVar3 = *(int *)(this + 0x24)" identifier = (pointer_expression "*(int *)(this + 0x24)" * (cast_expression "(int *)(this + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x24)" ( (binary_expression "this + 0x24" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 != 0 || iVar3 != 0) goto LAB_000d69f0;" if (parenthesized_expression "(iVar5 != 0 || iVar3 != 0)" ( (binary_expression "iVar5 != 0 || iVar3 != 0" (binary_expression "iVar5 != 0" identifier != number_literal) || (binary_expression "iVar3 != 0" identifier != number_literal)) )) (goto_statement "goto LAB_000d69f0;" goto statement_identifier ;)) })) (expression_statement "lVar7 = child_offset(this);" (assignment_expression "lVar7 = child_offset(this)" identifier = (call_expression "child_offset(this)" identifier (argument_list "(this)" ( identifier )))) ;) (expression_statement "pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20);" (assignment_expression "pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20)" identifier = (cast_expression "(Dwarf_die *)((ulonglong)lVar7 >> 0x20)" ( (type_descriptor "Dwarf_die *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)lVar7 >> 0x20)" ( (binary_expression "(ulonglong)lVar7 >> 0x20" (cast_expression "(ulonglong)lVar7" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (lVar7 < 0x100000000) {\n    if (pDVar2 == (Dwarf_die *)0x0) {\n      if ((int)lVar7 == 0) {\n        uVar6 = *(undefined4 *)(this + 0x20);\n        uVar4 = *(undefined4 *)(this + 0x24);\n        goto LAB_000d6ab0;\n      }\n      goto LAB_000d6a28;\n    }\n  }\n  else {\nLAB_000d6a28:\n    do {\n      Dwarf_die(aDStack_90,*(Dwarf_info_reader **)this,CONCAT44(this,in_stack_ffffff64),pDVar2);\n      if ((local_68 == (int *)0x0) || (*local_68 == 0)) {\n        if (local_64 != 0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)(this + 0x20);\n          uVar4 = *(undefined4 *)(this + 0x24);\n          goto LAB_000d6ab0;\n        }\n        break;\n      }\n                    /* try { // try from 000d6a60 to 000d6a67 has its CatchHandler @ 000d6b60 */\n      lVar7 = sibling_offset(aDStack_90);\n      if (local_64 != 0) {\n        local_20 = lVar7;\n        (*(code *)PTR_operator_delete_0043228c)();\n        lVar7 = local_20;\n      }\n      pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20);\n    } while (0 < lVar7);\n  }" if (parenthesized_expression "(lVar7 < 0x100000000)" ( (binary_expression "lVar7 < 0x100000000" identifier < number_literal) )) (compound_statement "{\n    if (pDVar2 == (Dwarf_die *)0x0) {\n      if ((int)lVar7 == 0) {\n        uVar6 = *(undefined4 *)(this + 0x20);\n        uVar4 = *(undefined4 *)(this + 0x24);\n        goto LAB_000d6ab0;\n      }\n      goto LAB_000d6a28;\n    }\n  }" { (if_statement "if (pDVar2 == (Dwarf_die *)0x0) {\n      if ((int)lVar7 == 0) {\n        uVar6 = *(undefined4 *)(this + 0x20);\n        uVar4 = *(undefined4 *)(this + 0x24);\n        goto LAB_000d6ab0;\n      }\n      goto LAB_000d6a28;\n    }" if (parenthesized_expression "(pDVar2 == (Dwarf_die *)0x0)" ( (binary_expression "pDVar2 == (Dwarf_die *)0x0" identifier == (cast_expression "(Dwarf_die *)0x0" ( (type_descriptor "Dwarf_die *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if ((int)lVar7 == 0) {\n        uVar6 = *(undefined4 *)(this + 0x20);\n        uVar4 = *(undefined4 *)(this + 0x24);\n        goto LAB_000d6ab0;\n      }\n      goto LAB_000d6a28;\n    }" { (if_statement "if ((int)lVar7 == 0) {\n        uVar6 = *(undefined4 *)(this + 0x20);\n        uVar4 = *(undefined4 *)(this + 0x24);\n        goto LAB_000d6ab0;\n      }" if (parenthesized_expression "((int)lVar7 == 0)" ( (binary_expression "(int)lVar7 == 0" (cast_expression "(int)lVar7" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (compound_statement "{\n        uVar6 = *(undefined4 *)(this + 0x20);\n        uVar4 = *(undefined4 *)(this + 0x24);\n        goto LAB_000d6ab0;\n      }" { (expression_statement "uVar6 = *(undefined4 *)(this + 0x20);" (assignment_expression "uVar6 = *(undefined4 *)(this + 0x20)" identifier = (pointer_expression "*(undefined4 *)(this + 0x20)" * (cast_expression "(undefined4 *)(this + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x20)" ( (binary_expression "this + 0x20" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined4 *)(this + 0x24);" (assignment_expression "uVar4 = *(undefined4 *)(this + 0x24)" identifier = (pointer_expression "*(undefined4 *)(this + 0x24)" * (cast_expression "(undefined4 *)(this + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x24)" ( (binary_expression "this + 0x24" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000d6ab0;" goto statement_identifier ;) })) (goto_statement "goto LAB_000d6a28;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_000d6a28:\n    do {\n      Dwarf_die(aDStack_90,*(Dwarf_info_reader **)this,CONCAT44(this,in_stack_ffffff64),pDVar2);\n      if ((local_68 == (int *)0x0) || (*local_68 == 0)) {\n        if (local_64 != 0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)(this + 0x20);\n          uVar4 = *(undefined4 *)(this + 0x24);\n          goto LAB_000d6ab0;\n        }\n        break;\n      }\n                    /* try { // try from 000d6a60 to 000d6a67 has its CatchHandler @ 000d6b60 */\n      lVar7 = sibling_offset(aDStack_90);\n      if (local_64 != 0) {\n        local_20 = lVar7;\n        (*(code *)PTR_operator_delete_0043228c)();\n        lVar7 = local_20;\n      }\n      pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20);\n    } while (0 < lVar7);\n  }" else (compound_statement "{\nLAB_000d6a28:\n    do {\n      Dwarf_die(aDStack_90,*(Dwarf_info_reader **)this,CONCAT44(this,in_stack_ffffff64),pDVar2);\n      if ((local_68 == (int *)0x0) || (*local_68 == 0)) {\n        if (local_64 != 0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)(this + 0x20);\n          uVar4 = *(undefined4 *)(this + 0x24);\n          goto LAB_000d6ab0;\n        }\n        break;\n      }\n                    /* try { // try from 000d6a60 to 000d6a67 has its CatchHandler @ 000d6b60 */\n      lVar7 = sibling_offset(aDStack_90);\n      if (local_64 != 0) {\n        local_20 = lVar7;\n        (*(code *)PTR_operator_delete_0043228c)();\n        lVar7 = local_20;\n      }\n      pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20);\n    } while (0 < lVar7);\n  }" { (labeled_statement "LAB_000d6a28:\n    do {\n      Dwarf_die(aDStack_90,*(Dwarf_info_reader **)this,CONCAT44(this,in_stack_ffffff64),pDVar2);\n      if ((local_68 == (int *)0x0) || (*local_68 == 0)) {\n        if (local_64 != 0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)(this + 0x20);\n          uVar4 = *(undefined4 *)(this + 0x24);\n          goto LAB_000d6ab0;\n        }\n        break;\n      }\n                    /* try { // try from 000d6a60 to 000d6a67 has its CatchHandler @ 000d6b60 */\n      lVar7 = sibling_offset(aDStack_90);\n      if (local_64 != 0) {\n        local_20 = lVar7;\n        (*(code *)PTR_operator_delete_0043228c)();\n        lVar7 = local_20;\n      }\n      pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20);\n    } while (0 < lVar7);" statement_identifier : (do_statement "do {\n      Dwarf_die(aDStack_90,*(Dwarf_info_reader **)this,CONCAT44(this,in_stack_ffffff64),pDVar2);\n      if ((local_68 == (int *)0x0) || (*local_68 == 0)) {\n        if (local_64 != 0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)(this + 0x20);\n          uVar4 = *(undefined4 *)(this + 0x24);\n          goto LAB_000d6ab0;\n        }\n        break;\n      }\n                    /* try { // try from 000d6a60 to 000d6a67 has its CatchHandler @ 000d6b60 */\n      lVar7 = sibling_offset(aDStack_90);\n      if (local_64 != 0) {\n        local_20 = lVar7;\n        (*(code *)PTR_operator_delete_0043228c)();\n        lVar7 = local_20;\n      }\n      pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20);\n    } while (0 < lVar7);" do (compound_statement "{\n      Dwarf_die(aDStack_90,*(Dwarf_info_reader **)this,CONCAT44(this,in_stack_ffffff64),pDVar2);\n      if ((local_68 == (int *)0x0) || (*local_68 == 0)) {\n        if (local_64 != 0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)(this + 0x20);\n          uVar4 = *(undefined4 *)(this + 0x24);\n          goto LAB_000d6ab0;\n        }\n        break;\n      }\n                    /* try { // try from 000d6a60 to 000d6a67 has its CatchHandler @ 000d6b60 */\n      lVar7 = sibling_offset(aDStack_90);\n      if (local_64 != 0) {\n        local_20 = lVar7;\n        (*(code *)PTR_operator_delete_0043228c)();\n        lVar7 = local_20;\n      }\n      pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20);\n    }" { (expression_statement "Dwarf_die(aDStack_90,*(Dwarf_info_reader **)this,CONCAT44(this,in_stack_ffffff64),pDVar2);" (call_expression "Dwarf_die(aDStack_90,*(Dwarf_info_reader **)this,CONCAT44(this,in_stack_ffffff64),pDVar2)" identifier (argument_list "(aDStack_90,*(Dwarf_info_reader **)this,CONCAT44(this,in_stack_ffffff64),pDVar2)" ( identifier , (pointer_expression "*(Dwarf_info_reader **)this" * (cast_expression "(Dwarf_info_reader **)this" ( (type_descriptor "Dwarf_info_reader **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) , (call_expression "CONCAT44(this,in_stack_ffffff64)" identifier (argument_list "(this,in_stack_ffffff64)" ( identifier , identifier ))) , identifier ))) ;) (if_statement "if ((local_68 == (int *)0x0) || (*local_68 == 0)) {\n        if (local_64 != 0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)(this + 0x20);\n          uVar4 = *(undefined4 *)(this + 0x24);\n          goto LAB_000d6ab0;\n        }\n        break;\n      }" if (parenthesized_expression "((local_68 == (int *)0x0) || (*local_68 == 0))" ( (binary_expression "(local_68 == (int *)0x0) || (*local_68 == 0)" (parenthesized_expression "(local_68 == (int *)0x0)" ( (binary_expression "local_68 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*local_68 == 0)" ( (binary_expression "*local_68 == 0" (pointer_expression "*local_68" * identifier) == number_literal) ))) )) (compound_statement "{\n        if (local_64 != 0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)(this + 0x20);\n          uVar4 = *(undefined4 *)(this + 0x24);\n          goto LAB_000d6ab0;\n        }\n        break;\n      }" { (if_statement "if (local_64 != 0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)(this + 0x20);\n          uVar4 = *(undefined4 *)(this + 0x24);\n          goto LAB_000d6ab0;\n        }" if (parenthesized_expression "(local_64 != 0)" ( (binary_expression "local_64 != 0" identifier != number_literal) )) (compound_statement "{\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)(this + 0x20);\n          uVar4 = *(undefined4 *)(this + 0x24);\n          goto LAB_000d6ab0;\n        }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar6 = *(undefined4 *)(this + 0x20);" (assignment_expression "uVar6 = *(undefined4 *)(this + 0x20)" identifier = (pointer_expression "*(undefined4 *)(this + 0x20)" * (cast_expression "(undefined4 *)(this + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x20)" ( (binary_expression "this + 0x20" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined4 *)(this + 0x24);" (assignment_expression "uVar4 = *(undefined4 *)(this + 0x24)" identifier = (pointer_expression "*(undefined4 *)(this + 0x24)" * (cast_expression "(undefined4 *)(this + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x24)" ( (binary_expression "this + 0x24" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000d6ab0;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) comment (expression_statement "lVar7 = sibling_offset(aDStack_90);" (assignment_expression "lVar7 = sibling_offset(aDStack_90)" identifier = (call_expression "sibling_offset(aDStack_90)" identifier (argument_list "(aDStack_90)" ( identifier )))) ;) (if_statement "if (local_64 != 0) {\n        local_20 = lVar7;\n        (*(code *)PTR_operator_delete_0043228c)();\n        lVar7 = local_20;\n      }" if (parenthesized_expression "(local_64 != 0)" ( (binary_expression "local_64 != 0" identifier != number_literal) )) (compound_statement "{\n        local_20 = lVar7;\n        (*(code *)PTR_operator_delete_0043228c)();\n        lVar7 = local_20;\n      }" { (expression_statement "local_20 = lVar7;" (assignment_expression "local_20 = lVar7" identifier = identifier) ;) (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "lVar7 = local_20;" (assignment_expression "lVar7 = local_20" identifier = identifier) ;) })) (expression_statement "pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20);" (assignment_expression "pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20)" identifier = (cast_expression "(Dwarf_die *)((ulonglong)lVar7 >> 0x20)" ( (type_descriptor "Dwarf_die *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)lVar7 >> 0x20)" ( (binary_expression "(ulonglong)lVar7 >> 0x20" (cast_expression "(ulonglong)lVar7" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) }) while (parenthesized_expression "(0 < lVar7)" ( (binary_expression "0 < lVar7" number_literal < identifier) )) ;)) }))) (expression_statement "uVar6 = *(undefined4 *)(this + 0x20);" (assignment_expression "uVar6 = *(undefined4 *)(this + 0x20)" identifier = (pointer_expression "*(undefined4 *)(this + 0x20)" * (cast_expression "(undefined4 *)(this + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x20)" ( (binary_expression "this + 0x20" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined4 *)(this + 0x24);" (assignment_expression "uVar4 = *(undefined4 *)(this + 0x24)" identifier = (pointer_expression "*(undefined4 *)(this + 0x24)" * (cast_expression "(undefined4 *)(this + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x24)" ( (binary_expression "this + 0x24" identifier + number_literal) ))))) ;) (labeled_statement "LAB_000d6ab0:\n  return CONCAT44(uVar6,uVar4);" statement_identifier : (return_statement "return CONCAT44(uVar6,uVar4);" return (call_expression "CONCAT44(uVar6,uVar4)" identifier (argument_list "(uVar6,uVar4)" ( identifier , identifier ))) ;)) })))
(translation_unit "/* WARNING: Removing unreachable block (ram,0x000d6aa0) */\n/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */\n/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */\n/* DWARF original prototype: off_t sibling_offset(Dwarf_die * this) */\n\noff_t __thiscall gold::Dwarf_die::sibling_offset(Dwarf_die *this)\n\n{\n  undefined3 extraout_var;\n  int iVar1;\n  bool bVar2;\n  Dwarf_die *parent;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  off_t oVar7;\n  undefined4 in_stack_ffffff64;\n  Dwarf_die die;\n  \n  if (this->abbrev_code_ == (Abbrev_code *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x4a8,\n                        PTR_s_alize_xindex_004323b4 + -0x5fbc);\n  }\n  iVar5 = *(int *)&this->sibling_offset_;\n  iVar3 = (int)this->sibling_offset_;\n  if (iVar5 != 0 || iVar3 != 0) goto LAB_000d69f0;\n  iVar1 = *(int *)&this->abbrev_code_->field_0x4;\n  if (-1 < iVar1) {\n    oVar7 = skip_attributes(this);\n    this->sibling_offset_ = oVar7;\n    return oVar7;\n  }\n  if ((iVar1 << 1 < 0) && (this->attributes_read_ == false)) {\n    bVar2 = read_attributes(this);\n    if (CONCAT31(extraout_var,bVar2) == 0) {\nLAB_000d69f0:\n      return CONCAT44(iVar5,iVar3);\n    }\n    iVar5 = *(int *)&this->sibling_offset_;\n    iVar3 = (int)this->sibling_offset_;\n    if (iVar5 != 0 || iVar3 != 0) goto LAB_000d69f0;\n  }\n  oVar7 = child_offset(this);\n  parent = (Dwarf_die *)((ulonglong)oVar7 >> 0x20);\n  if (oVar7 < 0x100000000) {\n    if (parent == (Dwarf_die *)0x0) {\n      if ((int)oVar7 == 0) {\n        uVar6 = *(undefined4 *)&this->sibling_offset_;\n        uVar4 = (undefined4)this->sibling_offset_;\n        goto LAB_000d6ab0;\n      }\n      goto LAB_000d6a28;\n    }\n  }\n  else {\nLAB_000d6a28:\n    do {\n      Dwarf_die(&die,this->dwinfo_,CONCAT44(this,in_stack_ffffff64),parent);\n      if ((die.abbrev_code_ == (Abbrev_code *)0x0) || ((die.abbrev_code_)->tag == 0)) {\n        if (die.attributes_.\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            ._M_impl._M_start != (pointer)0x0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)&this->sibling_offset_;\n          uVar4 = (undefined4)this->sibling_offset_;\n          goto LAB_000d6ab0;\n        }\n        break;\n      }\n                    /* try { // try from 000d6a60 to 000d6a67 has its CatchHandler @ 000d6b60 */\n      oVar7 = sibling_offset(&die);\n      if (die.attributes_.\n          super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n          ._M_impl._M_start != (pointer)0x0) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      parent = (Dwarf_die *)((ulonglong)oVar7 >> 0x20);\n    } while (0 < oVar7);\n  }\n  uVar6 = *(undefined4 *)&this->sibling_offset_;\n  uVar4 = (undefined4)this->sibling_offset_;\nLAB_000d6ab0:\n  return CONCAT44(uVar6,uVar4);\n}\n\n" comment comment comment comment (function_definition "off_t __thiscall gold::Dwarf_die::sibling_offset(Dwarf_die *this)\n\n{\n  undefined3 extraout_var;\n  int iVar1;\n  bool bVar2;\n  Dwarf_die *parent;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  off_t oVar7;\n  undefined4 in_stack_ffffff64;\n  Dwarf_die die;\n  \n  if (this->abbrev_code_ == (Abbrev_code *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x4a8,\n                        PTR_s_alize_xindex_004323b4 + -0x5fbc);\n  }\n  iVar5 = *(int *)&this->sibling_offset_;\n  iVar3 = (int)this->sibling_offset_;\n  if (iVar5 != 0 || iVar3 != 0) goto LAB_000d69f0;\n  iVar1 = *(int *)&this->abbrev_code_->field_0x4;\n  if (-1 < iVar1) {\n    oVar7 = skip_attributes(this);\n    this->sibling_offset_ = oVar7;\n    return oVar7;\n  }\n  if ((iVar1 << 1 < 0) && (this->attributes_read_ == false)) {\n    bVar2 = read_attributes(this);\n    if (CONCAT31(extraout_var,bVar2) == 0) {\nLAB_000d69f0:\n      return CONCAT44(iVar5,iVar3);\n    }\n    iVar5 = *(int *)&this->sibling_offset_;\n    iVar3 = (int)this->sibling_offset_;\n    if (iVar5 != 0 || iVar3 != 0) goto LAB_000d69f0;\n  }\n  oVar7 = child_offset(this);\n  parent = (Dwarf_die *)((ulonglong)oVar7 >> 0x20);\n  if (oVar7 < 0x100000000) {\n    if (parent == (Dwarf_die *)0x0) {\n      if ((int)oVar7 == 0) {\n        uVar6 = *(undefined4 *)&this->sibling_offset_;\n        uVar4 = (undefined4)this->sibling_offset_;\n        goto LAB_000d6ab0;\n      }\n      goto LAB_000d6a28;\n    }\n  }\n  else {\nLAB_000d6a28:\n    do {\n      Dwarf_die(&die,this->dwinfo_,CONCAT44(this,in_stack_ffffff64),parent);\n      if ((die.abbrev_code_ == (Abbrev_code *)0x0) || ((die.abbrev_code_)->tag == 0)) {\n        if (die.attributes_.\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            ._M_impl._M_start != (pointer)0x0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)&this->sibling_offset_;\n          uVar4 = (undefined4)this->sibling_offset_;\n          goto LAB_000d6ab0;\n        }\n        break;\n      }\n                    /* try { // try from 000d6a60 to 000d6a67 has its CatchHandler @ 000d6b60 */\n      oVar7 = sibling_offset(&die);\n      if (die.attributes_.\n          super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n          ._M_impl._M_start != (pointer)0x0) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      parent = (Dwarf_die *)((ulonglong)oVar7 >> 0x20);\n    } while (0 < oVar7);\n  }\n  uVar6 = *(undefined4 *)&this->sibling_offset_;\n  uVar4 = (undefined4)this->sibling_offset_;\nLAB_000d6ab0:\n  return CONCAT44(uVar6,uVar4);\n}" type_identifier (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Dwarf_die::" identifier : : identifier : :) (function_declarator "sibling_offset(Dwarf_die *this)" identifier (parameter_list "(Dwarf_die *this)" ( (parameter_declaration "Dwarf_die *this" type_identifier (pointer_declarator "*this" * identifier)) ))) (compound_statement "{\n  undefined3 extraout_var;\n  int iVar1;\n  bool bVar2;\n  Dwarf_die *parent;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  off_t oVar7;\n  undefined4 in_stack_ffffff64;\n  Dwarf_die die;\n  \n  if (this->abbrev_code_ == (Abbrev_code *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x4a8,\n                        PTR_s_alize_xindex_004323b4 + -0x5fbc);\n  }\n  iVar5 = *(int *)&this->sibling_offset_;\n  iVar3 = (int)this->sibling_offset_;\n  if (iVar5 != 0 || iVar3 != 0) goto LAB_000d69f0;\n  iVar1 = *(int *)&this->abbrev_code_->field_0x4;\n  if (-1 < iVar1) {\n    oVar7 = skip_attributes(this);\n    this->sibling_offset_ = oVar7;\n    return oVar7;\n  }\n  if ((iVar1 << 1 < 0) && (this->attributes_read_ == false)) {\n    bVar2 = read_attributes(this);\n    if (CONCAT31(extraout_var,bVar2) == 0) {\nLAB_000d69f0:\n      return CONCAT44(iVar5,iVar3);\n    }\n    iVar5 = *(int *)&this->sibling_offset_;\n    iVar3 = (int)this->sibling_offset_;\n    if (iVar5 != 0 || iVar3 != 0) goto LAB_000d69f0;\n  }\n  oVar7 = child_offset(this);\n  parent = (Dwarf_die *)((ulonglong)oVar7 >> 0x20);\n  if (oVar7 < 0x100000000) {\n    if (parent == (Dwarf_die *)0x0) {\n      if ((int)oVar7 == 0) {\n        uVar6 = *(undefined4 *)&this->sibling_offset_;\n        uVar4 = (undefined4)this->sibling_offset_;\n        goto LAB_000d6ab0;\n      }\n      goto LAB_000d6a28;\n    }\n  }\n  else {\nLAB_000d6a28:\n    do {\n      Dwarf_die(&die,this->dwinfo_,CONCAT44(this,in_stack_ffffff64),parent);\n      if ((die.abbrev_code_ == (Abbrev_code *)0x0) || ((die.abbrev_code_)->tag == 0)) {\n        if (die.attributes_.\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            ._M_impl._M_start != (pointer)0x0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)&this->sibling_offset_;\n          uVar4 = (undefined4)this->sibling_offset_;\n          goto LAB_000d6ab0;\n        }\n        break;\n      }\n                    /* try { // try from 000d6a60 to 000d6a67 has its CatchHandler @ 000d6b60 */\n      oVar7 = sibling_offset(&die);\n      if (die.attributes_.\n          super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n          ._M_impl._M_start != (pointer)0x0) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      parent = (Dwarf_die *)((ulonglong)oVar7 >> 0x20);\n    } while (0 < oVar7);\n  }\n  uVar6 = *(undefined4 *)&this->sibling_offset_;\n  uVar4 = (undefined4)this->sibling_offset_;\nLAB_000d6ab0:\n  return CONCAT44(uVar6,uVar4);\n}" { (declaration "undefined3 extraout_var;" type_identifier identifier ;) (declaration "int iVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "Dwarf_die *parent;" type_identifier (pointer_declarator "*parent" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "off_t oVar7;" type_identifier identifier ;) (declaration "undefined4 in_stack_ffffff64;" type_identifier identifier ;) (declaration "Dwarf_die die;" type_identifier identifier ;) (if_statement "if (this->abbrev_code_ == (Abbrev_code *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x4a8,\n                        PTR_s_alize_xindex_004323b4 + -0x5fbc);\n  }" if (parenthesized_expression "(this->abbrev_code_ == (Abbrev_code *)0x0)" ( (binary_expression "this->abbrev_code_ == (Abbrev_code *)0x0" (field_expression "this->abbrev_code_" identifier -> field_identifier) == (cast_expression "(Abbrev_code *)0x0" ( (type_descriptor "Abbrev_code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x4a8,\n                        PTR_s_alize_xindex_004323b4 + -0x5fbc);\n  }" { comment (expression_statement "do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x4a8,\n                        PTR_s_alize_xindex_004323b4 + -0x5fbc);" (call_expression "do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x4a8,\n                        PTR_s_alize_xindex_004323b4 + -0x5fbc)" identifier (argument_list "(PTR_s_alize_xindex_004323b4 + -0x6368,0x4a8,\n                        PTR_s_alize_xindex_004323b4 + -0x5fbc)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x6368" identifier + number_literal) , number_literal , (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5fbc" identifier + number_literal) ))) ;) })) (expression_statement "iVar5 = *(int *)&this->sibling_offset_;" (assignment_expression "iVar5 = *(int *)&this->sibling_offset_" identifier = (pointer_expression "*(int *)&this->sibling_offset_" * (cast_expression "(int *)&this->sibling_offset_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->sibling_offset_" & (field_expression "this->sibling_offset_" identifier -> field_identifier))))) ;) (expression_statement "iVar3 = (int)this->sibling_offset_;" (assignment_expression "iVar3 = (int)this->sibling_offset_" identifier = (cast_expression "(int)this->sibling_offset_" ( (type_descriptor "int" primitive_type) ) (field_expression "this->sibling_offset_" identifier -> field_identifier))) ;) (if_statement "if (iVar5 != 0 || iVar3 != 0) goto LAB_000d69f0;" if (parenthesized_expression "(iVar5 != 0 || iVar3 != 0)" ( (binary_expression "iVar5 != 0 || iVar3 != 0" (binary_expression "iVar5 != 0" identifier != number_literal) || (binary_expression "iVar3 != 0" identifier != number_literal)) )) (goto_statement "goto LAB_000d69f0;" goto statement_identifier ;)) (expression_statement "iVar1 = *(int *)&this->abbrev_code_->field_0x4;" (assignment_expression "iVar1 = *(int *)&this->abbrev_code_->field_0x4" identifier = (pointer_expression "*(int *)&this->abbrev_code_->field_0x4" * (cast_expression "(int *)&this->abbrev_code_->field_0x4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->abbrev_code_->field_0x4" & (field_expression "this->abbrev_code_->field_0x4" (field_expression "this->abbrev_code_" identifier -> field_identifier) -> field_identifier))))) ;) (if_statement "if (-1 < iVar1) {\n    oVar7 = skip_attributes(this);\n    this->sibling_offset_ = oVar7;\n    return oVar7;\n  }" if (parenthesized_expression "(-1 < iVar1)" ( (binary_expression "-1 < iVar1" number_literal < identifier) )) (compound_statement "{\n    oVar7 = skip_attributes(this);\n    this->sibling_offset_ = oVar7;\n    return oVar7;\n  }" { (expression_statement "oVar7 = skip_attributes(this);" (assignment_expression "oVar7 = skip_attributes(this)" identifier = (call_expression "skip_attributes(this)" identifier (argument_list "(this)" ( identifier )))) ;) (expression_statement "this->sibling_offset_ = oVar7;" (assignment_expression "this->sibling_offset_ = oVar7" (field_expression "this->sibling_offset_" identifier -> field_identifier) = identifier) ;) (return_statement "return oVar7;" return identifier ;) })) (if_statement "if ((iVar1 << 1 < 0) && (this->attributes_read_ == false)) {\n    bVar2 = read_attributes(this);\n    if (CONCAT31(extraout_var,bVar2) == 0) {\nLAB_000d69f0:\n      return CONCAT44(iVar5,iVar3);\n    }\n    iVar5 = *(int *)&this->sibling_offset_;\n    iVar3 = (int)this->sibling_offset_;\n    if (iVar5 != 0 || iVar3 != 0) goto LAB_000d69f0;\n  }" if (parenthesized_expression "((iVar1 << 1 < 0) && (this->attributes_read_ == false))" ( (binary_expression "(iVar1 << 1 < 0) && (this->attributes_read_ == false)" (parenthesized_expression "(iVar1 << 1 < 0)" ( (binary_expression "iVar1 << 1 < 0" (binary_expression "iVar1 << 1" identifier << number_literal) < number_literal) )) && (parenthesized_expression "(this->attributes_read_ == false)" ( (binary_expression "this->attributes_read_ == false" (field_expression "this->attributes_read_" identifier -> field_identifier) == false) ))) )) (compound_statement "{\n    bVar2 = read_attributes(this);\n    if (CONCAT31(extraout_var,bVar2) == 0) {\nLAB_000d69f0:\n      return CONCAT44(iVar5,iVar3);\n    }\n    iVar5 = *(int *)&this->sibling_offset_;\n    iVar3 = (int)this->sibling_offset_;\n    if (iVar5 != 0 || iVar3 != 0) goto LAB_000d69f0;\n  }" { (expression_statement "bVar2 = read_attributes(this);" (assignment_expression "bVar2 = read_attributes(this)" identifier = (call_expression "read_attributes(this)" identifier (argument_list "(this)" ( identifier )))) ;) (if_statement "if (CONCAT31(extraout_var,bVar2) == 0) {\nLAB_000d69f0:\n      return CONCAT44(iVar5,iVar3);\n    }" if (parenthesized_expression "(CONCAT31(extraout_var,bVar2) == 0)" ( (binary_expression "CONCAT31(extraout_var,bVar2) == 0" (call_expression "CONCAT31(extraout_var,bVar2)" identifier (argument_list "(extraout_var,bVar2)" ( identifier , identifier ))) == number_literal) )) (compound_statement "{\nLAB_000d69f0:\n      return CONCAT44(iVar5,iVar3);\n    }" { (labeled_statement "LAB_000d69f0:\n      return CONCAT44(iVar5,iVar3);" statement_identifier : (return_statement "return CONCAT44(iVar5,iVar3);" return (call_expression "CONCAT44(iVar5,iVar3)" identifier (argument_list "(iVar5,iVar3)" ( identifier , identifier ))) ;)) })) (expression_statement "iVar5 = *(int *)&this->sibling_offset_;" (assignment_expression "iVar5 = *(int *)&this->sibling_offset_" identifier = (pointer_expression "*(int *)&this->sibling_offset_" * (cast_expression "(int *)&this->sibling_offset_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->sibling_offset_" & (field_expression "this->sibling_offset_" identifier -> field_identifier))))) ;) (expression_statement "iVar3 = (int)this->sibling_offset_;" (assignment_expression "iVar3 = (int)this->sibling_offset_" identifier = (cast_expression "(int)this->sibling_offset_" ( (type_descriptor "int" primitive_type) ) (field_expression "this->sibling_offset_" identifier -> field_identifier))) ;) (if_statement "if (iVar5 != 0 || iVar3 != 0) goto LAB_000d69f0;" if (parenthesized_expression "(iVar5 != 0 || iVar3 != 0)" ( (binary_expression "iVar5 != 0 || iVar3 != 0" (binary_expression "iVar5 != 0" identifier != number_literal) || (binary_expression "iVar3 != 0" identifier != number_literal)) )) (goto_statement "goto LAB_000d69f0;" goto statement_identifier ;)) })) (expression_statement "oVar7 = child_offset(this);" (assignment_expression "oVar7 = child_offset(this)" identifier = (call_expression "child_offset(this)" identifier (argument_list "(this)" ( identifier )))) ;) (expression_statement "parent = (Dwarf_die *)((ulonglong)oVar7 >> 0x20);" (assignment_expression "parent = (Dwarf_die *)((ulonglong)oVar7 >> 0x20)" identifier = (cast_expression "(Dwarf_die *)((ulonglong)oVar7 >> 0x20)" ( (type_descriptor "Dwarf_die *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)oVar7 >> 0x20)" ( (binary_expression "(ulonglong)oVar7 >> 0x20" (cast_expression "(ulonglong)oVar7" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (oVar7 < 0x100000000) {\n    if (parent == (Dwarf_die *)0x0) {\n      if ((int)oVar7 == 0) {\n        uVar6 = *(undefined4 *)&this->sibling_offset_;\n        uVar4 = (undefined4)this->sibling_offset_;\n        goto LAB_000d6ab0;\n      }\n      goto LAB_000d6a28;\n    }\n  }\n  else {\nLAB_000d6a28:\n    do {\n      Dwarf_die(&die,this->dwinfo_,CONCAT44(this,in_stack_ffffff64),parent);\n      if ((die.abbrev_code_ == (Abbrev_code *)0x0) || ((die.abbrev_code_)->tag == 0)) {\n        if (die.attributes_.\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            ._M_impl._M_start != (pointer)0x0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)&this->sibling_offset_;\n          uVar4 = (undefined4)this->sibling_offset_;\n          goto LAB_000d6ab0;\n        }\n        break;\n      }\n                    /* try { // try from 000d6a60 to 000d6a67 has its CatchHandler @ 000d6b60 */\n      oVar7 = sibling_offset(&die);\n      if (die.attributes_.\n          super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n          ._M_impl._M_start != (pointer)0x0) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      parent = (Dwarf_die *)((ulonglong)oVar7 >> 0x20);\n    } while (0 < oVar7);\n  }" if (parenthesized_expression "(oVar7 < 0x100000000)" ( (binary_expression "oVar7 < 0x100000000" identifier < number_literal) )) (compound_statement "{\n    if (parent == (Dwarf_die *)0x0) {\n      if ((int)oVar7 == 0) {\n        uVar6 = *(undefined4 *)&this->sibling_offset_;\n        uVar4 = (undefined4)this->sibling_offset_;\n        goto LAB_000d6ab0;\n      }\n      goto LAB_000d6a28;\n    }\n  }" { (if_statement "if (parent == (Dwarf_die *)0x0) {\n      if ((int)oVar7 == 0) {\n        uVar6 = *(undefined4 *)&this->sibling_offset_;\n        uVar4 = (undefined4)this->sibling_offset_;\n        goto LAB_000d6ab0;\n      }\n      goto LAB_000d6a28;\n    }" if (parenthesized_expression "(parent == (Dwarf_die *)0x0)" ( (binary_expression "parent == (Dwarf_die *)0x0" identifier == (cast_expression "(Dwarf_die *)0x0" ( (type_descriptor "Dwarf_die *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if ((int)oVar7 == 0) {\n        uVar6 = *(undefined4 *)&this->sibling_offset_;\n        uVar4 = (undefined4)this->sibling_offset_;\n        goto LAB_000d6ab0;\n      }\n      goto LAB_000d6a28;\n    }" { (if_statement "if ((int)oVar7 == 0) {\n        uVar6 = *(undefined4 *)&this->sibling_offset_;\n        uVar4 = (undefined4)this->sibling_offset_;\n        goto LAB_000d6ab0;\n      }" if (parenthesized_expression "((int)oVar7 == 0)" ( (binary_expression "(int)oVar7 == 0" (cast_expression "(int)oVar7" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (compound_statement "{\n        uVar6 = *(undefined4 *)&this->sibling_offset_;\n        uVar4 = (undefined4)this->sibling_offset_;\n        goto LAB_000d6ab0;\n      }" { (expression_statement "uVar6 = *(undefined4 *)&this->sibling_offset_;" (assignment_expression "uVar6 = *(undefined4 *)&this->sibling_offset_" identifier = (pointer_expression "*(undefined4 *)&this->sibling_offset_" * (cast_expression "(undefined4 *)&this->sibling_offset_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->sibling_offset_" & (field_expression "this->sibling_offset_" identifier -> field_identifier))))) ;) (expression_statement "uVar4 = (undefined4)this->sibling_offset_;" (assignment_expression "uVar4 = (undefined4)this->sibling_offset_" identifier = (cast_expression "(undefined4)this->sibling_offset_" ( (type_descriptor "undefined4" type_identifier) ) (field_expression "this->sibling_offset_" identifier -> field_identifier))) ;) (goto_statement "goto LAB_000d6ab0;" goto statement_identifier ;) })) (goto_statement "goto LAB_000d6a28;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_000d6a28:\n    do {\n      Dwarf_die(&die,this->dwinfo_,CONCAT44(this,in_stack_ffffff64),parent);\n      if ((die.abbrev_code_ == (Abbrev_code *)0x0) || ((die.abbrev_code_)->tag == 0)) {\n        if (die.attributes_.\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            ._M_impl._M_start != (pointer)0x0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)&this->sibling_offset_;\n          uVar4 = (undefined4)this->sibling_offset_;\n          goto LAB_000d6ab0;\n        }\n        break;\n      }\n                    /* try { // try from 000d6a60 to 000d6a67 has its CatchHandler @ 000d6b60 */\n      oVar7 = sibling_offset(&die);\n      if (die.attributes_.\n          super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n          ._M_impl._M_start != (pointer)0x0) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      parent = (Dwarf_die *)((ulonglong)oVar7 >> 0x20);\n    } while (0 < oVar7);\n  }" else (compound_statement "{\nLAB_000d6a28:\n    do {\n      Dwarf_die(&die,this->dwinfo_,CONCAT44(this,in_stack_ffffff64),parent);\n      if ((die.abbrev_code_ == (Abbrev_code *)0x0) || ((die.abbrev_code_)->tag == 0)) {\n        if (die.attributes_.\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            ._M_impl._M_start != (pointer)0x0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)&this->sibling_offset_;\n          uVar4 = (undefined4)this->sibling_offset_;\n          goto LAB_000d6ab0;\n        }\n        break;\n      }\n                    /* try { // try from 000d6a60 to 000d6a67 has its CatchHandler @ 000d6b60 */\n      oVar7 = sibling_offset(&die);\n      if (die.attributes_.\n          super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n          ._M_impl._M_start != (pointer)0x0) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      parent = (Dwarf_die *)((ulonglong)oVar7 >> 0x20);\n    } while (0 < oVar7);\n  }" { (labeled_statement "LAB_000d6a28:\n    do {\n      Dwarf_die(&die,this->dwinfo_,CONCAT44(this,in_stack_ffffff64),parent);\n      if ((die.abbrev_code_ == (Abbrev_code *)0x0) || ((die.abbrev_code_)->tag == 0)) {\n        if (die.attributes_.\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            ._M_impl._M_start != (pointer)0x0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)&this->sibling_offset_;\n          uVar4 = (undefined4)this->sibling_offset_;\n          goto LAB_000d6ab0;\n        }\n        break;\n      }\n                    /* try { // try from 000d6a60 to 000d6a67 has its CatchHandler @ 000d6b60 */\n      oVar7 = sibling_offset(&die);\n      if (die.attributes_.\n          super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n          ._M_impl._M_start != (pointer)0x0) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      parent = (Dwarf_die *)((ulonglong)oVar7 >> 0x20);\n    } while (0 < oVar7);" statement_identifier : (do_statement "do {\n      Dwarf_die(&die,this->dwinfo_,CONCAT44(this,in_stack_ffffff64),parent);\n      if ((die.abbrev_code_ == (Abbrev_code *)0x0) || ((die.abbrev_code_)->tag == 0)) {\n        if (die.attributes_.\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            ._M_impl._M_start != (pointer)0x0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)&this->sibling_offset_;\n          uVar4 = (undefined4)this->sibling_offset_;\n          goto LAB_000d6ab0;\n        }\n        break;\n      }\n                    /* try { // try from 000d6a60 to 000d6a67 has its CatchHandler @ 000d6b60 */\n      oVar7 = sibling_offset(&die);\n      if (die.attributes_.\n          super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n          ._M_impl._M_start != (pointer)0x0) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      parent = (Dwarf_die *)((ulonglong)oVar7 >> 0x20);\n    } while (0 < oVar7);" do (compound_statement "{\n      Dwarf_die(&die,this->dwinfo_,CONCAT44(this,in_stack_ffffff64),parent);\n      if ((die.abbrev_code_ == (Abbrev_code *)0x0) || ((die.abbrev_code_)->tag == 0)) {\n        if (die.attributes_.\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            ._M_impl._M_start != (pointer)0x0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)&this->sibling_offset_;\n          uVar4 = (undefined4)this->sibling_offset_;\n          goto LAB_000d6ab0;\n        }\n        break;\n      }\n                    /* try { // try from 000d6a60 to 000d6a67 has its CatchHandler @ 000d6b60 */\n      oVar7 = sibling_offset(&die);\n      if (die.attributes_.\n          super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n          ._M_impl._M_start != (pointer)0x0) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      parent = (Dwarf_die *)((ulonglong)oVar7 >> 0x20);\n    }" { (expression_statement "Dwarf_die(&die,this->dwinfo_,CONCAT44(this,in_stack_ffffff64),parent);" (call_expression "Dwarf_die(&die,this->dwinfo_,CONCAT44(this,in_stack_ffffff64),parent)" identifier (argument_list "(&die,this->dwinfo_,CONCAT44(this,in_stack_ffffff64),parent)" ( (pointer_expression "&die" & identifier) , (field_expression "this->dwinfo_" identifier -> field_identifier) , (call_expression "CONCAT44(this,in_stack_ffffff64)" identifier (argument_list "(this,in_stack_ffffff64)" ( identifier , identifier ))) , identifier ))) ;) (if_statement "if ((die.abbrev_code_ == (Abbrev_code *)0x0) || ((die.abbrev_code_)->tag == 0)) {\n        if (die.attributes_.\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            ._M_impl._M_start != (pointer)0x0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)&this->sibling_offset_;\n          uVar4 = (undefined4)this->sibling_offset_;\n          goto LAB_000d6ab0;\n        }\n        break;\n      }" if (parenthesized_expression "((die.abbrev_code_ == (Abbrev_code *)0x0) || ((die.abbrev_code_)->tag == 0))" ( (binary_expression "(die.abbrev_code_ == (Abbrev_code *)0x0) || ((die.abbrev_code_)->tag == 0)" (parenthesized_expression "(die.abbrev_code_ == (Abbrev_code *)0x0)" ( (binary_expression "die.abbrev_code_ == (Abbrev_code *)0x0" (field_expression "die.abbrev_code_" identifier . field_identifier) == (cast_expression "(Abbrev_code *)0x0" ( (type_descriptor "Abbrev_code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "((die.abbrev_code_)->tag == 0)" ( (binary_expression "(die.abbrev_code_)->tag == 0" (field_expression "(die.abbrev_code_)->tag" (parenthesized_expression "(die.abbrev_code_)" ( (field_expression "die.abbrev_code_" identifier . field_identifier) )) -> field_identifier) == number_literal) ))) )) (compound_statement "{\n        if (die.attributes_.\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            ._M_impl._M_start != (pointer)0x0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)&this->sibling_offset_;\n          uVar4 = (undefined4)this->sibling_offset_;\n          goto LAB_000d6ab0;\n        }\n        break;\n      }" { (if_statement "if (die.attributes_.\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            ._M_impl._M_start != (pointer)0x0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)&this->sibling_offset_;\n          uVar4 = (undefined4)this->sibling_offset_;\n          goto LAB_000d6ab0;\n        }" if (parenthesized_expression "(die.attributes_.\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n            ._M_impl._M_start != (pointer)0x0)" ( (ERROR "die.attributes_.\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::" (comma_expression "die.attributes_.\n            super__Vector_base<gold::Dwarf_die::Attribute_value,_std" (binary_expression "die.attributes_.\n            super__Vector_base<gold" (field_expression "die.attributes_.\n            super__Vector_base" (field_expression "die.attributes_" identifier . field_identifier) . field_identifier) < identifier) (ERROR "::Dwarf_die::Attribute_value" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Attribute_value>_>\n            ._M_impl._M_start != (pointer)0x0" (field_expression "Attribute_value>_>\n            ._M_impl._M_start" (field_expression "Attribute_value>_>\n            ._M_impl" (binary_expression "Attribute_value>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) != (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)&this->sibling_offset_;\n          uVar4 = (undefined4)this->sibling_offset_;\n          goto LAB_000d6ab0;\n        }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar6 = *(undefined4 *)&this->sibling_offset_;" (assignment_expression "uVar6 = *(undefined4 *)&this->sibling_offset_" identifier = (pointer_expression "*(undefined4 *)&this->sibling_offset_" * (cast_expression "(undefined4 *)&this->sibling_offset_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->sibling_offset_" & (field_expression "this->sibling_offset_" identifier -> field_identifier))))) ;) (expression_statement "uVar4 = (undefined4)this->sibling_offset_;" (assignment_expression "uVar4 = (undefined4)this->sibling_offset_" identifier = (cast_expression "(undefined4)this->sibling_offset_" ( (type_descriptor "undefined4" type_identifier) ) (field_expression "this->sibling_offset_" identifier -> field_identifier))) ;) (goto_statement "goto LAB_000d6ab0;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) comment (expression_statement "oVar7 = sibling_offset(&die);" (assignment_expression "oVar7 = sibling_offset(&die)" identifier = (call_expression "sibling_offset(&die)" identifier (argument_list "(&die)" ( (pointer_expression "&die" & identifier) )))) ;) (if_statement "if (die.attributes_.\n          super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n          ._M_impl._M_start != (pointer)0x0) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }" if (parenthesized_expression "(die.attributes_.\n          super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::Attribute_value>_>\n          ._M_impl._M_start != (pointer)0x0)" ( (ERROR "die.attributes_.\n          super__Vector_base<gold::Dwarf_die::Attribute_value,_std::allocator<gold::Dwarf_die::" (comma_expression "die.attributes_.\n          super__Vector_base<gold::Dwarf_die::Attribute_value,_std" (binary_expression "die.attributes_.\n          super__Vector_base<gold" (field_expression "die.attributes_.\n          super__Vector_base" (field_expression "die.attributes_" identifier . field_identifier) . field_identifier) < identifier) (ERROR "::Dwarf_die::Attribute_value" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Attribute_value>_>\n          ._M_impl._M_start != (pointer)0x0" (field_expression "Attribute_value>_>\n          ._M_impl._M_start" (field_expression "Attribute_value>_>\n          ._M_impl" (binary_expression "Attribute_value>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) != (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n        (*(code *)PTR_operator_delete_0043228c)();\n      }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "parent = (Dwarf_die *)((ulonglong)oVar7 >> 0x20);" (assignment_expression "parent = (Dwarf_die *)((ulonglong)oVar7 >> 0x20)" identifier = (cast_expression "(Dwarf_die *)((ulonglong)oVar7 >> 0x20)" ( (type_descriptor "Dwarf_die *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)oVar7 >> 0x20)" ( (binary_expression "(ulonglong)oVar7 >> 0x20" (cast_expression "(ulonglong)oVar7" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) }) while (parenthesized_expression "(0 < oVar7)" ( (binary_expression "0 < oVar7" number_literal < identifier) )) ;)) }))) (expression_statement "uVar6 = *(undefined4 *)&this->sibling_offset_;" (assignment_expression "uVar6 = *(undefined4 *)&this->sibling_offset_" identifier = (pointer_expression "*(undefined4 *)&this->sibling_offset_" * (cast_expression "(undefined4 *)&this->sibling_offset_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->sibling_offset_" & (field_expression "this->sibling_offset_" identifier -> field_identifier))))) ;) (expression_statement "uVar4 = (undefined4)this->sibling_offset_;" (assignment_expression "uVar4 = (undefined4)this->sibling_offset_" identifier = (cast_expression "(undefined4)this->sibling_offset_" ( (type_descriptor "undefined4" type_identifier) ) (field_expression "this->sibling_offset_" identifier -> field_identifier))) ;) (labeled_statement "LAB_000d6ab0:\n  return CONCAT44(uVar6,uVar4);" statement_identifier : (return_statement "return CONCAT44(uVar6,uVar4);" return (call_expression "CONCAT44(uVar6,uVar4)" identifier (argument_list "(uVar6,uVar4)" ( identifier , identifier ))) ;)) })))
(translation_unit "undefined8 __thiscall gold::Dwarf_die::sibling_offset(Dwarf_die *this)\n\n{\n  int iVar1;\n  Dwarf_die *pDVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  longlong lVar7;\n  undefined8 uVar8;\n  undefined4 in_stack_ffffff64;\n  Dwarf_die aDStack_90 [40];\n  int *local_68;\n  int local_64;\n  undefined8 local_20;\n  \n  if (*(int *)(this + 0x28) == 0) {\n                    \n    do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x4a8,\n                        PTR_s_alize_xindex_004323b4 + -0x5fbc);\n  }\n  iVar5 = *(int *)(this + 0x20);\n  iVar3 = *(int *)(this + 0x24);\n  if (iVar5 != 0 || iVar3 != 0) goto LAB_000d69f0;\n  iVar1 = *(int *)(*(int *)(this + 0x28) + 4);\n  if (-1 < iVar1) {\n    uVar8 = skip_attributes(this);\n    *(undefined8 *)(this + 0x20) = uVar8;\n    return uVar8;\n  }\n  if ((iVar1 << 1 < 0) && (local_20._0_4_ = iVar3, this[0x38] == (Dwarf_die)0x0)) {\n    iVar1 = FUN_000d46c8();\n    iVar3 = local_20._0_4_;\n    if (iVar1 == 0) {\nLAB_000d69f0:\n      return CONCAT44(iVar5,iVar3);\n    }\n    iVar5 = *(int *)(this + 0x20);\n    iVar3 = *(int *)(this + 0x24);\n    if (iVar5 != 0 || iVar3 != 0) goto LAB_000d69f0;\n  }\n  lVar7 = child_offset(this);\n  pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20);\n  if (lVar7 < 0x100000000) {\n    if (pDVar2 == (Dwarf_die *)0x0) {\n      if ((int)lVar7 == 0) {\n        uVar6 = *(undefined4 *)(this + 0x20);\n        uVar4 = *(undefined4 *)(this + 0x24);\n        goto LAB_000d6ab0;\n      }\n      goto LAB_000d6a28;\n    }\n  }\n  else {\nLAB_000d6a28:\n    do {\n      Dwarf_die(aDStack_90,*(Dwarf_info_reader **)this,CONCAT44(this,in_stack_ffffff64),pDVar2);\n      if ((local_68 == (int *)0x0) || (*local_68 == 0)) {\n        if (local_64 != 0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)(this + 0x20);\n          uVar4 = *(undefined4 *)(this + 0x24);\n          goto LAB_000d6ab0;\n        }\n        break;\n      }\n                    \n      lVar7 = sibling_offset(aDStack_90);\n      if (local_64 != 0) {\n        local_20 = lVar7;\n        (*(code *)PTR_operator_delete_0043228c)();\n        lVar7 = local_20;\n      }\n      pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20);\n    } while (0 < lVar7);\n  }\n  uVar6 = *(undefined4 *)(this + 0x20);\n  uVar4 = *(undefined4 *)(this + 0x24);\nLAB_000d6ab0:\n  return CONCAT44(uVar6,uVar4);\n}\n\n" (function_definition "undefined8 __thiscall gold::Dwarf_die::sibling_offset(Dwarf_die *this)\n\n{\n  int iVar1;\n  Dwarf_die *pDVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  longlong lVar7;\n  undefined8 uVar8;\n  undefined4 in_stack_ffffff64;\n  Dwarf_die aDStack_90 [40];\n  int *local_68;\n  int local_64;\n  undefined8 local_20;\n  \n  if (*(int *)(this + 0x28) == 0) {\n                    \n    do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x4a8,\n                        PTR_s_alize_xindex_004323b4 + -0x5fbc);\n  }\n  iVar5 = *(int *)(this + 0x20);\n  iVar3 = *(int *)(this + 0x24);\n  if (iVar5 != 0 || iVar3 != 0) goto LAB_000d69f0;\n  iVar1 = *(int *)(*(int *)(this + 0x28) + 4);\n  if (-1 < iVar1) {\n    uVar8 = skip_attributes(this);\n    *(undefined8 *)(this + 0x20) = uVar8;\n    return uVar8;\n  }\n  if ((iVar1 << 1 < 0) && (local_20._0_4_ = iVar3, this[0x38] == (Dwarf_die)0x0)) {\n    iVar1 = FUN_000d46c8();\n    iVar3 = local_20._0_4_;\n    if (iVar1 == 0) {\nLAB_000d69f0:\n      return CONCAT44(iVar5,iVar3);\n    }\n    iVar5 = *(int *)(this + 0x20);\n    iVar3 = *(int *)(this + 0x24);\n    if (iVar5 != 0 || iVar3 != 0) goto LAB_000d69f0;\n  }\n  lVar7 = child_offset(this);\n  pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20);\n  if (lVar7 < 0x100000000) {\n    if (pDVar2 == (Dwarf_die *)0x0) {\n      if ((int)lVar7 == 0) {\n        uVar6 = *(undefined4 *)(this + 0x20);\n        uVar4 = *(undefined4 *)(this + 0x24);\n        goto LAB_000d6ab0;\n      }\n      goto LAB_000d6a28;\n    }\n  }\n  else {\nLAB_000d6a28:\n    do {\n      Dwarf_die(aDStack_90,*(Dwarf_info_reader **)this,CONCAT44(this,in_stack_ffffff64),pDVar2);\n      if ((local_68 == (int *)0x0) || (*local_68 == 0)) {\n        if (local_64 != 0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)(this + 0x20);\n          uVar4 = *(undefined4 *)(this + 0x24);\n          goto LAB_000d6ab0;\n        }\n        break;\n      }\n                    \n      lVar7 = sibling_offset(aDStack_90);\n      if (local_64 != 0) {\n        local_20 = lVar7;\n        (*(code *)PTR_operator_delete_0043228c)();\n        lVar7 = local_20;\n      }\n      pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20);\n    } while (0 < lVar7);\n  }\n  uVar6 = *(undefined4 *)(this + 0x20);\n  uVar4 = *(undefined4 *)(this + 0x24);\nLAB_000d6ab0:\n  return CONCAT44(uVar6,uVar4);\n}" type_identifier (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Dwarf_die::" identifier : : identifier : :) (function_declarator "sibling_offset(Dwarf_die *this)" identifier (parameter_list "(Dwarf_die *this)" ( (parameter_declaration "Dwarf_die *this" type_identifier (pointer_declarator "*this" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  Dwarf_die *pDVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  longlong lVar7;\n  undefined8 uVar8;\n  undefined4 in_stack_ffffff64;\n  Dwarf_die aDStack_90 [40];\n  int *local_68;\n  int local_64;\n  undefined8 local_20;\n  \n  if (*(int *)(this + 0x28) == 0) {\n                    \n    do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x4a8,\n                        PTR_s_alize_xindex_004323b4 + -0x5fbc);\n  }\n  iVar5 = *(int *)(this + 0x20);\n  iVar3 = *(int *)(this + 0x24);\n  if (iVar5 != 0 || iVar3 != 0) goto LAB_000d69f0;\n  iVar1 = *(int *)(*(int *)(this + 0x28) + 4);\n  if (-1 < iVar1) {\n    uVar8 = skip_attributes(this);\n    *(undefined8 *)(this + 0x20) = uVar8;\n    return uVar8;\n  }\n  if ((iVar1 << 1 < 0) && (local_20._0_4_ = iVar3, this[0x38] == (Dwarf_die)0x0)) {\n    iVar1 = FUN_000d46c8();\n    iVar3 = local_20._0_4_;\n    if (iVar1 == 0) {\nLAB_000d69f0:\n      return CONCAT44(iVar5,iVar3);\n    }\n    iVar5 = *(int *)(this + 0x20);\n    iVar3 = *(int *)(this + 0x24);\n    if (iVar5 != 0 || iVar3 != 0) goto LAB_000d69f0;\n  }\n  lVar7 = child_offset(this);\n  pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20);\n  if (lVar7 < 0x100000000) {\n    if (pDVar2 == (Dwarf_die *)0x0) {\n      if ((int)lVar7 == 0) {\n        uVar6 = *(undefined4 *)(this + 0x20);\n        uVar4 = *(undefined4 *)(this + 0x24);\n        goto LAB_000d6ab0;\n      }\n      goto LAB_000d6a28;\n    }\n  }\n  else {\nLAB_000d6a28:\n    do {\n      Dwarf_die(aDStack_90,*(Dwarf_info_reader **)this,CONCAT44(this,in_stack_ffffff64),pDVar2);\n      if ((local_68 == (int *)0x0) || (*local_68 == 0)) {\n        if (local_64 != 0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)(this + 0x20);\n          uVar4 = *(undefined4 *)(this + 0x24);\n          goto LAB_000d6ab0;\n        }\n        break;\n      }\n                    \n      lVar7 = sibling_offset(aDStack_90);\n      if (local_64 != 0) {\n        local_20 = lVar7;\n        (*(code *)PTR_operator_delete_0043228c)();\n        lVar7 = local_20;\n      }\n      pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20);\n    } while (0 < lVar7);\n  }\n  uVar6 = *(undefined4 *)(this + 0x20);\n  uVar4 = *(undefined4 *)(this + 0x24);\nLAB_000d6ab0:\n  return CONCAT44(uVar6,uVar4);\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "Dwarf_die *pDVar2;" type_identifier (pointer_declarator "*pDVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "longlong lVar7;" type_identifier identifier ;) (declaration "undefined8 uVar8;" type_identifier identifier ;) (declaration "undefined4 in_stack_ffffff64;" type_identifier identifier ;) (declaration "Dwarf_die aDStack_90 [40];" type_identifier (array_declarator "aDStack_90 [40]" identifier [ number_literal ]) ;) (declaration "int *local_68;" primitive_type (pointer_declarator "*local_68" * identifier) ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "undefined8 local_20;" type_identifier identifier ;) (if_statement "if (*(int *)(this + 0x28) == 0) {\n                    \n    do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x4a8,\n                        PTR_s_alize_xindex_004323b4 + -0x5fbc);\n  }" if (parenthesized_expression "(*(int *)(this + 0x28) == 0)" ( (binary_expression "*(int *)(this + 0x28) == 0" (pointer_expression "*(int *)(this + 0x28)" * (cast_expression "(int *)(this + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x28)" ( (binary_expression "this + 0x28" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    \n    do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x4a8,\n                        PTR_s_alize_xindex_004323b4 + -0x5fbc);\n  }" { (expression_statement "do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x4a8,\n                        PTR_s_alize_xindex_004323b4 + -0x5fbc);" (call_expression "do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x4a8,\n                        PTR_s_alize_xindex_004323b4 + -0x5fbc)" identifier (argument_list "(PTR_s_alize_xindex_004323b4 + -0x6368,0x4a8,\n                        PTR_s_alize_xindex_004323b4 + -0x5fbc)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x6368" identifier + number_literal) , number_literal , (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5fbc" identifier + number_literal) ))) ;) })) (expression_statement "iVar5 = *(int *)(this + 0x20);" (assignment_expression "iVar5 = *(int *)(this + 0x20)" identifier = (pointer_expression "*(int *)(this + 0x20)" * (cast_expression "(int *)(this + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x20)" ( (binary_expression "this + 0x20" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(this + 0x24);" (assignment_expression "iVar3 = *(int *)(this + 0x24)" identifier = (pointer_expression "*(int *)(this + 0x24)" * (cast_expression "(int *)(this + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x24)" ( (binary_expression "this + 0x24" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 != 0 || iVar3 != 0) goto LAB_000d69f0;" if (parenthesized_expression "(iVar5 != 0 || iVar3 != 0)" ( (binary_expression "iVar5 != 0 || iVar3 != 0" (binary_expression "iVar5 != 0" identifier != number_literal) || (binary_expression "iVar3 != 0" identifier != number_literal)) )) (goto_statement "goto LAB_000d69f0;" goto statement_identifier ;)) (expression_statement "iVar1 = *(int *)(*(int *)(this + 0x28) + 4);" (assignment_expression "iVar1 = *(int *)(*(int *)(this + 0x28) + 4)" identifier = (pointer_expression "*(int *)(*(int *)(this + 0x28) + 4)" * (cast_expression "(int *)(*(int *)(this + 0x28) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(this + 0x28) + 4)" ( (binary_expression "*(int *)(this + 0x28) + 4" (pointer_expression "*(int *)(this + 0x28)" * (cast_expression "(int *)(this + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x28)" ( (binary_expression "this + 0x28" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (-1 < iVar1) {\n    uVar8 = skip_attributes(this);\n    *(undefined8 *)(this + 0x20) = uVar8;\n    return uVar8;\n  }" if (parenthesized_expression "(-1 < iVar1)" ( (binary_expression "-1 < iVar1" number_literal < identifier) )) (compound_statement "{\n    uVar8 = skip_attributes(this);\n    *(undefined8 *)(this + 0x20) = uVar8;\n    return uVar8;\n  }" { (expression_statement "uVar8 = skip_attributes(this);" (assignment_expression "uVar8 = skip_attributes(this)" identifier = (call_expression "skip_attributes(this)" identifier (argument_list "(this)" ( identifier )))) ;) (expression_statement "*(undefined8 *)(this + 0x20) = uVar8;" (assignment_expression "*(undefined8 *)(this + 0x20) = uVar8" (pointer_expression "*(undefined8 *)(this + 0x20)" * (cast_expression "(undefined8 *)(this + 0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x20)" ( (binary_expression "this + 0x20" identifier + number_literal) )))) = identifier) ;) (return_statement "return uVar8;" return identifier ;) })) (if_statement "if ((iVar1 << 1 < 0) && (local_20._0_4_ = iVar3, this[0x38] == (Dwarf_die)0x0)) {\n    iVar1 = FUN_000d46c8();\n    iVar3 = local_20._0_4_;\n    if (iVar1 == 0) {\nLAB_000d69f0:\n      return CONCAT44(iVar5,iVar3);\n    }\n    iVar5 = *(int *)(this + 0x20);\n    iVar3 = *(int *)(this + 0x24);\n    if (iVar5 != 0 || iVar3 != 0) goto LAB_000d69f0;\n  }" if (parenthesized_expression "((iVar1 << 1 < 0) && (local_20._0_4_ = iVar3, this[0x38] == (Dwarf_die)0x0))" ( (binary_expression "(iVar1 << 1 < 0) && (local_20._0_4_ = iVar3, this[0x38] == (Dwarf_die)0x0)" (parenthesized_expression "(iVar1 << 1 < 0)" ( (binary_expression "iVar1 << 1 < 0" (binary_expression "iVar1 << 1" identifier << number_literal) < number_literal) )) && (parenthesized_expression "(local_20._0_4_ = iVar3, this[0x38] == (Dwarf_die)0x0)" ( (comma_expression "local_20._0_4_ = iVar3, this[0x38] == (Dwarf_die)0x0" (assignment_expression "local_20._0_4_ = iVar3" (field_expression "local_20._0_4_" identifier . field_identifier) = identifier) , (binary_expression "this[0x38] == (Dwarf_die)0x0" (subscript_expression "this[0x38]" identifier [ number_literal ]) == (cast_expression "(Dwarf_die)0x0" ( (type_descriptor "Dwarf_die" type_identifier) ) number_literal))) ))) )) (compound_statement "{\n    iVar1 = FUN_000d46c8();\n    iVar3 = local_20._0_4_;\n    if (iVar1 == 0) {\nLAB_000d69f0:\n      return CONCAT44(iVar5,iVar3);\n    }\n    iVar5 = *(int *)(this + 0x20);\n    iVar3 = *(int *)(this + 0x24);\n    if (iVar5 != 0 || iVar3 != 0) goto LAB_000d69f0;\n  }" { (expression_statement "iVar1 = FUN_000d46c8();" (assignment_expression "iVar1 = FUN_000d46c8()" identifier = (call_expression "FUN_000d46c8()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar3 = local_20._0_4_;" (assignment_expression "iVar3 = local_20._0_4_" identifier = (field_expression "local_20._0_4_" identifier . field_identifier)) ;) (if_statement "if (iVar1 == 0) {\nLAB_000d69f0:\n      return CONCAT44(iVar5,iVar3);\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000d69f0:\n      return CONCAT44(iVar5,iVar3);\n    }" { (labeled_statement "LAB_000d69f0:\n      return CONCAT44(iVar5,iVar3);" statement_identifier : (return_statement "return CONCAT44(iVar5,iVar3);" return (call_expression "CONCAT44(iVar5,iVar3)" identifier (argument_list "(iVar5,iVar3)" ( identifier , identifier ))) ;)) })) (expression_statement "iVar5 = *(int *)(this + 0x20);" (assignment_expression "iVar5 = *(int *)(this + 0x20)" identifier = (pointer_expression "*(int *)(this + 0x20)" * (cast_expression "(int *)(this + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x20)" ( (binary_expression "this + 0x20" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(this + 0x24);" (assignment_expression "iVar3 = *(int *)(this + 0x24)" identifier = (pointer_expression "*(int *)(this + 0x24)" * (cast_expression "(int *)(this + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x24)" ( (binary_expression "this + 0x24" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 != 0 || iVar3 != 0) goto LAB_000d69f0;" if (parenthesized_expression "(iVar5 != 0 || iVar3 != 0)" ( (binary_expression "iVar5 != 0 || iVar3 != 0" (binary_expression "iVar5 != 0" identifier != number_literal) || (binary_expression "iVar3 != 0" identifier != number_literal)) )) (goto_statement "goto LAB_000d69f0;" goto statement_identifier ;)) })) (expression_statement "lVar7 = child_offset(this);" (assignment_expression "lVar7 = child_offset(this)" identifier = (call_expression "child_offset(this)" identifier (argument_list "(this)" ( identifier )))) ;) (expression_statement "pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20);" (assignment_expression "pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20)" identifier = (cast_expression "(Dwarf_die *)((ulonglong)lVar7 >> 0x20)" ( (type_descriptor "Dwarf_die *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)lVar7 >> 0x20)" ( (binary_expression "(ulonglong)lVar7 >> 0x20" (cast_expression "(ulonglong)lVar7" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (lVar7 < 0x100000000) {\n    if (pDVar2 == (Dwarf_die *)0x0) {\n      if ((int)lVar7 == 0) {\n        uVar6 = *(undefined4 *)(this + 0x20);\n        uVar4 = *(undefined4 *)(this + 0x24);\n        goto LAB_000d6ab0;\n      }\n      goto LAB_000d6a28;\n    }\n  }\n  else {\nLAB_000d6a28:\n    do {\n      Dwarf_die(aDStack_90,*(Dwarf_info_reader **)this,CONCAT44(this,in_stack_ffffff64),pDVar2);\n      if ((local_68 == (int *)0x0) || (*local_68 == 0)) {\n        if (local_64 != 0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)(this + 0x20);\n          uVar4 = *(undefined4 *)(this + 0x24);\n          goto LAB_000d6ab0;\n        }\n        break;\n      }\n                    \n      lVar7 = sibling_offset(aDStack_90);\n      if (local_64 != 0) {\n        local_20 = lVar7;\n        (*(code *)PTR_operator_delete_0043228c)();\n        lVar7 = local_20;\n      }\n      pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20);\n    } while (0 < lVar7);\n  }" if (parenthesized_expression "(lVar7 < 0x100000000)" ( (binary_expression "lVar7 < 0x100000000" identifier < number_literal) )) (compound_statement "{\n    if (pDVar2 == (Dwarf_die *)0x0) {\n      if ((int)lVar7 == 0) {\n        uVar6 = *(undefined4 *)(this + 0x20);\n        uVar4 = *(undefined4 *)(this + 0x24);\n        goto LAB_000d6ab0;\n      }\n      goto LAB_000d6a28;\n    }\n  }" { (if_statement "if (pDVar2 == (Dwarf_die *)0x0) {\n      if ((int)lVar7 == 0) {\n        uVar6 = *(undefined4 *)(this + 0x20);\n        uVar4 = *(undefined4 *)(this + 0x24);\n        goto LAB_000d6ab0;\n      }\n      goto LAB_000d6a28;\n    }" if (parenthesized_expression "(pDVar2 == (Dwarf_die *)0x0)" ( (binary_expression "pDVar2 == (Dwarf_die *)0x0" identifier == (cast_expression "(Dwarf_die *)0x0" ( (type_descriptor "Dwarf_die *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if ((int)lVar7 == 0) {\n        uVar6 = *(undefined4 *)(this + 0x20);\n        uVar4 = *(undefined4 *)(this + 0x24);\n        goto LAB_000d6ab0;\n      }\n      goto LAB_000d6a28;\n    }" { (if_statement "if ((int)lVar7 == 0) {\n        uVar6 = *(undefined4 *)(this + 0x20);\n        uVar4 = *(undefined4 *)(this + 0x24);\n        goto LAB_000d6ab0;\n      }" if (parenthesized_expression "((int)lVar7 == 0)" ( (binary_expression "(int)lVar7 == 0" (cast_expression "(int)lVar7" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (compound_statement "{\n        uVar6 = *(undefined4 *)(this + 0x20);\n        uVar4 = *(undefined4 *)(this + 0x24);\n        goto LAB_000d6ab0;\n      }" { (expression_statement "uVar6 = *(undefined4 *)(this + 0x20);" (assignment_expression "uVar6 = *(undefined4 *)(this + 0x20)" identifier = (pointer_expression "*(undefined4 *)(this + 0x20)" * (cast_expression "(undefined4 *)(this + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x20)" ( (binary_expression "this + 0x20" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined4 *)(this + 0x24);" (assignment_expression "uVar4 = *(undefined4 *)(this + 0x24)" identifier = (pointer_expression "*(undefined4 *)(this + 0x24)" * (cast_expression "(undefined4 *)(this + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x24)" ( (binary_expression "this + 0x24" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000d6ab0;" goto statement_identifier ;) })) (goto_statement "goto LAB_000d6a28;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_000d6a28:\n    do {\n      Dwarf_die(aDStack_90,*(Dwarf_info_reader **)this,CONCAT44(this,in_stack_ffffff64),pDVar2);\n      if ((local_68 == (int *)0x0) || (*local_68 == 0)) {\n        if (local_64 != 0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)(this + 0x20);\n          uVar4 = *(undefined4 *)(this + 0x24);\n          goto LAB_000d6ab0;\n        }\n        break;\n      }\n                    \n      lVar7 = sibling_offset(aDStack_90);\n      if (local_64 != 0) {\n        local_20 = lVar7;\n        (*(code *)PTR_operator_delete_0043228c)();\n        lVar7 = local_20;\n      }\n      pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20);\n    } while (0 < lVar7);\n  }" else (compound_statement "{\nLAB_000d6a28:\n    do {\n      Dwarf_die(aDStack_90,*(Dwarf_info_reader **)this,CONCAT44(this,in_stack_ffffff64),pDVar2);\n      if ((local_68 == (int *)0x0) || (*local_68 == 0)) {\n        if (local_64 != 0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)(this + 0x20);\n          uVar4 = *(undefined4 *)(this + 0x24);\n          goto LAB_000d6ab0;\n        }\n        break;\n      }\n                    \n      lVar7 = sibling_offset(aDStack_90);\n      if (local_64 != 0) {\n        local_20 = lVar7;\n        (*(code *)PTR_operator_delete_0043228c)();\n        lVar7 = local_20;\n      }\n      pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20);\n    } while (0 < lVar7);\n  }" { (labeled_statement "LAB_000d6a28:\n    do {\n      Dwarf_die(aDStack_90,*(Dwarf_info_reader **)this,CONCAT44(this,in_stack_ffffff64),pDVar2);\n      if ((local_68 == (int *)0x0) || (*local_68 == 0)) {\n        if (local_64 != 0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)(this + 0x20);\n          uVar4 = *(undefined4 *)(this + 0x24);\n          goto LAB_000d6ab0;\n        }\n        break;\n      }\n                    \n      lVar7 = sibling_offset(aDStack_90);\n      if (local_64 != 0) {\n        local_20 = lVar7;\n        (*(code *)PTR_operator_delete_0043228c)();\n        lVar7 = local_20;\n      }\n      pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20);\n    } while (0 < lVar7);" statement_identifier : (do_statement "do {\n      Dwarf_die(aDStack_90,*(Dwarf_info_reader **)this,CONCAT44(this,in_stack_ffffff64),pDVar2);\n      if ((local_68 == (int *)0x0) || (*local_68 == 0)) {\n        if (local_64 != 0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)(this + 0x20);\n          uVar4 = *(undefined4 *)(this + 0x24);\n          goto LAB_000d6ab0;\n        }\n        break;\n      }\n                    \n      lVar7 = sibling_offset(aDStack_90);\n      if (local_64 != 0) {\n        local_20 = lVar7;\n        (*(code *)PTR_operator_delete_0043228c)();\n        lVar7 = local_20;\n      }\n      pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20);\n    } while (0 < lVar7);" do (compound_statement "{\n      Dwarf_die(aDStack_90,*(Dwarf_info_reader **)this,CONCAT44(this,in_stack_ffffff64),pDVar2);\n      if ((local_68 == (int *)0x0) || (*local_68 == 0)) {\n        if (local_64 != 0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)(this + 0x20);\n          uVar4 = *(undefined4 *)(this + 0x24);\n          goto LAB_000d6ab0;\n        }\n        break;\n      }\n                    \n      lVar7 = sibling_offset(aDStack_90);\n      if (local_64 != 0) {\n        local_20 = lVar7;\n        (*(code *)PTR_operator_delete_0043228c)();\n        lVar7 = local_20;\n      }\n      pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20);\n    }" { (expression_statement "Dwarf_die(aDStack_90,*(Dwarf_info_reader **)this,CONCAT44(this,in_stack_ffffff64),pDVar2);" (call_expression "Dwarf_die(aDStack_90,*(Dwarf_info_reader **)this,CONCAT44(this,in_stack_ffffff64),pDVar2)" identifier (argument_list "(aDStack_90,*(Dwarf_info_reader **)this,CONCAT44(this,in_stack_ffffff64),pDVar2)" ( identifier , (pointer_expression "*(Dwarf_info_reader **)this" * (cast_expression "(Dwarf_info_reader **)this" ( (type_descriptor "Dwarf_info_reader **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) , (call_expression "CONCAT44(this,in_stack_ffffff64)" identifier (argument_list "(this,in_stack_ffffff64)" ( identifier , identifier ))) , identifier ))) ;) (if_statement "if ((local_68 == (int *)0x0) || (*local_68 == 0)) {\n        if (local_64 != 0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)(this + 0x20);\n          uVar4 = *(undefined4 *)(this + 0x24);\n          goto LAB_000d6ab0;\n        }\n        break;\n      }" if (parenthesized_expression "((local_68 == (int *)0x0) || (*local_68 == 0))" ( (binary_expression "(local_68 == (int *)0x0) || (*local_68 == 0)" (parenthesized_expression "(local_68 == (int *)0x0)" ( (binary_expression "local_68 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*local_68 == 0)" ( (binary_expression "*local_68 == 0" (pointer_expression "*local_68" * identifier) == number_literal) ))) )) (compound_statement "{\n        if (local_64 != 0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)(this + 0x20);\n          uVar4 = *(undefined4 *)(this + 0x24);\n          goto LAB_000d6ab0;\n        }\n        break;\n      }" { (if_statement "if (local_64 != 0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)(this + 0x20);\n          uVar4 = *(undefined4 *)(this + 0x24);\n          goto LAB_000d6ab0;\n        }" if (parenthesized_expression "(local_64 != 0)" ( (binary_expression "local_64 != 0" identifier != number_literal) )) (compound_statement "{\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)(this + 0x20);\n          uVar4 = *(undefined4 *)(this + 0x24);\n          goto LAB_000d6ab0;\n        }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar6 = *(undefined4 *)(this + 0x20);" (assignment_expression "uVar6 = *(undefined4 *)(this + 0x20)" identifier = (pointer_expression "*(undefined4 *)(this + 0x20)" * (cast_expression "(undefined4 *)(this + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x20)" ( (binary_expression "this + 0x20" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined4 *)(this + 0x24);" (assignment_expression "uVar4 = *(undefined4 *)(this + 0x24)" identifier = (pointer_expression "*(undefined4 *)(this + 0x24)" * (cast_expression "(undefined4 *)(this + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x24)" ( (binary_expression "this + 0x24" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000d6ab0;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "lVar7 = sibling_offset(aDStack_90);" (assignment_expression "lVar7 = sibling_offset(aDStack_90)" identifier = (call_expression "sibling_offset(aDStack_90)" identifier (argument_list "(aDStack_90)" ( identifier )))) ;) (if_statement "if (local_64 != 0) {\n        local_20 = lVar7;\n        (*(code *)PTR_operator_delete_0043228c)();\n        lVar7 = local_20;\n      }" if (parenthesized_expression "(local_64 != 0)" ( (binary_expression "local_64 != 0" identifier != number_literal) )) (compound_statement "{\n        local_20 = lVar7;\n        (*(code *)PTR_operator_delete_0043228c)();\n        lVar7 = local_20;\n      }" { (expression_statement "local_20 = lVar7;" (assignment_expression "local_20 = lVar7" identifier = identifier) ;) (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "lVar7 = local_20;" (assignment_expression "lVar7 = local_20" identifier = identifier) ;) })) (expression_statement "pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20);" (assignment_expression "pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20)" identifier = (cast_expression "(Dwarf_die *)((ulonglong)lVar7 >> 0x20)" ( (type_descriptor "Dwarf_die *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)lVar7 >> 0x20)" ( (binary_expression "(ulonglong)lVar7 >> 0x20" (cast_expression "(ulonglong)lVar7" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) }) while (parenthesized_expression "(0 < lVar7)" ( (binary_expression "0 < lVar7" number_literal < identifier) )) ;)) }))) (expression_statement "uVar6 = *(undefined4 *)(this + 0x20);" (assignment_expression "uVar6 = *(undefined4 *)(this + 0x20)" identifier = (pointer_expression "*(undefined4 *)(this + 0x20)" * (cast_expression "(undefined4 *)(this + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x20)" ( (binary_expression "this + 0x20" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined4 *)(this + 0x24);" (assignment_expression "uVar4 = *(undefined4 *)(this + 0x24)" identifier = (pointer_expression "*(undefined4 *)(this + 0x24)" * (cast_expression "(undefined4 *)(this + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x24)" ( (binary_expression "this + 0x24" identifier + number_literal) ))))) ;) (labeled_statement "LAB_000d6ab0:\n  return CONCAT44(uVar6,uVar4);" statement_identifier : (return_statement "return CONCAT44(uVar6,uVar4);" return (call_expression "CONCAT44(uVar6,uVar4)" identifier (argument_list "(uVar6,uVar4)" ( identifier , identifier ))) ;)) })))
(translation_unit (function_definition TYPE (ms_call_modifier __thiscall) (ERROR IDENT : : IDENT : :) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * 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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (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 (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT << LIT) < LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression (field_expression IDENT . field_identifier) = IDENT) , (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (field_expression IDENT . field_identifier)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (return_statement return (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) , (call_expression IDENT (argument_list ( IDENT , IDENT ))) , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) }) while (parenthesized_expression ( (binary_expression LIT < IDENT) )) ;)) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (return_statement return (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;)) })))
(function_definition "undefined8 __thiscall gold::Dwarf_die::sibling_offset(Dwarf_die *this)\n\n{\n  int iVar1;\n  Dwarf_die *pDVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  longlong lVar7;\n  undefined8 uVar8;\n  undefined4 in_stack_ffffff64;\n  Dwarf_die aDStack_90 [40];\n  int *local_68;\n  int local_64;\n  undefined8 local_20;\n  \n  if (*(int *)(this + 0x28) == 0) {\n                    \n    do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x4a8,\n                        PTR_s_alize_xindex_004323b4 + -0x5fbc);\n  }\n  iVar5 = *(int *)(this + 0x20);\n  iVar3 = *(int *)(this + 0x24);\n  if (iVar5 != 0 || iVar3 != 0) goto LAB_000d69f0;\n  iVar1 = *(int *)(*(int *)(this + 0x28) + 4);\n  if (-1 < iVar1) {\n    uVar8 = skip_attributes(this);\n    *(undefined8 *)(this + 0x20) = uVar8;\n    return uVar8;\n  }\n  if ((iVar1 << 1 < 0) && (local_20._0_4_ = iVar3, this[0x38] == (Dwarf_die)0x0)) {\n    iVar1 = FUN_000d46c8();\n    iVar3 = local_20._0_4_;\n    if (iVar1 == 0) {\nLAB_000d69f0:\n      return CONCAT44(iVar5,iVar3);\n    }\n    iVar5 = *(int *)(this + 0x20);\n    iVar3 = *(int *)(this + 0x24);\n    if (iVar5 != 0 || iVar3 != 0) goto LAB_000d69f0;\n  }\n  lVar7 = child_offset(this);\n  pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20);\n  if (lVar7 < 0x100000000) {\n    if (pDVar2 == (Dwarf_die *)0x0) {\n      if ((int)lVar7 == 0) {\n        uVar6 = *(undefined4 *)(this + 0x20);\n        uVar4 = *(undefined4 *)(this + 0x24);\n        goto LAB_000d6ab0;\n      }\n      goto LAB_000d6a28;\n    }\n  }\n  else {\nLAB_000d6a28:\n    do {\n      Dwarf_die(aDStack_90,*(Dwarf_info_reader **)this,CONCAT44(this,in_stack_ffffff64),pDVar2);\n      if ((local_68 == (int *)0x0) || (*local_68 == 0)) {\n        if (local_64 != 0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)(this + 0x20);\n          uVar4 = *(undefined4 *)(this + 0x24);\n          goto LAB_000d6ab0;\n        }\n        break;\n      }\n                    \n      lVar7 = sibling_offset(aDStack_90);\n      if (local_64 != 0) {\n        local_20 = lVar7;\n        (*(code *)PTR_operator_delete_0043228c)();\n        lVar7 = local_20;\n      }\n      pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20);\n    } while (0 < lVar7);\n  }\n  uVar6 = *(undefined4 *)(this + 0x20);\n  uVar4 = *(undefined4 *)(this + 0x24);\nLAB_000d6ab0:\n  return CONCAT44(uVar6,uVar4);\n}" (type_identifier "undefined8") (ms_call_modifier "__thiscall" (__thiscall "__thiscall")) (ERROR "gold::Dwarf_die::" (identifier "gold") (: ":") (: ":") (identifier "Dwarf_die") (: ":") (: ":")) (function_declarator "sibling_offset(Dwarf_die *this)" (identifier "sibling_offset") (parameter_list "(Dwarf_die *this)" (( "(") (parameter_declaration "Dwarf_die *this" (type_identifier "Dwarf_die") (pointer_declarator "*this" (* "*") (identifier "this"))) () ")"))) (compound_statement "{\n  int iVar1;\n  Dwarf_die *pDVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  longlong lVar7;\n  undefined8 uVar8;\n  undefined4 in_stack_ffffff64;\n  Dwarf_die aDStack_90 [40];\n  int *local_68;\n  int local_64;\n  undefined8 local_20;\n  \n  if (*(int *)(this + 0x28) == 0) {\n                    \n    do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x4a8,\n                        PTR_s_alize_xindex_004323b4 + -0x5fbc);\n  }\n  iVar5 = *(int *)(this + 0x20);\n  iVar3 = *(int *)(this + 0x24);\n  if (iVar5 != 0 || iVar3 != 0) goto LAB_000d69f0;\n  iVar1 = *(int *)(*(int *)(this + 0x28) + 4);\n  if (-1 < iVar1) {\n    uVar8 = skip_attributes(this);\n    *(undefined8 *)(this + 0x20) = uVar8;\n    return uVar8;\n  }\n  if ((iVar1 << 1 < 0) && (local_20._0_4_ = iVar3, this[0x38] == (Dwarf_die)0x0)) {\n    iVar1 = FUN_000d46c8();\n    iVar3 = local_20._0_4_;\n    if (iVar1 == 0) {\nLAB_000d69f0:\n      return CONCAT44(iVar5,iVar3);\n    }\n    iVar5 = *(int *)(this + 0x20);\n    iVar3 = *(int *)(this + 0x24);\n    if (iVar5 != 0 || iVar3 != 0) goto LAB_000d69f0;\n  }\n  lVar7 = child_offset(this);\n  pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20);\n  if (lVar7 < 0x100000000) {\n    if (pDVar2 == (Dwarf_die *)0x0) {\n      if ((int)lVar7 == 0) {\n        uVar6 = *(undefined4 *)(this + 0x20);\n        uVar4 = *(undefined4 *)(this + 0x24);\n        goto LAB_000d6ab0;\n      }\n      goto LAB_000d6a28;\n    }\n  }\n  else {\nLAB_000d6a28:\n    do {\n      Dwarf_die(aDStack_90,*(Dwarf_info_reader **)this,CONCAT44(this,in_stack_ffffff64),pDVar2);\n      if ((local_68 == (int *)0x0) || (*local_68 == 0)) {\n        if (local_64 != 0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)(this + 0x20);\n          uVar4 = *(undefined4 *)(this + 0x24);\n          goto LAB_000d6ab0;\n        }\n        break;\n      }\n                    \n      lVar7 = sibling_offset(aDStack_90);\n      if (local_64 != 0) {\n        local_20 = lVar7;\n        (*(code *)PTR_operator_delete_0043228c)();\n        lVar7 = local_20;\n      }\n      pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20);\n    } while (0 < lVar7);\n  }\n  uVar6 = *(undefined4 *)(this + 0x20);\n  uVar4 = *(undefined4 *)(this + 0x24);\nLAB_000d6ab0:\n  return CONCAT44(uVar6,uVar4);\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "Dwarf_die *pDVar2;" (type_identifier "Dwarf_die") (pointer_declarator "*pDVar2" (* "*") (identifier "pDVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "longlong lVar7;" (type_identifier "longlong") (identifier "lVar7") (; ";")) (declaration "undefined8 uVar8;" (type_identifier "undefined8") (identifier "uVar8") (; ";")) (declaration "undefined4 in_stack_ffffff64;" (type_identifier "undefined4") (identifier "in_stack_ffffff64") (; ";")) (declaration "Dwarf_die aDStack_90 [40];" (type_identifier "Dwarf_die") (array_declarator "aDStack_90 [40]" (identifier "aDStack_90") ([ "[") (number_literal "40") (] "]")) (; ";")) (declaration "int *local_68;" (primitive_type "int") (pointer_declarator "*local_68" (* "*") (identifier "local_68")) (; ";")) (declaration "int local_64;" (primitive_type "int") (identifier "local_64") (; ";")) (declaration "undefined8 local_20;" (type_identifier "undefined8") (identifier "local_20") (; ";")) (if_statement "if (*(int *)(this + 0x28) == 0) {\n                    \n    do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x4a8,\n                        PTR_s_alize_xindex_004323b4 + -0x5fbc);\n  }" (if "if") (parenthesized_expression "(*(int *)(this + 0x28) == 0)" (( "(") (binary_expression "*(int *)(this + 0x28) == 0" (pointer_expression "*(int *)(this + 0x28)" (* "*") (cast_expression "(int *)(this + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x28)" (( "(") (binary_expression "this + 0x28" (identifier "this") (+ "+") (number_literal "0x28")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x4a8,\n                        PTR_s_alize_xindex_004323b4 + -0x5fbc);\n  }" ({ "{") (expression_statement "do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x4a8,\n                        PTR_s_alize_xindex_004323b4 + -0x5fbc);" (call_expression "do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x4a8,\n                        PTR_s_alize_xindex_004323b4 + -0x5fbc)" (identifier "do_gold_unreachable") (argument_list "(PTR_s_alize_xindex_004323b4 + -0x6368,0x4a8,\n                        PTR_s_alize_xindex_004323b4 + -0x5fbc)" (( "(") (binary_expression "PTR_s_alize_xindex_004323b4 + -0x6368" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (number_literal "-0x6368")) (, ",") (number_literal "0x4a8") (, ",") (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5fbc" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (number_literal "-0x5fbc")) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar5 = *(int *)(this + 0x20);" (assignment_expression "iVar5 = *(int *)(this + 0x20)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(this + 0x20)" (* "*") (cast_expression "(int *)(this + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x20)" (( "(") (binary_expression "this + 0x20" (identifier "this") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "iVar3 = *(int *)(this + 0x24);" (assignment_expression "iVar3 = *(int *)(this + 0x24)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(this + 0x24)" (* "*") (cast_expression "(int *)(this + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x24)" (( "(") (binary_expression "this + 0x24" (identifier "this") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (if_statement "if (iVar5 != 0 || iVar3 != 0) goto LAB_000d69f0;" (if "if") (parenthesized_expression "(iVar5 != 0 || iVar3 != 0)" (( "(") (binary_expression "iVar5 != 0 || iVar3 != 0" (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0"))) () ")")) (goto_statement "goto LAB_000d69f0;" (goto "goto") (statement_identifier "LAB_000d69f0") (; ";"))) (expression_statement "iVar1 = *(int *)(*(int *)(this + 0x28) + 4);" (assignment_expression "iVar1 = *(int *)(*(int *)(this + 0x28) + 4)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(*(int *)(this + 0x28) + 4)" (* "*") (cast_expression "(int *)(*(int *)(this + 0x28) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(this + 0x28) + 4)" (( "(") (binary_expression "*(int *)(this + 0x28) + 4" (pointer_expression "*(int *)(this + 0x28)" (* "*") (cast_expression "(int *)(this + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x28)" (( "(") (binary_expression "this + 0x28" (identifier "this") (+ "+") (number_literal "0x28")) () ")")))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (-1 < iVar1) {\n    uVar8 = skip_attributes(this);\n    *(undefined8 *)(this + 0x20) = uVar8;\n    return uVar8;\n  }" (if "if") (parenthesized_expression "(-1 < iVar1)" (( "(") (binary_expression "-1 < iVar1" (number_literal "-1") (< "<") (identifier "iVar1")) () ")")) (compound_statement "{\n    uVar8 = skip_attributes(this);\n    *(undefined8 *)(this + 0x20) = uVar8;\n    return uVar8;\n  }" ({ "{") (expression_statement "uVar8 = skip_attributes(this);" (assignment_expression "uVar8 = skip_attributes(this)" (identifier "uVar8") (= "=") (call_expression "skip_attributes(this)" (identifier "skip_attributes") (argument_list "(this)" (( "(") (identifier "this") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(this + 0x20) = uVar8;" (assignment_expression "*(undefined8 *)(this + 0x20) = uVar8" (pointer_expression "*(undefined8 *)(this + 0x20)" (* "*") (cast_expression "(undefined8 *)(this + 0x20)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x20)" (( "(") (binary_expression "this + 0x20" (identifier "this") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (return_statement "return uVar8;" (return "return") (identifier "uVar8") (; ";")) (} "}"))) (if_statement "if ((iVar1 << 1 < 0) && (local_20._0_4_ = iVar3, this[0x38] == (Dwarf_die)0x0)) {\n    iVar1 = FUN_000d46c8();\n    iVar3 = local_20._0_4_;\n    if (iVar1 == 0) {\nLAB_000d69f0:\n      return CONCAT44(iVar5,iVar3);\n    }\n    iVar5 = *(int *)(this + 0x20);\n    iVar3 = *(int *)(this + 0x24);\n    if (iVar5 != 0 || iVar3 != 0) goto LAB_000d69f0;\n  }" (if "if") (parenthesized_expression "((iVar1 << 1 < 0) && (local_20._0_4_ = iVar3, this[0x38] == (Dwarf_die)0x0))" (( "(") (binary_expression "(iVar1 << 1 < 0) && (local_20._0_4_ = iVar3, this[0x38] == (Dwarf_die)0x0)" (parenthesized_expression "(iVar1 << 1 < 0)" (( "(") (binary_expression "iVar1 << 1 < 0" (binary_expression "iVar1 << 1" (identifier "iVar1") (<< "<<") (number_literal "1")) (< "<") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(local_20._0_4_ = iVar3, this[0x38] == (Dwarf_die)0x0)" (( "(") (comma_expression "local_20._0_4_ = iVar3, this[0x38] == (Dwarf_die)0x0" (assignment_expression "local_20._0_4_ = iVar3" (field_expression "local_20._0_4_" (identifier "local_20") (. ".") (field_identifier "_0_4_")) (= "=") (identifier "iVar3")) (, ",") (binary_expression "this[0x38] == (Dwarf_die)0x0" (subscript_expression "this[0x38]" (identifier "this") ([ "[") (number_literal "0x38") (] "]")) (== "==") (cast_expression "(Dwarf_die)0x0" (( "(") (type_descriptor "Dwarf_die" (type_identifier "Dwarf_die")) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n    iVar1 = FUN_000d46c8();\n    iVar3 = local_20._0_4_;\n    if (iVar1 == 0) {\nLAB_000d69f0:\n      return CONCAT44(iVar5,iVar3);\n    }\n    iVar5 = *(int *)(this + 0x20);\n    iVar3 = *(int *)(this + 0x24);\n    if (iVar5 != 0 || iVar3 != 0) goto LAB_000d69f0;\n  }" ({ "{") (expression_statement "iVar1 = FUN_000d46c8();" (assignment_expression "iVar1 = FUN_000d46c8()" (identifier "iVar1") (= "=") (call_expression "FUN_000d46c8()" (identifier "FUN_000d46c8") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar3 = local_20._0_4_;" (assignment_expression "iVar3 = local_20._0_4_" (identifier "iVar3") (= "=") (field_expression "local_20._0_4_" (identifier "local_20") (. ".") (field_identifier "_0_4_"))) (; ";")) (if_statement "if (iVar1 == 0) {\nLAB_000d69f0:\n      return CONCAT44(iVar5,iVar3);\n    }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000d69f0:\n      return CONCAT44(iVar5,iVar3);\n    }" ({ "{") (labeled_statement "LAB_000d69f0:\n      return CONCAT44(iVar5,iVar3);" (statement_identifier "LAB_000d69f0") (: ":") (return_statement "return CONCAT44(iVar5,iVar3);" (return "return") (call_expression "CONCAT44(iVar5,iVar3)" (identifier "CONCAT44") (argument_list "(iVar5,iVar3)" (( "(") (identifier "iVar5") (, ",") (identifier "iVar3") () ")"))) (; ";"))) (} "}"))) (expression_statement "iVar5 = *(int *)(this + 0x20);" (assignment_expression "iVar5 = *(int *)(this + 0x20)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(this + 0x20)" (* "*") (cast_expression "(int *)(this + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x20)" (( "(") (binary_expression "this + 0x20" (identifier "this") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "iVar3 = *(int *)(this + 0x24);" (assignment_expression "iVar3 = *(int *)(this + 0x24)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(this + 0x24)" (* "*") (cast_expression "(int *)(this + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x24)" (( "(") (binary_expression "this + 0x24" (identifier "this") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (if_statement "if (iVar5 != 0 || iVar3 != 0) goto LAB_000d69f0;" (if "if") (parenthesized_expression "(iVar5 != 0 || iVar3 != 0)" (( "(") (binary_expression "iVar5 != 0 || iVar3 != 0" (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0"))) () ")")) (goto_statement "goto LAB_000d69f0;" (goto "goto") (statement_identifier "LAB_000d69f0") (; ";"))) (} "}"))) (expression_statement "lVar7 = child_offset(this);" (assignment_expression "lVar7 = child_offset(this)" (identifier "lVar7") (= "=") (call_expression "child_offset(this)" (identifier "child_offset") (argument_list "(this)" (( "(") (identifier "this") () ")")))) (; ";")) (expression_statement "pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20);" (assignment_expression "pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20)" (identifier "pDVar2") (= "=") (cast_expression "(Dwarf_die *)((ulonglong)lVar7 >> 0x20)" (( "(") (type_descriptor "Dwarf_die *" (type_identifier "Dwarf_die") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((ulonglong)lVar7 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar7 >> 0x20" (cast_expression "(ulonglong)lVar7" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar7")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (if_statement "if (lVar7 < 0x100000000) {\n    if (pDVar2 == (Dwarf_die *)0x0) {\n      if ((int)lVar7 == 0) {\n        uVar6 = *(undefined4 *)(this + 0x20);\n        uVar4 = *(undefined4 *)(this + 0x24);\n        goto LAB_000d6ab0;\n      }\n      goto LAB_000d6a28;\n    }\n  }\n  else {\nLAB_000d6a28:\n    do {\n      Dwarf_die(aDStack_90,*(Dwarf_info_reader **)this,CONCAT44(this,in_stack_ffffff64),pDVar2);\n      if ((local_68 == (int *)0x0) || (*local_68 == 0)) {\n        if (local_64 != 0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)(this + 0x20);\n          uVar4 = *(undefined4 *)(this + 0x24);\n          goto LAB_000d6ab0;\n        }\n        break;\n      }\n                    \n      lVar7 = sibling_offset(aDStack_90);\n      if (local_64 != 0) {\n        local_20 = lVar7;\n        (*(code *)PTR_operator_delete_0043228c)();\n        lVar7 = local_20;\n      }\n      pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20);\n    } while (0 < lVar7);\n  }" (if "if") (parenthesized_expression "(lVar7 < 0x100000000)" (( "(") (binary_expression "lVar7 < 0x100000000" (identifier "lVar7") (< "<") (number_literal "0x100000000")) () ")")) (compound_statement "{\n    if (pDVar2 == (Dwarf_die *)0x0) {\n      if ((int)lVar7 == 0) {\n        uVar6 = *(undefined4 *)(this + 0x20);\n        uVar4 = *(undefined4 *)(this + 0x24);\n        goto LAB_000d6ab0;\n      }\n      goto LAB_000d6a28;\n    }\n  }" ({ "{") (if_statement "if (pDVar2 == (Dwarf_die *)0x0) {\n      if ((int)lVar7 == 0) {\n        uVar6 = *(undefined4 *)(this + 0x20);\n        uVar4 = *(undefined4 *)(this + 0x24);\n        goto LAB_000d6ab0;\n      }\n      goto LAB_000d6a28;\n    }" (if "if") (parenthesized_expression "(pDVar2 == (Dwarf_die *)0x0)" (( "(") (binary_expression "pDVar2 == (Dwarf_die *)0x0" (identifier "pDVar2") (== "==") (cast_expression "(Dwarf_die *)0x0" (( "(") (type_descriptor "Dwarf_die *" (type_identifier "Dwarf_die") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      if ((int)lVar7 == 0) {\n        uVar6 = *(undefined4 *)(this + 0x20);\n        uVar4 = *(undefined4 *)(this + 0x24);\n        goto LAB_000d6ab0;\n      }\n      goto LAB_000d6a28;\n    }" ({ "{") (if_statement "if ((int)lVar7 == 0) {\n        uVar6 = *(undefined4 *)(this + 0x20);\n        uVar4 = *(undefined4 *)(this + 0x24);\n        goto LAB_000d6ab0;\n      }" (if "if") (parenthesized_expression "((int)lVar7 == 0)" (( "(") (binary_expression "(int)lVar7 == 0" (cast_expression "(int)lVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar7")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar6 = *(undefined4 *)(this + 0x20);\n        uVar4 = *(undefined4 *)(this + 0x24);\n        goto LAB_000d6ab0;\n      }" ({ "{") (expression_statement "uVar6 = *(undefined4 *)(this + 0x20);" (assignment_expression "uVar6 = *(undefined4 *)(this + 0x20)" (identifier "uVar6") (= "=") (pointer_expression "*(undefined4 *)(this + 0x20)" (* "*") (cast_expression "(undefined4 *)(this + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x20)" (( "(") (binary_expression "this + 0x20" (identifier "this") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "uVar4 = *(undefined4 *)(this + 0x24);" (assignment_expression "uVar4 = *(undefined4 *)(this + 0x24)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined4 *)(this + 0x24)" (* "*") (cast_expression "(undefined4 *)(this + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x24)" (( "(") (binary_expression "this + 0x24" (identifier "this") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (goto_statement "goto LAB_000d6ab0;" (goto "goto") (statement_identifier "LAB_000d6ab0") (; ";")) (} "}"))) (goto_statement "goto LAB_000d6a28;" (goto "goto") (statement_identifier "LAB_000d6a28") (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_000d6a28:\n    do {\n      Dwarf_die(aDStack_90,*(Dwarf_info_reader **)this,CONCAT44(this,in_stack_ffffff64),pDVar2);\n      if ((local_68 == (int *)0x0) || (*local_68 == 0)) {\n        if (local_64 != 0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)(this + 0x20);\n          uVar4 = *(undefined4 *)(this + 0x24);\n          goto LAB_000d6ab0;\n        }\n        break;\n      }\n                    \n      lVar7 = sibling_offset(aDStack_90);\n      if (local_64 != 0) {\n        local_20 = lVar7;\n        (*(code *)PTR_operator_delete_0043228c)();\n        lVar7 = local_20;\n      }\n      pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20);\n    } while (0 < lVar7);\n  }" (else "else") (compound_statement "{\nLAB_000d6a28:\n    do {\n      Dwarf_die(aDStack_90,*(Dwarf_info_reader **)this,CONCAT44(this,in_stack_ffffff64),pDVar2);\n      if ((local_68 == (int *)0x0) || (*local_68 == 0)) {\n        if (local_64 != 0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)(this + 0x20);\n          uVar4 = *(undefined4 *)(this + 0x24);\n          goto LAB_000d6ab0;\n        }\n        break;\n      }\n                    \n      lVar7 = sibling_offset(aDStack_90);\n      if (local_64 != 0) {\n        local_20 = lVar7;\n        (*(code *)PTR_operator_delete_0043228c)();\n        lVar7 = local_20;\n      }\n      pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20);\n    } while (0 < lVar7);\n  }" ({ "{") (labeled_statement "LAB_000d6a28:\n    do {\n      Dwarf_die(aDStack_90,*(Dwarf_info_reader **)this,CONCAT44(this,in_stack_ffffff64),pDVar2);\n      if ((local_68 == (int *)0x0) || (*local_68 == 0)) {\n        if (local_64 != 0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)(this + 0x20);\n          uVar4 = *(undefined4 *)(this + 0x24);\n          goto LAB_000d6ab0;\n        }\n        break;\n      }\n                    \n      lVar7 = sibling_offset(aDStack_90);\n      if (local_64 != 0) {\n        local_20 = lVar7;\n        (*(code *)PTR_operator_delete_0043228c)();\n        lVar7 = local_20;\n      }\n      pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20);\n    } while (0 < lVar7);" (statement_identifier "LAB_000d6a28") (: ":") (do_statement "do {\n      Dwarf_die(aDStack_90,*(Dwarf_info_reader **)this,CONCAT44(this,in_stack_ffffff64),pDVar2);\n      if ((local_68 == (int *)0x0) || (*local_68 == 0)) {\n        if (local_64 != 0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)(this + 0x20);\n          uVar4 = *(undefined4 *)(this + 0x24);\n          goto LAB_000d6ab0;\n        }\n        break;\n      }\n                    \n      lVar7 = sibling_offset(aDStack_90);\n      if (local_64 != 0) {\n        local_20 = lVar7;\n        (*(code *)PTR_operator_delete_0043228c)();\n        lVar7 = local_20;\n      }\n      pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20);\n    } while (0 < lVar7);" (do "do") (compound_statement "{\n      Dwarf_die(aDStack_90,*(Dwarf_info_reader **)this,CONCAT44(this,in_stack_ffffff64),pDVar2);\n      if ((local_68 == (int *)0x0) || (*local_68 == 0)) {\n        if (local_64 != 0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)(this + 0x20);\n          uVar4 = *(undefined4 *)(this + 0x24);\n          goto LAB_000d6ab0;\n        }\n        break;\n      }\n                    \n      lVar7 = sibling_offset(aDStack_90);\n      if (local_64 != 0) {\n        local_20 = lVar7;\n        (*(code *)PTR_operator_delete_0043228c)();\n        lVar7 = local_20;\n      }\n      pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20);\n    }" ({ "{") (expression_statement "Dwarf_die(aDStack_90,*(Dwarf_info_reader **)this,CONCAT44(this,in_stack_ffffff64),pDVar2);" (call_expression "Dwarf_die(aDStack_90,*(Dwarf_info_reader **)this,CONCAT44(this,in_stack_ffffff64),pDVar2)" (identifier "Dwarf_die") (argument_list "(aDStack_90,*(Dwarf_info_reader **)this,CONCAT44(this,in_stack_ffffff64),pDVar2)" (( "(") (identifier "aDStack_90") (, ",") (pointer_expression "*(Dwarf_info_reader **)this" (* "*") (cast_expression "(Dwarf_info_reader **)this" (( "(") (type_descriptor "Dwarf_info_reader **" (type_identifier "Dwarf_info_reader") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "this"))) (, ",") (call_expression "CONCAT44(this,in_stack_ffffff64)" (identifier "CONCAT44") (argument_list "(this,in_stack_ffffff64)" (( "(") (identifier "this") (, ",") (identifier "in_stack_ffffff64") () ")"))) (, ",") (identifier "pDVar2") () ")"))) (; ";")) (if_statement "if ((local_68 == (int *)0x0) || (*local_68 == 0)) {\n        if (local_64 != 0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)(this + 0x20);\n          uVar4 = *(undefined4 *)(this + 0x24);\n          goto LAB_000d6ab0;\n        }\n        break;\n      }" (if "if") (parenthesized_expression "((local_68 == (int *)0x0) || (*local_68 == 0))" (( "(") (binary_expression "(local_68 == (int *)0x0) || (*local_68 == 0)" (parenthesized_expression "(local_68 == (int *)0x0)" (( "(") (binary_expression "local_68 == (int *)0x0" (identifier "local_68") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(*local_68 == 0)" (( "(") (binary_expression "*local_68 == 0" (pointer_expression "*local_68" (* "*") (identifier "local_68")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        if (local_64 != 0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)(this + 0x20);\n          uVar4 = *(undefined4 *)(this + 0x24);\n          goto LAB_000d6ab0;\n        }\n        break;\n      }" ({ "{") (if_statement "if (local_64 != 0) {\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)(this + 0x20);\n          uVar4 = *(undefined4 *)(this + 0x24);\n          goto LAB_000d6ab0;\n        }" (if "if") (parenthesized_expression "(local_64 != 0)" (( "(") (binary_expression "local_64 != 0" (identifier "local_64") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          (*(code *)PTR_operator_delete_0043228c)();\n          uVar6 = *(undefined4 *)(this + 0x20);\n          uVar4 = *(undefined4 *)(this + 0x24);\n          goto LAB_000d6ab0;\n        }" ({ "{") (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" (( "(") (pointer_expression "*(code *)PTR_operator_delete_0043228c" (* "*") (cast_expression "(code *)PTR_operator_delete_0043228c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_delete_0043228c"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar6 = *(undefined4 *)(this + 0x20);" (assignment_expression "uVar6 = *(undefined4 *)(this + 0x20)" (identifier "uVar6") (= "=") (pointer_expression "*(undefined4 *)(this + 0x20)" (* "*") (cast_expression "(undefined4 *)(this + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x20)" (( "(") (binary_expression "this + 0x20" (identifier "this") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "uVar4 = *(undefined4 *)(this + 0x24);" (assignment_expression "uVar4 = *(undefined4 *)(this + 0x24)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined4 *)(this + 0x24)" (* "*") (cast_expression "(undefined4 *)(this + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x24)" (( "(") (binary_expression "this + 0x24" (identifier "this") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (goto_statement "goto LAB_000d6ab0;" (goto "goto") (statement_identifier "LAB_000d6ab0") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "lVar7 = sibling_offset(aDStack_90);" (assignment_expression "lVar7 = sibling_offset(aDStack_90)" (identifier "lVar7") (= "=") (call_expression "sibling_offset(aDStack_90)" (identifier "sibling_offset") (argument_list "(aDStack_90)" (( "(") (identifier "aDStack_90") () ")")))) (; ";")) (if_statement "if (local_64 != 0) {\n        local_20 = lVar7;\n        (*(code *)PTR_operator_delete_0043228c)();\n        lVar7 = local_20;\n      }" (if "if") (parenthesized_expression "(local_64 != 0)" (( "(") (binary_expression "local_64 != 0" (identifier "local_64") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        local_20 = lVar7;\n        (*(code *)PTR_operator_delete_0043228c)();\n        lVar7 = local_20;\n      }" ({ "{") (expression_statement "local_20 = lVar7;" (assignment_expression "local_20 = lVar7" (identifier "local_20") (= "=") (identifier "lVar7")) (; ";")) (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" (( "(") (pointer_expression "*(code *)PTR_operator_delete_0043228c" (* "*") (cast_expression "(code *)PTR_operator_delete_0043228c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_delete_0043228c"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "lVar7 = local_20;" (assignment_expression "lVar7 = local_20" (identifier "lVar7") (= "=") (identifier "local_20")) (; ";")) (} "}"))) (expression_statement "pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20);" (assignment_expression "pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20)" (identifier "pDVar2") (= "=") (cast_expression "(Dwarf_die *)((ulonglong)lVar7 >> 0x20)" (( "(") (type_descriptor "Dwarf_die *" (type_identifier "Dwarf_die") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((ulonglong)lVar7 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar7 >> 0x20" (cast_expression "(ulonglong)lVar7" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar7")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(0 < lVar7)" (( "(") (binary_expression "0 < lVar7" (number_literal "0") (< "<") (identifier "lVar7")) () ")")) (; ";"))) (} "}")))) (expression_statement "uVar6 = *(undefined4 *)(this + 0x20);" (assignment_expression "uVar6 = *(undefined4 *)(this + 0x20)" (identifier "uVar6") (= "=") (pointer_expression "*(undefined4 *)(this + 0x20)" (* "*") (cast_expression "(undefined4 *)(this + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x20)" (( "(") (binary_expression "this + 0x20" (identifier "this") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "uVar4 = *(undefined4 *)(this + 0x24);" (assignment_expression "uVar4 = *(undefined4 *)(this + 0x24)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined4 *)(this + 0x24)" (* "*") (cast_expression "(undefined4 *)(this + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x24)" (( "(") (binary_expression "this + 0x24" (identifier "this") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (labeled_statement "LAB_000d6ab0:\n  return CONCAT44(uVar6,uVar4);" (statement_identifier "LAB_000d6ab0") (: ":") (return_statement "return CONCAT44(uVar6,uVar4);" (return "return") (call_expression "CONCAT44(uVar6,uVar4)" (identifier "CONCAT44") (argument_list "(uVar6,uVar4)" (( "(") (identifier "uVar6") (, ",") (identifier "uVar4") () ")"))) (; ";"))) (} "}")))

/* WARNING: Removing unreachable block (ram,0x000d6aa0) */
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* DWARF original prototype: off_t sibling_offset(Dwarf_die * this) */

type_1 __thiscall gold::type_2::function_1(type_2 *this)

{
  type_3 extraout_var;
  int var_5;
  bool bVar2;
  type_2 *var_12;
  int var_4;
  type_4 uVar4;
  int var_3;
  type_4 uVar6;
  type_1 var_11;
  type_4 in_stack_ffffff64;
  type_2 die;
  
  if (this->abbrev_code_ == (type_5 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_1(var_2 + -0x6368,0x4a8,
                        var_2 + -0x5fbc);
  }
  var_3 = *(int *)&this->sibling_offset_;
  var_4 = (int)this->sibling_offset_;
  if (var_3 != 0 || var_4 != 0) goto LAB_000d69f0;
  var_5 = *(int *)&this->abbrev_code_->field_0x4;
  if (-1 < var_5) {
    var_11 = var_6(this);
    this->sibling_offset_ = var_11;
    return var_11;
  }
  if ((var_5 << 1 < 0) && (this->attributes_read_ == false)) {
    bVar2 = var_7(this);
    if (var_8(extraout_var,bVar2) == 0) {
LAB_000d69f0:
      return var_9(var_3,var_4);
    }
    var_3 = *(int *)&this->sibling_offset_;
    var_4 = (int)this->sibling_offset_;
    if (var_3 != 0 || var_4 != 0) goto LAB_000d69f0;
  }
  var_11 = var_10(this);
  var_12 = (type_2 *)((type_6)var_11 >> 0x20);
  if (var_11 < 0x100000000) {
    if (var_12 == (type_2 *)0x0) {
      if ((int)var_11 == 0) {
        uVar6 = *(type_4 *)&this->sibling_offset_;
        uVar4 = (type_4)this->sibling_offset_;
        goto LAB_000d6ab0;
      }
      goto LAB_000d6a28;
    }
  }
  else {
LAB_000d6a28:
    do {
      type_2(&die,this->dwinfo_,var_9(this,in_stack_ffffff64),var_12);
      if ((die.abbrev_code_ == (type_5 *)0x0) || ((die.abbrev_code_)->tag == 0)) {
        if (die.attributes_.
            super__Vector_base<gold::type_2::var_13,_std::allocator<gold::type_2::var_13>var_14>
            ._M_impl._M_start != (type_7)0x0) {
          (*(type_8 *)PTR_operator_delete_0043228c)();
          uVar6 = *(type_4 *)&this->sibling_offset_;
          uVar4 = (type_4)this->sibling_offset_;
          goto LAB_000d6ab0;
        }
        break;
      }
                    /* try { // try from 000d6a60 to 000d6a67 has its CatchHandler @ 000d6b60 */
      var_11 = function_1(&die);
      if (die.attributes_.
          super__Vector_base<gold::type_2::var_13,_std::allocator<gold::type_2::var_13>var_14>
          ._M_impl._M_start != (type_7)0x0) {
        (*(type_8 *)PTR_operator_delete_0043228c)();
      }
      var_12 = (type_2 *)((type_6)var_11 >> 0x20);
    } while (0 < var_11);
  }
  uVar6 = *(type_4 *)&this->sibling_offset_;
  uVar4 = (type_4)this->sibling_offset_;
LAB_000d6ab0:
  return var_9(uVar6,uVar4);
}


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

/* WARNING: Removing unreachable block (ram,0x000d6aa0) */
/* gold::Dwarf_die::MASKED() */

undefined8 __thiscall gold::Dwarf_die::MASKED(Dwarf_die *this)

{
  int iVar1;
  Dwarf_die *pDVar2;
  int iVar3;
  undefined4 uVar4;
  int iVar5;
  undefined4 uVar6;
  longlong lVar7;
  undefined8 uVar8;
  undefined4 in_stack_ffffff64;
  Dwarf_die aDStack_90 [40];
  int *local_68;
  int local_64;
  undefined8 local_20;
  
  if (*(int *)(this + 0x28) == 0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable(PTR_s_alize_xindex_004323b4 + -0x6368,0x4a8,
                        PTR_s_alize_xindex_004323b4 + -0x5fbc);
  }
  iVar5 = *(int *)(this + 0x20);
  iVar3 = *(int *)(this + 0x24);
  if (iVar5 != 0 || iVar3 != 0) goto LAB_000d69f0;
  iVar1 = *(int *)(*(int *)(this + 0x28) + 4);
  if (-1 < iVar1) {
    uVar8 = skip_attributes(this);
    *(undefined8 *)(this + 0x20) = uVar8;
    return uVar8;
  }
  if ((iVar1 << 1 < 0) && (local_20._0_4_ = iVar3, this[0x38] == (Dwarf_die)0x0)) {
    iVar1 = FUN_000d46c8();
    iVar3 = local_20._0_4_;
    if (iVar1 == 0) {
LAB_000d69f0:
      return CONCAT44(iVar5,iVar3);
    }
    iVar5 = *(int *)(this + 0x20);
    iVar3 = *(int *)(this + 0x24);
    if (iVar5 != 0 || iVar3 != 0) goto LAB_000d69f0;
  }
  lVar7 = child_offset(this);
  pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20);
  if (lVar7 < 0x100000000) {
    if (pDVar2 == (Dwarf_die *)0x0) {
      if ((int)lVar7 == 0) {
        uVar6 = *(undefined4 *)(this + 0x20);
        uVar4 = *(undefined4 *)(this + 0x24);
        goto LAB_000d6ab0;
      }
      goto LAB_000d6a28;
    }
  }
  else {
LAB_000d6a28:
    do {
      Dwarf_die(aDStack_90,*(Dwarf_info_reader **)this,CONCAT44(this,in_stack_ffffff64),pDVar2);
      if ((local_68 == (int *)0x0) || (*local_68 == 0)) {
        if (local_64 != 0) {
          (*(code *)PTR_operator_delete_0043228c)();
          uVar6 = *(undefined4 *)(this + 0x20);
          uVar4 = *(undefined4 *)(this + 0x24);
          goto LAB_000d6ab0;
        }
        break;
      }
                    /* try { // try from 000d6a60 to 000d6a67 has its CatchHandler @ 000d6b60 */
      lVar7 = MASKED(aDStack_90);
      if (local_64 != 0) {
        local_20 = lVar7;
        (*(code *)PTR_operator_delete_0043228c)();
        lVar7 = local_20;
      }
      pDVar2 = (Dwarf_die *)((ulonglong)lVar7 >> 0x20);
    } while (0 < lVar7);
  }
  uVar6 = *(undefined4 *)(this + 0x20);
  uVar4 = *(undefined4 *)(this + 0x24);
LAB_000d6ab0:
  return CONCAT44(uVar6,uVar4);
}

