
/* WARNING: Type propagation algorithm not settling */
/* DWARF original prototype: void do_read_symbols(Powerpc_relobj<32,_true> * this, Read_symbols_data
   * sd) */

void __thiscall
anon_unknown.dwarf_2cac9f::Powerpc_relobj<32,_true>::do_read_symbols
          (Powerpc_relobj<32,_true> *this,Read_symbols_data *sd)

{
  uint uVar1;
  Input_file *pIVar2;
  Vendor_object_attributes *pVVar3;
  _Base_ptr p_Var4;
  bool bVar5;
  undefined1 *puVar6;
  uint uVar7;
  uchar *view;
  Attributes_section_data *pAVar8;
  _Rb_tree_node_base *p_Var9;
  uchar *puVar10;
  Other_attributes *pOVar11;
  uint uVar12;
  Powerpc_relobj<32,_true> *this_00;
  ulong to;
  ulong size;
  
  this_00 = this;
  gold::Sized_relobj_file<32,_true>::base_read_symbols(&this->super_Sized_relobj_file<32,_true>,sd);
  pIVar2 = (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.
           super_Object.input_file_;
  if (pIVar2 == (Input_file *)0x0) {
LAB_001840de:
                    /* WARNING: Subroutine does not return */
    gold::Object::input_file((Object *)this_00);
  }
  if (pIVar2->format_ == FORMAT_ELF) {
    bVar5 = false;
    puVar10 = sd->section_headers->data_ + 0x28;
    uVar12 = 1;
    if (1 < (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.
            super_Object.shnum_) {
      do {
        while( true ) {
          uVar7 = *(uint *)(puVar10 + 4);
          uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;
          if (uVar7 != 3) break;
LAB_00183ef7:
          uVar12 = uVar12 + 1;
          puVar10 = puVar10 + 0x28;
          if ((this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.
              super_Object.shnum_ <= uVar12) goto LAB_00183f9e;
        }
        if (uVar7 != 0x6ffffff5) {
          if (uVar7 == 2) {
            uVar7 = *(uint *)(puVar10 + 0x14);
            if (0x10 < (uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |
                       uVar7 << 0x18)) {
              bVar5 = true;
            }
          }
          else {
            bVar5 = true;
          }
          goto LAB_00183ef7;
        }
        if (this->attributes_section_data_ != (Attributes_section_data *)0x0) {
                    /* WARNING: Subroutine does not return */
          gold::do_gold_unreachable("../../gold/powerpc.cc",0x95b,"do_read_symbols");
        }
        uVar7 = *(uint *)(puVar10 + 0x10);
        uVar1 = *(uint *)(puVar10 + 0x14);
        this_00 = (Powerpc_relobj<32,_true> *)
                  (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.
                  super_Relobj.super_Object.input_file_;
        size = (ulong)(uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 |
                      uVar1 << 0x18);
        if (this_00 == (Powerpc_relobj<32,_true> *)0x0) goto LAB_001840de;
        view = gold::File_read::get_view
                         ((File_read *)
                          &(this_00->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>
                           .super_Relobj.super_Object.input_file_,
                          (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.
                          super_Relobj.super_Object.offset_,
                          (ulong)(uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |
                                 uVar7 << 0x18),size,true,false);
        pAVar8 = (Attributes_section_data *)operator_new(0x10);
                    /* try { // try from 00183f7f to 00183f83 has its CatchHandler @ 001840e3 */
        gold::Attributes_section_data::Attributes_section_data(pAVar8,view,size);
        this->attributes_section_data_ = pAVar8;
        uVar12 = uVar12 + 1;
        puVar10 = puVar10 + 0x28;
      } while (uVar12 < (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.
                        super_Relobj.super_Object.shnum_);
LAB_00183f9e:
      if (bVar5) {
        return;
      }
    }
    pAVar8 = this->attributes_section_data_;
    bVar5 = false;
    if (pAVar8 != (Attributes_section_data *)0x0) {
      pVVar3 = pAVar8->vendor_object_attributes_[0];
      while( true ) {
        if (pVVar3 != (Vendor_object_attributes *)0x0) {
          for (p_Var9 = (pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header._M_header.
                        _M_left;
              (_Rb_tree_header *)p_Var9 !=
              &(pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header;
              p_Var9 = (_Rb_tree_node_base *)std::_Rb_tree_increment(p_Var9)) {
            p_Var4 = p_Var9[1]._M_parent;
            if (p_Var4 != (_Base_ptr)0x0) {
              if (p_Var4->_M_parent != (_Base_ptr)&p_Var4->_M_right) {
                operator_delete(p_Var4->_M_parent);
              }
              operator_delete(p_Var4,0x28);
            }
          }
          std::
          _Rb_tree<int,_std::pair<int_const,_gold::Object_attribute*>,_std::_Select1st<std::pair<int_const,_gold::Object_attribute*>_>,_std::less<int>,_std::allocator<std::pair<int_const,_gold::Object_attribute*>_>_>
          ::_M_erase(&(pVVar3->other_attributes_)._M_t,
                     (_Link_type)
                     (pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header._M_header.
                     _M_parent);
          pOVar11 = &pVVar3->other_attributes_;
          do {
            puVar6 = (undefined1 *)(pOVar11 + -1);
            if (*(void **)((long)(pOVar11 + -1) + 0x10) != (void *)((long)(pOVar11 + -1) + 0x20)) {
              operator_delete(*(void **)((long)(pOVar11 + -1) + 0x10));
            }
            pOVar11 = (Other_attributes *)(puVar6 + 8);
          } while (pVVar3->known_attributes_ != (Object_attribute *)(puVar6 + 8));
          operator_delete(pVVar3,0xb50);
        }
        if (bVar5) break;
        bVar5 = true;
        pVVar3 = pAVar8->vendor_object_attributes_[1];
      }
      operator_delete(pAVar8,0x10);
    }
    this->attributes_section_data_ = (Attributes_section_data *)0x0;
  }
  return;
}



void FUN_00183e90(long param_1,long *param_2)

{
  long *plVar1;
  bool bVar2;
  uint uVar3;
  undefined8 uVar4;
  undefined8 uVar5;
  long lVar6;
  long lVar7;
  long lVar8;
  uint uVar9;
  uint uVar10;
  
  FUN_0024e4f0();
  if (*(long *)(param_1 + 0x28) == 0) {
LAB_001840de:
                    /* WARNING: Subroutine does not return */
    FUN_0016e0c0();
  }
  if (*(int *)(*(long *)(param_1 + 0x28) + 0xe4) == 1) {
    bVar2 = false;
    lVar7 = *(long *)(*param_2 + 0x10) + 0x28;
    uVar9 = 1;
    if (1 < *(uint *)(param_1 + 0x38)) {
      do {
        while( true ) {
          uVar3 = *(uint *)(lVar7 + 4);
          uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;
          if (uVar3 != 3) break;
LAB_00183ef7:
          uVar9 = uVar9 + 1;
          lVar7 = lVar7 + 0x28;
          if (*(uint *)(param_1 + 0x38) <= uVar9) goto LAB_00183f9e;
        }
        if (uVar3 != 0x6ffffff5) {
          if (uVar3 == 2) {
            uVar3 = *(uint *)(lVar7 + 0x14);
            if (0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |
                       uVar3 << 0x18)) {
              bVar2 = true;
            }
          }
          else {
            bVar2 = true;
          }
          goto LAB_00183ef7;
        }
        if (*(long *)(param_1 + 0x308) != 0) {
                    /* WARNING: Subroutine does not return */
          FUN_001e9890("../../gold/powerpc.cc",0x95b,"do_read_symbols");
        }
        uVar3 = *(uint *)(lVar7 + 0x10);
        uVar10 = *(uint *)(lVar7 + 0x14);
        uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18
        ;
        if (*(long *)(param_1 + 0x28) == 0) goto LAB_001840de;
        uVar4 = FUN_001e43a0(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),
                             uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |
                             uVar3 << 0x18,uVar10,1,0);
        uVar5 = FUN_00337280(0x10);
                    /* try { // try from 00183f7f to 00183f83 has its CatchHandler @ 001840e3 */
        FUN_001cbfe0(uVar5,uVar4,uVar10);
        *(undefined8 *)(param_1 + 0x308) = uVar5;
        uVar9 = uVar9 + 1;
        lVar7 = lVar7 + 0x28;
      } while (uVar9 < *(uint *)(param_1 + 0x38));
LAB_00183f9e:
      if (bVar2) {
        return;
      }
    }
    plVar1 = *(long **)(param_1 + 0x308);
    bVar2 = false;
    if (plVar1 != (long *)0x0) {
      lVar7 = *plVar1;
      while( true ) {
        if (lVar7 != 0) {
          for (lVar6 = *(long *)(lVar7 + 0xb38); lVar6 != lVar7 + 0xb28; lVar6 = FUN_00339e10(lVar6)
              ) {
            lVar8 = *(long *)(lVar6 + 0x28);
            if (lVar8 != 0) {
              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {
                FUN_00338a50();
              }
              thunk_FUN_00338a50(lVar8,0x28);
            }
          }
          FUN_001bc480(lVar7 + 0xb20,*(undefined8 *)(lVar7 + 0xb30));
          lVar6 = lVar7 + 0xb20;
          do {
            lVar8 = lVar6 + -0x28;
            if (*(long *)(lVar6 + -0x20) != lVar6 + -0x10) {
              FUN_00338a50();
            }
            lVar6 = lVar8;
          } while (lVar7 + 8 != lVar8);
          thunk_FUN_00338a50(lVar7,0xb50);
        }
        if (bVar2) break;
        bVar2 = true;
        lVar7 = plVar1[1];
      }
      thunk_FUN_00338a50(plVar1,0x10);
    }
    *(undefined8 *)(param_1 + 0x308) = 0;
  }
  return;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
MOV R12,RDI
PUSH RBP
PUSH RBX
MOV RBX,RSI
SUB RSP,0x18
CALL 0x0024e4f0
MOV RAX,qword ptr [R12 + 0x28]
TEST RAX,RAX
JZ 0x001840de
MOV EBP,dword ptr [RAX + 0xe4]
CMP EBP,0x1
JNZ 0x001840a1
MOV RAX,qword ptr [RBX]
XOR R13D,R13D
MOV RBX,qword ptr [RAX + 0x10]
ADD RBX,0x28
CMP dword ptr [R12 + 0x38],0x1
JA 0x00183f09
JMP 0x00183fa7
CMP EAX,0x2
JZ 0x001840b0
MOV R13D,0x1
ADD EBP,0x1
ADD RBX,0x28
CMP EBP,dword ptr [R12 + 0x38]
JNC 0x00183f9e
MOV EAX,dword ptr [RBX + 0x4]
BSWAP EAX
CMP EAX,0x3
JZ 0x00183ef7
CMP EAX,0x6ffffff5
JNZ 0x00183ee8
CMP qword ptr [R12 + 0x308],0x0
JNZ 0x001840c6
MOV EDX,dword ptr [RBX + 0x10]
MOV R10D,dword ptr [RBX + 0x14]
MOV RDI,qword ptr [R12 + 0x28]
BSWAP EDX
BSWAP R10D
MOV EDX,EDX
MOV R14D,R10D
TEST RDI,RDI
JZ 0x001840de
MOV RSI,qword ptr [R12 + 0x30]
ADD RDI,0x28
XOR R9D,R9D
MOV RCX,R14
MOV R8D,0x1
CALL 0x001e43a0
MOV EDI,0x10
MOV qword ptr [RSP + 0x8],RAX
CALL 0x00337280
MOV RSI,qword ptr [RSP + 0x8]
MOV RDX,R14
MOV RDI,RAX
MOV R15,RAX
CALL 0x001cbfe0
MOV qword ptr [R12 + 0x308],R15
ADD EBP,0x1
ADD RBX,0x28
CMP EBP,dword ptr [R12 + 0x38]
JC 0x00183f09
TEST R13B,R13B
JNZ 0x001840a1
MOV R15,qword ptr [R12 + 0x308]
XOR R14D,R14D
TEST R15,R15
JZ 0x00184095
MOV R13,qword ptr [R15 + R14*0x8]
TEST R13,R13
JZ 0x00184068
MOV RBX,qword ptr [R13 + 0xb38]
LEA RBP,[R13 + 0xb28]
CMP RBX,RBP
JZ 0x00184022
NOP dword ptr [RAX + RAX*0x1]
MOV RAX,qword ptr [RBX + 0x28]
TEST RAX,RAX
JZ 0x00184012
MOV RDI,qword ptr [RAX + 0x8]
LEA RDX,[RAX + 0x18]
CMP RDI,RDX
JZ 0x00184005
MOV qword ptr [RSP + 0x8],RAX
CALL 0x00338a50
MOV RAX,qword ptr [RSP + 0x8]
MOV ESI,0x28
MOV RDI,RAX
CALL 0x00338a40
MOV RDI,RBX
CALL 0x00339e10
MOV RBX,RAX
CMP RAX,RBP
JNZ 0x00183fe0
LEA RBX,[R13 + 0xb20]
MOV RSI,qword ptr [R13 + 0xb30]
LEA RBP,[R13 + 0x8]
MOV RDI,RBX
CALL 0x001bc480
NOP dword ptr [RAX]
SUB RBX,0x28
MOV RDI,qword ptr [RBX + 0x8]
LEA RAX,[RBX + 0x18]
CMP RDI,RAX
JZ 0x00184056
CALL 0x00338a50
CMP RBP,RBX
JNZ 0x00184040
MOV ESI,0xb50
MOV RDI,R13
CALL 0x00338a40
CMP R14,0x1
JZ 0x00184088
MOV R14D,0x1
MOV R13,qword ptr [R15 + R14*0x8]
TEST R13,R13
JNZ 0x00183fc8
JMP 0x00184068
MOV ESI,0x10
MOV RDI,R15
CALL 0x00338a40
MOV qword ptr [R12 + 0x308],0x0
ADD RSP,0x18
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV EAX,dword ptr [RBX + 0x14]
BSWAP EAX
CMP EAX,0x11
MOV EAX,0x1
CMOVNC R13D,EAX
JMP 0x00183ef7
LEA RDX,[0x3dbe10]
MOV ESI,0x95b
LEA RDI,[0x3de431]
CALL 0x001e9890
CALL 0x0016e0c0
(translation_unit "void FUN_00183e90(long param_1,long *param_2)\n\n{\n  long *plVar1;\n  bool bVar2;\n  uint uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  long lVar6;\n  long lVar7;\n  long lVar8;\n  uint uVar9;\n  uint uVar10;\n  \n  FUN_0024e4f0();\n  if (*(long *)(param_1 + 0x28) == 0) {\nLAB_001840de:\n                    /* WARNING: Subroutine does not return */\n    FUN_0016e0c0();\n  }\n  if (*(int *)(*(long *)(param_1 + 0x28) + 0xe4) == 1) {\n    bVar2 = false;\n    lVar7 = *(long *)(*param_2 + 0x10) + 0x28;\n    uVar9 = 1;\n    if (1 < *(uint *)(param_1 + 0x38)) {\n      do {\n        while( true ) {\n          uVar3 = *(uint *)(lVar7 + 4);\n          uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n          if (uVar3 != 3) break;\nLAB_00183ef7:\n          uVar9 = uVar9 + 1;\n          lVar7 = lVar7 + 0x28;\n          if (*(uint *)(param_1 + 0x38) <= uVar9) goto LAB_00183f9e;\n        }\n        if (uVar3 != 0x6ffffff5) {\n          if (uVar3 == 2) {\n            uVar3 = *(uint *)(lVar7 + 0x14);\n            if (0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)) {\n              bVar2 = true;\n            }\n          }\n          else {\n            bVar2 = true;\n          }\n          goto LAB_00183ef7;\n        }\n        if (*(long *)(param_1 + 0x308) != 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_001e9890("../../gold/powerpc.cc",0x95b,"do_read_symbols");\n        }\n        uVar3 = *(uint *)(lVar7 + 0x10);\n        uVar10 = *(uint *)(lVar7 + 0x14);\n        uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n        ;\n        if (*(long *)(param_1 + 0x28) == 0) goto LAB_001840de;\n        uVar4 = FUN_001e43a0(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                             uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18,uVar10,1,0);\n        uVar5 = FUN_00337280(0x10);\n                    /* try { // try from 00183f7f to 00183f83 has its CatchHandler @ 001840e3 */\n        FUN_001cbfe0(uVar5,uVar4,uVar10);\n        *(undefined8 *)(param_1 + 0x308) = uVar5;\n        uVar9 = uVar9 + 1;\n        lVar7 = lVar7 + 0x28;\n      } while (uVar9 < *(uint *)(param_1 + 0x38));\nLAB_00183f9e:\n      if (bVar2) {\n        return;\n      }\n    }\n    plVar1 = *(long **)(param_1 + 0x308);\n    bVar2 = false;\n    if (plVar1 != (long *)0x0) {\n      lVar7 = *plVar1;\n      while( true ) {\n        if (lVar7 != 0) {\n          for (lVar6 = *(long *)(lVar7 + 0xb38); lVar6 != lVar7 + 0xb28; lVar6 = FUN_00339e10(lVar6)\n              ) {\n            lVar8 = *(long *)(lVar6 + 0x28);\n            if (lVar8 != 0) {\n              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }\n              thunk_FUN_00338a50(lVar8,0x28);\n            }\n          }\n          FUN_001bc480(lVar7 + 0xb20,*(undefined8 *)(lVar7 + 0xb30));\n          lVar6 = lVar7 + 0xb20;\n          do {\n            lVar8 = lVar6 + -0x28;\n            if (*(long *)(lVar6 + -0x20) != lVar6 + -0x10) {\n              FUN_00338a50();\n            }\n            lVar6 = lVar8;\n          } while (lVar7 + 8 != lVar8);\n          thunk_FUN_00338a50(lVar7,0xb50);\n        }\n        if (bVar2) break;\n        bVar2 = true;\n        lVar7 = plVar1[1];\n      }\n      thunk_FUN_00338a50(plVar1,0x10);\n    }\n    *(undefined8 *)(param_1 + 0x308) = 0;\n  }\n  return;\n}\n\n" (function_definition "void FUN_00183e90(long param_1,long *param_2)\n\n{\n  long *plVar1;\n  bool bVar2;\n  uint uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  long lVar6;\n  long lVar7;\n  long lVar8;\n  uint uVar9;\n  uint uVar10;\n  \n  FUN_0024e4f0();\n  if (*(long *)(param_1 + 0x28) == 0) {\nLAB_001840de:\n                    /* WARNING: Subroutine does not return */\n    FUN_0016e0c0();\n  }\n  if (*(int *)(*(long *)(param_1 + 0x28) + 0xe4) == 1) {\n    bVar2 = false;\n    lVar7 = *(long *)(*param_2 + 0x10) + 0x28;\n    uVar9 = 1;\n    if (1 < *(uint *)(param_1 + 0x38)) {\n      do {\n        while( true ) {\n          uVar3 = *(uint *)(lVar7 + 4);\n          uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n          if (uVar3 != 3) break;\nLAB_00183ef7:\n          uVar9 = uVar9 + 1;\n          lVar7 = lVar7 + 0x28;\n          if (*(uint *)(param_1 + 0x38) <= uVar9) goto LAB_00183f9e;\n        }\n        if (uVar3 != 0x6ffffff5) {\n          if (uVar3 == 2) {\n            uVar3 = *(uint *)(lVar7 + 0x14);\n            if (0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)) {\n              bVar2 = true;\n            }\n          }\n          else {\n            bVar2 = true;\n          }\n          goto LAB_00183ef7;\n        }\n        if (*(long *)(param_1 + 0x308) != 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_001e9890("../../gold/powerpc.cc",0x95b,"do_read_symbols");\n        }\n        uVar3 = *(uint *)(lVar7 + 0x10);\n        uVar10 = *(uint *)(lVar7 + 0x14);\n        uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n        ;\n        if (*(long *)(param_1 + 0x28) == 0) goto LAB_001840de;\n        uVar4 = FUN_001e43a0(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                             uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18,uVar10,1,0);\n        uVar5 = FUN_00337280(0x10);\n                    /* try { // try from 00183f7f to 00183f83 has its CatchHandler @ 001840e3 */\n        FUN_001cbfe0(uVar5,uVar4,uVar10);\n        *(undefined8 *)(param_1 + 0x308) = uVar5;\n        uVar9 = uVar9 + 1;\n        lVar7 = lVar7 + 0x28;\n      } while (uVar9 < *(uint *)(param_1 + 0x38));\nLAB_00183f9e:\n      if (bVar2) {\n        return;\n      }\n    }\n    plVar1 = *(long **)(param_1 + 0x308);\n    bVar2 = false;\n    if (plVar1 != (long *)0x0) {\n      lVar7 = *plVar1;\n      while( true ) {\n        if (lVar7 != 0) {\n          for (lVar6 = *(long *)(lVar7 + 0xb38); lVar6 != lVar7 + 0xb28; lVar6 = FUN_00339e10(lVar6)\n              ) {\n            lVar8 = *(long *)(lVar6 + 0x28);\n            if (lVar8 != 0) {\n              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }\n              thunk_FUN_00338a50(lVar8,0x28);\n            }\n          }\n          FUN_001bc480(lVar7 + 0xb20,*(undefined8 *)(lVar7 + 0xb30));\n          lVar6 = lVar7 + 0xb20;\n          do {\n            lVar8 = lVar6 + -0x28;\n            if (*(long *)(lVar6 + -0x20) != lVar6 + -0x10) {\n              FUN_00338a50();\n            }\n            lVar6 = lVar8;\n          } while (lVar7 + 8 != lVar8);\n          thunk_FUN_00338a50(lVar7,0xb50);\n        }\n        if (bVar2) break;\n        bVar2 = true;\n        lVar7 = plVar1[1];\n      }\n      thunk_FUN_00338a50(plVar1,0x10);\n    }\n    *(undefined8 *)(param_1 + 0x308) = 0;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00183e90(long param_1,long *param_2)" identifier (parameter_list "(long param_1,long *param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long *param_2" (sized_type_specifier "long" long) (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  long *plVar1;\n  bool bVar2;\n  uint uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  long lVar6;\n  long lVar7;\n  long lVar8;\n  uint uVar9;\n  uint uVar10;\n  \n  FUN_0024e4f0();\n  if (*(long *)(param_1 + 0x28) == 0) {\nLAB_001840de:\n                    /* WARNING: Subroutine does not return */\n    FUN_0016e0c0();\n  }\n  if (*(int *)(*(long *)(param_1 + 0x28) + 0xe4) == 1) {\n    bVar2 = false;\n    lVar7 = *(long *)(*param_2 + 0x10) + 0x28;\n    uVar9 = 1;\n    if (1 < *(uint *)(param_1 + 0x38)) {\n      do {\n        while( true ) {\n          uVar3 = *(uint *)(lVar7 + 4);\n          uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n          if (uVar3 != 3) break;\nLAB_00183ef7:\n          uVar9 = uVar9 + 1;\n          lVar7 = lVar7 + 0x28;\n          if (*(uint *)(param_1 + 0x38) <= uVar9) goto LAB_00183f9e;\n        }\n        if (uVar3 != 0x6ffffff5) {\n          if (uVar3 == 2) {\n            uVar3 = *(uint *)(lVar7 + 0x14);\n            if (0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)) {\n              bVar2 = true;\n            }\n          }\n          else {\n            bVar2 = true;\n          }\n          goto LAB_00183ef7;\n        }\n        if (*(long *)(param_1 + 0x308) != 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_001e9890("../../gold/powerpc.cc",0x95b,"do_read_symbols");\n        }\n        uVar3 = *(uint *)(lVar7 + 0x10);\n        uVar10 = *(uint *)(lVar7 + 0x14);\n        uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n        ;\n        if (*(long *)(param_1 + 0x28) == 0) goto LAB_001840de;\n        uVar4 = FUN_001e43a0(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                             uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18,uVar10,1,0);\n        uVar5 = FUN_00337280(0x10);\n                    /* try { // try from 00183f7f to 00183f83 has its CatchHandler @ 001840e3 */\n        FUN_001cbfe0(uVar5,uVar4,uVar10);\n        *(undefined8 *)(param_1 + 0x308) = uVar5;\n        uVar9 = uVar9 + 1;\n        lVar7 = lVar7 + 0x28;\n      } while (uVar9 < *(uint *)(param_1 + 0x38));\nLAB_00183f9e:\n      if (bVar2) {\n        return;\n      }\n    }\n    plVar1 = *(long **)(param_1 + 0x308);\n    bVar2 = false;\n    if (plVar1 != (long *)0x0) {\n      lVar7 = *plVar1;\n      while( true ) {\n        if (lVar7 != 0) {\n          for (lVar6 = *(long *)(lVar7 + 0xb38); lVar6 != lVar7 + 0xb28; lVar6 = FUN_00339e10(lVar6)\n              ) {\n            lVar8 = *(long *)(lVar6 + 0x28);\n            if (lVar8 != 0) {\n              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }\n              thunk_FUN_00338a50(lVar8,0x28);\n            }\n          }\n          FUN_001bc480(lVar7 + 0xb20,*(undefined8 *)(lVar7 + 0xb30));\n          lVar6 = lVar7 + 0xb20;\n          do {\n            lVar8 = lVar6 + -0x28;\n            if (*(long *)(lVar6 + -0x20) != lVar6 + -0x10) {\n              FUN_00338a50();\n            }\n            lVar6 = lVar8;\n          } while (lVar7 + 8 != lVar8);\n          thunk_FUN_00338a50(lVar7,0xb50);\n        }\n        if (bVar2) break;\n        bVar2 = true;\n        lVar7 = plVar1[1];\n      }\n      thunk_FUN_00338a50(plVar1,0x10);\n    }\n    *(undefined8 *)(param_1 + 0x308) = 0;\n  }\n  return;\n}" { (declaration "long *plVar1;" (sized_type_specifier "long" long) (pointer_declarator "*plVar1" * identifier) ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (expression_statement "FUN_0024e4f0();" (call_expression "FUN_0024e4f0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (*(long *)(param_1 + 0x28) == 0) {\nLAB_001840de:\n                    /* WARNING: Subroutine does not return */\n    FUN_0016e0c0();\n  }" if (parenthesized_expression "(*(long *)(param_1 + 0x28) == 0)" ( (binary_expression "*(long *)(param_1 + 0x28) == 0" (pointer_expression "*(long *)(param_1 + 0x28)" * (cast_expression "(long *)(param_1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_001840de:\n                    /* WARNING: Subroutine does not return */\n    FUN_0016e0c0();\n  }" { (labeled_statement "LAB_001840de:\n                    /* WARNING: Subroutine does not return */\n    FUN_0016e0c0();" statement_identifier : comment (expression_statement "FUN_0016e0c0();" (call_expression "FUN_0016e0c0()" identifier (argument_list "()" ( ))) ;)) })) (if_statement "if (*(int *)(*(long *)(param_1 + 0x28) + 0xe4) == 1) {\n    bVar2 = false;\n    lVar7 = *(long *)(*param_2 + 0x10) + 0x28;\n    uVar9 = 1;\n    if (1 < *(uint *)(param_1 + 0x38)) {\n      do {\n        while( true ) {\n          uVar3 = *(uint *)(lVar7 + 4);\n          uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n          if (uVar3 != 3) break;\nLAB_00183ef7:\n          uVar9 = uVar9 + 1;\n          lVar7 = lVar7 + 0x28;\n          if (*(uint *)(param_1 + 0x38) <= uVar9) goto LAB_00183f9e;\n        }\n        if (uVar3 != 0x6ffffff5) {\n          if (uVar3 == 2) {\n            uVar3 = *(uint *)(lVar7 + 0x14);\n            if (0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)) {\n              bVar2 = true;\n            }\n          }\n          else {\n            bVar2 = true;\n          }\n          goto LAB_00183ef7;\n        }\n        if (*(long *)(param_1 + 0x308) != 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_001e9890("../../gold/powerpc.cc",0x95b,"do_read_symbols");\n        }\n        uVar3 = *(uint *)(lVar7 + 0x10);\n        uVar10 = *(uint *)(lVar7 + 0x14);\n        uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n        ;\n        if (*(long *)(param_1 + 0x28) == 0) goto LAB_001840de;\n        uVar4 = FUN_001e43a0(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                             uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18,uVar10,1,0);\n        uVar5 = FUN_00337280(0x10);\n                    /* try { // try from 00183f7f to 00183f83 has its CatchHandler @ 001840e3 */\n        FUN_001cbfe0(uVar5,uVar4,uVar10);\n        *(undefined8 *)(param_1 + 0x308) = uVar5;\n        uVar9 = uVar9 + 1;\n        lVar7 = lVar7 + 0x28;\n      } while (uVar9 < *(uint *)(param_1 + 0x38));\nLAB_00183f9e:\n      if (bVar2) {\n        return;\n      }\n    }\n    plVar1 = *(long **)(param_1 + 0x308);\n    bVar2 = false;\n    if (plVar1 != (long *)0x0) {\n      lVar7 = *plVar1;\n      while( true ) {\n        if (lVar7 != 0) {\n          for (lVar6 = *(long *)(lVar7 + 0xb38); lVar6 != lVar7 + 0xb28; lVar6 = FUN_00339e10(lVar6)\n              ) {\n            lVar8 = *(long *)(lVar6 + 0x28);\n            if (lVar8 != 0) {\n              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }\n              thunk_FUN_00338a50(lVar8,0x28);\n            }\n          }\n          FUN_001bc480(lVar7 + 0xb20,*(undefined8 *)(lVar7 + 0xb30));\n          lVar6 = lVar7 + 0xb20;\n          do {\n            lVar8 = lVar6 + -0x28;\n            if (*(long *)(lVar6 + -0x20) != lVar6 + -0x10) {\n              FUN_00338a50();\n            }\n            lVar6 = lVar8;\n          } while (lVar7 + 8 != lVar8);\n          thunk_FUN_00338a50(lVar7,0xb50);\n        }\n        if (bVar2) break;\n        bVar2 = true;\n        lVar7 = plVar1[1];\n      }\n      thunk_FUN_00338a50(plVar1,0x10);\n    }\n    *(undefined8 *)(param_1 + 0x308) = 0;\n  }" if (parenthesized_expression "(*(int *)(*(long *)(param_1 + 0x28) + 0xe4) == 1)" ( (binary_expression "*(int *)(*(long *)(param_1 + 0x28) + 0xe4) == 1" (pointer_expression "*(int *)(*(long *)(param_1 + 0x28) + 0xe4)" * (cast_expression "(int *)(*(long *)(param_1 + 0x28) + 0xe4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0x28) + 0xe4)" ( (binary_expression "*(long *)(param_1 + 0x28) + 0xe4" (pointer_expression "*(long *)(param_1 + 0x28)" * (cast_expression "(long *)(param_1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n    bVar2 = false;\n    lVar7 = *(long *)(*param_2 + 0x10) + 0x28;\n    uVar9 = 1;\n    if (1 < *(uint *)(param_1 + 0x38)) {\n      do {\n        while( true ) {\n          uVar3 = *(uint *)(lVar7 + 4);\n          uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n          if (uVar3 != 3) break;\nLAB_00183ef7:\n          uVar9 = uVar9 + 1;\n          lVar7 = lVar7 + 0x28;\n          if (*(uint *)(param_1 + 0x38) <= uVar9) goto LAB_00183f9e;\n        }\n        if (uVar3 != 0x6ffffff5) {\n          if (uVar3 == 2) {\n            uVar3 = *(uint *)(lVar7 + 0x14);\n            if (0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)) {\n              bVar2 = true;\n            }\n          }\n          else {\n            bVar2 = true;\n          }\n          goto LAB_00183ef7;\n        }\n        if (*(long *)(param_1 + 0x308) != 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_001e9890("../../gold/powerpc.cc",0x95b,"do_read_symbols");\n        }\n        uVar3 = *(uint *)(lVar7 + 0x10);\n        uVar10 = *(uint *)(lVar7 + 0x14);\n        uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n        ;\n        if (*(long *)(param_1 + 0x28) == 0) goto LAB_001840de;\n        uVar4 = FUN_001e43a0(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                             uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18,uVar10,1,0);\n        uVar5 = FUN_00337280(0x10);\n                    /* try { // try from 00183f7f to 00183f83 has its CatchHandler @ 001840e3 */\n        FUN_001cbfe0(uVar5,uVar4,uVar10);\n        *(undefined8 *)(param_1 + 0x308) = uVar5;\n        uVar9 = uVar9 + 1;\n        lVar7 = lVar7 + 0x28;\n      } while (uVar9 < *(uint *)(param_1 + 0x38));\nLAB_00183f9e:\n      if (bVar2) {\n        return;\n      }\n    }\n    plVar1 = *(long **)(param_1 + 0x308);\n    bVar2 = false;\n    if (plVar1 != (long *)0x0) {\n      lVar7 = *plVar1;\n      while( true ) {\n        if (lVar7 != 0) {\n          for (lVar6 = *(long *)(lVar7 + 0xb38); lVar6 != lVar7 + 0xb28; lVar6 = FUN_00339e10(lVar6)\n              ) {\n            lVar8 = *(long *)(lVar6 + 0x28);\n            if (lVar8 != 0) {\n              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }\n              thunk_FUN_00338a50(lVar8,0x28);\n            }\n          }\n          FUN_001bc480(lVar7 + 0xb20,*(undefined8 *)(lVar7 + 0xb30));\n          lVar6 = lVar7 + 0xb20;\n          do {\n            lVar8 = lVar6 + -0x28;\n            if (*(long *)(lVar6 + -0x20) != lVar6 + -0x10) {\n              FUN_00338a50();\n            }\n            lVar6 = lVar8;\n          } while (lVar7 + 8 != lVar8);\n          thunk_FUN_00338a50(lVar7,0xb50);\n        }\n        if (bVar2) break;\n        bVar2 = true;\n        lVar7 = plVar1[1];\n      }\n      thunk_FUN_00338a50(plVar1,0x10);\n    }\n    *(undefined8 *)(param_1 + 0x308) = 0;\n  }" { (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "lVar7 = *(long *)(*param_2 + 0x10) + 0x28;" (assignment_expression "lVar7 = *(long *)(*param_2 + 0x10) + 0x28" identifier = (binary_expression "*(long *)(*param_2 + 0x10) + 0x28" (pointer_expression "*(long *)(*param_2 + 0x10)" * (cast_expression "(long *)(*param_2 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_2 + 0x10)" ( (binary_expression "*param_2 + 0x10" (pointer_expression "*param_2" * identifier) + number_literal) )))) + number_literal)) ;) (expression_statement "uVar9 = 1;" (assignment_expression "uVar9 = 1" identifier = number_literal) ;) (if_statement "if (1 < *(uint *)(param_1 + 0x38)) {\n      do {\n        while( true ) {\n          uVar3 = *(uint *)(lVar7 + 4);\n          uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n          if (uVar3 != 3) break;\nLAB_00183ef7:\n          uVar9 = uVar9 + 1;\n          lVar7 = lVar7 + 0x28;\n          if (*(uint *)(param_1 + 0x38) <= uVar9) goto LAB_00183f9e;\n        }\n        if (uVar3 != 0x6ffffff5) {\n          if (uVar3 == 2) {\n            uVar3 = *(uint *)(lVar7 + 0x14);\n            if (0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)) {\n              bVar2 = true;\n            }\n          }\n          else {\n            bVar2 = true;\n          }\n          goto LAB_00183ef7;\n        }\n        if (*(long *)(param_1 + 0x308) != 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_001e9890("../../gold/powerpc.cc",0x95b,"do_read_symbols");\n        }\n        uVar3 = *(uint *)(lVar7 + 0x10);\n        uVar10 = *(uint *)(lVar7 + 0x14);\n        uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n        ;\n        if (*(long *)(param_1 + 0x28) == 0) goto LAB_001840de;\n        uVar4 = FUN_001e43a0(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                             uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18,uVar10,1,0);\n        uVar5 = FUN_00337280(0x10);\n                    /* try { // try from 00183f7f to 00183f83 has its CatchHandler @ 001840e3 */\n        FUN_001cbfe0(uVar5,uVar4,uVar10);\n        *(undefined8 *)(param_1 + 0x308) = uVar5;\n        uVar9 = uVar9 + 1;\n        lVar7 = lVar7 + 0x28;\n      } while (uVar9 < *(uint *)(param_1 + 0x38));\nLAB_00183f9e:\n      if (bVar2) {\n        return;\n      }\n    }" if (parenthesized_expression "(1 < *(uint *)(param_1 + 0x38))" ( (binary_expression "1 < *(uint *)(param_1 + 0x38)" number_literal < (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) )) (compound_statement "{\n      do {\n        while( true ) {\n          uVar3 = *(uint *)(lVar7 + 4);\n          uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n          if (uVar3 != 3) break;\nLAB_00183ef7:\n          uVar9 = uVar9 + 1;\n          lVar7 = lVar7 + 0x28;\n          if (*(uint *)(param_1 + 0x38) <= uVar9) goto LAB_00183f9e;\n        }\n        if (uVar3 != 0x6ffffff5) {\n          if (uVar3 == 2) {\n            uVar3 = *(uint *)(lVar7 + 0x14);\n            if (0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)) {\n              bVar2 = true;\n            }\n          }\n          else {\n            bVar2 = true;\n          }\n          goto LAB_00183ef7;\n        }\n        if (*(long *)(param_1 + 0x308) != 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_001e9890("../../gold/powerpc.cc",0x95b,"do_read_symbols");\n        }\n        uVar3 = *(uint *)(lVar7 + 0x10);\n        uVar10 = *(uint *)(lVar7 + 0x14);\n        uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n        ;\n        if (*(long *)(param_1 + 0x28) == 0) goto LAB_001840de;\n        uVar4 = FUN_001e43a0(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                             uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18,uVar10,1,0);\n        uVar5 = FUN_00337280(0x10);\n                    /* try { // try from 00183f7f to 00183f83 has its CatchHandler @ 001840e3 */\n        FUN_001cbfe0(uVar5,uVar4,uVar10);\n        *(undefined8 *)(param_1 + 0x308) = uVar5;\n        uVar9 = uVar9 + 1;\n        lVar7 = lVar7 + 0x28;\n      } while (uVar9 < *(uint *)(param_1 + 0x38));\nLAB_00183f9e:\n      if (bVar2) {\n        return;\n      }\n    }" { (do_statement "do {\n        while( true ) {\n          uVar3 = *(uint *)(lVar7 + 4);\n          uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n          if (uVar3 != 3) break;\nLAB_00183ef7:\n          uVar9 = uVar9 + 1;\n          lVar7 = lVar7 + 0x28;\n          if (*(uint *)(param_1 + 0x38) <= uVar9) goto LAB_00183f9e;\n        }\n        if (uVar3 != 0x6ffffff5) {\n          if (uVar3 == 2) {\n            uVar3 = *(uint *)(lVar7 + 0x14);\n            if (0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)) {\n              bVar2 = true;\n            }\n          }\n          else {\n            bVar2 = true;\n          }\n          goto LAB_00183ef7;\n        }\n        if (*(long *)(param_1 + 0x308) != 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_001e9890("../../gold/powerpc.cc",0x95b,"do_read_symbols");\n        }\n        uVar3 = *(uint *)(lVar7 + 0x10);\n        uVar10 = *(uint *)(lVar7 + 0x14);\n        uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n        ;\n        if (*(long *)(param_1 + 0x28) == 0) goto LAB_001840de;\n        uVar4 = FUN_001e43a0(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                             uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18,uVar10,1,0);\n        uVar5 = FUN_00337280(0x10);\n                    /* try { // try from 00183f7f to 00183f83 has its CatchHandler @ 001840e3 */\n        FUN_001cbfe0(uVar5,uVar4,uVar10);\n        *(undefined8 *)(param_1 + 0x308) = uVar5;\n        uVar9 = uVar9 + 1;\n        lVar7 = lVar7 + 0x28;\n      } while (uVar9 < *(uint *)(param_1 + 0x38));" do (compound_statement "{\n        while( true ) {\n          uVar3 = *(uint *)(lVar7 + 4);\n          uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n          if (uVar3 != 3) break;\nLAB_00183ef7:\n          uVar9 = uVar9 + 1;\n          lVar7 = lVar7 + 0x28;\n          if (*(uint *)(param_1 + 0x38) <= uVar9) goto LAB_00183f9e;\n        }\n        if (uVar3 != 0x6ffffff5) {\n          if (uVar3 == 2) {\n            uVar3 = *(uint *)(lVar7 + 0x14);\n            if (0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)) {\n              bVar2 = true;\n            }\n          }\n          else {\n            bVar2 = true;\n          }\n          goto LAB_00183ef7;\n        }\n        if (*(long *)(param_1 + 0x308) != 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_001e9890("../../gold/powerpc.cc",0x95b,"do_read_symbols");\n        }\n        uVar3 = *(uint *)(lVar7 + 0x10);\n        uVar10 = *(uint *)(lVar7 + 0x14);\n        uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n        ;\n        if (*(long *)(param_1 + 0x28) == 0) goto LAB_001840de;\n        uVar4 = FUN_001e43a0(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                             uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18,uVar10,1,0);\n        uVar5 = FUN_00337280(0x10);\n                    /* try { // try from 00183f7f to 00183f83 has its CatchHandler @ 001840e3 */\n        FUN_001cbfe0(uVar5,uVar4,uVar10);\n        *(undefined8 *)(param_1 + 0x308) = uVar5;\n        uVar9 = uVar9 + 1;\n        lVar7 = lVar7 + 0x28;\n      }" { (while_statement "while( true ) {\n          uVar3 = *(uint *)(lVar7 + 4);\n          uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n          if (uVar3 != 3) break;\nLAB_00183ef7:\n          uVar9 = uVar9 + 1;\n          lVar7 = lVar7 + 0x28;\n          if (*(uint *)(param_1 + 0x38) <= uVar9) goto LAB_00183f9e;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          uVar3 = *(uint *)(lVar7 + 4);\n          uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n          if (uVar3 != 3) break;\nLAB_00183ef7:\n          uVar9 = uVar9 + 1;\n          lVar7 = lVar7 + 0x28;\n          if (*(uint *)(param_1 + 0x38) <= uVar9) goto LAB_00183f9e;\n        }" { (expression_statement "uVar3 = *(uint *)(lVar7 + 4);" (assignment_expression "uVar3 = *(uint *)(lVar7 + 4)" identifier = (pointer_expression "*(uint *)(lVar7 + 4)" * (cast_expression "(uint *)(lVar7 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 4)" ( (binary_expression "lVar7 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;" (assignment_expression "uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18" identifier = (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8" (binary_expression "uVar3 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar3 & 0xff0000) >> 8" (parenthesized_expression "(uVar3 & 0xff0000)" ( (binary_expression "uVar3 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar3 & 0xff00) << 8" (parenthesized_expression "(uVar3 & 0xff00)" ( (binary_expression "uVar3 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar3 << 0x18" identifier << number_literal))) ;) (if_statement "if (uVar3 != 3) break;" if (parenthesized_expression "(uVar3 != 3)" ( (binary_expression "uVar3 != 3" identifier != number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00183ef7:\n          uVar9 = uVar9 + 1;" statement_identifier : (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;)) (expression_statement "lVar7 = lVar7 + 0x28;" (assignment_expression "lVar7 = lVar7 + 0x28" identifier = (binary_expression "lVar7 + 0x28" identifier + number_literal)) ;) (if_statement "if (*(uint *)(param_1 + 0x38) <= uVar9) goto LAB_00183f9e;" if (parenthesized_expression "(*(uint *)(param_1 + 0x38) <= uVar9)" ( (binary_expression "*(uint *)(param_1 + 0x38) <= uVar9" (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) <= identifier) )) (goto_statement "goto LAB_00183f9e;" goto statement_identifier ;)) })) (if_statement "if (uVar3 != 0x6ffffff5) {\n          if (uVar3 == 2) {\n            uVar3 = *(uint *)(lVar7 + 0x14);\n            if (0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)) {\n              bVar2 = true;\n            }\n          }\n          else {\n            bVar2 = true;\n          }\n          goto LAB_00183ef7;\n        }" if (parenthesized_expression "(uVar3 != 0x6ffffff5)" ( (binary_expression "uVar3 != 0x6ffffff5" identifier != number_literal) )) (compound_statement "{\n          if (uVar3 == 2) {\n            uVar3 = *(uint *)(lVar7 + 0x14);\n            if (0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)) {\n              bVar2 = true;\n            }\n          }\n          else {\n            bVar2 = true;\n          }\n          goto LAB_00183ef7;\n        }" { (if_statement "if (uVar3 == 2) {\n            uVar3 = *(uint *)(lVar7 + 0x14);\n            if (0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)) {\n              bVar2 = true;\n            }\n          }\n          else {\n            bVar2 = true;\n          }" if (parenthesized_expression "(uVar3 == 2)" ( (binary_expression "uVar3 == 2" identifier == number_literal) )) (compound_statement "{\n            uVar3 = *(uint *)(lVar7 + 0x14);\n            if (0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)) {\n              bVar2 = true;\n            }\n          }" { (expression_statement "uVar3 = *(uint *)(lVar7 + 0x14);" (assignment_expression "uVar3 = *(uint *)(lVar7 + 0x14)" identifier = (pointer_expression "*(uint *)(lVar7 + 0x14)" * (cast_expression "(uint *)(lVar7 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0x14)" ( (binary_expression "lVar7 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)) {\n              bVar2 = true;\n            }" if (parenthesized_expression "(0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18))" ( (binary_expression "0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)" number_literal < (parenthesized_expression "(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)" ( (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8" (binary_expression "uVar3 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar3 & 0xff0000) >> 8" (parenthesized_expression "(uVar3 & 0xff0000)" ( (binary_expression "uVar3 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar3 & 0xff00) << 8" (parenthesized_expression "(uVar3 & 0xff00)" ( (binary_expression "uVar3 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar3 << 0x18" identifier << number_literal)) ))) )) (compound_statement "{\n              bVar2 = true;\n            }" { (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) })) }) (else_clause "else {\n            bVar2 = true;\n          }" else (compound_statement "{\n            bVar2 = true;\n          }" { (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) }))) (goto_statement "goto LAB_00183ef7;" goto statement_identifier ;) })) (if_statement "if (*(long *)(param_1 + 0x308) != 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_001e9890("../../gold/powerpc.cc",0x95b,"do_read_symbols");\n        }" if (parenthesized_expression "(*(long *)(param_1 + 0x308) != 0)" ( (binary_expression "*(long *)(param_1 + 0x308) != 0" (pointer_expression "*(long *)(param_1 + 0x308)" * (cast_expression "(long *)(param_1 + 0x308)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x308)" ( (binary_expression "param_1 + 0x308" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          FUN_001e9890("../../gold/powerpc.cc",0x95b,"do_read_symbols");\n        }" { comment (expression_statement "FUN_001e9890("../../gold/powerpc.cc",0x95b,"do_read_symbols");" (call_expression "FUN_001e9890("../../gold/powerpc.cc",0x95b,"do_read_symbols")" identifier (argument_list "("../../gold/powerpc.cc",0x95b,"do_read_symbols")" ( (string_literal ""../../gold/powerpc.cc"" " string_content ") , number_literal , (string_literal ""do_read_symbols"" " string_content ") ))) ;) })) (expression_statement "uVar3 = *(uint *)(lVar7 + 0x10);" (assignment_expression "uVar3 = *(uint *)(lVar7 + 0x10)" identifier = (pointer_expression "*(uint *)(lVar7 + 0x10)" * (cast_expression "(uint *)(lVar7 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0x10)" ( (binary_expression "lVar7 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(uint *)(lVar7 + 0x14);" (assignment_expression "uVar10 = *(uint *)(lVar7 + 0x14)" identifier = (pointer_expression "*(uint *)(lVar7 + 0x14)" * (cast_expression "(uint *)(lVar7 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0x14)" ( (binary_expression "lVar7 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n        ;" (assignment_expression "uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18" identifier = (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8" (binary_expression "uVar10 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar10 & 0xff0000) >> 8" (parenthesized_expression "(uVar10 & 0xff0000)" ( (binary_expression "uVar10 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar10 & 0xff00) << 8" (parenthesized_expression "(uVar10 & 0xff00)" ( (binary_expression "uVar10 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar10 << 0x18" identifier << number_literal))) ;) (if_statement "if (*(long *)(param_1 + 0x28) == 0) goto LAB_001840de;" if (parenthesized_expression "(*(long *)(param_1 + 0x28) == 0)" ( (binary_expression "*(long *)(param_1 + 0x28) == 0" (pointer_expression "*(long *)(param_1 + 0x28)" * (cast_expression "(long *)(param_1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_001840de;" goto statement_identifier ;)) (expression_statement "uVar4 = FUN_001e43a0(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                             uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18,uVar10,1,0);" (assignment_expression "uVar4 = FUN_001e43a0(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                             uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18,uVar10,1,0)" identifier = (call_expression "FUN_001e43a0(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                             uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18,uVar10,1,0)" identifier (argument_list "(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                             uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18,uVar10,1,0)" ( (binary_expression "*(long *)(param_1 + 0x28) + 0x28" (pointer_expression "*(long *)(param_1 + 0x28)" * (cast_expression "(long *)(param_1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) + number_literal) , (pointer_expression "*(undefined8 *)(param_1 + 0x30)" * (cast_expression "(undefined8 *)(param_1 + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) , (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8" (binary_expression "uVar3 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar3 & 0xff0000) >> 8" (parenthesized_expression "(uVar3 & 0xff0000)" ( (binary_expression "uVar3 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar3 & 0xff00) << 8" (parenthesized_expression "(uVar3 & 0xff00)" ( (binary_expression "uVar3 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar3 << 0x18" identifier << number_literal)) , identifier , number_literal , number_literal )))) ;) (expression_statement "uVar5 = FUN_00337280(0x10);" (assignment_expression "uVar5 = FUN_00337280(0x10)" identifier = (call_expression "FUN_00337280(0x10)" identifier (argument_list "(0x10)" ( number_literal )))) ;) comment (expression_statement "FUN_001cbfe0(uVar5,uVar4,uVar10);" (call_expression "FUN_001cbfe0(uVar5,uVar4,uVar10)" identifier (argument_list "(uVar5,uVar4,uVar10)" ( identifier , identifier , identifier ))) ;) (expression_statement "*(undefined8 *)(param_1 + 0x308) = uVar5;" (assignment_expression "*(undefined8 *)(param_1 + 0x308) = uVar5" (pointer_expression "*(undefined8 *)(param_1 + 0x308)" * (cast_expression "(undefined8 *)(param_1 + 0x308)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x308)" ( (binary_expression "param_1 + 0x308" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;) (expression_statement "lVar7 = lVar7 + 0x28;" (assignment_expression "lVar7 = lVar7 + 0x28" identifier = (binary_expression "lVar7 + 0x28" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar9 < *(uint *)(param_1 + 0x38))" ( (binary_expression "uVar9 < *(uint *)(param_1 + 0x38)" identifier < (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) )) ;) (labeled_statement "LAB_00183f9e:\n      if (bVar2) {\n        return;\n      }" statement_identifier : (if_statement "if (bVar2) {\n        return;\n      }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) }))) })) (expression_statement "plVar1 = *(long **)(param_1 + 0x308);" (assignment_expression "plVar1 = *(long **)(param_1 + 0x308)" identifier = (pointer_expression "*(long **)(param_1 + 0x308)" * (cast_expression "(long **)(param_1 + 0x308)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x308)" ( (binary_expression "param_1 + 0x308" identifier + number_literal) ))))) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (if_statement "if (plVar1 != (long *)0x0) {\n      lVar7 = *plVar1;\n      while( true ) {\n        if (lVar7 != 0) {\n          for (lVar6 = *(long *)(lVar7 + 0xb38); lVar6 != lVar7 + 0xb28; lVar6 = FUN_00339e10(lVar6)\n              ) {\n            lVar8 = *(long *)(lVar6 + 0x28);\n            if (lVar8 != 0) {\n              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }\n              thunk_FUN_00338a50(lVar8,0x28);\n            }\n          }\n          FUN_001bc480(lVar7 + 0xb20,*(undefined8 *)(lVar7 + 0xb30));\n          lVar6 = lVar7 + 0xb20;\n          do {\n            lVar8 = lVar6 + -0x28;\n            if (*(long *)(lVar6 + -0x20) != lVar6 + -0x10) {\n              FUN_00338a50();\n            }\n            lVar6 = lVar8;\n          } while (lVar7 + 8 != lVar8);\n          thunk_FUN_00338a50(lVar7,0xb50);\n        }\n        if (bVar2) break;\n        bVar2 = true;\n        lVar7 = plVar1[1];\n      }\n      thunk_FUN_00338a50(plVar1,0x10);\n    }" if (parenthesized_expression "(plVar1 != (long *)0x0)" ( (binary_expression "plVar1 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      lVar7 = *plVar1;\n      while( true ) {\n        if (lVar7 != 0) {\n          for (lVar6 = *(long *)(lVar7 + 0xb38); lVar6 != lVar7 + 0xb28; lVar6 = FUN_00339e10(lVar6)\n              ) {\n            lVar8 = *(long *)(lVar6 + 0x28);\n            if (lVar8 != 0) {\n              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }\n              thunk_FUN_00338a50(lVar8,0x28);\n            }\n          }\n          FUN_001bc480(lVar7 + 0xb20,*(undefined8 *)(lVar7 + 0xb30));\n          lVar6 = lVar7 + 0xb20;\n          do {\n            lVar8 = lVar6 + -0x28;\n            if (*(long *)(lVar6 + -0x20) != lVar6 + -0x10) {\n              FUN_00338a50();\n            }\n            lVar6 = lVar8;\n          } while (lVar7 + 8 != lVar8);\n          thunk_FUN_00338a50(lVar7,0xb50);\n        }\n        if (bVar2) break;\n        bVar2 = true;\n        lVar7 = plVar1[1];\n      }\n      thunk_FUN_00338a50(plVar1,0x10);\n    }" { (expression_statement "lVar7 = *plVar1;" (assignment_expression "lVar7 = *plVar1" identifier = (pointer_expression "*plVar1" * identifier)) ;) (while_statement "while( true ) {\n        if (lVar7 != 0) {\n          for (lVar6 = *(long *)(lVar7 + 0xb38); lVar6 != lVar7 + 0xb28; lVar6 = FUN_00339e10(lVar6)\n              ) {\n            lVar8 = *(long *)(lVar6 + 0x28);\n            if (lVar8 != 0) {\n              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }\n              thunk_FUN_00338a50(lVar8,0x28);\n            }\n          }\n          FUN_001bc480(lVar7 + 0xb20,*(undefined8 *)(lVar7 + 0xb30));\n          lVar6 = lVar7 + 0xb20;\n          do {\n            lVar8 = lVar6 + -0x28;\n            if (*(long *)(lVar6 + -0x20) != lVar6 + -0x10) {\n              FUN_00338a50();\n            }\n            lVar6 = lVar8;\n          } while (lVar7 + 8 != lVar8);\n          thunk_FUN_00338a50(lVar7,0xb50);\n        }\n        if (bVar2) break;\n        bVar2 = true;\n        lVar7 = plVar1[1];\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        if (lVar7 != 0) {\n          for (lVar6 = *(long *)(lVar7 + 0xb38); lVar6 != lVar7 + 0xb28; lVar6 = FUN_00339e10(lVar6)\n              ) {\n            lVar8 = *(long *)(lVar6 + 0x28);\n            if (lVar8 != 0) {\n              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }\n              thunk_FUN_00338a50(lVar8,0x28);\n            }\n          }\n          FUN_001bc480(lVar7 + 0xb20,*(undefined8 *)(lVar7 + 0xb30));\n          lVar6 = lVar7 + 0xb20;\n          do {\n            lVar8 = lVar6 + -0x28;\n            if (*(long *)(lVar6 + -0x20) != lVar6 + -0x10) {\n              FUN_00338a50();\n            }\n            lVar6 = lVar8;\n          } while (lVar7 + 8 != lVar8);\n          thunk_FUN_00338a50(lVar7,0xb50);\n        }\n        if (bVar2) break;\n        bVar2 = true;\n        lVar7 = plVar1[1];\n      }" { (if_statement "if (lVar7 != 0) {\n          for (lVar6 = *(long *)(lVar7 + 0xb38); lVar6 != lVar7 + 0xb28; lVar6 = FUN_00339e10(lVar6)\n              ) {\n            lVar8 = *(long *)(lVar6 + 0x28);\n            if (lVar8 != 0) {\n              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }\n              thunk_FUN_00338a50(lVar8,0x28);\n            }\n          }\n          FUN_001bc480(lVar7 + 0xb20,*(undefined8 *)(lVar7 + 0xb30));\n          lVar6 = lVar7 + 0xb20;\n          do {\n            lVar8 = lVar6 + -0x28;\n            if (*(long *)(lVar6 + -0x20) != lVar6 + -0x10) {\n              FUN_00338a50();\n            }\n            lVar6 = lVar8;\n          } while (lVar7 + 8 != lVar8);\n          thunk_FUN_00338a50(lVar7,0xb50);\n        }" if (parenthesized_expression "(lVar7 != 0)" ( (binary_expression "lVar7 != 0" identifier != number_literal) )) (compound_statement "{\n          for (lVar6 = *(long *)(lVar7 + 0xb38); lVar6 != lVar7 + 0xb28; lVar6 = FUN_00339e10(lVar6)\n              ) {\n            lVar8 = *(long *)(lVar6 + 0x28);\n            if (lVar8 != 0) {\n              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }\n              thunk_FUN_00338a50(lVar8,0x28);\n            }\n          }\n          FUN_001bc480(lVar7 + 0xb20,*(undefined8 *)(lVar7 + 0xb30));\n          lVar6 = lVar7 + 0xb20;\n          do {\n            lVar8 = lVar6 + -0x28;\n            if (*(long *)(lVar6 + -0x20) != lVar6 + -0x10) {\n              FUN_00338a50();\n            }\n            lVar6 = lVar8;\n          } while (lVar7 + 8 != lVar8);\n          thunk_FUN_00338a50(lVar7,0xb50);\n        }" { (for_statement "for (lVar6 = *(long *)(lVar7 + 0xb38); lVar6 != lVar7 + 0xb28; lVar6 = FUN_00339e10(lVar6)\n              ) {\n            lVar8 = *(long *)(lVar6 + 0x28);\n            if (lVar8 != 0) {\n              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }\n              thunk_FUN_00338a50(lVar8,0x28);\n            }\n          }" for ( (assignment_expression "lVar6 = *(long *)(lVar7 + 0xb38)" identifier = (pointer_expression "*(long *)(lVar7 + 0xb38)" * (cast_expression "(long *)(lVar7 + 0xb38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0xb38)" ( (binary_expression "lVar7 + 0xb38" identifier + number_literal) ))))) ; (binary_expression "lVar6 != lVar7 + 0xb28" identifier != (binary_expression "lVar7 + 0xb28" identifier + number_literal)) ; (assignment_expression "lVar6 = FUN_00339e10(lVar6)" identifier = (call_expression "FUN_00339e10(lVar6)" identifier (argument_list "(lVar6)" ( identifier )))) ) (compound_statement "{\n            lVar8 = *(long *)(lVar6 + 0x28);\n            if (lVar8 != 0) {\n              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }\n              thunk_FUN_00338a50(lVar8,0x28);\n            }\n          }" { (expression_statement "lVar8 = *(long *)(lVar6 + 0x28);" (assignment_expression "lVar8 = *(long *)(lVar6 + 0x28)" identifier = (pointer_expression "*(long *)(lVar6 + 0x28)" * (cast_expression "(long *)(lVar6 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x28)" ( (binary_expression "lVar6 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (lVar8 != 0) {\n              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }\n              thunk_FUN_00338a50(lVar8,0x28);\n            }" if (parenthesized_expression "(lVar8 != 0)" ( (binary_expression "lVar8 != 0" identifier != number_literal) )) (compound_statement "{\n              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }\n              thunk_FUN_00338a50(lVar8,0x28);\n            }" { (if_statement "if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }" if (parenthesized_expression "(*(long *)(lVar8 + 8) != lVar8 + 0x18)" ( (binary_expression "*(long *)(lVar8 + 8) != lVar8 + 0x18" (pointer_expression "*(long *)(lVar8 + 8)" * (cast_expression "(long *)(lVar8 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 8)" ( (binary_expression "lVar8 + 8" identifier + number_literal) )))) != (binary_expression "lVar8 + 0x18" identifier + number_literal)) )) (compound_statement "{\n                FUN_00338a50();\n              }" { (expression_statement "FUN_00338a50();" (call_expression "FUN_00338a50()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "thunk_FUN_00338a50(lVar8,0x28);" (call_expression "thunk_FUN_00338a50(lVar8,0x28)" identifier (argument_list "(lVar8,0x28)" ( identifier , number_literal ))) ;) })) })) (expression_statement "FUN_001bc480(lVar7 + 0xb20,*(undefined8 *)(lVar7 + 0xb30));" (call_expression "FUN_001bc480(lVar7 + 0xb20,*(undefined8 *)(lVar7 + 0xb30))" identifier (argument_list "(lVar7 + 0xb20,*(undefined8 *)(lVar7 + 0xb30))" ( (binary_expression "lVar7 + 0xb20" identifier + number_literal) , (pointer_expression "*(undefined8 *)(lVar7 + 0xb30)" * (cast_expression "(undefined8 *)(lVar7 + 0xb30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0xb30)" ( (binary_expression "lVar7 + 0xb30" identifier + number_literal) )))) ))) ;) (expression_statement "lVar6 = lVar7 + 0xb20;" (assignment_expression "lVar6 = lVar7 + 0xb20" identifier = (binary_expression "lVar7 + 0xb20" identifier + number_literal)) ;) (do_statement "do {\n            lVar8 = lVar6 + -0x28;\n            if (*(long *)(lVar6 + -0x20) != lVar6 + -0x10) {\n              FUN_00338a50();\n            }\n            lVar6 = lVar8;\n          } while (lVar7 + 8 != lVar8);" do (compound_statement "{\n            lVar8 = lVar6 + -0x28;\n            if (*(long *)(lVar6 + -0x20) != lVar6 + -0x10) {\n              FUN_00338a50();\n            }\n            lVar6 = lVar8;\n          }" { (expression_statement "lVar8 = lVar6 + -0x28;" (assignment_expression "lVar8 = lVar6 + -0x28" identifier = (binary_expression "lVar6 + -0x28" identifier + number_literal)) ;) (if_statement "if (*(long *)(lVar6 + -0x20) != lVar6 + -0x10) {\n              FUN_00338a50();\n            }" if (parenthesized_expression "(*(long *)(lVar6 + -0x20) != lVar6 + -0x10)" ( (binary_expression "*(long *)(lVar6 + -0x20) != lVar6 + -0x10" (pointer_expression "*(long *)(lVar6 + -0x20)" * (cast_expression "(long *)(lVar6 + -0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + -0x20)" ( (binary_expression "lVar6 + -0x20" identifier + number_literal) )))) != (binary_expression "lVar6 + -0x10" identifier + number_literal)) )) (compound_statement "{\n              FUN_00338a50();\n            }" { (expression_statement "FUN_00338a50();" (call_expression "FUN_00338a50()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "lVar6 = lVar8;" (assignment_expression "lVar6 = lVar8" identifier = identifier) ;) }) while (parenthesized_expression "(lVar7 + 8 != lVar8)" ( (binary_expression "lVar7 + 8 != lVar8" (binary_expression "lVar7 + 8" identifier + number_literal) != identifier) )) ;) (expression_statement "thunk_FUN_00338a50(lVar7,0xb50);" (call_expression "thunk_FUN_00338a50(lVar7,0xb50)" identifier (argument_list "(lVar7,0xb50)" ( identifier , number_literal ))) ;) })) (if_statement "if (bVar2) break;" if (parenthesized_expression "(bVar2)" ( identifier )) (break_statement "break;" break ;)) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (expression_statement "lVar7 = plVar1[1];" (assignment_expression "lVar7 = plVar1[1]" identifier = (subscript_expression "plVar1[1]" identifier [ number_literal ])) ;) })) (expression_statement "thunk_FUN_00338a50(plVar1,0x10);" (call_expression "thunk_FUN_00338a50(plVar1,0x10)" identifier (argument_list "(plVar1,0x10)" ( identifier , number_literal ))) ;) })) (expression_statement "*(undefined8 *)(param_1 + 0x308) = 0;" (assignment_expression "*(undefined8 *)(param_1 + 0x308) = 0" (pointer_expression "*(undefined8 *)(param_1 + 0x308)" * (cast_expression "(undefined8 *)(param_1 + 0x308)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x308)" ( (binary_expression "param_1 + 0x308" identifier + number_literal) )))) = number_literal) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n/* DWARF original prototype: void do_read_symbols(Powerpc_relobj<32,_true> * this, Read_symbols_data\n   * sd) */\n\nvoid __thiscall\nanon_unknown.dwarf_2cac9f::Powerpc_relobj<32,_true>::do_read_symbols\n          (Powerpc_relobj<32,_true> *this,Read_symbols_data *sd)\n\n{\n  uint uVar1;\n  Input_file *pIVar2;\n  Vendor_object_attributes *pVVar3;\n  _Base_ptr p_Var4;\n  bool bVar5;\n  undefined1 *puVar6;\n  uint uVar7;\n  uchar *view;\n  Attributes_section_data *pAVar8;\n  _Rb_tree_node_base *p_Var9;\n  uchar *puVar10;\n  Other_attributes *pOVar11;\n  uint uVar12;\n  Powerpc_relobj<32,_true> *this_00;\n  ulong to;\n  ulong size;\n  \n  this_00 = this;\n  gold::Sized_relobj_file<32,_true>::base_read_symbols(&this->super_Sized_relobj_file<32,_true>,sd);\n  pIVar2 = (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.\n           super_Object.input_file_;\n  if (pIVar2 == (Input_file *)0x0) {\nLAB_001840de:\n                    /* WARNING: Subroutine does not return */\n    gold::Object::input_file((Object *)this_00);\n  }\n  if (pIVar2->format_ == FORMAT_ELF) {\n    bVar5 = false;\n    puVar10 = sd->section_headers->data_ + 0x28;\n    uVar12 = 1;\n    if (1 < (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.\n            super_Object.shnum_) {\n      do {\n        while( true ) {\n          uVar7 = *(uint *)(puVar10 + 4);\n          uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n          if (uVar7 != 3) break;\nLAB_00183ef7:\n          uVar12 = uVar12 + 1;\n          puVar10 = puVar10 + 0x28;\n          if ((this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.\n              super_Object.shnum_ <= uVar12) goto LAB_00183f9e;\n        }\n        if (uVar7 != 0x6ffffff5) {\n          if (uVar7 == 2) {\n            uVar7 = *(uint *)(puVar10 + 0x14);\n            if (0x10 < (uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                       uVar7 << 0x18)) {\n              bVar5 = true;\n            }\n          }\n          else {\n            bVar5 = true;\n          }\n          goto LAB_00183ef7;\n        }\n        if (this->attributes_section_data_ != (Attributes_section_data *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/powerpc.cc",0x95b,"do_read_symbols");\n        }\n        uVar7 = *(uint *)(puVar10 + 0x10);\n        uVar1 = *(uint *)(puVar10 + 0x14);\n        this_00 = (Powerpc_relobj<32,_true> *)\n                  (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.\n                  super_Relobj.super_Object.input_file_;\n        size = (ulong)(uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 |\n                      uVar1 << 0x18);\n        if (this_00 == (Powerpc_relobj<32,_true> *)0x0) goto LAB_001840de;\n        view = gold::File_read::get_view\n                         ((File_read *)\n                          &(this_00->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>\n                           .super_Relobj.super_Object.input_file_,\n                          (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.\n                          super_Relobj.super_Object.offset_,\n                          (ulong)(uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                                 uVar7 << 0x18),size,true,false);\n        pAVar8 = (Attributes_section_data *)operator_new(0x10);\n                    /* try { // try from 00183f7f to 00183f83 has its CatchHandler @ 001840e3 */\n        gold::Attributes_section_data::Attributes_section_data(pAVar8,view,size);\n        this->attributes_section_data_ = pAVar8;\n        uVar12 = uVar12 + 1;\n        puVar10 = puVar10 + 0x28;\n      } while (uVar12 < (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.\n                        super_Relobj.super_Object.shnum_);\nLAB_00183f9e:\n      if (bVar5) {\n        return;\n      }\n    }\n    pAVar8 = this->attributes_section_data_;\n    bVar5 = false;\n    if (pAVar8 != (Attributes_section_data *)0x0) {\n      pVVar3 = pAVar8->vendor_object_attributes_[0];\n      while( true ) {\n        if (pVVar3 != (Vendor_object_attributes *)0x0) {\n          for (p_Var9 = (pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                        _M_left;\n              (_Rb_tree_header *)p_Var9 !=\n              &(pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header;\n              p_Var9 = (_Rb_tree_node_base *)std::_Rb_tree_increment(p_Var9)) {\n            p_Var4 = p_Var9[1]._M_parent;\n            if (p_Var4 != (_Base_ptr)0x0) {\n              if (p_Var4->_M_parent != (_Base_ptr)&p_Var4->_M_right) {\n                operator_delete(p_Var4->_M_parent);\n              }\n              operator_delete(p_Var4,0x28);\n            }\n          }\n          std::\n          _Rb_tree<int,_std::pair<int_const,_gold::Object_attribute*>,_std::_Select1st<std::pair<int_const,_gold::Object_attribute*>_>,_std::less<int>,_std::allocator<std::pair<int_const,_gold::Object_attribute*>_>_>\n          ::_M_erase(&(pVVar3->other_attributes_)._M_t,\n                     (_Link_type)\n                     (pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent);\n          pOVar11 = &pVVar3->other_attributes_;\n          do {\n            puVar6 = (undefined1 *)(pOVar11 + -1);\n            if (*(void **)((long)(pOVar11 + -1) + 0x10) != (void *)((long)(pOVar11 + -1) + 0x20)) {\n              operator_delete(*(void **)((long)(pOVar11 + -1) + 0x10));\n            }\n            pOVar11 = (Other_attributes *)(puVar6 + 8);\n          } while (pVVar3->known_attributes_ != (Object_attribute *)(puVar6 + 8));\n          operator_delete(pVVar3,0xb50);\n        }\n        if (bVar5) break;\n        bVar5 = true;\n        pVVar3 = pAVar8->vendor_object_attributes_[1];\n      }\n      operator_delete(pAVar8,0x10);\n    }\n    this->attributes_section_data_ = (Attributes_section_data *)0x0;\n  }\n  return;\n}\n\n" comment comment (declaration "void __thiscall\nanon_unknown.dwarf_2cac9f::Powerpc_relobj<32,_true>::do_read_symbols\n          (Powerpc_relobj<32,_true> *this,Read_symbols_data *sd)\n\n{\n  uint uVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "anon_unknown.dwarf_2cac9f::" identifier . identifier : :) identifier (ERROR "<32" < number_literal) , (ERROR "_true>::do_read_symbols\n          (Powerpc_relobj<32,_true> *this,Read_symbols_data *sd)\n\n{\n  uint" identifier > : : (function_declarator "do_read_symbols\n          (Powerpc_relobj<32,_true> *this,Read_symbols_data *sd)" identifier (parameter_list "(Powerpc_relobj<32,_true> *this,Read_symbols_data *sd)" ( (parameter_declaration "Powerpc_relobj" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "_true> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "Read_symbols_data *sd" type_identifier (pointer_declarator "*sd" * identifier)) ))) { identifier) identifier ;) (declaration "Input_file *pIVar2;" type_identifier (pointer_declarator "*pIVar2" * identifier) ;) (declaration "Vendor_object_attributes *pVVar3;" type_identifier (pointer_declarator "*pVVar3" * identifier) ;) (declaration "_Base_ptr p_Var4;" type_identifier identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "undefined1 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uchar *view;" type_identifier (pointer_declarator "*view" * identifier) ;) (declaration "Attributes_section_data *pAVar8;" type_identifier (pointer_declarator "*pAVar8" * identifier) ;) (declaration "_Rb_tree_node_base *p_Var9;" type_identifier (pointer_declarator "*p_Var9" * identifier) ;) (declaration "uchar *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "Other_attributes *pOVar11;" type_identifier (pointer_declarator "*pOVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (expression_statement "Powerpc_relobj<32,_true> *this_00;" (update_expression "Powerpc_relobj<32,_true> *this_00" (binary_expression "Powerpc_relobj<32,_true> *this_00" (binary_expression "Powerpc_relobj<32" identifier < number_literal) (ERROR ",_true" , identifier) > (pointer_expression "*this_00" * identifier)) --) ;) (declaration "ulong to;" type_identifier identifier ;) (declaration "ulong size;" type_identifier identifier ;) (expression_statement "this_00 = this;" (assignment_expression "this_00 = this" identifier = identifier) ;) (labeled_statement "gold::Sized_relobj_file<32,_true>::base_read_symbols(&this->super_Sized_relobj_file<32,_true>,sd);" statement_identifier : (ERROR ":" :) (expression_statement "Sized_relobj_file<32,_true>::base_read_symbols(&this->super_Sized_relobj_file<32,_true>,sd);" (comma_expression "Sized_relobj_file<32,_true>::base_read_symbols(&this->super_Sized_relobj_file<32,_true>,sd)" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_true>::base_read_symbols(&this->super_Sized_relobj_file<32,_true>,sd)" identifier > (ERROR "::" : :) (call_expression "base_read_symbols(&this->super_Sized_relobj_file<32,_true>,sd)" identifier (argument_list "(&this->super_Sized_relobj_file<32,_true>,sd)" ( (binary_expression "&this->super_Sized_relobj_file<32" (pointer_expression "&this->super_Sized_relobj_file" & (field_expression "this->super_Sized_relobj_file" identifier -> field_identifier)) < number_literal) , identifier (ERROR ">" >) , identifier ))))) ;)) (expression_statement "pIVar2 = (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.\n           super_Object.input_file_;" (assignment_expression "pIVar2 = (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.\n           super_Object.input_file_" identifier = (parenthesized_expression "(this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.\n           super_Object.input_file_" ( (comma_expression "this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.\n           super_Object.input_file_" (binary_expression "this->super_Sized_relobj_file<32" (field_expression "this->super_Sized_relobj_file" identifier -> field_identifier) < number_literal) , (comma_expression "_true>).super_Sized_relobj<32,_true>.super_Relobj.\n           super_Object.input_file_" (binary_expression "_true>).super_Sized_relobj<32" (field_expression "_true>).super_Sized_relobj" identifier (ERROR ">)" > )) . field_identifier) < number_literal) , (field_expression "_true>.super_Relobj.\n           super_Object.input_file_" (field_expression "_true>.super_Relobj.\n           super_Object" (field_expression "_true>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier))) ))) ;) (if_statement "if (pIVar2 == (Input_file *)0x0) {\nLAB_001840de:\n                    /* WARNING: Subroutine does not return */\n    gold::Object::input_file((Object *)this_00);\n  }" if (parenthesized_expression "(pIVar2 == (Input_file *)0x0)" ( (binary_expression "pIVar2 == (Input_file *)0x0" identifier == (cast_expression "(Input_file *)0x0" ( (type_descriptor "Input_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_001840de:\n                    /* WARNING: Subroutine does not return */\n    gold::Object::input_file((Object *)this_00);\n  }" { (labeled_statement "LAB_001840de:\n                    /* WARNING: Subroutine does not return */\n    gold::Object::input_file((Object *)this_00);" statement_identifier : comment (labeled_statement "gold::Object::input_file((Object *)this_00);" statement_identifier : (ERROR ":" :) (labeled_statement "Object::input_file((Object *)this_00);" statement_identifier : (ERROR ":" :) (expression_statement "input_file((Object *)this_00);" (call_expression "input_file((Object *)this_00)" identifier (argument_list "((Object *)this_00)" ( (cast_expression "(Object *)this_00" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)))) })) (if_statement "if (pIVar2->format_ == FORMAT_ELF) {\n    bVar5 = false;\n    puVar10 = sd->section_headers->data_ + 0x28;\n    uVar12 = 1;\n    if (1 < (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.\n            super_Object.shnum_) {\n      do {\n        while( true ) {\n          uVar7 = *(uint *)(puVar10 + 4);\n          uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n          if (uVar7 != 3) break;\nLAB_00183ef7:\n          uVar12 = uVar12 + 1;\n          puVar10 = puVar10 + 0x28;\n          if ((this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.\n              super_Object.shnum_ <= uVar12) goto LAB_00183f9e;\n        }\n        if (uVar7 != 0x6ffffff5) {\n          if (uVar7 == 2) {\n            uVar7 = *(uint *)(puVar10 + 0x14);\n            if (0x10 < (uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                       uVar7 << 0x18)) {\n              bVar5 = true;\n            }\n          }\n          else {\n            bVar5 = true;\n          }\n          goto LAB_00183ef7;\n        }\n        if (this->attributes_section_data_ != (Attributes_section_data *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/powerpc.cc",0x95b,"do_read_symbols");\n        }\n        uVar7 = *(uint *)(puVar10 + 0x10);\n        uVar1 = *(uint *)(puVar10 + 0x14);\n        this_00 = (Powerpc_relobj<32,_true> *)\n                  (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.\n                  super_Relobj.super_Object.input_file_;\n        size = (ulong)(uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 |\n                      uVar1 << 0x18);\n        if (this_00 == (Powerpc_relobj<32,_true> *)0x0) goto LAB_001840de;\n        view = gold::File_read::get_view\n                         ((File_read *)\n                          &(this_00->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>\n                           .super_Relobj.super_Object.input_file_,\n                          (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.\n                          super_Relobj.super_Object.offset_,\n                          (ulong)(uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                                 uVar7 << 0x18),size,true,false);\n        pAVar8 = (Attributes_section_data *)operator_new(0x10);\n                    /* try { // try from 00183f7f to 00183f83 has its CatchHandler @ 001840e3 */\n        gold::Attributes_section_data::Attributes_section_data(pAVar8,view,size);\n        this->attributes_section_data_ = pAVar8;\n        uVar12 = uVar12 + 1;\n        puVar10 = puVar10 + 0x28;\n      } while (uVar12 < (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.\n                        super_Relobj.super_Object.shnum_);\nLAB_00183f9e:\n      if (bVar5) {\n        return;\n      }\n    }\n    pAVar8 = this->attributes_section_data_;\n    bVar5 = false;\n    if (pAVar8 != (Attributes_section_data *)0x0) {\n      pVVar3 = pAVar8->vendor_object_attributes_[0];\n      while( true ) {\n        if (pVVar3 != (Vendor_object_attributes *)0x0) {\n          for (p_Var9 = (pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                        _M_left;\n              (_Rb_tree_header *)p_Var9 !=\n              &(pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header;\n              p_Var9 = (_Rb_tree_node_base *)std::_Rb_tree_increment(p_Var9)) {\n            p_Var4 = p_Var9[1]._M_parent;\n            if (p_Var4 != (_Base_ptr)0x0) {\n              if (p_Var4->_M_parent != (_Base_ptr)&p_Var4->_M_right) {\n                operator_delete(p_Var4->_M_parent);\n              }\n              operator_delete(p_Var4,0x28);\n            }\n          }\n          std::\n          _Rb_tree<int,_std::pair<int_const,_gold::Object_attribute*>,_std::_Select1st<std::pair<int_const,_gold::Object_attribute*>_>,_std::less<int>,_std::allocator<std::pair<int_const,_gold::Object_attribute*>_>_>\n          ::_M_erase(&(pVVar3->other_attributes_)._M_t,\n                     (_Link_type)\n                     (pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent);\n          pOVar11 = &pVVar3->other_attributes_;\n          do {\n            puVar6 = (undefined1 *)(pOVar11 + -1);\n            if (*(void **)((long)(pOVar11 + -1) + 0x10) != (void *)((long)(pOVar11 + -1) + 0x20)) {\n              operator_delete(*(void **)((long)(pOVar11 + -1) + 0x10));\n            }\n            pOVar11 = (Other_attributes *)(puVar6 + 8);\n          } while (pVVar3->known_attributes_ != (Object_attribute *)(puVar6 + 8));\n          operator_delete(pVVar3,0xb50);\n        }\n        if (bVar5) break;\n        bVar5 = true;\n        pVVar3 = pAVar8->vendor_object_attributes_[1];\n      }\n      operator_delete(pAVar8,0x10);\n    }\n    this->attributes_section_data_ = (Attributes_section_data *)0x0;\n  }" if (parenthesized_expression "(pIVar2->format_ == FORMAT_ELF)" ( (binary_expression "pIVar2->format_ == FORMAT_ELF" (field_expression "pIVar2->format_" identifier -> field_identifier) == identifier) )) (compound_statement "{\n    bVar5 = false;\n    puVar10 = sd->section_headers->data_ + 0x28;\n    uVar12 = 1;\n    if (1 < (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.\n            super_Object.shnum_) {\n      do {\n        while( true ) {\n          uVar7 = *(uint *)(puVar10 + 4);\n          uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n          if (uVar7 != 3) break;\nLAB_00183ef7:\n          uVar12 = uVar12 + 1;\n          puVar10 = puVar10 + 0x28;\n          if ((this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.\n              super_Object.shnum_ <= uVar12) goto LAB_00183f9e;\n        }\n        if (uVar7 != 0x6ffffff5) {\n          if (uVar7 == 2) {\n            uVar7 = *(uint *)(puVar10 + 0x14);\n            if (0x10 < (uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                       uVar7 << 0x18)) {\n              bVar5 = true;\n            }\n          }\n          else {\n            bVar5 = true;\n          }\n          goto LAB_00183ef7;\n        }\n        if (this->attributes_section_data_ != (Attributes_section_data *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/powerpc.cc",0x95b,"do_read_symbols");\n        }\n        uVar7 = *(uint *)(puVar10 + 0x10);\n        uVar1 = *(uint *)(puVar10 + 0x14);\n        this_00 = (Powerpc_relobj<32,_true> *)\n                  (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.\n                  super_Relobj.super_Object.input_file_;\n        size = (ulong)(uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 |\n                      uVar1 << 0x18);\n        if (this_00 == (Powerpc_relobj<32,_true> *)0x0) goto LAB_001840de;\n        view = gold::File_read::get_view\n                         ((File_read *)\n                          &(this_00->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>\n                           .super_Relobj.super_Object.input_file_,\n                          (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.\n                          super_Relobj.super_Object.offset_,\n                          (ulong)(uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                                 uVar7 << 0x18),size,true,false);\n        pAVar8 = (Attributes_section_data *)operator_new(0x10);\n                    /* try { // try from 00183f7f to 00183f83 has its CatchHandler @ 001840e3 */\n        gold::Attributes_section_data::Attributes_section_data(pAVar8,view,size);\n        this->attributes_section_data_ = pAVar8;\n        uVar12 = uVar12 + 1;\n        puVar10 = puVar10 + 0x28;\n      } while (uVar12 < (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.\n                        super_Relobj.super_Object.shnum_);\nLAB_00183f9e:\n      if (bVar5) {\n        return;\n      }\n    }\n    pAVar8 = this->attributes_section_data_;\n    bVar5 = false;\n    if (pAVar8 != (Attributes_section_data *)0x0) {\n      pVVar3 = pAVar8->vendor_object_attributes_[0];\n      while( true ) {\n        if (pVVar3 != (Vendor_object_attributes *)0x0) {\n          for (p_Var9 = (pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                        _M_left;\n              (_Rb_tree_header *)p_Var9 !=\n              &(pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header;\n              p_Var9 = (_Rb_tree_node_base *)std::_Rb_tree_increment(p_Var9)) {\n            p_Var4 = p_Var9[1]._M_parent;\n            if (p_Var4 != (_Base_ptr)0x0) {\n              if (p_Var4->_M_parent != (_Base_ptr)&p_Var4->_M_right) {\n                operator_delete(p_Var4->_M_parent);\n              }\n              operator_delete(p_Var4,0x28);\n            }\n          }\n          std::\n          _Rb_tree<int,_std::pair<int_const,_gold::Object_attribute*>,_std::_Select1st<std::pair<int_const,_gold::Object_attribute*>_>,_std::less<int>,_std::allocator<std::pair<int_const,_gold::Object_attribute*>_>_>\n          ::_M_erase(&(pVVar3->other_attributes_)._M_t,\n                     (_Link_type)\n                     (pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent);\n          pOVar11 = &pVVar3->other_attributes_;\n          do {\n            puVar6 = (undefined1 *)(pOVar11 + -1);\n            if (*(void **)((long)(pOVar11 + -1) + 0x10) != (void *)((long)(pOVar11 + -1) + 0x20)) {\n              operator_delete(*(void **)((long)(pOVar11 + -1) + 0x10));\n            }\n            pOVar11 = (Other_attributes *)(puVar6 + 8);\n          } while (pVVar3->known_attributes_ != (Object_attribute *)(puVar6 + 8));\n          operator_delete(pVVar3,0xb50);\n        }\n        if (bVar5) break;\n        bVar5 = true;\n        pVVar3 = pAVar8->vendor_object_attributes_[1];\n      }\n      operator_delete(pAVar8,0x10);\n    }\n    this->attributes_section_data_ = (Attributes_section_data *)0x0;\n  }" { (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" identifier = false) ;) (expression_statement "puVar10 = sd->section_headers->data_ + 0x28;" (assignment_expression "puVar10 = sd->section_headers->data_ + 0x28" identifier = (binary_expression "sd->section_headers->data_ + 0x28" (field_expression "sd->section_headers->data_" (field_expression "sd->section_headers" identifier -> field_identifier) -> field_identifier) + number_literal)) ;) (expression_statement "uVar12 = 1;" (assignment_expression "uVar12 = 1" identifier = number_literal) ;) (if_statement "if (1 < (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.\n            super_Object.shnum_) {\n      do {\n        while( true ) {\n          uVar7 = *(uint *)(puVar10 + 4);\n          uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n          if (uVar7 != 3) break;\nLAB_00183ef7:\n          uVar12 = uVar12 + 1;\n          puVar10 = puVar10 + 0x28;\n          if ((this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.\n              super_Object.shnum_ <= uVar12) goto LAB_00183f9e;\n        }\n        if (uVar7 != 0x6ffffff5) {\n          if (uVar7 == 2) {\n            uVar7 = *(uint *)(puVar10 + 0x14);\n            if (0x10 < (uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                       uVar7 << 0x18)) {\n              bVar5 = true;\n            }\n          }\n          else {\n            bVar5 = true;\n          }\n          goto LAB_00183ef7;\n        }\n        if (this->attributes_section_data_ != (Attributes_section_data *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/powerpc.cc",0x95b,"do_read_symbols");\n        }\n        uVar7 = *(uint *)(puVar10 + 0x10);\n        uVar1 = *(uint *)(puVar10 + 0x14);\n        this_00 = (Powerpc_relobj<32,_true> *)\n                  (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.\n                  super_Relobj.super_Object.input_file_;\n        size = (ulong)(uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 |\n                      uVar1 << 0x18);\n        if (this_00 == (Powerpc_relobj<32,_true> *)0x0) goto LAB_001840de;\n        view = gold::File_read::get_view\n                         ((File_read *)\n                          &(this_00->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>\n                           .super_Relobj.super_Object.input_file_,\n                          (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.\n                          super_Relobj.super_Object.offset_,\n                          (ulong)(uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                                 uVar7 << 0x18),size,true,false);\n        pAVar8 = (Attributes_section_data *)operator_new(0x10);\n                    /* try { // try from 00183f7f to 00183f83 has its CatchHandler @ 001840e3 */\n        gold::Attributes_section_data::Attributes_section_data(pAVar8,view,size);\n        this->attributes_section_data_ = pAVar8;\n        uVar12 = uVar12 + 1;\n        puVar10 = puVar10 + 0x28;\n      } while (uVar12 < (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.\n                        super_Relobj.super_Object.shnum_);\nLAB_00183f9e:\n      if (bVar5) {\n        return;\n      }\n    }" if (parenthesized_expression "(1 < (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.\n            super_Object.shnum_)" ( (comma_expression "1 < (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.\n            super_Object.shnum_" (binary_expression "1 < (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32" (binary_expression "1 < (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj" number_literal < (field_expression "(this->super_Sized_relobj_file<32,_true>).super_Sized_relobj" (parenthesized_expression "(this->super_Sized_relobj_file<32,_true>)" ( (comma_expression "this->super_Sized_relobj_file<32,_true" (binary_expression "this->super_Sized_relobj_file<32" (field_expression "this->super_Sized_relobj_file" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier)) < number_literal) , (field_expression "_true>.super_Relobj.\n            super_Object.shnum_" (field_expression "_true>.super_Relobj.\n            super_Object" (field_expression "_true>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier)) )) (compound_statement "{\n      do {\n        while( true ) {\n          uVar7 = *(uint *)(puVar10 + 4);\n          uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n          if (uVar7 != 3) break;\nLAB_00183ef7:\n          uVar12 = uVar12 + 1;\n          puVar10 = puVar10 + 0x28;\n          if ((this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.\n              super_Object.shnum_ <= uVar12) goto LAB_00183f9e;\n        }\n        if (uVar7 != 0x6ffffff5) {\n          if (uVar7 == 2) {\n            uVar7 = *(uint *)(puVar10 + 0x14);\n            if (0x10 < (uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                       uVar7 << 0x18)) {\n              bVar5 = true;\n            }\n          }\n          else {\n            bVar5 = true;\n          }\n          goto LAB_00183ef7;\n        }\n        if (this->attributes_section_data_ != (Attributes_section_data *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/powerpc.cc",0x95b,"do_read_symbols");\n        }\n        uVar7 = *(uint *)(puVar10 + 0x10);\n        uVar1 = *(uint *)(puVar10 + 0x14);\n        this_00 = (Powerpc_relobj<32,_true> *)\n                  (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.\n                  super_Relobj.super_Object.input_file_;\n        size = (ulong)(uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 |\n                      uVar1 << 0x18);\n        if (this_00 == (Powerpc_relobj<32,_true> *)0x0) goto LAB_001840de;\n        view = gold::File_read::get_view\n                         ((File_read *)\n                          &(this_00->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>\n                           .super_Relobj.super_Object.input_file_,\n                          (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.\n                          super_Relobj.super_Object.offset_,\n                          (ulong)(uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                                 uVar7 << 0x18),size,true,false);\n        pAVar8 = (Attributes_section_data *)operator_new(0x10);\n                    /* try { // try from 00183f7f to 00183f83 has its CatchHandler @ 001840e3 */\n        gold::Attributes_section_data::Attributes_section_data(pAVar8,view,size);\n        this->attributes_section_data_ = pAVar8;\n        uVar12 = uVar12 + 1;\n        puVar10 = puVar10 + 0x28;\n      } while (uVar12 < (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.\n                        super_Relobj.super_Object.shnum_);\nLAB_00183f9e:\n      if (bVar5) {\n        return;\n      }\n    }" { (do_statement "do {\n        while( true ) {\n          uVar7 = *(uint *)(puVar10 + 4);\n          uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n          if (uVar7 != 3) break;\nLAB_00183ef7:\n          uVar12 = uVar12 + 1;\n          puVar10 = puVar10 + 0x28;\n          if ((this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.\n              super_Object.shnum_ <= uVar12) goto LAB_00183f9e;\n        }\n        if (uVar7 != 0x6ffffff5) {\n          if (uVar7 == 2) {\n            uVar7 = *(uint *)(puVar10 + 0x14);\n            if (0x10 < (uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                       uVar7 << 0x18)) {\n              bVar5 = true;\n            }\n          }\n          else {\n            bVar5 = true;\n          }\n          goto LAB_00183ef7;\n        }\n        if (this->attributes_section_data_ != (Attributes_section_data *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/powerpc.cc",0x95b,"do_read_symbols");\n        }\n        uVar7 = *(uint *)(puVar10 + 0x10);\n        uVar1 = *(uint *)(puVar10 + 0x14);\n        this_00 = (Powerpc_relobj<32,_true> *)\n                  (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.\n                  super_Relobj.super_Object.input_file_;\n        size = (ulong)(uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 |\n                      uVar1 << 0x18);\n        if (this_00 == (Powerpc_relobj<32,_true> *)0x0) goto LAB_001840de;\n        view = gold::File_read::get_view\n                         ((File_read *)\n                          &(this_00->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>\n                           .super_Relobj.super_Object.input_file_,\n                          (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.\n                          super_Relobj.super_Object.offset_,\n                          (ulong)(uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                                 uVar7 << 0x18),size,true,false);\n        pAVar8 = (Attributes_section_data *)operator_new(0x10);\n                    /* try { // try from 00183f7f to 00183f83 has its CatchHandler @ 001840e3 */\n        gold::Attributes_section_data::Attributes_section_data(pAVar8,view,size);\n        this->attributes_section_data_ = pAVar8;\n        uVar12 = uVar12 + 1;\n        puVar10 = puVar10 + 0x28;\n      } while (uVar12 < (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.\n                        super_Relobj.super_Object.shnum_);" do (compound_statement "{\n        while( true ) {\n          uVar7 = *(uint *)(puVar10 + 4);\n          uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n          if (uVar7 != 3) break;\nLAB_00183ef7:\n          uVar12 = uVar12 + 1;\n          puVar10 = puVar10 + 0x28;\n          if ((this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.\n              super_Object.shnum_ <= uVar12) goto LAB_00183f9e;\n        }\n        if (uVar7 != 0x6ffffff5) {\n          if (uVar7 == 2) {\n            uVar7 = *(uint *)(puVar10 + 0x14);\n            if (0x10 < (uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                       uVar7 << 0x18)) {\n              bVar5 = true;\n            }\n          }\n          else {\n            bVar5 = true;\n          }\n          goto LAB_00183ef7;\n        }\n        if (this->attributes_section_data_ != (Attributes_section_data *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/powerpc.cc",0x95b,"do_read_symbols");\n        }\n        uVar7 = *(uint *)(puVar10 + 0x10);\n        uVar1 = *(uint *)(puVar10 + 0x14);\n        this_00 = (Powerpc_relobj<32,_true> *)\n                  (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.\n                  super_Relobj.super_Object.input_file_;\n        size = (ulong)(uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 |\n                      uVar1 << 0x18);\n        if (this_00 == (Powerpc_relobj<32,_true> *)0x0) goto LAB_001840de;\n        view = gold::File_read::get_view\n                         ((File_read *)\n                          &(this_00->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>\n                           .super_Relobj.super_Object.input_file_,\n                          (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.\n                          super_Relobj.super_Object.offset_,\n                          (ulong)(uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                                 uVar7 << 0x18),size,true,false);\n        pAVar8 = (Attributes_section_data *)operator_new(0x10);\n                    /* try { // try from 00183f7f to 00183f83 has its CatchHandler @ 001840e3 */\n        gold::Attributes_section_data::Attributes_section_data(pAVar8,view,size);\n        this->attributes_section_data_ = pAVar8;\n        uVar12 = uVar12 + 1;\n        puVar10 = puVar10 + 0x28;\n      }" { (while_statement "while( true ) {\n          uVar7 = *(uint *)(puVar10 + 4);\n          uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n          if (uVar7 != 3) break;\nLAB_00183ef7:\n          uVar12 = uVar12 + 1;\n          puVar10 = puVar10 + 0x28;\n          if ((this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.\n              super_Object.shnum_ <= uVar12) goto LAB_00183f9e;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          uVar7 = *(uint *)(puVar10 + 4);\n          uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;\n          if (uVar7 != 3) break;\nLAB_00183ef7:\n          uVar12 = uVar12 + 1;\n          puVar10 = puVar10 + 0x28;\n          if ((this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.\n              super_Object.shnum_ <= uVar12) goto LAB_00183f9e;\n        }" { (expression_statement "uVar7 = *(uint *)(puVar10 + 4);" (assignment_expression "uVar7 = *(uint *)(puVar10 + 4)" identifier = (pointer_expression "*(uint *)(puVar10 + 4)" * (cast_expression "(uint *)(puVar10 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;" (assignment_expression "uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18" identifier = (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18" (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8" (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8" (binary_expression "uVar7 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar7 & 0xff0000) >> 8" (parenthesized_expression "(uVar7 & 0xff0000)" ( (binary_expression "uVar7 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar7 & 0xff00) << 8" (parenthesized_expression "(uVar7 & 0xff00)" ( (binary_expression "uVar7 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar7 << 0x18" identifier << number_literal))) ;) (if_statement "if (uVar7 != 3) break;" if (parenthesized_expression "(uVar7 != 3)" ( (binary_expression "uVar7 != 3" identifier != number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00183ef7:\n          uVar12 = uVar12 + 1;" statement_identifier : (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;)) (expression_statement "puVar10 = puVar10 + 0x28;" (assignment_expression "puVar10 = puVar10 + 0x28" identifier = (binary_expression "puVar10 + 0x28" identifier + number_literal)) ;) (if_statement "if ((this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.\n              super_Object.shnum_ <= uVar12) goto LAB_00183f9e;" if (parenthesized_expression "((this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.\n              super_Object.shnum_ <= uVar12)" ( (comma_expression "(this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.\n              super_Object.shnum_ <= uVar12" (binary_expression "(this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32" (field_expression "(this->super_Sized_relobj_file<32,_true>).super_Sized_relobj" (parenthesized_expression "(this->super_Sized_relobj_file<32,_true>)" ( (comma_expression "this->super_Sized_relobj_file<32,_true" (binary_expression "this->super_Sized_relobj_file<32" (field_expression "this->super_Sized_relobj_file" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) < number_literal) , (binary_expression "_true>.super_Relobj.\n              super_Object.shnum_ <= uVar12" (field_expression "_true>.super_Relobj.\n              super_Object.shnum_" (field_expression "_true>.super_Relobj.\n              super_Object" (field_expression "_true>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) <= identifier)) )) (goto_statement "goto LAB_00183f9e;" goto statement_identifier ;)) })) (if_statement "if (uVar7 != 0x6ffffff5) {\n          if (uVar7 == 2) {\n            uVar7 = *(uint *)(puVar10 + 0x14);\n            if (0x10 < (uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                       uVar7 << 0x18)) {\n              bVar5 = true;\n            }\n          }\n          else {\n            bVar5 = true;\n          }\n          goto LAB_00183ef7;\n        }" if (parenthesized_expression "(uVar7 != 0x6ffffff5)" ( (binary_expression "uVar7 != 0x6ffffff5" identifier != number_literal) )) (compound_statement "{\n          if (uVar7 == 2) {\n            uVar7 = *(uint *)(puVar10 + 0x14);\n            if (0x10 < (uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                       uVar7 << 0x18)) {\n              bVar5 = true;\n            }\n          }\n          else {\n            bVar5 = true;\n          }\n          goto LAB_00183ef7;\n        }" { (if_statement "if (uVar7 == 2) {\n            uVar7 = *(uint *)(puVar10 + 0x14);\n            if (0x10 < (uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                       uVar7 << 0x18)) {\n              bVar5 = true;\n            }\n          }\n          else {\n            bVar5 = true;\n          }" if (parenthesized_expression "(uVar7 == 2)" ( (binary_expression "uVar7 == 2" identifier == number_literal) )) (compound_statement "{\n            uVar7 = *(uint *)(puVar10 + 0x14);\n            if (0x10 < (uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                       uVar7 << 0x18)) {\n              bVar5 = true;\n            }\n          }" { (expression_statement "uVar7 = *(uint *)(puVar10 + 0x14);" (assignment_expression "uVar7 = *(uint *)(puVar10 + 0x14)" identifier = (pointer_expression "*(uint *)(puVar10 + 0x14)" * (cast_expression "(uint *)(puVar10 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x14)" ( (binary_expression "puVar10 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (0x10 < (uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                       uVar7 << 0x18)) {\n              bVar5 = true;\n            }" if (parenthesized_expression "(0x10 < (uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                       uVar7 << 0x18))" ( (binary_expression "0x10 < (uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                       uVar7 << 0x18)" number_literal < (parenthesized_expression "(uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                       uVar7 << 0x18)" ( (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                       uVar7 << 0x18" (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8" (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8" (binary_expression "uVar7 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar7 & 0xff0000) >> 8" (parenthesized_expression "(uVar7 & 0xff0000)" ( (binary_expression "uVar7 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar7 & 0xff00) << 8" (parenthesized_expression "(uVar7 & 0xff00)" ( (binary_expression "uVar7 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar7 << 0x18" identifier << number_literal)) ))) )) (compound_statement "{\n              bVar5 = true;\n            }" { (expression_statement "bVar5 = true;" (assignment_expression "bVar5 = true" identifier = true) ;) })) }) (else_clause "else {\n            bVar5 = true;\n          }" else (compound_statement "{\n            bVar5 = true;\n          }" { (expression_statement "bVar5 = true;" (assignment_expression "bVar5 = true" identifier = true) ;) }))) (goto_statement "goto LAB_00183ef7;" goto statement_identifier ;) })) (if_statement "if (this->attributes_section_data_ != (Attributes_section_data *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/powerpc.cc",0x95b,"do_read_symbols");\n        }" if (parenthesized_expression "(this->attributes_section_data_ != (Attributes_section_data *)0x0)" ( (binary_expression "this->attributes_section_data_ != (Attributes_section_data *)0x0" (field_expression "this->attributes_section_data_" identifier -> field_identifier) != (cast_expression "(Attributes_section_data *)0x0" ( (type_descriptor "Attributes_section_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/powerpc.cc",0x95b,"do_read_symbols");\n        }" { comment (labeled_statement "gold::do_gold_unreachable("../../gold/powerpc.cc",0x95b,"do_read_symbols");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/powerpc.cc",0x95b,"do_read_symbols");" (call_expression "do_gold_unreachable("../../gold/powerpc.cc",0x95b,"do_read_symbols")" identifier (argument_list "("../../gold/powerpc.cc",0x95b,"do_read_symbols")" ( (string_literal ""../../gold/powerpc.cc"" " string_content ") , number_literal , (string_literal ""do_read_symbols"" " string_content ") ))) ;)) })) (expression_statement "uVar7 = *(uint *)(puVar10 + 0x10);" (assignment_expression "uVar7 = *(uint *)(puVar10 + 0x10)" identifier = (pointer_expression "*(uint *)(puVar10 + 0x10)" * (cast_expression "(uint *)(puVar10 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x10)" ( (binary_expression "puVar10 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar1 = *(uint *)(puVar10 + 0x14);" (assignment_expression "uVar1 = *(uint *)(puVar10 + 0x14)" identifier = (pointer_expression "*(uint *)(puVar10 + 0x14)" * (cast_expression "(uint *)(puVar10 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x14)" ( (binary_expression "puVar10 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "this_00 = (Powerpc_relobj<32,_true> *)\n                  (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.\n                  super_Relobj.super_Object.input_file_;" (assignment_expression "this_00 = (Powerpc_relobj<32,_true> *)\n                  (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.\n                  super_Relobj.super_Object.input_file_" identifier = (parenthesized_expression "(Powerpc_relobj<32,_true> *)\n                  (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.\n                  super_Relobj.super_Object.input_file_" ( (comma_expression "Powerpc_relobj<32,_true> *)\n                  (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.\n                  super_Relobj.super_Object.input_file_" (binary_expression "Powerpc_relobj<32" identifier < number_literal) , (comma_expression "_true> *)\n                  (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.\n                  super_Relobj.super_Object.input_file_" (binary_expression "_true> *)\n                  (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32" (binary_expression "_true> *)\n                  (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj" identifier > (pointer_expression "*)\n                  (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj" * (ERROR ")" )) (field_expression "(this->super_Sized_relobj_file<32,_true>).super_Sized_relobj" (parenthesized_expression "(this->super_Sized_relobj_file<32,_true>)" ( (comma_expression "this->super_Sized_relobj_file<32,_true" (binary_expression "this->super_Sized_relobj_file<32" (field_expression "this->super_Sized_relobj_file" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier))) < number_literal) , (field_expression "_true>.\n                  super_Relobj.super_Object.input_file_" (field_expression "_true>.\n                  super_Relobj.super_Object" (field_expression "_true>.\n                  super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier))) ))) ;) (expression_statement "size = (ulong)(uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 |\n                      uVar1 << 0x18);" (assignment_expression "size = (ulong)(uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 |\n                      uVar1 << 0x18)" identifier = (call_expression "(ulong)(uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 |\n                      uVar1 << 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 |\n                      uVar1 << 0x18)" ( (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 |\n                      uVar1 << 0x18" (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8" (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8" (binary_expression "uVar1 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar1 & 0xff0000) >> 8" (parenthesized_expression "(uVar1 & 0xff0000)" ( (binary_expression "uVar1 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar1 & 0xff00) << 8" (parenthesized_expression "(uVar1 & 0xff00)" ( (binary_expression "uVar1 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar1 << 0x18" identifier << number_literal)) )))) ;) (if_statement "if (this_00 == (Powerpc_relobj<32,_true> *)0x0) goto LAB_001840de;" if (parenthesized_expression "(this_00 == (Powerpc_relobj<32,_true> *)0x0)" ( (binary_expression "this_00 == (Powerpc_relobj<32,_true> *)0x0)" identifier == (parenthesized_expression "(Powerpc_relobj<32,_true> *)0x0)" ( (comma_expression "Powerpc_relobj<32,_true> *)0x0" (binary_expression "Powerpc_relobj<32" identifier < number_literal) , (binary_expression "_true> *)0x0" identifier > (pointer_expression "*)0x0" * (ERROR ")" )) number_literal))) ))) )) (goto_statement "goto LAB_001840de;" goto statement_identifier ;)) (ERROR "view = gold::" (assignment_expression "view = gold" identifier = identifier) : :) (labeled_statement "File_read::get_view\n                         ((File_read *)\n                          &(this_00->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>\n                           .super_Relobj.super_Object.input_file_,\n                          (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.\n                          super_Relobj.super_Object.offset_,\n                          (ulong)(uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                                 uVar7 << 0x18),size,true,false);" statement_identifier : (ERROR ":" :) (expression_statement "get_view\n                         ((File_read *)\n                          &(this_00->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>\n                           .super_Relobj.super_Object.input_file_,\n                          (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.\n                          super_Relobj.super_Object.offset_,\n                          (ulong)(uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                                 uVar7 << 0x18),size,true,false);" (call_expression "get_view\n                         ((File_read *)\n                          &(this_00->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>\n                           .super_Relobj.super_Object.input_file_,\n                          (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.\n                          super_Relobj.super_Object.offset_,\n                          (ulong)(uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                                 uVar7 << 0x18),size,true,false)" identifier (argument_list "((File_read *)\n                          &(this_00->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>\n                           .super_Relobj.super_Object.input_file_,\n                          (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.\n                          super_Relobj.super_Object.offset_,\n                          (ulong)(uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                                 uVar7 << 0x18),size,true,false)" ( (binary_expression "(File_read *)\n                          &(this_00->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32" (cast_expression "(File_read *)\n                          &(this_00->super_Sized_relobj_file<32,_true>).super_Sized_relobj" ( (type_descriptor "File_read *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this_00->super_Sized_relobj_file<32,_true>).super_Sized_relobj" & (field_expression "(this_00->super_Sized_relobj_file<32,_true>).super_Sized_relobj" (parenthesized_expression "(this_00->super_Sized_relobj_file<32,_true>)" ( (comma_expression "this_00->super_Sized_relobj_file<32,_true" (binary_expression "this_00->super_Sized_relobj_file<32" (field_expression "this_00->super_Sized_relobj_file" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier))) < number_literal) , (field_expression "_true>\n                           .super_Relobj.super_Object.input_file_" (field_expression "_true>\n                           .super_Relobj.super_Object" (field_expression "_true>\n                           .super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) , (binary_expression "(this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32" (field_expression "(this->super_Sized_relobj_file<32,_true>).super_Sized_relobj" (parenthesized_expression "(this->super_Sized_relobj_file<32,_true>)" ( (comma_expression "this->super_Sized_relobj_file<32,_true" (binary_expression "this->super_Sized_relobj_file<32" (field_expression "this->super_Sized_relobj_file" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) < number_literal) , (field_expression "_true>.\n                          super_Relobj.super_Object.offset_" (field_expression "_true>.\n                          super_Relobj.super_Object" (field_expression "_true>.\n                          super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) , (call_expression "(ulong)(uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                                 uVar7 << 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                                 uVar7 << 0x18)" ( (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                                 uVar7 << 0x18" (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8" (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8" (binary_expression "uVar7 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar7 & 0xff0000) >> 8" (parenthesized_expression "(uVar7 & 0xff0000)" ( (binary_expression "uVar7 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar7 & 0xff00) << 8" (parenthesized_expression "(uVar7 & 0xff00)" ( (binary_expression "uVar7 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar7 << 0x18" identifier << number_literal)) ))) , identifier , true , false ))) ;)) (expression_statement "pAVar8 = (Attributes_section_data *)operator_new(0x10);" (assignment_expression "pAVar8 = (Attributes_section_data *)operator_new(0x10)" identifier = (cast_expression "(Attributes_section_data *)operator_new(0x10)" ( (type_descriptor "Attributes_section_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x10)" identifier (argument_list "(0x10)" ( number_literal ))))) ;) comment (labeled_statement "gold::Attributes_section_data::Attributes_section_data(pAVar8,view,size);" statement_identifier : (ERROR ":" :) (labeled_statement "Attributes_section_data::Attributes_section_data(pAVar8,view,size);" statement_identifier : (ERROR ":" :) (expression_statement "Attributes_section_data(pAVar8,view,size);" (call_expression "Attributes_section_data(pAVar8,view,size)" identifier (argument_list "(pAVar8,view,size)" ( identifier , identifier , identifier ))) ;))) (expression_statement "this->attributes_section_data_ = pAVar8;" (assignment_expression "this->attributes_section_data_ = pAVar8" (field_expression "this->attributes_section_data_" identifier -> field_identifier) = identifier) ;) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "puVar10 = puVar10 + 0x28;" (assignment_expression "puVar10 = puVar10 + 0x28" identifier = (binary_expression "puVar10 + 0x28" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar12 < (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.\n                        super_Relobj.super_Object.shnum_)" ( (comma_expression "uVar12 < (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.\n                        super_Relobj.super_Object.shnum_" (binary_expression "uVar12 < (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32" (binary_expression "uVar12 < (this->super_Sized_relobj_file<32,_true>).super_Sized_relobj" identifier < (field_expression "(this->super_Sized_relobj_file<32,_true>).super_Sized_relobj" (parenthesized_expression "(this->super_Sized_relobj_file<32,_true>)" ( (comma_expression "this->super_Sized_relobj_file<32,_true" (binary_expression "this->super_Sized_relobj_file<32" (field_expression "this->super_Sized_relobj_file" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier)) < number_literal) , (field_expression "_true>.\n                        super_Relobj.super_Object.shnum_" (field_expression "_true>.\n                        super_Relobj.super_Object" (field_expression "_true>.\n                        super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier)) )) ;) (labeled_statement "LAB_00183f9e:\n      if (bVar5) {\n        return;\n      }" statement_identifier : (if_statement "if (bVar5) {\n        return;\n      }" if (parenthesized_expression "(bVar5)" ( identifier )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) }))) })) (expression_statement "pAVar8 = this->attributes_section_data_;" (assignment_expression "pAVar8 = this->attributes_section_data_" identifier = (field_expression "this->attributes_section_data_" identifier -> field_identifier)) ;) (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" identifier = false) ;) (if_statement "if (pAVar8 != (Attributes_section_data *)0x0) {\n      pVVar3 = pAVar8->vendor_object_attributes_[0];\n      while( true ) {\n        if (pVVar3 != (Vendor_object_attributes *)0x0) {\n          for (p_Var9 = (pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                        _M_left;\n              (_Rb_tree_header *)p_Var9 !=\n              &(pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header;\n              p_Var9 = (_Rb_tree_node_base *)std::_Rb_tree_increment(p_Var9)) {\n            p_Var4 = p_Var9[1]._M_parent;\n            if (p_Var4 != (_Base_ptr)0x0) {\n              if (p_Var4->_M_parent != (_Base_ptr)&p_Var4->_M_right) {\n                operator_delete(p_Var4->_M_parent);\n              }\n              operator_delete(p_Var4,0x28);\n            }\n          }\n          std::\n          _Rb_tree<int,_std::pair<int_const,_gold::Object_attribute*>,_std::_Select1st<std::pair<int_const,_gold::Object_attribute*>_>,_std::less<int>,_std::allocator<std::pair<int_const,_gold::Object_attribute*>_>_>\n          ::_M_erase(&(pVVar3->other_attributes_)._M_t,\n                     (_Link_type)\n                     (pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent);\n          pOVar11 = &pVVar3->other_attributes_;\n          do {\n            puVar6 = (undefined1 *)(pOVar11 + -1);\n            if (*(void **)((long)(pOVar11 + -1) + 0x10) != (void *)((long)(pOVar11 + -1) + 0x20)) {\n              operator_delete(*(void **)((long)(pOVar11 + -1) + 0x10));\n            }\n            pOVar11 = (Other_attributes *)(puVar6 + 8);\n          } while (pVVar3->known_attributes_ != (Object_attribute *)(puVar6 + 8));\n          operator_delete(pVVar3,0xb50);\n        }\n        if (bVar5) break;\n        bVar5 = true;\n        pVVar3 = pAVar8->vendor_object_attributes_[1];\n      }\n      operator_delete(pAVar8,0x10);\n    }" if (parenthesized_expression "(pAVar8 != (Attributes_section_data *)0x0)" ( (binary_expression "pAVar8 != (Attributes_section_data *)0x0" identifier != (cast_expression "(Attributes_section_data *)0x0" ( (type_descriptor "Attributes_section_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pVVar3 = pAVar8->vendor_object_attributes_[0];\n      while( true ) {\n        if (pVVar3 != (Vendor_object_attributes *)0x0) {\n          for (p_Var9 = (pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                        _M_left;\n              (_Rb_tree_header *)p_Var9 !=\n              &(pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header;\n              p_Var9 = (_Rb_tree_node_base *)std::_Rb_tree_increment(p_Var9)) {\n            p_Var4 = p_Var9[1]._M_parent;\n            if (p_Var4 != (_Base_ptr)0x0) {\n              if (p_Var4->_M_parent != (_Base_ptr)&p_Var4->_M_right) {\n                operator_delete(p_Var4->_M_parent);\n              }\n              operator_delete(p_Var4,0x28);\n            }\n          }\n          std::\n          _Rb_tree<int,_std::pair<int_const,_gold::Object_attribute*>,_std::_Select1st<std::pair<int_const,_gold::Object_attribute*>_>,_std::less<int>,_std::allocator<std::pair<int_const,_gold::Object_attribute*>_>_>\n          ::_M_erase(&(pVVar3->other_attributes_)._M_t,\n                     (_Link_type)\n                     (pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent);\n          pOVar11 = &pVVar3->other_attributes_;\n          do {\n            puVar6 = (undefined1 *)(pOVar11 + -1);\n            if (*(void **)((long)(pOVar11 + -1) + 0x10) != (void *)((long)(pOVar11 + -1) + 0x20)) {\n              operator_delete(*(void **)((long)(pOVar11 + -1) + 0x10));\n            }\n            pOVar11 = (Other_attributes *)(puVar6 + 8);\n          } while (pVVar3->known_attributes_ != (Object_attribute *)(puVar6 + 8));\n          operator_delete(pVVar3,0xb50);\n        }\n        if (bVar5) break;\n        bVar5 = true;\n        pVVar3 = pAVar8->vendor_object_attributes_[1];\n      }\n      operator_delete(pAVar8,0x10);\n    }" { (expression_statement "pVVar3 = pAVar8->vendor_object_attributes_[0];" (assignment_expression "pVVar3 = pAVar8->vendor_object_attributes_[0]" identifier = (subscript_expression "pAVar8->vendor_object_attributes_[0]" (field_expression "pAVar8->vendor_object_attributes_" identifier -> field_identifier) [ number_literal ])) ;) (while_statement "while( true ) {\n        if (pVVar3 != (Vendor_object_attributes *)0x0) {\n          for (p_Var9 = (pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                        _M_left;\n              (_Rb_tree_header *)p_Var9 !=\n              &(pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header;\n              p_Var9 = (_Rb_tree_node_base *)std::_Rb_tree_increment(p_Var9)) {\n            p_Var4 = p_Var9[1]._M_parent;\n            if (p_Var4 != (_Base_ptr)0x0) {\n              if (p_Var4->_M_parent != (_Base_ptr)&p_Var4->_M_right) {\n                operator_delete(p_Var4->_M_parent);\n              }\n              operator_delete(p_Var4,0x28);\n            }\n          }\n          std::\n          _Rb_tree<int,_std::pair<int_const,_gold::Object_attribute*>,_std::_Select1st<std::pair<int_const,_gold::Object_attribute*>_>,_std::less<int>,_std::allocator<std::pair<int_const,_gold::Object_attribute*>_>_>\n          ::_M_erase(&(pVVar3->other_attributes_)._M_t,\n                     (_Link_type)\n                     (pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent);\n          pOVar11 = &pVVar3->other_attributes_;\n          do {\n            puVar6 = (undefined1 *)(pOVar11 + -1);\n            if (*(void **)((long)(pOVar11 + -1) + 0x10) != (void *)((long)(pOVar11 + -1) + 0x20)) {\n              operator_delete(*(void **)((long)(pOVar11 + -1) + 0x10));\n            }\n            pOVar11 = (Other_attributes *)(puVar6 + 8);\n          } while (pVVar3->known_attributes_ != (Object_attribute *)(puVar6 + 8));\n          operator_delete(pVVar3,0xb50);\n        }\n        if (bVar5) break;\n        bVar5 = true;\n        pVVar3 = pAVar8->vendor_object_attributes_[1];\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        if (pVVar3 != (Vendor_object_attributes *)0x0) {\n          for (p_Var9 = (pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                        _M_left;\n              (_Rb_tree_header *)p_Var9 !=\n              &(pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header;\n              p_Var9 = (_Rb_tree_node_base *)std::_Rb_tree_increment(p_Var9)) {\n            p_Var4 = p_Var9[1]._M_parent;\n            if (p_Var4 != (_Base_ptr)0x0) {\n              if (p_Var4->_M_parent != (_Base_ptr)&p_Var4->_M_right) {\n                operator_delete(p_Var4->_M_parent);\n              }\n              operator_delete(p_Var4,0x28);\n            }\n          }\n          std::\n          _Rb_tree<int,_std::pair<int_const,_gold::Object_attribute*>,_std::_Select1st<std::pair<int_const,_gold::Object_attribute*>_>,_std::less<int>,_std::allocator<std::pair<int_const,_gold::Object_attribute*>_>_>\n          ::_M_erase(&(pVVar3->other_attributes_)._M_t,\n                     (_Link_type)\n                     (pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent);\n          pOVar11 = &pVVar3->other_attributes_;\n          do {\n            puVar6 = (undefined1 *)(pOVar11 + -1);\n            if (*(void **)((long)(pOVar11 + -1) + 0x10) != (void *)((long)(pOVar11 + -1) + 0x20)) {\n              operator_delete(*(void **)((long)(pOVar11 + -1) + 0x10));\n            }\n            pOVar11 = (Other_attributes *)(puVar6 + 8);\n          } while (pVVar3->known_attributes_ != (Object_attribute *)(puVar6 + 8));\n          operator_delete(pVVar3,0xb50);\n        }\n        if (bVar5) break;\n        bVar5 = true;\n        pVVar3 = pAVar8->vendor_object_attributes_[1];\n      }" { (if_statement "if (pVVar3 != (Vendor_object_attributes *)0x0) {\n          for (p_Var9 = (pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                        _M_left;\n              (_Rb_tree_header *)p_Var9 !=\n              &(pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header;\n              p_Var9 = (_Rb_tree_node_base *)std::_Rb_tree_increment(p_Var9)) {\n            p_Var4 = p_Var9[1]._M_parent;\n            if (p_Var4 != (_Base_ptr)0x0) {\n              if (p_Var4->_M_parent != (_Base_ptr)&p_Var4->_M_right) {\n                operator_delete(p_Var4->_M_parent);\n              }\n              operator_delete(p_Var4,0x28);\n            }\n          }\n          std::\n          _Rb_tree<int,_std::pair<int_const,_gold::Object_attribute*>,_std::_Select1st<std::pair<int_const,_gold::Object_attribute*>_>,_std::less<int>,_std::allocator<std::pair<int_const,_gold::Object_attribute*>_>_>\n          ::_M_erase(&(pVVar3->other_attributes_)._M_t,\n                     (_Link_type)\n                     (pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent);\n          pOVar11 = &pVVar3->other_attributes_;\n          do {\n            puVar6 = (undefined1 *)(pOVar11 + -1);\n            if (*(void **)((long)(pOVar11 + -1) + 0x10) != (void *)((long)(pOVar11 + -1) + 0x20)) {\n              operator_delete(*(void **)((long)(pOVar11 + -1) + 0x10));\n            }\n            pOVar11 = (Other_attributes *)(puVar6 + 8);\n          } while (pVVar3->known_attributes_ != (Object_attribute *)(puVar6 + 8));\n          operator_delete(pVVar3,0xb50);\n        }" if (parenthesized_expression "(pVVar3 != (Vendor_object_attributes *)0x0)" ( (binary_expression "pVVar3 != (Vendor_object_attributes *)0x0" identifier != (cast_expression "(Vendor_object_attributes *)0x0" ( (type_descriptor "Vendor_object_attributes *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          for (p_Var9 = (pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                        _M_left;\n              (_Rb_tree_header *)p_Var9 !=\n              &(pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header;\n              p_Var9 = (_Rb_tree_node_base *)std::_Rb_tree_increment(p_Var9)) {\n            p_Var4 = p_Var9[1]._M_parent;\n            if (p_Var4 != (_Base_ptr)0x0) {\n              if (p_Var4->_M_parent != (_Base_ptr)&p_Var4->_M_right) {\n                operator_delete(p_Var4->_M_parent);\n              }\n              operator_delete(p_Var4,0x28);\n            }\n          }\n          std::\n          _Rb_tree<int,_std::pair<int_const,_gold::Object_attribute*>,_std::_Select1st<std::pair<int_const,_gold::Object_attribute*>_>,_std::less<int>,_std::allocator<std::pair<int_const,_gold::Object_attribute*>_>_>\n          ::_M_erase(&(pVVar3->other_attributes_)._M_t,\n                     (_Link_type)\n                     (pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent);\n          pOVar11 = &pVVar3->other_attributes_;\n          do {\n            puVar6 = (undefined1 *)(pOVar11 + -1);\n            if (*(void **)((long)(pOVar11 + -1) + 0x10) != (void *)((long)(pOVar11 + -1) + 0x20)) {\n              operator_delete(*(void **)((long)(pOVar11 + -1) + 0x10));\n            }\n            pOVar11 = (Other_attributes *)(puVar6 + 8);\n          } while (pVVar3->known_attributes_ != (Object_attribute *)(puVar6 + 8));\n          operator_delete(pVVar3,0xb50);\n        }" { (for_statement "for (p_Var9 = (pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                        _M_left;\n              (_Rb_tree_header *)p_Var9 !=\n              &(pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header;\n              p_Var9 = (_Rb_tree_node_base *)std::_Rb_tree_increment(p_Var9)) {\n            p_Var4 = p_Var9[1]._M_parent;\n            if (p_Var4 != (_Base_ptr)0x0) {\n              if (p_Var4->_M_parent != (_Base_ptr)&p_Var4->_M_right) {\n                operator_delete(p_Var4->_M_parent);\n              }\n              operator_delete(p_Var4,0x28);\n            }\n          }" for ( (assignment_expression "p_Var9 = (pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                        _M_left" identifier = (field_expression "(pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                        _M_left" (field_expression "(pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header._M_header" (field_expression "(pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header" (field_expression "(pVVar3->other_attributes_)._M_t._M_impl" (field_expression "(pVVar3->other_attributes_)._M_t" (parenthesized_expression "(pVVar3->other_attributes_)" ( (field_expression "pVVar3->other_attributes_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ; (binary_expression "(_Rb_tree_header *)p_Var9 !=\n              &(pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header" (cast_expression "(_Rb_tree_header *)p_Var9" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != (pointer_expression "&(pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header" & (field_expression "(pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header" (field_expression "(pVVar3->other_attributes_)._M_t._M_impl" (field_expression "(pVVar3->other_attributes_)._M_t" (parenthesized_expression "(pVVar3->other_attributes_)" ( (field_expression "pVVar3->other_attributes_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier))) ; (ERROR "p_Var9 = (_Rb_tree_node_base *)std::" (assignment_expression "p_Var9 = (_Rb_tree_node_base *)std" identifier = (cast_expression "(_Rb_tree_node_base *)std" ( (type_descriptor "_Rb_tree_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) : :) (call_expression "_Rb_tree_increment(p_Var9)" identifier (argument_list "(p_Var9)" ( identifier ))) ) (compound_statement "{\n            p_Var4 = p_Var9[1]._M_parent;\n            if (p_Var4 != (_Base_ptr)0x0) {\n              if (p_Var4->_M_parent != (_Base_ptr)&p_Var4->_M_right) {\n                operator_delete(p_Var4->_M_parent);\n              }\n              operator_delete(p_Var4,0x28);\n            }\n          }" { (expression_statement "p_Var4 = p_Var9[1]._M_parent;" (assignment_expression "p_Var4 = p_Var9[1]._M_parent" identifier = (field_expression "p_Var9[1]._M_parent" (subscript_expression "p_Var9[1]" identifier [ number_literal ]) . field_identifier)) ;) (if_statement "if (p_Var4 != (_Base_ptr)0x0) {\n              if (p_Var4->_M_parent != (_Base_ptr)&p_Var4->_M_right) {\n                operator_delete(p_Var4->_M_parent);\n              }\n              operator_delete(p_Var4,0x28);\n            }" if (parenthesized_expression "(p_Var4 != (_Base_ptr)0x0)" ( (binary_expression "p_Var4 != (_Base_ptr)0x0" identifier != (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) (compound_statement "{\n              if (p_Var4->_M_parent != (_Base_ptr)&p_Var4->_M_right) {\n                operator_delete(p_Var4->_M_parent);\n              }\n              operator_delete(p_Var4,0x28);\n            }" { (if_statement "if (p_Var4->_M_parent != (_Base_ptr)&p_Var4->_M_right) {\n                operator_delete(p_Var4->_M_parent);\n              }" if (parenthesized_expression "(p_Var4->_M_parent != (_Base_ptr)&p_Var4->_M_right)" ( (binary_expression "p_Var4->_M_parent != (_Base_ptr)&p_Var4->_M_right" (binary_expression "p_Var4->_M_parent != (_Base_ptr)" (field_expression "p_Var4->_M_parent" identifier -> field_identifier) != (parenthesized_expression "(_Base_ptr)" ( identifier ))) & (field_expression "p_Var4->_M_right" identifier -> field_identifier)) )) (compound_statement "{\n                operator_delete(p_Var4->_M_parent);\n              }" { (expression_statement "operator_delete(p_Var4->_M_parent);" (call_expression "operator_delete(p_Var4->_M_parent)" identifier (argument_list "(p_Var4->_M_parent)" ( (field_expression "p_Var4->_M_parent" identifier -> field_identifier) ))) ;) })) (expression_statement "operator_delete(p_Var4,0x28);" (call_expression "operator_delete(p_Var4,0x28)" identifier (argument_list "(p_Var4,0x28)" ( identifier , number_literal ))) ;) })) })) (ERROR "std::\n          _Rb_tree<int,_std::pair<int_const,_gold::Object_attribute*>,_std::_Select1st<std::pair<int_const,_gold::Object_attribute*>_>,_std::less<int>,_std::allocator<std::pair<int_const,_gold::Object_attribute*>" (comma_expression "std::\n          _Rb_tree<int,_std::pair<int_const,_gold::Object_attribute*>,_std::_Select1st<std::pair<int_const,_gold::Object_attribute*>_>,_std::less<int>,_std::allocator<std::pair<int_const,_gold" (binary_expression "std::\n          _Rb_tree<int,_std::pair<int_const,_gold::Object_attribute*>,_std::_Select1st<std::pair<int_const,_gold::Object_attribute*>_>,_std::less<int>,_std::allocator<std::pair<int_const" (binary_expression "std::\n          _Rb_tree<int,_std::pair<int_const,_gold::Object_attribute*>,_std::_Select1st<std::pair<int_const,_gold::Object_attribute*>_>,_std::less<int>,_std::allocator<std" (binary_expression "std::\n          _Rb_tree<int,_std::pair<int_const,_gold::Object_attribute*>,_std::_Select1st<std::pair<int_const,_gold::Object_attribute*>_>,_std::less<int>,_std" (binary_expression "std::\n          _Rb_tree<int,_std::pair<int_const,_gold::Object_attribute*>,_std::_Select1st<std::pair<int_const,_gold::Object_attribute*>_>,_std::less<int" (binary_expression "std::\n          _Rb_tree<int,_std::pair<int_const,_gold::Object_attribute*>,_std::_Select1st<std::pair<int_const,_gold::Object_attribute*>_>,_std" (binary_expression "std::\n          _Rb_tree<int,_std::pair<int_const,_gold::Object_attribute*>,_std::_Select1st<std::pair<int_const,_gold::Object_attribute*>_" identifier (ERROR "::\n          _Rb_tree<int,_std::pair<int_const,_gold::Object_attribute*>,_std::_Select1st<std::pair<int_const,_gold::Object_attribute*" : : (comma_expression "_Rb_tree<int,_std" (binary_expression "_Rb_tree<int" identifier < identifier) , identifier) : : (comma_expression "pair<int_const,_gold" (binary_expression "pair<int_const" identifier < identifier) , identifier) : : (comma_expression "Object_attribute*>,_std" identifier (ERROR "*>" * >) , identifier) : : (binary_expression "_Select1st<std" identifier < identifier) : : (comma_expression "pair<int_const,_gold" (binary_expression "pair<int_const" identifier < identifier) , identifier) : : identifier *) > identifier) > (ERROR "," ,) identifier) (ERROR "::less" : : identifier) < identifier) > (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) , identifier) : : identifier * >) (expression_statement "_>_>\n          ::_M_erase(&(pVVar3->other_attributes_)._M_t,\n                     (_Link_type)\n                     (pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent);" (binary_expression "_>_>\n          ::_M_erase(&(pVVar3->other_attributes_)._M_t,\n                     (_Link_type)\n                     (pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent)" (binary_expression "_>_" identifier > identifier) > (ERROR "::" : :) (call_expression "_M_erase(&(pVVar3->other_attributes_)._M_t,\n                     (_Link_type)\n                     (pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent)" identifier (argument_list "(&(pVVar3->other_attributes_)._M_t,\n                     (_Link_type)\n                     (pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent)" ( (pointer_expression "&(pVVar3->other_attributes_)._M_t" & (field_expression "(pVVar3->other_attributes_)._M_t" (parenthesized_expression "(pVVar3->other_attributes_)" ( (field_expression "pVVar3->other_attributes_" identifier -> field_identifier) )) . field_identifier)) , (field_expression "(_Link_type)\n                     (pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header._M_header.\n                     _M_parent" (field_expression "(_Link_type)\n                     (pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header._M_header" (field_expression "(_Link_type)\n                     (pVVar3->other_attributes_)._M_t._M_impl.super__Rb_tree_header" (field_expression "(_Link_type)\n                     (pVVar3->other_attributes_)._M_t._M_impl" (field_expression "(_Link_type)\n                     (pVVar3->other_attributes_)._M_t" (call_expression "(_Link_type)\n                     (pVVar3->other_attributes_)" (parenthesized_expression "(_Link_type)" ( identifier )) (argument_list "(pVVar3->other_attributes_)" ( (field_expression "pVVar3->other_attributes_" identifier -> field_identifier) ))) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) )))) ;) (expression_statement "pOVar11 = &pVVar3->other_attributes_;" (assignment_expression "pOVar11 = &pVVar3->other_attributes_" identifier = (pointer_expression "&pVVar3->other_attributes_" & (field_expression "pVVar3->other_attributes_" identifier -> field_identifier))) ;) (do_statement "do {\n            puVar6 = (undefined1 *)(pOVar11 + -1);\n            if (*(void **)((long)(pOVar11 + -1) + 0x10) != (void *)((long)(pOVar11 + -1) + 0x20)) {\n              operator_delete(*(void **)((long)(pOVar11 + -1) + 0x10));\n            }\n            pOVar11 = (Other_attributes *)(puVar6 + 8);\n          } while (pVVar3->known_attributes_ != (Object_attribute *)(puVar6 + 8));" do (compound_statement "{\n            puVar6 = (undefined1 *)(pOVar11 + -1);\n            if (*(void **)((long)(pOVar11 + -1) + 0x10) != (void *)((long)(pOVar11 + -1) + 0x20)) {\n              operator_delete(*(void **)((long)(pOVar11 + -1) + 0x10));\n            }\n            pOVar11 = (Other_attributes *)(puVar6 + 8);\n          }" { (expression_statement "puVar6 = (undefined1 *)(pOVar11 + -1);" (assignment_expression "puVar6 = (undefined1 *)(pOVar11 + -1)" identifier = (cast_expression "(undefined1 *)(pOVar11 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar11 + -1)" ( (binary_expression "pOVar11 + -1" identifier + number_literal) )))) ;) (if_statement "if (*(void **)((long)(pOVar11 + -1) + 0x10) != (void *)((long)(pOVar11 + -1) + 0x20)) {\n              operator_delete(*(void **)((long)(pOVar11 + -1) + 0x10));\n            }" if (parenthesized_expression "(*(void **)((long)(pOVar11 + -1) + 0x10) != (void *)((long)(pOVar11 + -1) + 0x20))" ( (binary_expression "*(void **)((long)(pOVar11 + -1) + 0x10) != (void *)((long)(pOVar11 + -1) + 0x20)" (pointer_expression "*(void **)((long)(pOVar11 + -1) + 0x10)" * (cast_expression "(void **)((long)(pOVar11 + -1) + 0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)(pOVar11 + -1) + 0x10)" ( (binary_expression "(long)(pOVar11 + -1) + 0x10" (cast_expression "(long)(pOVar11 + -1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pOVar11 + -1)" ( (binary_expression "pOVar11 + -1" identifier + number_literal) ))) + number_literal) )))) != (cast_expression "(void *)((long)(pOVar11 + -1) + 0x20)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)(pOVar11 + -1) + 0x20)" ( (binary_expression "(long)(pOVar11 + -1) + 0x20" (cast_expression "(long)(pOVar11 + -1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pOVar11 + -1)" ( (binary_expression "pOVar11 + -1" identifier + number_literal) ))) + number_literal) )))) )) (compound_statement "{\n              operator_delete(*(void **)((long)(pOVar11 + -1) + 0x10));\n            }" { (expression_statement "operator_delete(*(void **)((long)(pOVar11 + -1) + 0x10));" (call_expression "operator_delete(*(void **)((long)(pOVar11 + -1) + 0x10))" identifier (argument_list "(*(void **)((long)(pOVar11 + -1) + 0x10))" ( (pointer_expression "*(void **)((long)(pOVar11 + -1) + 0x10)" * (cast_expression "(void **)((long)(pOVar11 + -1) + 0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)(pOVar11 + -1) + 0x10)" ( (binary_expression "(long)(pOVar11 + -1) + 0x10" (cast_expression "(long)(pOVar11 + -1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pOVar11 + -1)" ( (binary_expression "pOVar11 + -1" identifier + number_literal) ))) + number_literal) )))) ))) ;) })) (expression_statement "pOVar11 = (Other_attributes *)(puVar6 + 8);" (assignment_expression "pOVar11 = (Other_attributes *)(puVar6 + 8)" identifier = (cast_expression "(Other_attributes *)(puVar6 + 8)" ( (type_descriptor "Other_attributes *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 8)" ( (binary_expression "puVar6 + 8" identifier + number_literal) )))) ;) }) while (parenthesized_expression "(pVVar3->known_attributes_ != (Object_attribute *)(puVar6 + 8))" ( (binary_expression "pVVar3->known_attributes_ != (Object_attribute *)(puVar6 + 8)" (field_expression "pVVar3->known_attributes_" identifier -> field_identifier) != (cast_expression "(Object_attribute *)(puVar6 + 8)" ( (type_descriptor "Object_attribute *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 8)" ( (binary_expression "puVar6 + 8" identifier + number_literal) )))) )) ;) (expression_statement "operator_delete(pVVar3,0xb50);" (call_expression "operator_delete(pVVar3,0xb50)" identifier (argument_list "(pVVar3,0xb50)" ( identifier , number_literal ))) ;) })) (if_statement "if (bVar5) break;" if (parenthesized_expression "(bVar5)" ( identifier )) (break_statement "break;" break ;)) (expression_statement "bVar5 = true;" (assignment_expression "bVar5 = true" identifier = true) ;) (expression_statement "pVVar3 = pAVar8->vendor_object_attributes_[1];" (assignment_expression "pVVar3 = pAVar8->vendor_object_attributes_[1]" identifier = (subscript_expression "pAVar8->vendor_object_attributes_[1]" (field_expression "pAVar8->vendor_object_attributes_" identifier -> field_identifier) [ number_literal ])) ;) })) (expression_statement "operator_delete(pAVar8,0x10);" (call_expression "operator_delete(pAVar8,0x10)" identifier (argument_list "(pAVar8,0x10)" ( identifier , number_literal ))) ;) })) (expression_statement "this->attributes_section_data_ = (Attributes_section_data *)0x0;" (assignment_expression "this->attributes_section_data_ = (Attributes_section_data *)0x0" (field_expression "this->attributes_section_data_" identifier -> field_identifier) = (cast_expression "(Attributes_section_data *)0x0" ( (type_descriptor "Attributes_section_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void FUN_00183e90(long param_1,long *param_2)\n\n{\n  long *plVar1;\n  bool bVar2;\n  uint uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  long lVar6;\n  long lVar7;\n  long lVar8;\n  uint uVar9;\n  uint uVar10;\n  \n  FUN_0024e4f0();\n  if (*(long *)(param_1 + 0x28) == 0) {\nLAB_001840de:\n                    \n    FUN_0016e0c0();\n  }\n  if (*(int *)(*(long *)(param_1 + 0x28) + 0xe4) == 1) {\n    bVar2 = false;\n    lVar7 = *(long *)(*param_2 + 0x10) + 0x28;\n    uVar9 = 1;\n    if (1 < *(uint *)(param_1 + 0x38)) {\n      do {\n        while( true ) {\n          uVar3 = *(uint *)(lVar7 + 4);\n          uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n          if (uVar3 != 3) break;\nLAB_00183ef7:\n          uVar9 = uVar9 + 1;\n          lVar7 = lVar7 + 0x28;\n          if (*(uint *)(param_1 + 0x38) <= uVar9) goto LAB_00183f9e;\n        }\n        if (uVar3 != 0x6ffffff5) {\n          if (uVar3 == 2) {\n            uVar3 = *(uint *)(lVar7 + 0x14);\n            if (0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)) {\n              bVar2 = true;\n            }\n          }\n          else {\n            bVar2 = true;\n          }\n          goto LAB_00183ef7;\n        }\n        if (*(long *)(param_1 + 0x308) != 0) {\n                    \n          FUN_001e9890("../../gold/powerpc.cc",0x95b,"do_read_symbols");\n        }\n        uVar3 = *(uint *)(lVar7 + 0x10);\n        uVar10 = *(uint *)(lVar7 + 0x14);\n        uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n        ;\n        if (*(long *)(param_1 + 0x28) == 0) goto LAB_001840de;\n        uVar4 = FUN_001e43a0(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                             uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18,uVar10,1,0);\n        uVar5 = FUN_00337280(0x10);\n                    \n        FUN_001cbfe0(uVar5,uVar4,uVar10);\n        *(undefined8 *)(param_1 + 0x308) = uVar5;\n        uVar9 = uVar9 + 1;\n        lVar7 = lVar7 + 0x28;\n      } while (uVar9 < *(uint *)(param_1 + 0x38));\nLAB_00183f9e:\n      if (bVar2) {\n        return;\n      }\n    }\n    plVar1 = *(long **)(param_1 + 0x308);\n    bVar2 = false;\n    if (plVar1 != (long *)0x0) {\n      lVar7 = *plVar1;\n      while( true ) {\n        if (lVar7 != 0) {\n          for (lVar6 = *(long *)(lVar7 + 0xb38); lVar6 != lVar7 + 0xb28; lVar6 = FUN_00339e10(lVar6)\n              ) {\n            lVar8 = *(long *)(lVar6 + 0x28);\n            if (lVar8 != 0) {\n              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }\n              thunk_FUN_00338a50(lVar8,0x28);\n            }\n          }\n          FUN_001bc480(lVar7 + 0xb20,*(undefined8 *)(lVar7 + 0xb30));\n          lVar6 = lVar7 + 0xb20;\n          do {\n            lVar8 = lVar6 + -0x28;\n            if (*(long *)(lVar6 + -0x20) != lVar6 + -0x10) {\n              FUN_00338a50();\n            }\n            lVar6 = lVar8;\n          } while (lVar7 + 8 != lVar8);\n          thunk_FUN_00338a50(lVar7,0xb50);\n        }\n        if (bVar2) break;\n        bVar2 = true;\n        lVar7 = plVar1[1];\n      }\n      thunk_FUN_00338a50(plVar1,0x10);\n    }\n    *(undefined8 *)(param_1 + 0x308) = 0;\n  }\n  return;\n}\n\n" (function_definition "void FUN_00183e90(long param_1,long *param_2)\n\n{\n  long *plVar1;\n  bool bVar2;\n  uint uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  long lVar6;\n  long lVar7;\n  long lVar8;\n  uint uVar9;\n  uint uVar10;\n  \n  FUN_0024e4f0();\n  if (*(long *)(param_1 + 0x28) == 0) {\nLAB_001840de:\n                    \n    FUN_0016e0c0();\n  }\n  if (*(int *)(*(long *)(param_1 + 0x28) + 0xe4) == 1) {\n    bVar2 = false;\n    lVar7 = *(long *)(*param_2 + 0x10) + 0x28;\n    uVar9 = 1;\n    if (1 < *(uint *)(param_1 + 0x38)) {\n      do {\n        while( true ) {\n          uVar3 = *(uint *)(lVar7 + 4);\n          uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n          if (uVar3 != 3) break;\nLAB_00183ef7:\n          uVar9 = uVar9 + 1;\n          lVar7 = lVar7 + 0x28;\n          if (*(uint *)(param_1 + 0x38) <= uVar9) goto LAB_00183f9e;\n        }\n        if (uVar3 != 0x6ffffff5) {\n          if (uVar3 == 2) {\n            uVar3 = *(uint *)(lVar7 + 0x14);\n            if (0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)) {\n              bVar2 = true;\n            }\n          }\n          else {\n            bVar2 = true;\n          }\n          goto LAB_00183ef7;\n        }\n        if (*(long *)(param_1 + 0x308) != 0) {\n                    \n          FUN_001e9890("../../gold/powerpc.cc",0x95b,"do_read_symbols");\n        }\n        uVar3 = *(uint *)(lVar7 + 0x10);\n        uVar10 = *(uint *)(lVar7 + 0x14);\n        uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n        ;\n        if (*(long *)(param_1 + 0x28) == 0) goto LAB_001840de;\n        uVar4 = FUN_001e43a0(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                             uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18,uVar10,1,0);\n        uVar5 = FUN_00337280(0x10);\n                    \n        FUN_001cbfe0(uVar5,uVar4,uVar10);\n        *(undefined8 *)(param_1 + 0x308) = uVar5;\n        uVar9 = uVar9 + 1;\n        lVar7 = lVar7 + 0x28;\n      } while (uVar9 < *(uint *)(param_1 + 0x38));\nLAB_00183f9e:\n      if (bVar2) {\n        return;\n      }\n    }\n    plVar1 = *(long **)(param_1 + 0x308);\n    bVar2 = false;\n    if (plVar1 != (long *)0x0) {\n      lVar7 = *plVar1;\n      while( true ) {\n        if (lVar7 != 0) {\n          for (lVar6 = *(long *)(lVar7 + 0xb38); lVar6 != lVar7 + 0xb28; lVar6 = FUN_00339e10(lVar6)\n              ) {\n            lVar8 = *(long *)(lVar6 + 0x28);\n            if (lVar8 != 0) {\n              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }\n              thunk_FUN_00338a50(lVar8,0x28);\n            }\n          }\n          FUN_001bc480(lVar7 + 0xb20,*(undefined8 *)(lVar7 + 0xb30));\n          lVar6 = lVar7 + 0xb20;\n          do {\n            lVar8 = lVar6 + -0x28;\n            if (*(long *)(lVar6 + -0x20) != lVar6 + -0x10) {\n              FUN_00338a50();\n            }\n            lVar6 = lVar8;\n          } while (lVar7 + 8 != lVar8);\n          thunk_FUN_00338a50(lVar7,0xb50);\n        }\n        if (bVar2) break;\n        bVar2 = true;\n        lVar7 = plVar1[1];\n      }\n      thunk_FUN_00338a50(plVar1,0x10);\n    }\n    *(undefined8 *)(param_1 + 0x308) = 0;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00183e90(long param_1,long *param_2)" identifier (parameter_list "(long param_1,long *param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long *param_2" (sized_type_specifier "long" long) (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  long *plVar1;\n  bool bVar2;\n  uint uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  long lVar6;\n  long lVar7;\n  long lVar8;\n  uint uVar9;\n  uint uVar10;\n  \n  FUN_0024e4f0();\n  if (*(long *)(param_1 + 0x28) == 0) {\nLAB_001840de:\n                    \n    FUN_0016e0c0();\n  }\n  if (*(int *)(*(long *)(param_1 + 0x28) + 0xe4) == 1) {\n    bVar2 = false;\n    lVar7 = *(long *)(*param_2 + 0x10) + 0x28;\n    uVar9 = 1;\n    if (1 < *(uint *)(param_1 + 0x38)) {\n      do {\n        while( true ) {\n          uVar3 = *(uint *)(lVar7 + 4);\n          uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n          if (uVar3 != 3) break;\nLAB_00183ef7:\n          uVar9 = uVar9 + 1;\n          lVar7 = lVar7 + 0x28;\n          if (*(uint *)(param_1 + 0x38) <= uVar9) goto LAB_00183f9e;\n        }\n        if (uVar3 != 0x6ffffff5) {\n          if (uVar3 == 2) {\n            uVar3 = *(uint *)(lVar7 + 0x14);\n            if (0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)) {\n              bVar2 = true;\n            }\n          }\n          else {\n            bVar2 = true;\n          }\n          goto LAB_00183ef7;\n        }\n        if (*(long *)(param_1 + 0x308) != 0) {\n                    \n          FUN_001e9890("../../gold/powerpc.cc",0x95b,"do_read_symbols");\n        }\n        uVar3 = *(uint *)(lVar7 + 0x10);\n        uVar10 = *(uint *)(lVar7 + 0x14);\n        uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n        ;\n        if (*(long *)(param_1 + 0x28) == 0) goto LAB_001840de;\n        uVar4 = FUN_001e43a0(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                             uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18,uVar10,1,0);\n        uVar5 = FUN_00337280(0x10);\n                    \n        FUN_001cbfe0(uVar5,uVar4,uVar10);\n        *(undefined8 *)(param_1 + 0x308) = uVar5;\n        uVar9 = uVar9 + 1;\n        lVar7 = lVar7 + 0x28;\n      } while (uVar9 < *(uint *)(param_1 + 0x38));\nLAB_00183f9e:\n      if (bVar2) {\n        return;\n      }\n    }\n    plVar1 = *(long **)(param_1 + 0x308);\n    bVar2 = false;\n    if (plVar1 != (long *)0x0) {\n      lVar7 = *plVar1;\n      while( true ) {\n        if (lVar7 != 0) {\n          for (lVar6 = *(long *)(lVar7 + 0xb38); lVar6 != lVar7 + 0xb28; lVar6 = FUN_00339e10(lVar6)\n              ) {\n            lVar8 = *(long *)(lVar6 + 0x28);\n            if (lVar8 != 0) {\n              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }\n              thunk_FUN_00338a50(lVar8,0x28);\n            }\n          }\n          FUN_001bc480(lVar7 + 0xb20,*(undefined8 *)(lVar7 + 0xb30));\n          lVar6 = lVar7 + 0xb20;\n          do {\n            lVar8 = lVar6 + -0x28;\n            if (*(long *)(lVar6 + -0x20) != lVar6 + -0x10) {\n              FUN_00338a50();\n            }\n            lVar6 = lVar8;\n          } while (lVar7 + 8 != lVar8);\n          thunk_FUN_00338a50(lVar7,0xb50);\n        }\n        if (bVar2) break;\n        bVar2 = true;\n        lVar7 = plVar1[1];\n      }\n      thunk_FUN_00338a50(plVar1,0x10);\n    }\n    *(undefined8 *)(param_1 + 0x308) = 0;\n  }\n  return;\n}" { (declaration "long *plVar1;" (sized_type_specifier "long" long) (pointer_declarator "*plVar1" * identifier) ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (expression_statement "FUN_0024e4f0();" (call_expression "FUN_0024e4f0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (*(long *)(param_1 + 0x28) == 0) {\nLAB_001840de:\n                    \n    FUN_0016e0c0();\n  }" if (parenthesized_expression "(*(long *)(param_1 + 0x28) == 0)" ( (binary_expression "*(long *)(param_1 + 0x28) == 0" (pointer_expression "*(long *)(param_1 + 0x28)" * (cast_expression "(long *)(param_1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_001840de:\n                    \n    FUN_0016e0c0();\n  }" { (labeled_statement "LAB_001840de:\n                    \n    FUN_0016e0c0();" statement_identifier : (expression_statement "FUN_0016e0c0();" (call_expression "FUN_0016e0c0()" identifier (argument_list "()" ( ))) ;)) })) (if_statement "if (*(int *)(*(long *)(param_1 + 0x28) + 0xe4) == 1) {\n    bVar2 = false;\n    lVar7 = *(long *)(*param_2 + 0x10) + 0x28;\n    uVar9 = 1;\n    if (1 < *(uint *)(param_1 + 0x38)) {\n      do {\n        while( true ) {\n          uVar3 = *(uint *)(lVar7 + 4);\n          uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n          if (uVar3 != 3) break;\nLAB_00183ef7:\n          uVar9 = uVar9 + 1;\n          lVar7 = lVar7 + 0x28;\n          if (*(uint *)(param_1 + 0x38) <= uVar9) goto LAB_00183f9e;\n        }\n        if (uVar3 != 0x6ffffff5) {\n          if (uVar3 == 2) {\n            uVar3 = *(uint *)(lVar7 + 0x14);\n            if (0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)) {\n              bVar2 = true;\n            }\n          }\n          else {\n            bVar2 = true;\n          }\n          goto LAB_00183ef7;\n        }\n        if (*(long *)(param_1 + 0x308) != 0) {\n                    \n          FUN_001e9890("../../gold/powerpc.cc",0x95b,"do_read_symbols");\n        }\n        uVar3 = *(uint *)(lVar7 + 0x10);\n        uVar10 = *(uint *)(lVar7 + 0x14);\n        uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n        ;\n        if (*(long *)(param_1 + 0x28) == 0) goto LAB_001840de;\n        uVar4 = FUN_001e43a0(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                             uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18,uVar10,1,0);\n        uVar5 = FUN_00337280(0x10);\n                    \n        FUN_001cbfe0(uVar5,uVar4,uVar10);\n        *(undefined8 *)(param_1 + 0x308) = uVar5;\n        uVar9 = uVar9 + 1;\n        lVar7 = lVar7 + 0x28;\n      } while (uVar9 < *(uint *)(param_1 + 0x38));\nLAB_00183f9e:\n      if (bVar2) {\n        return;\n      }\n    }\n    plVar1 = *(long **)(param_1 + 0x308);\n    bVar2 = false;\n    if (plVar1 != (long *)0x0) {\n      lVar7 = *plVar1;\n      while( true ) {\n        if (lVar7 != 0) {\n          for (lVar6 = *(long *)(lVar7 + 0xb38); lVar6 != lVar7 + 0xb28; lVar6 = FUN_00339e10(lVar6)\n              ) {\n            lVar8 = *(long *)(lVar6 + 0x28);\n            if (lVar8 != 0) {\n              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }\n              thunk_FUN_00338a50(lVar8,0x28);\n            }\n          }\n          FUN_001bc480(lVar7 + 0xb20,*(undefined8 *)(lVar7 + 0xb30));\n          lVar6 = lVar7 + 0xb20;\n          do {\n            lVar8 = lVar6 + -0x28;\n            if (*(long *)(lVar6 + -0x20) != lVar6 + -0x10) {\n              FUN_00338a50();\n            }\n            lVar6 = lVar8;\n          } while (lVar7 + 8 != lVar8);\n          thunk_FUN_00338a50(lVar7,0xb50);\n        }\n        if (bVar2) break;\n        bVar2 = true;\n        lVar7 = plVar1[1];\n      }\n      thunk_FUN_00338a50(plVar1,0x10);\n    }\n    *(undefined8 *)(param_1 + 0x308) = 0;\n  }" if (parenthesized_expression "(*(int *)(*(long *)(param_1 + 0x28) + 0xe4) == 1)" ( (binary_expression "*(int *)(*(long *)(param_1 + 0x28) + 0xe4) == 1" (pointer_expression "*(int *)(*(long *)(param_1 + 0x28) + 0xe4)" * (cast_expression "(int *)(*(long *)(param_1 + 0x28) + 0xe4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0x28) + 0xe4)" ( (binary_expression "*(long *)(param_1 + 0x28) + 0xe4" (pointer_expression "*(long *)(param_1 + 0x28)" * (cast_expression "(long *)(param_1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n    bVar2 = false;\n    lVar7 = *(long *)(*param_2 + 0x10) + 0x28;\n    uVar9 = 1;\n    if (1 < *(uint *)(param_1 + 0x38)) {\n      do {\n        while( true ) {\n          uVar3 = *(uint *)(lVar7 + 4);\n          uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n          if (uVar3 != 3) break;\nLAB_00183ef7:\n          uVar9 = uVar9 + 1;\n          lVar7 = lVar7 + 0x28;\n          if (*(uint *)(param_1 + 0x38) <= uVar9) goto LAB_00183f9e;\n        }\n        if (uVar3 != 0x6ffffff5) {\n          if (uVar3 == 2) {\n            uVar3 = *(uint *)(lVar7 + 0x14);\n            if (0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)) {\n              bVar2 = true;\n            }\n          }\n          else {\n            bVar2 = true;\n          }\n          goto LAB_00183ef7;\n        }\n        if (*(long *)(param_1 + 0x308) != 0) {\n                    \n          FUN_001e9890("../../gold/powerpc.cc",0x95b,"do_read_symbols");\n        }\n        uVar3 = *(uint *)(lVar7 + 0x10);\n        uVar10 = *(uint *)(lVar7 + 0x14);\n        uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n        ;\n        if (*(long *)(param_1 + 0x28) == 0) goto LAB_001840de;\n        uVar4 = FUN_001e43a0(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                             uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18,uVar10,1,0);\n        uVar5 = FUN_00337280(0x10);\n                    \n        FUN_001cbfe0(uVar5,uVar4,uVar10);\n        *(undefined8 *)(param_1 + 0x308) = uVar5;\n        uVar9 = uVar9 + 1;\n        lVar7 = lVar7 + 0x28;\n      } while (uVar9 < *(uint *)(param_1 + 0x38));\nLAB_00183f9e:\n      if (bVar2) {\n        return;\n      }\n    }\n    plVar1 = *(long **)(param_1 + 0x308);\n    bVar2 = false;\n    if (plVar1 != (long *)0x0) {\n      lVar7 = *plVar1;\n      while( true ) {\n        if (lVar7 != 0) {\n          for (lVar6 = *(long *)(lVar7 + 0xb38); lVar6 != lVar7 + 0xb28; lVar6 = FUN_00339e10(lVar6)\n              ) {\n            lVar8 = *(long *)(lVar6 + 0x28);\n            if (lVar8 != 0) {\n              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }\n              thunk_FUN_00338a50(lVar8,0x28);\n            }\n          }\n          FUN_001bc480(lVar7 + 0xb20,*(undefined8 *)(lVar7 + 0xb30));\n          lVar6 = lVar7 + 0xb20;\n          do {\n            lVar8 = lVar6 + -0x28;\n            if (*(long *)(lVar6 + -0x20) != lVar6 + -0x10) {\n              FUN_00338a50();\n            }\n            lVar6 = lVar8;\n          } while (lVar7 + 8 != lVar8);\n          thunk_FUN_00338a50(lVar7,0xb50);\n        }\n        if (bVar2) break;\n        bVar2 = true;\n        lVar7 = plVar1[1];\n      }\n      thunk_FUN_00338a50(plVar1,0x10);\n    }\n    *(undefined8 *)(param_1 + 0x308) = 0;\n  }" { (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "lVar7 = *(long *)(*param_2 + 0x10) + 0x28;" (assignment_expression "lVar7 = *(long *)(*param_2 + 0x10) + 0x28" identifier = (binary_expression "*(long *)(*param_2 + 0x10) + 0x28" (pointer_expression "*(long *)(*param_2 + 0x10)" * (cast_expression "(long *)(*param_2 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_2 + 0x10)" ( (binary_expression "*param_2 + 0x10" (pointer_expression "*param_2" * identifier) + number_literal) )))) + number_literal)) ;) (expression_statement "uVar9 = 1;" (assignment_expression "uVar9 = 1" identifier = number_literal) ;) (if_statement "if (1 < *(uint *)(param_1 + 0x38)) {\n      do {\n        while( true ) {\n          uVar3 = *(uint *)(lVar7 + 4);\n          uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n          if (uVar3 != 3) break;\nLAB_00183ef7:\n          uVar9 = uVar9 + 1;\n          lVar7 = lVar7 + 0x28;\n          if (*(uint *)(param_1 + 0x38) <= uVar9) goto LAB_00183f9e;\n        }\n        if (uVar3 != 0x6ffffff5) {\n          if (uVar3 == 2) {\n            uVar3 = *(uint *)(lVar7 + 0x14);\n            if (0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)) {\n              bVar2 = true;\n            }\n          }\n          else {\n            bVar2 = true;\n          }\n          goto LAB_00183ef7;\n        }\n        if (*(long *)(param_1 + 0x308) != 0) {\n                    \n          FUN_001e9890("../../gold/powerpc.cc",0x95b,"do_read_symbols");\n        }\n        uVar3 = *(uint *)(lVar7 + 0x10);\n        uVar10 = *(uint *)(lVar7 + 0x14);\n        uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n        ;\n        if (*(long *)(param_1 + 0x28) == 0) goto LAB_001840de;\n        uVar4 = FUN_001e43a0(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                             uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18,uVar10,1,0);\n        uVar5 = FUN_00337280(0x10);\n                    \n        FUN_001cbfe0(uVar5,uVar4,uVar10);\n        *(undefined8 *)(param_1 + 0x308) = uVar5;\n        uVar9 = uVar9 + 1;\n        lVar7 = lVar7 + 0x28;\n      } while (uVar9 < *(uint *)(param_1 + 0x38));\nLAB_00183f9e:\n      if (bVar2) {\n        return;\n      }\n    }" if (parenthesized_expression "(1 < *(uint *)(param_1 + 0x38))" ( (binary_expression "1 < *(uint *)(param_1 + 0x38)" number_literal < (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) )) (compound_statement "{\n      do {\n        while( true ) {\n          uVar3 = *(uint *)(lVar7 + 4);\n          uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n          if (uVar3 != 3) break;\nLAB_00183ef7:\n          uVar9 = uVar9 + 1;\n          lVar7 = lVar7 + 0x28;\n          if (*(uint *)(param_1 + 0x38) <= uVar9) goto LAB_00183f9e;\n        }\n        if (uVar3 != 0x6ffffff5) {\n          if (uVar3 == 2) {\n            uVar3 = *(uint *)(lVar7 + 0x14);\n            if (0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)) {\n              bVar2 = true;\n            }\n          }\n          else {\n            bVar2 = true;\n          }\n          goto LAB_00183ef7;\n        }\n        if (*(long *)(param_1 + 0x308) != 0) {\n                    \n          FUN_001e9890("../../gold/powerpc.cc",0x95b,"do_read_symbols");\n        }\n        uVar3 = *(uint *)(lVar7 + 0x10);\n        uVar10 = *(uint *)(lVar7 + 0x14);\n        uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n        ;\n        if (*(long *)(param_1 + 0x28) == 0) goto LAB_001840de;\n        uVar4 = FUN_001e43a0(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                             uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18,uVar10,1,0);\n        uVar5 = FUN_00337280(0x10);\n                    \n        FUN_001cbfe0(uVar5,uVar4,uVar10);\n        *(undefined8 *)(param_1 + 0x308) = uVar5;\n        uVar9 = uVar9 + 1;\n        lVar7 = lVar7 + 0x28;\n      } while (uVar9 < *(uint *)(param_1 + 0x38));\nLAB_00183f9e:\n      if (bVar2) {\n        return;\n      }\n    }" { (do_statement "do {\n        while( true ) {\n          uVar3 = *(uint *)(lVar7 + 4);\n          uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n          if (uVar3 != 3) break;\nLAB_00183ef7:\n          uVar9 = uVar9 + 1;\n          lVar7 = lVar7 + 0x28;\n          if (*(uint *)(param_1 + 0x38) <= uVar9) goto LAB_00183f9e;\n        }\n        if (uVar3 != 0x6ffffff5) {\n          if (uVar3 == 2) {\n            uVar3 = *(uint *)(lVar7 + 0x14);\n            if (0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)) {\n              bVar2 = true;\n            }\n          }\n          else {\n            bVar2 = true;\n          }\n          goto LAB_00183ef7;\n        }\n        if (*(long *)(param_1 + 0x308) != 0) {\n                    \n          FUN_001e9890("../../gold/powerpc.cc",0x95b,"do_read_symbols");\n        }\n        uVar3 = *(uint *)(lVar7 + 0x10);\n        uVar10 = *(uint *)(lVar7 + 0x14);\n        uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n        ;\n        if (*(long *)(param_1 + 0x28) == 0) goto LAB_001840de;\n        uVar4 = FUN_001e43a0(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                             uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18,uVar10,1,0);\n        uVar5 = FUN_00337280(0x10);\n                    \n        FUN_001cbfe0(uVar5,uVar4,uVar10);\n        *(undefined8 *)(param_1 + 0x308) = uVar5;\n        uVar9 = uVar9 + 1;\n        lVar7 = lVar7 + 0x28;\n      } while (uVar9 < *(uint *)(param_1 + 0x38));" do (compound_statement "{\n        while( true ) {\n          uVar3 = *(uint *)(lVar7 + 4);\n          uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n          if (uVar3 != 3) break;\nLAB_00183ef7:\n          uVar9 = uVar9 + 1;\n          lVar7 = lVar7 + 0x28;\n          if (*(uint *)(param_1 + 0x38) <= uVar9) goto LAB_00183f9e;\n        }\n        if (uVar3 != 0x6ffffff5) {\n          if (uVar3 == 2) {\n            uVar3 = *(uint *)(lVar7 + 0x14);\n            if (0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)) {\n              bVar2 = true;\n            }\n          }\n          else {\n            bVar2 = true;\n          }\n          goto LAB_00183ef7;\n        }\n        if (*(long *)(param_1 + 0x308) != 0) {\n                    \n          FUN_001e9890("../../gold/powerpc.cc",0x95b,"do_read_symbols");\n        }\n        uVar3 = *(uint *)(lVar7 + 0x10);\n        uVar10 = *(uint *)(lVar7 + 0x14);\n        uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n        ;\n        if (*(long *)(param_1 + 0x28) == 0) goto LAB_001840de;\n        uVar4 = FUN_001e43a0(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                             uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18,uVar10,1,0);\n        uVar5 = FUN_00337280(0x10);\n                    \n        FUN_001cbfe0(uVar5,uVar4,uVar10);\n        *(undefined8 *)(param_1 + 0x308) = uVar5;\n        uVar9 = uVar9 + 1;\n        lVar7 = lVar7 + 0x28;\n      }" { (while_statement "while( true ) {\n          uVar3 = *(uint *)(lVar7 + 4);\n          uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n          if (uVar3 != 3) break;\nLAB_00183ef7:\n          uVar9 = uVar9 + 1;\n          lVar7 = lVar7 + 0x28;\n          if (*(uint *)(param_1 + 0x38) <= uVar9) goto LAB_00183f9e;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          uVar3 = *(uint *)(lVar7 + 4);\n          uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n          if (uVar3 != 3) break;\nLAB_00183ef7:\n          uVar9 = uVar9 + 1;\n          lVar7 = lVar7 + 0x28;\n          if (*(uint *)(param_1 + 0x38) <= uVar9) goto LAB_00183f9e;\n        }" { (expression_statement "uVar3 = *(uint *)(lVar7 + 4);" (assignment_expression "uVar3 = *(uint *)(lVar7 + 4)" identifier = (pointer_expression "*(uint *)(lVar7 + 4)" * (cast_expression "(uint *)(lVar7 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 4)" ( (binary_expression "lVar7 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;" (assignment_expression "uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18" identifier = (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8" (binary_expression "uVar3 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar3 & 0xff0000) >> 8" (parenthesized_expression "(uVar3 & 0xff0000)" ( (binary_expression "uVar3 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar3 & 0xff00) << 8" (parenthesized_expression "(uVar3 & 0xff00)" ( (binary_expression "uVar3 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar3 << 0x18" identifier << number_literal))) ;) (if_statement "if (uVar3 != 3) break;" if (parenthesized_expression "(uVar3 != 3)" ( (binary_expression "uVar3 != 3" identifier != number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00183ef7:\n          uVar9 = uVar9 + 1;" statement_identifier : (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;)) (expression_statement "lVar7 = lVar7 + 0x28;" (assignment_expression "lVar7 = lVar7 + 0x28" identifier = (binary_expression "lVar7 + 0x28" identifier + number_literal)) ;) (if_statement "if (*(uint *)(param_1 + 0x38) <= uVar9) goto LAB_00183f9e;" if (parenthesized_expression "(*(uint *)(param_1 + 0x38) <= uVar9)" ( (binary_expression "*(uint *)(param_1 + 0x38) <= uVar9" (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) <= identifier) )) (goto_statement "goto LAB_00183f9e;" goto statement_identifier ;)) })) (if_statement "if (uVar3 != 0x6ffffff5) {\n          if (uVar3 == 2) {\n            uVar3 = *(uint *)(lVar7 + 0x14);\n            if (0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)) {\n              bVar2 = true;\n            }\n          }\n          else {\n            bVar2 = true;\n          }\n          goto LAB_00183ef7;\n        }" if (parenthesized_expression "(uVar3 != 0x6ffffff5)" ( (binary_expression "uVar3 != 0x6ffffff5" identifier != number_literal) )) (compound_statement "{\n          if (uVar3 == 2) {\n            uVar3 = *(uint *)(lVar7 + 0x14);\n            if (0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)) {\n              bVar2 = true;\n            }\n          }\n          else {\n            bVar2 = true;\n          }\n          goto LAB_00183ef7;\n        }" { (if_statement "if (uVar3 == 2) {\n            uVar3 = *(uint *)(lVar7 + 0x14);\n            if (0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)) {\n              bVar2 = true;\n            }\n          }\n          else {\n            bVar2 = true;\n          }" if (parenthesized_expression "(uVar3 == 2)" ( (binary_expression "uVar3 == 2" identifier == number_literal) )) (compound_statement "{\n            uVar3 = *(uint *)(lVar7 + 0x14);\n            if (0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)) {\n              bVar2 = true;\n            }\n          }" { (expression_statement "uVar3 = *(uint *)(lVar7 + 0x14);" (assignment_expression "uVar3 = *(uint *)(lVar7 + 0x14)" identifier = (pointer_expression "*(uint *)(lVar7 + 0x14)" * (cast_expression "(uint *)(lVar7 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0x14)" ( (binary_expression "lVar7 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)) {\n              bVar2 = true;\n            }" if (parenthesized_expression "(0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18))" ( (binary_expression "0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)" number_literal < (parenthesized_expression "(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)" ( (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8" (binary_expression "uVar3 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar3 & 0xff0000) >> 8" (parenthesized_expression "(uVar3 & 0xff0000)" ( (binary_expression "uVar3 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar3 & 0xff00) << 8" (parenthesized_expression "(uVar3 & 0xff00)" ( (binary_expression "uVar3 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar3 << 0x18" identifier << number_literal)) ))) )) (compound_statement "{\n              bVar2 = true;\n            }" { (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) })) }) (else_clause "else {\n            bVar2 = true;\n          }" else (compound_statement "{\n            bVar2 = true;\n          }" { (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) }))) (goto_statement "goto LAB_00183ef7;" goto statement_identifier ;) })) (if_statement "if (*(long *)(param_1 + 0x308) != 0) {\n                    \n          FUN_001e9890("../../gold/powerpc.cc",0x95b,"do_read_symbols");\n        }" if (parenthesized_expression "(*(long *)(param_1 + 0x308) != 0)" ( (binary_expression "*(long *)(param_1 + 0x308) != 0" (pointer_expression "*(long *)(param_1 + 0x308)" * (cast_expression "(long *)(param_1 + 0x308)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x308)" ( (binary_expression "param_1 + 0x308" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    \n          FUN_001e9890("../../gold/powerpc.cc",0x95b,"do_read_symbols");\n        }" { (expression_statement "FUN_001e9890("../../gold/powerpc.cc",0x95b,"do_read_symbols");" (call_expression "FUN_001e9890("../../gold/powerpc.cc",0x95b,"do_read_symbols")" identifier (argument_list "("../../gold/powerpc.cc",0x95b,"do_read_symbols")" ( (string_literal ""../../gold/powerpc.cc"" " string_content ") , number_literal , (string_literal ""do_read_symbols"" " string_content ") ))) ;) })) (expression_statement "uVar3 = *(uint *)(lVar7 + 0x10);" (assignment_expression "uVar3 = *(uint *)(lVar7 + 0x10)" identifier = (pointer_expression "*(uint *)(lVar7 + 0x10)" * (cast_expression "(uint *)(lVar7 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0x10)" ( (binary_expression "lVar7 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(uint *)(lVar7 + 0x14);" (assignment_expression "uVar10 = *(uint *)(lVar7 + 0x14)" identifier = (pointer_expression "*(uint *)(lVar7 + 0x14)" * (cast_expression "(uint *)(lVar7 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0x14)" ( (binary_expression "lVar7 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n        ;" (assignment_expression "uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18" identifier = (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8" (binary_expression "uVar10 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar10 & 0xff0000) >> 8" (parenthesized_expression "(uVar10 & 0xff0000)" ( (binary_expression "uVar10 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar10 & 0xff00) << 8" (parenthesized_expression "(uVar10 & 0xff00)" ( (binary_expression "uVar10 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar10 << 0x18" identifier << number_literal))) ;) (if_statement "if (*(long *)(param_1 + 0x28) == 0) goto LAB_001840de;" if (parenthesized_expression "(*(long *)(param_1 + 0x28) == 0)" ( (binary_expression "*(long *)(param_1 + 0x28) == 0" (pointer_expression "*(long *)(param_1 + 0x28)" * (cast_expression "(long *)(param_1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_001840de;" goto statement_identifier ;)) (expression_statement "uVar4 = FUN_001e43a0(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                             uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18,uVar10,1,0);" (assignment_expression "uVar4 = FUN_001e43a0(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                             uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18,uVar10,1,0)" identifier = (call_expression "FUN_001e43a0(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                             uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18,uVar10,1,0)" identifier (argument_list "(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                             uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18,uVar10,1,0)" ( (binary_expression "*(long *)(param_1 + 0x28) + 0x28" (pointer_expression "*(long *)(param_1 + 0x28)" * (cast_expression "(long *)(param_1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) + number_literal) , (pointer_expression "*(undefined8 *)(param_1 + 0x30)" * (cast_expression "(undefined8 *)(param_1 + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) , (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8" (binary_expression "uVar3 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar3 & 0xff0000) >> 8" (parenthesized_expression "(uVar3 & 0xff0000)" ( (binary_expression "uVar3 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar3 & 0xff00) << 8" (parenthesized_expression "(uVar3 & 0xff00)" ( (binary_expression "uVar3 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar3 << 0x18" identifier << number_literal)) , identifier , number_literal , number_literal )))) ;) (expression_statement "uVar5 = FUN_00337280(0x10);" (assignment_expression "uVar5 = FUN_00337280(0x10)" identifier = (call_expression "FUN_00337280(0x10)" identifier (argument_list "(0x10)" ( number_literal )))) ;) (expression_statement "FUN_001cbfe0(uVar5,uVar4,uVar10);" (call_expression "FUN_001cbfe0(uVar5,uVar4,uVar10)" identifier (argument_list "(uVar5,uVar4,uVar10)" ( identifier , identifier , identifier ))) ;) (expression_statement "*(undefined8 *)(param_1 + 0x308) = uVar5;" (assignment_expression "*(undefined8 *)(param_1 + 0x308) = uVar5" (pointer_expression "*(undefined8 *)(param_1 + 0x308)" * (cast_expression "(undefined8 *)(param_1 + 0x308)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x308)" ( (binary_expression "param_1 + 0x308" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;) (expression_statement "lVar7 = lVar7 + 0x28;" (assignment_expression "lVar7 = lVar7 + 0x28" identifier = (binary_expression "lVar7 + 0x28" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar9 < *(uint *)(param_1 + 0x38))" ( (binary_expression "uVar9 < *(uint *)(param_1 + 0x38)" identifier < (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) )) ;) (labeled_statement "LAB_00183f9e:\n      if (bVar2) {\n        return;\n      }" statement_identifier : (if_statement "if (bVar2) {\n        return;\n      }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) }))) })) (expression_statement "plVar1 = *(long **)(param_1 + 0x308);" (assignment_expression "plVar1 = *(long **)(param_1 + 0x308)" identifier = (pointer_expression "*(long **)(param_1 + 0x308)" * (cast_expression "(long **)(param_1 + 0x308)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x308)" ( (binary_expression "param_1 + 0x308" identifier + number_literal) ))))) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (if_statement "if (plVar1 != (long *)0x0) {\n      lVar7 = *plVar1;\n      while( true ) {\n        if (lVar7 != 0) {\n          for (lVar6 = *(long *)(lVar7 + 0xb38); lVar6 != lVar7 + 0xb28; lVar6 = FUN_00339e10(lVar6)\n              ) {\n            lVar8 = *(long *)(lVar6 + 0x28);\n            if (lVar8 != 0) {\n              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }\n              thunk_FUN_00338a50(lVar8,0x28);\n            }\n          }\n          FUN_001bc480(lVar7 + 0xb20,*(undefined8 *)(lVar7 + 0xb30));\n          lVar6 = lVar7 + 0xb20;\n          do {\n            lVar8 = lVar6 + -0x28;\n            if (*(long *)(lVar6 + -0x20) != lVar6 + -0x10) {\n              FUN_00338a50();\n            }\n            lVar6 = lVar8;\n          } while (lVar7 + 8 != lVar8);\n          thunk_FUN_00338a50(lVar7,0xb50);\n        }\n        if (bVar2) break;\n        bVar2 = true;\n        lVar7 = plVar1[1];\n      }\n      thunk_FUN_00338a50(plVar1,0x10);\n    }" if (parenthesized_expression "(plVar1 != (long *)0x0)" ( (binary_expression "plVar1 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      lVar7 = *plVar1;\n      while( true ) {\n        if (lVar7 != 0) {\n          for (lVar6 = *(long *)(lVar7 + 0xb38); lVar6 != lVar7 + 0xb28; lVar6 = FUN_00339e10(lVar6)\n              ) {\n            lVar8 = *(long *)(lVar6 + 0x28);\n            if (lVar8 != 0) {\n              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }\n              thunk_FUN_00338a50(lVar8,0x28);\n            }\n          }\n          FUN_001bc480(lVar7 + 0xb20,*(undefined8 *)(lVar7 + 0xb30));\n          lVar6 = lVar7 + 0xb20;\n          do {\n            lVar8 = lVar6 + -0x28;\n            if (*(long *)(lVar6 + -0x20) != lVar6 + -0x10) {\n              FUN_00338a50();\n            }\n            lVar6 = lVar8;\n          } while (lVar7 + 8 != lVar8);\n          thunk_FUN_00338a50(lVar7,0xb50);\n        }\n        if (bVar2) break;\n        bVar2 = true;\n        lVar7 = plVar1[1];\n      }\n      thunk_FUN_00338a50(plVar1,0x10);\n    }" { (expression_statement "lVar7 = *plVar1;" (assignment_expression "lVar7 = *plVar1" identifier = (pointer_expression "*plVar1" * identifier)) ;) (while_statement "while( true ) {\n        if (lVar7 != 0) {\n          for (lVar6 = *(long *)(lVar7 + 0xb38); lVar6 != lVar7 + 0xb28; lVar6 = FUN_00339e10(lVar6)\n              ) {\n            lVar8 = *(long *)(lVar6 + 0x28);\n            if (lVar8 != 0) {\n              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }\n              thunk_FUN_00338a50(lVar8,0x28);\n            }\n          }\n          FUN_001bc480(lVar7 + 0xb20,*(undefined8 *)(lVar7 + 0xb30));\n          lVar6 = lVar7 + 0xb20;\n          do {\n            lVar8 = lVar6 + -0x28;\n            if (*(long *)(lVar6 + -0x20) != lVar6 + -0x10) {\n              FUN_00338a50();\n            }\n            lVar6 = lVar8;\n          } while (lVar7 + 8 != lVar8);\n          thunk_FUN_00338a50(lVar7,0xb50);\n        }\n        if (bVar2) break;\n        bVar2 = true;\n        lVar7 = plVar1[1];\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        if (lVar7 != 0) {\n          for (lVar6 = *(long *)(lVar7 + 0xb38); lVar6 != lVar7 + 0xb28; lVar6 = FUN_00339e10(lVar6)\n              ) {\n            lVar8 = *(long *)(lVar6 + 0x28);\n            if (lVar8 != 0) {\n              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }\n              thunk_FUN_00338a50(lVar8,0x28);\n            }\n          }\n          FUN_001bc480(lVar7 + 0xb20,*(undefined8 *)(lVar7 + 0xb30));\n          lVar6 = lVar7 + 0xb20;\n          do {\n            lVar8 = lVar6 + -0x28;\n            if (*(long *)(lVar6 + -0x20) != lVar6 + -0x10) {\n              FUN_00338a50();\n            }\n            lVar6 = lVar8;\n          } while (lVar7 + 8 != lVar8);\n          thunk_FUN_00338a50(lVar7,0xb50);\n        }\n        if (bVar2) break;\n        bVar2 = true;\n        lVar7 = plVar1[1];\n      }" { (if_statement "if (lVar7 != 0) {\n          for (lVar6 = *(long *)(lVar7 + 0xb38); lVar6 != lVar7 + 0xb28; lVar6 = FUN_00339e10(lVar6)\n              ) {\n            lVar8 = *(long *)(lVar6 + 0x28);\n            if (lVar8 != 0) {\n              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }\n              thunk_FUN_00338a50(lVar8,0x28);\n            }\n          }\n          FUN_001bc480(lVar7 + 0xb20,*(undefined8 *)(lVar7 + 0xb30));\n          lVar6 = lVar7 + 0xb20;\n          do {\n            lVar8 = lVar6 + -0x28;\n            if (*(long *)(lVar6 + -0x20) != lVar6 + -0x10) {\n              FUN_00338a50();\n            }\n            lVar6 = lVar8;\n          } while (lVar7 + 8 != lVar8);\n          thunk_FUN_00338a50(lVar7,0xb50);\n        }" if (parenthesized_expression "(lVar7 != 0)" ( (binary_expression "lVar7 != 0" identifier != number_literal) )) (compound_statement "{\n          for (lVar6 = *(long *)(lVar7 + 0xb38); lVar6 != lVar7 + 0xb28; lVar6 = FUN_00339e10(lVar6)\n              ) {\n            lVar8 = *(long *)(lVar6 + 0x28);\n            if (lVar8 != 0) {\n              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }\n              thunk_FUN_00338a50(lVar8,0x28);\n            }\n          }\n          FUN_001bc480(lVar7 + 0xb20,*(undefined8 *)(lVar7 + 0xb30));\n          lVar6 = lVar7 + 0xb20;\n          do {\n            lVar8 = lVar6 + -0x28;\n            if (*(long *)(lVar6 + -0x20) != lVar6 + -0x10) {\n              FUN_00338a50();\n            }\n            lVar6 = lVar8;\n          } while (lVar7 + 8 != lVar8);\n          thunk_FUN_00338a50(lVar7,0xb50);\n        }" { (for_statement "for (lVar6 = *(long *)(lVar7 + 0xb38); lVar6 != lVar7 + 0xb28; lVar6 = FUN_00339e10(lVar6)\n              ) {\n            lVar8 = *(long *)(lVar6 + 0x28);\n            if (lVar8 != 0) {\n              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }\n              thunk_FUN_00338a50(lVar8,0x28);\n            }\n          }" for ( (assignment_expression "lVar6 = *(long *)(lVar7 + 0xb38)" identifier = (pointer_expression "*(long *)(lVar7 + 0xb38)" * (cast_expression "(long *)(lVar7 + 0xb38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0xb38)" ( (binary_expression "lVar7 + 0xb38" identifier + number_literal) ))))) ; (binary_expression "lVar6 != lVar7 + 0xb28" identifier != (binary_expression "lVar7 + 0xb28" identifier + number_literal)) ; (assignment_expression "lVar6 = FUN_00339e10(lVar6)" identifier = (call_expression "FUN_00339e10(lVar6)" identifier (argument_list "(lVar6)" ( identifier )))) ) (compound_statement "{\n            lVar8 = *(long *)(lVar6 + 0x28);\n            if (lVar8 != 0) {\n              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }\n              thunk_FUN_00338a50(lVar8,0x28);\n            }\n          }" { (expression_statement "lVar8 = *(long *)(lVar6 + 0x28);" (assignment_expression "lVar8 = *(long *)(lVar6 + 0x28)" identifier = (pointer_expression "*(long *)(lVar6 + 0x28)" * (cast_expression "(long *)(lVar6 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x28)" ( (binary_expression "lVar6 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (lVar8 != 0) {\n              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }\n              thunk_FUN_00338a50(lVar8,0x28);\n            }" if (parenthesized_expression "(lVar8 != 0)" ( (binary_expression "lVar8 != 0" identifier != number_literal) )) (compound_statement "{\n              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }\n              thunk_FUN_00338a50(lVar8,0x28);\n            }" { (if_statement "if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }" if (parenthesized_expression "(*(long *)(lVar8 + 8) != lVar8 + 0x18)" ( (binary_expression "*(long *)(lVar8 + 8) != lVar8 + 0x18" (pointer_expression "*(long *)(lVar8 + 8)" * (cast_expression "(long *)(lVar8 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 8)" ( (binary_expression "lVar8 + 8" identifier + number_literal) )))) != (binary_expression "lVar8 + 0x18" identifier + number_literal)) )) (compound_statement "{\n                FUN_00338a50();\n              }" { (expression_statement "FUN_00338a50();" (call_expression "FUN_00338a50()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "thunk_FUN_00338a50(lVar8,0x28);" (call_expression "thunk_FUN_00338a50(lVar8,0x28)" identifier (argument_list "(lVar8,0x28)" ( identifier , number_literal ))) ;) })) })) (expression_statement "FUN_001bc480(lVar7 + 0xb20,*(undefined8 *)(lVar7 + 0xb30));" (call_expression "FUN_001bc480(lVar7 + 0xb20,*(undefined8 *)(lVar7 + 0xb30))" identifier (argument_list "(lVar7 + 0xb20,*(undefined8 *)(lVar7 + 0xb30))" ( (binary_expression "lVar7 + 0xb20" identifier + number_literal) , (pointer_expression "*(undefined8 *)(lVar7 + 0xb30)" * (cast_expression "(undefined8 *)(lVar7 + 0xb30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0xb30)" ( (binary_expression "lVar7 + 0xb30" identifier + number_literal) )))) ))) ;) (expression_statement "lVar6 = lVar7 + 0xb20;" (assignment_expression "lVar6 = lVar7 + 0xb20" identifier = (binary_expression "lVar7 + 0xb20" identifier + number_literal)) ;) (do_statement "do {\n            lVar8 = lVar6 + -0x28;\n            if (*(long *)(lVar6 + -0x20) != lVar6 + -0x10) {\n              FUN_00338a50();\n            }\n            lVar6 = lVar8;\n          } while (lVar7 + 8 != lVar8);" do (compound_statement "{\n            lVar8 = lVar6 + -0x28;\n            if (*(long *)(lVar6 + -0x20) != lVar6 + -0x10) {\n              FUN_00338a50();\n            }\n            lVar6 = lVar8;\n          }" { (expression_statement "lVar8 = lVar6 + -0x28;" (assignment_expression "lVar8 = lVar6 + -0x28" identifier = (binary_expression "lVar6 + -0x28" identifier + number_literal)) ;) (if_statement "if (*(long *)(lVar6 + -0x20) != lVar6 + -0x10) {\n              FUN_00338a50();\n            }" if (parenthesized_expression "(*(long *)(lVar6 + -0x20) != lVar6 + -0x10)" ( (binary_expression "*(long *)(lVar6 + -0x20) != lVar6 + -0x10" (pointer_expression "*(long *)(lVar6 + -0x20)" * (cast_expression "(long *)(lVar6 + -0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + -0x20)" ( (binary_expression "lVar6 + -0x20" identifier + number_literal) )))) != (binary_expression "lVar6 + -0x10" identifier + number_literal)) )) (compound_statement "{\n              FUN_00338a50();\n            }" { (expression_statement "FUN_00338a50();" (call_expression "FUN_00338a50()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "lVar6 = lVar8;" (assignment_expression "lVar6 = lVar8" identifier = identifier) ;) }) while (parenthesized_expression "(lVar7 + 8 != lVar8)" ( (binary_expression "lVar7 + 8 != lVar8" (binary_expression "lVar7 + 8" identifier + number_literal) != identifier) )) ;) (expression_statement "thunk_FUN_00338a50(lVar7,0xb50);" (call_expression "thunk_FUN_00338a50(lVar7,0xb50)" identifier (argument_list "(lVar7,0xb50)" ( identifier , number_literal ))) ;) })) (if_statement "if (bVar2) break;" if (parenthesized_expression "(bVar2)" ( identifier )) (break_statement "break;" break ;)) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (expression_statement "lVar7 = plVar1[1];" (assignment_expression "lVar7 = plVar1[1]" identifier = (subscript_expression "plVar1[1]" identifier [ number_literal ])) ;) })) (expression_statement "thunk_FUN_00338a50(plVar1,0x10);" (call_expression "thunk_FUN_00338a50(plVar1,0x10)" identifier (argument_list "(plVar1,0x10)" ( identifier , number_literal ))) ;) })) (expression_statement "*(undefined8 *)(param_1 + 0x308) = 0;" (assignment_expression "*(undefined8 *)(param_1 + 0x308) = 0" (pointer_expression "*(undefined8 *)(param_1 + 0x308)" * (cast_expression "(undefined8 *)(param_1 + 0x308)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x308)" ( (binary_expression "param_1 + 0x308" identifier + number_literal) )))) = number_literal) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) ))) (compound_statement { (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (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 = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (break_statement break ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= IDENT) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT)) , IDENT , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (return_statement return ;) }))) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (for_statement for ( (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ; (binary_expression IDENT != (binary_expression IDENT + LIT)) ; (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) })) })) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) != IDENT) )) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) })) (if_statement if (parenthesized_expression ( IDENT )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) })) (return_statement return ;) })))
(function_definition "void FUN_00183e90(long param_1,long *param_2)\n\n{\n  long *plVar1;\n  bool bVar2;\n  uint uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  long lVar6;\n  long lVar7;\n  long lVar8;\n  uint uVar9;\n  uint uVar10;\n  \n  FUN_0024e4f0();\n  if (*(long *)(param_1 + 0x28) == 0) {\nLAB_001840de:\n                    \n    FUN_0016e0c0();\n  }\n  if (*(int *)(*(long *)(param_1 + 0x28) + 0xe4) == 1) {\n    bVar2 = false;\n    lVar7 = *(long *)(*param_2 + 0x10) + 0x28;\n    uVar9 = 1;\n    if (1 < *(uint *)(param_1 + 0x38)) {\n      do {\n        while( true ) {\n          uVar3 = *(uint *)(lVar7 + 4);\n          uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n          if (uVar3 != 3) break;\nLAB_00183ef7:\n          uVar9 = uVar9 + 1;\n          lVar7 = lVar7 + 0x28;\n          if (*(uint *)(param_1 + 0x38) <= uVar9) goto LAB_00183f9e;\n        }\n        if (uVar3 != 0x6ffffff5) {\n          if (uVar3 == 2) {\n            uVar3 = *(uint *)(lVar7 + 0x14);\n            if (0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)) {\n              bVar2 = true;\n            }\n          }\n          else {\n            bVar2 = true;\n          }\n          goto LAB_00183ef7;\n        }\n        if (*(long *)(param_1 + 0x308) != 0) {\n                    \n          FUN_001e9890("../../gold/powerpc.cc",0x95b,"do_read_symbols");\n        }\n        uVar3 = *(uint *)(lVar7 + 0x10);\n        uVar10 = *(uint *)(lVar7 + 0x14);\n        uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n        ;\n        if (*(long *)(param_1 + 0x28) == 0) goto LAB_001840de;\n        uVar4 = FUN_001e43a0(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                             uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18,uVar10,1,0);\n        uVar5 = FUN_00337280(0x10);\n                    \n        FUN_001cbfe0(uVar5,uVar4,uVar10);\n        *(undefined8 *)(param_1 + 0x308) = uVar5;\n        uVar9 = uVar9 + 1;\n        lVar7 = lVar7 + 0x28;\n      } while (uVar9 < *(uint *)(param_1 + 0x38));\nLAB_00183f9e:\n      if (bVar2) {\n        return;\n      }\n    }\n    plVar1 = *(long **)(param_1 + 0x308);\n    bVar2 = false;\n    if (plVar1 != (long *)0x0) {\n      lVar7 = *plVar1;\n      while( true ) {\n        if (lVar7 != 0) {\n          for (lVar6 = *(long *)(lVar7 + 0xb38); lVar6 != lVar7 + 0xb28; lVar6 = FUN_00339e10(lVar6)\n              ) {\n            lVar8 = *(long *)(lVar6 + 0x28);\n            if (lVar8 != 0) {\n              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }\n              thunk_FUN_00338a50(lVar8,0x28);\n            }\n          }\n          FUN_001bc480(lVar7 + 0xb20,*(undefined8 *)(lVar7 + 0xb30));\n          lVar6 = lVar7 + 0xb20;\n          do {\n            lVar8 = lVar6 + -0x28;\n            if (*(long *)(lVar6 + -0x20) != lVar6 + -0x10) {\n              FUN_00338a50();\n            }\n            lVar6 = lVar8;\n          } while (lVar7 + 8 != lVar8);\n          thunk_FUN_00338a50(lVar7,0xb50);\n        }\n        if (bVar2) break;\n        bVar2 = true;\n        lVar7 = plVar1[1];\n      }\n      thunk_FUN_00338a50(plVar1,0x10);\n    }\n    *(undefined8 *)(param_1 + 0x308) = 0;\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00183e90(long param_1,long *param_2)" (identifier "FUN_00183e90") (parameter_list "(long param_1,long *param_2)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "long *param_2" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  long *plVar1;\n  bool bVar2;\n  uint uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  long lVar6;\n  long lVar7;\n  long lVar8;\n  uint uVar9;\n  uint uVar10;\n  \n  FUN_0024e4f0();\n  if (*(long *)(param_1 + 0x28) == 0) {\nLAB_001840de:\n                    \n    FUN_0016e0c0();\n  }\n  if (*(int *)(*(long *)(param_1 + 0x28) + 0xe4) == 1) {\n    bVar2 = false;\n    lVar7 = *(long *)(*param_2 + 0x10) + 0x28;\n    uVar9 = 1;\n    if (1 < *(uint *)(param_1 + 0x38)) {\n      do {\n        while( true ) {\n          uVar3 = *(uint *)(lVar7 + 4);\n          uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n          if (uVar3 != 3) break;\nLAB_00183ef7:\n          uVar9 = uVar9 + 1;\n          lVar7 = lVar7 + 0x28;\n          if (*(uint *)(param_1 + 0x38) <= uVar9) goto LAB_00183f9e;\n        }\n        if (uVar3 != 0x6ffffff5) {\n          if (uVar3 == 2) {\n            uVar3 = *(uint *)(lVar7 + 0x14);\n            if (0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)) {\n              bVar2 = true;\n            }\n          }\n          else {\n            bVar2 = true;\n          }\n          goto LAB_00183ef7;\n        }\n        if (*(long *)(param_1 + 0x308) != 0) {\n                    \n          FUN_001e9890("../../gold/powerpc.cc",0x95b,"do_read_symbols");\n        }\n        uVar3 = *(uint *)(lVar7 + 0x10);\n        uVar10 = *(uint *)(lVar7 + 0x14);\n        uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n        ;\n        if (*(long *)(param_1 + 0x28) == 0) goto LAB_001840de;\n        uVar4 = FUN_001e43a0(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                             uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18,uVar10,1,0);\n        uVar5 = FUN_00337280(0x10);\n                    \n        FUN_001cbfe0(uVar5,uVar4,uVar10);\n        *(undefined8 *)(param_1 + 0x308) = uVar5;\n        uVar9 = uVar9 + 1;\n        lVar7 = lVar7 + 0x28;\n      } while (uVar9 < *(uint *)(param_1 + 0x38));\nLAB_00183f9e:\n      if (bVar2) {\n        return;\n      }\n    }\n    plVar1 = *(long **)(param_1 + 0x308);\n    bVar2 = false;\n    if (plVar1 != (long *)0x0) {\n      lVar7 = *plVar1;\n      while( true ) {\n        if (lVar7 != 0) {\n          for (lVar6 = *(long *)(lVar7 + 0xb38); lVar6 != lVar7 + 0xb28; lVar6 = FUN_00339e10(lVar6)\n              ) {\n            lVar8 = *(long *)(lVar6 + 0x28);\n            if (lVar8 != 0) {\n              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }\n              thunk_FUN_00338a50(lVar8,0x28);\n            }\n          }\n          FUN_001bc480(lVar7 + 0xb20,*(undefined8 *)(lVar7 + 0xb30));\n          lVar6 = lVar7 + 0xb20;\n          do {\n            lVar8 = lVar6 + -0x28;\n            if (*(long *)(lVar6 + -0x20) != lVar6 + -0x10) {\n              FUN_00338a50();\n            }\n            lVar6 = lVar8;\n          } while (lVar7 + 8 != lVar8);\n          thunk_FUN_00338a50(lVar7,0xb50);\n        }\n        if (bVar2) break;\n        bVar2 = true;\n        lVar7 = plVar1[1];\n      }\n      thunk_FUN_00338a50(plVar1,0x10);\n    }\n    *(undefined8 *)(param_1 + 0x308) = 0;\n  }\n  return;\n}" ({ "{") (declaration "long *plVar1;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar1" (* "*") (identifier "plVar1")) (; ";")) (declaration "bool bVar2;" (primitive_type "bool") (identifier "bVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "undefined8 uVar4;" (type_identifier "undefined8") (identifier "uVar4") (; ";")) (declaration "undefined8 uVar5;" (type_identifier "undefined8") (identifier "uVar5") (; ";")) (declaration "long lVar6;" (sized_type_specifier "long" (long "long")) (identifier "lVar6") (; ";")) (declaration "long lVar7;" (sized_type_specifier "long" (long "long")) (identifier "lVar7") (; ";")) (declaration "long lVar8;" (sized_type_specifier "long" (long "long")) (identifier "lVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (expression_statement "FUN_0024e4f0();" (call_expression "FUN_0024e4f0()" (identifier "FUN_0024e4f0") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (*(long *)(param_1 + 0x28) == 0) {\nLAB_001840de:\n                    \n    FUN_0016e0c0();\n  }" (if "if") (parenthesized_expression "(*(long *)(param_1 + 0x28) == 0)" (( "(") (binary_expression "*(long *)(param_1 + 0x28) == 0" (pointer_expression "*(long *)(param_1 + 0x28)" (* "*") (cast_expression "(long *)(param_1 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_001840de:\n                    \n    FUN_0016e0c0();\n  }" ({ "{") (labeled_statement "LAB_001840de:\n                    \n    FUN_0016e0c0();" (statement_identifier "LAB_001840de") (: ":") (expression_statement "FUN_0016e0c0();" (call_expression "FUN_0016e0c0()" (identifier "FUN_0016e0c0") (argument_list "()" (( "(") () ")"))) (; ";"))) (} "}"))) (if_statement "if (*(int *)(*(long *)(param_1 + 0x28) + 0xe4) == 1) {\n    bVar2 = false;\n    lVar7 = *(long *)(*param_2 + 0x10) + 0x28;\n    uVar9 = 1;\n    if (1 < *(uint *)(param_1 + 0x38)) {\n      do {\n        while( true ) {\n          uVar3 = *(uint *)(lVar7 + 4);\n          uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n          if (uVar3 != 3) break;\nLAB_00183ef7:\n          uVar9 = uVar9 + 1;\n          lVar7 = lVar7 + 0x28;\n          if (*(uint *)(param_1 + 0x38) <= uVar9) goto LAB_00183f9e;\n        }\n        if (uVar3 != 0x6ffffff5) {\n          if (uVar3 == 2) {\n            uVar3 = *(uint *)(lVar7 + 0x14);\n            if (0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)) {\n              bVar2 = true;\n            }\n          }\n          else {\n            bVar2 = true;\n          }\n          goto LAB_00183ef7;\n        }\n        if (*(long *)(param_1 + 0x308) != 0) {\n                    \n          FUN_001e9890("../../gold/powerpc.cc",0x95b,"do_read_symbols");\n        }\n        uVar3 = *(uint *)(lVar7 + 0x10);\n        uVar10 = *(uint *)(lVar7 + 0x14);\n        uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n        ;\n        if (*(long *)(param_1 + 0x28) == 0) goto LAB_001840de;\n        uVar4 = FUN_001e43a0(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                             uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18,uVar10,1,0);\n        uVar5 = FUN_00337280(0x10);\n                    \n        FUN_001cbfe0(uVar5,uVar4,uVar10);\n        *(undefined8 *)(param_1 + 0x308) = uVar5;\n        uVar9 = uVar9 + 1;\n        lVar7 = lVar7 + 0x28;\n      } while (uVar9 < *(uint *)(param_1 + 0x38));\nLAB_00183f9e:\n      if (bVar2) {\n        return;\n      }\n    }\n    plVar1 = *(long **)(param_1 + 0x308);\n    bVar2 = false;\n    if (plVar1 != (long *)0x0) {\n      lVar7 = *plVar1;\n      while( true ) {\n        if (lVar7 != 0) {\n          for (lVar6 = *(long *)(lVar7 + 0xb38); lVar6 != lVar7 + 0xb28; lVar6 = FUN_00339e10(lVar6)\n              ) {\n            lVar8 = *(long *)(lVar6 + 0x28);\n            if (lVar8 != 0) {\n              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }\n              thunk_FUN_00338a50(lVar8,0x28);\n            }\n          }\n          FUN_001bc480(lVar7 + 0xb20,*(undefined8 *)(lVar7 + 0xb30));\n          lVar6 = lVar7 + 0xb20;\n          do {\n            lVar8 = lVar6 + -0x28;\n            if (*(long *)(lVar6 + -0x20) != lVar6 + -0x10) {\n              FUN_00338a50();\n            }\n            lVar6 = lVar8;\n          } while (lVar7 + 8 != lVar8);\n          thunk_FUN_00338a50(lVar7,0xb50);\n        }\n        if (bVar2) break;\n        bVar2 = true;\n        lVar7 = plVar1[1];\n      }\n      thunk_FUN_00338a50(plVar1,0x10);\n    }\n    *(undefined8 *)(param_1 + 0x308) = 0;\n  }" (if "if") (parenthesized_expression "(*(int *)(*(long *)(param_1 + 0x28) + 0xe4) == 1)" (( "(") (binary_expression "*(int *)(*(long *)(param_1 + 0x28) + 0xe4) == 1" (pointer_expression "*(int *)(*(long *)(param_1 + 0x28) + 0xe4)" (* "*") (cast_expression "(int *)(*(long *)(param_1 + 0x28) + 0xe4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_1 + 0x28) + 0xe4)" (( "(") (binary_expression "*(long *)(param_1 + 0x28) + 0xe4" (pointer_expression "*(long *)(param_1 + 0x28)" (* "*") (cast_expression "(long *)(param_1 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (+ "+") (number_literal "0xe4")) () ")")))) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n    bVar2 = false;\n    lVar7 = *(long *)(*param_2 + 0x10) + 0x28;\n    uVar9 = 1;\n    if (1 < *(uint *)(param_1 + 0x38)) {\n      do {\n        while( true ) {\n          uVar3 = *(uint *)(lVar7 + 4);\n          uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n          if (uVar3 != 3) break;\nLAB_00183ef7:\n          uVar9 = uVar9 + 1;\n          lVar7 = lVar7 + 0x28;\n          if (*(uint *)(param_1 + 0x38) <= uVar9) goto LAB_00183f9e;\n        }\n        if (uVar3 != 0x6ffffff5) {\n          if (uVar3 == 2) {\n            uVar3 = *(uint *)(lVar7 + 0x14);\n            if (0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)) {\n              bVar2 = true;\n            }\n          }\n          else {\n            bVar2 = true;\n          }\n          goto LAB_00183ef7;\n        }\n        if (*(long *)(param_1 + 0x308) != 0) {\n                    \n          FUN_001e9890("../../gold/powerpc.cc",0x95b,"do_read_symbols");\n        }\n        uVar3 = *(uint *)(lVar7 + 0x10);\n        uVar10 = *(uint *)(lVar7 + 0x14);\n        uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n        ;\n        if (*(long *)(param_1 + 0x28) == 0) goto LAB_001840de;\n        uVar4 = FUN_001e43a0(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                             uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18,uVar10,1,0);\n        uVar5 = FUN_00337280(0x10);\n                    \n        FUN_001cbfe0(uVar5,uVar4,uVar10);\n        *(undefined8 *)(param_1 + 0x308) = uVar5;\n        uVar9 = uVar9 + 1;\n        lVar7 = lVar7 + 0x28;\n      } while (uVar9 < *(uint *)(param_1 + 0x38));\nLAB_00183f9e:\n      if (bVar2) {\n        return;\n      }\n    }\n    plVar1 = *(long **)(param_1 + 0x308);\n    bVar2 = false;\n    if (plVar1 != (long *)0x0) {\n      lVar7 = *plVar1;\n      while( true ) {\n        if (lVar7 != 0) {\n          for (lVar6 = *(long *)(lVar7 + 0xb38); lVar6 != lVar7 + 0xb28; lVar6 = FUN_00339e10(lVar6)\n              ) {\n            lVar8 = *(long *)(lVar6 + 0x28);\n            if (lVar8 != 0) {\n              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }\n              thunk_FUN_00338a50(lVar8,0x28);\n            }\n          }\n          FUN_001bc480(lVar7 + 0xb20,*(undefined8 *)(lVar7 + 0xb30));\n          lVar6 = lVar7 + 0xb20;\n          do {\n            lVar8 = lVar6 + -0x28;\n            if (*(long *)(lVar6 + -0x20) != lVar6 + -0x10) {\n              FUN_00338a50();\n            }\n            lVar6 = lVar8;\n          } while (lVar7 + 8 != lVar8);\n          thunk_FUN_00338a50(lVar7,0xb50);\n        }\n        if (bVar2) break;\n        bVar2 = true;\n        lVar7 = plVar1[1];\n      }\n      thunk_FUN_00338a50(plVar1,0x10);\n    }\n    *(undefined8 *)(param_1 + 0x308) = 0;\n  }" ({ "{") (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" (identifier "bVar2") (= "=") (false "false")) (; ";")) (expression_statement "lVar7 = *(long *)(*param_2 + 0x10) + 0x28;" (assignment_expression "lVar7 = *(long *)(*param_2 + 0x10) + 0x28" (identifier "lVar7") (= "=") (binary_expression "*(long *)(*param_2 + 0x10) + 0x28" (pointer_expression "*(long *)(*param_2 + 0x10)" (* "*") (cast_expression "(long *)(*param_2 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_2 + 0x10)" (( "(") (binary_expression "*param_2 + 0x10" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x28"))) (; ";")) (expression_statement "uVar9 = 1;" (assignment_expression "uVar9 = 1" (identifier "uVar9") (= "=") (number_literal "1")) (; ";")) (if_statement "if (1 < *(uint *)(param_1 + 0x38)) {\n      do {\n        while( true ) {\n          uVar3 = *(uint *)(lVar7 + 4);\n          uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n          if (uVar3 != 3) break;\nLAB_00183ef7:\n          uVar9 = uVar9 + 1;\n          lVar7 = lVar7 + 0x28;\n          if (*(uint *)(param_1 + 0x38) <= uVar9) goto LAB_00183f9e;\n        }\n        if (uVar3 != 0x6ffffff5) {\n          if (uVar3 == 2) {\n            uVar3 = *(uint *)(lVar7 + 0x14);\n            if (0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)) {\n              bVar2 = true;\n            }\n          }\n          else {\n            bVar2 = true;\n          }\n          goto LAB_00183ef7;\n        }\n        if (*(long *)(param_1 + 0x308) != 0) {\n                    \n          FUN_001e9890("../../gold/powerpc.cc",0x95b,"do_read_symbols");\n        }\n        uVar3 = *(uint *)(lVar7 + 0x10);\n        uVar10 = *(uint *)(lVar7 + 0x14);\n        uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n        ;\n        if (*(long *)(param_1 + 0x28) == 0) goto LAB_001840de;\n        uVar4 = FUN_001e43a0(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                             uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18,uVar10,1,0);\n        uVar5 = FUN_00337280(0x10);\n                    \n        FUN_001cbfe0(uVar5,uVar4,uVar10);\n        *(undefined8 *)(param_1 + 0x308) = uVar5;\n        uVar9 = uVar9 + 1;\n        lVar7 = lVar7 + 0x28;\n      } while (uVar9 < *(uint *)(param_1 + 0x38));\nLAB_00183f9e:\n      if (bVar2) {\n        return;\n      }\n    }" (if "if") (parenthesized_expression "(1 < *(uint *)(param_1 + 0x38))" (( "(") (binary_expression "1 < *(uint *)(param_1 + 0x38)" (number_literal "1") (< "<") (pointer_expression "*(uint *)(param_1 + 0x38)" (* "*") (cast_expression "(uint *)(param_1 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")"))))) () ")")) (compound_statement "{\n      do {\n        while( true ) {\n          uVar3 = *(uint *)(lVar7 + 4);\n          uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n          if (uVar3 != 3) break;\nLAB_00183ef7:\n          uVar9 = uVar9 + 1;\n          lVar7 = lVar7 + 0x28;\n          if (*(uint *)(param_1 + 0x38) <= uVar9) goto LAB_00183f9e;\n        }\n        if (uVar3 != 0x6ffffff5) {\n          if (uVar3 == 2) {\n            uVar3 = *(uint *)(lVar7 + 0x14);\n            if (0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)) {\n              bVar2 = true;\n            }\n          }\n          else {\n            bVar2 = true;\n          }\n          goto LAB_00183ef7;\n        }\n        if (*(long *)(param_1 + 0x308) != 0) {\n                    \n          FUN_001e9890("../../gold/powerpc.cc",0x95b,"do_read_symbols");\n        }\n        uVar3 = *(uint *)(lVar7 + 0x10);\n        uVar10 = *(uint *)(lVar7 + 0x14);\n        uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n        ;\n        if (*(long *)(param_1 + 0x28) == 0) goto LAB_001840de;\n        uVar4 = FUN_001e43a0(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                             uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18,uVar10,1,0);\n        uVar5 = FUN_00337280(0x10);\n                    \n        FUN_001cbfe0(uVar5,uVar4,uVar10);\n        *(undefined8 *)(param_1 + 0x308) = uVar5;\n        uVar9 = uVar9 + 1;\n        lVar7 = lVar7 + 0x28;\n      } while (uVar9 < *(uint *)(param_1 + 0x38));\nLAB_00183f9e:\n      if (bVar2) {\n        return;\n      }\n    }" ({ "{") (do_statement "do {\n        while( true ) {\n          uVar3 = *(uint *)(lVar7 + 4);\n          uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n          if (uVar3 != 3) break;\nLAB_00183ef7:\n          uVar9 = uVar9 + 1;\n          lVar7 = lVar7 + 0x28;\n          if (*(uint *)(param_1 + 0x38) <= uVar9) goto LAB_00183f9e;\n        }\n        if (uVar3 != 0x6ffffff5) {\n          if (uVar3 == 2) {\n            uVar3 = *(uint *)(lVar7 + 0x14);\n            if (0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)) {\n              bVar2 = true;\n            }\n          }\n          else {\n            bVar2 = true;\n          }\n          goto LAB_00183ef7;\n        }\n        if (*(long *)(param_1 + 0x308) != 0) {\n                    \n          FUN_001e9890("../../gold/powerpc.cc",0x95b,"do_read_symbols");\n        }\n        uVar3 = *(uint *)(lVar7 + 0x10);\n        uVar10 = *(uint *)(lVar7 + 0x14);\n        uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n        ;\n        if (*(long *)(param_1 + 0x28) == 0) goto LAB_001840de;\n        uVar4 = FUN_001e43a0(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                             uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18,uVar10,1,0);\n        uVar5 = FUN_00337280(0x10);\n                    \n        FUN_001cbfe0(uVar5,uVar4,uVar10);\n        *(undefined8 *)(param_1 + 0x308) = uVar5;\n        uVar9 = uVar9 + 1;\n        lVar7 = lVar7 + 0x28;\n      } while (uVar9 < *(uint *)(param_1 + 0x38));" (do "do") (compound_statement "{\n        while( true ) {\n          uVar3 = *(uint *)(lVar7 + 4);\n          uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n          if (uVar3 != 3) break;\nLAB_00183ef7:\n          uVar9 = uVar9 + 1;\n          lVar7 = lVar7 + 0x28;\n          if (*(uint *)(param_1 + 0x38) <= uVar9) goto LAB_00183f9e;\n        }\n        if (uVar3 != 0x6ffffff5) {\n          if (uVar3 == 2) {\n            uVar3 = *(uint *)(lVar7 + 0x14);\n            if (0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)) {\n              bVar2 = true;\n            }\n          }\n          else {\n            bVar2 = true;\n          }\n          goto LAB_00183ef7;\n        }\n        if (*(long *)(param_1 + 0x308) != 0) {\n                    \n          FUN_001e9890("../../gold/powerpc.cc",0x95b,"do_read_symbols");\n        }\n        uVar3 = *(uint *)(lVar7 + 0x10);\n        uVar10 = *(uint *)(lVar7 + 0x14);\n        uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n        ;\n        if (*(long *)(param_1 + 0x28) == 0) goto LAB_001840de;\n        uVar4 = FUN_001e43a0(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                             uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18,uVar10,1,0);\n        uVar5 = FUN_00337280(0x10);\n                    \n        FUN_001cbfe0(uVar5,uVar4,uVar10);\n        *(undefined8 *)(param_1 + 0x308) = uVar5;\n        uVar9 = uVar9 + 1;\n        lVar7 = lVar7 + 0x28;\n      }" ({ "{") (while_statement "while( true ) {\n          uVar3 = *(uint *)(lVar7 + 4);\n          uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n          if (uVar3 != 3) break;\nLAB_00183ef7:\n          uVar9 = uVar9 + 1;\n          lVar7 = lVar7 + 0x28;\n          if (*(uint *)(param_1 + 0x38) <= uVar9) goto LAB_00183f9e;\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          uVar3 = *(uint *)(lVar7 + 4);\n          uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n          if (uVar3 != 3) break;\nLAB_00183ef7:\n          uVar9 = uVar9 + 1;\n          lVar7 = lVar7 + 0x28;\n          if (*(uint *)(param_1 + 0x38) <= uVar9) goto LAB_00183f9e;\n        }" ({ "{") (expression_statement "uVar3 = *(uint *)(lVar7 + 4);" (assignment_expression "uVar3 = *(uint *)(lVar7 + 4)" (identifier "uVar3") (= "=") (pointer_expression "*(uint *)(lVar7 + 4)" (* "*") (cast_expression "(uint *)(lVar7 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar7 + 4)" (( "(") (binary_expression "lVar7 + 4" (identifier "lVar7") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;" (assignment_expression "uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18" (identifier "uVar3") (= "=") (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8" (binary_expression "uVar3 >> 0x18" (identifier "uVar3") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar3 & 0xff0000) >> 8" (parenthesized_expression "(uVar3 & 0xff0000)" (( "(") (binary_expression "uVar3 & 0xff0000" (identifier "uVar3") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar3 & 0xff00) << 8" (parenthesized_expression "(uVar3 & 0xff00)" (( "(") (binary_expression "uVar3 & 0xff00" (identifier "uVar3") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar3 << 0x18" (identifier "uVar3") (<< "<<") (number_literal "0x18")))) (; ";")) (if_statement "if (uVar3 != 3) break;" (if "if") (parenthesized_expression "(uVar3 != 3)" (( "(") (binary_expression "uVar3 != 3" (identifier "uVar3") (!= "!=") (number_literal "3")) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_00183ef7:\n          uVar9 = uVar9 + 1;" (statement_identifier "LAB_00183ef7") (: ":") (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" (identifier "uVar9") (= "=") (binary_expression "uVar9 + 1" (identifier "uVar9") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "lVar7 = lVar7 + 0x28;" (assignment_expression "lVar7 = lVar7 + 0x28" (identifier "lVar7") (= "=") (binary_expression "lVar7 + 0x28" (identifier "lVar7") (+ "+") (number_literal "0x28"))) (; ";")) (if_statement "if (*(uint *)(param_1 + 0x38) <= uVar9) goto LAB_00183f9e;" (if "if") (parenthesized_expression "(*(uint *)(param_1 + 0x38) <= uVar9)" (( "(") (binary_expression "*(uint *)(param_1 + 0x38) <= uVar9" (pointer_expression "*(uint *)(param_1 + 0x38)" (* "*") (cast_expression "(uint *)(param_1 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (<= "<=") (identifier "uVar9")) () ")")) (goto_statement "goto LAB_00183f9e;" (goto "goto") (statement_identifier "LAB_00183f9e") (; ";"))) (} "}"))) (if_statement "if (uVar3 != 0x6ffffff5) {\n          if (uVar3 == 2) {\n            uVar3 = *(uint *)(lVar7 + 0x14);\n            if (0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)) {\n              bVar2 = true;\n            }\n          }\n          else {\n            bVar2 = true;\n          }\n          goto LAB_00183ef7;\n        }" (if "if") (parenthesized_expression "(uVar3 != 0x6ffffff5)" (( "(") (binary_expression "uVar3 != 0x6ffffff5" (identifier "uVar3") (!= "!=") (number_literal "0x6ffffff5")) () ")")) (compound_statement "{\n          if (uVar3 == 2) {\n            uVar3 = *(uint *)(lVar7 + 0x14);\n            if (0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)) {\n              bVar2 = true;\n            }\n          }\n          else {\n            bVar2 = true;\n          }\n          goto LAB_00183ef7;\n        }" ({ "{") (if_statement "if (uVar3 == 2) {\n            uVar3 = *(uint *)(lVar7 + 0x14);\n            if (0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)) {\n              bVar2 = true;\n            }\n          }\n          else {\n            bVar2 = true;\n          }" (if "if") (parenthesized_expression "(uVar3 == 2)" (( "(") (binary_expression "uVar3 == 2" (identifier "uVar3") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n            uVar3 = *(uint *)(lVar7 + 0x14);\n            if (0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)) {\n              bVar2 = true;\n            }\n          }" ({ "{") (expression_statement "uVar3 = *(uint *)(lVar7 + 0x14);" (assignment_expression "uVar3 = *(uint *)(lVar7 + 0x14)" (identifier "uVar3") (= "=") (pointer_expression "*(uint *)(lVar7 + 0x14)" (* "*") (cast_expression "(uint *)(lVar7 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar7 + 0x14)" (( "(") (binary_expression "lVar7 + 0x14" (identifier "lVar7") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)) {\n              bVar2 = true;\n            }" (if "if") (parenthesized_expression "(0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18))" (( "(") (binary_expression "0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)" (number_literal "0x10") (< "<") (parenthesized_expression "(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18)" (( "(") (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                       uVar3 << 0x18" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8" (binary_expression "uVar3 >> 0x18" (identifier "uVar3") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar3 & 0xff0000) >> 8" (parenthesized_expression "(uVar3 & 0xff0000)" (( "(") (binary_expression "uVar3 & 0xff0000" (identifier "uVar3") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar3 & 0xff00) << 8" (parenthesized_expression "(uVar3 & 0xff00)" (( "(") (binary_expression "uVar3 & 0xff00" (identifier "uVar3") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar3 << 0x18" (identifier "uVar3") (<< "<<") (number_literal "0x18"))) () ")"))) () ")")) (compound_statement "{\n              bVar2 = true;\n            }" ({ "{") (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" (identifier "bVar2") (= "=") (true "true")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            bVar2 = true;\n          }" (else "else") (compound_statement "{\n            bVar2 = true;\n          }" ({ "{") (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" (identifier "bVar2") (= "=") (true "true")) (; ";")) (} "}")))) (goto_statement "goto LAB_00183ef7;" (goto "goto") (statement_identifier "LAB_00183ef7") (; ";")) (} "}"))) (if_statement "if (*(long *)(param_1 + 0x308) != 0) {\n                    \n          FUN_001e9890("../../gold/powerpc.cc",0x95b,"do_read_symbols");\n        }" (if "if") (parenthesized_expression "(*(long *)(param_1 + 0x308) != 0)" (( "(") (binary_expression "*(long *)(param_1 + 0x308) != 0" (pointer_expression "*(long *)(param_1 + 0x308)" (* "*") (cast_expression "(long *)(param_1 + 0x308)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x308)" (( "(") (binary_expression "param_1 + 0x308" (identifier "param_1") (+ "+") (number_literal "0x308")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n          FUN_001e9890("../../gold/powerpc.cc",0x95b,"do_read_symbols");\n        }" ({ "{") (expression_statement "FUN_001e9890("../../gold/powerpc.cc",0x95b,"do_read_symbols");" (call_expression "FUN_001e9890("../../gold/powerpc.cc",0x95b,"do_read_symbols")" (identifier "FUN_001e9890") (argument_list "("../../gold/powerpc.cc",0x95b,"do_read_symbols")" (( "(") (string_literal ""../../gold/powerpc.cc"" (" """) (string_content "../../gold/powerpc.cc") (" """)) (, ",") (number_literal "0x95b") (, ",") (string_literal ""do_read_symbols"" (" """) (string_content "do_read_symbols") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar3 = *(uint *)(lVar7 + 0x10);" (assignment_expression "uVar3 = *(uint *)(lVar7 + 0x10)" (identifier "uVar3") (= "=") (pointer_expression "*(uint *)(lVar7 + 0x10)" (* "*") (cast_expression "(uint *)(lVar7 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar7 + 0x10)" (( "(") (binary_expression "lVar7 + 0x10" (identifier "lVar7") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar10 = *(uint *)(lVar7 + 0x14);" (assignment_expression "uVar10 = *(uint *)(lVar7 + 0x14)" (identifier "uVar10") (= "=") (pointer_expression "*(uint *)(lVar7 + 0x14)" (* "*") (cast_expression "(uint *)(lVar7 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar7 + 0x14)" (( "(") (binary_expression "lVar7 + 0x14" (identifier "lVar7") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18\n        ;" (assignment_expression "uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18" (identifier "uVar10") (= "=") (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8" (binary_expression "uVar10 >> 0x18" (identifier "uVar10") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar10 & 0xff0000) >> 8" (parenthesized_expression "(uVar10 & 0xff0000)" (( "(") (binary_expression "uVar10 & 0xff0000" (identifier "uVar10") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar10 & 0xff00) << 8" (parenthesized_expression "(uVar10 & 0xff00)" (( "(") (binary_expression "uVar10 & 0xff00" (identifier "uVar10") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar10 << 0x18" (identifier "uVar10") (<< "<<") (number_literal "0x18")))) (; ";")) (if_statement "if (*(long *)(param_1 + 0x28) == 0) goto LAB_001840de;" (if "if") (parenthesized_expression "(*(long *)(param_1 + 0x28) == 0)" (( "(") (binary_expression "*(long *)(param_1 + 0x28) == 0" (pointer_expression "*(long *)(param_1 + 0x28)" (* "*") (cast_expression "(long *)(param_1 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001840de;" (goto "goto") (statement_identifier "LAB_001840de") (; ";"))) (expression_statement "uVar4 = FUN_001e43a0(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                             uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18,uVar10,1,0);" (assignment_expression "uVar4 = FUN_001e43a0(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                             uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18,uVar10,1,0)" (identifier "uVar4") (= "=") (call_expression "FUN_001e43a0(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                             uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18,uVar10,1,0)" (identifier "FUN_001e43a0") (argument_list "(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                             uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18,uVar10,1,0)" (( "(") (binary_expression "*(long *)(param_1 + 0x28) + 0x28" (pointer_expression "*(long *)(param_1 + 0x28)" (* "*") (cast_expression "(long *)(param_1 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (+ "+") (number_literal "0x28")) (, ",") (pointer_expression "*(undefined8 *)(param_1 + 0x30)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x30)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")")))) (, ",") (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |\n                             uVar3 << 0x18" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8" (binary_expression "uVar3 >> 0x18" (identifier "uVar3") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar3 & 0xff0000) >> 8" (parenthesized_expression "(uVar3 & 0xff0000)" (( "(") (binary_expression "uVar3 & 0xff0000" (identifier "uVar3") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar3 & 0xff00) << 8" (parenthesized_expression "(uVar3 & 0xff00)" (( "(") (binary_expression "uVar3 & 0xff00" (identifier "uVar3") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar3 << 0x18" (identifier "uVar3") (<< "<<") (number_literal "0x18"))) (, ",") (identifier "uVar10") (, ",") (number_literal "1") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "uVar5 = FUN_00337280(0x10);" (assignment_expression "uVar5 = FUN_00337280(0x10)" (identifier "uVar5") (= "=") (call_expression "FUN_00337280(0x10)" (identifier "FUN_00337280") (argument_list "(0x10)" (( "(") (number_literal "0x10") () ")")))) (; ";")) (expression_statement "FUN_001cbfe0(uVar5,uVar4,uVar10);" (call_expression "FUN_001cbfe0(uVar5,uVar4,uVar10)" (identifier "FUN_001cbfe0") (argument_list "(uVar5,uVar4,uVar10)" (( "(") (identifier "uVar5") (, ",") (identifier "uVar4") (, ",") (identifier "uVar10") () ")"))) (; ";")) (expression_statement "*(undefined8 *)(param_1 + 0x308) = uVar5;" (assignment_expression "*(undefined8 *)(param_1 + 0x308) = uVar5" (pointer_expression "*(undefined8 *)(param_1 + 0x308)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x308)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x308)" (( "(") (binary_expression "param_1 + 0x308" (identifier "param_1") (+ "+") (number_literal "0x308")) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" (identifier "uVar9") (= "=") (binary_expression "uVar9 + 1" (identifier "uVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "lVar7 = lVar7 + 0x28;" (assignment_expression "lVar7 = lVar7 + 0x28" (identifier "lVar7") (= "=") (binary_expression "lVar7 + 0x28" (identifier "lVar7") (+ "+") (number_literal "0x28"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar9 < *(uint *)(param_1 + 0x38))" (( "(") (binary_expression "uVar9 < *(uint *)(param_1 + 0x38)" (identifier "uVar9") (< "<") (pointer_expression "*(uint *)(param_1 + 0x38)" (* "*") (cast_expression "(uint *)(param_1 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")"))))) () ")")) (; ";")) (labeled_statement "LAB_00183f9e:\n      if (bVar2) {\n        return;\n      }" (statement_identifier "LAB_00183f9e") (: ":") (if_statement "if (bVar2) {\n        return;\n      }" (if "if") (parenthesized_expression "(bVar2)" (( "(") (identifier "bVar2") () ")")) (compound_statement "{\n        return;\n      }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}")))) (} "}"))) (expression_statement "plVar1 = *(long **)(param_1 + 0x308);" (assignment_expression "plVar1 = *(long **)(param_1 + 0x308)" (identifier "plVar1") (= "=") (pointer_expression "*(long **)(param_1 + 0x308)" (* "*") (cast_expression "(long **)(param_1 + 0x308)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x308)" (( "(") (binary_expression "param_1 + 0x308" (identifier "param_1") (+ "+") (number_literal "0x308")) () ")"))))) (; ";")) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" (identifier "bVar2") (= "=") (false "false")) (; ";")) (if_statement "if (plVar1 != (long *)0x0) {\n      lVar7 = *plVar1;\n      while( true ) {\n        if (lVar7 != 0) {\n          for (lVar6 = *(long *)(lVar7 + 0xb38); lVar6 != lVar7 + 0xb28; lVar6 = FUN_00339e10(lVar6)\n              ) {\n            lVar8 = *(long *)(lVar6 + 0x28);\n            if (lVar8 != 0) {\n              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }\n              thunk_FUN_00338a50(lVar8,0x28);\n            }\n          }\n          FUN_001bc480(lVar7 + 0xb20,*(undefined8 *)(lVar7 + 0xb30));\n          lVar6 = lVar7 + 0xb20;\n          do {\n            lVar8 = lVar6 + -0x28;\n            if (*(long *)(lVar6 + -0x20) != lVar6 + -0x10) {\n              FUN_00338a50();\n            }\n            lVar6 = lVar8;\n          } while (lVar7 + 8 != lVar8);\n          thunk_FUN_00338a50(lVar7,0xb50);\n        }\n        if (bVar2) break;\n        bVar2 = true;\n        lVar7 = plVar1[1];\n      }\n      thunk_FUN_00338a50(plVar1,0x10);\n    }" (if "if") (parenthesized_expression "(plVar1 != (long *)0x0)" (( "(") (binary_expression "plVar1 != (long *)0x0" (identifier "plVar1") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      lVar7 = *plVar1;\n      while( true ) {\n        if (lVar7 != 0) {\n          for (lVar6 = *(long *)(lVar7 + 0xb38); lVar6 != lVar7 + 0xb28; lVar6 = FUN_00339e10(lVar6)\n              ) {\n            lVar8 = *(long *)(lVar6 + 0x28);\n            if (lVar8 != 0) {\n              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }\n              thunk_FUN_00338a50(lVar8,0x28);\n            }\n          }\n          FUN_001bc480(lVar7 + 0xb20,*(undefined8 *)(lVar7 + 0xb30));\n          lVar6 = lVar7 + 0xb20;\n          do {\n            lVar8 = lVar6 + -0x28;\n            if (*(long *)(lVar6 + -0x20) != lVar6 + -0x10) {\n              FUN_00338a50();\n            }\n            lVar6 = lVar8;\n          } while (lVar7 + 8 != lVar8);\n          thunk_FUN_00338a50(lVar7,0xb50);\n        }\n        if (bVar2) break;\n        bVar2 = true;\n        lVar7 = plVar1[1];\n      }\n      thunk_FUN_00338a50(plVar1,0x10);\n    }" ({ "{") (expression_statement "lVar7 = *plVar1;" (assignment_expression "lVar7 = *plVar1" (identifier "lVar7") (= "=") (pointer_expression "*plVar1" (* "*") (identifier "plVar1"))) (; ";")) (while_statement "while( true ) {\n        if (lVar7 != 0) {\n          for (lVar6 = *(long *)(lVar7 + 0xb38); lVar6 != lVar7 + 0xb28; lVar6 = FUN_00339e10(lVar6)\n              ) {\n            lVar8 = *(long *)(lVar6 + 0x28);\n            if (lVar8 != 0) {\n              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }\n              thunk_FUN_00338a50(lVar8,0x28);\n            }\n          }\n          FUN_001bc480(lVar7 + 0xb20,*(undefined8 *)(lVar7 + 0xb30));\n          lVar6 = lVar7 + 0xb20;\n          do {\n            lVar8 = lVar6 + -0x28;\n            if (*(long *)(lVar6 + -0x20) != lVar6 + -0x10) {\n              FUN_00338a50();\n            }\n            lVar6 = lVar8;\n          } while (lVar7 + 8 != lVar8);\n          thunk_FUN_00338a50(lVar7,0xb50);\n        }\n        if (bVar2) break;\n        bVar2 = true;\n        lVar7 = plVar1[1];\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        if (lVar7 != 0) {\n          for (lVar6 = *(long *)(lVar7 + 0xb38); lVar6 != lVar7 + 0xb28; lVar6 = FUN_00339e10(lVar6)\n              ) {\n            lVar8 = *(long *)(lVar6 + 0x28);\n            if (lVar8 != 0) {\n              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }\n              thunk_FUN_00338a50(lVar8,0x28);\n            }\n          }\n          FUN_001bc480(lVar7 + 0xb20,*(undefined8 *)(lVar7 + 0xb30));\n          lVar6 = lVar7 + 0xb20;\n          do {\n            lVar8 = lVar6 + -0x28;\n            if (*(long *)(lVar6 + -0x20) != lVar6 + -0x10) {\n              FUN_00338a50();\n            }\n            lVar6 = lVar8;\n          } while (lVar7 + 8 != lVar8);\n          thunk_FUN_00338a50(lVar7,0xb50);\n        }\n        if (bVar2) break;\n        bVar2 = true;\n        lVar7 = plVar1[1];\n      }" ({ "{") (if_statement "if (lVar7 != 0) {\n          for (lVar6 = *(long *)(lVar7 + 0xb38); lVar6 != lVar7 + 0xb28; lVar6 = FUN_00339e10(lVar6)\n              ) {\n            lVar8 = *(long *)(lVar6 + 0x28);\n            if (lVar8 != 0) {\n              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }\n              thunk_FUN_00338a50(lVar8,0x28);\n            }\n          }\n          FUN_001bc480(lVar7 + 0xb20,*(undefined8 *)(lVar7 + 0xb30));\n          lVar6 = lVar7 + 0xb20;\n          do {\n            lVar8 = lVar6 + -0x28;\n            if (*(long *)(lVar6 + -0x20) != lVar6 + -0x10) {\n              FUN_00338a50();\n            }\n            lVar6 = lVar8;\n          } while (lVar7 + 8 != lVar8);\n          thunk_FUN_00338a50(lVar7,0xb50);\n        }" (if "if") (parenthesized_expression "(lVar7 != 0)" (( "(") (binary_expression "lVar7 != 0" (identifier "lVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          for (lVar6 = *(long *)(lVar7 + 0xb38); lVar6 != lVar7 + 0xb28; lVar6 = FUN_00339e10(lVar6)\n              ) {\n            lVar8 = *(long *)(lVar6 + 0x28);\n            if (lVar8 != 0) {\n              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }\n              thunk_FUN_00338a50(lVar8,0x28);\n            }\n          }\n          FUN_001bc480(lVar7 + 0xb20,*(undefined8 *)(lVar7 + 0xb30));\n          lVar6 = lVar7 + 0xb20;\n          do {\n            lVar8 = lVar6 + -0x28;\n            if (*(long *)(lVar6 + -0x20) != lVar6 + -0x10) {\n              FUN_00338a50();\n            }\n            lVar6 = lVar8;\n          } while (lVar7 + 8 != lVar8);\n          thunk_FUN_00338a50(lVar7,0xb50);\n        }" ({ "{") (for_statement "for (lVar6 = *(long *)(lVar7 + 0xb38); lVar6 != lVar7 + 0xb28; lVar6 = FUN_00339e10(lVar6)\n              ) {\n            lVar8 = *(long *)(lVar6 + 0x28);\n            if (lVar8 != 0) {\n              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }\n              thunk_FUN_00338a50(lVar8,0x28);\n            }\n          }" (for "for") (( "(") (assignment_expression "lVar6 = *(long *)(lVar7 + 0xb38)" (identifier "lVar6") (= "=") (pointer_expression "*(long *)(lVar7 + 0xb38)" (* "*") (cast_expression "(long *)(lVar7 + 0xb38)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar7 + 0xb38)" (( "(") (binary_expression "lVar7 + 0xb38" (identifier "lVar7") (+ "+") (number_literal "0xb38")) () ")"))))) (; ";") (binary_expression "lVar6 != lVar7 + 0xb28" (identifier "lVar6") (!= "!=") (binary_expression "lVar7 + 0xb28" (identifier "lVar7") (+ "+") (number_literal "0xb28"))) (; ";") (assignment_expression "lVar6 = FUN_00339e10(lVar6)" (identifier "lVar6") (= "=") (call_expression "FUN_00339e10(lVar6)" (identifier "FUN_00339e10") (argument_list "(lVar6)" (( "(") (identifier "lVar6") () ")")))) () ")") (compound_statement "{\n            lVar8 = *(long *)(lVar6 + 0x28);\n            if (lVar8 != 0) {\n              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }\n              thunk_FUN_00338a50(lVar8,0x28);\n            }\n          }" ({ "{") (expression_statement "lVar8 = *(long *)(lVar6 + 0x28);" (assignment_expression "lVar8 = *(long *)(lVar6 + 0x28)" (identifier "lVar8") (= "=") (pointer_expression "*(long *)(lVar6 + 0x28)" (* "*") (cast_expression "(long *)(lVar6 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x28)" (( "(") (binary_expression "lVar6 + 0x28" (identifier "lVar6") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (if_statement "if (lVar8 != 0) {\n              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }\n              thunk_FUN_00338a50(lVar8,0x28);\n            }" (if "if") (parenthesized_expression "(lVar8 != 0)" (( "(") (binary_expression "lVar8 != 0" (identifier "lVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }\n              thunk_FUN_00338a50(lVar8,0x28);\n            }" ({ "{") (if_statement "if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {\n                FUN_00338a50();\n              }" (if "if") (parenthesized_expression "(*(long *)(lVar8 + 8) != lVar8 + 0x18)" (( "(") (binary_expression "*(long *)(lVar8 + 8) != lVar8 + 0x18" (pointer_expression "*(long *)(lVar8 + 8)" (* "*") (cast_expression "(long *)(lVar8 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar8 + 8)" (( "(") (binary_expression "lVar8 + 8" (identifier "lVar8") (+ "+") (number_literal "8")) () ")")))) (!= "!=") (binary_expression "lVar8 + 0x18" (identifier "lVar8") (+ "+") (number_literal "0x18"))) () ")")) (compound_statement "{\n                FUN_00338a50();\n              }" ({ "{") (expression_statement "FUN_00338a50();" (call_expression "FUN_00338a50()" (identifier "FUN_00338a50") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "thunk_FUN_00338a50(lVar8,0x28);" (call_expression "thunk_FUN_00338a50(lVar8,0x28)" (identifier "thunk_FUN_00338a50") (argument_list "(lVar8,0x28)" (( "(") (identifier "lVar8") (, ",") (number_literal "0x28") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "FUN_001bc480(lVar7 + 0xb20,*(undefined8 *)(lVar7 + 0xb30));" (call_expression "FUN_001bc480(lVar7 + 0xb20,*(undefined8 *)(lVar7 + 0xb30))" (identifier "FUN_001bc480") (argument_list "(lVar7 + 0xb20,*(undefined8 *)(lVar7 + 0xb30))" (( "(") (binary_expression "lVar7 + 0xb20" (identifier "lVar7") (+ "+") (number_literal "0xb20")) (, ",") (pointer_expression "*(undefined8 *)(lVar7 + 0xb30)" (* "*") (cast_expression "(undefined8 *)(lVar7 + 0xb30)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar7 + 0xb30)" (( "(") (binary_expression "lVar7 + 0xb30" (identifier "lVar7") (+ "+") (number_literal "0xb30")) () ")")))) () ")"))) (; ";")) (expression_statement "lVar6 = lVar7 + 0xb20;" (assignment_expression "lVar6 = lVar7 + 0xb20" (identifier "lVar6") (= "=") (binary_expression "lVar7 + 0xb20" (identifier "lVar7") (+ "+") (number_literal "0xb20"))) (; ";")) (do_statement "do {\n            lVar8 = lVar6 + -0x28;\n            if (*(long *)(lVar6 + -0x20) != lVar6 + -0x10) {\n              FUN_00338a50();\n            }\n            lVar6 = lVar8;\n          } while (lVar7 + 8 != lVar8);" (do "do") (compound_statement "{\n            lVar8 = lVar6 + -0x28;\n            if (*(long *)(lVar6 + -0x20) != lVar6 + -0x10) {\n              FUN_00338a50();\n            }\n            lVar6 = lVar8;\n          }" ({ "{") (expression_statement "lVar8 = lVar6 + -0x28;" (assignment_expression "lVar8 = lVar6 + -0x28" (identifier "lVar8") (= "=") (binary_expression "lVar6 + -0x28" (identifier "lVar6") (+ "+") (number_literal "-0x28"))) (; ";")) (if_statement "if (*(long *)(lVar6 + -0x20) != lVar6 + -0x10) {\n              FUN_00338a50();\n            }" (if "if") (parenthesized_expression "(*(long *)(lVar6 + -0x20) != lVar6 + -0x10)" (( "(") (binary_expression "*(long *)(lVar6 + -0x20) != lVar6 + -0x10" (pointer_expression "*(long *)(lVar6 + -0x20)" (* "*") (cast_expression "(long *)(lVar6 + -0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + -0x20)" (( "(") (binary_expression "lVar6 + -0x20" (identifier "lVar6") (+ "+") (number_literal "-0x20")) () ")")))) (!= "!=") (binary_expression "lVar6 + -0x10" (identifier "lVar6") (+ "+") (number_literal "-0x10"))) () ")")) (compound_statement "{\n              FUN_00338a50();\n            }" ({ "{") (expression_statement "FUN_00338a50();" (call_expression "FUN_00338a50()" (identifier "FUN_00338a50") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "lVar6 = lVar8;" (assignment_expression "lVar6 = lVar8" (identifier "lVar6") (= "=") (identifier "lVar8")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(lVar7 + 8 != lVar8)" (( "(") (binary_expression "lVar7 + 8 != lVar8" (binary_expression "lVar7 + 8" (identifier "lVar7") (+ "+") (number_literal "8")) (!= "!=") (identifier "lVar8")) () ")")) (; ";")) (expression_statement "thunk_FUN_00338a50(lVar7,0xb50);" (call_expression "thunk_FUN_00338a50(lVar7,0xb50)" (identifier "thunk_FUN_00338a50") (argument_list "(lVar7,0xb50)" (( "(") (identifier "lVar7") (, ",") (number_literal "0xb50") () ")"))) (; ";")) (} "}"))) (if_statement "if (bVar2) break;" (if "if") (parenthesized_expression "(bVar2)" (( "(") (identifier "bVar2") () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" (identifier "bVar2") (= "=") (true "true")) (; ";")) (expression_statement "lVar7 = plVar1[1];" (assignment_expression "lVar7 = plVar1[1]" (identifier "lVar7") (= "=") (subscript_expression "plVar1[1]" (identifier "plVar1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}"))) (expression_statement "thunk_FUN_00338a50(plVar1,0x10);" (call_expression "thunk_FUN_00338a50(plVar1,0x10)" (identifier "thunk_FUN_00338a50") (argument_list "(plVar1,0x10)" (( "(") (identifier "plVar1") (, ",") (number_literal "0x10") () ")"))) (; ";")) (} "}"))) (expression_statement "*(undefined8 *)(param_1 + 0x308) = 0;" (assignment_expression "*(undefined8 *)(param_1 + 0x308) = 0" (pointer_expression "*(undefined8 *)(param_1 + 0x308)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x308)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x308)" (( "(") (binary_expression "param_1 + 0x308" (identifier "param_1") (+ "+") (number_literal "0x308")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Type propagation algorithm not settling */
/* DWARF original prototype: void do_read_symbols(Powerpc_relobj<32,_true> * this, Read_symbols_data
   * sd) */

void __thiscall
anon_unknown.dwarf_2cac9f::var_1<32,var_3>::do_read_symbols
          (var_1<32,var_3> *this,Read_symbols_data *sd)

{
  type_5 var_12;
  type_1 *var_5;
  type_2 *var_17;
  type_3 var_19;
  bool bVar5;
  type_4 *var_24;
  type_5 var_9;
  type_6 *view;
  type_7 *var_16;
  type_8 *p_Var9;
  type_6 *var_8;
  type_9 *var_23;
  type_5 var_10;
  var_1<32,var_3> *var_13;
  type_10 to;
  type_10 size;
  
  var_13 = this;
  gold::var_2<32,var_3>::var_4(&this->super_Sized_relobj_file<32,var_3>,sd);
  var_5 = (this->super_Sized_relobj_file<32,var_3>).super_Sized_relobj<32,var_3>.super_Relobj.
           super_Object.input_file_;
  if (var_5 == (type_1 *)0x0) {
LAB_001840de:
                    /* WARNING: Subroutine does not return */
    gold::Object::var_6((type_11 *)var_13);
  }
  if (var_5->format_ == var_7) {
    bVar5 = false;
    var_8 = sd->section_headers->data_ + 0x28;
    var_10 = 1;
    if (1 < (this->super_Sized_relobj_file<32,var_3>).super_Sized_relobj<32,var_3>.super_Relobj.
            super_Object.shnum_) {
      do {
        while( true ) {
          var_9 = *(type_5 *)(var_8 + 4);
          var_9 = var_9 >> 0x18 | (var_9 & 0xff0000) >> 8 | (var_9 & 0xff00) << 8 | var_9 << 0x18;
          if (var_9 != 3) break;
LAB_00183ef7:
          var_10 = var_10 + 1;
          var_8 = var_8 + 0x28;
          if ((this->super_Sized_relobj_file<32,var_3>).super_Sized_relobj<32,var_3>.super_Relobj.
              super_Object.shnum_ <= var_10) goto LAB_00183f9e;
        }
        if (var_9 != 0x6ffffff5) {
          if (var_9 == 2) {
            var_9 = *(type_5 *)(var_8 + 0x14);
            if (0x10 < (var_9 >> 0x18 | (var_9 & 0xff0000) >> 8 | (var_9 & 0xff00) << 8 |
                       var_9 << 0x18)) {
              bVar5 = true;
            }
          }
          else {
            bVar5 = true;
          }
          goto LAB_00183ef7;
        }
        if (this->attributes_section_data_ != (type_7 *)0x0) {
                    /* WARNING: Subroutine does not return */
          gold::var_11("../../gold/powerpc.cc",0x95b,"do_read_symbols");
        }
        var_9 = *(type_5 *)(var_8 + 0x10);
        var_12 = *(type_5 *)(var_8 + 0x14);
        var_13 = (var_1<32,var_3> *)
                  (this->super_Sized_relobj_file<32,var_3>).super_Sized_relobj<32,var_3>.
                  super_Relobj.super_Object.input_file_;
        size = (type_10)(var_12 >> 0x18 | (var_12 & 0xff0000) >> 8 | (var_12 & 0xff00) << 8 |
                      var_12 << 0x18);
        if (var_13 == (var_1<32,var_3> *)0x0) goto LAB_001840de;
        view = gold::File_read::var_14
                         ((type_12 *)
                          &(var_13->super_Sized_relobj_file<32,var_3>).super_Sized_relobj<32,var_3>
                           .super_Relobj.super_Object.input_file_,
                          (this->super_Sized_relobj_file<32,var_3>).super_Sized_relobj<32,var_3>.
                          super_Relobj.super_Object.offset_,
                          (type_10)(var_9 >> 0x18 | (var_9 & 0xff0000) >> 8 | (var_9 & 0xff00) << 8 |
                                 var_9 << 0x18),size,true,false);
        var_16 = (type_7 *)var_15(0x10);
                    /* try { // try from 00183f7f to 00183f83 has its CatchHandler @ 001840e3 */
        gold::Attributes_section_data::type_7(var_16,view,size);
        this->attributes_section_data_ = var_16;
        var_10 = var_10 + 1;
        var_8 = var_8 + 0x28;
      } while (var_10 < (this->super_Sized_relobj_file<32,var_3>).super_Sized_relobj<32,var_3>.
                        super_Relobj.super_Object.shnum_);
LAB_00183f9e:
      if (bVar5) {
        return;
      }
    }
    var_16 = this->attributes_section_data_;
    bVar5 = false;
    if (var_16 != (type_7 *)0x0) {
      var_17 = var_16->vendor_object_attributes_[0];
      while( true ) {
        if (var_17 != (type_2 *)0x0) {
          for (p_Var9 = (var_17->other_attributes_)._M_t._M_impl.super__Rb_tree_header._M_header.
                        _M_left;
              (type_13 *)p_Var9 !=
              &(var_17->other_attributes_)._M_t._M_impl.super__Rb_tree_header;
              p_Var9 = (type_8 *)std::var_18(p_Var9)) {
            var_19 = p_Var9[1]._M_parent;
            if (var_19 != (type_3)0x0) {
              if (var_19->_M_parent != (type_3)&var_19->_M_right) {
                var_20(var_19->_M_parent);
              }
              var_20(var_19,0x28);
            }
          }
          std::
          _Rb_tree<int,_std::pair<int_const,_gold::type_14*>,_std::_Select1st<std::pair<int_const,_gold::type_14*>var_21>,_std::less<int>,_std::allocator<std::pair<int_const,_gold::type_14*>var_21>var_21>
          ::var_22(&(var_17->other_attributes_)._M_t,
                     (_Link_type)
                     (var_17->other_attributes_)._M_t._M_impl.super__Rb_tree_header._M_header.
                     _M_parent);
          var_23 = &var_17->other_attributes_;
          do {
            var_24 = (type_4 *)(var_23 + -1);
            if (*(void **)((long)(var_23 + -1) + 0x10) != (void *)((long)(var_23 + -1) + 0x20)) {
              var_20(*(void **)((long)(var_23 + -1) + 0x10));
            }
            var_23 = (type_9 *)(var_24 + 8);
          } while (var_17->known_attributes_ != (type_14 *)(var_24 + 8));
          var_20(var_17,0xb50);
        }
        if (bVar5) break;
        bVar5 = true;
        var_17 = var_16->vendor_object_attributes_[1];
      }
      var_20(var_16,0x10);
    }
    this->attributes_section_data_ = (type_7 *)0x0;
  }
  return;
}


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

void MASKED(long param_1,long *param_2)

{
  long *plVar1;
  bool bVar2;
  uint uVar3;
  undefined8 uVar4;
  undefined8 uVar5;
  long lVar6;
  long lVar7;
  long lVar8;
  uint uVar9;
  uint uVar10;
  
  FUN_0024e4f0();
  if (*(long *)(param_1 + 0x28) == 0) {
LAB_001840de:
                    /* WARNING: Subroutine does not return */
    FUN_0016e0c0();
  }
  if (*(int *)(*(long *)(param_1 + 0x28) + 0xe4) == 1) {
    bVar2 = false;
    lVar7 = *(long *)(*param_2 + 0x10) + 0x28;
    uVar9 = 1;
    if (1 < *(uint *)(param_1 + 0x38)) {
      do {
        while( true ) {
          uVar3 = *(uint *)(lVar7 + 4);
          uVar3 = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;
          if (uVar3 != 3) break;
LAB_00183ef7:
          uVar9 = uVar9 + 1;
          lVar7 = lVar7 + 0x28;
          if (*(uint *)(param_1 + 0x38) <= uVar9) goto LAB_00183f9e;
        }
        if (uVar3 != 0x6ffffff5) {
          if (uVar3 == 2) {
            uVar3 = *(uint *)(lVar7 + 0x14);
            if (0x10 < (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |
                       uVar3 << 0x18)) {
              bVar2 = true;
            }
          }
          else {
            bVar2 = true;
          }
          goto LAB_00183ef7;
        }
        if (*(long *)(param_1 + 0x308) != 0) {
                    /* WARNING: Subroutine does not return */
          FUN_001e9890("../../gold/powerpc.cc",0x95b,"do_read_symbols");
        }
        uVar3 = *(uint *)(lVar7 + 0x10);
        uVar10 = *(uint *)(lVar7 + 0x14);
        uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18
        ;
        if (*(long *)(param_1 + 0x28) == 0) goto LAB_001840de;
        uVar4 = FUN_001e43a0(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),
                             uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |
                             uVar3 << 0x18,uVar10,1,0);
        uVar5 = FUN_00337280(0x10);
                    /* try { // try from 00183f7f to 00183f83 has its CatchHandler @ 001840e3 */
        FUN_001cbfe0(uVar5,uVar4,uVar10);
        *(undefined8 *)(param_1 + 0x308) = uVar5;
        uVar9 = uVar9 + 1;
        lVar7 = lVar7 + 0x28;
      } while (uVar9 < *(uint *)(param_1 + 0x38));
LAB_00183f9e:
      if (bVar2) {
        return;
      }
    }
    plVar1 = *(long **)(param_1 + 0x308);
    bVar2 = false;
    if (plVar1 != (long *)0x0) {
      lVar7 = *plVar1;
      while( true ) {
        if (lVar7 != 0) {
          for (lVar6 = *(long *)(lVar7 + 0xb38); lVar6 != lVar7 + 0xb28; lVar6 = FUN_00339e10(lVar6)
              ) {
            lVar8 = *(long *)(lVar6 + 0x28);
            if (lVar8 != 0) {
              if (*(long *)(lVar8 + 8) != lVar8 + 0x18) {
                FUN_00338a50();
              }
              thunk_FUN_00338a50(lVar8,0x28);
            }
          }
          FUN_001bc480(lVar7 + 0xb20,*(undefined8 *)(lVar7 + 0xb30));
          lVar6 = lVar7 + 0xb20;
          do {
            lVar8 = lVar6 + -0x28;
            if (*(long *)(lVar6 + -0x20) != lVar6 + -0x10) {
              FUN_00338a50();
            }
            lVar6 = lVar8;
          } while (lVar7 + 8 != lVar8);
          thunk_FUN_00338a50(lVar7,0xb50);
        }
        if (bVar2) break;
        bVar2 = true;
        lVar7 = plVar1[1];
      }
      thunk_FUN_00338a50(plVar1,0x10);
    }
    *(undefined8 *)(param_1 + 0x308) = 0;
  }
  return;
}

