
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* DWARF original prototype: void do_read_relocs(Powerpc_relobj<64,_false> * this, Read_relocs_data
   * rd) */

void __thiscall
anon_unknown.dwarf_6462d4::Powerpc_relobj<64,_false>::do_read_relocs
          (Powerpc_relobj<64,_false> *this,Read_relocs_data *rd)

{
  pointer pSVar1;
  pointer pSVar2;
  pointer pOVar3;
  uchar *puVar4;
  uint uVar5;
  pointer pcVar6;
  uint uVar7;
  uint uVar9;
  uint uVar10;
  bool bVar11;
  Elf_file<64,_false,_gold::Object> *this_00;
  uint uVar12;
  pointer pOVar13;
  char *pcVar14;
  uint uVar15;
  Xindex *this_01;
  uint uVar16;
  uint *puVar17;
  bool bVar18;
  Elf_WXword EVar19;
  vector<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_>
  *in_stack_ffffff94;
  size_type in_stack_ffffff98;
  uint local_54;
  uint local_50;
  uint local_4c;
  bool is_ordinary;
  Elf_Addr value;
  uint uVar8;
  
  gold::Sized_relobj_file<64,_false>::do_read_relocs(&this->super_Sized_relobj_file<64,_false>,rd);
  pSVar1 = (rd->relocs).
           super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>._M_impl.
           _M_start;
  pSVar2 = (rd->relocs).
           super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>._M_impl.
           _M_finish;
  if (pSVar1 == pSVar2) {
    return;
  }
  uVar12 = pSVar1->data_shndx;
  while (this->special_ != uVar12) {
    if (pSVar1 + 1 == pSVar2) {
      return;
    }
    uVar12 = pSVar1[1].data_shndx;
    pSVar1 = pSVar1 + 1;
  }
  this_00 = &(this->super_Sized_relobj_file<64,_false>).elf_file_;
  EVar19 = elfcpp::Elf_file<64,_false,_gold::Object>::section_size(this_00,this->special_);
  if ((int)(EVar19 >> 0x20) != 0) {
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/powerpc.cc",0x919,"do_read_relocs");
  }
  if ((uint)EVar19 == 0) {
    return;
  }
  uVar12 = (uint)EVar19 >> 4;
  pOVar13 = (this->opd_ent_).
            super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_>
            ._M_impl._M_start;
  pOVar3 = (this->opd_ent_).
           super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_>
           ._M_impl._M_finish;
  uVar16 = (int)pOVar3 - (int)pOVar13 >> 4;
  if (uVar16 < uVar12) {
    std::
    vector<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_>
    ::_M_default_append(in_stack_ffffff94,in_stack_ffffff98);
  }
  else if ((uVar12 < uVar16) && (pOVar13 = pOVar13 + uVar12, pOVar3 != pOVar13)) {
    (this->opd_ent_).
    super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_>
    ._M_impl._M_finish = pOVar13;
  }
  bVar11 = true;
  puVar4 = rd->local_symbols->data_;
  puVar17 = (uint *)pSVar1->contents->data_;
  uVar12 = pSVar1->reloc_count;
  if (uVar12 != 0) {
    local_4c = 0;
    uVar16 = 0;
    local_54 = 0;
    local_50 = 0;
    do {
      while( true ) {
        uVar15 = puVar17[2];
        uVar5 = puVar17[3];
        if (uVar15 != 0x26) break;
        if (uVar5 < (this->super_Sized_relobj_file<64,_false>).local_symbol_count_) {
          uVar15 = (uint)*(ushort *)(puVar4 + uVar5 * 0x18 + 6);
          if (uVar15 < 0xff00) {
            is_ordinary = true;
          }
          else if (uVar15 == 0xffff) {
            this_01 = (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.
                      super_Relobj.super_Object.xindex_;
            if (this_01 == (Xindex *)0x0) {
              this_01 = gold::Sized_relobj_file<64,_false>::do_initialize_xindex
                                  (&this->super_Sized_relobj_file<64,_false>);
              (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.
              super_Object.xindex_ = this_01;
            }
            uVar15 = gold::Xindex::sym_xindex_to_shndx(this_01,(Object *)this,uVar5);
            is_ordinary = true;
          }
          else {
            is_ordinary = false;
          }
          value._0_4_ = *(uint *)(puVar4 + uVar5 * 0x18 + 8);
          value._4_4_ = *(int *)(puVar4 + uVar5 * 0x18 + 0xc);
        }
        else {
          uVar15 = gold::Sized_relobj_file<64,_false>::symbol_section_and_value
                             (&this->super_Sized_relobj_file<64,_false>,uVar5,&value,&is_ordinary);
        }
        uVar5 = puVar17[1];
        uVar7 = puVar17[4];
        uVar8 = puVar17[4];
        uVar9 = puVar17[5];
        pOVar13 = (this->opd_ent_).
                  super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_>
                  ._M_impl._M_start;
        uVar10 = *puVar17;
        if ((uint)((int)(this->opd_ent_).
                        super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_>
                        ._M_impl._M_finish - (int)pOVar13 >> 4) <= uVar10 >> 4) {
                    /* WARNING: Subroutine does not return */
          gold::do_gold_unreachable("../../gold/powerpc.cc",0xd0,"set_opd_ent");
        }
        pOVar13 = pOVar13 + (uVar10 >> 4);
        pOVar13->shndx = uVar15;
        *(uint *)((int)&pOVar13->off + 4) = value._4_4_ + uVar9 + (uint)CARRY4((uint)value,uVar7);
        *(uint *)&pOVar13->off = (uint)value + uVar8;
        uVar15 = uVar10;
        uVar8 = uVar5;
        uVar7 = uVar10;
        if ((uVar16 != 2) &&
           (uVar15 = local_54, uVar8 = local_50, uVar7 = local_4c,
           uVar5 != local_50 || uVar10 != local_54)) {
          bVar11 = false;
        }
        local_4c = uVar7;
        local_50 = uVar8;
        local_54 = uVar15;
        bVar18 = CARRY4(local_54,local_4c);
        local_54 = local_54 + local_4c;
        local_50 = local_50 + bVar18;
LAB_00100e3b:
        uVar16 = uVar16 + 1;
        puVar17 = puVar17 + 6;
        bVar18 = bVar11;
        if (uVar12 == uVar16) goto LAB_00100e9d;
      }
      if (uVar15 == 0x33) {
        if (puVar17[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||
            *puVar17 != (local_54 + 8) - local_4c) {
          bVar11 = false;
        }
        goto LAB_00100e3b;
      }
      uVar16 = uVar16 + 1;
      puVar17 = puVar17 + 6;
      pcVar6 = (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj
               .super_Object.name_._M_dataplus._M_p;
      pcVar14 = (char *)gettext("%s: unexpected reloc type %u in .opd section");
      gold::gold_warning(pcVar14,pcVar6,uVar15);
      bVar11 = false;
      bVar18 = false;
    } while (uVar12 != uVar16);
LAB_00100e9d:
    bVar11 = bVar18;
    if (2 < uVar12) goto LAB_00100ea8;
  }
  EVar19 = elfcpp::Elf_file<64,_false,_gold::Object>::section_size(this_00,this->special_);
  local_4c = (uint)EVar19;
LAB_00100ea8:
  if (((local_4c & 0xfffffff7) == 0x10) && (bVar11)) {
    return;
  }
  pcVar6 = (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.
           super_Object.name_._M_dataplus._M_p;
  pcVar14 = (char *)gettext("%s: .opd is not a regular array of opd entries");
  gold::gold_warning(pcVar14,pcVar6);
  return;
}



/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

void FUN_00100cf0(int param_1,int *param_2)

{
  int iVar1;
  uint uVar2;
  undefined4 uVar3;
  uint uVar4;
  uint uVar6;
  uint uVar7;
  bool bVar8;
  uint uVar9;
  int iVar10;
  undefined4 uVar11;
  uint uVar12;
  int iVar13;
  uint uVar14;
  uint *puVar15;
  uint *puVar16;
  bool bVar17;
  undefined8 uVar18;
  uint local_54;
  uint local_50;
  uint local_4c;
  undefined1 local_25;
  uint local_24;
  int local_20;
  uint uVar5;
  
  FUN_0031f3a0(param_1,param_2);
  iVar1 = *param_2;
  if (iVar1 == param_2[1]) {
    return;
  }
  iVar10 = *(int *)(iVar1 + 4);
  while (*(int *)(param_1 + 0x140) != iVar10) {
    if (iVar1 + 0x1c == param_2[1]) {
      return;
    }
    iVar10 = *(int *)(iVar1 + 0x20);
    iVar1 = iVar1 + 0x1c;
  }
  uVar18 = FUN_00108170(param_1 + 0x90,*(int *)(param_1 + 0x140));
  if ((int)((ulonglong)uVar18 >> 0x20) != 0) {
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/powerpc.cc",0x919,"do_read_relocs",param_2);
  }
  if ((uint)uVar18 == 0) {
    return;
  }
  uVar9 = (uint)uVar18 >> 4;
  uVar14 = *(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4;
  if (uVar14 < uVar9) {
    FUN_000b2870();
  }
  else if ((uVar9 < uVar14) &&
          (iVar10 = uVar9 * 0x10 + *(int *)(param_1 + 0x168), *(int *)(param_1 + 0x16c) != iVar10))
  {
    *(int *)(param_1 + 0x16c) = iVar10;
  }
  bVar8 = true;
  iVar10 = *(int *)(param_2[3] + 8);
  puVar15 = *(uint **)(*(int *)(iVar1 + 8) + 8);
  uVar9 = *(uint *)(iVar1 + 0x10);
  if (uVar9 != 0) {
    local_4c = 0;
    uVar14 = 0;
    local_54 = 0;
    local_50 = 0;
    do {
      while( true ) {
        uVar12 = puVar15[2];
        uVar2 = puVar15[3];
        if (uVar12 != 0x26) break;
        if (uVar2 < *(uint *)(param_1 + 0xb0)) {
          iVar1 = iVar10 + uVar2 * 0x18;
          uVar12 = (uint)*(ushort *)(iVar1 + 6);
          if (uVar12 < 0xff00) {
            local_25 = 1;
          }
          else if (uVar12 == 0xffff) {
            iVar13 = *(int *)(param_1 + 0x30);
            if (iVar13 == 0) {
              iVar13 = FUN_0029c0e0(param_1);
              *(int *)(param_1 + 0x30) = iVar13;
            }
            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);
            local_25 = 1;
          }
          else {
            local_25 = 0;
          }
          local_24 = *(uint *)(iVar1 + 8);
          local_20 = *(int *)(iVar1 + 0xc);
        }
        else {
          uVar12 = FUN_002986d0(param_1,uVar2,&local_24,&local_25);
        }
        uVar2 = puVar15[1];
        uVar4 = puVar15[4];
        uVar5 = puVar15[4];
        uVar6 = puVar15[5];
        uVar7 = *puVar15;
        if ((uint)(*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4) <= uVar7 >> 4) {
                    /* WARNING: Subroutine does not return */
          FUN_002446e0("../../gold/powerpc.cc",0xd0,"set_opd_ent",uVar7);
        }
        puVar16 = (uint *)(*(int *)(param_1 + 0x168) + (uVar7 >> 4) * 0x10);
        *puVar16 = uVar12;
        puVar16[3] = local_20 + uVar6 + (uint)CARRY4(local_24,uVar4);
        puVar16[2] = local_24 + uVar5;
        uVar12 = uVar7;
        uVar5 = uVar2;
        uVar4 = uVar7;
        if ((uVar14 != 2) &&
           (uVar12 = local_54, uVar5 = local_50, uVar4 = local_4c,
           uVar2 != local_50 || uVar7 != local_54)) {
          bVar8 = false;
        }
        local_4c = uVar4;
        local_50 = uVar5;
        local_54 = uVar12;
        bVar17 = CARRY4(local_54,local_4c);
        local_54 = local_54 + local_4c;
        local_50 = local_50 + bVar17;
LAB_00100e3b:
        uVar14 = uVar14 + 1;
        puVar15 = puVar15 + 6;
        bVar17 = bVar8;
        if (uVar9 == uVar14) goto LAB_00100e9d;
      }
      if (uVar12 == 0x33) {
        if (puVar15[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||
            *puVar15 != (local_54 + 8) - local_4c) {
          bVar8 = false;
        }
        goto LAB_00100e3b;
      }
      uVar14 = uVar14 + 1;
      puVar15 = puVar15 + 6;
      uVar3 = *(undefined4 *)(param_1 + 4);
      uVar11 = gettext("%s: unexpected reloc type %u in .opd section");
      FUN_0023b840(uVar11,uVar3,uVar12);
      bVar8 = false;
      bVar17 = false;
    } while (uVar9 != uVar14);
LAB_00100e9d:
    bVar8 = bVar17;
    if (2 < uVar9) goto LAB_00100ea8;
  }
  local_4c = FUN_00108170(param_1 + 0x90,*(undefined4 *)(param_1 + 0x140));
LAB_00100ea8:
  if (((local_4c & 0xfffffff7) == 0x10) && (bVar8)) {
    return;
  }
  uVar3 = *(undefined4 *)(param_1 + 4);
  uVar11 = gettext("%s: .opd is not a regular array of opd entries");
  FUN_0023b840(uVar11,uVar3);
  return;
}


CALL 0x00074f02
ADD EAX,0x4e930b
PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x64
MOV EBX,EAX
MOV ESI,dword ptr [ESP + 0x7c]
MOV dword ptr [ESP + 0x14],EAX
PUSH ESI
PUSH dword ptr [ESP + 0x7c]
CALL 0x0031f3a0
MOV EBX,dword ptr [ESI]
MOV ECX,dword ptr [ESI + 0x4]
ADD ESP,0x10
CMP EBX,ECX
JZ 0x00100d46
MOV EAX,dword ptr [ESP + 0x70]
MOV EDX,dword ptr [EAX + 0x140]
LEA EAX,[EBX + 0x1c]
CMP EDX,dword ptr [EBX + 0x4]
JNZ 0x00100d40
JMP 0x00100d50
ADD EAX,0x1c
CMP dword ptr [EAX + -0x18],EDX
JZ 0x00100d50
MOV EBX,EAX
CMP EAX,ECX
JNZ 0x00100d38
ADD ESP,0x5c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [ESP + 0x70]
SUB ESP,0x8
ADD EAX,0x90
MOV dword ptr [ESP + 0x38],EAX
PUSH EDX
PUSH EAX
CALL 0x00108170
ADD ESP,0x10
TEST EDX,EDX
JNZ 0x0010109d
TEST EAX,EAX
JZ 0x00100d46
MOV EDI,dword ptr [ESP + 0x70]
SHR EAX,0x4
MOV ECX,dword ptr [EDI + 0x168]
MOV EDI,dword ptr [EDI + 0x16c]
MOV EDX,EDI
SUB EDX,ECX
SAR EDX,0x4
CMP EAX,EDX
JA 0x0010102d
JNC 0x00100dad
SHL EAX,0x4
ADD EAX,ECX
CMP EDI,EAX
JZ 0x00100dad
MOV EDI,dword ptr [ESP + 0x70]
MOV dword ptr [EDI + 0x16c],EAX
MOV EAX,dword ptr [ESI + 0xc]
MOV byte ptr [ESP + 0x10],0x1
MOV EAX,dword ptr [EAX + 0x8]
MOV dword ptr [ESP + 0x3c],EAX
MOV EAX,dword ptr [EBX + 0x8]
MOV EBP,dword ptr [EAX + 0x8]
MOV EAX,dword ptr [EBX + 0x10]
MOV dword ptr [ESP + 0x14],EAX
TEST EAX,EAX
JZ 0x0010100b
MOV EAX,dword ptr [ESP + 0xc]
MOV dword ptr [ESP + 0x20],0x0
XOR ESI,ESI
MOV dword ptr [ESP + 0x18],0x0
LEA EAX,[EAX + 0xffe7cd5c]
MOV dword ptr [ESP + 0x1c],0x0
MOV dword ptr [ESP + 0x24],EAX
JMP 0x00100e47
MOV EAX,dword ptr [ESP + 0x18]
MOV ECX,dword ptr [ESP + 0x20]
MOV EDX,dword ptr [ESP + 0x1c]
MOVZX EDI,byte ptr [ESP + 0x10]
ADD EAX,0x8
ADC EDX,0x0
XOR EBX,EBX
SUB EAX,ECX
SBB EDX,EBX
MOV ECX,EAX
MOV EAX,dword ptr [EBP]
MOV EBX,EDX
MOV EDX,dword ptr [EBP + 0x4]
XOR EAX,ECX
XOR EDX,EBX
OR EDX,EAX
MOV EAX,0x0
CMOVNZ EDI,EAX
MOV EAX,EDI
MOV byte ptr [ESP + 0x10],AL
ADD ESI,0x1
ADD EBP,0x18
CMP dword ptr [ESP + 0x14],ESI
JZ 0x00100e9d
MOV EDX,dword ptr [EBP + 0x8]
MOV EDI,dword ptr [EBP + 0xc]
CMP EDX,0x26
JZ 0x00100ef0
CMP EDX,0x33
JZ 0x00100e00
MOV EAX,dword ptr [ESP + 0x70]
MOV dword ptr [ESP + 0x10],EDX
SUB ESP,0xc
ADD ESI,0x1
ADD EBP,0x18
MOV EDI,dword ptr [EAX + 0x4]
PUSH dword ptr [ESP + 0x30]
MOV EBX,dword ptr [ESP + 0x1c]
CALL 0x00039440
ADD ESP,0xc
MOV EDX,dword ptr [ESP + 0x14]
PUSH EDX
PUSH EDI
PUSH EAX
MOV EBX,dword ptr [ESP + 0x1c]
CALL 0x0023b840
ADD ESP,0x10
MOV byte ptr [ESP + 0x10],0x0
CMP dword ptr [ESP + 0x14],ESI
JNZ 0x00100e47
CMP dword ptr [ESP + 0x14],0x2
JBE 0x0010100b
MOV EAX,dword ptr [ESP + 0x20]
AND EAX,0xfffffff7
CMP EAX,0x10
JNZ 0x00100ebf
CMP byte ptr [ESP + 0x10],0x0
JNZ 0x00100d46
MOV EAX,dword ptr [ESP + 0x70]
SUB ESP,0xc
MOV EDI,dword ptr [ESP + 0x18]
MOV ESI,dword ptr [EAX + 0x4]
LEA EAX,[EDI + 0xffe7cd8c]
MOV EBX,EDI
PUSH EAX
CALL 0x00039440
POP EDX
POP ECX
PUSH ESI
PUSH EAX
CALL 0x0023b840
ADD ESP,0x10
ADD ESP,0x5c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [ESP + 0x70]
CMP EDI,dword ptr [EAX + 0xb0]
JNC 0x00100fd1
MOV EBX,dword ptr [ESP + 0x3c]
LEA EAX,[EDI + EDI*0x2]
LEA EDX,[EBX + EAX*0x8]
MOVZX EAX,word ptr [EDX + 0x6]
CMP EAX,0xfeff
JA 0x00100fc0
MOV byte ptr [ESP + 0x47],0x1
MOV ECX,dword ptr [EDX + 0x8]
MOV EBX,dword ptr [EDX + 0xc]
MOV dword ptr [ESP + 0x48],ECX
MOV dword ptr [ESP + 0x4c],EBX
MOV EDI,dword ptr [EBP + 0x4]
ADD ECX,dword ptr [EBP + 0x10]
MOV dword ptr [ESP + 0x28],ECX
MOV ECX,dword ptr [ESP + 0x70]
MOV dword ptr [ESP + 0x38],EDI
MOV EDI,dword ptr [ESP + 0x70]
ADC EBX,dword ptr [EBP + 0x14]
MOV ECX,dword ptr [ECX + 0x16c]
MOV dword ptr [ESP + 0x2c],EBX
MOV EDI,dword ptr [EDI + 0x168]
MOV EBX,dword ptr [EBP]
MOV dword ptr [ESP + 0x34],ECX
SUB ECX,EDI
MOV EDX,EBX
SAR ECX,0x4
SHR EDX,0x4
CMP EDX,ECX
JNC 0x001010ba
SHL EDX,0x4
ADD EDI,EDX
MOV EDX,dword ptr [ESP + 0x2c]
MOV dword ptr [EDI],EAX
MOV EAX,dword ptr [ESP + 0x28]
MOV dword ptr [EDI + 0xc],EDX
MOV dword ptr [EDI + 0x8],EAX
CMP ESI,0x2
JZ 0x00100ff9
MOV EDX,dword ptr [ESP + 0x18]
MOV ECX,dword ptr [ESP + 0x1c]
MOV EAX,dword ptr [ESP + 0x38]
MOVZX EDI,byte ptr [ESP + 0x10]
XOR EBX,EDX
XOR EAX,ECX
OR EAX,EBX
MOV EAX,0x0
CMOVNZ EDI,EAX
MOV EAX,EDI
MOV byte ptr [ESP + 0x10],AL
XOR EDX,EDX
MOV EAX,dword ptr [ESP + 0x20]
ADD dword ptr [ESP + 0x18],EAX
ADC dword ptr [ESP + 0x1c],EDX
JMP 0x00100e3b
CMP EAX,0xffff
JZ 0x00101044
MOV byte ptr [ESP + 0x47],0x0
JMP 0x00100f1e
LEA EAX,[ESP + 0x47]
PUSH EAX
LEA EAX,[ESP + 0x4c]
PUSH EAX
PUSH EDI
PUSH dword ptr [ESP + 0x7c]
MOV EBX,dword ptr [ESP + 0x1c]
CALL 0x002986d0
MOV ECX,dword ptr [ESP + 0x58]
MOV EBX,dword ptr [ESP + 0x5c]
ADD ESP,0x10
JMP 0x00100f2c
MOV EAX,dword ptr [ESP + 0x38]
MOV dword ptr [ESP + 0x20],EBX
MOV dword ptr [ESP + 0x18],EBX
MOV dword ptr [ESP + 0x1c],EAX
JMP 0x00100fad
SUB ESP,0x8
MOV EAX,dword ptr [ESP + 0x78]
PUSH dword ptr [EAX + 0x140]
PUSH dword ptr [ESP + 0x3c]
CALL 0x00108170
MOV dword ptr [ESP + 0x30],EAX
ADD ESP,0x10
JMP 0x00100ea8
SUB EAX,EDX
MOV EDX,EAX
MOV EAX,dword ptr [ESP + 0x70]
ADD EAX,0x168
CALL 0x000b2870
JMP 0x00100dad
MOV EAX,dword ptr [ESP + 0x70]
MOV EAX,dword ptr [EAX + 0x30]
TEST EAX,EAX
JZ 0x00101076
MOV dword ptr [ESP + 0x28],EDX
SUB ESP,0x4
PUSH EDI
PUSH dword ptr [ESP + 0x78]
PUSH EAX
MOV EBX,dword ptr [ESP + 0x1c]
CALL 0x0028b7d0
MOV byte ptr [ESP + 0x57],0x1
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x28]
JMP 0x00100f1e
MOV dword ptr [ESP + 0x28],EDX
SUB ESP,0xc
PUSH dword ptr [ESP + 0x7c]
MOV EBX,dword ptr [ESP + 0x1c]
CALL 0x0029c0e0
MOV EBX,dword ptr [ESP + 0x80]
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x28]
MOV dword ptr [EBX + 0x30],EAX
JMP 0x0010104f
PUSH ESI
MOV EBX,dword ptr [ESP + 0x10]
LEA EAX,[EBX + 0xffe7b240]
PUSH EAX
LEA EAX,[EBX + 0xffe7c4c8]
PUSH 0x919
PUSH EAX
CALL 0x002446e0
PUSH EBX
MOV EBX,dword ptr [ESP + 0x10]
LEA EAX,[EBX + 0xffe7b234]
PUSH EAX
LEA EAX,[EBX + 0xffe7c4c8]
PUSH 0xd0
PUSH EAX
CALL 0x002446e0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nvoid FUN_00100cf0(int param_1,int *param_2)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  uint uVar6;\n  uint uVar7;\n  bool bVar8;\n  uint uVar9;\n  int iVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  int iVar13;\n  uint uVar14;\n  uint *puVar15;\n  uint *puVar16;\n  bool bVar17;\n  undefined8 uVar18;\n  uint local_54;\n  uint local_50;\n  uint local_4c;\n  undefined1 local_25;\n  uint local_24;\n  int local_20;\n  uint uVar5;\n  \n  FUN_0031f3a0(param_1,param_2);\n  iVar1 = *param_2;\n  if (iVar1 == param_2[1]) {\n    return;\n  }\n  iVar10 = *(int *)(iVar1 + 4);\n  while (*(int *)(param_1 + 0x140) != iVar10) {\n    if (iVar1 + 0x1c == param_2[1]) {\n      return;\n    }\n    iVar10 = *(int *)(iVar1 + 0x20);\n    iVar1 = iVar1 + 0x1c;\n  }\n  uVar18 = FUN_00108170(param_1 + 0x90,*(int *)(param_1 + 0x140));\n  if ((int)((ulonglong)uVar18 >> 0x20) != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/powerpc.cc",0x919,"do_read_relocs",param_2);\n  }\n  if ((uint)uVar18 == 0) {\n    return;\n  }\n  uVar9 = (uint)uVar18 >> 4;\n  uVar14 = *(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4;\n  if (uVar14 < uVar9) {\n    FUN_000b2870();\n  }\n  else if ((uVar9 < uVar14) &&\n          (iVar10 = uVar9 * 0x10 + *(int *)(param_1 + 0x168), *(int *)(param_1 + 0x16c) != iVar10))\n  {\n    *(int *)(param_1 + 0x16c) = iVar10;\n  }\n  bVar8 = true;\n  iVar10 = *(int *)(param_2[3] + 8);\n  puVar15 = *(uint **)(*(int *)(iVar1 + 8) + 8);\n  uVar9 = *(uint *)(iVar1 + 0x10);\n  if (uVar9 != 0) {\n    local_4c = 0;\n    uVar14 = 0;\n    local_54 = 0;\n    local_50 = 0;\n    do {\n      while( true ) {\n        uVar12 = puVar15[2];\n        uVar2 = puVar15[3];\n        if (uVar12 != 0x26) break;\n        if (uVar2 < *(uint *)(param_1 + 0xb0)) {\n          iVar1 = iVar10 + uVar2 * 0x18;\n          uVar12 = (uint)*(ushort *)(iVar1 + 6);\n          if (uVar12 < 0xff00) {\n            local_25 = 1;\n          }\n          else if (uVar12 == 0xffff) {\n            iVar13 = *(int *)(param_1 + 0x30);\n            if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }\n            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);\n            local_25 = 1;\n          }\n          else {\n            local_25 = 0;\n          }\n          local_24 = *(uint *)(iVar1 + 8);\n          local_20 = *(int *)(iVar1 + 0xc);\n        }\n        else {\n          uVar12 = FUN_002986d0(param_1,uVar2,&local_24,&local_25);\n        }\n        uVar2 = puVar15[1];\n        uVar4 = puVar15[4];\n        uVar5 = puVar15[4];\n        uVar6 = puVar15[5];\n        uVar7 = *puVar15;\n        if ((uint)(*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4) <= uVar7 >> 4) {\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0("../../gold/powerpc.cc",0xd0,"set_opd_ent",uVar7);\n        }\n        puVar16 = (uint *)(*(int *)(param_1 + 0x168) + (uVar7 >> 4) * 0x10);\n        *puVar16 = uVar12;\n        puVar16[3] = local_20 + uVar6 + (uint)CARRY4(local_24,uVar4);\n        puVar16[2] = local_24 + uVar5;\n        uVar12 = uVar7;\n        uVar5 = uVar2;\n        uVar4 = uVar7;\n        if ((uVar14 != 2) &&\n           (uVar12 = local_54, uVar5 = local_50, uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54)) {\n          bVar8 = false;\n        }\n        local_4c = uVar4;\n        local_50 = uVar5;\n        local_54 = uVar12;\n        bVar17 = CARRY4(local_54,local_4c);\n        local_54 = local_54 + local_4c;\n        local_50 = local_50 + bVar17;\nLAB_00100e3b:\n        uVar14 = uVar14 + 1;\n        puVar15 = puVar15 + 6;\n        bVar17 = bVar8;\n        if (uVar9 == uVar14) goto LAB_00100e9d;\n      }\n      if (uVar12 == 0x33) {\n        if (puVar15[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||\n            *puVar15 != (local_54 + 8) - local_4c) {\n          bVar8 = false;\n        }\n        goto LAB_00100e3b;\n      }\n      uVar14 = uVar14 + 1;\n      puVar15 = puVar15 + 6;\n      uVar3 = *(undefined4 *)(param_1 + 4);\n      uVar11 = gettext("%s: unexpected reloc type %u in .opd section");\n      FUN_0023b840(uVar11,uVar3,uVar12);\n      bVar8 = false;\n      bVar17 = false;\n    } while (uVar9 != uVar14);\nLAB_00100e9d:\n    bVar8 = bVar17;\n    if (2 < uVar9) goto LAB_00100ea8;\n  }\n  local_4c = FUN_00108170(param_1 + 0x90,*(undefined4 *)(param_1 + 0x140));\nLAB_00100ea8:\n  if (((local_4c & 0xfffffff7) == 0x10) && (bVar8)) {\n    return;\n  }\n  uVar3 = *(undefined4 *)(param_1 + 4);\n  uVar11 = gettext("%s: .opd is not a regular array of opd entries");\n  FUN_0023b840(uVar11,uVar3);\n  return;\n}\n\n" comment (function_definition "void FUN_00100cf0(int param_1,int *param_2)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  uint uVar6;\n  uint uVar7;\n  bool bVar8;\n  uint uVar9;\n  int iVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  int iVar13;\n  uint uVar14;\n  uint *puVar15;\n  uint *puVar16;\n  bool bVar17;\n  undefined8 uVar18;\n  uint local_54;\n  uint local_50;\n  uint local_4c;\n  undefined1 local_25;\n  uint local_24;\n  int local_20;\n  uint uVar5;\n  \n  FUN_0031f3a0(param_1,param_2);\n  iVar1 = *param_2;\n  if (iVar1 == param_2[1]) {\n    return;\n  }\n  iVar10 = *(int *)(iVar1 + 4);\n  while (*(int *)(param_1 + 0x140) != iVar10) {\n    if (iVar1 + 0x1c == param_2[1]) {\n      return;\n    }\n    iVar10 = *(int *)(iVar1 + 0x20);\n    iVar1 = iVar1 + 0x1c;\n  }\n  uVar18 = FUN_00108170(param_1 + 0x90,*(int *)(param_1 + 0x140));\n  if ((int)((ulonglong)uVar18 >> 0x20) != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/powerpc.cc",0x919,"do_read_relocs",param_2);\n  }\n  if ((uint)uVar18 == 0) {\n    return;\n  }\n  uVar9 = (uint)uVar18 >> 4;\n  uVar14 = *(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4;\n  if (uVar14 < uVar9) {\n    FUN_000b2870();\n  }\n  else if ((uVar9 < uVar14) &&\n          (iVar10 = uVar9 * 0x10 + *(int *)(param_1 + 0x168), *(int *)(param_1 + 0x16c) != iVar10))\n  {\n    *(int *)(param_1 + 0x16c) = iVar10;\n  }\n  bVar8 = true;\n  iVar10 = *(int *)(param_2[3] + 8);\n  puVar15 = *(uint **)(*(int *)(iVar1 + 8) + 8);\n  uVar9 = *(uint *)(iVar1 + 0x10);\n  if (uVar9 != 0) {\n    local_4c = 0;\n    uVar14 = 0;\n    local_54 = 0;\n    local_50 = 0;\n    do {\n      while( true ) {\n        uVar12 = puVar15[2];\n        uVar2 = puVar15[3];\n        if (uVar12 != 0x26) break;\n        if (uVar2 < *(uint *)(param_1 + 0xb0)) {\n          iVar1 = iVar10 + uVar2 * 0x18;\n          uVar12 = (uint)*(ushort *)(iVar1 + 6);\n          if (uVar12 < 0xff00) {\n            local_25 = 1;\n          }\n          else if (uVar12 == 0xffff) {\n            iVar13 = *(int *)(param_1 + 0x30);\n            if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }\n            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);\n            local_25 = 1;\n          }\n          else {\n            local_25 = 0;\n          }\n          local_24 = *(uint *)(iVar1 + 8);\n          local_20 = *(int *)(iVar1 + 0xc);\n        }\n        else {\n          uVar12 = FUN_002986d0(param_1,uVar2,&local_24,&local_25);\n        }\n        uVar2 = puVar15[1];\n        uVar4 = puVar15[4];\n        uVar5 = puVar15[4];\n        uVar6 = puVar15[5];\n        uVar7 = *puVar15;\n        if ((uint)(*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4) <= uVar7 >> 4) {\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0("../../gold/powerpc.cc",0xd0,"set_opd_ent",uVar7);\n        }\n        puVar16 = (uint *)(*(int *)(param_1 + 0x168) + (uVar7 >> 4) * 0x10);\n        *puVar16 = uVar12;\n        puVar16[3] = local_20 + uVar6 + (uint)CARRY4(local_24,uVar4);\n        puVar16[2] = local_24 + uVar5;\n        uVar12 = uVar7;\n        uVar5 = uVar2;\n        uVar4 = uVar7;\n        if ((uVar14 != 2) &&\n           (uVar12 = local_54, uVar5 = local_50, uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54)) {\n          bVar8 = false;\n        }\n        local_4c = uVar4;\n        local_50 = uVar5;\n        local_54 = uVar12;\n        bVar17 = CARRY4(local_54,local_4c);\n        local_54 = local_54 + local_4c;\n        local_50 = local_50 + bVar17;\nLAB_00100e3b:\n        uVar14 = uVar14 + 1;\n        puVar15 = puVar15 + 6;\n        bVar17 = bVar8;\n        if (uVar9 == uVar14) goto LAB_00100e9d;\n      }\n      if (uVar12 == 0x33) {\n        if (puVar15[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||\n            *puVar15 != (local_54 + 8) - local_4c) {\n          bVar8 = false;\n        }\n        goto LAB_00100e3b;\n      }\n      uVar14 = uVar14 + 1;\n      puVar15 = puVar15 + 6;\n      uVar3 = *(undefined4 *)(param_1 + 4);\n      uVar11 = gettext("%s: unexpected reloc type %u in .opd section");\n      FUN_0023b840(uVar11,uVar3,uVar12);\n      bVar8 = false;\n      bVar17 = false;\n    } while (uVar9 != uVar14);\nLAB_00100e9d:\n    bVar8 = bVar17;\n    if (2 < uVar9) goto LAB_00100ea8;\n  }\n  local_4c = FUN_00108170(param_1 + 0x90,*(undefined4 *)(param_1 + 0x140));\nLAB_00100ea8:\n  if (((local_4c & 0xfffffff7) == 0x10) && (bVar8)) {\n    return;\n  }\n  uVar3 = *(undefined4 *)(param_1 + 4);\n  uVar11 = gettext("%s: .opd is not a regular array of opd entries");\n  FUN_0023b840(uVar11,uVar3);\n  return;\n}" primitive_type (function_declarator "FUN_00100cf0(int param_1,int *param_2)" identifier (parameter_list "(int param_1,int *param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  uint uVar6;\n  uint uVar7;\n  bool bVar8;\n  uint uVar9;\n  int iVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  int iVar13;\n  uint uVar14;\n  uint *puVar15;\n  uint *puVar16;\n  bool bVar17;\n  undefined8 uVar18;\n  uint local_54;\n  uint local_50;\n  uint local_4c;\n  undefined1 local_25;\n  uint local_24;\n  int local_20;\n  uint uVar5;\n  \n  FUN_0031f3a0(param_1,param_2);\n  iVar1 = *param_2;\n  if (iVar1 == param_2[1]) {\n    return;\n  }\n  iVar10 = *(int *)(iVar1 + 4);\n  while (*(int *)(param_1 + 0x140) != iVar10) {\n    if (iVar1 + 0x1c == param_2[1]) {\n      return;\n    }\n    iVar10 = *(int *)(iVar1 + 0x20);\n    iVar1 = iVar1 + 0x1c;\n  }\n  uVar18 = FUN_00108170(param_1 + 0x90,*(int *)(param_1 + 0x140));\n  if ((int)((ulonglong)uVar18 >> 0x20) != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/powerpc.cc",0x919,"do_read_relocs",param_2);\n  }\n  if ((uint)uVar18 == 0) {\n    return;\n  }\n  uVar9 = (uint)uVar18 >> 4;\n  uVar14 = *(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4;\n  if (uVar14 < uVar9) {\n    FUN_000b2870();\n  }\n  else if ((uVar9 < uVar14) &&\n          (iVar10 = uVar9 * 0x10 + *(int *)(param_1 + 0x168), *(int *)(param_1 + 0x16c) != iVar10))\n  {\n    *(int *)(param_1 + 0x16c) = iVar10;\n  }\n  bVar8 = true;\n  iVar10 = *(int *)(param_2[3] + 8);\n  puVar15 = *(uint **)(*(int *)(iVar1 + 8) + 8);\n  uVar9 = *(uint *)(iVar1 + 0x10);\n  if (uVar9 != 0) {\n    local_4c = 0;\n    uVar14 = 0;\n    local_54 = 0;\n    local_50 = 0;\n    do {\n      while( true ) {\n        uVar12 = puVar15[2];\n        uVar2 = puVar15[3];\n        if (uVar12 != 0x26) break;\n        if (uVar2 < *(uint *)(param_1 + 0xb0)) {\n          iVar1 = iVar10 + uVar2 * 0x18;\n          uVar12 = (uint)*(ushort *)(iVar1 + 6);\n          if (uVar12 < 0xff00) {\n            local_25 = 1;\n          }\n          else if (uVar12 == 0xffff) {\n            iVar13 = *(int *)(param_1 + 0x30);\n            if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }\n            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);\n            local_25 = 1;\n          }\n          else {\n            local_25 = 0;\n          }\n          local_24 = *(uint *)(iVar1 + 8);\n          local_20 = *(int *)(iVar1 + 0xc);\n        }\n        else {\n          uVar12 = FUN_002986d0(param_1,uVar2,&local_24,&local_25);\n        }\n        uVar2 = puVar15[1];\n        uVar4 = puVar15[4];\n        uVar5 = puVar15[4];\n        uVar6 = puVar15[5];\n        uVar7 = *puVar15;\n        if ((uint)(*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4) <= uVar7 >> 4) {\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0("../../gold/powerpc.cc",0xd0,"set_opd_ent",uVar7);\n        }\n        puVar16 = (uint *)(*(int *)(param_1 + 0x168) + (uVar7 >> 4) * 0x10);\n        *puVar16 = uVar12;\n        puVar16[3] = local_20 + uVar6 + (uint)CARRY4(local_24,uVar4);\n        puVar16[2] = local_24 + uVar5;\n        uVar12 = uVar7;\n        uVar5 = uVar2;\n        uVar4 = uVar7;\n        if ((uVar14 != 2) &&\n           (uVar12 = local_54, uVar5 = local_50, uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54)) {\n          bVar8 = false;\n        }\n        local_4c = uVar4;\n        local_50 = uVar5;\n        local_54 = uVar12;\n        bVar17 = CARRY4(local_54,local_4c);\n        local_54 = local_54 + local_4c;\n        local_50 = local_50 + bVar17;\nLAB_00100e3b:\n        uVar14 = uVar14 + 1;\n        puVar15 = puVar15 + 6;\n        bVar17 = bVar8;\n        if (uVar9 == uVar14) goto LAB_00100e9d;\n      }\n      if (uVar12 == 0x33) {\n        if (puVar15[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||\n            *puVar15 != (local_54 + 8) - local_4c) {\n          bVar8 = false;\n        }\n        goto LAB_00100e3b;\n      }\n      uVar14 = uVar14 + 1;\n      puVar15 = puVar15 + 6;\n      uVar3 = *(undefined4 *)(param_1 + 4);\n      uVar11 = gettext("%s: unexpected reloc type %u in .opd section");\n      FUN_0023b840(uVar11,uVar3,uVar12);\n      bVar8 = false;\n      bVar17 = false;\n    } while (uVar9 != uVar14);\nLAB_00100e9d:\n    bVar8 = bVar17;\n    if (2 < uVar9) goto LAB_00100ea8;\n  }\n  local_4c = FUN_00108170(param_1 + 0x90,*(undefined4 *)(param_1 + 0x140));\nLAB_00100ea8:\n  if (((local_4c & 0xfffffff7) == 0x10) && (bVar8)) {\n    return;\n  }\n  uVar3 = *(undefined4 *)(param_1 + 4);\n  uVar11 = gettext("%s: .opd is not a regular array of opd entries");\n  FUN_0023b840(uVar11,uVar3);\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "bool bVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "uint *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "uint *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "bool bVar17;" primitive_type identifier ;) (declaration "undefined8 uVar18;" type_identifier identifier ;) (declaration "uint local_54;" type_identifier identifier ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "uint local_4c;" type_identifier identifier ;) (declaration "undefined1 local_25;" type_identifier identifier ;) (declaration "uint local_24;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (expression_statement "FUN_0031f3a0(param_1,param_2);" (call_expression "FUN_0031f3a0(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier ))) ;) (expression_statement "iVar1 = *param_2;" (assignment_expression "iVar1 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (iVar1 == param_2[1]) {\n    return;\n  }" if (parenthesized_expression "(iVar1 == param_2[1])" ( (binary_expression "iVar1 == param_2[1]" identifier == (subscript_expression "param_2[1]" identifier [ number_literal ])) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "iVar10 = *(int *)(iVar1 + 4);" (assignment_expression "iVar10 = *(int *)(iVar1 + 4)" identifier = (pointer_expression "*(int *)(iVar1 + 4)" * (cast_expression "(int *)(iVar1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 4)" ( (binary_expression "iVar1 + 4" identifier + number_literal) ))))) ;) (while_statement "while (*(int *)(param_1 + 0x140) != iVar10) {\n    if (iVar1 + 0x1c == param_2[1]) {\n      return;\n    }\n    iVar10 = *(int *)(iVar1 + 0x20);\n    iVar1 = iVar1 + 0x1c;\n  }" while (parenthesized_expression "(*(int *)(param_1 + 0x140) != iVar10)" ( (binary_expression "*(int *)(param_1 + 0x140) != iVar10" (pointer_expression "*(int *)(param_1 + 0x140)" * (cast_expression "(int *)(param_1 + 0x140)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n    if (iVar1 + 0x1c == param_2[1]) {\n      return;\n    }\n    iVar10 = *(int *)(iVar1 + 0x20);\n    iVar1 = iVar1 + 0x1c;\n  }" { (if_statement "if (iVar1 + 0x1c == param_2[1]) {\n      return;\n    }" if (parenthesized_expression "(iVar1 + 0x1c == param_2[1])" ( (binary_expression "iVar1 + 0x1c == param_2[1]" (binary_expression "iVar1 + 0x1c" identifier + number_literal) == (subscript_expression "param_2[1]" identifier [ number_literal ])) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "iVar10 = *(int *)(iVar1 + 0x20);" (assignment_expression "iVar10 = *(int *)(iVar1 + 0x20)" identifier = (pointer_expression "*(int *)(iVar1 + 0x20)" * (cast_expression "(int *)(iVar1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x20)" ( (binary_expression "iVar1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = iVar1 + 0x1c;" (assignment_expression "iVar1 = iVar1 + 0x1c" identifier = (binary_expression "iVar1 + 0x1c" identifier + number_literal)) ;) })) (expression_statement "uVar18 = FUN_00108170(param_1 + 0x90,*(int *)(param_1 + 0x140));" (assignment_expression "uVar18 = FUN_00108170(param_1 + 0x90,*(int *)(param_1 + 0x140))" identifier = (call_expression "FUN_00108170(param_1 + 0x90,*(int *)(param_1 + 0x140))" identifier (argument_list "(param_1 + 0x90,*(int *)(param_1 + 0x140))" ( (binary_expression "param_1 + 0x90" identifier + number_literal) , (pointer_expression "*(int *)(param_1 + 0x140)" * (cast_expression "(int *)(param_1 + 0x140)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) )))) ;) (if_statement "if ((int)((ulonglong)uVar18 >> 0x20) != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/powerpc.cc",0x919,"do_read_relocs",param_2);\n  }" if (parenthesized_expression "((int)((ulonglong)uVar18 >> 0x20) != 0)" ( (binary_expression "(int)((ulonglong)uVar18 >> 0x20) != 0" (cast_expression "(int)((ulonglong)uVar18 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar18 >> 0x20)" ( (binary_expression "(ulonglong)uVar18 >> 0x20" (cast_expression "(ulonglong)uVar18" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/powerpc.cc",0x919,"do_read_relocs",param_2);\n  }" { comment (expression_statement "FUN_002446e0("../../gold/powerpc.cc",0x919,"do_read_relocs",param_2);" (call_expression "FUN_002446e0("../../gold/powerpc.cc",0x919,"do_read_relocs",param_2)" identifier (argument_list "("../../gold/powerpc.cc",0x919,"do_read_relocs",param_2)" ( (string_literal ""../../gold/powerpc.cc"" " string_content ") , number_literal , (string_literal ""do_read_relocs"" " string_content ") , identifier ))) ;) })) (if_statement "if ((uint)uVar18 == 0) {\n    return;\n  }" if (parenthesized_expression "((uint)uVar18 == 0)" ( (binary_expression "(uint)uVar18 == 0" (cast_expression "(uint)uVar18" ( (type_descriptor "uint" type_identifier) ) identifier) == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "uVar9 = (uint)uVar18 >> 4;" (assignment_expression "uVar9 = (uint)uVar18 >> 4" identifier = (binary_expression "(uint)uVar18 >> 4" (cast_expression "(uint)uVar18" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal)) ;) (expression_statement "uVar14 = *(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4;" (assignment_expression "uVar14 = *(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4" identifier = (binary_expression "*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4" (binary_expression "*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168)" (pointer_expression "*(int *)(param_1 + 0x16c)" * (cast_expression "(int *)(param_1 + 0x16c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x16c)" ( (binary_expression "param_1 + 0x16c" identifier + number_literal) )))) - (pointer_expression "*(int *)(param_1 + 0x168)" * (cast_expression "(int *)(param_1 + 0x168)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x168)" ( (binary_expression "param_1 + 0x168" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (uVar14 < uVar9) {\n    FUN_000b2870();\n  }\n  else if ((uVar9 < uVar14) &&\n          (iVar10 = uVar9 * 0x10 + *(int *)(param_1 + 0x168), *(int *)(param_1 + 0x16c) != iVar10))\n  {\n    *(int *)(param_1 + 0x16c) = iVar10;\n  }" if (parenthesized_expression "(uVar14 < uVar9)" ( (binary_expression "uVar14 < uVar9" identifier < identifier) )) (compound_statement "{\n    FUN_000b2870();\n  }" { (expression_statement "FUN_000b2870();" (call_expression "FUN_000b2870()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else if ((uVar9 < uVar14) &&\n          (iVar10 = uVar9 * 0x10 + *(int *)(param_1 + 0x168), *(int *)(param_1 + 0x16c) != iVar10))\n  {\n    *(int *)(param_1 + 0x16c) = iVar10;\n  }" else (if_statement "if ((uVar9 < uVar14) &&\n          (iVar10 = uVar9 * 0x10 + *(int *)(param_1 + 0x168), *(int *)(param_1 + 0x16c) != iVar10))\n  {\n    *(int *)(param_1 + 0x16c) = iVar10;\n  }" if (parenthesized_expression "((uVar9 < uVar14) &&\n          (iVar10 = uVar9 * 0x10 + *(int *)(param_1 + 0x168), *(int *)(param_1 + 0x16c) != iVar10))" ( (binary_expression "(uVar9 < uVar14) &&\n          (iVar10 = uVar9 * 0x10 + *(int *)(param_1 + 0x168), *(int *)(param_1 + 0x16c) != iVar10)" (parenthesized_expression "(uVar9 < uVar14)" ( (binary_expression "uVar9 < uVar14" identifier < identifier) )) && (parenthesized_expression "(iVar10 = uVar9 * 0x10 + *(int *)(param_1 + 0x168), *(int *)(param_1 + 0x16c) != iVar10)" ( (comma_expression "iVar10 = uVar9 * 0x10 + *(int *)(param_1 + 0x168), *(int *)(param_1 + 0x16c) != iVar10" (assignment_expression "iVar10 = uVar9 * 0x10 + *(int *)(param_1 + 0x168)" identifier = (binary_expression "uVar9 * 0x10 + *(int *)(param_1 + 0x168)" (binary_expression "uVar9 * 0x10" identifier * number_literal) + (pointer_expression "*(int *)(param_1 + 0x168)" * (cast_expression "(int *)(param_1 + 0x168)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x168)" ( (binary_expression "param_1 + 0x168" identifier + number_literal) )))))) , (binary_expression "*(int *)(param_1 + 0x16c) != iVar10" (pointer_expression "*(int *)(param_1 + 0x16c)" * (cast_expression "(int *)(param_1 + 0x16c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x16c)" ( (binary_expression "param_1 + 0x16c" identifier + number_literal) )))) != identifier)) ))) )) (compound_statement "{\n    *(int *)(param_1 + 0x16c) = iVar10;\n  }" { (expression_statement "*(int *)(param_1 + 0x16c) = iVar10;" (assignment_expression "*(int *)(param_1 + 0x16c) = iVar10" (pointer_expression "*(int *)(param_1 + 0x16c)" * (cast_expression "(int *)(param_1 + 0x16c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x16c)" ( (binary_expression "param_1 + 0x16c" identifier + number_literal) )))) = identifier) ;) })))) (expression_statement "bVar8 = true;" (assignment_expression "bVar8 = true" identifier = true) ;) (expression_statement "iVar10 = *(int *)(param_2[3] + 8);" (assignment_expression "iVar10 = *(int *)(param_2[3] + 8)" identifier = (pointer_expression "*(int *)(param_2[3] + 8)" * (cast_expression "(int *)(param_2[3] + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[3] + 8)" ( (binary_expression "param_2[3] + 8" (subscript_expression "param_2[3]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "puVar15 = *(uint **)(*(int *)(iVar1 + 8) + 8);" (assignment_expression "puVar15 = *(uint **)(*(int *)(iVar1 + 8) + 8)" identifier = (pointer_expression "*(uint **)(*(int *)(iVar1 + 8) + 8)" * (cast_expression "(uint **)(*(int *)(iVar1 + 8) + 8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar1 + 8) + 8)" ( (binary_expression "*(int *)(iVar1 + 8) + 8" (pointer_expression "*(int *)(iVar1 + 8)" * (cast_expression "(int *)(iVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar9 = *(uint *)(iVar1 + 0x10);" (assignment_expression "uVar9 = *(uint *)(iVar1 + 0x10)" identifier = (pointer_expression "*(uint *)(iVar1 + 0x10)" * (cast_expression "(uint *)(iVar1 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x10)" ( (binary_expression "iVar1 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (uVar9 != 0) {\n    local_4c = 0;\n    uVar14 = 0;\n    local_54 = 0;\n    local_50 = 0;\n    do {\n      while( true ) {\n        uVar12 = puVar15[2];\n        uVar2 = puVar15[3];\n        if (uVar12 != 0x26) break;\n        if (uVar2 < *(uint *)(param_1 + 0xb0)) {\n          iVar1 = iVar10 + uVar2 * 0x18;\n          uVar12 = (uint)*(ushort *)(iVar1 + 6);\n          if (uVar12 < 0xff00) {\n            local_25 = 1;\n          }\n          else if (uVar12 == 0xffff) {\n            iVar13 = *(int *)(param_1 + 0x30);\n            if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }\n            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);\n            local_25 = 1;\n          }\n          else {\n            local_25 = 0;\n          }\n          local_24 = *(uint *)(iVar1 + 8);\n          local_20 = *(int *)(iVar1 + 0xc);\n        }\n        else {\n          uVar12 = FUN_002986d0(param_1,uVar2,&local_24,&local_25);\n        }\n        uVar2 = puVar15[1];\n        uVar4 = puVar15[4];\n        uVar5 = puVar15[4];\n        uVar6 = puVar15[5];\n        uVar7 = *puVar15;\n        if ((uint)(*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4) <= uVar7 >> 4) {\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0("../../gold/powerpc.cc",0xd0,"set_opd_ent",uVar7);\n        }\n        puVar16 = (uint *)(*(int *)(param_1 + 0x168) + (uVar7 >> 4) * 0x10);\n        *puVar16 = uVar12;\n        puVar16[3] = local_20 + uVar6 + (uint)CARRY4(local_24,uVar4);\n        puVar16[2] = local_24 + uVar5;\n        uVar12 = uVar7;\n        uVar5 = uVar2;\n        uVar4 = uVar7;\n        if ((uVar14 != 2) &&\n           (uVar12 = local_54, uVar5 = local_50, uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54)) {\n          bVar8 = false;\n        }\n        local_4c = uVar4;\n        local_50 = uVar5;\n        local_54 = uVar12;\n        bVar17 = CARRY4(local_54,local_4c);\n        local_54 = local_54 + local_4c;\n        local_50 = local_50 + bVar17;\nLAB_00100e3b:\n        uVar14 = uVar14 + 1;\n        puVar15 = puVar15 + 6;\n        bVar17 = bVar8;\n        if (uVar9 == uVar14) goto LAB_00100e9d;\n      }\n      if (uVar12 == 0x33) {\n        if (puVar15[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||\n            *puVar15 != (local_54 + 8) - local_4c) {\n          bVar8 = false;\n        }\n        goto LAB_00100e3b;\n      }\n      uVar14 = uVar14 + 1;\n      puVar15 = puVar15 + 6;\n      uVar3 = *(undefined4 *)(param_1 + 4);\n      uVar11 = gettext("%s: unexpected reloc type %u in .opd section");\n      FUN_0023b840(uVar11,uVar3,uVar12);\n      bVar8 = false;\n      bVar17 = false;\n    } while (uVar9 != uVar14);\nLAB_00100e9d:\n    bVar8 = bVar17;\n    if (2 < uVar9) goto LAB_00100ea8;\n  }" if (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) (compound_statement "{\n    local_4c = 0;\n    uVar14 = 0;\n    local_54 = 0;\n    local_50 = 0;\n    do {\n      while( true ) {\n        uVar12 = puVar15[2];\n        uVar2 = puVar15[3];\n        if (uVar12 != 0x26) break;\n        if (uVar2 < *(uint *)(param_1 + 0xb0)) {\n          iVar1 = iVar10 + uVar2 * 0x18;\n          uVar12 = (uint)*(ushort *)(iVar1 + 6);\n          if (uVar12 < 0xff00) {\n            local_25 = 1;\n          }\n          else if (uVar12 == 0xffff) {\n            iVar13 = *(int *)(param_1 + 0x30);\n            if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }\n            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);\n            local_25 = 1;\n          }\n          else {\n            local_25 = 0;\n          }\n          local_24 = *(uint *)(iVar1 + 8);\n          local_20 = *(int *)(iVar1 + 0xc);\n        }\n        else {\n          uVar12 = FUN_002986d0(param_1,uVar2,&local_24,&local_25);\n        }\n        uVar2 = puVar15[1];\n        uVar4 = puVar15[4];\n        uVar5 = puVar15[4];\n        uVar6 = puVar15[5];\n        uVar7 = *puVar15;\n        if ((uint)(*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4) <= uVar7 >> 4) {\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0("../../gold/powerpc.cc",0xd0,"set_opd_ent",uVar7);\n        }\n        puVar16 = (uint *)(*(int *)(param_1 + 0x168) + (uVar7 >> 4) * 0x10);\n        *puVar16 = uVar12;\n        puVar16[3] = local_20 + uVar6 + (uint)CARRY4(local_24,uVar4);\n        puVar16[2] = local_24 + uVar5;\n        uVar12 = uVar7;\n        uVar5 = uVar2;\n        uVar4 = uVar7;\n        if ((uVar14 != 2) &&\n           (uVar12 = local_54, uVar5 = local_50, uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54)) {\n          bVar8 = false;\n        }\n        local_4c = uVar4;\n        local_50 = uVar5;\n        local_54 = uVar12;\n        bVar17 = CARRY4(local_54,local_4c);\n        local_54 = local_54 + local_4c;\n        local_50 = local_50 + bVar17;\nLAB_00100e3b:\n        uVar14 = uVar14 + 1;\n        puVar15 = puVar15 + 6;\n        bVar17 = bVar8;\n        if (uVar9 == uVar14) goto LAB_00100e9d;\n      }\n      if (uVar12 == 0x33) {\n        if (puVar15[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||\n            *puVar15 != (local_54 + 8) - local_4c) {\n          bVar8 = false;\n        }\n        goto LAB_00100e3b;\n      }\n      uVar14 = uVar14 + 1;\n      puVar15 = puVar15 + 6;\n      uVar3 = *(undefined4 *)(param_1 + 4);\n      uVar11 = gettext("%s: unexpected reloc type %u in .opd section");\n      FUN_0023b840(uVar11,uVar3,uVar12);\n      bVar8 = false;\n      bVar17 = false;\n    } while (uVar9 != uVar14);\nLAB_00100e9d:\n    bVar8 = bVar17;\n    if (2 < uVar9) goto LAB_00100ea8;\n  }" { (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (do_statement "do {\n      while( true ) {\n        uVar12 = puVar15[2];\n        uVar2 = puVar15[3];\n        if (uVar12 != 0x26) break;\n        if (uVar2 < *(uint *)(param_1 + 0xb0)) {\n          iVar1 = iVar10 + uVar2 * 0x18;\n          uVar12 = (uint)*(ushort *)(iVar1 + 6);\n          if (uVar12 < 0xff00) {\n            local_25 = 1;\n          }\n          else if (uVar12 == 0xffff) {\n            iVar13 = *(int *)(param_1 + 0x30);\n            if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }\n            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);\n            local_25 = 1;\n          }\n          else {\n            local_25 = 0;\n          }\n          local_24 = *(uint *)(iVar1 + 8);\n          local_20 = *(int *)(iVar1 + 0xc);\n        }\n        else {\n          uVar12 = FUN_002986d0(param_1,uVar2,&local_24,&local_25);\n        }\n        uVar2 = puVar15[1];\n        uVar4 = puVar15[4];\n        uVar5 = puVar15[4];\n        uVar6 = puVar15[5];\n        uVar7 = *puVar15;\n        if ((uint)(*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4) <= uVar7 >> 4) {\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0("../../gold/powerpc.cc",0xd0,"set_opd_ent",uVar7);\n        }\n        puVar16 = (uint *)(*(int *)(param_1 + 0x168) + (uVar7 >> 4) * 0x10);\n        *puVar16 = uVar12;\n        puVar16[3] = local_20 + uVar6 + (uint)CARRY4(local_24,uVar4);\n        puVar16[2] = local_24 + uVar5;\n        uVar12 = uVar7;\n        uVar5 = uVar2;\n        uVar4 = uVar7;\n        if ((uVar14 != 2) &&\n           (uVar12 = local_54, uVar5 = local_50, uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54)) {\n          bVar8 = false;\n        }\n        local_4c = uVar4;\n        local_50 = uVar5;\n        local_54 = uVar12;\n        bVar17 = CARRY4(local_54,local_4c);\n        local_54 = local_54 + local_4c;\n        local_50 = local_50 + bVar17;\nLAB_00100e3b:\n        uVar14 = uVar14 + 1;\n        puVar15 = puVar15 + 6;\n        bVar17 = bVar8;\n        if (uVar9 == uVar14) goto LAB_00100e9d;\n      }\n      if (uVar12 == 0x33) {\n        if (puVar15[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||\n            *puVar15 != (local_54 + 8) - local_4c) {\n          bVar8 = false;\n        }\n        goto LAB_00100e3b;\n      }\n      uVar14 = uVar14 + 1;\n      puVar15 = puVar15 + 6;\n      uVar3 = *(undefined4 *)(param_1 + 4);\n      uVar11 = gettext("%s: unexpected reloc type %u in .opd section");\n      FUN_0023b840(uVar11,uVar3,uVar12);\n      bVar8 = false;\n      bVar17 = false;\n    } while (uVar9 != uVar14);" do (compound_statement "{\n      while( true ) {\n        uVar12 = puVar15[2];\n        uVar2 = puVar15[3];\n        if (uVar12 != 0x26) break;\n        if (uVar2 < *(uint *)(param_1 + 0xb0)) {\n          iVar1 = iVar10 + uVar2 * 0x18;\n          uVar12 = (uint)*(ushort *)(iVar1 + 6);\n          if (uVar12 < 0xff00) {\n            local_25 = 1;\n          }\n          else if (uVar12 == 0xffff) {\n            iVar13 = *(int *)(param_1 + 0x30);\n            if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }\n            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);\n            local_25 = 1;\n          }\n          else {\n            local_25 = 0;\n          }\n          local_24 = *(uint *)(iVar1 + 8);\n          local_20 = *(int *)(iVar1 + 0xc);\n        }\n        else {\n          uVar12 = FUN_002986d0(param_1,uVar2,&local_24,&local_25);\n        }\n        uVar2 = puVar15[1];\n        uVar4 = puVar15[4];\n        uVar5 = puVar15[4];\n        uVar6 = puVar15[5];\n        uVar7 = *puVar15;\n        if ((uint)(*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4) <= uVar7 >> 4) {\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0("../../gold/powerpc.cc",0xd0,"set_opd_ent",uVar7);\n        }\n        puVar16 = (uint *)(*(int *)(param_1 + 0x168) + (uVar7 >> 4) * 0x10);\n        *puVar16 = uVar12;\n        puVar16[3] = local_20 + uVar6 + (uint)CARRY4(local_24,uVar4);\n        puVar16[2] = local_24 + uVar5;\n        uVar12 = uVar7;\n        uVar5 = uVar2;\n        uVar4 = uVar7;\n        if ((uVar14 != 2) &&\n           (uVar12 = local_54, uVar5 = local_50, uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54)) {\n          bVar8 = false;\n        }\n        local_4c = uVar4;\n        local_50 = uVar5;\n        local_54 = uVar12;\n        bVar17 = CARRY4(local_54,local_4c);\n        local_54 = local_54 + local_4c;\n        local_50 = local_50 + bVar17;\nLAB_00100e3b:\n        uVar14 = uVar14 + 1;\n        puVar15 = puVar15 + 6;\n        bVar17 = bVar8;\n        if (uVar9 == uVar14) goto LAB_00100e9d;\n      }\n      if (uVar12 == 0x33) {\n        if (puVar15[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||\n            *puVar15 != (local_54 + 8) - local_4c) {\n          bVar8 = false;\n        }\n        goto LAB_00100e3b;\n      }\n      uVar14 = uVar14 + 1;\n      puVar15 = puVar15 + 6;\n      uVar3 = *(undefined4 *)(param_1 + 4);\n      uVar11 = gettext("%s: unexpected reloc type %u in .opd section");\n      FUN_0023b840(uVar11,uVar3,uVar12);\n      bVar8 = false;\n      bVar17 = false;\n    }" { (while_statement "while( true ) {\n        uVar12 = puVar15[2];\n        uVar2 = puVar15[3];\n        if (uVar12 != 0x26) break;\n        if (uVar2 < *(uint *)(param_1 + 0xb0)) {\n          iVar1 = iVar10 + uVar2 * 0x18;\n          uVar12 = (uint)*(ushort *)(iVar1 + 6);\n          if (uVar12 < 0xff00) {\n            local_25 = 1;\n          }\n          else if (uVar12 == 0xffff) {\n            iVar13 = *(int *)(param_1 + 0x30);\n            if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }\n            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);\n            local_25 = 1;\n          }\n          else {\n            local_25 = 0;\n          }\n          local_24 = *(uint *)(iVar1 + 8);\n          local_20 = *(int *)(iVar1 + 0xc);\n        }\n        else {\n          uVar12 = FUN_002986d0(param_1,uVar2,&local_24,&local_25);\n        }\n        uVar2 = puVar15[1];\n        uVar4 = puVar15[4];\n        uVar5 = puVar15[4];\n        uVar6 = puVar15[5];\n        uVar7 = *puVar15;\n        if ((uint)(*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4) <= uVar7 >> 4) {\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0("../../gold/powerpc.cc",0xd0,"set_opd_ent",uVar7);\n        }\n        puVar16 = (uint *)(*(int *)(param_1 + 0x168) + (uVar7 >> 4) * 0x10);\n        *puVar16 = uVar12;\n        puVar16[3] = local_20 + uVar6 + (uint)CARRY4(local_24,uVar4);\n        puVar16[2] = local_24 + uVar5;\n        uVar12 = uVar7;\n        uVar5 = uVar2;\n        uVar4 = uVar7;\n        if ((uVar14 != 2) &&\n           (uVar12 = local_54, uVar5 = local_50, uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54)) {\n          bVar8 = false;\n        }\n        local_4c = uVar4;\n        local_50 = uVar5;\n        local_54 = uVar12;\n        bVar17 = CARRY4(local_54,local_4c);\n        local_54 = local_54 + local_4c;\n        local_50 = local_50 + bVar17;\nLAB_00100e3b:\n        uVar14 = uVar14 + 1;\n        puVar15 = puVar15 + 6;\n        bVar17 = bVar8;\n        if (uVar9 == uVar14) goto LAB_00100e9d;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        uVar12 = puVar15[2];\n        uVar2 = puVar15[3];\n        if (uVar12 != 0x26) break;\n        if (uVar2 < *(uint *)(param_1 + 0xb0)) {\n          iVar1 = iVar10 + uVar2 * 0x18;\n          uVar12 = (uint)*(ushort *)(iVar1 + 6);\n          if (uVar12 < 0xff00) {\n            local_25 = 1;\n          }\n          else if (uVar12 == 0xffff) {\n            iVar13 = *(int *)(param_1 + 0x30);\n            if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }\n            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);\n            local_25 = 1;\n          }\n          else {\n            local_25 = 0;\n          }\n          local_24 = *(uint *)(iVar1 + 8);\n          local_20 = *(int *)(iVar1 + 0xc);\n        }\n        else {\n          uVar12 = FUN_002986d0(param_1,uVar2,&local_24,&local_25);\n        }\n        uVar2 = puVar15[1];\n        uVar4 = puVar15[4];\n        uVar5 = puVar15[4];\n        uVar6 = puVar15[5];\n        uVar7 = *puVar15;\n        if ((uint)(*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4) <= uVar7 >> 4) {\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0("../../gold/powerpc.cc",0xd0,"set_opd_ent",uVar7);\n        }\n        puVar16 = (uint *)(*(int *)(param_1 + 0x168) + (uVar7 >> 4) * 0x10);\n        *puVar16 = uVar12;\n        puVar16[3] = local_20 + uVar6 + (uint)CARRY4(local_24,uVar4);\n        puVar16[2] = local_24 + uVar5;\n        uVar12 = uVar7;\n        uVar5 = uVar2;\n        uVar4 = uVar7;\n        if ((uVar14 != 2) &&\n           (uVar12 = local_54, uVar5 = local_50, uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54)) {\n          bVar8 = false;\n        }\n        local_4c = uVar4;\n        local_50 = uVar5;\n        local_54 = uVar12;\n        bVar17 = CARRY4(local_54,local_4c);\n        local_54 = local_54 + local_4c;\n        local_50 = local_50 + bVar17;\nLAB_00100e3b:\n        uVar14 = uVar14 + 1;\n        puVar15 = puVar15 + 6;\n        bVar17 = bVar8;\n        if (uVar9 == uVar14) goto LAB_00100e9d;\n      }" { (expression_statement "uVar12 = puVar15[2];" (assignment_expression "uVar12 = puVar15[2]" identifier = (subscript_expression "puVar15[2]" identifier [ number_literal ])) ;) (expression_statement "uVar2 = puVar15[3];" (assignment_expression "uVar2 = puVar15[3]" identifier = (subscript_expression "puVar15[3]" identifier [ number_literal ])) ;) (if_statement "if (uVar12 != 0x26) break;" if (parenthesized_expression "(uVar12 != 0x26)" ( (binary_expression "uVar12 != 0x26" identifier != number_literal) )) (break_statement "break;" break ;)) (if_statement "if (uVar2 < *(uint *)(param_1 + 0xb0)) {\n          iVar1 = iVar10 + uVar2 * 0x18;\n          uVar12 = (uint)*(ushort *)(iVar1 + 6);\n          if (uVar12 < 0xff00) {\n            local_25 = 1;\n          }\n          else if (uVar12 == 0xffff) {\n            iVar13 = *(int *)(param_1 + 0x30);\n            if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }\n            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);\n            local_25 = 1;\n          }\n          else {\n            local_25 = 0;\n          }\n          local_24 = *(uint *)(iVar1 + 8);\n          local_20 = *(int *)(iVar1 + 0xc);\n        }\n        else {\n          uVar12 = FUN_002986d0(param_1,uVar2,&local_24,&local_25);\n        }" if (parenthesized_expression "(uVar2 < *(uint *)(param_1 + 0xb0))" ( (binary_expression "uVar2 < *(uint *)(param_1 + 0xb0)" identifier < (pointer_expression "*(uint *)(param_1 + 0xb0)" * (cast_expression "(uint *)(param_1 + 0xb0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb0)" ( (binary_expression "param_1 + 0xb0" identifier + number_literal) ))))) )) (compound_statement "{\n          iVar1 = iVar10 + uVar2 * 0x18;\n          uVar12 = (uint)*(ushort *)(iVar1 + 6);\n          if (uVar12 < 0xff00) {\n            local_25 = 1;\n          }\n          else if (uVar12 == 0xffff) {\n            iVar13 = *(int *)(param_1 + 0x30);\n            if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }\n            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);\n            local_25 = 1;\n          }\n          else {\n            local_25 = 0;\n          }\n          local_24 = *(uint *)(iVar1 + 8);\n          local_20 = *(int *)(iVar1 + 0xc);\n        }" { (expression_statement "iVar1 = iVar10 + uVar2 * 0x18;" (assignment_expression "iVar1 = iVar10 + uVar2 * 0x18" identifier = (binary_expression "iVar10 + uVar2 * 0x18" identifier + (binary_expression "uVar2 * 0x18" identifier * number_literal))) ;) (expression_statement "uVar12 = (uint)*(ushort *)(iVar1 + 6);" (assignment_expression "uVar12 = (uint)*(ushort *)(iVar1 + 6)" identifier = (binary_expression "(uint)*(ushort *)(iVar1 + 6)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(iVar1 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 6)" ( (binary_expression "iVar1 + 6" identifier + number_literal) ))))) ;) (if_statement "if (uVar12 < 0xff00) {\n            local_25 = 1;\n          }\n          else if (uVar12 == 0xffff) {\n            iVar13 = *(int *)(param_1 + 0x30);\n            if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }\n            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);\n            local_25 = 1;\n          }\n          else {\n            local_25 = 0;\n          }" if (parenthesized_expression "(uVar12 < 0xff00)" ( (binary_expression "uVar12 < 0xff00" identifier < number_literal) )) (compound_statement "{\n            local_25 = 1;\n          }" { (expression_statement "local_25 = 1;" (assignment_expression "local_25 = 1" identifier = number_literal) ;) }) (else_clause "else if (uVar12 == 0xffff) {\n            iVar13 = *(int *)(param_1 + 0x30);\n            if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }\n            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);\n            local_25 = 1;\n          }\n          else {\n            local_25 = 0;\n          }" else (if_statement "if (uVar12 == 0xffff) {\n            iVar13 = *(int *)(param_1 + 0x30);\n            if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }\n            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);\n            local_25 = 1;\n          }\n          else {\n            local_25 = 0;\n          }" if (parenthesized_expression "(uVar12 == 0xffff)" ( (binary_expression "uVar12 == 0xffff" identifier == number_literal) )) (compound_statement "{\n            iVar13 = *(int *)(param_1 + 0x30);\n            if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }\n            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);\n            local_25 = 1;\n          }" { (expression_statement "iVar13 = *(int *)(param_1 + 0x30);" (assignment_expression "iVar13 = *(int *)(param_1 + 0x30)" identifier = (pointer_expression "*(int *)(param_1 + 0x30)" * (cast_expression "(int *)(param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }" { (expression_statement "iVar13 = FUN_0029c0e0(param_1);" (assignment_expression "iVar13 = FUN_0029c0e0(param_1)" identifier = (call_expression "FUN_0029c0e0(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "*(int *)(param_1 + 0x30) = iVar13;" (assignment_expression "*(int *)(param_1 + 0x30) = iVar13" (pointer_expression "*(int *)(param_1 + 0x30)" * (cast_expression "(int *)(param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);" (assignment_expression "uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2)" identifier = (call_expression "FUN_0028b7d0(iVar13,param_1,uVar2)" identifier (argument_list "(iVar13,param_1,uVar2)" ( identifier , identifier , identifier )))) ;) (expression_statement "local_25 = 1;" (assignment_expression "local_25 = 1" identifier = number_literal) ;) }) (else_clause "else {\n            local_25 = 0;\n          }" else (compound_statement "{\n            local_25 = 0;\n          }" { (expression_statement "local_25 = 0;" (assignment_expression "local_25 = 0" identifier = number_literal) ;) }))))) (expression_statement "local_24 = *(uint *)(iVar1 + 8);" (assignment_expression "local_24 = *(uint *)(iVar1 + 8)" identifier = (pointer_expression "*(uint *)(iVar1 + 8)" * (cast_expression "(uint *)(iVar1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_20 = *(int *)(iVar1 + 0xc);" (assignment_expression "local_20 = *(int *)(iVar1 + 0xc)" identifier = (pointer_expression "*(int *)(iVar1 + 0xc)" * (cast_expression "(int *)(iVar1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xc)" ( (binary_expression "iVar1 + 0xc" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          uVar12 = FUN_002986d0(param_1,uVar2,&local_24,&local_25);\n        }" else (compound_statement "{\n          uVar12 = FUN_002986d0(param_1,uVar2,&local_24,&local_25);\n        }" { (expression_statement "uVar12 = FUN_002986d0(param_1,uVar2,&local_24,&local_25);" (assignment_expression "uVar12 = FUN_002986d0(param_1,uVar2,&local_24,&local_25)" identifier = (call_expression "FUN_002986d0(param_1,uVar2,&local_24,&local_25)" identifier (argument_list "(param_1,uVar2,&local_24,&local_25)" ( identifier , identifier , (pointer_expression "&local_24" & identifier) , (pointer_expression "&local_25" & identifier) )))) ;) }))) (expression_statement "uVar2 = puVar15[1];" (assignment_expression "uVar2 = puVar15[1]" identifier = (subscript_expression "puVar15[1]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = puVar15[4];" (assignment_expression "uVar4 = puVar15[4]" identifier = (subscript_expression "puVar15[4]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = puVar15[4];" (assignment_expression "uVar5 = puVar15[4]" identifier = (subscript_expression "puVar15[4]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = puVar15[5];" (assignment_expression "uVar6 = puVar15[5]" identifier = (subscript_expression "puVar15[5]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = *puVar15;" (assignment_expression "uVar7 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;) (if_statement "if ((uint)(*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4) <= uVar7 >> 4) {\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0("../../gold/powerpc.cc",0xd0,"set_opd_ent",uVar7);\n        }" if (parenthesized_expression "((uint)(*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4) <= uVar7 >> 4)" ( (binary_expression "(uint)(*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4) <= uVar7 >> 4" (call_expression "(uint)(*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4)" ( (binary_expression "*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4" (binary_expression "*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168)" (pointer_expression "*(int *)(param_1 + 0x16c)" * (cast_expression "(int *)(param_1 + 0x16c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x16c)" ( (binary_expression "param_1 + 0x16c" identifier + number_literal) )))) - (pointer_expression "*(int *)(param_1 + 0x168)" * (cast_expression "(int *)(param_1 + 0x168)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x168)" ( (binary_expression "param_1 + 0x168" identifier + number_literal) ))))) >> number_literal) ))) <= (binary_expression "uVar7 >> 4" identifier >> number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0("../../gold/powerpc.cc",0xd0,"set_opd_ent",uVar7);\n        }" { comment (expression_statement "FUN_002446e0("../../gold/powerpc.cc",0xd0,"set_opd_ent",uVar7);" (call_expression "FUN_002446e0("../../gold/powerpc.cc",0xd0,"set_opd_ent",uVar7)" identifier (argument_list "("../../gold/powerpc.cc",0xd0,"set_opd_ent",uVar7)" ( (string_literal ""../../gold/powerpc.cc"" " string_content ") , number_literal , (string_literal ""set_opd_ent"" " string_content ") , identifier ))) ;) })) (expression_statement "puVar16 = (uint *)(*(int *)(param_1 + 0x168) + (uVar7 >> 4) * 0x10);" (assignment_expression "puVar16 = (uint *)(*(int *)(param_1 + 0x168) + (uVar7 >> 4) * 0x10)" identifier = (cast_expression "(uint *)(*(int *)(param_1 + 0x168) + (uVar7 >> 4) * 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x168) + (uVar7 >> 4) * 0x10)" ( (binary_expression "*(int *)(param_1 + 0x168) + (uVar7 >> 4) * 0x10" (pointer_expression "*(int *)(param_1 + 0x168)" * (cast_expression "(int *)(param_1 + 0x168)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x168)" ( (binary_expression "param_1 + 0x168" identifier + number_literal) )))) + (binary_expression "(uVar7 >> 4) * 0x10" (parenthesized_expression "(uVar7 >> 4)" ( (binary_expression "uVar7 >> 4" identifier >> number_literal) )) * number_literal)) )))) ;) (expression_statement "*puVar16 = uVar12;" (assignment_expression "*puVar16 = uVar12" (pointer_expression "*puVar16" * identifier) = identifier) ;) (expression_statement "puVar16[3] = local_20 + uVar6 + (uint)CARRY4(local_24,uVar4);" (assignment_expression "puVar16[3] = local_20 + uVar6 + (uint)CARRY4(local_24,uVar4)" (subscript_expression "puVar16[3]" identifier [ number_literal ]) = (binary_expression "local_20 + uVar6 + (uint)CARRY4(local_24,uVar4)" (binary_expression "local_20 + uVar6" identifier + identifier) + (cast_expression "(uint)CARRY4(local_24,uVar4)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(local_24,uVar4)" identifier (argument_list "(local_24,uVar4)" ( identifier , identifier )))))) ;) (expression_statement "puVar16[2] = local_24 + uVar5;" (assignment_expression "puVar16[2] = local_24 + uVar5" (subscript_expression "puVar16[2]" identifier [ number_literal ]) = (binary_expression "local_24 + uVar5" identifier + identifier)) ;) (expression_statement "uVar12 = uVar7;" (assignment_expression "uVar12 = uVar7" identifier = identifier) ;) (expression_statement "uVar5 = uVar2;" (assignment_expression "uVar5 = uVar2" identifier = identifier) ;) (expression_statement "uVar4 = uVar7;" (assignment_expression "uVar4 = uVar7" identifier = identifier) ;) (if_statement "if ((uVar14 != 2) &&\n           (uVar12 = local_54, uVar5 = local_50, uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54)) {\n          bVar8 = false;\n        }" if (parenthesized_expression "((uVar14 != 2) &&\n           (uVar12 = local_54, uVar5 = local_50, uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54))" ( (binary_expression "(uVar14 != 2) &&\n           (uVar12 = local_54, uVar5 = local_50, uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54)" (parenthesized_expression "(uVar14 != 2)" ( (binary_expression "uVar14 != 2" identifier != number_literal) )) && (parenthesized_expression "(uVar12 = local_54, uVar5 = local_50, uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54)" ( (comma_expression "uVar12 = local_54, uVar5 = local_50, uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54" (assignment_expression "uVar12 = local_54" identifier = identifier) , (comma_expression "uVar5 = local_50, uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54" (assignment_expression "uVar5 = local_50" identifier = identifier) , (comma_expression "uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54" (assignment_expression "uVar4 = local_4c" identifier = identifier) , (binary_expression "uVar2 != local_50 || uVar7 != local_54" (binary_expression "uVar2 != local_50" identifier != identifier) || (binary_expression "uVar7 != local_54" identifier != identifier))))) ))) )) (compound_statement "{\n          bVar8 = false;\n        }" { (expression_statement "bVar8 = false;" (assignment_expression "bVar8 = false" identifier = false) ;) })) (expression_statement "local_4c = uVar4;" (assignment_expression "local_4c = uVar4" identifier = identifier) ;) (expression_statement "local_50 = uVar5;" (assignment_expression "local_50 = uVar5" identifier = identifier) ;) (expression_statement "local_54 = uVar12;" (assignment_expression "local_54 = uVar12" identifier = identifier) ;) (expression_statement "bVar17 = CARRY4(local_54,local_4c);" (assignment_expression "bVar17 = CARRY4(local_54,local_4c)" identifier = (call_expression "CARRY4(local_54,local_4c)" identifier (argument_list "(local_54,local_4c)" ( identifier , identifier )))) ;) (expression_statement "local_54 = local_54 + local_4c;" (assignment_expression "local_54 = local_54 + local_4c" identifier = (binary_expression "local_54 + local_4c" identifier + identifier)) ;) (expression_statement "local_50 = local_50 + bVar17;" (assignment_expression "local_50 = local_50 + bVar17" identifier = (binary_expression "local_50 + bVar17" identifier + identifier)) ;) (labeled_statement "LAB_00100e3b:\n        uVar14 = uVar14 + 1;" statement_identifier : (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;)) (expression_statement "puVar15 = puVar15 + 6;" (assignment_expression "puVar15 = puVar15 + 6" identifier = (binary_expression "puVar15 + 6" identifier + number_literal)) ;) (expression_statement "bVar17 = bVar8;" (assignment_expression "bVar17 = bVar8" identifier = identifier) ;) (if_statement "if (uVar9 == uVar14) goto LAB_00100e9d;" if (parenthesized_expression "(uVar9 == uVar14)" ( (binary_expression "uVar9 == uVar14" identifier == identifier) )) (goto_statement "goto LAB_00100e9d;" goto statement_identifier ;)) })) (if_statement "if (uVar12 == 0x33) {\n        if (puVar15[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||\n            *puVar15 != (local_54 + 8) - local_4c) {\n          bVar8 = false;\n        }\n        goto LAB_00100e3b;\n      }" if (parenthesized_expression "(uVar12 == 0x33)" ( (binary_expression "uVar12 == 0x33" identifier == number_literal) )) (compound_statement "{\n        if (puVar15[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||\n            *puVar15 != (local_54 + 8) - local_4c) {\n          bVar8 = false;\n        }\n        goto LAB_00100e3b;\n      }" { (if_statement "if (puVar15[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||\n            *puVar15 != (local_54 + 8) - local_4c) {\n          bVar8 = false;\n        }" if (parenthesized_expression "(puVar15[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||\n            *puVar15 != (local_54 + 8) - local_4c)" ( (binary_expression "puVar15[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||\n            *puVar15 != (local_54 + 8) - local_4c" (binary_expression "puVar15[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c)" (subscript_expression "puVar15[1]" identifier [ number_literal ]) != (binary_expression "(local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c)" (parenthesized_expression "(local_50 + (0xfffffff7 < local_54))" ( (binary_expression "local_50 + (0xfffffff7 < local_54)" identifier + (parenthesized_expression "(0xfffffff7 < local_54)" ( (binary_expression "0xfffffff7 < local_54" number_literal < identifier) ))) )) - (call_expression "(uint)(local_54 + 8 < local_4c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_54 + 8 < local_4c)" ( (binary_expression "local_54 + 8 < local_4c" (binary_expression "local_54 + 8" identifier + number_literal) < identifier) ))))) || (binary_expression "*puVar15 != (local_54 + 8) - local_4c" (pointer_expression "*puVar15" * identifier) != (binary_expression "(local_54 + 8) - local_4c" (parenthesized_expression "(local_54 + 8)" ( (binary_expression "local_54 + 8" identifier + number_literal) )) - identifier))) )) (compound_statement "{\n          bVar8 = false;\n        }" { (expression_statement "bVar8 = false;" (assignment_expression "bVar8 = false" identifier = false) ;) })) (goto_statement "goto LAB_00100e3b;" goto statement_identifier ;) })) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar15 + 6;" (assignment_expression "puVar15 = puVar15 + 6" identifier = (binary_expression "puVar15 + 6" identifier + number_literal)) ;) (expression_statement "uVar3 = *(undefined4 *)(param_1 + 4);" (assignment_expression "uVar3 = *(undefined4 *)(param_1 + 4)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = gettext("%s: unexpected reloc type %u in .opd section");" (assignment_expression "uVar11 = gettext("%s: unexpected reloc type %u in .opd section")" identifier = (call_expression "gettext("%s: unexpected reloc type %u in .opd section")" identifier (argument_list "("%s: unexpected reloc type %u in .opd section")" ( (string_literal ""%s: unexpected reloc type %u in .opd section"" " string_content ") )))) ;) (expression_statement "FUN_0023b840(uVar11,uVar3,uVar12);" (call_expression "FUN_0023b840(uVar11,uVar3,uVar12)" identifier (argument_list "(uVar11,uVar3,uVar12)" ( identifier , identifier , identifier ))) ;) (expression_statement "bVar8 = false;" (assignment_expression "bVar8 = false" identifier = false) ;) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" identifier = false) ;) }) while (parenthesized_expression "(uVar9 != uVar14)" ( (binary_expression "uVar9 != uVar14" identifier != identifier) )) ;) (labeled_statement "LAB_00100e9d:\n    bVar8 = bVar17;" statement_identifier : (expression_statement "bVar8 = bVar17;" (assignment_expression "bVar8 = bVar17" identifier = identifier) ;)) (if_statement "if (2 < uVar9) goto LAB_00100ea8;" if (parenthesized_expression "(2 < uVar9)" ( (binary_expression "2 < uVar9" number_literal < identifier) )) (goto_statement "goto LAB_00100ea8;" goto statement_identifier ;)) })) (expression_statement "local_4c = FUN_00108170(param_1 + 0x90,*(undefined4 *)(param_1 + 0x140));" (assignment_expression "local_4c = FUN_00108170(param_1 + 0x90,*(undefined4 *)(param_1 + 0x140))" identifier = (call_expression "FUN_00108170(param_1 + 0x90,*(undefined4 *)(param_1 + 0x140))" identifier (argument_list "(param_1 + 0x90,*(undefined4 *)(param_1 + 0x140))" ( (binary_expression "param_1 + 0x90" identifier + number_literal) , (pointer_expression "*(undefined4 *)(param_1 + 0x140)" * (cast_expression "(undefined4 *)(param_1 + 0x140)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) )))) ;) (labeled_statement "LAB_00100ea8:\n  if (((local_4c & 0xfffffff7) == 0x10) && (bVar8)) {\n    return;\n  }" statement_identifier : (if_statement "if (((local_4c & 0xfffffff7) == 0x10) && (bVar8)) {\n    return;\n  }" if (parenthesized_expression "(((local_4c & 0xfffffff7) == 0x10) && (bVar8))" ( (binary_expression "((local_4c & 0xfffffff7) == 0x10) && (bVar8)" (parenthesized_expression "((local_4c & 0xfffffff7) == 0x10)" ( (binary_expression "(local_4c & 0xfffffff7) == 0x10" (parenthesized_expression "(local_4c & 0xfffffff7)" ( (binary_expression "local_4c & 0xfffffff7" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(bVar8)" ( identifier ))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (expression_statement "uVar3 = *(undefined4 *)(param_1 + 4);" (assignment_expression "uVar3 = *(undefined4 *)(param_1 + 4)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = gettext("%s: .opd is not a regular array of opd entries");" (assignment_expression "uVar11 = gettext("%s: .opd is not a regular array of opd entries")" identifier = (call_expression "gettext("%s: .opd is not a regular array of opd entries")" identifier (argument_list "("%s: .opd is not a regular array of opd entries")" ( (string_literal ""%s: .opd is not a regular array of opd entries"" " string_content ") )))) ;) (expression_statement "FUN_0023b840(uVar11,uVar3);" (call_expression "FUN_0023b840(uVar11,uVar3)" identifier (argument_list "(uVar11,uVar3)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* DWARF original prototype: void do_read_relocs(Powerpc_relobj<64,_false> * this, Read_relocs_data\n   * rd) */\n\nvoid __thiscall\nanon_unknown.dwarf_6462d4::Powerpc_relobj<64,_false>::do_read_relocs\n          (Powerpc_relobj<64,_false> *this,Read_relocs_data *rd)\n\n{\n  pointer pSVar1;\n  pointer pSVar2;\n  pointer pOVar3;\n  uchar *puVar4;\n  uint uVar5;\n  pointer pcVar6;\n  uint uVar7;\n  uint uVar9;\n  uint uVar10;\n  bool bVar11;\n  Elf_file<64,_false,_gold::Object> *this_00;\n  uint uVar12;\n  pointer pOVar13;\n  char *pcVar14;\n  uint uVar15;\n  Xindex *this_01;\n  uint uVar16;\n  uint *puVar17;\n  bool bVar18;\n  Elf_WXword EVar19;\n  vector<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_>\n  *in_stack_ffffff94;\n  size_type in_stack_ffffff98;\n  uint local_54;\n  uint local_50;\n  uint local_4c;\n  bool is_ordinary;\n  Elf_Addr value;\n  uint uVar8;\n  \n  gold::Sized_relobj_file<64,_false>::do_read_relocs(&this->super_Sized_relobj_file<64,_false>,rd);\n  pSVar1 = (rd->relocs).\n           super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>._M_impl.\n           _M_start;\n  pSVar2 = (rd->relocs).\n           super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>._M_impl.\n           _M_finish;\n  if (pSVar1 == pSVar2) {\n    return;\n  }\n  uVar12 = pSVar1->data_shndx;\n  while (this->special_ != uVar12) {\n    if (pSVar1 + 1 == pSVar2) {\n      return;\n    }\n    uVar12 = pSVar1[1].data_shndx;\n    pSVar1 = pSVar1 + 1;\n  }\n  this_00 = &(this->super_Sized_relobj_file<64,_false>).elf_file_;\n  EVar19 = elfcpp::Elf_file<64,_false,_gold::Object>::section_size(this_00,this->special_);\n  if ((int)(EVar19 >> 0x20) != 0) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/powerpc.cc",0x919,"do_read_relocs");\n  }\n  if ((uint)EVar19 == 0) {\n    return;\n  }\n  uVar12 = (uint)EVar19 >> 4;\n  pOVar13 = (this->opd_ent_).\n            super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_>\n            ._M_impl._M_start;\n  pOVar3 = (this->opd_ent_).\n           super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_>\n           ._M_impl._M_finish;\n  uVar16 = (int)pOVar3 - (int)pOVar13 >> 4;\n  if (uVar16 < uVar12) {\n    std::\n    vector<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_>\n    ::_M_default_append(in_stack_ffffff94,in_stack_ffffff98);\n  }\n  else if ((uVar12 < uVar16) && (pOVar13 = pOVar13 + uVar12, pOVar3 != pOVar13)) {\n    (this->opd_ent_).\n    super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_>\n    ._M_impl._M_finish = pOVar13;\n  }\n  bVar11 = true;\n  puVar4 = rd->local_symbols->data_;\n  puVar17 = (uint *)pSVar1->contents->data_;\n  uVar12 = pSVar1->reloc_count;\n  if (uVar12 != 0) {\n    local_4c = 0;\n    uVar16 = 0;\n    local_54 = 0;\n    local_50 = 0;\n    do {\n      while( true ) {\n        uVar15 = puVar17[2];\n        uVar5 = puVar17[3];\n        if (uVar15 != 0x26) break;\n        if (uVar5 < (this->super_Sized_relobj_file<64,_false>).local_symbol_count_) {\n          uVar15 = (uint)*(ushort *)(puVar4 + uVar5 * 0x18 + 6);\n          if (uVar15 < 0xff00) {\n            is_ordinary = true;\n          }\n          else if (uVar15 == 0xffff) {\n            this_01 = (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                      super_Relobj.super_Object.xindex_;\n            if (this_01 == (Xindex *)0x0) {\n              this_01 = gold::Sized_relobj_file<64,_false>::do_initialize_xindex\n                                  (&this->super_Sized_relobj_file<64,_false>);\n              (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.\n              super_Object.xindex_ = this_01;\n            }\n            uVar15 = gold::Xindex::sym_xindex_to_shndx(this_01,(Object *)this,uVar5);\n            is_ordinary = true;\n          }\n          else {\n            is_ordinary = false;\n          }\n          value._0_4_ = *(uint *)(puVar4 + uVar5 * 0x18 + 8);\n          value._4_4_ = *(int *)(puVar4 + uVar5 * 0x18 + 0xc);\n        }\n        else {\n          uVar15 = gold::Sized_relobj_file<64,_false>::symbol_section_and_value\n                             (&this->super_Sized_relobj_file<64,_false>,uVar5,&value,&is_ordinary);\n        }\n        uVar5 = puVar17[1];\n        uVar7 = puVar17[4];\n        uVar8 = puVar17[4];\n        uVar9 = puVar17[5];\n        pOVar13 = (this->opd_ent_).\n                  super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_>\n                  ._M_impl._M_start;\n        uVar10 = *puVar17;\n        if ((uint)((int)(this->opd_ent_).\n                        super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_>\n                        ._M_impl._M_finish - (int)pOVar13 >> 4) <= uVar10 >> 4) {\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/powerpc.cc",0xd0,"set_opd_ent");\n        }\n        pOVar13 = pOVar13 + (uVar10 >> 4);\n        pOVar13->shndx = uVar15;\n        *(uint *)((int)&pOVar13->off + 4) = value._4_4_ + uVar9 + (uint)CARRY4((uint)value,uVar7);\n        *(uint *)&pOVar13->off = (uint)value + uVar8;\n        uVar15 = uVar10;\n        uVar8 = uVar5;\n        uVar7 = uVar10;\n        if ((uVar16 != 2) &&\n           (uVar15 = local_54, uVar8 = local_50, uVar7 = local_4c,\n           uVar5 != local_50 || uVar10 != local_54)) {\n          bVar11 = false;\n        }\n        local_4c = uVar7;\n        local_50 = uVar8;\n        local_54 = uVar15;\n        bVar18 = CARRY4(local_54,local_4c);\n        local_54 = local_54 + local_4c;\n        local_50 = local_50 + bVar18;\nLAB_00100e3b:\n        uVar16 = uVar16 + 1;\n        puVar17 = puVar17 + 6;\n        bVar18 = bVar11;\n        if (uVar12 == uVar16) goto LAB_00100e9d;\n      }\n      if (uVar15 == 0x33) {\n        if (puVar17[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||\n            *puVar17 != (local_54 + 8) - local_4c) {\n          bVar11 = false;\n        }\n        goto LAB_00100e3b;\n      }\n      uVar16 = uVar16 + 1;\n      puVar17 = puVar17 + 6;\n      pcVar6 = (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj\n               .super_Object.name_._M_dataplus._M_p;\n      pcVar14 = (char *)gettext("%s: unexpected reloc type %u in .opd section");\n      gold::gold_warning(pcVar14,pcVar6,uVar15);\n      bVar11 = false;\n      bVar18 = false;\n    } while (uVar12 != uVar16);\nLAB_00100e9d:\n    bVar11 = bVar18;\n    if (2 < uVar12) goto LAB_00100ea8;\n  }\n  EVar19 = elfcpp::Elf_file<64,_false,_gold::Object>::section_size(this_00,this->special_);\n  local_4c = (uint)EVar19;\nLAB_00100ea8:\n  if (((local_4c & 0xfffffff7) == 0x10) && (bVar11)) {\n    return;\n  }\n  pcVar6 = (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.\n           super_Object.name_._M_dataplus._M_p;\n  pcVar14 = (char *)gettext("%s: .opd is not a regular array of opd entries");\n  gold::gold_warning(pcVar14,pcVar6);\n  return;\n}\n\n" comment comment (declaration "void __thiscall\nanon_unknown.dwarf_6462d4::Powerpc_relobj<64,_false>::do_read_relocs\n          (Powerpc_relobj<64,_false> *this,Read_relocs_data *rd)\n\n{\n  pointer pSVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "anon_unknown.dwarf_6462d4::" identifier . identifier : :) identifier (ERROR "<64" < number_literal) , (ERROR "_false>::do_read_relocs\n          (Powerpc_relobj<64,_false> *this,Read_relocs_data *rd)\n\n{\n  pointer" identifier > : : (function_declarator "do_read_relocs\n          (Powerpc_relobj<64,_false> *this,Read_relocs_data *rd)" identifier (parameter_list "(Powerpc_relobj<64,_false> *this,Read_relocs_data *rd)" ( (parameter_declaration "Powerpc_relobj" type_identifier) (ERROR "<64" < number_literal) , (parameter_declaration "_false> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "Read_relocs_data *rd" type_identifier (pointer_declarator "*rd" * identifier)) ))) { identifier) identifier ;) (declaration "pointer pSVar2;" type_identifier identifier ;) (declaration "pointer pOVar3;" type_identifier identifier ;) (declaration "uchar *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "pointer pcVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "bool bVar11;" primitive_type identifier ;) (ERROR "Elf_file<64,_false," (binary_expression "Elf_file<64" identifier < number_literal) , identifier ,) (labeled_statement "_gold::Object> *this_00;" statement_identifier : (ERROR ":" :) (expression_statement "Object> *this_00;" (binary_expression "Object> *this_00" identifier > (pointer_expression "*this_00" * identifier)) ;)) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "pointer pOVar13;" type_identifier identifier ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "Xindex *this_01;" type_identifier (pointer_declarator "*this_01" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "bool bVar18;" primitive_type identifier ;) (declaration "Elf_WXword EVar19;" type_identifier identifier ;) (ERROR "vector<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent," (binary_expression "vector<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent" (binary_expression "vector<(anonymous_namespace)::Powerpc_relobj<64" (binary_expression "vector<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Powerpc_relobj" : : identifier) < number_literal) (ERROR ",_false" , identifier) > (ERROR "::" : :) identifier) ,) (labeled_statement "_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_>\n  *in_stack_ffffff94;" statement_identifier (ERROR "::allocator<(anonymous_namespace):" : : (binary_expression "allocator<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) :) : (expression_statement "Powerpc_relobj<64,_false>::Opd_ent>_>\n  *in_stack_ffffff94;" (comma_expression "Powerpc_relobj<64,_false>::Opd_ent>_>\n  *in_stack_ffffff94" (binary_expression "Powerpc_relobj<64" identifier < number_literal) , (binary_expression "_false>::Opd_ent>_>\n  *in_stack_ffffff94" (binary_expression "_false>::Opd_ent>_" (binary_expression "_false>::Opd_ent" identifier > (ERROR "::" : :) identifier) > identifier) > (pointer_expression "*in_stack_ffffff94" * identifier))) ;)) (declaration "size_type in_stack_ffffff98;" type_identifier identifier ;) (declaration "uint local_54;" type_identifier identifier ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "uint local_4c;" type_identifier identifier ;) (declaration "bool is_ordinary;" primitive_type identifier ;) (declaration "Elf_Addr value;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (labeled_statement "gold::Sized_relobj_file<64,_false>::do_read_relocs(&this->super_Sized_relobj_file<64,_false>,rd);" statement_identifier : (ERROR ":" :) (expression_statement "Sized_relobj_file<64,_false>::do_read_relocs(&this->super_Sized_relobj_file<64,_false>,rd);" (comma_expression "Sized_relobj_file<64,_false>::do_read_relocs(&this->super_Sized_relobj_file<64,_false>,rd)" (binary_expression "Sized_relobj_file<64" identifier < number_literal) , (binary_expression "_false>::do_read_relocs(&this->super_Sized_relobj_file<64,_false>,rd)" identifier > (ERROR "::" : :) (call_expression "do_read_relocs(&this->super_Sized_relobj_file<64,_false>,rd)" identifier (argument_list "(&this->super_Sized_relobj_file<64,_false>,rd)" ( (binary_expression "&this->super_Sized_relobj_file<64" (pointer_expression "&this->super_Sized_relobj_file" & (field_expression "this->super_Sized_relobj_file" identifier -> field_identifier)) < number_literal) , identifier (ERROR ">" >) , identifier ))))) ;)) (ERROR "pSVar1 = (rd->relocs).\n           super__Vector_base<gold::Section_relocs," (assignment_expression "pSVar1 = (rd->relocs).\n           super__Vector_base<gold" identifier = (binary_expression "(rd->relocs).\n           super__Vector_base<gold" (field_expression "(rd->relocs).\n           super__Vector_base" (parenthesized_expression "(rd->relocs)" ( (field_expression "rd->relocs" identifier -> field_identifier) )) . field_identifier) < identifier)) : : identifier ,) (labeled_statement "_std::allocator<gold::Section_relocs>_>._M_impl.\n           _M_start;" statement_identifier (ERROR "::allocator<gold:" : : (binary_expression "allocator<gold" identifier < identifier) :) : (expression_statement "Section_relocs>_>._M_impl.\n           _M_start;" (field_expression "Section_relocs>_>._M_impl.\n           _M_start" (field_expression "Section_relocs>_>._M_impl" (binary_expression "Section_relocs>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;)) (ERROR "pSVar2 = (rd->relocs).\n           super__Vector_base<gold::Section_relocs," (assignment_expression "pSVar2 = (rd->relocs).\n           super__Vector_base<gold" identifier = (binary_expression "(rd->relocs).\n           super__Vector_base<gold" (field_expression "(rd->relocs).\n           super__Vector_base" (parenthesized_expression "(rd->relocs)" ( (field_expression "rd->relocs" identifier -> field_identifier) )) . field_identifier) < identifier)) : : identifier ,) (labeled_statement "_std::allocator<gold::Section_relocs>_>._M_impl.\n           _M_finish;" statement_identifier (ERROR "::allocator<gold:" : : (binary_expression "allocator<gold" identifier < identifier) :) : (expression_statement "Section_relocs>_>._M_impl.\n           _M_finish;" (field_expression "Section_relocs>_>._M_impl.\n           _M_finish" (field_expression "Section_relocs>_>._M_impl" (binary_expression "Section_relocs>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;)) (if_statement "if (pSVar1 == pSVar2) {\n    return;\n  }" if (parenthesized_expression "(pSVar1 == pSVar2)" ( (binary_expression "pSVar1 == pSVar2" identifier == identifier) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "uVar12 = pSVar1->data_shndx;" (assignment_expression "uVar12 = pSVar1->data_shndx" identifier = (field_expression "pSVar1->data_shndx" identifier -> field_identifier)) ;) (while_statement "while (this->special_ != uVar12) {\n    if (pSVar1 + 1 == pSVar2) {\n      return;\n    }\n    uVar12 = pSVar1[1].data_shndx;\n    pSVar1 = pSVar1 + 1;\n  }" while (parenthesized_expression "(this->special_ != uVar12)" ( (binary_expression "this->special_ != uVar12" (field_expression "this->special_" identifier -> field_identifier) != identifier) )) (compound_statement "{\n    if (pSVar1 + 1 == pSVar2) {\n      return;\n    }\n    uVar12 = pSVar1[1].data_shndx;\n    pSVar1 = pSVar1 + 1;\n  }" { (if_statement "if (pSVar1 + 1 == pSVar2) {\n      return;\n    }" if (parenthesized_expression "(pSVar1 + 1 == pSVar2)" ( (binary_expression "pSVar1 + 1 == pSVar2" (binary_expression "pSVar1 + 1" identifier + number_literal) == identifier) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "uVar12 = pSVar1[1].data_shndx;" (assignment_expression "uVar12 = pSVar1[1].data_shndx" identifier = (field_expression "pSVar1[1].data_shndx" (subscript_expression "pSVar1[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "pSVar1 = pSVar1 + 1;" (assignment_expression "pSVar1 = pSVar1 + 1" identifier = (binary_expression "pSVar1 + 1" identifier + number_literal)) ;) })) (expression_statement "this_00 = &(this->super_Sized_relobj_file<64,_false>).elf_file_;" (assignment_expression "this_00 = &(this->super_Sized_relobj_file<64,_false>).elf_file_" identifier = (pointer_expression "&(this->super_Sized_relobj_file<64,_false>).elf_file_" & (field_expression "(this->super_Sized_relobj_file<64,_false>).elf_file_" (parenthesized_expression "(this->super_Sized_relobj_file<64,_false>)" ( (comma_expression "this->super_Sized_relobj_file<64,_false" (binary_expression "this->super_Sized_relobj_file<64" (field_expression "this->super_Sized_relobj_file" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier))) ;) (ERROR "EVar19 = elfcpp::Elf_file<64,_false," (binary_expression "EVar19 = elfcpp::Elf_file<64" (assignment_expression "EVar19 = elfcpp" identifier = identifier) (ERROR "::Elf_file" : : identifier) < number_literal) , identifier ,) (labeled_statement "_gold::Object>::section_size(this_00,this->special_);" statement_identifier (ERROR "::Object>:" : : identifier > :) : (expression_statement "section_size(this_00,this->special_);" (call_expression "section_size(this_00,this->special_)" identifier (argument_list "(this_00,this->special_)" ( identifier , (field_expression "this->special_" identifier -> field_identifier) ))) ;)) (if_statement "if ((int)(EVar19 >> 0x20) != 0) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/powerpc.cc",0x919,"do_read_relocs");\n  }" if (parenthesized_expression "((int)(EVar19 >> 0x20) != 0)" ( (binary_expression "(int)(EVar19 >> 0x20) != 0" (cast_expression "(int)(EVar19 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(EVar19 >> 0x20)" ( (binary_expression "EVar19 >> 0x20" identifier >> number_literal) ))) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/powerpc.cc",0x919,"do_read_relocs");\n  }" { comment (labeled_statement "gold::do_gold_unreachable("../../gold/powerpc.cc",0x919,"do_read_relocs");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/powerpc.cc",0x919,"do_read_relocs");" (call_expression "do_gold_unreachable("../../gold/powerpc.cc",0x919,"do_read_relocs")" identifier (argument_list "("../../gold/powerpc.cc",0x919,"do_read_relocs")" ( (string_literal ""../../gold/powerpc.cc"" " string_content ") , number_literal , (string_literal ""do_read_relocs"" " string_content ") ))) ;)) })) (if_statement "if ((uint)EVar19 == 0) {\n    return;\n  }" if (parenthesized_expression "((uint)EVar19 == 0)" ( (binary_expression "(uint)EVar19 == 0" (cast_expression "(uint)EVar19" ( (type_descriptor "uint" type_identifier) ) identifier) == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "uVar12 = (uint)EVar19 >> 4;" (assignment_expression "uVar12 = (uint)EVar19 >> 4" identifier = (binary_expression "(uint)EVar19 >> 4" (cast_expression "(uint)EVar19" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal)) ;) (expression_statement "pOVar13 = (this->opd_ent_).\n            super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_>\n            ._M_impl._M_start;" (field_expression "pOVar13 = (this->opd_ent_).\n            super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_>\n            ._M_impl._M_start" (field_expression "pOVar13 = (this->opd_ent_).\n            super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_>\n            ._M_impl" (binary_expression "pOVar13 = (this->opd_ent_).\n            super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_" (binary_expression "pOVar13 = (this->opd_ent_).\n            super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent" (binary_expression "pOVar13 = (this->opd_ent_).\n            super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64" (binary_expression "pOVar13 = (this->opd_ent_).\n            super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)" (binary_expression "pOVar13 = (this->opd_ent_).\n            super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent" (binary_expression "pOVar13 = (this->opd_ent_).\n            super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64" (assignment_expression "pOVar13 = (this->opd_ent_).\n            super__Vector_base<(anonymous_namespace)" identifier = (binary_expression "(this->opd_ent_).\n            super__Vector_base<(anonymous_namespace)" (field_expression "(this->opd_ent_).\n            super__Vector_base" (parenthesized_expression "(this->opd_ent_)" ( (field_expression "this->opd_ent_" identifier -> field_identifier) )) . field_identifier) < (parenthesized_expression "(anonymous_namespace)" ( identifier )))) (ERROR "::Powerpc_relobj" : : identifier) < number_literal) (ERROR ",_false" , identifier) > (ERROR "::" : :) identifier) (ERROR ",_std::allocator" , identifier : : identifier) < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Powerpc_relobj" : : identifier) < number_literal) (ERROR ",_false" , identifier) > (ERROR "::" : :) identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "pOVar3 = (this->opd_ent_).\n           super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_>\n           ._M_impl._M_finish;" (field_expression "pOVar3 = (this->opd_ent_).\n           super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_>\n           ._M_impl._M_finish" (field_expression "pOVar3 = (this->opd_ent_).\n           super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_>\n           ._M_impl" (binary_expression "pOVar3 = (this->opd_ent_).\n           super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_" (binary_expression "pOVar3 = (this->opd_ent_).\n           super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent" (binary_expression "pOVar3 = (this->opd_ent_).\n           super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64" (binary_expression "pOVar3 = (this->opd_ent_).\n           super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)" (binary_expression "pOVar3 = (this->opd_ent_).\n           super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent" (binary_expression "pOVar3 = (this->opd_ent_).\n           super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64" (assignment_expression "pOVar3 = (this->opd_ent_).\n           super__Vector_base<(anonymous_namespace)" identifier = (binary_expression "(this->opd_ent_).\n           super__Vector_base<(anonymous_namespace)" (field_expression "(this->opd_ent_).\n           super__Vector_base" (parenthesized_expression "(this->opd_ent_)" ( (field_expression "this->opd_ent_" identifier -> field_identifier) )) . field_identifier) < (parenthesized_expression "(anonymous_namespace)" ( identifier )))) (ERROR "::Powerpc_relobj" : : identifier) < number_literal) (ERROR ",_false" , identifier) > (ERROR "::" : :) identifier) (ERROR ",_std::allocator" , identifier : : identifier) < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Powerpc_relobj" : : identifier) < number_literal) (ERROR ",_false" , identifier) > (ERROR "::" : :) identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "uVar16 = (int)pOVar3 - (int)pOVar13 >> 4;" (assignment_expression "uVar16 = (int)pOVar3 - (int)pOVar13 >> 4" identifier = (binary_expression "(int)pOVar3 - (int)pOVar13 >> 4" (binary_expression "(int)pOVar3 - (int)pOVar13" (cast_expression "(int)pOVar3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pOVar13" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (if_statement "if (uVar16 < uVar12) {\n    std::\n    vector<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_>\n    ::_M_default_append(in_stack_ffffff94,in_stack_ffffff98);\n  }\n  else if ((uVar12 < uVar16) && (pOVar13 = pOVar13 + uVar12, pOVar3 != pOVar13)) {\n    (this->opd_ent_).\n    super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_>\n    ._M_impl._M_finish = pOVar13;\n  }" if (parenthesized_expression "(uVar16 < uVar12)" ( (binary_expression "uVar16 < uVar12" identifier < identifier) )) (compound_statement "{\n    std::\n    vector<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_>\n    ::_M_default_append(in_stack_ffffff94,in_stack_ffffff98);\n  }" { (labeled_statement "std::\n    vector<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_>\n    ::_M_default_append(in_stack_ffffff94,in_stack_ffffff98);" statement_identifier (ERROR "::\n    vector<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace):" : : (binary_expression "vector<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) : : (comma_expression "Powerpc_relobj<64,_false>::Opd_ent,_std" (binary_expression "Powerpc_relobj<64" identifier < number_literal) , (comma_expression "_false>::Opd_ent,_std" (binary_expression "_false>::Opd_ent" identifier > (ERROR "::" : :) identifier) , identifier)) : : (binary_expression "allocator<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) :) : (expression_statement "Powerpc_relobj<64,_false>::Opd_ent>_>\n    ::_M_default_append(in_stack_ffffff94,in_stack_ffffff98);" (comma_expression "Powerpc_relobj<64,_false>::Opd_ent>_>\n    ::_M_default_append(in_stack_ffffff94,in_stack_ffffff98)" (binary_expression "Powerpc_relobj<64" identifier < number_literal) , (binary_expression "_false>::Opd_ent>_>\n    ::_M_default_append(in_stack_ffffff94,in_stack_ffffff98)" (binary_expression "_false>::Opd_ent>_" (binary_expression "_false>::Opd_ent" identifier > (ERROR "::" : :) identifier) > identifier) > (ERROR "::" : :) (call_expression "_M_default_append(in_stack_ffffff94,in_stack_ffffff98)" identifier (argument_list "(in_stack_ffffff94,in_stack_ffffff98)" ( identifier , identifier ))))) ;)) }) (else_clause "else if ((uVar12 < uVar16) && (pOVar13 = pOVar13 + uVar12, pOVar3 != pOVar13)) {\n    (this->opd_ent_).\n    super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_>\n    ._M_impl._M_finish = pOVar13;\n  }" else (if_statement "if ((uVar12 < uVar16) && (pOVar13 = pOVar13 + uVar12, pOVar3 != pOVar13)) {\n    (this->opd_ent_).\n    super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_>\n    ._M_impl._M_finish = pOVar13;\n  }" if (parenthesized_expression "((uVar12 < uVar16) && (pOVar13 = pOVar13 + uVar12, pOVar3 != pOVar13))" ( (binary_expression "(uVar12 < uVar16) && (pOVar13 = pOVar13 + uVar12, pOVar3 != pOVar13)" (parenthesized_expression "(uVar12 < uVar16)" ( (binary_expression "uVar12 < uVar16" identifier < identifier) )) && (parenthesized_expression "(pOVar13 = pOVar13 + uVar12, pOVar3 != pOVar13)" ( (comma_expression "pOVar13 = pOVar13 + uVar12, pOVar3 != pOVar13" (assignment_expression "pOVar13 = pOVar13 + uVar12" identifier = (binary_expression "pOVar13 + uVar12" identifier + identifier)) , (binary_expression "pOVar3 != pOVar13" identifier != identifier)) ))) )) (compound_statement "{\n    (this->opd_ent_).\n    super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_>\n    ._M_impl._M_finish = pOVar13;\n  }" { (ERROR "(this->opd_ent_).\n    super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::" (comma_expression "(this->opd_ent_).\n    super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std" (binary_expression "(this->opd_ent_).\n    super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64" (binary_expression "(this->opd_ent_).\n    super__Vector_base<(anonymous_namespace)" (field_expression "(this->opd_ent_).\n    super__Vector_base" (parenthesized_expression "(this->opd_ent_)" ( (field_expression "this->opd_ent_" identifier -> field_identifier) )) . field_identifier) < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Powerpc_relobj" : : identifier) < number_literal) , (comma_expression "_false>::Opd_ent,_std" (binary_expression "_false>::Opd_ent" identifier > (ERROR "::" : :) identifier) , identifier)) : : (binary_expression "allocator<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) : :) (expression_statement "Powerpc_relobj<64,_false>::Opd_ent>_>\n    ._M_impl._M_finish = pOVar13;" (comma_expression "Powerpc_relobj<64,_false>::Opd_ent>_>\n    ._M_impl._M_finish = pOVar13" (binary_expression "Powerpc_relobj<64" identifier < number_literal) , (assignment_expression "_false>::Opd_ent>_>\n    ._M_impl._M_finish = pOVar13" (field_expression "_false>::Opd_ent>_>\n    ._M_impl._M_finish" (field_expression "_false>::Opd_ent>_>\n    ._M_impl" (binary_expression "_false>::Opd_ent>_" (binary_expression "_false>::Opd_ent" identifier > (ERROR "::" : :) identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = identifier)) ;) })))) (expression_statement "bVar11 = true;" (assignment_expression "bVar11 = true" identifier = true) ;) (expression_statement "puVar4 = rd->local_symbols->data_;" (assignment_expression "puVar4 = rd->local_symbols->data_" identifier = (field_expression "rd->local_symbols->data_" (field_expression "rd->local_symbols" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "puVar17 = (uint *)pSVar1->contents->data_;" (assignment_expression "puVar17 = (uint *)pSVar1->contents->data_" identifier = (cast_expression "(uint *)pSVar1->contents->data_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pSVar1->contents->data_" (field_expression "pSVar1->contents" identifier -> field_identifier) -> field_identifier))) ;) (expression_statement "uVar12 = pSVar1->reloc_count;" (assignment_expression "uVar12 = pSVar1->reloc_count" identifier = (field_expression "pSVar1->reloc_count" identifier -> field_identifier)) ;) (if_statement "if (uVar12 != 0) {\n    local_4c = 0;\n    uVar16 = 0;\n    local_54 = 0;\n    local_50 = 0;\n    do {\n      while( true ) {\n        uVar15 = puVar17[2];\n        uVar5 = puVar17[3];\n        if (uVar15 != 0x26) break;\n        if (uVar5 < (this->super_Sized_relobj_file<64,_false>).local_symbol_count_) {\n          uVar15 = (uint)*(ushort *)(puVar4 + uVar5 * 0x18 + 6);\n          if (uVar15 < 0xff00) {\n            is_ordinary = true;\n          }\n          else if (uVar15 == 0xffff) {\n            this_01 = (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                      super_Relobj.super_Object.xindex_;\n            if (this_01 == (Xindex *)0x0) {\n              this_01 = gold::Sized_relobj_file<64,_false>::do_initialize_xindex\n                                  (&this->super_Sized_relobj_file<64,_false>);\n              (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.\n              super_Object.xindex_ = this_01;\n            }\n            uVar15 = gold::Xindex::sym_xindex_to_shndx(this_01,(Object *)this,uVar5);\n            is_ordinary = true;\n          }\n          else {\n            is_ordinary = false;\n          }\n          value._0_4_ = *(uint *)(puVar4 + uVar5 * 0x18 + 8);\n          value._4_4_ = *(int *)(puVar4 + uVar5 * 0x18 + 0xc);\n        }\n        else {\n          uVar15 = gold::Sized_relobj_file<64,_false>::symbol_section_and_value\n                             (&this->super_Sized_relobj_file<64,_false>,uVar5,&value,&is_ordinary);\n        }\n        uVar5 = puVar17[1];\n        uVar7 = puVar17[4];\n        uVar8 = puVar17[4];\n        uVar9 = puVar17[5];\n        pOVar13 = (this->opd_ent_).\n                  super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_>\n                  ._M_impl._M_start;\n        uVar10 = *puVar17;\n        if ((uint)((int)(this->opd_ent_).\n                        super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_>\n                        ._M_impl._M_finish - (int)pOVar13 >> 4) <= uVar10 >> 4) {\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/powerpc.cc",0xd0,"set_opd_ent");\n        }\n        pOVar13 = pOVar13 + (uVar10 >> 4);\n        pOVar13->shndx = uVar15;\n        *(uint *)((int)&pOVar13->off + 4) = value._4_4_ + uVar9 + (uint)CARRY4((uint)value,uVar7);\n        *(uint *)&pOVar13->off = (uint)value + uVar8;\n        uVar15 = uVar10;\n        uVar8 = uVar5;\n        uVar7 = uVar10;\n        if ((uVar16 != 2) &&\n           (uVar15 = local_54, uVar8 = local_50, uVar7 = local_4c,\n           uVar5 != local_50 || uVar10 != local_54)) {\n          bVar11 = false;\n        }\n        local_4c = uVar7;\n        local_50 = uVar8;\n        local_54 = uVar15;\n        bVar18 = CARRY4(local_54,local_4c);\n        local_54 = local_54 + local_4c;\n        local_50 = local_50 + bVar18;\nLAB_00100e3b:\n        uVar16 = uVar16 + 1;\n        puVar17 = puVar17 + 6;\n        bVar18 = bVar11;\n        if (uVar12 == uVar16) goto LAB_00100e9d;\n      }\n      if (uVar15 == 0x33) {\n        if (puVar17[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||\n            *puVar17 != (local_54 + 8) - local_4c) {\n          bVar11 = false;\n        }\n        goto LAB_00100e3b;\n      }\n      uVar16 = uVar16 + 1;\n      puVar17 = puVar17 + 6;\n      pcVar6 = (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj\n               .super_Object.name_._M_dataplus._M_p;\n      pcVar14 = (char *)gettext("%s: unexpected reloc type %u in .opd section");\n      gold::gold_warning(pcVar14,pcVar6,uVar15);\n      bVar11 = false;\n      bVar18 = false;\n    } while (uVar12 != uVar16);\nLAB_00100e9d:\n    bVar11 = bVar18;\n    if (2 < uVar12) goto LAB_00100ea8;\n  }" if (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) (compound_statement "{\n    local_4c = 0;\n    uVar16 = 0;\n    local_54 = 0;\n    local_50 = 0;\n    do {\n      while( true ) {\n        uVar15 = puVar17[2];\n        uVar5 = puVar17[3];\n        if (uVar15 != 0x26) break;\n        if (uVar5 < (this->super_Sized_relobj_file<64,_false>).local_symbol_count_) {\n          uVar15 = (uint)*(ushort *)(puVar4 + uVar5 * 0x18 + 6);\n          if (uVar15 < 0xff00) {\n            is_ordinary = true;\n          }\n          else if (uVar15 == 0xffff) {\n            this_01 = (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                      super_Relobj.super_Object.xindex_;\n            if (this_01 == (Xindex *)0x0) {\n              this_01 = gold::Sized_relobj_file<64,_false>::do_initialize_xindex\n                                  (&this->super_Sized_relobj_file<64,_false>);\n              (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.\n              super_Object.xindex_ = this_01;\n            }\n            uVar15 = gold::Xindex::sym_xindex_to_shndx(this_01,(Object *)this,uVar5);\n            is_ordinary = true;\n          }\n          else {\n            is_ordinary = false;\n          }\n          value._0_4_ = *(uint *)(puVar4 + uVar5 * 0x18 + 8);\n          value._4_4_ = *(int *)(puVar4 + uVar5 * 0x18 + 0xc);\n        }\n        else {\n          uVar15 = gold::Sized_relobj_file<64,_false>::symbol_section_and_value\n                             (&this->super_Sized_relobj_file<64,_false>,uVar5,&value,&is_ordinary);\n        }\n        uVar5 = puVar17[1];\n        uVar7 = puVar17[4];\n        uVar8 = puVar17[4];\n        uVar9 = puVar17[5];\n        pOVar13 = (this->opd_ent_).\n                  super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_>\n                  ._M_impl._M_start;\n        uVar10 = *puVar17;\n        if ((uint)((int)(this->opd_ent_).\n                        super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_>\n                        ._M_impl._M_finish - (int)pOVar13 >> 4) <= uVar10 >> 4) {\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/powerpc.cc",0xd0,"set_opd_ent");\n        }\n        pOVar13 = pOVar13 + (uVar10 >> 4);\n        pOVar13->shndx = uVar15;\n        *(uint *)((int)&pOVar13->off + 4) = value._4_4_ + uVar9 + (uint)CARRY4((uint)value,uVar7);\n        *(uint *)&pOVar13->off = (uint)value + uVar8;\n        uVar15 = uVar10;\n        uVar8 = uVar5;\n        uVar7 = uVar10;\n        if ((uVar16 != 2) &&\n           (uVar15 = local_54, uVar8 = local_50, uVar7 = local_4c,\n           uVar5 != local_50 || uVar10 != local_54)) {\n          bVar11 = false;\n        }\n        local_4c = uVar7;\n        local_50 = uVar8;\n        local_54 = uVar15;\n        bVar18 = CARRY4(local_54,local_4c);\n        local_54 = local_54 + local_4c;\n        local_50 = local_50 + bVar18;\nLAB_00100e3b:\n        uVar16 = uVar16 + 1;\n        puVar17 = puVar17 + 6;\n        bVar18 = bVar11;\n        if (uVar12 == uVar16) goto LAB_00100e9d;\n      }\n      if (uVar15 == 0x33) {\n        if (puVar17[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||\n            *puVar17 != (local_54 + 8) - local_4c) {\n          bVar11 = false;\n        }\n        goto LAB_00100e3b;\n      }\n      uVar16 = uVar16 + 1;\n      puVar17 = puVar17 + 6;\n      pcVar6 = (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj\n               .super_Object.name_._M_dataplus._M_p;\n      pcVar14 = (char *)gettext("%s: unexpected reloc type %u in .opd section");\n      gold::gold_warning(pcVar14,pcVar6,uVar15);\n      bVar11 = false;\n      bVar18 = false;\n    } while (uVar12 != uVar16);\nLAB_00100e9d:\n    bVar11 = bVar18;\n    if (2 < uVar12) goto LAB_00100ea8;\n  }" { (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (do_statement "do {\n      while( true ) {\n        uVar15 = puVar17[2];\n        uVar5 = puVar17[3];\n        if (uVar15 != 0x26) break;\n        if (uVar5 < (this->super_Sized_relobj_file<64,_false>).local_symbol_count_) {\n          uVar15 = (uint)*(ushort *)(puVar4 + uVar5 * 0x18 + 6);\n          if (uVar15 < 0xff00) {\n            is_ordinary = true;\n          }\n          else if (uVar15 == 0xffff) {\n            this_01 = (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                      super_Relobj.super_Object.xindex_;\n            if (this_01 == (Xindex *)0x0) {\n              this_01 = gold::Sized_relobj_file<64,_false>::do_initialize_xindex\n                                  (&this->super_Sized_relobj_file<64,_false>);\n              (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.\n              super_Object.xindex_ = this_01;\n            }\n            uVar15 = gold::Xindex::sym_xindex_to_shndx(this_01,(Object *)this,uVar5);\n            is_ordinary = true;\n          }\n          else {\n            is_ordinary = false;\n          }\n          value._0_4_ = *(uint *)(puVar4 + uVar5 * 0x18 + 8);\n          value._4_4_ = *(int *)(puVar4 + uVar5 * 0x18 + 0xc);\n        }\n        else {\n          uVar15 = gold::Sized_relobj_file<64,_false>::symbol_section_and_value\n                             (&this->super_Sized_relobj_file<64,_false>,uVar5,&value,&is_ordinary);\n        }\n        uVar5 = puVar17[1];\n        uVar7 = puVar17[4];\n        uVar8 = puVar17[4];\n        uVar9 = puVar17[5];\n        pOVar13 = (this->opd_ent_).\n                  super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_>\n                  ._M_impl._M_start;\n        uVar10 = *puVar17;\n        if ((uint)((int)(this->opd_ent_).\n                        super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_>\n                        ._M_impl._M_finish - (int)pOVar13 >> 4) <= uVar10 >> 4) {\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/powerpc.cc",0xd0,"set_opd_ent");\n        }\n        pOVar13 = pOVar13 + (uVar10 >> 4);\n        pOVar13->shndx = uVar15;\n        *(uint *)((int)&pOVar13->off + 4) = value._4_4_ + uVar9 + (uint)CARRY4((uint)value,uVar7);\n        *(uint *)&pOVar13->off = (uint)value + uVar8;\n        uVar15 = uVar10;\n        uVar8 = uVar5;\n        uVar7 = uVar10;\n        if ((uVar16 != 2) &&\n           (uVar15 = local_54, uVar8 = local_50, uVar7 = local_4c,\n           uVar5 != local_50 || uVar10 != local_54)) {\n          bVar11 = false;\n        }\n        local_4c = uVar7;\n        local_50 = uVar8;\n        local_54 = uVar15;\n        bVar18 = CARRY4(local_54,local_4c);\n        local_54 = local_54 + local_4c;\n        local_50 = local_50 + bVar18;\nLAB_00100e3b:\n        uVar16 = uVar16 + 1;\n        puVar17 = puVar17 + 6;\n        bVar18 = bVar11;\n        if (uVar12 == uVar16) goto LAB_00100e9d;\n      }\n      if (uVar15 == 0x33) {\n        if (puVar17[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||\n            *puVar17 != (local_54 + 8) - local_4c) {\n          bVar11 = false;\n        }\n        goto LAB_00100e3b;\n      }\n      uVar16 = uVar16 + 1;\n      puVar17 = puVar17 + 6;\n      pcVar6 = (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj\n               .super_Object.name_._M_dataplus._M_p;\n      pcVar14 = (char *)gettext("%s: unexpected reloc type %u in .opd section");\n      gold::gold_warning(pcVar14,pcVar6,uVar15);\n      bVar11 = false;\n      bVar18 = false;\n    } while (uVar12 != uVar16);" do (compound_statement "{\n      while( true ) {\n        uVar15 = puVar17[2];\n        uVar5 = puVar17[3];\n        if (uVar15 != 0x26) break;\n        if (uVar5 < (this->super_Sized_relobj_file<64,_false>).local_symbol_count_) {\n          uVar15 = (uint)*(ushort *)(puVar4 + uVar5 * 0x18 + 6);\n          if (uVar15 < 0xff00) {\n            is_ordinary = true;\n          }\n          else if (uVar15 == 0xffff) {\n            this_01 = (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                      super_Relobj.super_Object.xindex_;\n            if (this_01 == (Xindex *)0x0) {\n              this_01 = gold::Sized_relobj_file<64,_false>::do_initialize_xindex\n                                  (&this->super_Sized_relobj_file<64,_false>);\n              (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.\n              super_Object.xindex_ = this_01;\n            }\n            uVar15 = gold::Xindex::sym_xindex_to_shndx(this_01,(Object *)this,uVar5);\n            is_ordinary = true;\n          }\n          else {\n            is_ordinary = false;\n          }\n          value._0_4_ = *(uint *)(puVar4 + uVar5 * 0x18 + 8);\n          value._4_4_ = *(int *)(puVar4 + uVar5 * 0x18 + 0xc);\n        }\n        else {\n          uVar15 = gold::Sized_relobj_file<64,_false>::symbol_section_and_value\n                             (&this->super_Sized_relobj_file<64,_false>,uVar5,&value,&is_ordinary);\n        }\n        uVar5 = puVar17[1];\n        uVar7 = puVar17[4];\n        uVar8 = puVar17[4];\n        uVar9 = puVar17[5];\n        pOVar13 = (this->opd_ent_).\n                  super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_>\n                  ._M_impl._M_start;\n        uVar10 = *puVar17;\n        if ((uint)((int)(this->opd_ent_).\n                        super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_>\n                        ._M_impl._M_finish - (int)pOVar13 >> 4) <= uVar10 >> 4) {\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/powerpc.cc",0xd0,"set_opd_ent");\n        }\n        pOVar13 = pOVar13 + (uVar10 >> 4);\n        pOVar13->shndx = uVar15;\n        *(uint *)((int)&pOVar13->off + 4) = value._4_4_ + uVar9 + (uint)CARRY4((uint)value,uVar7);\n        *(uint *)&pOVar13->off = (uint)value + uVar8;\n        uVar15 = uVar10;\n        uVar8 = uVar5;\n        uVar7 = uVar10;\n        if ((uVar16 != 2) &&\n           (uVar15 = local_54, uVar8 = local_50, uVar7 = local_4c,\n           uVar5 != local_50 || uVar10 != local_54)) {\n          bVar11 = false;\n        }\n        local_4c = uVar7;\n        local_50 = uVar8;\n        local_54 = uVar15;\n        bVar18 = CARRY4(local_54,local_4c);\n        local_54 = local_54 + local_4c;\n        local_50 = local_50 + bVar18;\nLAB_00100e3b:\n        uVar16 = uVar16 + 1;\n        puVar17 = puVar17 + 6;\n        bVar18 = bVar11;\n        if (uVar12 == uVar16) goto LAB_00100e9d;\n      }\n      if (uVar15 == 0x33) {\n        if (puVar17[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||\n            *puVar17 != (local_54 + 8) - local_4c) {\n          bVar11 = false;\n        }\n        goto LAB_00100e3b;\n      }\n      uVar16 = uVar16 + 1;\n      puVar17 = puVar17 + 6;\n      pcVar6 = (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj\n               .super_Object.name_._M_dataplus._M_p;\n      pcVar14 = (char *)gettext("%s: unexpected reloc type %u in .opd section");\n      gold::gold_warning(pcVar14,pcVar6,uVar15);\n      bVar11 = false;\n      bVar18 = false;\n    }" { (while_statement "while( true ) {\n        uVar15 = puVar17[2];\n        uVar5 = puVar17[3];\n        if (uVar15 != 0x26) break;\n        if (uVar5 < (this->super_Sized_relobj_file<64,_false>).local_symbol_count_) {\n          uVar15 = (uint)*(ushort *)(puVar4 + uVar5 * 0x18 + 6);\n          if (uVar15 < 0xff00) {\n            is_ordinary = true;\n          }\n          else if (uVar15 == 0xffff) {\n            this_01 = (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                      super_Relobj.super_Object.xindex_;\n            if (this_01 == (Xindex *)0x0) {\n              this_01 = gold::Sized_relobj_file<64,_false>::do_initialize_xindex\n                                  (&this->super_Sized_relobj_file<64,_false>);\n              (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.\n              super_Object.xindex_ = this_01;\n            }\n            uVar15 = gold::Xindex::sym_xindex_to_shndx(this_01,(Object *)this,uVar5);\n            is_ordinary = true;\n          }\n          else {\n            is_ordinary = false;\n          }\n          value._0_4_ = *(uint *)(puVar4 + uVar5 * 0x18 + 8);\n          value._4_4_ = *(int *)(puVar4 + uVar5 * 0x18 + 0xc);\n        }\n        else {\n          uVar15 = gold::Sized_relobj_file<64,_false>::symbol_section_and_value\n                             (&this->super_Sized_relobj_file<64,_false>,uVar5,&value,&is_ordinary);\n        }\n        uVar5 = puVar17[1];\n        uVar7 = puVar17[4];\n        uVar8 = puVar17[4];\n        uVar9 = puVar17[5];\n        pOVar13 = (this->opd_ent_).\n                  super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_>\n                  ._M_impl._M_start;\n        uVar10 = *puVar17;\n        if ((uint)((int)(this->opd_ent_).\n                        super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_>\n                        ._M_impl._M_finish - (int)pOVar13 >> 4) <= uVar10 >> 4) {\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/powerpc.cc",0xd0,"set_opd_ent");\n        }\n        pOVar13 = pOVar13 + (uVar10 >> 4);\n        pOVar13->shndx = uVar15;\n        *(uint *)((int)&pOVar13->off + 4) = value._4_4_ + uVar9 + (uint)CARRY4((uint)value,uVar7);\n        *(uint *)&pOVar13->off = (uint)value + uVar8;\n        uVar15 = uVar10;\n        uVar8 = uVar5;\n        uVar7 = uVar10;\n        if ((uVar16 != 2) &&\n           (uVar15 = local_54, uVar8 = local_50, uVar7 = local_4c,\n           uVar5 != local_50 || uVar10 != local_54)) {\n          bVar11 = false;\n        }\n        local_4c = uVar7;\n        local_50 = uVar8;\n        local_54 = uVar15;\n        bVar18 = CARRY4(local_54,local_4c);\n        local_54 = local_54 + local_4c;\n        local_50 = local_50 + bVar18;\nLAB_00100e3b:\n        uVar16 = uVar16 + 1;\n        puVar17 = puVar17 + 6;\n        bVar18 = bVar11;\n        if (uVar12 == uVar16) goto LAB_00100e9d;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        uVar15 = puVar17[2];\n        uVar5 = puVar17[3];\n        if (uVar15 != 0x26) break;\n        if (uVar5 < (this->super_Sized_relobj_file<64,_false>).local_symbol_count_) {\n          uVar15 = (uint)*(ushort *)(puVar4 + uVar5 * 0x18 + 6);\n          if (uVar15 < 0xff00) {\n            is_ordinary = true;\n          }\n          else if (uVar15 == 0xffff) {\n            this_01 = (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                      super_Relobj.super_Object.xindex_;\n            if (this_01 == (Xindex *)0x0) {\n              this_01 = gold::Sized_relobj_file<64,_false>::do_initialize_xindex\n                                  (&this->super_Sized_relobj_file<64,_false>);\n              (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.\n              super_Object.xindex_ = this_01;\n            }\n            uVar15 = gold::Xindex::sym_xindex_to_shndx(this_01,(Object *)this,uVar5);\n            is_ordinary = true;\n          }\n          else {\n            is_ordinary = false;\n          }\n          value._0_4_ = *(uint *)(puVar4 + uVar5 * 0x18 + 8);\n          value._4_4_ = *(int *)(puVar4 + uVar5 * 0x18 + 0xc);\n        }\n        else {\n          uVar15 = gold::Sized_relobj_file<64,_false>::symbol_section_and_value\n                             (&this->super_Sized_relobj_file<64,_false>,uVar5,&value,&is_ordinary);\n        }\n        uVar5 = puVar17[1];\n        uVar7 = puVar17[4];\n        uVar8 = puVar17[4];\n        uVar9 = puVar17[5];\n        pOVar13 = (this->opd_ent_).\n                  super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_>\n                  ._M_impl._M_start;\n        uVar10 = *puVar17;\n        if ((uint)((int)(this->opd_ent_).\n                        super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_>\n                        ._M_impl._M_finish - (int)pOVar13 >> 4) <= uVar10 >> 4) {\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/powerpc.cc",0xd0,"set_opd_ent");\n        }\n        pOVar13 = pOVar13 + (uVar10 >> 4);\n        pOVar13->shndx = uVar15;\n        *(uint *)((int)&pOVar13->off + 4) = value._4_4_ + uVar9 + (uint)CARRY4((uint)value,uVar7);\n        *(uint *)&pOVar13->off = (uint)value + uVar8;\n        uVar15 = uVar10;\n        uVar8 = uVar5;\n        uVar7 = uVar10;\n        if ((uVar16 != 2) &&\n           (uVar15 = local_54, uVar8 = local_50, uVar7 = local_4c,\n           uVar5 != local_50 || uVar10 != local_54)) {\n          bVar11 = false;\n        }\n        local_4c = uVar7;\n        local_50 = uVar8;\n        local_54 = uVar15;\n        bVar18 = CARRY4(local_54,local_4c);\n        local_54 = local_54 + local_4c;\n        local_50 = local_50 + bVar18;\nLAB_00100e3b:\n        uVar16 = uVar16 + 1;\n        puVar17 = puVar17 + 6;\n        bVar18 = bVar11;\n        if (uVar12 == uVar16) goto LAB_00100e9d;\n      }" { (expression_statement "uVar15 = puVar17[2];" (assignment_expression "uVar15 = puVar17[2]" identifier = (subscript_expression "puVar17[2]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = puVar17[3];" (assignment_expression "uVar5 = puVar17[3]" identifier = (subscript_expression "puVar17[3]" identifier [ number_literal ])) ;) (if_statement "if (uVar15 != 0x26) break;" if (parenthesized_expression "(uVar15 != 0x26)" ( (binary_expression "uVar15 != 0x26" identifier != number_literal) )) (break_statement "break;" break ;)) (if_statement "if (uVar5 < (this->super_Sized_relobj_file<64,_false>).local_symbol_count_) {\n          uVar15 = (uint)*(ushort *)(puVar4 + uVar5 * 0x18 + 6);\n          if (uVar15 < 0xff00) {\n            is_ordinary = true;\n          }\n          else if (uVar15 == 0xffff) {\n            this_01 = (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                      super_Relobj.super_Object.xindex_;\n            if (this_01 == (Xindex *)0x0) {\n              this_01 = gold::Sized_relobj_file<64,_false>::do_initialize_xindex\n                                  (&this->super_Sized_relobj_file<64,_false>);\n              (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.\n              super_Object.xindex_ = this_01;\n            }\n            uVar15 = gold::Xindex::sym_xindex_to_shndx(this_01,(Object *)this,uVar5);\n            is_ordinary = true;\n          }\n          else {\n            is_ordinary = false;\n          }\n          value._0_4_ = *(uint *)(puVar4 + uVar5 * 0x18 + 8);\n          value._4_4_ = *(int *)(puVar4 + uVar5 * 0x18 + 0xc);\n        }\n        else {\n          uVar15 = gold::Sized_relobj_file<64,_false>::symbol_section_and_value\n                             (&this->super_Sized_relobj_file<64,_false>,uVar5,&value,&is_ordinary);\n        }" if (parenthesized_expression "(uVar5 < (this->super_Sized_relobj_file<64,_false>).local_symbol_count_)" ( (binary_expression "uVar5 < (this->super_Sized_relobj_file<64,_false>).local_symbol_count_" identifier < (field_expression "(this->super_Sized_relobj_file<64,_false>).local_symbol_count_" (parenthesized_expression "(this->super_Sized_relobj_file<64,_false>)" ( (comma_expression "this->super_Sized_relobj_file<64,_false" (binary_expression "this->super_Sized_relobj_file<64" (field_expression "this->super_Sized_relobj_file" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier)) )) (compound_statement "{\n          uVar15 = (uint)*(ushort *)(puVar4 + uVar5 * 0x18 + 6);\n          if (uVar15 < 0xff00) {\n            is_ordinary = true;\n          }\n          else if (uVar15 == 0xffff) {\n            this_01 = (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                      super_Relobj.super_Object.xindex_;\n            if (this_01 == (Xindex *)0x0) {\n              this_01 = gold::Sized_relobj_file<64,_false>::do_initialize_xindex\n                                  (&this->super_Sized_relobj_file<64,_false>);\n              (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.\n              super_Object.xindex_ = this_01;\n            }\n            uVar15 = gold::Xindex::sym_xindex_to_shndx(this_01,(Object *)this,uVar5);\n            is_ordinary = true;\n          }\n          else {\n            is_ordinary = false;\n          }\n          value._0_4_ = *(uint *)(puVar4 + uVar5 * 0x18 + 8);\n          value._4_4_ = *(int *)(puVar4 + uVar5 * 0x18 + 0xc);\n        }" { (expression_statement "uVar15 = (uint)*(ushort *)(puVar4 + uVar5 * 0x18 + 6);" (assignment_expression "uVar15 = (uint)*(ushort *)(puVar4 + uVar5 * 0x18 + 6)" identifier = (binary_expression "(uint)*(ushort *)(puVar4 + uVar5 * 0x18 + 6)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(puVar4 + uVar5 * 0x18 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + uVar5 * 0x18 + 6)" ( (binary_expression "puVar4 + uVar5 * 0x18 + 6" (binary_expression "puVar4 + uVar5 * 0x18" identifier + (binary_expression "uVar5 * 0x18" identifier * number_literal)) + number_literal) ))))) ;) (if_statement "if (uVar15 < 0xff00) {\n            is_ordinary = true;\n          }\n          else if (uVar15 == 0xffff) {\n            this_01 = (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                      super_Relobj.super_Object.xindex_;\n            if (this_01 == (Xindex *)0x0) {\n              this_01 = gold::Sized_relobj_file<64,_false>::do_initialize_xindex\n                                  (&this->super_Sized_relobj_file<64,_false>);\n              (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.\n              super_Object.xindex_ = this_01;\n            }\n            uVar15 = gold::Xindex::sym_xindex_to_shndx(this_01,(Object *)this,uVar5);\n            is_ordinary = true;\n          }\n          else {\n            is_ordinary = false;\n          }" if (parenthesized_expression "(uVar15 < 0xff00)" ( (binary_expression "uVar15 < 0xff00" identifier < number_literal) )) (compound_statement "{\n            is_ordinary = true;\n          }" { (expression_statement "is_ordinary = true;" (assignment_expression "is_ordinary = true" identifier = true) ;) }) (else_clause "else if (uVar15 == 0xffff) {\n            this_01 = (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                      super_Relobj.super_Object.xindex_;\n            if (this_01 == (Xindex *)0x0) {\n              this_01 = gold::Sized_relobj_file<64,_false>::do_initialize_xindex\n                                  (&this->super_Sized_relobj_file<64,_false>);\n              (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.\n              super_Object.xindex_ = this_01;\n            }\n            uVar15 = gold::Xindex::sym_xindex_to_shndx(this_01,(Object *)this,uVar5);\n            is_ordinary = true;\n          }\n          else {\n            is_ordinary = false;\n          }" else (if_statement "if (uVar15 == 0xffff) {\n            this_01 = (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                      super_Relobj.super_Object.xindex_;\n            if (this_01 == (Xindex *)0x0) {\n              this_01 = gold::Sized_relobj_file<64,_false>::do_initialize_xindex\n                                  (&this->super_Sized_relobj_file<64,_false>);\n              (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.\n              super_Object.xindex_ = this_01;\n            }\n            uVar15 = gold::Xindex::sym_xindex_to_shndx(this_01,(Object *)this,uVar5);\n            is_ordinary = true;\n          }\n          else {\n            is_ordinary = false;\n          }" if (parenthesized_expression "(uVar15 == 0xffff)" ( (binary_expression "uVar15 == 0xffff" identifier == number_literal) )) (compound_statement "{\n            this_01 = (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                      super_Relobj.super_Object.xindex_;\n            if (this_01 == (Xindex *)0x0) {\n              this_01 = gold::Sized_relobj_file<64,_false>::do_initialize_xindex\n                                  (&this->super_Sized_relobj_file<64,_false>);\n              (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.\n              super_Object.xindex_ = this_01;\n            }\n            uVar15 = gold::Xindex::sym_xindex_to_shndx(this_01,(Object *)this,uVar5);\n            is_ordinary = true;\n          }" { (expression_statement "this_01 = (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                      super_Relobj.super_Object.xindex_;" (comma_expression "this_01 = (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.\n                      super_Relobj.super_Object.xindex_" (assignment_expression "this_01 = (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64" identifier = (binary_expression "(this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64" (field_expression "(this->super_Sized_relobj_file<64,_false>).super_Sized_relobj" (parenthesized_expression "(this->super_Sized_relobj_file<64,_false>)" ( (comma_expression "this->super_Sized_relobj_file<64,_false" (binary_expression "this->super_Sized_relobj_file<64" (field_expression "this->super_Sized_relobj_file" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) < number_literal)) , (field_expression "_false>.\n                      super_Relobj.super_Object.xindex_" (field_expression "_false>.\n                      super_Relobj.super_Object" (field_expression "_false>.\n                      super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier)) ;) (if_statement "if (this_01 == (Xindex *)0x0) {\n              this_01 = gold::Sized_relobj_file<64,_false>::do_initialize_xindex\n                                  (&this->super_Sized_relobj_file<64,_false>);\n              (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.\n              super_Object.xindex_ = this_01;\n            }" if (parenthesized_expression "(this_01 == (Xindex *)0x0)" ( (binary_expression "this_01 == (Xindex *)0x0" identifier == (cast_expression "(Xindex *)0x0" ( (type_descriptor "Xindex *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              this_01 = gold::Sized_relobj_file<64,_false>::do_initialize_xindex\n                                  (&this->super_Sized_relobj_file<64,_false>);\n              (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.\n              super_Object.xindex_ = this_01;\n            }" { (ERROR "this_01 = gold::" (assignment_expression "this_01 = gold" identifier = identifier) : :) (expression_statement "Sized_relobj_file<64,_false>::do_initialize_xindex\n                                  (&this->super_Sized_relobj_file<64,_false>);" (comma_expression "Sized_relobj_file<64,_false>::do_initialize_xindex\n                                  (&this->super_Sized_relobj_file<64,_false>)" (binary_expression "Sized_relobj_file<64" identifier < number_literal) , (binary_expression "_false>::do_initialize_xindex\n                                  (&this->super_Sized_relobj_file<64,_false>)" identifier > (ERROR "::" : :) (call_expression "do_initialize_xindex\n                                  (&this->super_Sized_relobj_file<64,_false>)" identifier (argument_list "(&this->super_Sized_relobj_file<64,_false>)" ( (binary_expression "&this->super_Sized_relobj_file<64" (pointer_expression "&this->super_Sized_relobj_file" & (field_expression "this->super_Sized_relobj_file" identifier -> field_identifier)) < number_literal) , identifier (ERROR ">" >) ))))) ;) (expression_statement "(this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.\n              super_Object.xindex_ = this_01;" (comma_expression "(this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.\n              super_Object.xindex_ = this_01" (binary_expression "(this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64" (field_expression "(this->super_Sized_relobj_file<64,_false>).super_Sized_relobj" (parenthesized_expression "(this->super_Sized_relobj_file<64,_false>)" ( (comma_expression "this->super_Sized_relobj_file<64,_false" (binary_expression "this->super_Sized_relobj_file<64" (field_expression "this->super_Sized_relobj_file" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) < number_literal) , (assignment_expression "_false>.super_Relobj.\n              super_Object.xindex_ = this_01" (field_expression "_false>.super_Relobj.\n              super_Object.xindex_" (field_expression "_false>.super_Relobj.\n              super_Object" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) = identifier)) ;) })) (ERROR "uVar15 = gold::" (assignment_expression "uVar15 = gold" identifier = identifier) : :) (labeled_statement "Xindex::sym_xindex_to_shndx(this_01,(Object *)this,uVar5);" statement_identifier : (ERROR ":" :) (expression_statement "sym_xindex_to_shndx(this_01,(Object *)this,uVar5);" (call_expression "sym_xindex_to_shndx(this_01,(Object *)this,uVar5)" identifier (argument_list "(this_01,(Object *)this,uVar5)" ( identifier , (cast_expression "(Object *)this" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;)) (expression_statement "is_ordinary = true;" (assignment_expression "is_ordinary = true" identifier = true) ;) }) (else_clause "else {\n            is_ordinary = false;\n          }" else (compound_statement "{\n            is_ordinary = false;\n          }" { (expression_statement "is_ordinary = false;" (assignment_expression "is_ordinary = false" identifier = false) ;) }))))) (expression_statement "value._0_4_ = *(uint *)(puVar4 + uVar5 * 0x18 + 8);" (assignment_expression "value._0_4_ = *(uint *)(puVar4 + uVar5 * 0x18 + 8)" (field_expression "value._0_4_" identifier . field_identifier) = (pointer_expression "*(uint *)(puVar4 + uVar5 * 0x18 + 8)" * (cast_expression "(uint *)(puVar4 + uVar5 * 0x18 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + uVar5 * 0x18 + 8)" ( (binary_expression "puVar4 + uVar5 * 0x18 + 8" (binary_expression "puVar4 + uVar5 * 0x18" identifier + (binary_expression "uVar5 * 0x18" identifier * number_literal)) + number_literal) ))))) ;) (expression_statement "value._4_4_ = *(int *)(puVar4 + uVar5 * 0x18 + 0xc);" (assignment_expression "value._4_4_ = *(int *)(puVar4 + uVar5 * 0x18 + 0xc)" (field_expression "value._4_4_" identifier . field_identifier) = (pointer_expression "*(int *)(puVar4 + uVar5 * 0x18 + 0xc)" * (cast_expression "(int *)(puVar4 + uVar5 * 0x18 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + uVar5 * 0x18 + 0xc)" ( (binary_expression "puVar4 + uVar5 * 0x18 + 0xc" (binary_expression "puVar4 + uVar5 * 0x18" identifier + (binary_expression "uVar5 * 0x18" identifier * number_literal)) + number_literal) ))))) ;) }) (else_clause "else {\n          uVar15 = gold::Sized_relobj_file<64,_false>::symbol_section_and_value\n                             (&this->super_Sized_relobj_file<64,_false>,uVar5,&value,&is_ordinary);\n        }" else (compound_statement "{\n          uVar15 = gold::Sized_relobj_file<64,_false>::symbol_section_and_value\n                             (&this->super_Sized_relobj_file<64,_false>,uVar5,&value,&is_ordinary);\n        }" { (ERROR "uVar15 = gold::" (assignment_expression "uVar15 = gold" identifier = identifier) : :) (expression_statement "Sized_relobj_file<64,_false>::symbol_section_and_value\n                             (&this->super_Sized_relobj_file<64,_false>,uVar5,&value,&is_ordinary);" (comma_expression "Sized_relobj_file<64,_false>::symbol_section_and_value\n                             (&this->super_Sized_relobj_file<64,_false>,uVar5,&value,&is_ordinary)" (binary_expression "Sized_relobj_file<64" identifier < number_literal) , (binary_expression "_false>::symbol_section_and_value\n                             (&this->super_Sized_relobj_file<64,_false>,uVar5,&value,&is_ordinary)" identifier > (ERROR "::" : :) (call_expression "symbol_section_and_value\n                             (&this->super_Sized_relobj_file<64,_false>,uVar5,&value,&is_ordinary)" identifier (argument_list "(&this->super_Sized_relobj_file<64,_false>,uVar5,&value,&is_ordinary)" ( (binary_expression "&this->super_Sized_relobj_file<64" (pointer_expression "&this->super_Sized_relobj_file" & (field_expression "this->super_Sized_relobj_file" identifier -> field_identifier)) < number_literal) , identifier (ERROR ">" >) , identifier , (pointer_expression "&value" & identifier) , (pointer_expression "&is_ordinary" & identifier) ))))) ;) }))) (expression_statement "uVar5 = puVar17[1];" (assignment_expression "uVar5 = puVar17[1]" identifier = (subscript_expression "puVar17[1]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = puVar17[4];" (assignment_expression "uVar7 = puVar17[4]" identifier = (subscript_expression "puVar17[4]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = puVar17[4];" (assignment_expression "uVar8 = puVar17[4]" identifier = (subscript_expression "puVar17[4]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = puVar17[5];" (assignment_expression "uVar9 = puVar17[5]" identifier = (subscript_expression "puVar17[5]" identifier [ number_literal ])) ;) (ERROR "pOVar13 = (this->opd_ent_).\n                  super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::" (comma_expression "pOVar13 = (this->opd_ent_).\n                  super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std" (binary_expression "pOVar13 = (this->opd_ent_).\n                  super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64" (assignment_expression "pOVar13 = (this->opd_ent_).\n                  super__Vector_base<(anonymous_namespace)" identifier = (binary_expression "(this->opd_ent_).\n                  super__Vector_base<(anonymous_namespace)" (field_expression "(this->opd_ent_).\n                  super__Vector_base" (parenthesized_expression "(this->opd_ent_)" ( (field_expression "this->opd_ent_" identifier -> field_identifier) )) . field_identifier) < (parenthesized_expression "(anonymous_namespace)" ( identifier )))) (ERROR "::Powerpc_relobj" : : identifier) < number_literal) , (comma_expression "_false>::Opd_ent,_std" (binary_expression "_false>::Opd_ent" identifier > (ERROR "::" : :) identifier) , identifier)) : : (binary_expression "allocator<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) : :) (expression_statement "Powerpc_relobj<64,_false>::Opd_ent>_>\n                  ._M_impl._M_start;" (comma_expression "Powerpc_relobj<64,_false>::Opd_ent>_>\n                  ._M_impl._M_start" (binary_expression "Powerpc_relobj<64" identifier < number_literal) , (field_expression "_false>::Opd_ent>_>\n                  ._M_impl._M_start" (field_expression "_false>::Opd_ent>_>\n                  ._M_impl" (binary_expression "_false>::Opd_ent>_" (binary_expression "_false>::Opd_ent" identifier > (ERROR "::" : :) identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier)) ;) (expression_statement "uVar10 = *puVar17;" (assignment_expression "uVar10 = *puVar17" identifier = (pointer_expression "*puVar17" * identifier)) ;) (if_statement "if ((uint)((int)(this->opd_ent_).\n                        super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_>\n                        ._M_impl._M_finish - (int)pOVar13 >> 4) <= uVar10 >> 4) {\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/powerpc.cc",0xd0,"set_opd_ent");\n        }" if (parenthesized_expression "((uint)((int)(this->opd_ent_).\n                        super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_>\n                        ._M_impl._M_finish - (int)pOVar13 >> 4) <= uVar10 >> 4)" ( (binary_expression "(uint)((int)(this->opd_ent_).\n                        super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_>\n                        ._M_impl._M_finish - (int)pOVar13 >> 4) <= uVar10 >> 4" (call_expression "(uint)((int)(this->opd_ent_).\n                        super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_>\n                        ._M_impl._M_finish - (int)pOVar13 >> 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)(this->opd_ent_).\n                        super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent,_std::allocator<(anonymous_namespace)::Powerpc_relobj<64,_false>::Opd_ent>_>\n                        ._M_impl._M_finish - (int)pOVar13 >> 4)" ( (binary_expression "(int)(this->opd_ent_).\n                        super__Vector_base<(anonymous_namespace)::Powerpc_relobj<64" (binary_expression "(int)(this->opd_ent_).\n                        super__Vector_base<(anonymous_namespace)" (cast_expression "(int)(this->opd_ent_).\n                        super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "(this->opd_ent_).\n                        super__Vector_base" (parenthesized_expression "(this->opd_ent_)" ( (field_expression "this->opd_ent_" identifier -> field_identifier) )) . field_identifier)) < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Powerpc_relobj" : : identifier) < number_literal) , (binary_expression "_false>::Opd_ent" identifier > (ERROR "::" : :) identifier) , (ERROR "_std::allocator<(anonymous_namespace)::" identifier : : (binary_expression "allocator<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) : :) (binary_expression "Powerpc_relobj<64" identifier < number_literal) , (binary_expression "_false>::Opd_ent>_>\n                        ._M_impl._M_finish - (int)pOVar13 >> 4" (binary_expression "_false>::Opd_ent>_>\n                        ._M_impl._M_finish - (int)pOVar13" (field_expression "_false>::Opd_ent>_>\n                        ._M_impl._M_finish" (field_expression "_false>::Opd_ent>_>\n                        ._M_impl" (binary_expression "_false>::Opd_ent>_" (binary_expression "_false>::Opd_ent" identifier > (ERROR "::" : :) identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) - (cast_expression "(int)pOVar13" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) ))) <= (binary_expression "uVar10 >> 4" identifier >> number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          gold::do_gold_unreachable("../../gold/powerpc.cc",0xd0,"set_opd_ent");\n        }" { comment (labeled_statement "gold::do_gold_unreachable("../../gold/powerpc.cc",0xd0,"set_opd_ent");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/powerpc.cc",0xd0,"set_opd_ent");" (call_expression "do_gold_unreachable("../../gold/powerpc.cc",0xd0,"set_opd_ent")" identifier (argument_list "("../../gold/powerpc.cc",0xd0,"set_opd_ent")" ( (string_literal ""../../gold/powerpc.cc"" " string_content ") , number_literal , (string_literal ""set_opd_ent"" " string_content ") ))) ;)) })) (expression_statement "pOVar13 = pOVar13 + (uVar10 >> 4);" (assignment_expression "pOVar13 = pOVar13 + (uVar10 >> 4)" identifier = (binary_expression "pOVar13 + (uVar10 >> 4)" identifier + (parenthesized_expression "(uVar10 >> 4)" ( (binary_expression "uVar10 >> 4" identifier >> number_literal) )))) ;) (expression_statement "pOVar13->shndx = uVar15;" (assignment_expression "pOVar13->shndx = uVar15" (field_expression "pOVar13->shndx" identifier -> field_identifier) = identifier) ;) (expression_statement "*(uint *)((int)&pOVar13->off + 4) = value._4_4_ + uVar9 + (uint)CARRY4((uint)value,uVar7);" (assignment_expression "*(uint *)((int)&pOVar13->off + 4) = value._4_4_ + uVar9 + (uint)CARRY4((uint)value,uVar7)" (pointer_expression "*(uint *)((int)&pOVar13->off + 4)" * (cast_expression "(uint *)((int)&pOVar13->off + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar13->off + 4)" ( (binary_expression "(int)&pOVar13->off + 4" (cast_expression "(int)&pOVar13->off" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar13->off" & (field_expression "pOVar13->off" identifier -> field_identifier))) + number_literal) )))) = (binary_expression "value._4_4_ + uVar9 + (uint)CARRY4((uint)value,uVar7)" (binary_expression "value._4_4_ + uVar9" (field_expression "value._4_4_" identifier . field_identifier) + identifier) + (cast_expression "(uint)CARRY4((uint)value,uVar7)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)value,uVar7)" identifier (argument_list "((uint)value,uVar7)" ( (cast_expression "(uint)value" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier )))))) ;) (expression_statement "*(uint *)&pOVar13->off = (uint)value + uVar8;" (assignment_expression "*(uint *)&pOVar13->off = (uint)value + uVar8" (pointer_expression "*(uint *)&pOVar13->off" * (cast_expression "(uint *)&pOVar13->off" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar13->off" & (field_expression "pOVar13->off" identifier -> field_identifier)))) = (binary_expression "(uint)value + uVar8" (cast_expression "(uint)value" ( (type_descriptor "uint" type_identifier) ) identifier) + identifier)) ;) (expression_statement "uVar15 = uVar10;" (assignment_expression "uVar15 = uVar10" identifier = identifier) ;) (expression_statement "uVar8 = uVar5;" (assignment_expression "uVar8 = uVar5" identifier = identifier) ;) (expression_statement "uVar7 = uVar10;" (assignment_expression "uVar7 = uVar10" identifier = identifier) ;) (if_statement "if ((uVar16 != 2) &&\n           (uVar15 = local_54, uVar8 = local_50, uVar7 = local_4c,\n           uVar5 != local_50 || uVar10 != local_54)) {\n          bVar11 = false;\n        }" if (parenthesized_expression "((uVar16 != 2) &&\n           (uVar15 = local_54, uVar8 = local_50, uVar7 = local_4c,\n           uVar5 != local_50 || uVar10 != local_54))" ( (binary_expression "(uVar16 != 2) &&\n           (uVar15 = local_54, uVar8 = local_50, uVar7 = local_4c,\n           uVar5 != local_50 || uVar10 != local_54)" (parenthesized_expression "(uVar16 != 2)" ( (binary_expression "uVar16 != 2" identifier != number_literal) )) && (parenthesized_expression "(uVar15 = local_54, uVar8 = local_50, uVar7 = local_4c,\n           uVar5 != local_50 || uVar10 != local_54)" ( (comma_expression "uVar15 = local_54, uVar8 = local_50, uVar7 = local_4c,\n           uVar5 != local_50 || uVar10 != local_54" (assignment_expression "uVar15 = local_54" identifier = identifier) , (comma_expression "uVar8 = local_50, uVar7 = local_4c,\n           uVar5 != local_50 || uVar10 != local_54" (assignment_expression "uVar8 = local_50" identifier = identifier) , (comma_expression "uVar7 = local_4c,\n           uVar5 != local_50 || uVar10 != local_54" (assignment_expression "uVar7 = local_4c" identifier = identifier) , (binary_expression "uVar5 != local_50 || uVar10 != local_54" (binary_expression "uVar5 != local_50" identifier != identifier) || (binary_expression "uVar10 != local_54" identifier != identifier))))) ))) )) (compound_statement "{\n          bVar11 = false;\n        }" { (expression_statement "bVar11 = false;" (assignment_expression "bVar11 = false" identifier = false) ;) })) (expression_statement "local_4c = uVar7;" (assignment_expression "local_4c = uVar7" identifier = identifier) ;) (expression_statement "local_50 = uVar8;" (assignment_expression "local_50 = uVar8" identifier = identifier) ;) (expression_statement "local_54 = uVar15;" (assignment_expression "local_54 = uVar15" identifier = identifier) ;) (expression_statement "bVar18 = CARRY4(local_54,local_4c);" (assignment_expression "bVar18 = CARRY4(local_54,local_4c)" identifier = (call_expression "CARRY4(local_54,local_4c)" identifier (argument_list "(local_54,local_4c)" ( identifier , identifier )))) ;) (expression_statement "local_54 = local_54 + local_4c;" (assignment_expression "local_54 = local_54 + local_4c" identifier = (binary_expression "local_54 + local_4c" identifier + identifier)) ;) (expression_statement "local_50 = local_50 + bVar18;" (assignment_expression "local_50 = local_50 + bVar18" identifier = (binary_expression "local_50 + bVar18" identifier + identifier)) ;) (labeled_statement "LAB_00100e3b:\n        uVar16 = uVar16 + 1;" statement_identifier : (expression_statement "uVar16 = uVar16 + 1;" (assignment_expression "uVar16 = uVar16 + 1" identifier = (binary_expression "uVar16 + 1" identifier + number_literal)) ;)) (expression_statement "puVar17 = puVar17 + 6;" (assignment_expression "puVar17 = puVar17 + 6" identifier = (binary_expression "puVar17 + 6" identifier + number_literal)) ;) (expression_statement "bVar18 = bVar11;" (assignment_expression "bVar18 = bVar11" identifier = identifier) ;) (if_statement "if (uVar12 == uVar16) goto LAB_00100e9d;" if (parenthesized_expression "(uVar12 == uVar16)" ( (binary_expression "uVar12 == uVar16" identifier == identifier) )) (goto_statement "goto LAB_00100e9d;" goto statement_identifier ;)) })) (if_statement "if (uVar15 == 0x33) {\n        if (puVar17[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||\n            *puVar17 != (local_54 + 8) - local_4c) {\n          bVar11 = false;\n        }\n        goto LAB_00100e3b;\n      }" if (parenthesized_expression "(uVar15 == 0x33)" ( (binary_expression "uVar15 == 0x33" identifier == number_literal) )) (compound_statement "{\n        if (puVar17[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||\n            *puVar17 != (local_54 + 8) - local_4c) {\n          bVar11 = false;\n        }\n        goto LAB_00100e3b;\n      }" { (if_statement "if (puVar17[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||\n            *puVar17 != (local_54 + 8) - local_4c) {\n          bVar11 = false;\n        }" if (parenthesized_expression "(puVar17[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||\n            *puVar17 != (local_54 + 8) - local_4c)" ( (binary_expression "puVar17[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||\n            *puVar17 != (local_54 + 8) - local_4c" (binary_expression "puVar17[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c)" (subscript_expression "puVar17[1]" identifier [ number_literal ]) != (binary_expression "(local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c)" (parenthesized_expression "(local_50 + (0xfffffff7 < local_54))" ( (binary_expression "local_50 + (0xfffffff7 < local_54)" identifier + (parenthesized_expression "(0xfffffff7 < local_54)" ( (binary_expression "0xfffffff7 < local_54" number_literal < identifier) ))) )) - (call_expression "(uint)(local_54 + 8 < local_4c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_54 + 8 < local_4c)" ( (binary_expression "local_54 + 8 < local_4c" (binary_expression "local_54 + 8" identifier + number_literal) < identifier) ))))) || (binary_expression "*puVar17 != (local_54 + 8) - local_4c" (pointer_expression "*puVar17" * identifier) != (binary_expression "(local_54 + 8) - local_4c" (parenthesized_expression "(local_54 + 8)" ( (binary_expression "local_54 + 8" identifier + number_literal) )) - identifier))) )) (compound_statement "{\n          bVar11 = false;\n        }" { (expression_statement "bVar11 = false;" (assignment_expression "bVar11 = false" identifier = false) ;) })) (goto_statement "goto LAB_00100e3b;" goto statement_identifier ;) })) (expression_statement "uVar16 = uVar16 + 1;" (assignment_expression "uVar16 = uVar16 + 1" identifier = (binary_expression "uVar16 + 1" identifier + number_literal)) ;) (expression_statement "puVar17 = puVar17 + 6;" (assignment_expression "puVar17 = puVar17 + 6" identifier = (binary_expression "puVar17 + 6" identifier + number_literal)) ;) (expression_statement "pcVar6 = (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj\n               .super_Object.name_._M_dataplus._M_p;" (comma_expression "pcVar6 = (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj\n               .super_Object.name_._M_dataplus._M_p" (assignment_expression "pcVar6 = (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64" identifier = (binary_expression "(this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64" (field_expression "(this->super_Sized_relobj_file<64,_false>).super_Sized_relobj" (parenthesized_expression "(this->super_Sized_relobj_file<64,_false>)" ( (comma_expression "this->super_Sized_relobj_file<64,_false" (binary_expression "this->super_Sized_relobj_file<64" (field_expression "this->super_Sized_relobj_file" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) < number_literal)) , (field_expression "_false>.super_Relobj\n               .super_Object.name_._M_dataplus._M_p" (field_expression "_false>.super_Relobj\n               .super_Object.name_._M_dataplus" (field_expression "_false>.super_Relobj\n               .super_Object.name_" (field_expression "_false>.super_Relobj\n               .super_Object" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "pcVar14 = (char *)gettext("%s: unexpected reloc type %u in .opd section");" (assignment_expression "pcVar14 = (char *)gettext("%s: unexpected reloc type %u in .opd section")" identifier = (cast_expression "(char *)gettext("%s: unexpected reloc type %u in .opd section")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("%s: unexpected reloc type %u in .opd section")" identifier (argument_list "("%s: unexpected reloc type %u in .opd section")" ( (string_literal ""%s: unexpected reloc type %u in .opd section"" " string_content ") ))))) ;) (labeled_statement "gold::gold_warning(pcVar14,pcVar6,uVar15);" statement_identifier : (ERROR ":" :) (expression_statement "gold_warning(pcVar14,pcVar6,uVar15);" (call_expression "gold_warning(pcVar14,pcVar6,uVar15)" identifier (argument_list "(pcVar14,pcVar6,uVar15)" ( identifier , identifier , identifier ))) ;)) (expression_statement "bVar11 = false;" (assignment_expression "bVar11 = false" identifier = false) ;) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;) }) while (parenthesized_expression "(uVar12 != uVar16)" ( (binary_expression "uVar12 != uVar16" identifier != identifier) )) ;) (labeled_statement "LAB_00100e9d:\n    bVar11 = bVar18;" statement_identifier : (expression_statement "bVar11 = bVar18;" (assignment_expression "bVar11 = bVar18" identifier = identifier) ;)) (if_statement "if (2 < uVar12) goto LAB_00100ea8;" if (parenthesized_expression "(2 < uVar12)" ( (binary_expression "2 < uVar12" number_literal < identifier) )) (goto_statement "goto LAB_00100ea8;" goto statement_identifier ;)) })) (ERROR "EVar19 = elfcpp::Elf_file<64,_false," (binary_expression "EVar19 = elfcpp::Elf_file<64" (assignment_expression "EVar19 = elfcpp" identifier = identifier) (ERROR "::Elf_file" : : identifier) < number_literal) , identifier ,) (labeled_statement "_gold::Object>::section_size(this_00,this->special_);" statement_identifier (ERROR "::Object>:" : : identifier > :) : (expression_statement "section_size(this_00,this->special_);" (call_expression "section_size(this_00,this->special_)" identifier (argument_list "(this_00,this->special_)" ( identifier , (field_expression "this->special_" identifier -> field_identifier) ))) ;)) (expression_statement "local_4c = (uint)EVar19;" (assignment_expression "local_4c = (uint)EVar19" identifier = (cast_expression "(uint)EVar19" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (labeled_statement "LAB_00100ea8:\n  if (((local_4c & 0xfffffff7) == 0x10) && (bVar11)) {\n    return;\n  }" statement_identifier : (if_statement "if (((local_4c & 0xfffffff7) == 0x10) && (bVar11)) {\n    return;\n  }" if (parenthesized_expression "(((local_4c & 0xfffffff7) == 0x10) && (bVar11))" ( (binary_expression "((local_4c & 0xfffffff7) == 0x10) && (bVar11)" (parenthesized_expression "((local_4c & 0xfffffff7) == 0x10)" ( (binary_expression "(local_4c & 0xfffffff7) == 0x10" (parenthesized_expression "(local_4c & 0xfffffff7)" ( (binary_expression "local_4c & 0xfffffff7" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(bVar11)" ( identifier ))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (expression_statement "pcVar6 = (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.\n           super_Object.name_._M_dataplus._M_p;" (assignment_expression "pcVar6 = (this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.\n           super_Object.name_._M_dataplus._M_p" identifier = (parenthesized_expression "(this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.\n           super_Object.name_._M_dataplus._M_p" ( (comma_expression "this->super_Sized_relobj_file<64,_false>).super_Sized_relobj<64,_false>.super_Relobj.\n           super_Object.name_._M_dataplus._M_p" (binary_expression "this->super_Sized_relobj_file<64" (field_expression "this->super_Sized_relobj_file" identifier -> field_identifier) < number_literal) , (comma_expression "_false>).super_Sized_relobj<64,_false>.super_Relobj.\n           super_Object.name_._M_dataplus._M_p" (binary_expression "_false>).super_Sized_relobj<64" (field_expression "_false>).super_Sized_relobj" identifier (ERROR ">)" > )) . field_identifier) < number_literal) , (field_expression "_false>.super_Relobj.\n           super_Object.name_._M_dataplus._M_p" (field_expression "_false>.super_Relobj.\n           super_Object.name_._M_dataplus" (field_expression "_false>.super_Relobj.\n           super_Object.name_" (field_expression "_false>.super_Relobj.\n           super_Object" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier))) ))) ;) (expression_statement "pcVar14 = (char *)gettext("%s: .opd is not a regular array of opd entries");" (assignment_expression "pcVar14 = (char *)gettext("%s: .opd is not a regular array of opd entries")" identifier = (cast_expression "(char *)gettext("%s: .opd is not a regular array of opd entries")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("%s: .opd is not a regular array of opd entries")" identifier (argument_list "("%s: .opd is not a regular array of opd entries")" ( (string_literal ""%s: .opd is not a regular array of opd entries"" " string_content ") ))))) ;) (labeled_statement "gold::gold_warning(pcVar14,pcVar6);" statement_identifier : (ERROR ":" :) (expression_statement "gold_warning(pcVar14,pcVar6);" (call_expression "gold_warning(pcVar14,pcVar6)" identifier (argument_list "(pcVar14,pcVar6)" ( identifier , identifier ))) ;)) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void FUN_00100cf0(int param_1,int *param_2)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  uint uVar6;\n  uint uVar7;\n  bool bVar8;\n  uint uVar9;\n  int iVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  int iVar13;\n  uint uVar14;\n  uint *puVar15;\n  uint *puVar16;\n  bool bVar17;\n  undefined8 uVar18;\n  uint local_54;\n  uint local_50;\n  uint local_4c;\n  undefined1 local_25;\n  uint local_24;\n  int local_20;\n  uint uVar5;\n  \n  FUN_0031f3a0(param_1,param_2);\n  iVar1 = *param_2;\n  if (iVar1 == param_2[1]) {\n    return;\n  }\n  iVar10 = *(int *)(iVar1 + 4);\n  while (*(int *)(param_1 + 0x140) != iVar10) {\n    if (iVar1 + 0x1c == param_2[1]) {\n      return;\n    }\n    iVar10 = *(int *)(iVar1 + 0x20);\n    iVar1 = iVar1 + 0x1c;\n  }\n  uVar18 = FUN_00108170(param_1 + 0x90,*(int *)(param_1 + 0x140));\n  if ((int)((ulonglong)uVar18 >> 0x20) != 0) {\n                    \n    FUN_002446e0("../../gold/powerpc.cc",0x919,"do_read_relocs",param_2);\n  }\n  if ((uint)uVar18 == 0) {\n    return;\n  }\n  uVar9 = (uint)uVar18 >> 4;\n  uVar14 = *(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4;\n  if (uVar14 < uVar9) {\n    FUN_000b2870();\n  }\n  else if ((uVar9 < uVar14) &&\n          (iVar10 = uVar9 * 0x10 + *(int *)(param_1 + 0x168), *(int *)(param_1 + 0x16c) != iVar10))\n  {\n    *(int *)(param_1 + 0x16c) = iVar10;\n  }\n  bVar8 = true;\n  iVar10 = *(int *)(param_2[3] + 8);\n  puVar15 = *(uint **)(*(int *)(iVar1 + 8) + 8);\n  uVar9 = *(uint *)(iVar1 + 0x10);\n  if (uVar9 != 0) {\n    local_4c = 0;\n    uVar14 = 0;\n    local_54 = 0;\n    local_50 = 0;\n    do {\n      while( true ) {\n        uVar12 = puVar15[2];\n        uVar2 = puVar15[3];\n        if (uVar12 != 0x26) break;\n        if (uVar2 < *(uint *)(param_1 + 0xb0)) {\n          iVar1 = iVar10 + uVar2 * 0x18;\n          uVar12 = (uint)*(ushort *)(iVar1 + 6);\n          if (uVar12 < 0xff00) {\n            local_25 = 1;\n          }\n          else if (uVar12 == 0xffff) {\n            iVar13 = *(int *)(param_1 + 0x30);\n            if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }\n            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);\n            local_25 = 1;\n          }\n          else {\n            local_25 = 0;\n          }\n          local_24 = *(uint *)(iVar1 + 8);\n          local_20 = *(int *)(iVar1 + 0xc);\n        }\n        else {\n          uVar12 = FUN_002986d0(param_1,uVar2,&local_24,&local_25);\n        }\n        uVar2 = puVar15[1];\n        uVar4 = puVar15[4];\n        uVar5 = puVar15[4];\n        uVar6 = puVar15[5];\n        uVar7 = *puVar15;\n        if ((uint)(*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4) <= uVar7 >> 4) {\n                    \n          FUN_002446e0("../../gold/powerpc.cc",0xd0,"set_opd_ent",uVar7);\n        }\n        puVar16 = (uint *)(*(int *)(param_1 + 0x168) + (uVar7 >> 4) * 0x10);\n        *puVar16 = uVar12;\n        puVar16[3] = local_20 + uVar6 + (uint)CARRY4(local_24,uVar4);\n        puVar16[2] = local_24 + uVar5;\n        uVar12 = uVar7;\n        uVar5 = uVar2;\n        uVar4 = uVar7;\n        if ((uVar14 != 2) &&\n           (uVar12 = local_54, uVar5 = local_50, uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54)) {\n          bVar8 = false;\n        }\n        local_4c = uVar4;\n        local_50 = uVar5;\n        local_54 = uVar12;\n        bVar17 = CARRY4(local_54,local_4c);\n        local_54 = local_54 + local_4c;\n        local_50 = local_50 + bVar17;\nLAB_00100e3b:\n        uVar14 = uVar14 + 1;\n        puVar15 = puVar15 + 6;\n        bVar17 = bVar8;\n        if (uVar9 == uVar14) goto LAB_00100e9d;\n      }\n      if (uVar12 == 0x33) {\n        if (puVar15[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||\n            *puVar15 != (local_54 + 8) - local_4c) {\n          bVar8 = false;\n        }\n        goto LAB_00100e3b;\n      }\n      uVar14 = uVar14 + 1;\n      puVar15 = puVar15 + 6;\n      uVar3 = *(undefined4 *)(param_1 + 4);\n      uVar11 = gettext("%s: unexpected reloc type %u in .opd section");\n      FUN_0023b840(uVar11,uVar3,uVar12);\n      bVar8 = false;\n      bVar17 = false;\n    } while (uVar9 != uVar14);\nLAB_00100e9d:\n    bVar8 = bVar17;\n    if (2 < uVar9) goto LAB_00100ea8;\n  }\n  local_4c = FUN_00108170(param_1 + 0x90,*(undefined4 *)(param_1 + 0x140));\nLAB_00100ea8:\n  if (((local_4c & 0xfffffff7) == 0x10) && (bVar8)) {\n    return;\n  }\n  uVar3 = *(undefined4 *)(param_1 + 4);\n  uVar11 = gettext("%s: .opd is not a regular array of opd entries");\n  FUN_0023b840(uVar11,uVar3);\n  return;\n}\n\n" (function_definition "void FUN_00100cf0(int param_1,int *param_2)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  uint uVar6;\n  uint uVar7;\n  bool bVar8;\n  uint uVar9;\n  int iVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  int iVar13;\n  uint uVar14;\n  uint *puVar15;\n  uint *puVar16;\n  bool bVar17;\n  undefined8 uVar18;\n  uint local_54;\n  uint local_50;\n  uint local_4c;\n  undefined1 local_25;\n  uint local_24;\n  int local_20;\n  uint uVar5;\n  \n  FUN_0031f3a0(param_1,param_2);\n  iVar1 = *param_2;\n  if (iVar1 == param_2[1]) {\n    return;\n  }\n  iVar10 = *(int *)(iVar1 + 4);\n  while (*(int *)(param_1 + 0x140) != iVar10) {\n    if (iVar1 + 0x1c == param_2[1]) {\n      return;\n    }\n    iVar10 = *(int *)(iVar1 + 0x20);\n    iVar1 = iVar1 + 0x1c;\n  }\n  uVar18 = FUN_00108170(param_1 + 0x90,*(int *)(param_1 + 0x140));\n  if ((int)((ulonglong)uVar18 >> 0x20) != 0) {\n                    \n    FUN_002446e0("../../gold/powerpc.cc",0x919,"do_read_relocs",param_2);\n  }\n  if ((uint)uVar18 == 0) {\n    return;\n  }\n  uVar9 = (uint)uVar18 >> 4;\n  uVar14 = *(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4;\n  if (uVar14 < uVar9) {\n    FUN_000b2870();\n  }\n  else if ((uVar9 < uVar14) &&\n          (iVar10 = uVar9 * 0x10 + *(int *)(param_1 + 0x168), *(int *)(param_1 + 0x16c) != iVar10))\n  {\n    *(int *)(param_1 + 0x16c) = iVar10;\n  }\n  bVar8 = true;\n  iVar10 = *(int *)(param_2[3] + 8);\n  puVar15 = *(uint **)(*(int *)(iVar1 + 8) + 8);\n  uVar9 = *(uint *)(iVar1 + 0x10);\n  if (uVar9 != 0) {\n    local_4c = 0;\n    uVar14 = 0;\n    local_54 = 0;\n    local_50 = 0;\n    do {\n      while( true ) {\n        uVar12 = puVar15[2];\n        uVar2 = puVar15[3];\n        if (uVar12 != 0x26) break;\n        if (uVar2 < *(uint *)(param_1 + 0xb0)) {\n          iVar1 = iVar10 + uVar2 * 0x18;\n          uVar12 = (uint)*(ushort *)(iVar1 + 6);\n          if (uVar12 < 0xff00) {\n            local_25 = 1;\n          }\n          else if (uVar12 == 0xffff) {\n            iVar13 = *(int *)(param_1 + 0x30);\n            if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }\n            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);\n            local_25 = 1;\n          }\n          else {\n            local_25 = 0;\n          }\n          local_24 = *(uint *)(iVar1 + 8);\n          local_20 = *(int *)(iVar1 + 0xc);\n        }\n        else {\n          uVar12 = FUN_002986d0(param_1,uVar2,&local_24,&local_25);\n        }\n        uVar2 = puVar15[1];\n        uVar4 = puVar15[4];\n        uVar5 = puVar15[4];\n        uVar6 = puVar15[5];\n        uVar7 = *puVar15;\n        if ((uint)(*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4) <= uVar7 >> 4) {\n                    \n          FUN_002446e0("../../gold/powerpc.cc",0xd0,"set_opd_ent",uVar7);\n        }\n        puVar16 = (uint *)(*(int *)(param_1 + 0x168) + (uVar7 >> 4) * 0x10);\n        *puVar16 = uVar12;\n        puVar16[3] = local_20 + uVar6 + (uint)CARRY4(local_24,uVar4);\n        puVar16[2] = local_24 + uVar5;\n        uVar12 = uVar7;\n        uVar5 = uVar2;\n        uVar4 = uVar7;\n        if ((uVar14 != 2) &&\n           (uVar12 = local_54, uVar5 = local_50, uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54)) {\n          bVar8 = false;\n        }\n        local_4c = uVar4;\n        local_50 = uVar5;\n        local_54 = uVar12;\n        bVar17 = CARRY4(local_54,local_4c);\n        local_54 = local_54 + local_4c;\n        local_50 = local_50 + bVar17;\nLAB_00100e3b:\n        uVar14 = uVar14 + 1;\n        puVar15 = puVar15 + 6;\n        bVar17 = bVar8;\n        if (uVar9 == uVar14) goto LAB_00100e9d;\n      }\n      if (uVar12 == 0x33) {\n        if (puVar15[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||\n            *puVar15 != (local_54 + 8) - local_4c) {\n          bVar8 = false;\n        }\n        goto LAB_00100e3b;\n      }\n      uVar14 = uVar14 + 1;\n      puVar15 = puVar15 + 6;\n      uVar3 = *(undefined4 *)(param_1 + 4);\n      uVar11 = gettext("%s: unexpected reloc type %u in .opd section");\n      FUN_0023b840(uVar11,uVar3,uVar12);\n      bVar8 = false;\n      bVar17 = false;\n    } while (uVar9 != uVar14);\nLAB_00100e9d:\n    bVar8 = bVar17;\n    if (2 < uVar9) goto LAB_00100ea8;\n  }\n  local_4c = FUN_00108170(param_1 + 0x90,*(undefined4 *)(param_1 + 0x140));\nLAB_00100ea8:\n  if (((local_4c & 0xfffffff7) == 0x10) && (bVar8)) {\n    return;\n  }\n  uVar3 = *(undefined4 *)(param_1 + 4);\n  uVar11 = gettext("%s: .opd is not a regular array of opd entries");\n  FUN_0023b840(uVar11,uVar3);\n  return;\n}" primitive_type (function_declarator "FUN_00100cf0(int param_1,int *param_2)" identifier (parameter_list "(int param_1,int *param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  uint uVar6;\n  uint uVar7;\n  bool bVar8;\n  uint uVar9;\n  int iVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  int iVar13;\n  uint uVar14;\n  uint *puVar15;\n  uint *puVar16;\n  bool bVar17;\n  undefined8 uVar18;\n  uint local_54;\n  uint local_50;\n  uint local_4c;\n  undefined1 local_25;\n  uint local_24;\n  int local_20;\n  uint uVar5;\n  \n  FUN_0031f3a0(param_1,param_2);\n  iVar1 = *param_2;\n  if (iVar1 == param_2[1]) {\n    return;\n  }\n  iVar10 = *(int *)(iVar1 + 4);\n  while (*(int *)(param_1 + 0x140) != iVar10) {\n    if (iVar1 + 0x1c == param_2[1]) {\n      return;\n    }\n    iVar10 = *(int *)(iVar1 + 0x20);\n    iVar1 = iVar1 + 0x1c;\n  }\n  uVar18 = FUN_00108170(param_1 + 0x90,*(int *)(param_1 + 0x140));\n  if ((int)((ulonglong)uVar18 >> 0x20) != 0) {\n                    \n    FUN_002446e0("../../gold/powerpc.cc",0x919,"do_read_relocs",param_2);\n  }\n  if ((uint)uVar18 == 0) {\n    return;\n  }\n  uVar9 = (uint)uVar18 >> 4;\n  uVar14 = *(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4;\n  if (uVar14 < uVar9) {\n    FUN_000b2870();\n  }\n  else if ((uVar9 < uVar14) &&\n          (iVar10 = uVar9 * 0x10 + *(int *)(param_1 + 0x168), *(int *)(param_1 + 0x16c) != iVar10))\n  {\n    *(int *)(param_1 + 0x16c) = iVar10;\n  }\n  bVar8 = true;\n  iVar10 = *(int *)(param_2[3] + 8);\n  puVar15 = *(uint **)(*(int *)(iVar1 + 8) + 8);\n  uVar9 = *(uint *)(iVar1 + 0x10);\n  if (uVar9 != 0) {\n    local_4c = 0;\n    uVar14 = 0;\n    local_54 = 0;\n    local_50 = 0;\n    do {\n      while( true ) {\n        uVar12 = puVar15[2];\n        uVar2 = puVar15[3];\n        if (uVar12 != 0x26) break;\n        if (uVar2 < *(uint *)(param_1 + 0xb0)) {\n          iVar1 = iVar10 + uVar2 * 0x18;\n          uVar12 = (uint)*(ushort *)(iVar1 + 6);\n          if (uVar12 < 0xff00) {\n            local_25 = 1;\n          }\n          else if (uVar12 == 0xffff) {\n            iVar13 = *(int *)(param_1 + 0x30);\n            if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }\n            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);\n            local_25 = 1;\n          }\n          else {\n            local_25 = 0;\n          }\n          local_24 = *(uint *)(iVar1 + 8);\n          local_20 = *(int *)(iVar1 + 0xc);\n        }\n        else {\n          uVar12 = FUN_002986d0(param_1,uVar2,&local_24,&local_25);\n        }\n        uVar2 = puVar15[1];\n        uVar4 = puVar15[4];\n        uVar5 = puVar15[4];\n        uVar6 = puVar15[5];\n        uVar7 = *puVar15;\n        if ((uint)(*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4) <= uVar7 >> 4) {\n                    \n          FUN_002446e0("../../gold/powerpc.cc",0xd0,"set_opd_ent",uVar7);\n        }\n        puVar16 = (uint *)(*(int *)(param_1 + 0x168) + (uVar7 >> 4) * 0x10);\n        *puVar16 = uVar12;\n        puVar16[3] = local_20 + uVar6 + (uint)CARRY4(local_24,uVar4);\n        puVar16[2] = local_24 + uVar5;\n        uVar12 = uVar7;\n        uVar5 = uVar2;\n        uVar4 = uVar7;\n        if ((uVar14 != 2) &&\n           (uVar12 = local_54, uVar5 = local_50, uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54)) {\n          bVar8 = false;\n        }\n        local_4c = uVar4;\n        local_50 = uVar5;\n        local_54 = uVar12;\n        bVar17 = CARRY4(local_54,local_4c);\n        local_54 = local_54 + local_4c;\n        local_50 = local_50 + bVar17;\nLAB_00100e3b:\n        uVar14 = uVar14 + 1;\n        puVar15 = puVar15 + 6;\n        bVar17 = bVar8;\n        if (uVar9 == uVar14) goto LAB_00100e9d;\n      }\n      if (uVar12 == 0x33) {\n        if (puVar15[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||\n            *puVar15 != (local_54 + 8) - local_4c) {\n          bVar8 = false;\n        }\n        goto LAB_00100e3b;\n      }\n      uVar14 = uVar14 + 1;\n      puVar15 = puVar15 + 6;\n      uVar3 = *(undefined4 *)(param_1 + 4);\n      uVar11 = gettext("%s: unexpected reloc type %u in .opd section");\n      FUN_0023b840(uVar11,uVar3,uVar12);\n      bVar8 = false;\n      bVar17 = false;\n    } while (uVar9 != uVar14);\nLAB_00100e9d:\n    bVar8 = bVar17;\n    if (2 < uVar9) goto LAB_00100ea8;\n  }\n  local_4c = FUN_00108170(param_1 + 0x90,*(undefined4 *)(param_1 + 0x140));\nLAB_00100ea8:\n  if (((local_4c & 0xfffffff7) == 0x10) && (bVar8)) {\n    return;\n  }\n  uVar3 = *(undefined4 *)(param_1 + 4);\n  uVar11 = gettext("%s: .opd is not a regular array of opd entries");\n  FUN_0023b840(uVar11,uVar3);\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "bool bVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "uint *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "uint *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "bool bVar17;" primitive_type identifier ;) (declaration "undefined8 uVar18;" type_identifier identifier ;) (declaration "uint local_54;" type_identifier identifier ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "uint local_4c;" type_identifier identifier ;) (declaration "undefined1 local_25;" type_identifier identifier ;) (declaration "uint local_24;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (expression_statement "FUN_0031f3a0(param_1,param_2);" (call_expression "FUN_0031f3a0(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier ))) ;) (expression_statement "iVar1 = *param_2;" (assignment_expression "iVar1 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (iVar1 == param_2[1]) {\n    return;\n  }" if (parenthesized_expression "(iVar1 == param_2[1])" ( (binary_expression "iVar1 == param_2[1]" identifier == (subscript_expression "param_2[1]" identifier [ number_literal ])) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "iVar10 = *(int *)(iVar1 + 4);" (assignment_expression "iVar10 = *(int *)(iVar1 + 4)" identifier = (pointer_expression "*(int *)(iVar1 + 4)" * (cast_expression "(int *)(iVar1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 4)" ( (binary_expression "iVar1 + 4" identifier + number_literal) ))))) ;) (while_statement "while (*(int *)(param_1 + 0x140) != iVar10) {\n    if (iVar1 + 0x1c == param_2[1]) {\n      return;\n    }\n    iVar10 = *(int *)(iVar1 + 0x20);\n    iVar1 = iVar1 + 0x1c;\n  }" while (parenthesized_expression "(*(int *)(param_1 + 0x140) != iVar10)" ( (binary_expression "*(int *)(param_1 + 0x140) != iVar10" (pointer_expression "*(int *)(param_1 + 0x140)" * (cast_expression "(int *)(param_1 + 0x140)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n    if (iVar1 + 0x1c == param_2[1]) {\n      return;\n    }\n    iVar10 = *(int *)(iVar1 + 0x20);\n    iVar1 = iVar1 + 0x1c;\n  }" { (if_statement "if (iVar1 + 0x1c == param_2[1]) {\n      return;\n    }" if (parenthesized_expression "(iVar1 + 0x1c == param_2[1])" ( (binary_expression "iVar1 + 0x1c == param_2[1]" (binary_expression "iVar1 + 0x1c" identifier + number_literal) == (subscript_expression "param_2[1]" identifier [ number_literal ])) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "iVar10 = *(int *)(iVar1 + 0x20);" (assignment_expression "iVar10 = *(int *)(iVar1 + 0x20)" identifier = (pointer_expression "*(int *)(iVar1 + 0x20)" * (cast_expression "(int *)(iVar1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x20)" ( (binary_expression "iVar1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = iVar1 + 0x1c;" (assignment_expression "iVar1 = iVar1 + 0x1c" identifier = (binary_expression "iVar1 + 0x1c" identifier + number_literal)) ;) })) (expression_statement "uVar18 = FUN_00108170(param_1 + 0x90,*(int *)(param_1 + 0x140));" (assignment_expression "uVar18 = FUN_00108170(param_1 + 0x90,*(int *)(param_1 + 0x140))" identifier = (call_expression "FUN_00108170(param_1 + 0x90,*(int *)(param_1 + 0x140))" identifier (argument_list "(param_1 + 0x90,*(int *)(param_1 + 0x140))" ( (binary_expression "param_1 + 0x90" identifier + number_literal) , (pointer_expression "*(int *)(param_1 + 0x140)" * (cast_expression "(int *)(param_1 + 0x140)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) )))) ;) (if_statement "if ((int)((ulonglong)uVar18 >> 0x20) != 0) {\n                    \n    FUN_002446e0("../../gold/powerpc.cc",0x919,"do_read_relocs",param_2);\n  }" if (parenthesized_expression "((int)((ulonglong)uVar18 >> 0x20) != 0)" ( (binary_expression "(int)((ulonglong)uVar18 >> 0x20) != 0" (cast_expression "(int)((ulonglong)uVar18 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar18 >> 0x20)" ( (binary_expression "(ulonglong)uVar18 >> 0x20" (cast_expression "(ulonglong)uVar18" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) != number_literal) )) (compound_statement "{\n                    \n    FUN_002446e0("../../gold/powerpc.cc",0x919,"do_read_relocs",param_2);\n  }" { (expression_statement "FUN_002446e0("../../gold/powerpc.cc",0x919,"do_read_relocs",param_2);" (call_expression "FUN_002446e0("../../gold/powerpc.cc",0x919,"do_read_relocs",param_2)" identifier (argument_list "("../../gold/powerpc.cc",0x919,"do_read_relocs",param_2)" ( (string_literal ""../../gold/powerpc.cc"" " string_content ") , number_literal , (string_literal ""do_read_relocs"" " string_content ") , identifier ))) ;) })) (if_statement "if ((uint)uVar18 == 0) {\n    return;\n  }" if (parenthesized_expression "((uint)uVar18 == 0)" ( (binary_expression "(uint)uVar18 == 0" (cast_expression "(uint)uVar18" ( (type_descriptor "uint" type_identifier) ) identifier) == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "uVar9 = (uint)uVar18 >> 4;" (assignment_expression "uVar9 = (uint)uVar18 >> 4" identifier = (binary_expression "(uint)uVar18 >> 4" (cast_expression "(uint)uVar18" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal)) ;) (expression_statement "uVar14 = *(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4;" (assignment_expression "uVar14 = *(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4" identifier = (binary_expression "*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4" (binary_expression "*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168)" (pointer_expression "*(int *)(param_1 + 0x16c)" * (cast_expression "(int *)(param_1 + 0x16c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x16c)" ( (binary_expression "param_1 + 0x16c" identifier + number_literal) )))) - (pointer_expression "*(int *)(param_1 + 0x168)" * (cast_expression "(int *)(param_1 + 0x168)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x168)" ( (binary_expression "param_1 + 0x168" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (uVar14 < uVar9) {\n    FUN_000b2870();\n  }\n  else if ((uVar9 < uVar14) &&\n          (iVar10 = uVar9 * 0x10 + *(int *)(param_1 + 0x168), *(int *)(param_1 + 0x16c) != iVar10))\n  {\n    *(int *)(param_1 + 0x16c) = iVar10;\n  }" if (parenthesized_expression "(uVar14 < uVar9)" ( (binary_expression "uVar14 < uVar9" identifier < identifier) )) (compound_statement "{\n    FUN_000b2870();\n  }" { (expression_statement "FUN_000b2870();" (call_expression "FUN_000b2870()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else if ((uVar9 < uVar14) &&\n          (iVar10 = uVar9 * 0x10 + *(int *)(param_1 + 0x168), *(int *)(param_1 + 0x16c) != iVar10))\n  {\n    *(int *)(param_1 + 0x16c) = iVar10;\n  }" else (if_statement "if ((uVar9 < uVar14) &&\n          (iVar10 = uVar9 * 0x10 + *(int *)(param_1 + 0x168), *(int *)(param_1 + 0x16c) != iVar10))\n  {\n    *(int *)(param_1 + 0x16c) = iVar10;\n  }" if (parenthesized_expression "((uVar9 < uVar14) &&\n          (iVar10 = uVar9 * 0x10 + *(int *)(param_1 + 0x168), *(int *)(param_1 + 0x16c) != iVar10))" ( (binary_expression "(uVar9 < uVar14) &&\n          (iVar10 = uVar9 * 0x10 + *(int *)(param_1 + 0x168), *(int *)(param_1 + 0x16c) != iVar10)" (parenthesized_expression "(uVar9 < uVar14)" ( (binary_expression "uVar9 < uVar14" identifier < identifier) )) && (parenthesized_expression "(iVar10 = uVar9 * 0x10 + *(int *)(param_1 + 0x168), *(int *)(param_1 + 0x16c) != iVar10)" ( (comma_expression "iVar10 = uVar9 * 0x10 + *(int *)(param_1 + 0x168), *(int *)(param_1 + 0x16c) != iVar10" (assignment_expression "iVar10 = uVar9 * 0x10 + *(int *)(param_1 + 0x168)" identifier = (binary_expression "uVar9 * 0x10 + *(int *)(param_1 + 0x168)" (binary_expression "uVar9 * 0x10" identifier * number_literal) + (pointer_expression "*(int *)(param_1 + 0x168)" * (cast_expression "(int *)(param_1 + 0x168)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x168)" ( (binary_expression "param_1 + 0x168" identifier + number_literal) )))))) , (binary_expression "*(int *)(param_1 + 0x16c) != iVar10" (pointer_expression "*(int *)(param_1 + 0x16c)" * (cast_expression "(int *)(param_1 + 0x16c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x16c)" ( (binary_expression "param_1 + 0x16c" identifier + number_literal) )))) != identifier)) ))) )) (compound_statement "{\n    *(int *)(param_1 + 0x16c) = iVar10;\n  }" { (expression_statement "*(int *)(param_1 + 0x16c) = iVar10;" (assignment_expression "*(int *)(param_1 + 0x16c) = iVar10" (pointer_expression "*(int *)(param_1 + 0x16c)" * (cast_expression "(int *)(param_1 + 0x16c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x16c)" ( (binary_expression "param_1 + 0x16c" identifier + number_literal) )))) = identifier) ;) })))) (expression_statement "bVar8 = true;" (assignment_expression "bVar8 = true" identifier = true) ;) (expression_statement "iVar10 = *(int *)(param_2[3] + 8);" (assignment_expression "iVar10 = *(int *)(param_2[3] + 8)" identifier = (pointer_expression "*(int *)(param_2[3] + 8)" * (cast_expression "(int *)(param_2[3] + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[3] + 8)" ( (binary_expression "param_2[3] + 8" (subscript_expression "param_2[3]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "puVar15 = *(uint **)(*(int *)(iVar1 + 8) + 8);" (assignment_expression "puVar15 = *(uint **)(*(int *)(iVar1 + 8) + 8)" identifier = (pointer_expression "*(uint **)(*(int *)(iVar1 + 8) + 8)" * (cast_expression "(uint **)(*(int *)(iVar1 + 8) + 8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar1 + 8) + 8)" ( (binary_expression "*(int *)(iVar1 + 8) + 8" (pointer_expression "*(int *)(iVar1 + 8)" * (cast_expression "(int *)(iVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar9 = *(uint *)(iVar1 + 0x10);" (assignment_expression "uVar9 = *(uint *)(iVar1 + 0x10)" identifier = (pointer_expression "*(uint *)(iVar1 + 0x10)" * (cast_expression "(uint *)(iVar1 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x10)" ( (binary_expression "iVar1 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (uVar9 != 0) {\n    local_4c = 0;\n    uVar14 = 0;\n    local_54 = 0;\n    local_50 = 0;\n    do {\n      while( true ) {\n        uVar12 = puVar15[2];\n        uVar2 = puVar15[3];\n        if (uVar12 != 0x26) break;\n        if (uVar2 < *(uint *)(param_1 + 0xb0)) {\n          iVar1 = iVar10 + uVar2 * 0x18;\n          uVar12 = (uint)*(ushort *)(iVar1 + 6);\n          if (uVar12 < 0xff00) {\n            local_25 = 1;\n          }\n          else if (uVar12 == 0xffff) {\n            iVar13 = *(int *)(param_1 + 0x30);\n            if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }\n            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);\n            local_25 = 1;\n          }\n          else {\n            local_25 = 0;\n          }\n          local_24 = *(uint *)(iVar1 + 8);\n          local_20 = *(int *)(iVar1 + 0xc);\n        }\n        else {\n          uVar12 = FUN_002986d0(param_1,uVar2,&local_24,&local_25);\n        }\n        uVar2 = puVar15[1];\n        uVar4 = puVar15[4];\n        uVar5 = puVar15[4];\n        uVar6 = puVar15[5];\n        uVar7 = *puVar15;\n        if ((uint)(*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4) <= uVar7 >> 4) {\n                    \n          FUN_002446e0("../../gold/powerpc.cc",0xd0,"set_opd_ent",uVar7);\n        }\n        puVar16 = (uint *)(*(int *)(param_1 + 0x168) + (uVar7 >> 4) * 0x10);\n        *puVar16 = uVar12;\n        puVar16[3] = local_20 + uVar6 + (uint)CARRY4(local_24,uVar4);\n        puVar16[2] = local_24 + uVar5;\n        uVar12 = uVar7;\n        uVar5 = uVar2;\n        uVar4 = uVar7;\n        if ((uVar14 != 2) &&\n           (uVar12 = local_54, uVar5 = local_50, uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54)) {\n          bVar8 = false;\n        }\n        local_4c = uVar4;\n        local_50 = uVar5;\n        local_54 = uVar12;\n        bVar17 = CARRY4(local_54,local_4c);\n        local_54 = local_54 + local_4c;\n        local_50 = local_50 + bVar17;\nLAB_00100e3b:\n        uVar14 = uVar14 + 1;\n        puVar15 = puVar15 + 6;\n        bVar17 = bVar8;\n        if (uVar9 == uVar14) goto LAB_00100e9d;\n      }\n      if (uVar12 == 0x33) {\n        if (puVar15[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||\n            *puVar15 != (local_54 + 8) - local_4c) {\n          bVar8 = false;\n        }\n        goto LAB_00100e3b;\n      }\n      uVar14 = uVar14 + 1;\n      puVar15 = puVar15 + 6;\n      uVar3 = *(undefined4 *)(param_1 + 4);\n      uVar11 = gettext("%s: unexpected reloc type %u in .opd section");\n      FUN_0023b840(uVar11,uVar3,uVar12);\n      bVar8 = false;\n      bVar17 = false;\n    } while (uVar9 != uVar14);\nLAB_00100e9d:\n    bVar8 = bVar17;\n    if (2 < uVar9) goto LAB_00100ea8;\n  }" if (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) (compound_statement "{\n    local_4c = 0;\n    uVar14 = 0;\n    local_54 = 0;\n    local_50 = 0;\n    do {\n      while( true ) {\n        uVar12 = puVar15[2];\n        uVar2 = puVar15[3];\n        if (uVar12 != 0x26) break;\n        if (uVar2 < *(uint *)(param_1 + 0xb0)) {\n          iVar1 = iVar10 + uVar2 * 0x18;\n          uVar12 = (uint)*(ushort *)(iVar1 + 6);\n          if (uVar12 < 0xff00) {\n            local_25 = 1;\n          }\n          else if (uVar12 == 0xffff) {\n            iVar13 = *(int *)(param_1 + 0x30);\n            if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }\n            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);\n            local_25 = 1;\n          }\n          else {\n            local_25 = 0;\n          }\n          local_24 = *(uint *)(iVar1 + 8);\n          local_20 = *(int *)(iVar1 + 0xc);\n        }\n        else {\n          uVar12 = FUN_002986d0(param_1,uVar2,&local_24,&local_25);\n        }\n        uVar2 = puVar15[1];\n        uVar4 = puVar15[4];\n        uVar5 = puVar15[4];\n        uVar6 = puVar15[5];\n        uVar7 = *puVar15;\n        if ((uint)(*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4) <= uVar7 >> 4) {\n                    \n          FUN_002446e0("../../gold/powerpc.cc",0xd0,"set_opd_ent",uVar7);\n        }\n        puVar16 = (uint *)(*(int *)(param_1 + 0x168) + (uVar7 >> 4) * 0x10);\n        *puVar16 = uVar12;\n        puVar16[3] = local_20 + uVar6 + (uint)CARRY4(local_24,uVar4);\n        puVar16[2] = local_24 + uVar5;\n        uVar12 = uVar7;\n        uVar5 = uVar2;\n        uVar4 = uVar7;\n        if ((uVar14 != 2) &&\n           (uVar12 = local_54, uVar5 = local_50, uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54)) {\n          bVar8 = false;\n        }\n        local_4c = uVar4;\n        local_50 = uVar5;\n        local_54 = uVar12;\n        bVar17 = CARRY4(local_54,local_4c);\n        local_54 = local_54 + local_4c;\n        local_50 = local_50 + bVar17;\nLAB_00100e3b:\n        uVar14 = uVar14 + 1;\n        puVar15 = puVar15 + 6;\n        bVar17 = bVar8;\n        if (uVar9 == uVar14) goto LAB_00100e9d;\n      }\n      if (uVar12 == 0x33) {\n        if (puVar15[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||\n            *puVar15 != (local_54 + 8) - local_4c) {\n          bVar8 = false;\n        }\n        goto LAB_00100e3b;\n      }\n      uVar14 = uVar14 + 1;\n      puVar15 = puVar15 + 6;\n      uVar3 = *(undefined4 *)(param_1 + 4);\n      uVar11 = gettext("%s: unexpected reloc type %u in .opd section");\n      FUN_0023b840(uVar11,uVar3,uVar12);\n      bVar8 = false;\n      bVar17 = false;\n    } while (uVar9 != uVar14);\nLAB_00100e9d:\n    bVar8 = bVar17;\n    if (2 < uVar9) goto LAB_00100ea8;\n  }" { (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (do_statement "do {\n      while( true ) {\n        uVar12 = puVar15[2];\n        uVar2 = puVar15[3];\n        if (uVar12 != 0x26) break;\n        if (uVar2 < *(uint *)(param_1 + 0xb0)) {\n          iVar1 = iVar10 + uVar2 * 0x18;\n          uVar12 = (uint)*(ushort *)(iVar1 + 6);\n          if (uVar12 < 0xff00) {\n            local_25 = 1;\n          }\n          else if (uVar12 == 0xffff) {\n            iVar13 = *(int *)(param_1 + 0x30);\n            if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }\n            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);\n            local_25 = 1;\n          }\n          else {\n            local_25 = 0;\n          }\n          local_24 = *(uint *)(iVar1 + 8);\n          local_20 = *(int *)(iVar1 + 0xc);\n        }\n        else {\n          uVar12 = FUN_002986d0(param_1,uVar2,&local_24,&local_25);\n        }\n        uVar2 = puVar15[1];\n        uVar4 = puVar15[4];\n        uVar5 = puVar15[4];\n        uVar6 = puVar15[5];\n        uVar7 = *puVar15;\n        if ((uint)(*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4) <= uVar7 >> 4) {\n                    \n          FUN_002446e0("../../gold/powerpc.cc",0xd0,"set_opd_ent",uVar7);\n        }\n        puVar16 = (uint *)(*(int *)(param_1 + 0x168) + (uVar7 >> 4) * 0x10);\n        *puVar16 = uVar12;\n        puVar16[3] = local_20 + uVar6 + (uint)CARRY4(local_24,uVar4);\n        puVar16[2] = local_24 + uVar5;\n        uVar12 = uVar7;\n        uVar5 = uVar2;\n        uVar4 = uVar7;\n        if ((uVar14 != 2) &&\n           (uVar12 = local_54, uVar5 = local_50, uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54)) {\n          bVar8 = false;\n        }\n        local_4c = uVar4;\n        local_50 = uVar5;\n        local_54 = uVar12;\n        bVar17 = CARRY4(local_54,local_4c);\n        local_54 = local_54 + local_4c;\n        local_50 = local_50 + bVar17;\nLAB_00100e3b:\n        uVar14 = uVar14 + 1;\n        puVar15 = puVar15 + 6;\n        bVar17 = bVar8;\n        if (uVar9 == uVar14) goto LAB_00100e9d;\n      }\n      if (uVar12 == 0x33) {\n        if (puVar15[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||\n            *puVar15 != (local_54 + 8) - local_4c) {\n          bVar8 = false;\n        }\n        goto LAB_00100e3b;\n      }\n      uVar14 = uVar14 + 1;\n      puVar15 = puVar15 + 6;\n      uVar3 = *(undefined4 *)(param_1 + 4);\n      uVar11 = gettext("%s: unexpected reloc type %u in .opd section");\n      FUN_0023b840(uVar11,uVar3,uVar12);\n      bVar8 = false;\n      bVar17 = false;\n    } while (uVar9 != uVar14);" do (compound_statement "{\n      while( true ) {\n        uVar12 = puVar15[2];\n        uVar2 = puVar15[3];\n        if (uVar12 != 0x26) break;\n        if (uVar2 < *(uint *)(param_1 + 0xb0)) {\n          iVar1 = iVar10 + uVar2 * 0x18;\n          uVar12 = (uint)*(ushort *)(iVar1 + 6);\n          if (uVar12 < 0xff00) {\n            local_25 = 1;\n          }\n          else if (uVar12 == 0xffff) {\n            iVar13 = *(int *)(param_1 + 0x30);\n            if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }\n            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);\n            local_25 = 1;\n          }\n          else {\n            local_25 = 0;\n          }\n          local_24 = *(uint *)(iVar1 + 8);\n          local_20 = *(int *)(iVar1 + 0xc);\n        }\n        else {\n          uVar12 = FUN_002986d0(param_1,uVar2,&local_24,&local_25);\n        }\n        uVar2 = puVar15[1];\n        uVar4 = puVar15[4];\n        uVar5 = puVar15[4];\n        uVar6 = puVar15[5];\n        uVar7 = *puVar15;\n        if ((uint)(*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4) <= uVar7 >> 4) {\n                    \n          FUN_002446e0("../../gold/powerpc.cc",0xd0,"set_opd_ent",uVar7);\n        }\n        puVar16 = (uint *)(*(int *)(param_1 + 0x168) + (uVar7 >> 4) * 0x10);\n        *puVar16 = uVar12;\n        puVar16[3] = local_20 + uVar6 + (uint)CARRY4(local_24,uVar4);\n        puVar16[2] = local_24 + uVar5;\n        uVar12 = uVar7;\n        uVar5 = uVar2;\n        uVar4 = uVar7;\n        if ((uVar14 != 2) &&\n           (uVar12 = local_54, uVar5 = local_50, uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54)) {\n          bVar8 = false;\n        }\n        local_4c = uVar4;\n        local_50 = uVar5;\n        local_54 = uVar12;\n        bVar17 = CARRY4(local_54,local_4c);\n        local_54 = local_54 + local_4c;\n        local_50 = local_50 + bVar17;\nLAB_00100e3b:\n        uVar14 = uVar14 + 1;\n        puVar15 = puVar15 + 6;\n        bVar17 = bVar8;\n        if (uVar9 == uVar14) goto LAB_00100e9d;\n      }\n      if (uVar12 == 0x33) {\n        if (puVar15[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||\n            *puVar15 != (local_54 + 8) - local_4c) {\n          bVar8 = false;\n        }\n        goto LAB_00100e3b;\n      }\n      uVar14 = uVar14 + 1;\n      puVar15 = puVar15 + 6;\n      uVar3 = *(undefined4 *)(param_1 + 4);\n      uVar11 = gettext("%s: unexpected reloc type %u in .opd section");\n      FUN_0023b840(uVar11,uVar3,uVar12);\n      bVar8 = false;\n      bVar17 = false;\n    }" { (while_statement "while( true ) {\n        uVar12 = puVar15[2];\n        uVar2 = puVar15[3];\n        if (uVar12 != 0x26) break;\n        if (uVar2 < *(uint *)(param_1 + 0xb0)) {\n          iVar1 = iVar10 + uVar2 * 0x18;\n          uVar12 = (uint)*(ushort *)(iVar1 + 6);\n          if (uVar12 < 0xff00) {\n            local_25 = 1;\n          }\n          else if (uVar12 == 0xffff) {\n            iVar13 = *(int *)(param_1 + 0x30);\n            if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }\n            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);\n            local_25 = 1;\n          }\n          else {\n            local_25 = 0;\n          }\n          local_24 = *(uint *)(iVar1 + 8);\n          local_20 = *(int *)(iVar1 + 0xc);\n        }\n        else {\n          uVar12 = FUN_002986d0(param_1,uVar2,&local_24,&local_25);\n        }\n        uVar2 = puVar15[1];\n        uVar4 = puVar15[4];\n        uVar5 = puVar15[4];\n        uVar6 = puVar15[5];\n        uVar7 = *puVar15;\n        if ((uint)(*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4) <= uVar7 >> 4) {\n                    \n          FUN_002446e0("../../gold/powerpc.cc",0xd0,"set_opd_ent",uVar7);\n        }\n        puVar16 = (uint *)(*(int *)(param_1 + 0x168) + (uVar7 >> 4) * 0x10);\n        *puVar16 = uVar12;\n        puVar16[3] = local_20 + uVar6 + (uint)CARRY4(local_24,uVar4);\n        puVar16[2] = local_24 + uVar5;\n        uVar12 = uVar7;\n        uVar5 = uVar2;\n        uVar4 = uVar7;\n        if ((uVar14 != 2) &&\n           (uVar12 = local_54, uVar5 = local_50, uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54)) {\n          bVar8 = false;\n        }\n        local_4c = uVar4;\n        local_50 = uVar5;\n        local_54 = uVar12;\n        bVar17 = CARRY4(local_54,local_4c);\n        local_54 = local_54 + local_4c;\n        local_50 = local_50 + bVar17;\nLAB_00100e3b:\n        uVar14 = uVar14 + 1;\n        puVar15 = puVar15 + 6;\n        bVar17 = bVar8;\n        if (uVar9 == uVar14) goto LAB_00100e9d;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        uVar12 = puVar15[2];\n        uVar2 = puVar15[3];\n        if (uVar12 != 0x26) break;\n        if (uVar2 < *(uint *)(param_1 + 0xb0)) {\n          iVar1 = iVar10 + uVar2 * 0x18;\n          uVar12 = (uint)*(ushort *)(iVar1 + 6);\n          if (uVar12 < 0xff00) {\n            local_25 = 1;\n          }\n          else if (uVar12 == 0xffff) {\n            iVar13 = *(int *)(param_1 + 0x30);\n            if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }\n            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);\n            local_25 = 1;\n          }\n          else {\n            local_25 = 0;\n          }\n          local_24 = *(uint *)(iVar1 + 8);\n          local_20 = *(int *)(iVar1 + 0xc);\n        }\n        else {\n          uVar12 = FUN_002986d0(param_1,uVar2,&local_24,&local_25);\n        }\n        uVar2 = puVar15[1];\n        uVar4 = puVar15[4];\n        uVar5 = puVar15[4];\n        uVar6 = puVar15[5];\n        uVar7 = *puVar15;\n        if ((uint)(*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4) <= uVar7 >> 4) {\n                    \n          FUN_002446e0("../../gold/powerpc.cc",0xd0,"set_opd_ent",uVar7);\n        }\n        puVar16 = (uint *)(*(int *)(param_1 + 0x168) + (uVar7 >> 4) * 0x10);\n        *puVar16 = uVar12;\n        puVar16[3] = local_20 + uVar6 + (uint)CARRY4(local_24,uVar4);\n        puVar16[2] = local_24 + uVar5;\n        uVar12 = uVar7;\n        uVar5 = uVar2;\n        uVar4 = uVar7;\n        if ((uVar14 != 2) &&\n           (uVar12 = local_54, uVar5 = local_50, uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54)) {\n          bVar8 = false;\n        }\n        local_4c = uVar4;\n        local_50 = uVar5;\n        local_54 = uVar12;\n        bVar17 = CARRY4(local_54,local_4c);\n        local_54 = local_54 + local_4c;\n        local_50 = local_50 + bVar17;\nLAB_00100e3b:\n        uVar14 = uVar14 + 1;\n        puVar15 = puVar15 + 6;\n        bVar17 = bVar8;\n        if (uVar9 == uVar14) goto LAB_00100e9d;\n      }" { (expression_statement "uVar12 = puVar15[2];" (assignment_expression "uVar12 = puVar15[2]" identifier = (subscript_expression "puVar15[2]" identifier [ number_literal ])) ;) (expression_statement "uVar2 = puVar15[3];" (assignment_expression "uVar2 = puVar15[3]" identifier = (subscript_expression "puVar15[3]" identifier [ number_literal ])) ;) (if_statement "if (uVar12 != 0x26) break;" if (parenthesized_expression "(uVar12 != 0x26)" ( (binary_expression "uVar12 != 0x26" identifier != number_literal) )) (break_statement "break;" break ;)) (if_statement "if (uVar2 < *(uint *)(param_1 + 0xb0)) {\n          iVar1 = iVar10 + uVar2 * 0x18;\n          uVar12 = (uint)*(ushort *)(iVar1 + 6);\n          if (uVar12 < 0xff00) {\n            local_25 = 1;\n          }\n          else if (uVar12 == 0xffff) {\n            iVar13 = *(int *)(param_1 + 0x30);\n            if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }\n            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);\n            local_25 = 1;\n          }\n          else {\n            local_25 = 0;\n          }\n          local_24 = *(uint *)(iVar1 + 8);\n          local_20 = *(int *)(iVar1 + 0xc);\n        }\n        else {\n          uVar12 = FUN_002986d0(param_1,uVar2,&local_24,&local_25);\n        }" if (parenthesized_expression "(uVar2 < *(uint *)(param_1 + 0xb0))" ( (binary_expression "uVar2 < *(uint *)(param_1 + 0xb0)" identifier < (pointer_expression "*(uint *)(param_1 + 0xb0)" * (cast_expression "(uint *)(param_1 + 0xb0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb0)" ( (binary_expression "param_1 + 0xb0" identifier + number_literal) ))))) )) (compound_statement "{\n          iVar1 = iVar10 + uVar2 * 0x18;\n          uVar12 = (uint)*(ushort *)(iVar1 + 6);\n          if (uVar12 < 0xff00) {\n            local_25 = 1;\n          }\n          else if (uVar12 == 0xffff) {\n            iVar13 = *(int *)(param_1 + 0x30);\n            if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }\n            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);\n            local_25 = 1;\n          }\n          else {\n            local_25 = 0;\n          }\n          local_24 = *(uint *)(iVar1 + 8);\n          local_20 = *(int *)(iVar1 + 0xc);\n        }" { (expression_statement "iVar1 = iVar10 + uVar2 * 0x18;" (assignment_expression "iVar1 = iVar10 + uVar2 * 0x18" identifier = (binary_expression "iVar10 + uVar2 * 0x18" identifier + (binary_expression "uVar2 * 0x18" identifier * number_literal))) ;) (expression_statement "uVar12 = (uint)*(ushort *)(iVar1 + 6);" (assignment_expression "uVar12 = (uint)*(ushort *)(iVar1 + 6)" identifier = (binary_expression "(uint)*(ushort *)(iVar1 + 6)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(iVar1 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 6)" ( (binary_expression "iVar1 + 6" identifier + number_literal) ))))) ;) (if_statement "if (uVar12 < 0xff00) {\n            local_25 = 1;\n          }\n          else if (uVar12 == 0xffff) {\n            iVar13 = *(int *)(param_1 + 0x30);\n            if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }\n            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);\n            local_25 = 1;\n          }\n          else {\n            local_25 = 0;\n          }" if (parenthesized_expression "(uVar12 < 0xff00)" ( (binary_expression "uVar12 < 0xff00" identifier < number_literal) )) (compound_statement "{\n            local_25 = 1;\n          }" { (expression_statement "local_25 = 1;" (assignment_expression "local_25 = 1" identifier = number_literal) ;) }) (else_clause "else if (uVar12 == 0xffff) {\n            iVar13 = *(int *)(param_1 + 0x30);\n            if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }\n            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);\n            local_25 = 1;\n          }\n          else {\n            local_25 = 0;\n          }" else (if_statement "if (uVar12 == 0xffff) {\n            iVar13 = *(int *)(param_1 + 0x30);\n            if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }\n            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);\n            local_25 = 1;\n          }\n          else {\n            local_25 = 0;\n          }" if (parenthesized_expression "(uVar12 == 0xffff)" ( (binary_expression "uVar12 == 0xffff" identifier == number_literal) )) (compound_statement "{\n            iVar13 = *(int *)(param_1 + 0x30);\n            if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }\n            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);\n            local_25 = 1;\n          }" { (expression_statement "iVar13 = *(int *)(param_1 + 0x30);" (assignment_expression "iVar13 = *(int *)(param_1 + 0x30)" identifier = (pointer_expression "*(int *)(param_1 + 0x30)" * (cast_expression "(int *)(param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }" { (expression_statement "iVar13 = FUN_0029c0e0(param_1);" (assignment_expression "iVar13 = FUN_0029c0e0(param_1)" identifier = (call_expression "FUN_0029c0e0(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "*(int *)(param_1 + 0x30) = iVar13;" (assignment_expression "*(int *)(param_1 + 0x30) = iVar13" (pointer_expression "*(int *)(param_1 + 0x30)" * (cast_expression "(int *)(param_1 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);" (assignment_expression "uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2)" identifier = (call_expression "FUN_0028b7d0(iVar13,param_1,uVar2)" identifier (argument_list "(iVar13,param_1,uVar2)" ( identifier , identifier , identifier )))) ;) (expression_statement "local_25 = 1;" (assignment_expression "local_25 = 1" identifier = number_literal) ;) }) (else_clause "else {\n            local_25 = 0;\n          }" else (compound_statement "{\n            local_25 = 0;\n          }" { (expression_statement "local_25 = 0;" (assignment_expression "local_25 = 0" identifier = number_literal) ;) }))))) (expression_statement "local_24 = *(uint *)(iVar1 + 8);" (assignment_expression "local_24 = *(uint *)(iVar1 + 8)" identifier = (pointer_expression "*(uint *)(iVar1 + 8)" * (cast_expression "(uint *)(iVar1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_20 = *(int *)(iVar1 + 0xc);" (assignment_expression "local_20 = *(int *)(iVar1 + 0xc)" identifier = (pointer_expression "*(int *)(iVar1 + 0xc)" * (cast_expression "(int *)(iVar1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xc)" ( (binary_expression "iVar1 + 0xc" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          uVar12 = FUN_002986d0(param_1,uVar2,&local_24,&local_25);\n        }" else (compound_statement "{\n          uVar12 = FUN_002986d0(param_1,uVar2,&local_24,&local_25);\n        }" { (expression_statement "uVar12 = FUN_002986d0(param_1,uVar2,&local_24,&local_25);" (assignment_expression "uVar12 = FUN_002986d0(param_1,uVar2,&local_24,&local_25)" identifier = (call_expression "FUN_002986d0(param_1,uVar2,&local_24,&local_25)" identifier (argument_list "(param_1,uVar2,&local_24,&local_25)" ( identifier , identifier , (pointer_expression "&local_24" & identifier) , (pointer_expression "&local_25" & identifier) )))) ;) }))) (expression_statement "uVar2 = puVar15[1];" (assignment_expression "uVar2 = puVar15[1]" identifier = (subscript_expression "puVar15[1]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = puVar15[4];" (assignment_expression "uVar4 = puVar15[4]" identifier = (subscript_expression "puVar15[4]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = puVar15[4];" (assignment_expression "uVar5 = puVar15[4]" identifier = (subscript_expression "puVar15[4]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = puVar15[5];" (assignment_expression "uVar6 = puVar15[5]" identifier = (subscript_expression "puVar15[5]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = *puVar15;" (assignment_expression "uVar7 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;) (if_statement "if ((uint)(*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4) <= uVar7 >> 4) {\n                    \n          FUN_002446e0("../../gold/powerpc.cc",0xd0,"set_opd_ent",uVar7);\n        }" if (parenthesized_expression "((uint)(*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4) <= uVar7 >> 4)" ( (binary_expression "(uint)(*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4) <= uVar7 >> 4" (call_expression "(uint)(*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4)" ( (binary_expression "*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4" (binary_expression "*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168)" (pointer_expression "*(int *)(param_1 + 0x16c)" * (cast_expression "(int *)(param_1 + 0x16c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x16c)" ( (binary_expression "param_1 + 0x16c" identifier + number_literal) )))) - (pointer_expression "*(int *)(param_1 + 0x168)" * (cast_expression "(int *)(param_1 + 0x168)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x168)" ( (binary_expression "param_1 + 0x168" identifier + number_literal) ))))) >> number_literal) ))) <= (binary_expression "uVar7 >> 4" identifier >> number_literal)) )) (compound_statement "{\n                    \n          FUN_002446e0("../../gold/powerpc.cc",0xd0,"set_opd_ent",uVar7);\n        }" { (expression_statement "FUN_002446e0("../../gold/powerpc.cc",0xd0,"set_opd_ent",uVar7);" (call_expression "FUN_002446e0("../../gold/powerpc.cc",0xd0,"set_opd_ent",uVar7)" identifier (argument_list "("../../gold/powerpc.cc",0xd0,"set_opd_ent",uVar7)" ( (string_literal ""../../gold/powerpc.cc"" " string_content ") , number_literal , (string_literal ""set_opd_ent"" " string_content ") , identifier ))) ;) })) (expression_statement "puVar16 = (uint *)(*(int *)(param_1 + 0x168) + (uVar7 >> 4) * 0x10);" (assignment_expression "puVar16 = (uint *)(*(int *)(param_1 + 0x168) + (uVar7 >> 4) * 0x10)" identifier = (cast_expression "(uint *)(*(int *)(param_1 + 0x168) + (uVar7 >> 4) * 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x168) + (uVar7 >> 4) * 0x10)" ( (binary_expression "*(int *)(param_1 + 0x168) + (uVar7 >> 4) * 0x10" (pointer_expression "*(int *)(param_1 + 0x168)" * (cast_expression "(int *)(param_1 + 0x168)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x168)" ( (binary_expression "param_1 + 0x168" identifier + number_literal) )))) + (binary_expression "(uVar7 >> 4) * 0x10" (parenthesized_expression "(uVar7 >> 4)" ( (binary_expression "uVar7 >> 4" identifier >> number_literal) )) * number_literal)) )))) ;) (expression_statement "*puVar16 = uVar12;" (assignment_expression "*puVar16 = uVar12" (pointer_expression "*puVar16" * identifier) = identifier) ;) (expression_statement "puVar16[3] = local_20 + uVar6 + (uint)CARRY4(local_24,uVar4);" (assignment_expression "puVar16[3] = local_20 + uVar6 + (uint)CARRY4(local_24,uVar4)" (subscript_expression "puVar16[3]" identifier [ number_literal ]) = (binary_expression "local_20 + uVar6 + (uint)CARRY4(local_24,uVar4)" (binary_expression "local_20 + uVar6" identifier + identifier) + (cast_expression "(uint)CARRY4(local_24,uVar4)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(local_24,uVar4)" identifier (argument_list "(local_24,uVar4)" ( identifier , identifier )))))) ;) (expression_statement "puVar16[2] = local_24 + uVar5;" (assignment_expression "puVar16[2] = local_24 + uVar5" (subscript_expression "puVar16[2]" identifier [ number_literal ]) = (binary_expression "local_24 + uVar5" identifier + identifier)) ;) (expression_statement "uVar12 = uVar7;" (assignment_expression "uVar12 = uVar7" identifier = identifier) ;) (expression_statement "uVar5 = uVar2;" (assignment_expression "uVar5 = uVar2" identifier = identifier) ;) (expression_statement "uVar4 = uVar7;" (assignment_expression "uVar4 = uVar7" identifier = identifier) ;) (if_statement "if ((uVar14 != 2) &&\n           (uVar12 = local_54, uVar5 = local_50, uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54)) {\n          bVar8 = false;\n        }" if (parenthesized_expression "((uVar14 != 2) &&\n           (uVar12 = local_54, uVar5 = local_50, uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54))" ( (binary_expression "(uVar14 != 2) &&\n           (uVar12 = local_54, uVar5 = local_50, uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54)" (parenthesized_expression "(uVar14 != 2)" ( (binary_expression "uVar14 != 2" identifier != number_literal) )) && (parenthesized_expression "(uVar12 = local_54, uVar5 = local_50, uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54)" ( (comma_expression "uVar12 = local_54, uVar5 = local_50, uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54" (assignment_expression "uVar12 = local_54" identifier = identifier) , (comma_expression "uVar5 = local_50, uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54" (assignment_expression "uVar5 = local_50" identifier = identifier) , (comma_expression "uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54" (assignment_expression "uVar4 = local_4c" identifier = identifier) , (binary_expression "uVar2 != local_50 || uVar7 != local_54" (binary_expression "uVar2 != local_50" identifier != identifier) || (binary_expression "uVar7 != local_54" identifier != identifier))))) ))) )) (compound_statement "{\n          bVar8 = false;\n        }" { (expression_statement "bVar8 = false;" (assignment_expression "bVar8 = false" identifier = false) ;) })) (expression_statement "local_4c = uVar4;" (assignment_expression "local_4c = uVar4" identifier = identifier) ;) (expression_statement "local_50 = uVar5;" (assignment_expression "local_50 = uVar5" identifier = identifier) ;) (expression_statement "local_54 = uVar12;" (assignment_expression "local_54 = uVar12" identifier = identifier) ;) (expression_statement "bVar17 = CARRY4(local_54,local_4c);" (assignment_expression "bVar17 = CARRY4(local_54,local_4c)" identifier = (call_expression "CARRY4(local_54,local_4c)" identifier (argument_list "(local_54,local_4c)" ( identifier , identifier )))) ;) (expression_statement "local_54 = local_54 + local_4c;" (assignment_expression "local_54 = local_54 + local_4c" identifier = (binary_expression "local_54 + local_4c" identifier + identifier)) ;) (expression_statement "local_50 = local_50 + bVar17;" (assignment_expression "local_50 = local_50 + bVar17" identifier = (binary_expression "local_50 + bVar17" identifier + identifier)) ;) (labeled_statement "LAB_00100e3b:\n        uVar14 = uVar14 + 1;" statement_identifier : (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;)) (expression_statement "puVar15 = puVar15 + 6;" (assignment_expression "puVar15 = puVar15 + 6" identifier = (binary_expression "puVar15 + 6" identifier + number_literal)) ;) (expression_statement "bVar17 = bVar8;" (assignment_expression "bVar17 = bVar8" identifier = identifier) ;) (if_statement "if (uVar9 == uVar14) goto LAB_00100e9d;" if (parenthesized_expression "(uVar9 == uVar14)" ( (binary_expression "uVar9 == uVar14" identifier == identifier) )) (goto_statement "goto LAB_00100e9d;" goto statement_identifier ;)) })) (if_statement "if (uVar12 == 0x33) {\n        if (puVar15[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||\n            *puVar15 != (local_54 + 8) - local_4c) {\n          bVar8 = false;\n        }\n        goto LAB_00100e3b;\n      }" if (parenthesized_expression "(uVar12 == 0x33)" ( (binary_expression "uVar12 == 0x33" identifier == number_literal) )) (compound_statement "{\n        if (puVar15[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||\n            *puVar15 != (local_54 + 8) - local_4c) {\n          bVar8 = false;\n        }\n        goto LAB_00100e3b;\n      }" { (if_statement "if (puVar15[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||\n            *puVar15 != (local_54 + 8) - local_4c) {\n          bVar8 = false;\n        }" if (parenthesized_expression "(puVar15[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||\n            *puVar15 != (local_54 + 8) - local_4c)" ( (binary_expression "puVar15[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||\n            *puVar15 != (local_54 + 8) - local_4c" (binary_expression "puVar15[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c)" (subscript_expression "puVar15[1]" identifier [ number_literal ]) != (binary_expression "(local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c)" (parenthesized_expression "(local_50 + (0xfffffff7 < local_54))" ( (binary_expression "local_50 + (0xfffffff7 < local_54)" identifier + (parenthesized_expression "(0xfffffff7 < local_54)" ( (binary_expression "0xfffffff7 < local_54" number_literal < identifier) ))) )) - (call_expression "(uint)(local_54 + 8 < local_4c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_54 + 8 < local_4c)" ( (binary_expression "local_54 + 8 < local_4c" (binary_expression "local_54 + 8" identifier + number_literal) < identifier) ))))) || (binary_expression "*puVar15 != (local_54 + 8) - local_4c" (pointer_expression "*puVar15" * identifier) != (binary_expression "(local_54 + 8) - local_4c" (parenthesized_expression "(local_54 + 8)" ( (binary_expression "local_54 + 8" identifier + number_literal) )) - identifier))) )) (compound_statement "{\n          bVar8 = false;\n        }" { (expression_statement "bVar8 = false;" (assignment_expression "bVar8 = false" identifier = false) ;) })) (goto_statement "goto LAB_00100e3b;" goto statement_identifier ;) })) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar15 + 6;" (assignment_expression "puVar15 = puVar15 + 6" identifier = (binary_expression "puVar15 + 6" identifier + number_literal)) ;) (expression_statement "uVar3 = *(undefined4 *)(param_1 + 4);" (assignment_expression "uVar3 = *(undefined4 *)(param_1 + 4)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = gettext("%s: unexpected reloc type %u in .opd section");" (assignment_expression "uVar11 = gettext("%s: unexpected reloc type %u in .opd section")" identifier = (call_expression "gettext("%s: unexpected reloc type %u in .opd section")" identifier (argument_list "("%s: unexpected reloc type %u in .opd section")" ( (string_literal ""%s: unexpected reloc type %u in .opd section"" " string_content ") )))) ;) (expression_statement "FUN_0023b840(uVar11,uVar3,uVar12);" (call_expression "FUN_0023b840(uVar11,uVar3,uVar12)" identifier (argument_list "(uVar11,uVar3,uVar12)" ( identifier , identifier , identifier ))) ;) (expression_statement "bVar8 = false;" (assignment_expression "bVar8 = false" identifier = false) ;) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" identifier = false) ;) }) while (parenthesized_expression "(uVar9 != uVar14)" ( (binary_expression "uVar9 != uVar14" identifier != identifier) )) ;) (labeled_statement "LAB_00100e9d:\n    bVar8 = bVar17;" statement_identifier : (expression_statement "bVar8 = bVar17;" (assignment_expression "bVar8 = bVar17" identifier = identifier) ;)) (if_statement "if (2 < uVar9) goto LAB_00100ea8;" if (parenthesized_expression "(2 < uVar9)" ( (binary_expression "2 < uVar9" number_literal < identifier) )) (goto_statement "goto LAB_00100ea8;" goto statement_identifier ;)) })) (expression_statement "local_4c = FUN_00108170(param_1 + 0x90,*(undefined4 *)(param_1 + 0x140));" (assignment_expression "local_4c = FUN_00108170(param_1 + 0x90,*(undefined4 *)(param_1 + 0x140))" identifier = (call_expression "FUN_00108170(param_1 + 0x90,*(undefined4 *)(param_1 + 0x140))" identifier (argument_list "(param_1 + 0x90,*(undefined4 *)(param_1 + 0x140))" ( (binary_expression "param_1 + 0x90" identifier + number_literal) , (pointer_expression "*(undefined4 *)(param_1 + 0x140)" * (cast_expression "(undefined4 *)(param_1 + 0x140)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) )))) ;) (labeled_statement "LAB_00100ea8:\n  if (((local_4c & 0xfffffff7) == 0x10) && (bVar8)) {\n    return;\n  }" statement_identifier : (if_statement "if (((local_4c & 0xfffffff7) == 0x10) && (bVar8)) {\n    return;\n  }" if (parenthesized_expression "(((local_4c & 0xfffffff7) == 0x10) && (bVar8))" ( (binary_expression "((local_4c & 0xfffffff7) == 0x10) && (bVar8)" (parenthesized_expression "((local_4c & 0xfffffff7) == 0x10)" ( (binary_expression "(local_4c & 0xfffffff7) == 0x10" (parenthesized_expression "(local_4c & 0xfffffff7)" ( (binary_expression "local_4c & 0xfffffff7" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(bVar8)" ( identifier ))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (expression_statement "uVar3 = *(undefined4 *)(param_1 + 4);" (assignment_expression "uVar3 = *(undefined4 *)(param_1 + 4)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = gettext("%s: .opd is not a regular array of opd entries");" (assignment_expression "uVar11 = gettext("%s: .opd is not a regular array of opd entries")" identifier = (call_expression "gettext("%s: .opd is not a regular array of opd entries")" identifier (argument_list "("%s: .opd is not a regular array of opd entries")" ( (string_literal ""%s: .opd is not a regular array of opd entries"" " string_content ") )))) ;) (expression_statement "FUN_0023b840(uVar11,uVar3);" (call_expression "FUN_0023b840(uVar11,uVar3)" identifier (argument_list "(uVar11,uVar3)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (subscript_expression IDENT [ LIT ])) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (while_statement while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) == (subscript_expression IDENT [ LIT ])) )) (compound_statement { (return_statement return ;) })) (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 IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (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) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT)) ))) )) (compound_statement { (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 = BOOL) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (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 IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) )))) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) >> LIT) ))) <= (binary_expression IDENT >> LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) * LIT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression IDENT + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (binary_expression IDENT != IDENT) || (binary_expression IDENT != IDENT))))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) != (binary_expression (parenthesized_expression ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT < IDENT) ))) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT + LIT) < IDENT) ))))) || (binary_expression (pointer_expression * IDENT) != (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) - IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (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) )))) )))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) && (parenthesized_expression ( IDENT ))) )) (compound_statement { (return_statement return ;) }))) (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 = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (return_statement return ;) })))
(function_definition "void FUN_00100cf0(int param_1,int *param_2)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  uint uVar6;\n  uint uVar7;\n  bool bVar8;\n  uint uVar9;\n  int iVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  int iVar13;\n  uint uVar14;\n  uint *puVar15;\n  uint *puVar16;\n  bool bVar17;\n  undefined8 uVar18;\n  uint local_54;\n  uint local_50;\n  uint local_4c;\n  undefined1 local_25;\n  uint local_24;\n  int local_20;\n  uint uVar5;\n  \n  FUN_0031f3a0(param_1,param_2);\n  iVar1 = *param_2;\n  if (iVar1 == param_2[1]) {\n    return;\n  }\n  iVar10 = *(int *)(iVar1 + 4);\n  while (*(int *)(param_1 + 0x140) != iVar10) {\n    if (iVar1 + 0x1c == param_2[1]) {\n      return;\n    }\n    iVar10 = *(int *)(iVar1 + 0x20);\n    iVar1 = iVar1 + 0x1c;\n  }\n  uVar18 = FUN_00108170(param_1 + 0x90,*(int *)(param_1 + 0x140));\n  if ((int)((ulonglong)uVar18 >> 0x20) != 0) {\n                    \n    FUN_002446e0("../../gold/powerpc.cc",0x919,"do_read_relocs",param_2);\n  }\n  if ((uint)uVar18 == 0) {\n    return;\n  }\n  uVar9 = (uint)uVar18 >> 4;\n  uVar14 = *(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4;\n  if (uVar14 < uVar9) {\n    FUN_000b2870();\n  }\n  else if ((uVar9 < uVar14) &&\n          (iVar10 = uVar9 * 0x10 + *(int *)(param_1 + 0x168), *(int *)(param_1 + 0x16c) != iVar10))\n  {\n    *(int *)(param_1 + 0x16c) = iVar10;\n  }\n  bVar8 = true;\n  iVar10 = *(int *)(param_2[3] + 8);\n  puVar15 = *(uint **)(*(int *)(iVar1 + 8) + 8);\n  uVar9 = *(uint *)(iVar1 + 0x10);\n  if (uVar9 != 0) {\n    local_4c = 0;\n    uVar14 = 0;\n    local_54 = 0;\n    local_50 = 0;\n    do {\n      while( true ) {\n        uVar12 = puVar15[2];\n        uVar2 = puVar15[3];\n        if (uVar12 != 0x26) break;\n        if (uVar2 < *(uint *)(param_1 + 0xb0)) {\n          iVar1 = iVar10 + uVar2 * 0x18;\n          uVar12 = (uint)*(ushort *)(iVar1 + 6);\n          if (uVar12 < 0xff00) {\n            local_25 = 1;\n          }\n          else if (uVar12 == 0xffff) {\n            iVar13 = *(int *)(param_1 + 0x30);\n            if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }\n            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);\n            local_25 = 1;\n          }\n          else {\n            local_25 = 0;\n          }\n          local_24 = *(uint *)(iVar1 + 8);\n          local_20 = *(int *)(iVar1 + 0xc);\n        }\n        else {\n          uVar12 = FUN_002986d0(param_1,uVar2,&local_24,&local_25);\n        }\n        uVar2 = puVar15[1];\n        uVar4 = puVar15[4];\n        uVar5 = puVar15[4];\n        uVar6 = puVar15[5];\n        uVar7 = *puVar15;\n        if ((uint)(*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4) <= uVar7 >> 4) {\n                    \n          FUN_002446e0("../../gold/powerpc.cc",0xd0,"set_opd_ent",uVar7);\n        }\n        puVar16 = (uint *)(*(int *)(param_1 + 0x168) + (uVar7 >> 4) * 0x10);\n        *puVar16 = uVar12;\n        puVar16[3] = local_20 + uVar6 + (uint)CARRY4(local_24,uVar4);\n        puVar16[2] = local_24 + uVar5;\n        uVar12 = uVar7;\n        uVar5 = uVar2;\n        uVar4 = uVar7;\n        if ((uVar14 != 2) &&\n           (uVar12 = local_54, uVar5 = local_50, uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54)) {\n          bVar8 = false;\n        }\n        local_4c = uVar4;\n        local_50 = uVar5;\n        local_54 = uVar12;\n        bVar17 = CARRY4(local_54,local_4c);\n        local_54 = local_54 + local_4c;\n        local_50 = local_50 + bVar17;\nLAB_00100e3b:\n        uVar14 = uVar14 + 1;\n        puVar15 = puVar15 + 6;\n        bVar17 = bVar8;\n        if (uVar9 == uVar14) goto LAB_00100e9d;\n      }\n      if (uVar12 == 0x33) {\n        if (puVar15[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||\n            *puVar15 != (local_54 + 8) - local_4c) {\n          bVar8 = false;\n        }\n        goto LAB_00100e3b;\n      }\n      uVar14 = uVar14 + 1;\n      puVar15 = puVar15 + 6;\n      uVar3 = *(undefined4 *)(param_1 + 4);\n      uVar11 = gettext("%s: unexpected reloc type %u in .opd section");\n      FUN_0023b840(uVar11,uVar3,uVar12);\n      bVar8 = false;\n      bVar17 = false;\n    } while (uVar9 != uVar14);\nLAB_00100e9d:\n    bVar8 = bVar17;\n    if (2 < uVar9) goto LAB_00100ea8;\n  }\n  local_4c = FUN_00108170(param_1 + 0x90,*(undefined4 *)(param_1 + 0x140));\nLAB_00100ea8:\n  if (((local_4c & 0xfffffff7) == 0x10) && (bVar8)) {\n    return;\n  }\n  uVar3 = *(undefined4 *)(param_1 + 4);\n  uVar11 = gettext("%s: .opd is not a regular array of opd entries");\n  FUN_0023b840(uVar11,uVar3);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00100cf0(int param_1,int *param_2)" (identifier "FUN_00100cf0") (parameter_list "(int param_1,int *param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  uint uVar6;\n  uint uVar7;\n  bool bVar8;\n  uint uVar9;\n  int iVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  int iVar13;\n  uint uVar14;\n  uint *puVar15;\n  uint *puVar16;\n  bool bVar17;\n  undefined8 uVar18;\n  uint local_54;\n  uint local_50;\n  uint local_4c;\n  undefined1 local_25;\n  uint local_24;\n  int local_20;\n  uint uVar5;\n  \n  FUN_0031f3a0(param_1,param_2);\n  iVar1 = *param_2;\n  if (iVar1 == param_2[1]) {\n    return;\n  }\n  iVar10 = *(int *)(iVar1 + 4);\n  while (*(int *)(param_1 + 0x140) != iVar10) {\n    if (iVar1 + 0x1c == param_2[1]) {\n      return;\n    }\n    iVar10 = *(int *)(iVar1 + 0x20);\n    iVar1 = iVar1 + 0x1c;\n  }\n  uVar18 = FUN_00108170(param_1 + 0x90,*(int *)(param_1 + 0x140));\n  if ((int)((ulonglong)uVar18 >> 0x20) != 0) {\n                    \n    FUN_002446e0("../../gold/powerpc.cc",0x919,"do_read_relocs",param_2);\n  }\n  if ((uint)uVar18 == 0) {\n    return;\n  }\n  uVar9 = (uint)uVar18 >> 4;\n  uVar14 = *(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4;\n  if (uVar14 < uVar9) {\n    FUN_000b2870();\n  }\n  else if ((uVar9 < uVar14) &&\n          (iVar10 = uVar9 * 0x10 + *(int *)(param_1 + 0x168), *(int *)(param_1 + 0x16c) != iVar10))\n  {\n    *(int *)(param_1 + 0x16c) = iVar10;\n  }\n  bVar8 = true;\n  iVar10 = *(int *)(param_2[3] + 8);\n  puVar15 = *(uint **)(*(int *)(iVar1 + 8) + 8);\n  uVar9 = *(uint *)(iVar1 + 0x10);\n  if (uVar9 != 0) {\n    local_4c = 0;\n    uVar14 = 0;\n    local_54 = 0;\n    local_50 = 0;\n    do {\n      while( true ) {\n        uVar12 = puVar15[2];\n        uVar2 = puVar15[3];\n        if (uVar12 != 0x26) break;\n        if (uVar2 < *(uint *)(param_1 + 0xb0)) {\n          iVar1 = iVar10 + uVar2 * 0x18;\n          uVar12 = (uint)*(ushort *)(iVar1 + 6);\n          if (uVar12 < 0xff00) {\n            local_25 = 1;\n          }\n          else if (uVar12 == 0xffff) {\n            iVar13 = *(int *)(param_1 + 0x30);\n            if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }\n            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);\n            local_25 = 1;\n          }\n          else {\n            local_25 = 0;\n          }\n          local_24 = *(uint *)(iVar1 + 8);\n          local_20 = *(int *)(iVar1 + 0xc);\n        }\n        else {\n          uVar12 = FUN_002986d0(param_1,uVar2,&local_24,&local_25);\n        }\n        uVar2 = puVar15[1];\n        uVar4 = puVar15[4];\n        uVar5 = puVar15[4];\n        uVar6 = puVar15[5];\n        uVar7 = *puVar15;\n        if ((uint)(*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4) <= uVar7 >> 4) {\n                    \n          FUN_002446e0("../../gold/powerpc.cc",0xd0,"set_opd_ent",uVar7);\n        }\n        puVar16 = (uint *)(*(int *)(param_1 + 0x168) + (uVar7 >> 4) * 0x10);\n        *puVar16 = uVar12;\n        puVar16[3] = local_20 + uVar6 + (uint)CARRY4(local_24,uVar4);\n        puVar16[2] = local_24 + uVar5;\n        uVar12 = uVar7;\n        uVar5 = uVar2;\n        uVar4 = uVar7;\n        if ((uVar14 != 2) &&\n           (uVar12 = local_54, uVar5 = local_50, uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54)) {\n          bVar8 = false;\n        }\n        local_4c = uVar4;\n        local_50 = uVar5;\n        local_54 = uVar12;\n        bVar17 = CARRY4(local_54,local_4c);\n        local_54 = local_54 + local_4c;\n        local_50 = local_50 + bVar17;\nLAB_00100e3b:\n        uVar14 = uVar14 + 1;\n        puVar15 = puVar15 + 6;\n        bVar17 = bVar8;\n        if (uVar9 == uVar14) goto LAB_00100e9d;\n      }\n      if (uVar12 == 0x33) {\n        if (puVar15[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||\n            *puVar15 != (local_54 + 8) - local_4c) {\n          bVar8 = false;\n        }\n        goto LAB_00100e3b;\n      }\n      uVar14 = uVar14 + 1;\n      puVar15 = puVar15 + 6;\n      uVar3 = *(undefined4 *)(param_1 + 4);\n      uVar11 = gettext("%s: unexpected reloc type %u in .opd section");\n      FUN_0023b840(uVar11,uVar3,uVar12);\n      bVar8 = false;\n      bVar17 = false;\n    } while (uVar9 != uVar14);\nLAB_00100e9d:\n    bVar8 = bVar17;\n    if (2 < uVar9) goto LAB_00100ea8;\n  }\n  local_4c = FUN_00108170(param_1 + 0x90,*(undefined4 *)(param_1 + 0x140));\nLAB_00100ea8:\n  if (((local_4c & 0xfffffff7) == 0x10) && (bVar8)) {\n    return;\n  }\n  uVar3 = *(undefined4 *)(param_1 + 4);\n  uVar11 = gettext("%s: .opd is not a regular array of opd entries");\n  FUN_0023b840(uVar11,uVar3);\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "bool bVar8;" (primitive_type "bool") (identifier "bVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "undefined4 uVar11;" (type_identifier "undefined4") (identifier "uVar11") (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "uint *puVar15;" (type_identifier "uint") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "uint *puVar16;" (type_identifier "uint") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "bool bVar17;" (primitive_type "bool") (identifier "bVar17") (; ";")) (declaration "undefined8 uVar18;" (type_identifier "undefined8") (identifier "uVar18") (; ";")) (declaration "uint local_54;" (type_identifier "uint") (identifier "local_54") (; ";")) (declaration "uint local_50;" (type_identifier "uint") (identifier "local_50") (; ";")) (declaration "uint local_4c;" (type_identifier "uint") (identifier "local_4c") (; ";")) (declaration "undefined1 local_25;" (type_identifier "undefined1") (identifier "local_25") (; ";")) (declaration "uint local_24;" (type_identifier "uint") (identifier "local_24") (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (expression_statement "FUN_0031f3a0(param_1,param_2);" (call_expression "FUN_0031f3a0(param_1,param_2)" (identifier "FUN_0031f3a0") (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "iVar1 = *param_2;" (assignment_expression "iVar1 = *param_2" (identifier "iVar1") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (if_statement "if (iVar1 == param_2[1]) {\n    return;\n  }" (if "if") (parenthesized_expression "(iVar1 == param_2[1])" (( "(") (binary_expression "iVar1 == param_2[1]" (identifier "iVar1") (== "==") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar10 = *(int *)(iVar1 + 4);" (assignment_expression "iVar10 = *(int *)(iVar1 + 4)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(iVar1 + 4)" (* "*") (cast_expression "(int *)(iVar1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 4)" (( "(") (binary_expression "iVar1 + 4" (identifier "iVar1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (while_statement "while (*(int *)(param_1 + 0x140) != iVar10) {\n    if (iVar1 + 0x1c == param_2[1]) {\n      return;\n    }\n    iVar10 = *(int *)(iVar1 + 0x20);\n    iVar1 = iVar1 + 0x1c;\n  }" (while "while") (parenthesized_expression "(*(int *)(param_1 + 0x140) != iVar10)" (( "(") (binary_expression "*(int *)(param_1 + 0x140) != iVar10" (pointer_expression "*(int *)(param_1 + 0x140)" (* "*") (cast_expression "(int *)(param_1 + 0x140)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (!= "!=") (identifier "iVar10")) () ")")) (compound_statement "{\n    if (iVar1 + 0x1c == param_2[1]) {\n      return;\n    }\n    iVar10 = *(int *)(iVar1 + 0x20);\n    iVar1 = iVar1 + 0x1c;\n  }" ({ "{") (if_statement "if (iVar1 + 0x1c == param_2[1]) {\n      return;\n    }" (if "if") (parenthesized_expression "(iVar1 + 0x1c == param_2[1])" (( "(") (binary_expression "iVar1 + 0x1c == param_2[1]" (binary_expression "iVar1 + 0x1c" (identifier "iVar1") (+ "+") (number_literal "0x1c")) (== "==") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar10 = *(int *)(iVar1 + 0x20);" (assignment_expression "iVar10 = *(int *)(iVar1 + 0x20)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(iVar1 + 0x20)" (* "*") (cast_expression "(int *)(iVar1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x20)" (( "(") (binary_expression "iVar1 + 0x20" (identifier "iVar1") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "iVar1 = iVar1 + 0x1c;" (assignment_expression "iVar1 = iVar1 + 0x1c" (identifier "iVar1") (= "=") (binary_expression "iVar1 + 0x1c" (identifier "iVar1") (+ "+") (number_literal "0x1c"))) (; ";")) (} "}"))) (expression_statement "uVar18 = FUN_00108170(param_1 + 0x90,*(int *)(param_1 + 0x140));" (assignment_expression "uVar18 = FUN_00108170(param_1 + 0x90,*(int *)(param_1 + 0x140))" (identifier "uVar18") (= "=") (call_expression "FUN_00108170(param_1 + 0x90,*(int *)(param_1 + 0x140))" (identifier "FUN_00108170") (argument_list "(param_1 + 0x90,*(int *)(param_1 + 0x140))" (( "(") (binary_expression "param_1 + 0x90" (identifier "param_1") (+ "+") (number_literal "0x90")) (, ",") (pointer_expression "*(int *)(param_1 + 0x140)" (* "*") (cast_expression "(int *)(param_1 + 0x140)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) () ")")))) (; ";")) (if_statement "if ((int)((ulonglong)uVar18 >> 0x20) != 0) {\n                    \n    FUN_002446e0("../../gold/powerpc.cc",0x919,"do_read_relocs",param_2);\n  }" (if "if") (parenthesized_expression "((int)((ulonglong)uVar18 >> 0x20) != 0)" (( "(") (binary_expression "(int)((ulonglong)uVar18 >> 0x20) != 0" (cast_expression "(int)((ulonglong)uVar18 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar18 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar18 >> 0x20" (cast_expression "(ulonglong)uVar18" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar18")) (>> ">>") (number_literal "0x20")) () ")"))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_002446e0("../../gold/powerpc.cc",0x919,"do_read_relocs",param_2);\n  }" ({ "{") (expression_statement "FUN_002446e0("../../gold/powerpc.cc",0x919,"do_read_relocs",param_2);" (call_expression "FUN_002446e0("../../gold/powerpc.cc",0x919,"do_read_relocs",param_2)" (identifier "FUN_002446e0") (argument_list "("../../gold/powerpc.cc",0x919,"do_read_relocs",param_2)" (( "(") (string_literal ""../../gold/powerpc.cc"" (" """) (string_content "../../gold/powerpc.cc") (" """)) (, ",") (number_literal "0x919") (, ",") (string_literal ""do_read_relocs"" (" """) (string_content "do_read_relocs") (" """)) (, ",") (identifier "param_2") () ")"))) (; ";")) (} "}"))) (if_statement "if ((uint)uVar18 == 0) {\n    return;\n  }" (if "if") (parenthesized_expression "((uint)uVar18 == 0)" (( "(") (binary_expression "(uint)uVar18 == 0" (cast_expression "(uint)uVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar18")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar9 = (uint)uVar18 >> 4;" (assignment_expression "uVar9 = (uint)uVar18 >> 4" (identifier "uVar9") (= "=") (binary_expression "(uint)uVar18 >> 4" (cast_expression "(uint)uVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar18")) (>> ">>") (number_literal "4"))) (; ";")) (expression_statement "uVar14 = *(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4;" (assignment_expression "uVar14 = *(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4" (identifier "uVar14") (= "=") (binary_expression "*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4" (binary_expression "*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168)" (pointer_expression "*(int *)(param_1 + 0x16c)" (* "*") (cast_expression "(int *)(param_1 + 0x16c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x16c)" (( "(") (binary_expression "param_1 + 0x16c" (identifier "param_1") (+ "+") (number_literal "0x16c")) () ")")))) (- "-") (pointer_expression "*(int *)(param_1 + 0x168)" (* "*") (cast_expression "(int *)(param_1 + 0x168)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x168)" (( "(") (binary_expression "param_1 + 0x168" (identifier "param_1") (+ "+") (number_literal "0x168")) () ")"))))) (>> ">>") (number_literal "4"))) (; ";")) (if_statement "if (uVar14 < uVar9) {\n    FUN_000b2870();\n  }\n  else if ((uVar9 < uVar14) &&\n          (iVar10 = uVar9 * 0x10 + *(int *)(param_1 + 0x168), *(int *)(param_1 + 0x16c) != iVar10))\n  {\n    *(int *)(param_1 + 0x16c) = iVar10;\n  }" (if "if") (parenthesized_expression "(uVar14 < uVar9)" (( "(") (binary_expression "uVar14 < uVar9" (identifier "uVar14") (< "<") (identifier "uVar9")) () ")")) (compound_statement "{\n    FUN_000b2870();\n  }" ({ "{") (expression_statement "FUN_000b2870();" (call_expression "FUN_000b2870()" (identifier "FUN_000b2870") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else if ((uVar9 < uVar14) &&\n          (iVar10 = uVar9 * 0x10 + *(int *)(param_1 + 0x168), *(int *)(param_1 + 0x16c) != iVar10))\n  {\n    *(int *)(param_1 + 0x16c) = iVar10;\n  }" (else "else") (if_statement "if ((uVar9 < uVar14) &&\n          (iVar10 = uVar9 * 0x10 + *(int *)(param_1 + 0x168), *(int *)(param_1 + 0x16c) != iVar10))\n  {\n    *(int *)(param_1 + 0x16c) = iVar10;\n  }" (if "if") (parenthesized_expression "((uVar9 < uVar14) &&\n          (iVar10 = uVar9 * 0x10 + *(int *)(param_1 + 0x168), *(int *)(param_1 + 0x16c) != iVar10))" (( "(") (binary_expression "(uVar9 < uVar14) &&\n          (iVar10 = uVar9 * 0x10 + *(int *)(param_1 + 0x168), *(int *)(param_1 + 0x16c) != iVar10)" (parenthesized_expression "(uVar9 < uVar14)" (( "(") (binary_expression "uVar9 < uVar14" (identifier "uVar9") (< "<") (identifier "uVar14")) () ")")) (&& "&&") (parenthesized_expression "(iVar10 = uVar9 * 0x10 + *(int *)(param_1 + 0x168), *(int *)(param_1 + 0x16c) != iVar10)" (( "(") (comma_expression "iVar10 = uVar9 * 0x10 + *(int *)(param_1 + 0x168), *(int *)(param_1 + 0x16c) != iVar10" (assignment_expression "iVar10 = uVar9 * 0x10 + *(int *)(param_1 + 0x168)" (identifier "iVar10") (= "=") (binary_expression "uVar9 * 0x10 + *(int *)(param_1 + 0x168)" (binary_expression "uVar9 * 0x10" (identifier "uVar9") (* "*") (number_literal "0x10")) (+ "+") (pointer_expression "*(int *)(param_1 + 0x168)" (* "*") (cast_expression "(int *)(param_1 + 0x168)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x168)" (( "(") (binary_expression "param_1 + 0x168" (identifier "param_1") (+ "+") (number_literal "0x168")) () ")")))))) (, ",") (binary_expression "*(int *)(param_1 + 0x16c) != iVar10" (pointer_expression "*(int *)(param_1 + 0x16c)" (* "*") (cast_expression "(int *)(param_1 + 0x16c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x16c)" (( "(") (binary_expression "param_1 + 0x16c" (identifier "param_1") (+ "+") (number_literal "0x16c")) () ")")))) (!= "!=") (identifier "iVar10"))) () ")"))) () ")")) (compound_statement "{\n    *(int *)(param_1 + 0x16c) = iVar10;\n  }" ({ "{") (expression_statement "*(int *)(param_1 + 0x16c) = iVar10;" (assignment_expression "*(int *)(param_1 + 0x16c) = iVar10" (pointer_expression "*(int *)(param_1 + 0x16c)" (* "*") (cast_expression "(int *)(param_1 + 0x16c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x16c)" (( "(") (binary_expression "param_1 + 0x16c" (identifier "param_1") (+ "+") (number_literal "0x16c")) () ")")))) (= "=") (identifier "iVar10")) (; ";")) (} "}"))))) (expression_statement "bVar8 = true;" (assignment_expression "bVar8 = true" (identifier "bVar8") (= "=") (true "true")) (; ";")) (expression_statement "iVar10 = *(int *)(param_2[3] + 8);" (assignment_expression "iVar10 = *(int *)(param_2[3] + 8)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(param_2[3] + 8)" (* "*") (cast_expression "(int *)(param_2[3] + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[3] + 8)" (( "(") (binary_expression "param_2[3] + 8" (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "puVar15 = *(uint **)(*(int *)(iVar1 + 8) + 8);" (assignment_expression "puVar15 = *(uint **)(*(int *)(iVar1 + 8) + 8)" (identifier "puVar15") (= "=") (pointer_expression "*(uint **)(*(int *)(iVar1 + 8) + 8)" (* "*") (cast_expression "(uint **)(*(int *)(iVar1 + 8) + 8)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(iVar1 + 8) + 8)" (( "(") (binary_expression "*(int *)(iVar1 + 8) + 8" (pointer_expression "*(int *)(iVar1 + 8)" (* "*") (cast_expression "(int *)(iVar1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 8)" (( "(") (binary_expression "iVar1 + 8" (identifier "iVar1") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar9 = *(uint *)(iVar1 + 0x10);" (assignment_expression "uVar9 = *(uint *)(iVar1 + 0x10)" (identifier "uVar9") (= "=") (pointer_expression "*(uint *)(iVar1 + 0x10)" (* "*") (cast_expression "(uint *)(iVar1 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x10)" (( "(") (binary_expression "iVar1 + 0x10" (identifier "iVar1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (uVar9 != 0) {\n    local_4c = 0;\n    uVar14 = 0;\n    local_54 = 0;\n    local_50 = 0;\n    do {\n      while( true ) {\n        uVar12 = puVar15[2];\n        uVar2 = puVar15[3];\n        if (uVar12 != 0x26) break;\n        if (uVar2 < *(uint *)(param_1 + 0xb0)) {\n          iVar1 = iVar10 + uVar2 * 0x18;\n          uVar12 = (uint)*(ushort *)(iVar1 + 6);\n          if (uVar12 < 0xff00) {\n            local_25 = 1;\n          }\n          else if (uVar12 == 0xffff) {\n            iVar13 = *(int *)(param_1 + 0x30);\n            if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }\n            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);\n            local_25 = 1;\n          }\n          else {\n            local_25 = 0;\n          }\n          local_24 = *(uint *)(iVar1 + 8);\n          local_20 = *(int *)(iVar1 + 0xc);\n        }\n        else {\n          uVar12 = FUN_002986d0(param_1,uVar2,&local_24,&local_25);\n        }\n        uVar2 = puVar15[1];\n        uVar4 = puVar15[4];\n        uVar5 = puVar15[4];\n        uVar6 = puVar15[5];\n        uVar7 = *puVar15;\n        if ((uint)(*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4) <= uVar7 >> 4) {\n                    \n          FUN_002446e0("../../gold/powerpc.cc",0xd0,"set_opd_ent",uVar7);\n        }\n        puVar16 = (uint *)(*(int *)(param_1 + 0x168) + (uVar7 >> 4) * 0x10);\n        *puVar16 = uVar12;\n        puVar16[3] = local_20 + uVar6 + (uint)CARRY4(local_24,uVar4);\n        puVar16[2] = local_24 + uVar5;\n        uVar12 = uVar7;\n        uVar5 = uVar2;\n        uVar4 = uVar7;\n        if ((uVar14 != 2) &&\n           (uVar12 = local_54, uVar5 = local_50, uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54)) {\n          bVar8 = false;\n        }\n        local_4c = uVar4;\n        local_50 = uVar5;\n        local_54 = uVar12;\n        bVar17 = CARRY4(local_54,local_4c);\n        local_54 = local_54 + local_4c;\n        local_50 = local_50 + bVar17;\nLAB_00100e3b:\n        uVar14 = uVar14 + 1;\n        puVar15 = puVar15 + 6;\n        bVar17 = bVar8;\n        if (uVar9 == uVar14) goto LAB_00100e9d;\n      }\n      if (uVar12 == 0x33) {\n        if (puVar15[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||\n            *puVar15 != (local_54 + 8) - local_4c) {\n          bVar8 = false;\n        }\n        goto LAB_00100e3b;\n      }\n      uVar14 = uVar14 + 1;\n      puVar15 = puVar15 + 6;\n      uVar3 = *(undefined4 *)(param_1 + 4);\n      uVar11 = gettext("%s: unexpected reloc type %u in .opd section");\n      FUN_0023b840(uVar11,uVar3,uVar12);\n      bVar8 = false;\n      bVar17 = false;\n    } while (uVar9 != uVar14);\nLAB_00100e9d:\n    bVar8 = bVar17;\n    if (2 < uVar9) goto LAB_00100ea8;\n  }" (if "if") (parenthesized_expression "(uVar9 != 0)" (( "(") (binary_expression "uVar9 != 0" (identifier "uVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    local_4c = 0;\n    uVar14 = 0;\n    local_54 = 0;\n    local_50 = 0;\n    do {\n      while( true ) {\n        uVar12 = puVar15[2];\n        uVar2 = puVar15[3];\n        if (uVar12 != 0x26) break;\n        if (uVar2 < *(uint *)(param_1 + 0xb0)) {\n          iVar1 = iVar10 + uVar2 * 0x18;\n          uVar12 = (uint)*(ushort *)(iVar1 + 6);\n          if (uVar12 < 0xff00) {\n            local_25 = 1;\n          }\n          else if (uVar12 == 0xffff) {\n            iVar13 = *(int *)(param_1 + 0x30);\n            if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }\n            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);\n            local_25 = 1;\n          }\n          else {\n            local_25 = 0;\n          }\n          local_24 = *(uint *)(iVar1 + 8);\n          local_20 = *(int *)(iVar1 + 0xc);\n        }\n        else {\n          uVar12 = FUN_002986d0(param_1,uVar2,&local_24,&local_25);\n        }\n        uVar2 = puVar15[1];\n        uVar4 = puVar15[4];\n        uVar5 = puVar15[4];\n        uVar6 = puVar15[5];\n        uVar7 = *puVar15;\n        if ((uint)(*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4) <= uVar7 >> 4) {\n                    \n          FUN_002446e0("../../gold/powerpc.cc",0xd0,"set_opd_ent",uVar7);\n        }\n        puVar16 = (uint *)(*(int *)(param_1 + 0x168) + (uVar7 >> 4) * 0x10);\n        *puVar16 = uVar12;\n        puVar16[3] = local_20 + uVar6 + (uint)CARRY4(local_24,uVar4);\n        puVar16[2] = local_24 + uVar5;\n        uVar12 = uVar7;\n        uVar5 = uVar2;\n        uVar4 = uVar7;\n        if ((uVar14 != 2) &&\n           (uVar12 = local_54, uVar5 = local_50, uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54)) {\n          bVar8 = false;\n        }\n        local_4c = uVar4;\n        local_50 = uVar5;\n        local_54 = uVar12;\n        bVar17 = CARRY4(local_54,local_4c);\n        local_54 = local_54 + local_4c;\n        local_50 = local_50 + bVar17;\nLAB_00100e3b:\n        uVar14 = uVar14 + 1;\n        puVar15 = puVar15 + 6;\n        bVar17 = bVar8;\n        if (uVar9 == uVar14) goto LAB_00100e9d;\n      }\n      if (uVar12 == 0x33) {\n        if (puVar15[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||\n            *puVar15 != (local_54 + 8) - local_4c) {\n          bVar8 = false;\n        }\n        goto LAB_00100e3b;\n      }\n      uVar14 = uVar14 + 1;\n      puVar15 = puVar15 + 6;\n      uVar3 = *(undefined4 *)(param_1 + 4);\n      uVar11 = gettext("%s: unexpected reloc type %u in .opd section");\n      FUN_0023b840(uVar11,uVar3,uVar12);\n      bVar8 = false;\n      bVar17 = false;\n    } while (uVar9 != uVar14);\nLAB_00100e9d:\n    bVar8 = bVar17;\n    if (2 < uVar9) goto LAB_00100ea8;\n  }" ({ "{") (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" (identifier "local_4c") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" (identifier "local_54") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" (identifier "local_50") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      while( true ) {\n        uVar12 = puVar15[2];\n        uVar2 = puVar15[3];\n        if (uVar12 != 0x26) break;\n        if (uVar2 < *(uint *)(param_1 + 0xb0)) {\n          iVar1 = iVar10 + uVar2 * 0x18;\n          uVar12 = (uint)*(ushort *)(iVar1 + 6);\n          if (uVar12 < 0xff00) {\n            local_25 = 1;\n          }\n          else if (uVar12 == 0xffff) {\n            iVar13 = *(int *)(param_1 + 0x30);\n            if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }\n            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);\n            local_25 = 1;\n          }\n          else {\n            local_25 = 0;\n          }\n          local_24 = *(uint *)(iVar1 + 8);\n          local_20 = *(int *)(iVar1 + 0xc);\n        }\n        else {\n          uVar12 = FUN_002986d0(param_1,uVar2,&local_24,&local_25);\n        }\n        uVar2 = puVar15[1];\n        uVar4 = puVar15[4];\n        uVar5 = puVar15[4];\n        uVar6 = puVar15[5];\n        uVar7 = *puVar15;\n        if ((uint)(*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4) <= uVar7 >> 4) {\n                    \n          FUN_002446e0("../../gold/powerpc.cc",0xd0,"set_opd_ent",uVar7);\n        }\n        puVar16 = (uint *)(*(int *)(param_1 + 0x168) + (uVar7 >> 4) * 0x10);\n        *puVar16 = uVar12;\n        puVar16[3] = local_20 + uVar6 + (uint)CARRY4(local_24,uVar4);\n        puVar16[2] = local_24 + uVar5;\n        uVar12 = uVar7;\n        uVar5 = uVar2;\n        uVar4 = uVar7;\n        if ((uVar14 != 2) &&\n           (uVar12 = local_54, uVar5 = local_50, uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54)) {\n          bVar8 = false;\n        }\n        local_4c = uVar4;\n        local_50 = uVar5;\n        local_54 = uVar12;\n        bVar17 = CARRY4(local_54,local_4c);\n        local_54 = local_54 + local_4c;\n        local_50 = local_50 + bVar17;\nLAB_00100e3b:\n        uVar14 = uVar14 + 1;\n        puVar15 = puVar15 + 6;\n        bVar17 = bVar8;\n        if (uVar9 == uVar14) goto LAB_00100e9d;\n      }\n      if (uVar12 == 0x33) {\n        if (puVar15[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||\n            *puVar15 != (local_54 + 8) - local_4c) {\n          bVar8 = false;\n        }\n        goto LAB_00100e3b;\n      }\n      uVar14 = uVar14 + 1;\n      puVar15 = puVar15 + 6;\n      uVar3 = *(undefined4 *)(param_1 + 4);\n      uVar11 = gettext("%s: unexpected reloc type %u in .opd section");\n      FUN_0023b840(uVar11,uVar3,uVar12);\n      bVar8 = false;\n      bVar17 = false;\n    } while (uVar9 != uVar14);" (do "do") (compound_statement "{\n      while( true ) {\n        uVar12 = puVar15[2];\n        uVar2 = puVar15[3];\n        if (uVar12 != 0x26) break;\n        if (uVar2 < *(uint *)(param_1 + 0xb0)) {\n          iVar1 = iVar10 + uVar2 * 0x18;\n          uVar12 = (uint)*(ushort *)(iVar1 + 6);\n          if (uVar12 < 0xff00) {\n            local_25 = 1;\n          }\n          else if (uVar12 == 0xffff) {\n            iVar13 = *(int *)(param_1 + 0x30);\n            if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }\n            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);\n            local_25 = 1;\n          }\n          else {\n            local_25 = 0;\n          }\n          local_24 = *(uint *)(iVar1 + 8);\n          local_20 = *(int *)(iVar1 + 0xc);\n        }\n        else {\n          uVar12 = FUN_002986d0(param_1,uVar2,&local_24,&local_25);\n        }\n        uVar2 = puVar15[1];\n        uVar4 = puVar15[4];\n        uVar5 = puVar15[4];\n        uVar6 = puVar15[5];\n        uVar7 = *puVar15;\n        if ((uint)(*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4) <= uVar7 >> 4) {\n                    \n          FUN_002446e0("../../gold/powerpc.cc",0xd0,"set_opd_ent",uVar7);\n        }\n        puVar16 = (uint *)(*(int *)(param_1 + 0x168) + (uVar7 >> 4) * 0x10);\n        *puVar16 = uVar12;\n        puVar16[3] = local_20 + uVar6 + (uint)CARRY4(local_24,uVar4);\n        puVar16[2] = local_24 + uVar5;\n        uVar12 = uVar7;\n        uVar5 = uVar2;\n        uVar4 = uVar7;\n        if ((uVar14 != 2) &&\n           (uVar12 = local_54, uVar5 = local_50, uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54)) {\n          bVar8 = false;\n        }\n        local_4c = uVar4;\n        local_50 = uVar5;\n        local_54 = uVar12;\n        bVar17 = CARRY4(local_54,local_4c);\n        local_54 = local_54 + local_4c;\n        local_50 = local_50 + bVar17;\nLAB_00100e3b:\n        uVar14 = uVar14 + 1;\n        puVar15 = puVar15 + 6;\n        bVar17 = bVar8;\n        if (uVar9 == uVar14) goto LAB_00100e9d;\n      }\n      if (uVar12 == 0x33) {\n        if (puVar15[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||\n            *puVar15 != (local_54 + 8) - local_4c) {\n          bVar8 = false;\n        }\n        goto LAB_00100e3b;\n      }\n      uVar14 = uVar14 + 1;\n      puVar15 = puVar15 + 6;\n      uVar3 = *(undefined4 *)(param_1 + 4);\n      uVar11 = gettext("%s: unexpected reloc type %u in .opd section");\n      FUN_0023b840(uVar11,uVar3,uVar12);\n      bVar8 = false;\n      bVar17 = false;\n    }" ({ "{") (while_statement "while( true ) {\n        uVar12 = puVar15[2];\n        uVar2 = puVar15[3];\n        if (uVar12 != 0x26) break;\n        if (uVar2 < *(uint *)(param_1 + 0xb0)) {\n          iVar1 = iVar10 + uVar2 * 0x18;\n          uVar12 = (uint)*(ushort *)(iVar1 + 6);\n          if (uVar12 < 0xff00) {\n            local_25 = 1;\n          }\n          else if (uVar12 == 0xffff) {\n            iVar13 = *(int *)(param_1 + 0x30);\n            if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }\n            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);\n            local_25 = 1;\n          }\n          else {\n            local_25 = 0;\n          }\n          local_24 = *(uint *)(iVar1 + 8);\n          local_20 = *(int *)(iVar1 + 0xc);\n        }\n        else {\n          uVar12 = FUN_002986d0(param_1,uVar2,&local_24,&local_25);\n        }\n        uVar2 = puVar15[1];\n        uVar4 = puVar15[4];\n        uVar5 = puVar15[4];\n        uVar6 = puVar15[5];\n        uVar7 = *puVar15;\n        if ((uint)(*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4) <= uVar7 >> 4) {\n                    \n          FUN_002446e0("../../gold/powerpc.cc",0xd0,"set_opd_ent",uVar7);\n        }\n        puVar16 = (uint *)(*(int *)(param_1 + 0x168) + (uVar7 >> 4) * 0x10);\n        *puVar16 = uVar12;\n        puVar16[3] = local_20 + uVar6 + (uint)CARRY4(local_24,uVar4);\n        puVar16[2] = local_24 + uVar5;\n        uVar12 = uVar7;\n        uVar5 = uVar2;\n        uVar4 = uVar7;\n        if ((uVar14 != 2) &&\n           (uVar12 = local_54, uVar5 = local_50, uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54)) {\n          bVar8 = false;\n        }\n        local_4c = uVar4;\n        local_50 = uVar5;\n        local_54 = uVar12;\n        bVar17 = CARRY4(local_54,local_4c);\n        local_54 = local_54 + local_4c;\n        local_50 = local_50 + bVar17;\nLAB_00100e3b:\n        uVar14 = uVar14 + 1;\n        puVar15 = puVar15 + 6;\n        bVar17 = bVar8;\n        if (uVar9 == uVar14) goto LAB_00100e9d;\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        uVar12 = puVar15[2];\n        uVar2 = puVar15[3];\n        if (uVar12 != 0x26) break;\n        if (uVar2 < *(uint *)(param_1 + 0xb0)) {\n          iVar1 = iVar10 + uVar2 * 0x18;\n          uVar12 = (uint)*(ushort *)(iVar1 + 6);\n          if (uVar12 < 0xff00) {\n            local_25 = 1;\n          }\n          else if (uVar12 == 0xffff) {\n            iVar13 = *(int *)(param_1 + 0x30);\n            if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }\n            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);\n            local_25 = 1;\n          }\n          else {\n            local_25 = 0;\n          }\n          local_24 = *(uint *)(iVar1 + 8);\n          local_20 = *(int *)(iVar1 + 0xc);\n        }\n        else {\n          uVar12 = FUN_002986d0(param_1,uVar2,&local_24,&local_25);\n        }\n        uVar2 = puVar15[1];\n        uVar4 = puVar15[4];\n        uVar5 = puVar15[4];\n        uVar6 = puVar15[5];\n        uVar7 = *puVar15;\n        if ((uint)(*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4) <= uVar7 >> 4) {\n                    \n          FUN_002446e0("../../gold/powerpc.cc",0xd0,"set_opd_ent",uVar7);\n        }\n        puVar16 = (uint *)(*(int *)(param_1 + 0x168) + (uVar7 >> 4) * 0x10);\n        *puVar16 = uVar12;\n        puVar16[3] = local_20 + uVar6 + (uint)CARRY4(local_24,uVar4);\n        puVar16[2] = local_24 + uVar5;\n        uVar12 = uVar7;\n        uVar5 = uVar2;\n        uVar4 = uVar7;\n        if ((uVar14 != 2) &&\n           (uVar12 = local_54, uVar5 = local_50, uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54)) {\n          bVar8 = false;\n        }\n        local_4c = uVar4;\n        local_50 = uVar5;\n        local_54 = uVar12;\n        bVar17 = CARRY4(local_54,local_4c);\n        local_54 = local_54 + local_4c;\n        local_50 = local_50 + bVar17;\nLAB_00100e3b:\n        uVar14 = uVar14 + 1;\n        puVar15 = puVar15 + 6;\n        bVar17 = bVar8;\n        if (uVar9 == uVar14) goto LAB_00100e9d;\n      }" ({ "{") (expression_statement "uVar12 = puVar15[2];" (assignment_expression "uVar12 = puVar15[2]" (identifier "uVar12") (= "=") (subscript_expression "puVar15[2]" (identifier "puVar15") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar2 = puVar15[3];" (assignment_expression "uVar2 = puVar15[3]" (identifier "uVar2") (= "=") (subscript_expression "puVar15[3]" (identifier "puVar15") ([ "[") (number_literal "3") (] "]"))) (; ";")) (if_statement "if (uVar12 != 0x26) break;" (if "if") (parenthesized_expression "(uVar12 != 0x26)" (( "(") (binary_expression "uVar12 != 0x26" (identifier "uVar12") (!= "!=") (number_literal "0x26")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (uVar2 < *(uint *)(param_1 + 0xb0)) {\n          iVar1 = iVar10 + uVar2 * 0x18;\n          uVar12 = (uint)*(ushort *)(iVar1 + 6);\n          if (uVar12 < 0xff00) {\n            local_25 = 1;\n          }\n          else if (uVar12 == 0xffff) {\n            iVar13 = *(int *)(param_1 + 0x30);\n            if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }\n            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);\n            local_25 = 1;\n          }\n          else {\n            local_25 = 0;\n          }\n          local_24 = *(uint *)(iVar1 + 8);\n          local_20 = *(int *)(iVar1 + 0xc);\n        }\n        else {\n          uVar12 = FUN_002986d0(param_1,uVar2,&local_24,&local_25);\n        }" (if "if") (parenthesized_expression "(uVar2 < *(uint *)(param_1 + 0xb0))" (( "(") (binary_expression "uVar2 < *(uint *)(param_1 + 0xb0)" (identifier "uVar2") (< "<") (pointer_expression "*(uint *)(param_1 + 0xb0)" (* "*") (cast_expression "(uint *)(param_1 + 0xb0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xb0)" (( "(") (binary_expression "param_1 + 0xb0" (identifier "param_1") (+ "+") (number_literal "0xb0")) () ")"))))) () ")")) (compound_statement "{\n          iVar1 = iVar10 + uVar2 * 0x18;\n          uVar12 = (uint)*(ushort *)(iVar1 + 6);\n          if (uVar12 < 0xff00) {\n            local_25 = 1;\n          }\n          else if (uVar12 == 0xffff) {\n            iVar13 = *(int *)(param_1 + 0x30);\n            if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }\n            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);\n            local_25 = 1;\n          }\n          else {\n            local_25 = 0;\n          }\n          local_24 = *(uint *)(iVar1 + 8);\n          local_20 = *(int *)(iVar1 + 0xc);\n        }" ({ "{") (expression_statement "iVar1 = iVar10 + uVar2 * 0x18;" (assignment_expression "iVar1 = iVar10 + uVar2 * 0x18" (identifier "iVar1") (= "=") (binary_expression "iVar10 + uVar2 * 0x18" (identifier "iVar10") (+ "+") (binary_expression "uVar2 * 0x18" (identifier "uVar2") (* "*") (number_literal "0x18")))) (; ";")) (expression_statement "uVar12 = (uint)*(ushort *)(iVar1 + 6);" (assignment_expression "uVar12 = (uint)*(ushort *)(iVar1 + 6)" (identifier "uVar12") (= "=") (binary_expression "(uint)*(ushort *)(iVar1 + 6)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(ushort *)(iVar1 + 6)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 6)" (( "(") (binary_expression "iVar1 + 6" (identifier "iVar1") (+ "+") (number_literal "6")) () ")"))))) (; ";")) (if_statement "if (uVar12 < 0xff00) {\n            local_25 = 1;\n          }\n          else if (uVar12 == 0xffff) {\n            iVar13 = *(int *)(param_1 + 0x30);\n            if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }\n            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);\n            local_25 = 1;\n          }\n          else {\n            local_25 = 0;\n          }" (if "if") (parenthesized_expression "(uVar12 < 0xff00)" (( "(") (binary_expression "uVar12 < 0xff00" (identifier "uVar12") (< "<") (number_literal "0xff00")) () ")")) (compound_statement "{\n            local_25 = 1;\n          }" ({ "{") (expression_statement "local_25 = 1;" (assignment_expression "local_25 = 1" (identifier "local_25") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else if (uVar12 == 0xffff) {\n            iVar13 = *(int *)(param_1 + 0x30);\n            if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }\n            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);\n            local_25 = 1;\n          }\n          else {\n            local_25 = 0;\n          }" (else "else") (if_statement "if (uVar12 == 0xffff) {\n            iVar13 = *(int *)(param_1 + 0x30);\n            if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }\n            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);\n            local_25 = 1;\n          }\n          else {\n            local_25 = 0;\n          }" (if "if") (parenthesized_expression "(uVar12 == 0xffff)" (( "(") (binary_expression "uVar12 == 0xffff" (identifier "uVar12") (== "==") (number_literal "0xffff")) () ")")) (compound_statement "{\n            iVar13 = *(int *)(param_1 + 0x30);\n            if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }\n            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);\n            local_25 = 1;\n          }" ({ "{") (expression_statement "iVar13 = *(int *)(param_1 + 0x30);" (assignment_expression "iVar13 = *(int *)(param_1 + 0x30)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(param_1 + 0x30)" (* "*") (cast_expression "(int *)(param_1 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (if_statement "if (iVar13 == 0) {\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }" (if "if") (parenthesized_expression "(iVar13 == 0)" (( "(") (binary_expression "iVar13 == 0" (identifier "iVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              iVar13 = FUN_0029c0e0(param_1);\n              *(int *)(param_1 + 0x30) = iVar13;\n            }" ({ "{") (expression_statement "iVar13 = FUN_0029c0e0(param_1);" (assignment_expression "iVar13 = FUN_0029c0e0(param_1)" (identifier "iVar13") (= "=") (call_expression "FUN_0029c0e0(param_1)" (identifier "FUN_0029c0e0") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "*(int *)(param_1 + 0x30) = iVar13;" (assignment_expression "*(int *)(param_1 + 0x30) = iVar13" (pointer_expression "*(int *)(param_1 + 0x30)" (* "*") (cast_expression "(int *)(param_1 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "iVar13")) (; ";")) (} "}"))) (expression_statement "uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);" (assignment_expression "uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2)" (identifier "uVar12") (= "=") (call_expression "FUN_0028b7d0(iVar13,param_1,uVar2)" (identifier "FUN_0028b7d0") (argument_list "(iVar13,param_1,uVar2)" (( "(") (identifier "iVar13") (, ",") (identifier "param_1") (, ",") (identifier "uVar2") () ")")))) (; ";")) (expression_statement "local_25 = 1;" (assignment_expression "local_25 = 1" (identifier "local_25") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n            local_25 = 0;\n          }" (else "else") (compound_statement "{\n            local_25 = 0;\n          }" ({ "{") (expression_statement "local_25 = 0;" (assignment_expression "local_25 = 0" (identifier "local_25") (= "=") (number_literal "0")) (; ";")) (} "}")))))) (expression_statement "local_24 = *(uint *)(iVar1 + 8);" (assignment_expression "local_24 = *(uint *)(iVar1 + 8)" (identifier "local_24") (= "=") (pointer_expression "*(uint *)(iVar1 + 8)" (* "*") (cast_expression "(uint *)(iVar1 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 8)" (( "(") (binary_expression "iVar1 + 8" (identifier "iVar1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "local_20 = *(int *)(iVar1 + 0xc);" (assignment_expression "local_20 = *(int *)(iVar1 + 0xc)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(iVar1 + 0xc)" (* "*") (cast_expression "(int *)(iVar1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0xc)" (( "(") (binary_expression "iVar1 + 0xc" (identifier "iVar1") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n          uVar12 = FUN_002986d0(param_1,uVar2,&local_24,&local_25);\n        }" (else "else") (compound_statement "{\n          uVar12 = FUN_002986d0(param_1,uVar2,&local_24,&local_25);\n        }" ({ "{") (expression_statement "uVar12 = FUN_002986d0(param_1,uVar2,&local_24,&local_25);" (assignment_expression "uVar12 = FUN_002986d0(param_1,uVar2,&local_24,&local_25)" (identifier "uVar12") (= "=") (call_expression "FUN_002986d0(param_1,uVar2,&local_24,&local_25)" (identifier "FUN_002986d0") (argument_list "(param_1,uVar2,&local_24,&local_25)" (( "(") (identifier "param_1") (, ",") (identifier "uVar2") (, ",") (pointer_expression "&local_24" (& "&") (identifier "local_24")) (, ",") (pointer_expression "&local_25" (& "&") (identifier "local_25")) () ")")))) (; ";")) (} "}")))) (expression_statement "uVar2 = puVar15[1];" (assignment_expression "uVar2 = puVar15[1]" (identifier "uVar2") (= "=") (subscript_expression "puVar15[1]" (identifier "puVar15") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar4 = puVar15[4];" (assignment_expression "uVar4 = puVar15[4]" (identifier "uVar4") (= "=") (subscript_expression "puVar15[4]" (identifier "puVar15") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "uVar5 = puVar15[4];" (assignment_expression "uVar5 = puVar15[4]" (identifier "uVar5") (= "=") (subscript_expression "puVar15[4]" (identifier "puVar15") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "uVar6 = puVar15[5];" (assignment_expression "uVar6 = puVar15[5]" (identifier "uVar6") (= "=") (subscript_expression "puVar15[5]" (identifier "puVar15") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "uVar7 = *puVar15;" (assignment_expression "uVar7 = *puVar15" (identifier "uVar7") (= "=") (pointer_expression "*puVar15" (* "*") (identifier "puVar15"))) (; ";")) (if_statement "if ((uint)(*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4) <= uVar7 >> 4) {\n                    \n          FUN_002446e0("../../gold/powerpc.cc",0xd0,"set_opd_ent",uVar7);\n        }" (if "if") (parenthesized_expression "((uint)(*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4) <= uVar7 >> 4)" (( "(") (binary_expression "(uint)(*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4) <= uVar7 >> 4" (call_expression "(uint)(*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4)" (( "(") (binary_expression "*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4" (binary_expression "*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168)" (pointer_expression "*(int *)(param_1 + 0x16c)" (* "*") (cast_expression "(int *)(param_1 + 0x16c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x16c)" (( "(") (binary_expression "param_1 + 0x16c" (identifier "param_1") (+ "+") (number_literal "0x16c")) () ")")))) (- "-") (pointer_expression "*(int *)(param_1 + 0x168)" (* "*") (cast_expression "(int *)(param_1 + 0x168)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x168)" (( "(") (binary_expression "param_1 + 0x168" (identifier "param_1") (+ "+") (number_literal "0x168")) () ")"))))) (>> ">>") (number_literal "4")) () ")"))) (<= "<=") (binary_expression "uVar7 >> 4" (identifier "uVar7") (>> ">>") (number_literal "4"))) () ")")) (compound_statement "{\n                    \n          FUN_002446e0("../../gold/powerpc.cc",0xd0,"set_opd_ent",uVar7);\n        }" ({ "{") (expression_statement "FUN_002446e0("../../gold/powerpc.cc",0xd0,"set_opd_ent",uVar7);" (call_expression "FUN_002446e0("../../gold/powerpc.cc",0xd0,"set_opd_ent",uVar7)" (identifier "FUN_002446e0") (argument_list "("../../gold/powerpc.cc",0xd0,"set_opd_ent",uVar7)" (( "(") (string_literal ""../../gold/powerpc.cc"" (" """) (string_content "../../gold/powerpc.cc") (" """)) (, ",") (number_literal "0xd0") (, ",") (string_literal ""set_opd_ent"" (" """) (string_content "set_opd_ent") (" """)) (, ",") (identifier "uVar7") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar16 = (uint *)(*(int *)(param_1 + 0x168) + (uVar7 >> 4) * 0x10);" (assignment_expression "puVar16 = (uint *)(*(int *)(param_1 + 0x168) + (uVar7 >> 4) * 0x10)" (identifier "puVar16") (= "=") (cast_expression "(uint *)(*(int *)(param_1 + 0x168) + (uVar7 >> 4) * 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x168) + (uVar7 >> 4) * 0x10)" (( "(") (binary_expression "*(int *)(param_1 + 0x168) + (uVar7 >> 4) * 0x10" (pointer_expression "*(int *)(param_1 + 0x168)" (* "*") (cast_expression "(int *)(param_1 + 0x168)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x168)" (( "(") (binary_expression "param_1 + 0x168" (identifier "param_1") (+ "+") (number_literal "0x168")) () ")")))) (+ "+") (binary_expression "(uVar7 >> 4) * 0x10" (parenthesized_expression "(uVar7 >> 4)" (( "(") (binary_expression "uVar7 >> 4" (identifier "uVar7") (>> ">>") (number_literal "4")) () ")")) (* "*") (number_literal "0x10"))) () ")")))) (; ";")) (expression_statement "*puVar16 = uVar12;" (assignment_expression "*puVar16 = uVar12" (pointer_expression "*puVar16" (* "*") (identifier "puVar16")) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "puVar16[3] = local_20 + uVar6 + (uint)CARRY4(local_24,uVar4);" (assignment_expression "puVar16[3] = local_20 + uVar6 + (uint)CARRY4(local_24,uVar4)" (subscript_expression "puVar16[3]" (identifier "puVar16") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "local_20 + uVar6 + (uint)CARRY4(local_24,uVar4)" (binary_expression "local_20 + uVar6" (identifier "local_20") (+ "+") (identifier "uVar6")) (+ "+") (cast_expression "(uint)CARRY4(local_24,uVar4)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(local_24,uVar4)" (identifier "CARRY4") (argument_list "(local_24,uVar4)" (( "(") (identifier "local_24") (, ",") (identifier "uVar4") () ")")))))) (; ";")) (expression_statement "puVar16[2] = local_24 + uVar5;" (assignment_expression "puVar16[2] = local_24 + uVar5" (subscript_expression "puVar16[2]" (identifier "puVar16") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "local_24 + uVar5" (identifier "local_24") (+ "+") (identifier "uVar5"))) (; ";")) (expression_statement "uVar12 = uVar7;" (assignment_expression "uVar12 = uVar7" (identifier "uVar12") (= "=") (identifier "uVar7")) (; ";")) (expression_statement "uVar5 = uVar2;" (assignment_expression "uVar5 = uVar2" (identifier "uVar5") (= "=") (identifier "uVar2")) (; ";")) (expression_statement "uVar4 = uVar7;" (assignment_expression "uVar4 = uVar7" (identifier "uVar4") (= "=") (identifier "uVar7")) (; ";")) (if_statement "if ((uVar14 != 2) &&\n           (uVar12 = local_54, uVar5 = local_50, uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54)) {\n          bVar8 = false;\n        }" (if "if") (parenthesized_expression "((uVar14 != 2) &&\n           (uVar12 = local_54, uVar5 = local_50, uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54))" (( "(") (binary_expression "(uVar14 != 2) &&\n           (uVar12 = local_54, uVar5 = local_50, uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54)" (parenthesized_expression "(uVar14 != 2)" (( "(") (binary_expression "uVar14 != 2" (identifier "uVar14") (!= "!=") (number_literal "2")) () ")")) (&& "&&") (parenthesized_expression "(uVar12 = local_54, uVar5 = local_50, uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54)" (( "(") (comma_expression "uVar12 = local_54, uVar5 = local_50, uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54" (assignment_expression "uVar12 = local_54" (identifier "uVar12") (= "=") (identifier "local_54")) (, ",") (comma_expression "uVar5 = local_50, uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54" (assignment_expression "uVar5 = local_50" (identifier "uVar5") (= "=") (identifier "local_50")) (, ",") (comma_expression "uVar4 = local_4c,\n           uVar2 != local_50 || uVar7 != local_54" (assignment_expression "uVar4 = local_4c" (identifier "uVar4") (= "=") (identifier "local_4c")) (, ",") (binary_expression "uVar2 != local_50 || uVar7 != local_54" (binary_expression "uVar2 != local_50" (identifier "uVar2") (!= "!=") (identifier "local_50")) (|| "||") (binary_expression "uVar7 != local_54" (identifier "uVar7") (!= "!=") (identifier "local_54")))))) () ")"))) () ")")) (compound_statement "{\n          bVar8 = false;\n        }" ({ "{") (expression_statement "bVar8 = false;" (assignment_expression "bVar8 = false" (identifier "bVar8") (= "=") (false "false")) (; ";")) (} "}"))) (expression_statement "local_4c = uVar4;" (assignment_expression "local_4c = uVar4" (identifier "local_4c") (= "=") (identifier "uVar4")) (; ";")) (expression_statement "local_50 = uVar5;" (assignment_expression "local_50 = uVar5" (identifier "local_50") (= "=") (identifier "uVar5")) (; ";")) (expression_statement "local_54 = uVar12;" (assignment_expression "local_54 = uVar12" (identifier "local_54") (= "=") (identifier "uVar12")) (; ";")) (expression_statement "bVar17 = CARRY4(local_54,local_4c);" (assignment_expression "bVar17 = CARRY4(local_54,local_4c)" (identifier "bVar17") (= "=") (call_expression "CARRY4(local_54,local_4c)" (identifier "CARRY4") (argument_list "(local_54,local_4c)" (( "(") (identifier "local_54") (, ",") (identifier "local_4c") () ")")))) (; ";")) (expression_statement "local_54 = local_54 + local_4c;" (assignment_expression "local_54 = local_54 + local_4c" (identifier "local_54") (= "=") (binary_expression "local_54 + local_4c" (identifier "local_54") (+ "+") (identifier "local_4c"))) (; ";")) (expression_statement "local_50 = local_50 + bVar17;" (assignment_expression "local_50 = local_50 + bVar17" (identifier "local_50") (= "=") (binary_expression "local_50 + bVar17" (identifier "local_50") (+ "+") (identifier "bVar17"))) (; ";")) (labeled_statement "LAB_00100e3b:\n        uVar14 = uVar14 + 1;" (statement_identifier "LAB_00100e3b") (: ":") (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" (identifier "uVar14") (= "=") (binary_expression "uVar14 + 1" (identifier "uVar14") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "puVar15 = puVar15 + 6;" (assignment_expression "puVar15 = puVar15 + 6" (identifier "puVar15") (= "=") (binary_expression "puVar15 + 6" (identifier "puVar15") (+ "+") (number_literal "6"))) (; ";")) (expression_statement "bVar17 = bVar8;" (assignment_expression "bVar17 = bVar8" (identifier "bVar17") (= "=") (identifier "bVar8")) (; ";")) (if_statement "if (uVar9 == uVar14) goto LAB_00100e9d;" (if "if") (parenthesized_expression "(uVar9 == uVar14)" (( "(") (binary_expression "uVar9 == uVar14" (identifier "uVar9") (== "==") (identifier "uVar14")) () ")")) (goto_statement "goto LAB_00100e9d;" (goto "goto") (statement_identifier "LAB_00100e9d") (; ";"))) (} "}"))) (if_statement "if (uVar12 == 0x33) {\n        if (puVar15[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||\n            *puVar15 != (local_54 + 8) - local_4c) {\n          bVar8 = false;\n        }\n        goto LAB_00100e3b;\n      }" (if "if") (parenthesized_expression "(uVar12 == 0x33)" (( "(") (binary_expression "uVar12 == 0x33" (identifier "uVar12") (== "==") (number_literal "0x33")) () ")")) (compound_statement "{\n        if (puVar15[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||\n            *puVar15 != (local_54 + 8) - local_4c) {\n          bVar8 = false;\n        }\n        goto LAB_00100e3b;\n      }" ({ "{") (if_statement "if (puVar15[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||\n            *puVar15 != (local_54 + 8) - local_4c) {\n          bVar8 = false;\n        }" (if "if") (parenthesized_expression "(puVar15[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||\n            *puVar15 != (local_54 + 8) - local_4c)" (( "(") (binary_expression "puVar15[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||\n            *puVar15 != (local_54 + 8) - local_4c" (binary_expression "puVar15[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c)" (subscript_expression "puVar15[1]" (identifier "puVar15") ([ "[") (number_literal "1") (] "]")) (!= "!=") (binary_expression "(local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c)" (parenthesized_expression "(local_50 + (0xfffffff7 < local_54))" (( "(") (binary_expression "local_50 + (0xfffffff7 < local_54)" (identifier "local_50") (+ "+") (parenthesized_expression "(0xfffffff7 < local_54)" (( "(") (binary_expression "0xfffffff7 < local_54" (number_literal "0xfffffff7") (< "<") (identifier "local_54")) () ")"))) () ")")) (- "-") (call_expression "(uint)(local_54 + 8 < local_4c)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_54 + 8 < local_4c)" (( "(") (binary_expression "local_54 + 8 < local_4c" (binary_expression "local_54 + 8" (identifier "local_54") (+ "+") (number_literal "8")) (< "<") (identifier "local_4c")) () ")"))))) (|| "||") (binary_expression "*puVar15 != (local_54 + 8) - local_4c" (pointer_expression "*puVar15" (* "*") (identifier "puVar15")) (!= "!=") (binary_expression "(local_54 + 8) - local_4c" (parenthesized_expression "(local_54 + 8)" (( "(") (binary_expression "local_54 + 8" (identifier "local_54") (+ "+") (number_literal "8")) () ")")) (- "-") (identifier "local_4c")))) () ")")) (compound_statement "{\n          bVar8 = false;\n        }" ({ "{") (expression_statement "bVar8 = false;" (assignment_expression "bVar8 = false" (identifier "bVar8") (= "=") (false "false")) (; ";")) (} "}"))) (goto_statement "goto LAB_00100e3b;" (goto "goto") (statement_identifier "LAB_00100e3b") (; ";")) (} "}"))) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" (identifier "uVar14") (= "=") (binary_expression "uVar14 + 1" (identifier "uVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar15 = puVar15 + 6;" (assignment_expression "puVar15 = puVar15 + 6" (identifier "puVar15") (= "=") (binary_expression "puVar15 + 6" (identifier "puVar15") (+ "+") (number_literal "6"))) (; ";")) (expression_statement "uVar3 = *(undefined4 *)(param_1 + 4);" (assignment_expression "uVar3 = *(undefined4 *)(param_1 + 4)" (identifier "uVar3") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 4)" (* "*") (cast_expression "(undefined4 *)(param_1 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar11 = gettext("%s: unexpected reloc type %u in .opd section");" (assignment_expression "uVar11 = gettext("%s: unexpected reloc type %u in .opd section")" (identifier "uVar11") (= "=") (call_expression "gettext("%s: unexpected reloc type %u in .opd section")" (identifier "gettext") (argument_list "("%s: unexpected reloc type %u in .opd section")" (( "(") (string_literal ""%s: unexpected reloc type %u in .opd section"" (" """) (string_content "%s: unexpected reloc type %u in .opd section") (" """)) () ")")))) (; ";")) (expression_statement "FUN_0023b840(uVar11,uVar3,uVar12);" (call_expression "FUN_0023b840(uVar11,uVar3,uVar12)" (identifier "FUN_0023b840") (argument_list "(uVar11,uVar3,uVar12)" (( "(") (identifier "uVar11") (, ",") (identifier "uVar3") (, ",") (identifier "uVar12") () ")"))) (; ";")) (expression_statement "bVar8 = false;" (assignment_expression "bVar8 = false" (identifier "bVar8") (= "=") (false "false")) (; ";")) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" (identifier "bVar17") (= "=") (false "false")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar9 != uVar14)" (( "(") (binary_expression "uVar9 != uVar14" (identifier "uVar9") (!= "!=") (identifier "uVar14")) () ")")) (; ";")) (labeled_statement "LAB_00100e9d:\n    bVar8 = bVar17;" (statement_identifier "LAB_00100e9d") (: ":") (expression_statement "bVar8 = bVar17;" (assignment_expression "bVar8 = bVar17" (identifier "bVar8") (= "=") (identifier "bVar17")) (; ";"))) (if_statement "if (2 < uVar9) goto LAB_00100ea8;" (if "if") (parenthesized_expression "(2 < uVar9)" (( "(") (binary_expression "2 < uVar9" (number_literal "2") (< "<") (identifier "uVar9")) () ")")) (goto_statement "goto LAB_00100ea8;" (goto "goto") (statement_identifier "LAB_00100ea8") (; ";"))) (} "}"))) (expression_statement "local_4c = FUN_00108170(param_1 + 0x90,*(undefined4 *)(param_1 + 0x140));" (assignment_expression "local_4c = FUN_00108170(param_1 + 0x90,*(undefined4 *)(param_1 + 0x140))" (identifier "local_4c") (= "=") (call_expression "FUN_00108170(param_1 + 0x90,*(undefined4 *)(param_1 + 0x140))" (identifier "FUN_00108170") (argument_list "(param_1 + 0x90,*(undefined4 *)(param_1 + 0x140))" (( "(") (binary_expression "param_1 + 0x90" (identifier "param_1") (+ "+") (number_literal "0x90")) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x140)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x140)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) () ")")))) (; ";")) (labeled_statement "LAB_00100ea8:\n  if (((local_4c & 0xfffffff7) == 0x10) && (bVar8)) {\n    return;\n  }" (statement_identifier "LAB_00100ea8") (: ":") (if_statement "if (((local_4c & 0xfffffff7) == 0x10) && (bVar8)) {\n    return;\n  }" (if "if") (parenthesized_expression "(((local_4c & 0xfffffff7) == 0x10) && (bVar8))" (( "(") (binary_expression "((local_4c & 0xfffffff7) == 0x10) && (bVar8)" (parenthesized_expression "((local_4c & 0xfffffff7) == 0x10)" (( "(") (binary_expression "(local_4c & 0xfffffff7) == 0x10" (parenthesized_expression "(local_4c & 0xfffffff7)" (( "(") (binary_expression "local_4c & 0xfffffff7" (identifier "local_4c") (& "&") (number_literal "0xfffffff7")) () ")")) (== "==") (number_literal "0x10")) () ")")) (&& "&&") (parenthesized_expression "(bVar8)" (( "(") (identifier "bVar8") () ")"))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}")))) (expression_statement "uVar3 = *(undefined4 *)(param_1 + 4);" (assignment_expression "uVar3 = *(undefined4 *)(param_1 + 4)" (identifier "uVar3") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 4)" (* "*") (cast_expression "(undefined4 *)(param_1 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar11 = gettext("%s: .opd is not a regular array of opd entries");" (assignment_expression "uVar11 = gettext("%s: .opd is not a regular array of opd entries")" (identifier "uVar11") (= "=") (call_expression "gettext("%s: .opd is not a regular array of opd entries")" (identifier "gettext") (argument_list "("%s: .opd is not a regular array of opd entries")" (( "(") (string_literal ""%s: .opd is not a regular array of opd entries"" (" """) (string_content "%s: .opd is not a regular array of opd entries") (" """)) () ")")))) (; ";")) (expression_statement "FUN_0023b840(uVar11,uVar3);" (call_expression "FUN_0023b840(uVar11,uVar3)" (identifier "FUN_0023b840") (argument_list "(uVar11,uVar3)" (( "(") (identifier "uVar11") (, ",") (identifier "uVar3") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* DWARF original prototype: void do_read_relocs(Powerpc_relobj<64,_false> * this, Read_relocs_data
   * rd) */

void __thiscall
anon_unknown.dwarf_6462d4::var_2<64,var_3>::var_7
          (var_2<64,var_3> *this,Read_relocs_data *rd)

{
  type_1 var_9;
  type_1 var_10;
  type_1 var_18;
  type_2 *var_21;
  type_3 var_20;
  type_1 pcVar6;
  type_3 uVar7;
  type_3 var_27;
  type_3 var_26;
  bool bVar11;
  Elf_file<64,var_3,_gold::var_1> *this_00;
  type_3 var_11;
  type_1 var_17;
  char *pcVar14;
  type_3 var_19;
  type_4 *var_22;
  type_3 var_15;
  type_3 *var_34;
  bool var_33;
  type_5 var_13;
  vector<(anonymous_namespace)::var_2<64,var_3>::var_4,_std::allocator<(anonymous_namespace)::var_2<64,var_3>::var_4>var_5>
  *in_stack_ffffff94;
  type_6 in_stack_ffffff98;
  type_3 var_31;
  type_3 var_30;
  type_3 var_32;
  bool is_ordinary;
  type_7 value;
  type_3 var_29;
  
  gold::var_6<64,var_3>::var_7(&this->super_Sized_relobj_file<64,var_3>,rd);
  var_9 = (rd->relocs).
           super__Vector_base<gold::var_8,_std::allocator<gold::var_8>var_5>._M_impl.
           _M_start;
  var_10 = (rd->relocs).
           super__Vector_base<gold::var_8,_std::allocator<gold::var_8>var_5>._M_impl.
           _M_finish;
  if (var_9 == var_10) {
    return;
  }
  var_11 = var_9->data_shndx;
  while (this->special_ != var_11) {
    if (var_9 + 1 == var_10) {
      return;
    }
    var_11 = var_9[1].data_shndx;
    var_9 = var_9 + 1;
  }
  this_00 = &(this->super_Sized_relobj_file<64,var_3>).elf_file_;
  var_13 = elfcpp::Elf_file<64,var_3,_gold::var_1>::var_12(this_00,this->special_);
  if ((int)(var_13 >> 0x20) != 0) {
                    /* WARNING: Subroutine does not return */
    gold::var_14("../../gold/powerpc.cc",0x919,"do_read_relocs");
  }
  if ((type_3)var_13 == 0) {
    return;
  }
  var_11 = (type_3)var_13 >> 4;
  var_17 = (this->opd_ent_).
            super__Vector_base<(anonymous_namespace)::var_2<64,var_3>::var_4,_std::allocator<(anonymous_namespace)::var_2<64,var_3>::var_4>var_5>
            ._M_impl._M_start;
  var_18 = (this->opd_ent_).
           super__Vector_base<(anonymous_namespace)::var_2<64,var_3>::var_4,_std::allocator<(anonymous_namespace)::var_2<64,var_3>::var_4>var_5>
           ._M_impl._M_finish;
  var_15 = (int)var_18 - (int)var_17 >> 4;
  if (var_15 < var_11) {
    std::
    vector<(anonymous_namespace)::var_2<64,var_3>::var_4,_std::allocator<(anonymous_namespace)::var_2<64,var_3>::var_4>var_5>
    ::var_16(in_stack_ffffff94,in_stack_ffffff98);
  }
  else if ((var_11 < var_15) && (var_17 = var_17 + var_11, var_18 != var_17)) {
    (this->opd_ent_).
    super__Vector_base<(anonymous_namespace)::var_2<64,var_3>::var_4,_std::allocator<(anonymous_namespace)::var_2<64,var_3>::var_4>var_5>
    ._M_impl._M_finish = var_17;
  }
  bVar11 = true;
  var_21 = rd->local_symbols->data_;
  var_34 = (type_3 *)var_9->contents->data_;
  var_11 = var_9->reloc_count;
  if (var_11 != 0) {
    var_32 = 0;
    var_15 = 0;
    var_31 = 0;
    var_30 = 0;
    do {
      while( true ) {
        var_19 = var_34[2];
        var_20 = var_34[3];
        if (var_19 != 0x26) break;
        if (var_20 < (this->super_Sized_relobj_file<64,var_3>).local_symbol_count_) {
          var_19 = (type_3)*(type_8 *)(var_21 + var_20 * 0x18 + 6);
          if (var_19 < 0xff00) {
            is_ordinary = true;
          }
          else if (var_19 == 0xffff) {
            var_22 = (this->super_Sized_relobj_file<64,var_3>).super_Sized_relobj<64,var_3>.
                      super_Relobj.super_Object.xindex_;
            if (var_22 == (type_4 *)0x0) {
              var_22 = gold::var_6<64,var_3>::var_23
                                  (&this->super_Sized_relobj_file<64,var_3>);
              (this->super_Sized_relobj_file<64,var_3>).super_Sized_relobj<64,var_3>.super_Relobj.
              super_Object.xindex_ = var_22;
            }
            var_19 = gold::Xindex::var_24(var_22,(var_1 *)this,var_20);
            is_ordinary = true;
          }
          else {
            is_ordinary = false;
          }
          value._0_4_ = *(type_3 *)(var_21 + var_20 * 0x18 + 8);
          value._4_4_ = *(int *)(var_21 + var_20 * 0x18 + 0xc);
        }
        else {
          var_19 = gold::var_6<64,var_3>::var_25
                             (&this->super_Sized_relobj_file<64,var_3>,var_20,&value,&is_ordinary);
        }
        var_20 = var_34[1];
        uVar7 = var_34[4];
        var_29 = var_34[4];
        var_27 = var_34[5];
        var_17 = (this->opd_ent_).
                  super__Vector_base<(anonymous_namespace)::var_2<64,var_3>::var_4,_std::allocator<(anonymous_namespace)::var_2<64,var_3>::var_4>var_5>
                  ._M_impl._M_start;
        var_26 = *var_34;
        if ((type_3)((int)(this->opd_ent_).
                        super__Vector_base<(anonymous_namespace)::var_2<64,var_3>::var_4,_std::allocator<(anonymous_namespace)::var_2<64,var_3>::var_4>var_5>
                        ._M_impl._M_finish - (int)var_17 >> 4) <= var_26 >> 4) {
                    /* WARNING: Subroutine does not return */
          gold::var_14("../../gold/powerpc.cc",0xd0,"set_opd_ent");
        }
        var_17 = var_17 + (var_26 >> 4);
        var_17->shndx = var_19;
        *(type_3 *)((int)&var_17->off + 4) = value._4_4_ + var_27 + (type_3)var_28((type_3)value,uVar7);
        *(type_3 *)&var_17->off = (type_3)value + var_29;
        var_19 = var_26;
        var_29 = var_20;
        uVar7 = var_26;
        if ((var_15 != 2) &&
           (var_19 = var_31, var_29 = var_30, uVar7 = var_32,
           var_20 != var_30 || var_26 != var_31)) {
          bVar11 = false;
        }
        var_32 = uVar7;
        var_30 = var_29;
        var_31 = var_19;
        var_33 = var_28(var_31,var_32);
        var_31 = var_31 + var_32;
        var_30 = var_30 + var_33;
LAB_00100e3b:
        var_15 = var_15 + 1;
        var_34 = var_34 + 6;
        var_33 = bVar11;
        if (var_11 == var_15) goto LAB_00100e9d;
      }
      if (var_19 == 0x33) {
        if (var_34[1] != (var_30 + (0xfffffff7 < var_31)) - (type_3)(var_31 + 8 < var_32) ||
            *var_34 != (var_31 + 8) - var_32) {
          bVar11 = false;
        }
        goto LAB_00100e3b;
      }
      var_15 = var_15 + 1;
      var_34 = var_34 + 6;
      pcVar6 = (this->super_Sized_relobj_file<64,var_3>).super_Sized_relobj<64,var_3>.super_Relobj
               .super_Object.name_._M_dataplus._M_p;
      pcVar14 = (char *)var_35("%s: unexpected reloc type %u in .opd section");
      gold::var_36(pcVar14,pcVar6,var_19);
      bVar11 = false;
      var_33 = false;
    } while (var_11 != var_15);
LAB_00100e9d:
    bVar11 = var_33;
    if (2 < var_11) goto LAB_00100ea8;
  }
  var_13 = elfcpp::Elf_file<64,var_3,_gold::var_1>::var_12(this_00,this->special_);
  var_32 = (type_3)var_13;
LAB_00100ea8:
  if (((var_32 & 0xfffffff7) == 0x10) && (bVar11)) {
    return;
  }
  pcVar6 = (this->super_Sized_relobj_file<64,var_3>).super_Sized_relobj<64,var_3>.super_Relobj.
           super_Object.name_._M_dataplus._M_p;
  pcVar14 = (char *)var_35("%s: .opd is not a regular array of opd entries");
  gold::var_36(pcVar14,pcVar6);
  return;
}


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

/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

void MASKED(int param_1,int *param_2)

{
  int iVar1;
  uint uVar2;
  undefined4 uVar3;
  uint uVar4;
  uint uVar6;
  uint uVar7;
  bool bVar8;
  uint uVar9;
  int iVar10;
  undefined4 uVar11;
  uint uVar12;
  int iVar13;
  uint uVar14;
  uint *puVar15;
  uint *puVar16;
  bool bVar17;
  undefined8 uVar18;
  uint local_54;
  uint local_50;
  uint local_4c;
  undefined1 local_25;
  uint local_24;
  int local_20;
  uint uVar5;
  
  FUN_0031f3a0(param_1,param_2);
  iVar1 = *param_2;
  if (iVar1 == param_2[1]) {
    return;
  }
  iVar10 = *(int *)(iVar1 + 4);
  while (*(int *)(param_1 + 0x140) != iVar10) {
    if (iVar1 + 0x1c == param_2[1]) {
      return;
    }
    iVar10 = *(int *)(iVar1 + 0x20);
    iVar1 = iVar1 + 0x1c;
  }
  uVar18 = FUN_00108170(param_1 + 0x90,*(int *)(param_1 + 0x140));
  if ((int)((ulonglong)uVar18 >> 0x20) != 0) {
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/powerpc.cc",0x919,"do_read_relocs",param_2);
  }
  if ((uint)uVar18 == 0) {
    return;
  }
  uVar9 = (uint)uVar18 >> 4;
  uVar14 = *(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4;
  if (uVar14 < uVar9) {
    FUN_000b2870();
  }
  else if ((uVar9 < uVar14) &&
          (iVar10 = uVar9 * 0x10 + *(int *)(param_1 + 0x168), *(int *)(param_1 + 0x16c) != iVar10))
  {
    *(int *)(param_1 + 0x16c) = iVar10;
  }
  bVar8 = true;
  iVar10 = *(int *)(param_2[3] + 8);
  puVar15 = *(uint **)(*(int *)(iVar1 + 8) + 8);
  uVar9 = *(uint *)(iVar1 + 0x10);
  if (uVar9 != 0) {
    local_4c = 0;
    uVar14 = 0;
    local_54 = 0;
    local_50 = 0;
    do {
      while( true ) {
        uVar12 = puVar15[2];
        uVar2 = puVar15[3];
        if (uVar12 != 0x26) break;
        if (uVar2 < *(uint *)(param_1 + 0xb0)) {
          iVar1 = iVar10 + uVar2 * 0x18;
          uVar12 = (uint)*(ushort *)(iVar1 + 6);
          if (uVar12 < 0xff00) {
            local_25 = 1;
          }
          else if (uVar12 == 0xffff) {
            iVar13 = *(int *)(param_1 + 0x30);
            if (iVar13 == 0) {
              iVar13 = FUN_0029c0e0(param_1);
              *(int *)(param_1 + 0x30) = iVar13;
            }
            uVar12 = FUN_0028b7d0(iVar13,param_1,uVar2);
            local_25 = 1;
          }
          else {
            local_25 = 0;
          }
          local_24 = *(uint *)(iVar1 + 8);
          local_20 = *(int *)(iVar1 + 0xc);
        }
        else {
          uVar12 = FUN_002986d0(param_1,uVar2,&local_24,&local_25);
        }
        uVar2 = puVar15[1];
        uVar4 = puVar15[4];
        uVar5 = puVar15[4];
        uVar6 = puVar15[5];
        uVar7 = *puVar15;
        if ((uint)(*(int *)(param_1 + 0x16c) - *(int *)(param_1 + 0x168) >> 4) <= uVar7 >> 4) {
                    /* WARNING: Subroutine does not return */
          FUN_002446e0("../../gold/powerpc.cc",0xd0,"set_opd_ent",uVar7);
        }
        puVar16 = (uint *)(*(int *)(param_1 + 0x168) + (uVar7 >> 4) * 0x10);
        *puVar16 = uVar12;
        puVar16[3] = local_20 + uVar6 + (uint)CARRY4(local_24,uVar4);
        puVar16[2] = local_24 + uVar5;
        uVar12 = uVar7;
        uVar5 = uVar2;
        uVar4 = uVar7;
        if ((uVar14 != 2) &&
           (uVar12 = local_54, uVar5 = local_50, uVar4 = local_4c,
           uVar2 != local_50 || uVar7 != local_54)) {
          bVar8 = false;
        }
        local_4c = uVar4;
        local_50 = uVar5;
        local_54 = uVar12;
        bVar17 = CARRY4(local_54,local_4c);
        local_54 = local_54 + local_4c;
        local_50 = local_50 + bVar17;
LAB_00100e3b:
        uVar14 = uVar14 + 1;
        puVar15 = puVar15 + 6;
        bVar17 = bVar8;
        if (uVar9 == uVar14) goto LAB_00100e9d;
      }
      if (uVar12 == 0x33) {
        if (puVar15[1] != (local_50 + (0xfffffff7 < local_54)) - (uint)(local_54 + 8 < local_4c) ||
            *puVar15 != (local_54 + 8) - local_4c) {
          bVar8 = false;
        }
        goto LAB_00100e3b;
      }
      uVar14 = uVar14 + 1;
      puVar15 = puVar15 + 6;
      uVar3 = *(undefined4 *)(param_1 + 4);
      uVar11 = gettext("%s: unexpected reloc type %u in .opd section");
      FUN_0023b840(uVar11,uVar3,uVar12);
      bVar8 = false;
      bVar17 = false;
    } while (uVar9 != uVar14);
LAB_00100e9d:
    bVar8 = bVar17;
    if (2 < uVar9) goto LAB_00100ea8;
  }
  local_4c = FUN_00108170(param_1 + 0x90,*(undefined4 *)(param_1 + 0x140));
LAB_00100ea8:
  if (((local_4c & 0xfffffff7) == 0x10) && (bVar8)) {
    return;
  }
  uVar3 = *(undefined4 *)(param_1 + 4);
  uVar11 = gettext("%s: .opd is not a regular array of opd entries");
  FUN_0023b840(uVar11,uVar3);
  return;
}

