
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* DWARF original prototype: bool find_starting_output_address(Output_section * this, Relobj *
   object, uint shndx, uint64_t * paddr) */

bool __thiscall
gold::Output_section::find_starting_output_address
          (Output_section *this,Relobj *object,uint shndx,uint64_t *paddr)

{
  bool bVar1;
  Relobj *pRVar2;
  Relobj *pRVar3;
  int iVar4;
  char *pcVar5;
  uint uVar6;
  char *pcVar7;
  pointer pIVar8;
  Relobj *pRVar9;
  uint uVar10;
  Input_section_sort_entry *this_00;
  char *pcVar11;
  uint uVar12;
  Output_file *of;
  Input_section *pIVar13;
  Input_file *__s;
  int iVar14;
  char **__s_00;
  char *pcVar15;
  Relobj *this_01;
  int iVar16;
  uint uVar17;
  Input_section *this_02;
  pointer pIVar18;
  pointer pIVar19;
  char **ppcVar20;
  Relobj *pRVar21;
  int iVar22;
  int iVar23;
  int iVar24;
  _func_int_varargs *p_Var25;
  undefined *puVar26;
  code *pcVar27;
  uint uVar28;
  code *pcVar29;
  char *apcStack_98 [2];
  Relobj *pRStack_90;
  uint uStack_8c;
  Input_section *pIStack_88;
  Relobj *pRStack_84;
  Relobj *pRStack_80;
  code *pcStack_7c;
  undefined *puStack_68;
  
  pRVar2 = (Relobj *)(*(code *)PTR_find_merge_section_004c3f38)(object,shndx);
  puVar26 = PTR_do_addralign_004c34e4;
  if (pRVar2 == (Relobj *)0x0) {
    return false;
  }
  iVar24 = -(*(int *)&(this->super_Output_data).field_0x20 >> 0x1f);
  if (iVar24 != 0) {
    uVar28 = (uint)this->first_input_offset_;
    uVar17 = uVar28 + (int)(this->super_Output_data).address_;
    pIVar18 = (this->input_sections_).
              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
              ._M_impl._M_start;
    pIVar8 = (this->input_sections_).
             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
             ._M_impl._M_finish;
    uVar28 = (uint)(uVar17 < uVar28) +
             *(int *)&this->first_input_offset_ + *(int *)&(this->super_Output_data).address_;
    if (pIVar8 == pIVar18) {
      return false;
    }
    do {
      while( true ) {
        uVar6 = pIVar18->p2align_;
        uVar12 = pIVar18->shndx_ + 4;
        if (uVar6 != 0) break;
        of = (Output_file *)(uint)(uVar12 < 4);
        uVar12 = uVar17;
        if (of != (Output_file *)0x0) {
          pRVar9 = (pIVar18->u2_).object;
          p_Var25 = (pRVar9->super_Object)._vptr_Object[3];
          if (p_Var25 != (_func_int_varargs *)puVar26) {
            uVar10 = (*p_Var25)();
            uVar12 = pIVar18->shndx_ + 4;
            goto LAB_0021540c;
          }
          uVar10 = (pRVar9->super_Object).shnum_;
          uVar6 = *(uint *)&(pRVar9->super_Object).field_0x2c;
          if (uVar10 != 0 || uVar6 != 0) goto LAB_00215368;
          goto LAB_002153a8;
        }
LAB_00215424:
        pIVar19 = pIVar18 + 1;
        uVar17 = uVar12 + *(int *)((int)&pIVar18->u1_ + 4);
        uVar28 = (uint)(uVar17 < uVar12) + uVar28 + *(int *)&pIVar18->u1_;
        pIVar18 = pIVar19;
        if (pIVar8 == pIVar19) {
          return false;
        }
      }
      uVar10 = uVar6 - 1;
      uVar6 = 1 << (uVar10 & 0x1f);
      if ((uVar10 & 0x20) == 0) {
        uVar10 = 0;
      }
      else {
        uVar10 = uVar6;
        uVar6 = 0;
      }
LAB_0021540c:
      of = (Output_file *)(uint)(uVar12 < 4);
      if (uVar10 != 0 || uVar6 != 0) {
LAB_00215368:
        uVar12 = uVar17 - 1;
        bVar1 = uVar12 < uVar17;
        uVar17 = uVar12 + uVar6 & -uVar6;
        uVar28 = (uint)(uVar12 + uVar6 < uVar12) + (uint)bVar1 + (uVar28 - 1) + uVar10 &
                 -(uint)(-uVar6 != 0) - uVar10;
      }
      if (of == (Output_file *)0x0) {
        pIVar8 = (this->input_sections_).
                 super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
                 ._M_impl._M_finish;
        uVar12 = uVar17;
        goto LAB_00215424;
      }
      pRVar9 = (pIVar18->u2_).object;
      uVar12 = uVar17;
LAB_002153a8:
      if (pRVar2 == pRVar9) {
        *(uint *)paddr = uVar28;
        *(uint *)((int)paddr + 4) = uVar12;
        return SUB41(iVar24,0);
      }
      pIVar18 = pIVar18 + 1;
      if (-1 < *(int *)&(pRVar9->super_Object).offset_ << 1) {
                    /* WARNING: Subroutine does not return */
        Output_data_const_buffer::do_write((Output_data_const_buffer *)pRVar9,of);
      }
      pIVar8 = (this->input_sections_).
               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
               ._M_impl._M_finish;
      uVar17 = uVar12 + *(int *)((int)&(pRVar9->super_Object).name_.field_2 + 8);
      uVar28 = (uint)(uVar17 < uVar12) +
               uVar28 + *(int *)((int)&(pRVar9->super_Object).name_.field_2 + 4);
      if (pIVar8 == pIVar18) {
        return false;
      }
    } while( true );
  }
  pIVar13 = (Input_section *)&DAT_000000c5;
  this_01 = (Relobj *)(PTR_s_in_a_linker_script_004c191c + -0x2a40);
  puVar26 = PTR_do_gold_unreachable_004c1a30;
  (*(code *)PTR_do_gold_unreachable_004c1a30)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574);
  puStack_68 = puVar26 + 0x2b3d44;
  pRVar9 = this_01;
  if (pIVar13->shndx_ == 0xffffffff) {
    pRVar21 = *(Relobj **)(puVar26 + 0x2aea40);
    if ((this_01->super_Object)._vptr_Object != (_func_int_varargs **)0xffffffff) {
      pRVar2 = Input_section::relobj((Input_section *)this_01);
      iVar4 = (**(code **)(puStack_68 + -0x70ac))(pRVar2,*(int *)(puStack_68 + -0x77f0) + 0x35d0);
LAB_00215650:
      if (iVar4 != 0) {
        return false;
      }
      pRVar2 = *(Relobj **)(puStack_68 + -0x77f0);
      if (pIVar13->shndx_ == 0xffffffff) {
        if ((this_01->super_Object)._vptr_Object != (_func_int_varargs **)0xffffffff) {
          pRVar9 = Input_section::relobj((Input_section *)this_01);
          iVar24 = (**(code **)(puStack_68 + -0x70ac))
                             (pRVar9,*(int *)(puStack_68 + -0x77f0) + 0x35dc);
          goto LAB_00215740;
        }
      }
      else {
LAB_00215690:
        pRVar3 = Input_section::relobj(pIVar13);
        iVar4 = (**(code **)(puStack_68 + -0x70ac))
                          (pRVar3,&pRVar2[0x84].output_sections_.
                                   super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>
                                   ._M_impl._M_finish);
        if ((this_01->super_Object)._vptr_Object == (_func_int_varargs **)0xffffffff) {
          if (iVar4 != 0) {
            return false;
          }
        }
        else {
          pRVar3 = Input_section::relobj((Input_section *)this_01);
          __s = (Input_file *)
                &pRVar2[0x84].output_sections_.
                 super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.
                 _M_impl._M_finish;
          iVar24 = (**(code **)(puStack_68 + -0x70ac))();
          if (iVar4 != 0) {
            if (iVar24 == 0) {
              return false;
            }
            goto LAB_002155ac;
          }
LAB_00215740:
          if (iVar24 != 0) {
            return true;
          }
        }
      }
    }
    pcVar27 = *(code **)(puStack_68 + -0x6ae0);
LAB_0021575c:
    iVar24 = (*pcVar27)(&pIVar13[1].p2align_,0x2e,1);
    __s = (Input_file *)0x2e;
    pRVar3 = (Relobj *)&(this_01->super_Object).input_file_;
    iVar4 = (**(code **)(puStack_68 + -0x6ae0))(pRVar3,0x2e,1);
    if (iVar24 == -1) {
      if (iVar4 != -1) {
        return true;
      }
    }
    else if (iVar4 == -1) {
      return false;
    }
    uVar17 = *(uint *)((int)&(this_01->super_Object).name_.field_2 + 0xc);
    uVar28 = pIVar13->section_order_index_;
    puVar26 = puStack_68;
    if (uVar17 != 0xffffffff) {
      if (uVar28 != 0) {
        uVar6 = *(uint *)((int)&(this_01->super_Object).name_.field_2 + 8);
        pRVar3 = (Relobj *)(uint)(uVar28 < uVar6);
        if (uVar6 != 0) {
          if (pRVar3 != (Relobj *)0x0) {
            return true;
          }
          if (uVar6 < uVar28) {
            return false;
          }
        }
      }
      pRVar2 = *(Relobj **)&pIVar13[1].u1_;
      pRVar21 = *(Relobj **)&(this_01->super_Object).offset_;
      pRVar9 = pRVar21;
      if (pRVar2 <= pRVar21) {
        pRVar9 = pRVar2;
      }
      if (pRVar9 != (Relobj *)0x0) {
        __s = (this_01->super_Object).input_file_;
        pRVar3 = (Relobj *)pIVar13[1].p2align_;
        iVar24 = (**(code **)(puStack_68 + -0x354c))();
        if (iVar24 != 0) {
          return SUB41((uint)iVar24 >> 0x1f,0);
        }
      }
      if ((int)pRVar2 - (int)pRVar21 != 0) {
        return SUB41((uint)((int)pRVar2 - (int)pRVar21) >> 0x1f,0);
      }
      uVar28 = pIVar13[1].shndx_;
      bVar1 = uVar28 < uVar17;
joined_r0x002155bc:
      if (uVar28 != 0xffffffff) {
        return bVar1;
      }
      goto LAB_00215844;
    }
  }
  else {
    pRVar21 = *(Relobj **)(puVar26 + 0x2aea40);
    pRVar2 = *(Relobj **)(puVar26 + 0x2ac554);
    pRVar3 = Input_section::relobj(pIVar13);
    iVar24 = (**(code **)(puStack_68 + -0x70ac))(pRVar3,&pRVar2[0x84].super_Object.xindex_);
    if ((this_01->super_Object)._vptr_Object == (_func_int_varargs **)0xffffffff) {
      if (iVar24 != 0) {
        return true;
      }
      pcVar27 = *(code **)(puStack_68 + -0x6ae0);
      if (pIVar13->shndx_ != 0xffffffff) {
        pRVar2 = *(Relobj **)(puStack_68 + -0x77f0);
        goto LAB_00215690;
      }
      goto LAB_0021575c;
    }
    pRVar3 = Input_section::relobj((Input_section *)this_01);
    __s = (Input_file *)&pRVar2[0x84].super_Object.xindex_;
    iVar4 = (**(code **)(puStack_68 + -0x70ac))();
    if (iVar24 == 0) goto LAB_00215650;
    if (iVar4 == 0) {
      return true;
    }
LAB_002155ac:
    uVar17 = 0xffffffff;
    if (pIVar13[1].shndx_ != 0xffffffff) {
      uVar28 = *(uint *)((int)&(this_01->super_Object).name_.field_2 + 0xc);
      bVar1 = pIVar13[1].shndx_ < uVar28;
      goto joined_r0x002155bc;
    }
LAB_00215844:
    puVar26 = puStack_68;
    Input_section_sort_entry::index((Input_section_sort_entry *)pRVar3,(char *)__s,(int)pRVar9);
  }
  iVar14 = 0xcf5;
  pcVar27 = *(code **)(puVar26 + -0x7810);
  iVar16 = *(int *)(puVar26 + -0x7924) + -0x30e8;
  pcVar29 = Input_section_sort_init_fini_compare::operator();
  (*pcVar27)(*(int *)(puVar26 + -0x7924) + -0x48b4);
  iVar22 = iVar14 + 0x1c;
  iVar23 = iVar16 + 0x1c;
  pRStack_90 = this_01;
  uStack_8c = uVar17;
  pIStack_88 = pIVar13;
  pRStack_84 = pRVar21;
  pRStack_80 = pRVar2;
  pcStack_7c = pcVar29;
  iVar24 = (**(code **)(pcVar27 + 0x2acef4))(iVar22,0x2e,1);
  iVar4 = (**(code **)(pcVar27 + 0x2acef4))(iVar23,0x2e,1);
  if (iVar24 == -1) {
    if (iVar4 != -1) {
      return false;
    }
    iVar4 = *(int *)(pcVar27 + 0x2ac1e4);
    iVar24 = (**(code **)(pcVar27 + 0x2acf7c))(iVar22,iVar4 + 0x3598);
    if ((iVar24 == 0) ||
       (iVar24 = (**(code **)(pcVar27 + 0x2acf7c))(iVar22,*(int *)(pcVar27 + 0x2ac1e4) + 0x35b8),
       iVar24 == 0)) {
      if (*(int *)(iVar14 + 0x20) != *(int *)(iVar16 + 0x20)) {
        return false;
      }
      if ((*(int *)(iVar14 + 0x20) != 0) &&
         (iVar24 = (**(code **)(pcVar27 + 0x2b0488))
                             (*(undefined4 *)(iVar14 + 0x1c),*(undefined4 *)(iVar16 + 0x1c)),
         iVar24 != 0)) {
        return false;
      }
      pcVar29 = *(code **)(pcVar27 + 0x2acf7c);
    }
    else {
      pcVar29 = *(code **)(pcVar27 + 0x2acf7c);
    }
    __s_00 = (char **)(iVar4 + 0x3598);
    iVar24 = (*pcVar29)(iVar23);
    if (iVar24 == 0) {
      iVar24 = *(int *)(iVar16 + 0x20);
    }
    else {
      __s_00 = (char **)(*(int *)(pcVar27 + 0x2ac1e4) + 0x35b8);
      iVar24 = (**(code **)(pcVar27 + 0x2acf7c))(iVar23);
      if (iVar24 != 0) goto LAB_00215a54;
      iVar24 = *(int *)(iVar16 + 0x20);
    }
    if (iVar24 == *(int *)(iVar14 + 0x20)) {
      if (iVar24 != 0) {
        __s_00 = *(char ***)(iVar14 + 0x1c);
        iVar24 = (**(code **)(pcVar27 + 0x2b0488))(*(undefined4 *)(iVar16 + 0x1c));
        if (iVar24 != 0) {
          return true;
        }
      }
LAB_00215a54:
      while( true ) {
        uVar28 = *(uint *)(iVar16 + 0x18);
        uVar17 = *(uint *)(iVar14 + 0x14);
        if (uVar28 == 0xffffffff) break;
        if (uVar17 != 0) {
          uVar6 = *(uint *)(iVar16 + 0x14);
          if (uVar6 != 0) {
            if (uVar17 < uVar6) {
              return true;
            }
            if (uVar6 < uVar17) {
              return false;
            }
          }
        }
        uVar12 = *(uint *)(iVar14 + 0x20);
        uVar17 = *(uint *)(iVar16 + 0x20);
        uVar6 = uVar17;
        if (uVar12 <= uVar17) {
          uVar6 = uVar12;
        }
        if (uVar6 != 0) {
          __s_00 = *(char ***)(iVar16 + 0x1c);
          iVar24 = (**(code **)(pcVar27 + 0x2b0488))(*(undefined4 *)(iVar14 + 0x1c));
          if (iVar24 != 0) goto LAB_00215bf4;
        }
        iVar24 = uVar12 - uVar17;
        if (iVar24 != 0) {
LAB_00215bf4:
          return SUB41((uint)iVar24 >> 0x1f,0);
        }
        if (*(uint *)(iVar14 + 0x18) != 0xffffffff) {
          return *(uint *)(iVar14 + 0x18) < uVar28;
        }
        Input_section_sort_entry::index((Input_section_sort_entry *)0xffffffff,(char *)__s_00,uVar6)
        ;
LAB_00215ae8:
        iVar24 = (**(code **)(pcVar27 + 0x2b0334))(uVar28 + 7,apcStack_98,10);
        if (*apcStack_98[0] == '\0') {
          uVar28 = 0xffff - iVar24;
        }
        else {
LAB_00215994:
          uVar28 = 0;
        }
LAB_00215998:
        ppcVar20 = *(char ***)(iVar16 + 0x1c);
        iVar24 = (**(code **)(pcVar27 + 0x2b0254))(uVar17 + 0x35c0,ppcVar20,7);
        if ((iVar24 == 0) ||
           (iVar24 = (**(code **)(pcVar27 + 0x2b0254))
                               (*(int *)(pcVar27 + 0x2ac1e4) + 0x35c8,ppcVar20,7), iVar24 == 0)) {
          __s_00 = apcStack_98;
          iVar24 = (**(code **)(pcVar27 + 0x2b0334))((char *)((int)ppcVar20 + 7),__s_00,10);
          if (*apcStack_98[0] != '\0') goto LAB_00215bfc;
          uVar17 = 0xffff - iVar24;
LAB_00215a3c:
          if (uVar28 < uVar17) {
            return true;
          }
        }
        else {
          iVar24 = (**(code **)(pcVar27 + 0x2b0254))
                             (*(int *)(pcVar27 + 0x2ac1e4) + 0x4150,ppcVar20,0xc);
          if ((iVar24 == 0) ||
             (__s_00 = ppcVar20,
             iVar24 = (**(code **)(pcVar27 + 0x2b0254))
                                (*(int *)(pcVar27 + 0x2ac1e4) + 0x4160,ppcVar20,0xc), iVar24 == 0))
          {
            __s_00 = apcStack_98;
            uVar17 = (**(code **)(pcVar27 + 0x2b0334))(ppcVar20 + 3,__s_00,10);
            if (*apcStack_98[0] == '\0') goto LAB_00215a3c;
          }
LAB_00215bfc:
          uVar17 = 0;
        }
        if (uVar17 < uVar28) {
          return false;
        }
      }
      iVar24 = 0xcf5;
      pcVar29 = *(code **)(pcVar27 + 0x2ac1c4);
      iVar4 = *(int *)(pcVar27 + 0x2ac0b0) + -0x30e8;
      (*pcVar29)(*(int *)(pcVar27 + 0x2ac0b0) + -0x48b4);
      if (*(uint *)(iVar24 + 0x18) != 0xffffffff) {
        if (*(uint *)(iVar4 + 0x18) != 0xffffffff) {
          if (*(uint *)(iVar24 + 0x14) != *(uint *)(iVar4 + 0x14)) {
            return *(uint *)(iVar24 + 0x14) < *(uint *)(iVar4 + 0x14);
          }
          return *(uint *)(iVar24 + 0x18) < *(uint *)(iVar4 + 0x18);
        }
      }
      pcVar15 = (char *)0xcf5;
      pcVar27 = *(code **)(pcVar29 + 0x2abd98);
      iVar16 = *(int *)(pcVar29 + 0x2abc84) + -0x30e8;
      (*pcVar27)(*(int *)(pcVar29 + 0x2abc84) + -0x48b4);
      pcVar5 = pcVar15;
      iVar24 = iVar16;
      iVar4 = (**(code **)(pcVar27 + 0x2ae23c))(*(undefined4 *)(pcVar15 + 0x1c));
      this_00 = *(Input_section_sort_entry **)(iVar16 + 0x1c);
      iVar14 = (**(code **)(pcVar27 + 0x2ae23c))();
      if (iVar4 != iVar14) {
        if (iVar4 < 0) {
          return false;
        }
        if (-1 < iVar14) {
          return iVar4 < iVar14;
        }
        return true;
      }
      if ((*(uint *)(pcVar15 + 0x18) != 0xffffffff) && (*(uint *)(iVar16 + 0x18) != 0xffffffff)) {
        return *(uint *)(pcVar15 + 0x18) < *(uint *)(iVar16 + 0x18);
      }
      iVar4 = *(int *)(pcVar27 + 0x2ae200) + 0x3338;
      Input_section_sort_entry::index(this_00,pcVar5,iVar24);
      uVar6 = *(uint *)(pcVar5 + 0x20);
      uVar28 = *(uint *)(iVar24 + 0x20);
      uVar17 = uVar28;
      if (uVar28 < uVar6 == 0) {
        uVar17 = uVar6;
      }
      pcVar15 = pcVar5;
      uVar12 = (uint)(uVar28 < uVar6);
      if (uVar17 != 0) {
        pcVar15 = *(char **)(iVar24 + 0x1c);
        this_00 = *(Input_section_sort_entry **)(pcVar5 + 0x1c);
        iVar4 = (**(code **)(iVar4 + 0x2aff08))();
        uVar12 = uVar17;
        if (iVar4 != 0) goto LAB_00215e90;
      }
      iVar4 = uVar6 - uVar28;
      if (iVar4 != 0) {
LAB_00215e90:
        return SUB41((uint)iVar4 >> 0x1f,0);
      }
      if ((*(Input_section_sort_entry **)(pcVar5 + 0x18) != (Input_section_sort_entry *)0xffffffff)
         && (this_00 = *(Input_section_sort_entry **)(iVar24 + 0x18),
            this_00 != (Input_section_sort_entry *)0xffffffff)) {
        return *(Input_section_sort_entry **)(pcVar5 + 0x18) < this_00;
      }
      pcVar5 = Input_section_sort_entry::index(this_00,pcVar15,uVar12);
      pIVar13 = (Input_section *)this_00[2].input_section_.p2align_;
      this_02 = (Input_section *)this_00[2].input_section_.shndx_;
      if (this_02 == pIVar13) {
        return (bool)(char)pcVar5;
      }
      do {
        uVar17 = 0xfffffffc;
        if (this_02->shndx_ + 4 < 4) {
          if (this_02->shndx_ == 0xfffffffc) {
            pRVar2 = (Relobj *)(((this_02->u2_).object)->super_Object).xindex_;
            goto LAB_00215f3c;
          }
        }
        else {
          pRVar2 = Input_section::relobj(this_02);
LAB_00215f3c:
          uVar17 = Input_section::shndx(this_02);
          pcVar5 = *(char **)(pcVar15 + 8);
          pcVar11 = pcVar15 + 4;
          if (*(char **)(pcVar15 + 8) != (char *)0x0) {
            do {
              if ((*(Relobj **)(pcVar5 + 0x10) < pRVar2) ||
                 ((pRVar2 == *(Relobj **)(pcVar5 + 0x10) && (*(uint *)(pcVar5 + 0x14) < uVar17)))) {
                pcVar7 = *(char **)(pcVar5 + 0xc);
              }
              else {
                pcVar7 = *(char **)(pcVar5 + 8);
                pcVar11 = pcVar5;
              }
              pcVar5 = pcVar7;
            } while (pcVar7 != (char *)0x0);
            if ((((pcVar15 + 4 != pcVar11) && (*(Relobj **)(pcVar11 + 0x10) <= pRVar2)) &&
                ((pRVar2 != *(Relobj **)(pcVar11 + 0x10) ||
                 (uVar17 = (uint)(uVar17 < *(uint *)(pcVar11 + 0x14)), uVar17 == 0)))) &&
               (uVar17 = *(uint *)(pcVar11 + 0x18), uVar17 != 0)) {
              pIVar13 = (Input_section *)this_00[2].input_section_.p2align_;
              this_02->section_order_index_ = uVar17;
              uVar17 = *(uint *)((int)&this_00[2].section_name_.field_2 + 4) & 0xffbfffff | 0x400000
              ;
              *(uint *)((int)&this_00[2].section_name_.field_2 + 4) = uVar17;
              goto LAB_00215fdc;
            }
          }
          pIVar13 = (Input_section *)this_00[2].input_section_.p2align_;
        }
LAB_00215fdc:
        this_02 = this_02 + 1;
        if (pIVar13 == this_02) {
          return (bool)(char)uVar17;
        }
      } while( true );
    }
  }
  else {
    uVar17 = *(uint *)(pcVar27 + 0x2ac1e4);
    if (iVar4 != -1) {
      uVar28 = *(uint *)(iVar14 + 0x1c);
      iVar24 = (**(code **)(pcVar27 + 0x2b0254))(uVar17 + 0x35c0,uVar28,7);
      if (iVar24 == 0) goto LAB_00215ae8;
      iVar24 = (**(code **)(pcVar27 + 0x2b0254))(*(int *)(pcVar27 + 0x2ac1e4) + 0x35c8,uVar28,7);
      if (iVar24 == 0) goto LAB_00215ae8;
      iVar24 = (**(code **)(pcVar27 + 0x2b0254))(*(int *)(pcVar27 + 0x2ac1e4) + 0x4150,uVar28,0xc);
      if ((iVar24 != 0) &&
         (iVar24 = (**(code **)(pcVar27 + 0x2b0254))
                             (*(int *)(pcVar27 + 0x2ac1e4) + 0x4160,uVar28,0xc), iVar24 != 0))
      goto LAB_00215994;
      uVar28 = (**(code **)(pcVar27 + 0x2b0334))(uVar28 + 0xc,apcStack_98,10);
      if (*apcStack_98[0] == '\0') goto LAB_00215998;
      goto LAB_00215994;
    }
  }
  return true;
}



/* gold::Output_section::find_starting_output_address(gold::Relobj const*, unsigned int, unsigned
   long long*) const */

int __thiscall
gold::Output_section::find_starting_output_address
          (Output_section *this,Relobj *param_1,uint param_2,ulonglong *param_3)

{
  bool bVar1;
  longlong lVar2;
  undefined *puVar3;
  int *piVar4;
  uint uVar5;
  int *piVar6;
  int *piVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  int *piVar11;
  int iVar12;
  uint uVar13;
  ulonglong uVar14;
  
  piVar4 = (int *)(*(code *)PTR_find_merge_section_004c3f38)(param_1,param_2);
  puVar3 = PTR_do_addralign_004c34e4;
  if (piVar4 != (int *)0x0) {
    iVar12 = *(int *)(this + 0x20);
    if (-(iVar12 >> 0x1f) == 0) {
      iVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)
                         (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,
                          PTR_s_in_a_linker_script_004c191c + -0x2a40);
      return iVar12;
    }
    uVar10 = *(uint *)(this + 0x84) + *(int *)(this + 0xc);
    piVar11 = *(int **)(this + 0x70);
    piVar6 = *(int **)(this + 0x74);
    uVar13 = (uint)(uVar10 < *(uint *)(this + 0x84)) + *(int *)(this + 0x80) + *(int *)(this + 8);
    if (piVar6 != piVar11) {
      do {
        while( true ) {
          uVar9 = *piVar11 + 4;
          if (piVar11[1] == 0) break;
          uVar8 = piVar11[1] - 1;
          uVar5 = 1 << (uVar8 & 0x1f);
          if ((uVar8 & 0x20) == 0) {
            uVar14 = (ulonglong)uVar5;
          }
          else {
            uVar14 = (ulonglong)uVar5 << 0x20;
          }
LAB_0021540c:
          bVar1 = uVar9 < 4;
          if (uVar14 == 0) {
            if (bVar1) {
LAB_002153a4:
              piVar7 = (int *)piVar11[4];
              uVar9 = uVar10;
              goto LAB_002153a8;
            }
          }
          else {
LAB_00215368:
            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);
            uVar10 = (uint)lVar2 & -(int)uVar14;
            uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &
                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);
            if (bVar1) goto LAB_002153a4;
          }
          piVar6 = *(int **)(this + 0x74);
          uVar9 = uVar10;
LAB_00215424:
          piVar7 = piVar11 + 6;
          uVar10 = uVar9 + piVar11[3];
          uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar11[2];
          piVar11 = piVar7;
          if (piVar6 == piVar7) {
            return 0;
          }
        }
        bVar1 = uVar9 < 4;
        uVar9 = uVar10;
        if (!bVar1) goto LAB_00215424;
        piVar7 = (int *)piVar11[4];
        if (*(code **)(*piVar7 + 0xc) != (code *)puVar3) {
          uVar14 = (**(code **)(*piVar7 + 0xc))();
          uVar9 = *piVar11 + 4;
          goto LAB_0021540c;
        }
        uVar14 = *(ulonglong *)(piVar7 + 10);
        if (piVar7[10] != 0 || piVar7[0xb] != 0) goto LAB_00215368;
LAB_002153a8:
        if (piVar4 == piVar7) {
          *(uint *)param_3 = uVar13;
          *(uint *)((int)param_3 + 4) = uVar9;
          return -(iVar12 >> 0x1f);
        }
        piVar11 = piVar11 + 6;
        if (-1 < piVar7[8] << 1) {
                    /* WARNING: Subroutine does not return */
          FUN_00213098();
        }
        piVar6 = *(int **)(this + 0x74);
        uVar10 = uVar9 + piVar7[5];
        uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar7[4];
      } while (piVar6 != piVar11);
    }
  }
  return 0;
}


lui gp,0x2b
addiu gp,gp,0x3fb4
addu gp,gp,t9
addiu sp,sp,-0x40
lw t9,-0x5308(gp)
or v0,a1,zero
or a1,a2,zero
sw gp,0x10(sp)
sw s3,0x24(sp)
or s3,a0,zero
sw s1,0x1c(sp)
or a0,v0,zero
sw ra,0x3c(sp)
or s1,a3,zero
sw s8,0x38(sp)
sw s7,0x34(sp)
sw s6,0x30(sp)
sw s5,0x2c(sp)
sw s4,0x28(sp)
sw s2,0x20(sp)
jalr t9
_sw s0,0x18(sp)
beq v0,zero,0x00215448
_lw gp,0x10(sp)
lw s7,0x20(s3)
srl s7,s7,0x1f
beq s7,zero,0x002154e0
_or s4,v0,zero
lw v1,0x84(s3)
lw s0,0xc(s3)
lw v0,0x8(s3)
lw s8,0x80(s3)
addu s0,v1,s0
lw s2,0x70(s3)
lw a0,0x74(s3)
addu s8,s8,v0
sltu v0,s0,v1
beq a0,s2,0x00215448
_addu s8,v0,s8
lw s5,-0x5d5c(gp)
b 0x002153e4
_li s6,0x1
sltiu a1,a1,0x4
beq a1,zero,0x00215424
_nop
lw a0,0x10(s2)
lw v0,0x0(a0)
lw t9,0xc(v0)
bne t9,s5,0x00215480
_nop
lw v0,0x28(a0)
lw v1,0x2c(a0)
or a2,v0,v1
beq a2,zero,0x002153a8
_nop
addiu a0,s0,-0x1
addiu s8,s8,-0x1
sltu s0,a0,s0
addu s8,s0,s8
addu a2,a0,v1
subu v1,zero,v1
addu s0,s8,v0
subu v0,zero,v0
sltu s8,a2,a0
sltu a0,zero,v1
addu s8,s8,s0
subu v0,v0,a0
and s0,a2,v1
beq a1,zero,0x00215420
_and s8,s8,v0
lw a0,0x10(s2)
beq s4,a0,0x00215498
_lw ra,0x3c(sp)
lw v0,0x20(a0)
ext v0,v0,0x1e,0x1
beq v0,zero,0x002154d0
_addiu s2,s2,0x18
lw v0,0x14(a0)
lw v1,0x10(a0)
lw a0,0x74(s3)
addu v0,s0,v0
addu s8,s8,v1
sltu s0,v0,s0
addu s8,s0,s8
beq a0,s2,0x0021544c
_or s0,v0,zero
lw a1,0x0(s2)
lw v1,0x4(s2)
beq v1,zero,0x00215334
_addiu a1,a1,0x4
addiu a0,v1,-0x1
sllv v1,s6,a0
andi a0,a0,0x20
or v0,v1,zero
movn v1,zero,a0
movz v0,zero,a0
or a0,v0,v1
bne a0,zero,0x00215368
_sltiu a1,a1,0x4
bne a1,zero,0x002153a4
_nop
lw a0,0x74(s3)
lw v0,0xc(s2)
addiu s2,s2,0x18
lw v1,-0x10(s2)
addu v0,s0,v0
addu s8,s8,v1
sltu s0,v0,s0
addu s8,s0,s8
bne a0,s2,0x002153e4
_or s0,v0,zero
lw ra,0x3c(sp)
or s7,zero,zero
lw s8,0x38(sp)
or v0,s7,zero
lw s6,0x30(sp)
lw s7,0x34(sp)
lw s5,0x2c(sp)
lw s4,0x28(sp)
lw s3,0x24(sp)
lw s2,0x20(sp)
lw s1,0x1c(sp)
lw s0,0x18(sp)
jr ra
_addiu sp,sp,0x40
jalr t9
_nop
lw a1,0x0(s2)
lw gp,0x10(sp)
b 0x0021540c
_addiu a1,a1,0x4
or v0,s7,zero
lw s7,0x34(sp)
lw s6,0x30(sp)
lw s5,0x2c(sp)
lw s4,0x28(sp)
lw s3,0x24(sp)
lw s2,0x20(sp)
sw s8,0x0(s1)
sw s0,0x4(s1)
lw s8,0x38(sp)
lw s1,0x1c(sp)
lw s0,0x18(sp)
jr ra
_addiu sp,sp,0x40
lw t9,-0x533c(gp)
addiu t9,t9,0x3098
bal 0x00213098
_nop
lw a2,-0x7924(gp)
li a1,0xc5
lw a0,-0x7fc4(gp)
lw t9,-0x7810(gp)
addiu a2,a2,-0x2a40
jalr t9
_addiu a0,a0,0x3574
(translation_unit "/* gold::Output_section::find_starting_output_address(gold::Relobj const*, unsigned int, unsigned\n   long long*) const */\n\nint __thiscall\ngold::Output_section::find_starting_output_address\n          (Output_section *this,Relobj *param_1,uint param_2,ulonglong *param_3)\n\n{\n  bool bVar1;\n  longlong lVar2;\n  undefined *puVar3;\n  int *piVar4;\n  uint uVar5;\n  int *piVar6;\n  int *piVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  int *piVar11;\n  int iVar12;\n  uint uVar13;\n  ulonglong uVar14;\n  \n  piVar4 = (int *)(*(code *)PTR_find_merge_section_004c3f38)(param_1,param_2);\n  puVar3 = PTR_do_addralign_004c34e4;\n  if (piVar4 != (int *)0x0) {\n    iVar12 = *(int *)(this + 0x20);\n    if (-(iVar12 >> 0x1f) == 0) {\n      iVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n                          PTR_s_in_a_linker_script_004c191c + -0x2a40);\n      return iVar12;\n    }\n    uVar10 = *(uint *)(this + 0x84) + *(int *)(this + 0xc);\n    piVar11 = *(int **)(this + 0x70);\n    piVar6 = *(int **)(this + 0x74);\n    uVar13 = (uint)(uVar10 < *(uint *)(this + 0x84)) + *(int *)(this + 0x80) + *(int *)(this + 8);\n    if (piVar6 != piVar11) {\n      do {\n        while( true ) {\n          uVar9 = *piVar11 + 4;\n          if (piVar11[1] == 0) break;\n          uVar8 = piVar11[1] - 1;\n          uVar5 = 1 << (uVar8 & 0x1f);\n          if ((uVar8 & 0x20) == 0) {\n            uVar14 = (ulonglong)uVar5;\n          }\n          else {\n            uVar14 = (ulonglong)uVar5 << 0x20;\n          }\nLAB_0021540c:\n          bVar1 = uVar9 < 4;\n          if (uVar14 == 0) {\n            if (bVar1) {\nLAB_002153a4:\n              piVar7 = (int *)piVar11[4];\n              uVar9 = uVar10;\n              goto LAB_002153a8;\n            }\n          }\n          else {\nLAB_00215368:\n            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);\n            uVar10 = (uint)lVar2 & -(int)uVar14;\n            uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);\n            if (bVar1) goto LAB_002153a4;\n          }\n          piVar6 = *(int **)(this + 0x74);\n          uVar9 = uVar10;\nLAB_00215424:\n          piVar7 = piVar11 + 6;\n          uVar10 = uVar9 + piVar11[3];\n          uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar11[2];\n          piVar11 = piVar7;\n          if (piVar6 == piVar7) {\n            return 0;\n          }\n        }\n        bVar1 = uVar9 < 4;\n        uVar9 = uVar10;\n        if (!bVar1) goto LAB_00215424;\n        piVar7 = (int *)piVar11[4];\n        if (*(code **)(*piVar7 + 0xc) != (code *)puVar3) {\n          uVar14 = (**(code **)(*piVar7 + 0xc))();\n          uVar9 = *piVar11 + 4;\n          goto LAB_0021540c;\n        }\n        uVar14 = *(ulonglong *)(piVar7 + 10);\n        if (piVar7[10] != 0 || piVar7[0xb] != 0) goto LAB_00215368;\nLAB_002153a8:\n        if (piVar4 == piVar7) {\n          *(uint *)param_3 = uVar13;\n          *(uint *)((int)param_3 + 4) = uVar9;\n          return -(iVar12 >> 0x1f);\n        }\n        piVar11 = piVar11 + 6;\n        if (-1 < piVar7[8] << 1) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00213098();\n        }\n        piVar6 = *(int **)(this + 0x74);\n        uVar10 = uVar9 + piVar7[5];\n        uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar7[4];\n      } while (piVar6 != piVar11);\n    }\n  }\n  return 0;\n}\n\n" comment (function_definition "int __thiscall\ngold::Output_section::find_starting_output_address\n          (Output_section *this,Relobj *param_1,uint param_2,ulonglong *param_3)\n\n{\n  bool bVar1;\n  longlong lVar2;\n  undefined *puVar3;\n  int *piVar4;\n  uint uVar5;\n  int *piVar6;\n  int *piVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  int *piVar11;\n  int iVar12;\n  uint uVar13;\n  ulonglong uVar14;\n  \n  piVar4 = (int *)(*(code *)PTR_find_merge_section_004c3f38)(param_1,param_2);\n  puVar3 = PTR_do_addralign_004c34e4;\n  if (piVar4 != (int *)0x0) {\n    iVar12 = *(int *)(this + 0x20);\n    if (-(iVar12 >> 0x1f) == 0) {\n      iVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n                          PTR_s_in_a_linker_script_004c191c + -0x2a40);\n      return iVar12;\n    }\n    uVar10 = *(uint *)(this + 0x84) + *(int *)(this + 0xc);\n    piVar11 = *(int **)(this + 0x70);\n    piVar6 = *(int **)(this + 0x74);\n    uVar13 = (uint)(uVar10 < *(uint *)(this + 0x84)) + *(int *)(this + 0x80) + *(int *)(this + 8);\n    if (piVar6 != piVar11) {\n      do {\n        while( true ) {\n          uVar9 = *piVar11 + 4;\n          if (piVar11[1] == 0) break;\n          uVar8 = piVar11[1] - 1;\n          uVar5 = 1 << (uVar8 & 0x1f);\n          if ((uVar8 & 0x20) == 0) {\n            uVar14 = (ulonglong)uVar5;\n          }\n          else {\n            uVar14 = (ulonglong)uVar5 << 0x20;\n          }\nLAB_0021540c:\n          bVar1 = uVar9 < 4;\n          if (uVar14 == 0) {\n            if (bVar1) {\nLAB_002153a4:\n              piVar7 = (int *)piVar11[4];\n              uVar9 = uVar10;\n              goto LAB_002153a8;\n            }\n          }\n          else {\nLAB_00215368:\n            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);\n            uVar10 = (uint)lVar2 & -(int)uVar14;\n            uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);\n            if (bVar1) goto LAB_002153a4;\n          }\n          piVar6 = *(int **)(this + 0x74);\n          uVar9 = uVar10;\nLAB_00215424:\n          piVar7 = piVar11 + 6;\n          uVar10 = uVar9 + piVar11[3];\n          uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar11[2];\n          piVar11 = piVar7;\n          if (piVar6 == piVar7) {\n            return 0;\n          }\n        }\n        bVar1 = uVar9 < 4;\n        uVar9 = uVar10;\n        if (!bVar1) goto LAB_00215424;\n        piVar7 = (int *)piVar11[4];\n        if (*(code **)(*piVar7 + 0xc) != (code *)puVar3) {\n          uVar14 = (**(code **)(*piVar7 + 0xc))();\n          uVar9 = *piVar11 + 4;\n          goto LAB_0021540c;\n        }\n        uVar14 = *(ulonglong *)(piVar7 + 10);\n        if (piVar7[10] != 0 || piVar7[0xb] != 0) goto LAB_00215368;\nLAB_002153a8:\n        if (piVar4 == piVar7) {\n          *(uint *)param_3 = uVar13;\n          *(uint *)((int)param_3 + 4) = uVar9;\n          return -(iVar12 >> 0x1f);\n        }\n        piVar11 = piVar11 + 6;\n        if (-1 < piVar7[8] << 1) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00213098();\n        }\n        piVar6 = *(int **)(this + 0x74);\n        uVar10 = uVar9 + piVar7[5];\n        uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar7[4];\n      } while (piVar6 != piVar11);\n    }\n  }\n  return 0;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Output_section::" identifier : : identifier : :) (function_declarator "find_starting_output_address\n          (Output_section *this,Relobj *param_1,uint param_2,ulonglong *param_3)" identifier (parameter_list "(Output_section *this,Relobj *param_1,uint param_2,ulonglong *param_3)" ( (parameter_declaration "Output_section *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Relobj *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "ulonglong *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  longlong lVar2;\n  undefined *puVar3;\n  int *piVar4;\n  uint uVar5;\n  int *piVar6;\n  int *piVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  int *piVar11;\n  int iVar12;\n  uint uVar13;\n  ulonglong uVar14;\n  \n  piVar4 = (int *)(*(code *)PTR_find_merge_section_004c3f38)(param_1,param_2);\n  puVar3 = PTR_do_addralign_004c34e4;\n  if (piVar4 != (int *)0x0) {\n    iVar12 = *(int *)(this + 0x20);\n    if (-(iVar12 >> 0x1f) == 0) {\n      iVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n                          PTR_s_in_a_linker_script_004c191c + -0x2a40);\n      return iVar12;\n    }\n    uVar10 = *(uint *)(this + 0x84) + *(int *)(this + 0xc);\n    piVar11 = *(int **)(this + 0x70);\n    piVar6 = *(int **)(this + 0x74);\n    uVar13 = (uint)(uVar10 < *(uint *)(this + 0x84)) + *(int *)(this + 0x80) + *(int *)(this + 8);\n    if (piVar6 != piVar11) {\n      do {\n        while( true ) {\n          uVar9 = *piVar11 + 4;\n          if (piVar11[1] == 0) break;\n          uVar8 = piVar11[1] - 1;\n          uVar5 = 1 << (uVar8 & 0x1f);\n          if ((uVar8 & 0x20) == 0) {\n            uVar14 = (ulonglong)uVar5;\n          }\n          else {\n            uVar14 = (ulonglong)uVar5 << 0x20;\n          }\nLAB_0021540c:\n          bVar1 = uVar9 < 4;\n          if (uVar14 == 0) {\n            if (bVar1) {\nLAB_002153a4:\n              piVar7 = (int *)piVar11[4];\n              uVar9 = uVar10;\n              goto LAB_002153a8;\n            }\n          }\n          else {\nLAB_00215368:\n            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);\n            uVar10 = (uint)lVar2 & -(int)uVar14;\n            uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);\n            if (bVar1) goto LAB_002153a4;\n          }\n          piVar6 = *(int **)(this + 0x74);\n          uVar9 = uVar10;\nLAB_00215424:\n          piVar7 = piVar11 + 6;\n          uVar10 = uVar9 + piVar11[3];\n          uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar11[2];\n          piVar11 = piVar7;\n          if (piVar6 == piVar7) {\n            return 0;\n          }\n        }\n        bVar1 = uVar9 < 4;\n        uVar9 = uVar10;\n        if (!bVar1) goto LAB_00215424;\n        piVar7 = (int *)piVar11[4];\n        if (*(code **)(*piVar7 + 0xc) != (code *)puVar3) {\n          uVar14 = (**(code **)(*piVar7 + 0xc))();\n          uVar9 = *piVar11 + 4;\n          goto LAB_0021540c;\n        }\n        uVar14 = *(ulonglong *)(piVar7 + 10);\n        if (piVar7[10] != 0 || piVar7[0xb] != 0) goto LAB_00215368;\nLAB_002153a8:\n        if (piVar4 == piVar7) {\n          *(uint *)param_3 = uVar13;\n          *(uint *)((int)param_3 + 4) = uVar9;\n          return -(iVar12 >> 0x1f);\n        }\n        piVar11 = piVar11 + 6;\n        if (-1 < piVar7[8] << 1) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00213098();\n        }\n        piVar6 = *(int **)(this + 0x74);\n        uVar10 = uVar9 + piVar7[5];\n        uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar7[4];\n      } while (piVar6 != piVar11);\n    }\n  }\n  return 0;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "longlong lVar2;" type_identifier identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "ulonglong uVar14;" type_identifier identifier ;) (expression_statement "piVar4 = (int *)(*(code *)PTR_find_merge_section_004c3f38)(param_1,param_2);" (assignment_expression "piVar4 = (int *)(*(code *)PTR_find_merge_section_004c3f38)(param_1,param_2)" identifier = (cast_expression "(int *)(*(code *)PTR_find_merge_section_004c3f38)(param_1,param_2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_find_merge_section_004c3f38)(param_1,param_2)" (parenthesized_expression "(*(code *)PTR_find_merge_section_004c3f38)" ( (pointer_expression "*(code *)PTR_find_merge_section_004c3f38" * (cast_expression "(code *)PTR_find_merge_section_004c3f38" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_2)" ( identifier , identifier ))))) ;) (expression_statement "puVar3 = PTR_do_addralign_004c34e4;" (assignment_expression "puVar3 = PTR_do_addralign_004c34e4" identifier = identifier) ;) (if_statement "if (piVar4 != (int *)0x0) {\n    iVar12 = *(int *)(this + 0x20);\n    if (-(iVar12 >> 0x1f) == 0) {\n      iVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n                          PTR_s_in_a_linker_script_004c191c + -0x2a40);\n      return iVar12;\n    }\n    uVar10 = *(uint *)(this + 0x84) + *(int *)(this + 0xc);\n    piVar11 = *(int **)(this + 0x70);\n    piVar6 = *(int **)(this + 0x74);\n    uVar13 = (uint)(uVar10 < *(uint *)(this + 0x84)) + *(int *)(this + 0x80) + *(int *)(this + 8);\n    if (piVar6 != piVar11) {\n      do {\n        while( true ) {\n          uVar9 = *piVar11 + 4;\n          if (piVar11[1] == 0) break;\n          uVar8 = piVar11[1] - 1;\n          uVar5 = 1 << (uVar8 & 0x1f);\n          if ((uVar8 & 0x20) == 0) {\n            uVar14 = (ulonglong)uVar5;\n          }\n          else {\n            uVar14 = (ulonglong)uVar5 << 0x20;\n          }\nLAB_0021540c:\n          bVar1 = uVar9 < 4;\n          if (uVar14 == 0) {\n            if (bVar1) {\nLAB_002153a4:\n              piVar7 = (int *)piVar11[4];\n              uVar9 = uVar10;\n              goto LAB_002153a8;\n            }\n          }\n          else {\nLAB_00215368:\n            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);\n            uVar10 = (uint)lVar2 & -(int)uVar14;\n            uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);\n            if (bVar1) goto LAB_002153a4;\n          }\n          piVar6 = *(int **)(this + 0x74);\n          uVar9 = uVar10;\nLAB_00215424:\n          piVar7 = piVar11 + 6;\n          uVar10 = uVar9 + piVar11[3];\n          uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar11[2];\n          piVar11 = piVar7;\n          if (piVar6 == piVar7) {\n            return 0;\n          }\n        }\n        bVar1 = uVar9 < 4;\n        uVar9 = uVar10;\n        if (!bVar1) goto LAB_00215424;\n        piVar7 = (int *)piVar11[4];\n        if (*(code **)(*piVar7 + 0xc) != (code *)puVar3) {\n          uVar14 = (**(code **)(*piVar7 + 0xc))();\n          uVar9 = *piVar11 + 4;\n          goto LAB_0021540c;\n        }\n        uVar14 = *(ulonglong *)(piVar7 + 10);\n        if (piVar7[10] != 0 || piVar7[0xb] != 0) goto LAB_00215368;\nLAB_002153a8:\n        if (piVar4 == piVar7) {\n          *(uint *)param_3 = uVar13;\n          *(uint *)((int)param_3 + 4) = uVar9;\n          return -(iVar12 >> 0x1f);\n        }\n        piVar11 = piVar11 + 6;\n        if (-1 < piVar7[8] << 1) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00213098();\n        }\n        piVar6 = *(int **)(this + 0x74);\n        uVar10 = uVar9 + piVar7[5];\n        uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar7[4];\n      } while (piVar6 != piVar11);\n    }\n  }" if (parenthesized_expression "(piVar4 != (int *)0x0)" ( (binary_expression "piVar4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar12 = *(int *)(this + 0x20);\n    if (-(iVar12 >> 0x1f) == 0) {\n      iVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n                          PTR_s_in_a_linker_script_004c191c + -0x2a40);\n      return iVar12;\n    }\n    uVar10 = *(uint *)(this + 0x84) + *(int *)(this + 0xc);\n    piVar11 = *(int **)(this + 0x70);\n    piVar6 = *(int **)(this + 0x74);\n    uVar13 = (uint)(uVar10 < *(uint *)(this + 0x84)) + *(int *)(this + 0x80) + *(int *)(this + 8);\n    if (piVar6 != piVar11) {\n      do {\n        while( true ) {\n          uVar9 = *piVar11 + 4;\n          if (piVar11[1] == 0) break;\n          uVar8 = piVar11[1] - 1;\n          uVar5 = 1 << (uVar8 & 0x1f);\n          if ((uVar8 & 0x20) == 0) {\n            uVar14 = (ulonglong)uVar5;\n          }\n          else {\n            uVar14 = (ulonglong)uVar5 << 0x20;\n          }\nLAB_0021540c:\n          bVar1 = uVar9 < 4;\n          if (uVar14 == 0) {\n            if (bVar1) {\nLAB_002153a4:\n              piVar7 = (int *)piVar11[4];\n              uVar9 = uVar10;\n              goto LAB_002153a8;\n            }\n          }\n          else {\nLAB_00215368:\n            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);\n            uVar10 = (uint)lVar2 & -(int)uVar14;\n            uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);\n            if (bVar1) goto LAB_002153a4;\n          }\n          piVar6 = *(int **)(this + 0x74);\n          uVar9 = uVar10;\nLAB_00215424:\n          piVar7 = piVar11 + 6;\n          uVar10 = uVar9 + piVar11[3];\n          uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar11[2];\n          piVar11 = piVar7;\n          if (piVar6 == piVar7) {\n            return 0;\n          }\n        }\n        bVar1 = uVar9 < 4;\n        uVar9 = uVar10;\n        if (!bVar1) goto LAB_00215424;\n        piVar7 = (int *)piVar11[4];\n        if (*(code **)(*piVar7 + 0xc) != (code *)puVar3) {\n          uVar14 = (**(code **)(*piVar7 + 0xc))();\n          uVar9 = *piVar11 + 4;\n          goto LAB_0021540c;\n        }\n        uVar14 = *(ulonglong *)(piVar7 + 10);\n        if (piVar7[10] != 0 || piVar7[0xb] != 0) goto LAB_00215368;\nLAB_002153a8:\n        if (piVar4 == piVar7) {\n          *(uint *)param_3 = uVar13;\n          *(uint *)((int)param_3 + 4) = uVar9;\n          return -(iVar12 >> 0x1f);\n        }\n        piVar11 = piVar11 + 6;\n        if (-1 < piVar7[8] << 1) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00213098();\n        }\n        piVar6 = *(int **)(this + 0x74);\n        uVar10 = uVar9 + piVar7[5];\n        uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar7[4];\n      } while (piVar6 != piVar11);\n    }\n  }" { (expression_statement "iVar12 = *(int *)(this + 0x20);" (assignment_expression "iVar12 = *(int *)(this + 0x20)" identifier = (pointer_expression "*(int *)(this + 0x20)" * (cast_expression "(int *)(this + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x20)" ( (binary_expression "this + 0x20" identifier + number_literal) ))))) ;) (if_statement "if (-(iVar12 >> 0x1f) == 0) {\n      iVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n                          PTR_s_in_a_linker_script_004c191c + -0x2a40);\n      return iVar12;\n    }" if (parenthesized_expression "(-(iVar12 >> 0x1f) == 0)" ( (binary_expression "-(iVar12 >> 0x1f) == 0" (unary_expression "-(iVar12 >> 0x1f)" - (parenthesized_expression "(iVar12 >> 0x1f)" ( (binary_expression "iVar12 >> 0x1f" identifier >> number_literal) ))) == number_literal) )) (compound_statement "{\n      iVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n                          PTR_s_in_a_linker_script_004c191c + -0x2a40);\n      return iVar12;\n    }" { (expression_statement "iVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n                          PTR_s_in_a_linker_script_004c191c + -0x2a40);" (assignment_expression "iVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n                          PTR_s_in_a_linker_script_004c191c + -0x2a40)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n                          PTR_s_in_a_linker_script_004c191c + -0x2a40)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n                          PTR_s_in_a_linker_script_004c191c + -0x2a40)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2a40" identifier + number_literal) )))) ;) (return_statement "return iVar12;" return identifier ;) })) (expression_statement "uVar10 = *(uint *)(this + 0x84) + *(int *)(this + 0xc);" (assignment_expression "uVar10 = *(uint *)(this + 0x84) + *(int *)(this + 0xc)" identifier = (binary_expression "*(uint *)(this + 0x84) + *(int *)(this + 0xc)" (pointer_expression "*(uint *)(this + 0x84)" * (cast_expression "(uint *)(this + 0x84)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x84)" ( (binary_expression "this + 0x84" identifier + number_literal) )))) + (pointer_expression "*(int *)(this + 0xc)" * (cast_expression "(int *)(this + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0xc)" ( (binary_expression "this + 0xc" identifier + number_literal) )))))) ;) (expression_statement "piVar11 = *(int **)(this + 0x70);" (assignment_expression "piVar11 = *(int **)(this + 0x70)" identifier = (pointer_expression "*(int **)(this + 0x70)" * (cast_expression "(int **)(this + 0x70)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x70)" ( (binary_expression "this + 0x70" identifier + number_literal) ))))) ;) (expression_statement "piVar6 = *(int **)(this + 0x74);" (assignment_expression "piVar6 = *(int **)(this + 0x74)" identifier = (pointer_expression "*(int **)(this + 0x74)" * (cast_expression "(int **)(this + 0x74)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x74)" ( (binary_expression "this + 0x74" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = (uint)(uVar10 < *(uint *)(this + 0x84)) + *(int *)(this + 0x80) + *(int *)(this + 8);" (assignment_expression "uVar13 = (uint)(uVar10 < *(uint *)(this + 0x84)) + *(int *)(this + 0x80) + *(int *)(this + 8)" identifier = (binary_expression "(uint)(uVar10 < *(uint *)(this + 0x84)) + *(int *)(this + 0x80) + *(int *)(this + 8)" (binary_expression "(uint)(uVar10 < *(uint *)(this + 0x84)) + *(int *)(this + 0x80)" (call_expression "(uint)(uVar10 < *(uint *)(this + 0x84))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar10 < *(uint *)(this + 0x84))" ( (binary_expression "uVar10 < *(uint *)(this + 0x84)" identifier < (pointer_expression "*(uint *)(this + 0x84)" * (cast_expression "(uint *)(this + 0x84)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x84)" ( (binary_expression "this + 0x84" identifier + number_literal) ))))) ))) + (pointer_expression "*(int *)(this + 0x80)" * (cast_expression "(int *)(this + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x80)" ( (binary_expression "this + 0x80" identifier + number_literal) ))))) + (pointer_expression "*(int *)(this + 8)" * (cast_expression "(int *)(this + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))))) ;) (if_statement "if (piVar6 != piVar11) {\n      do {\n        while( true ) {\n          uVar9 = *piVar11 + 4;\n          if (piVar11[1] == 0) break;\n          uVar8 = piVar11[1] - 1;\n          uVar5 = 1 << (uVar8 & 0x1f);\n          if ((uVar8 & 0x20) == 0) {\n            uVar14 = (ulonglong)uVar5;\n          }\n          else {\n            uVar14 = (ulonglong)uVar5 << 0x20;\n          }\nLAB_0021540c:\n          bVar1 = uVar9 < 4;\n          if (uVar14 == 0) {\n            if (bVar1) {\nLAB_002153a4:\n              piVar7 = (int *)piVar11[4];\n              uVar9 = uVar10;\n              goto LAB_002153a8;\n            }\n          }\n          else {\nLAB_00215368:\n            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);\n            uVar10 = (uint)lVar2 & -(int)uVar14;\n            uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);\n            if (bVar1) goto LAB_002153a4;\n          }\n          piVar6 = *(int **)(this + 0x74);\n          uVar9 = uVar10;\nLAB_00215424:\n          piVar7 = piVar11 + 6;\n          uVar10 = uVar9 + piVar11[3];\n          uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar11[2];\n          piVar11 = piVar7;\n          if (piVar6 == piVar7) {\n            return 0;\n          }\n        }\n        bVar1 = uVar9 < 4;\n        uVar9 = uVar10;\n        if (!bVar1) goto LAB_00215424;\n        piVar7 = (int *)piVar11[4];\n        if (*(code **)(*piVar7 + 0xc) != (code *)puVar3) {\n          uVar14 = (**(code **)(*piVar7 + 0xc))();\n          uVar9 = *piVar11 + 4;\n          goto LAB_0021540c;\n        }\n        uVar14 = *(ulonglong *)(piVar7 + 10);\n        if (piVar7[10] != 0 || piVar7[0xb] != 0) goto LAB_00215368;\nLAB_002153a8:\n        if (piVar4 == piVar7) {\n          *(uint *)param_3 = uVar13;\n          *(uint *)((int)param_3 + 4) = uVar9;\n          return -(iVar12 >> 0x1f);\n        }\n        piVar11 = piVar11 + 6;\n        if (-1 < piVar7[8] << 1) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00213098();\n        }\n        piVar6 = *(int **)(this + 0x74);\n        uVar10 = uVar9 + piVar7[5];\n        uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar7[4];\n      } while (piVar6 != piVar11);\n    }" if (parenthesized_expression "(piVar6 != piVar11)" ( (binary_expression "piVar6 != piVar11" identifier != identifier) )) (compound_statement "{\n      do {\n        while( true ) {\n          uVar9 = *piVar11 + 4;\n          if (piVar11[1] == 0) break;\n          uVar8 = piVar11[1] - 1;\n          uVar5 = 1 << (uVar8 & 0x1f);\n          if ((uVar8 & 0x20) == 0) {\n            uVar14 = (ulonglong)uVar5;\n          }\n          else {\n            uVar14 = (ulonglong)uVar5 << 0x20;\n          }\nLAB_0021540c:\n          bVar1 = uVar9 < 4;\n          if (uVar14 == 0) {\n            if (bVar1) {\nLAB_002153a4:\n              piVar7 = (int *)piVar11[4];\n              uVar9 = uVar10;\n              goto LAB_002153a8;\n            }\n          }\n          else {\nLAB_00215368:\n            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);\n            uVar10 = (uint)lVar2 & -(int)uVar14;\n            uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);\n            if (bVar1) goto LAB_002153a4;\n          }\n          piVar6 = *(int **)(this + 0x74);\n          uVar9 = uVar10;\nLAB_00215424:\n          piVar7 = piVar11 + 6;\n          uVar10 = uVar9 + piVar11[3];\n          uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar11[2];\n          piVar11 = piVar7;\n          if (piVar6 == piVar7) {\n            return 0;\n          }\n        }\n        bVar1 = uVar9 < 4;\n        uVar9 = uVar10;\n        if (!bVar1) goto LAB_00215424;\n        piVar7 = (int *)piVar11[4];\n        if (*(code **)(*piVar7 + 0xc) != (code *)puVar3) {\n          uVar14 = (**(code **)(*piVar7 + 0xc))();\n          uVar9 = *piVar11 + 4;\n          goto LAB_0021540c;\n        }\n        uVar14 = *(ulonglong *)(piVar7 + 10);\n        if (piVar7[10] != 0 || piVar7[0xb] != 0) goto LAB_00215368;\nLAB_002153a8:\n        if (piVar4 == piVar7) {\n          *(uint *)param_3 = uVar13;\n          *(uint *)((int)param_3 + 4) = uVar9;\n          return -(iVar12 >> 0x1f);\n        }\n        piVar11 = piVar11 + 6;\n        if (-1 < piVar7[8] << 1) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00213098();\n        }\n        piVar6 = *(int **)(this + 0x74);\n        uVar10 = uVar9 + piVar7[5];\n        uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar7[4];\n      } while (piVar6 != piVar11);\n    }" { (do_statement "do {\n        while( true ) {\n          uVar9 = *piVar11 + 4;\n          if (piVar11[1] == 0) break;\n          uVar8 = piVar11[1] - 1;\n          uVar5 = 1 << (uVar8 & 0x1f);\n          if ((uVar8 & 0x20) == 0) {\n            uVar14 = (ulonglong)uVar5;\n          }\n          else {\n            uVar14 = (ulonglong)uVar5 << 0x20;\n          }\nLAB_0021540c:\n          bVar1 = uVar9 < 4;\n          if (uVar14 == 0) {\n            if (bVar1) {\nLAB_002153a4:\n              piVar7 = (int *)piVar11[4];\n              uVar9 = uVar10;\n              goto LAB_002153a8;\n            }\n          }\n          else {\nLAB_00215368:\n            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);\n            uVar10 = (uint)lVar2 & -(int)uVar14;\n            uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);\n            if (bVar1) goto LAB_002153a4;\n          }\n          piVar6 = *(int **)(this + 0x74);\n          uVar9 = uVar10;\nLAB_00215424:\n          piVar7 = piVar11 + 6;\n          uVar10 = uVar9 + piVar11[3];\n          uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar11[2];\n          piVar11 = piVar7;\n          if (piVar6 == piVar7) {\n            return 0;\n          }\n        }\n        bVar1 = uVar9 < 4;\n        uVar9 = uVar10;\n        if (!bVar1) goto LAB_00215424;\n        piVar7 = (int *)piVar11[4];\n        if (*(code **)(*piVar7 + 0xc) != (code *)puVar3) {\n          uVar14 = (**(code **)(*piVar7 + 0xc))();\n          uVar9 = *piVar11 + 4;\n          goto LAB_0021540c;\n        }\n        uVar14 = *(ulonglong *)(piVar7 + 10);\n        if (piVar7[10] != 0 || piVar7[0xb] != 0) goto LAB_00215368;\nLAB_002153a8:\n        if (piVar4 == piVar7) {\n          *(uint *)param_3 = uVar13;\n          *(uint *)((int)param_3 + 4) = uVar9;\n          return -(iVar12 >> 0x1f);\n        }\n        piVar11 = piVar11 + 6;\n        if (-1 < piVar7[8] << 1) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00213098();\n        }\n        piVar6 = *(int **)(this + 0x74);\n        uVar10 = uVar9 + piVar7[5];\n        uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar7[4];\n      } while (piVar6 != piVar11);" do (compound_statement "{\n        while( true ) {\n          uVar9 = *piVar11 + 4;\n          if (piVar11[1] == 0) break;\n          uVar8 = piVar11[1] - 1;\n          uVar5 = 1 << (uVar8 & 0x1f);\n          if ((uVar8 & 0x20) == 0) {\n            uVar14 = (ulonglong)uVar5;\n          }\n          else {\n            uVar14 = (ulonglong)uVar5 << 0x20;\n          }\nLAB_0021540c:\n          bVar1 = uVar9 < 4;\n          if (uVar14 == 0) {\n            if (bVar1) {\nLAB_002153a4:\n              piVar7 = (int *)piVar11[4];\n              uVar9 = uVar10;\n              goto LAB_002153a8;\n            }\n          }\n          else {\nLAB_00215368:\n            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);\n            uVar10 = (uint)lVar2 & -(int)uVar14;\n            uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);\n            if (bVar1) goto LAB_002153a4;\n          }\n          piVar6 = *(int **)(this + 0x74);\n          uVar9 = uVar10;\nLAB_00215424:\n          piVar7 = piVar11 + 6;\n          uVar10 = uVar9 + piVar11[3];\n          uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar11[2];\n          piVar11 = piVar7;\n          if (piVar6 == piVar7) {\n            return 0;\n          }\n        }\n        bVar1 = uVar9 < 4;\n        uVar9 = uVar10;\n        if (!bVar1) goto LAB_00215424;\n        piVar7 = (int *)piVar11[4];\n        if (*(code **)(*piVar7 + 0xc) != (code *)puVar3) {\n          uVar14 = (**(code **)(*piVar7 + 0xc))();\n          uVar9 = *piVar11 + 4;\n          goto LAB_0021540c;\n        }\n        uVar14 = *(ulonglong *)(piVar7 + 10);\n        if (piVar7[10] != 0 || piVar7[0xb] != 0) goto LAB_00215368;\nLAB_002153a8:\n        if (piVar4 == piVar7) {\n          *(uint *)param_3 = uVar13;\n          *(uint *)((int)param_3 + 4) = uVar9;\n          return -(iVar12 >> 0x1f);\n        }\n        piVar11 = piVar11 + 6;\n        if (-1 < piVar7[8] << 1) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00213098();\n        }\n        piVar6 = *(int **)(this + 0x74);\n        uVar10 = uVar9 + piVar7[5];\n        uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar7[4];\n      }" { (while_statement "while( true ) {\n          uVar9 = *piVar11 + 4;\n          if (piVar11[1] == 0) break;\n          uVar8 = piVar11[1] - 1;\n          uVar5 = 1 << (uVar8 & 0x1f);\n          if ((uVar8 & 0x20) == 0) {\n            uVar14 = (ulonglong)uVar5;\n          }\n          else {\n            uVar14 = (ulonglong)uVar5 << 0x20;\n          }\nLAB_0021540c:\n          bVar1 = uVar9 < 4;\n          if (uVar14 == 0) {\n            if (bVar1) {\nLAB_002153a4:\n              piVar7 = (int *)piVar11[4];\n              uVar9 = uVar10;\n              goto LAB_002153a8;\n            }\n          }\n          else {\nLAB_00215368:\n            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);\n            uVar10 = (uint)lVar2 & -(int)uVar14;\n            uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);\n            if (bVar1) goto LAB_002153a4;\n          }\n          piVar6 = *(int **)(this + 0x74);\n          uVar9 = uVar10;\nLAB_00215424:\n          piVar7 = piVar11 + 6;\n          uVar10 = uVar9 + piVar11[3];\n          uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar11[2];\n          piVar11 = piVar7;\n          if (piVar6 == piVar7) {\n            return 0;\n          }\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          uVar9 = *piVar11 + 4;\n          if (piVar11[1] == 0) break;\n          uVar8 = piVar11[1] - 1;\n          uVar5 = 1 << (uVar8 & 0x1f);\n          if ((uVar8 & 0x20) == 0) {\n            uVar14 = (ulonglong)uVar5;\n          }\n          else {\n            uVar14 = (ulonglong)uVar5 << 0x20;\n          }\nLAB_0021540c:\n          bVar1 = uVar9 < 4;\n          if (uVar14 == 0) {\n            if (bVar1) {\nLAB_002153a4:\n              piVar7 = (int *)piVar11[4];\n              uVar9 = uVar10;\n              goto LAB_002153a8;\n            }\n          }\n          else {\nLAB_00215368:\n            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);\n            uVar10 = (uint)lVar2 & -(int)uVar14;\n            uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);\n            if (bVar1) goto LAB_002153a4;\n          }\n          piVar6 = *(int **)(this + 0x74);\n          uVar9 = uVar10;\nLAB_00215424:\n          piVar7 = piVar11 + 6;\n          uVar10 = uVar9 + piVar11[3];\n          uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar11[2];\n          piVar11 = piVar7;\n          if (piVar6 == piVar7) {\n            return 0;\n          }\n        }" { (expression_statement "uVar9 = *piVar11 + 4;" (assignment_expression "uVar9 = *piVar11 + 4" identifier = (binary_expression "*piVar11 + 4" (pointer_expression "*piVar11" * identifier) + number_literal)) ;) (if_statement "if (piVar11[1] == 0) break;" if (parenthesized_expression "(piVar11[1] == 0)" ( (binary_expression "piVar11[1] == 0" (subscript_expression "piVar11[1]" identifier [ number_literal ]) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar8 = piVar11[1] - 1;" (assignment_expression "uVar8 = piVar11[1] - 1" identifier = (binary_expression "piVar11[1] - 1" (subscript_expression "piVar11[1]" identifier [ number_literal ]) - number_literal)) ;) (expression_statement "uVar5 = 1 << (uVar8 & 0x1f);" (assignment_expression "uVar5 = 1 << (uVar8 & 0x1f)" identifier = (binary_expression "1 << (uVar8 & 0x1f)" number_literal << (parenthesized_expression "(uVar8 & 0x1f)" ( (binary_expression "uVar8 & 0x1f" identifier & number_literal) )))) ;) (if_statement "if ((uVar8 & 0x20) == 0) {\n            uVar14 = (ulonglong)uVar5;\n          }\n          else {\n            uVar14 = (ulonglong)uVar5 << 0x20;\n          }" if (parenthesized_expression "((uVar8 & 0x20) == 0)" ( (binary_expression "(uVar8 & 0x20) == 0" (parenthesized_expression "(uVar8 & 0x20)" ( (binary_expression "uVar8 & 0x20" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            uVar14 = (ulonglong)uVar5;\n          }" { (expression_statement "uVar14 = (ulonglong)uVar5;" (assignment_expression "uVar14 = (ulonglong)uVar5" identifier = (cast_expression "(ulonglong)uVar5" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) }) (else_clause "else {\n            uVar14 = (ulonglong)uVar5 << 0x20;\n          }" else (compound_statement "{\n            uVar14 = (ulonglong)uVar5 << 0x20;\n          }" { (expression_statement "uVar14 = (ulonglong)uVar5 << 0x20;" (assignment_expression "uVar14 = (ulonglong)uVar5 << 0x20" identifier = (binary_expression "(ulonglong)uVar5 << 0x20" (cast_expression "(ulonglong)uVar5" ( (type_descriptor "ulonglong" type_identifier) ) identifier) << number_literal)) ;) }))) (labeled_statement "LAB_0021540c:\n          bVar1 = uVar9 < 4;" statement_identifier : (expression_statement "bVar1 = uVar9 < 4;" (assignment_expression "bVar1 = uVar9 < 4" identifier = (binary_expression "uVar9 < 4" identifier < number_literal)) ;)) (if_statement "if (uVar14 == 0) {\n            if (bVar1) {\nLAB_002153a4:\n              piVar7 = (int *)piVar11[4];\n              uVar9 = uVar10;\n              goto LAB_002153a8;\n            }\n          }\n          else {\nLAB_00215368:\n            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);\n            uVar10 = (uint)lVar2 & -(int)uVar14;\n            uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);\n            if (bVar1) goto LAB_002153a4;\n          }" if (parenthesized_expression "(uVar14 == 0)" ( (binary_expression "uVar14 == 0" identifier == number_literal) )) (compound_statement "{\n            if (bVar1) {\nLAB_002153a4:\n              piVar7 = (int *)piVar11[4];\n              uVar9 = uVar10;\n              goto LAB_002153a8;\n            }\n          }" { (if_statement "if (bVar1) {\nLAB_002153a4:\n              piVar7 = (int *)piVar11[4];\n              uVar9 = uVar10;\n              goto LAB_002153a8;\n            }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\nLAB_002153a4:\n              piVar7 = (int *)piVar11[4];\n              uVar9 = uVar10;\n              goto LAB_002153a8;\n            }" { (labeled_statement "LAB_002153a4:\n              piVar7 = (int *)piVar11[4];" statement_identifier : (expression_statement "piVar7 = (int *)piVar11[4];" (assignment_expression "piVar7 = (int *)piVar11[4]" identifier = (cast_expression "(int *)piVar11[4]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar11[4]" identifier [ number_literal ]))) ;)) (expression_statement "uVar9 = uVar10;" (assignment_expression "uVar9 = uVar10" identifier = identifier) ;) (goto_statement "goto LAB_002153a8;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_00215368:\n            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);\n            uVar10 = (uint)lVar2 & -(int)uVar14;\n            uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);\n            if (bVar1) goto LAB_002153a4;\n          }" else (compound_statement "{\nLAB_00215368:\n            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);\n            uVar10 = (uint)lVar2 & -(int)uVar14;\n            uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);\n            if (bVar1) goto LAB_002153a4;\n          }" { (labeled_statement "LAB_00215368:\n            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);" statement_identifier : (expression_statement "lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);" (assignment_expression "lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1)" identifier = (binary_expression "uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1)" identifier + (call_expression "CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1)" identifier (argument_list "((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1)" ( (binary_expression "(uint)(uVar10 - 1 < uVar10) + (uVar13 - 1)" (call_expression "(uint)(uVar10 - 1 < uVar10)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar10 - 1 < uVar10)" ( (binary_expression "uVar10 - 1 < uVar10" (binary_expression "uVar10 - 1" identifier - number_literal) < identifier) ))) + (parenthesized_expression "(uVar13 - 1)" ( (binary_expression "uVar13 - 1" identifier - number_literal) ))) , (binary_expression "uVar10 - 1" identifier - number_literal) ))))) ;)) (expression_statement "uVar10 = (uint)lVar2 & -(int)uVar14;" (assignment_expression "uVar10 = (uint)lVar2 & -(int)uVar14" identifier = (binary_expression "(uint)lVar2 & -(int)uVar14" (cast_expression "(uint)lVar2" ( (type_descriptor "uint" type_identifier) ) identifier) & (unary_expression "-(int)uVar14" - (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);" (assignment_expression "uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20)" identifier = (binary_expression "(uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20)" (call_expression "(uint)((ulonglong)lVar2 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar2 >> 0x20)" ( (binary_expression "(ulonglong)lVar2 >> 0x20" (cast_expression "(ulonglong)lVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) & (binary_expression "-(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20)" (unary_expression "-(uint)(-(int)uVar14 != 0)" - (call_expression "(uint)(-(int)uVar14 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(-(int)uVar14 != 0)" ( (binary_expression "-(int)uVar14 != 0" (unary_expression "-(int)uVar14" - (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier)) != number_literal) )))) - (cast_expression "(int)(uVar14 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar14 >> 0x20)" ( (binary_expression "uVar14 >> 0x20" identifier >> number_literal) )))))) ;) (if_statement "if (bVar1) goto LAB_002153a4;" if (parenthesized_expression "(bVar1)" ( identifier )) (goto_statement "goto LAB_002153a4;" goto statement_identifier ;)) }))) (expression_statement "piVar6 = *(int **)(this + 0x74);" (assignment_expression "piVar6 = *(int **)(this + 0x74)" identifier = (pointer_expression "*(int **)(this + 0x74)" * (cast_expression "(int **)(this + 0x74)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x74)" ( (binary_expression "this + 0x74" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = uVar10;" (assignment_expression "uVar9 = uVar10" identifier = identifier) ;) (labeled_statement "LAB_00215424:\n          piVar7 = piVar11 + 6;" statement_identifier : (expression_statement "piVar7 = piVar11 + 6;" (assignment_expression "piVar7 = piVar11 + 6" identifier = (binary_expression "piVar11 + 6" identifier + number_literal)) ;)) (expression_statement "uVar10 = uVar9 + piVar11[3];" (assignment_expression "uVar10 = uVar9 + piVar11[3]" identifier = (binary_expression "uVar9 + piVar11[3]" identifier + (subscript_expression "piVar11[3]" identifier [ number_literal ]))) ;) (expression_statement "uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar11[2];" (assignment_expression "uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar11[2]" identifier = (binary_expression "(uint)(uVar10 < uVar9) + uVar13 + piVar11[2]" (binary_expression "(uint)(uVar10 < uVar9) + uVar13" (call_expression "(uint)(uVar10 < uVar9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar10 < uVar9)" ( (binary_expression "uVar10 < uVar9" identifier < identifier) ))) + identifier) + (subscript_expression "piVar11[2]" identifier [ number_literal ]))) ;) (expression_statement "piVar11 = piVar7;" (assignment_expression "piVar11 = piVar7" identifier = identifier) ;) (if_statement "if (piVar6 == piVar7) {\n            return 0;\n          }" if (parenthesized_expression "(piVar6 == piVar7)" ( (binary_expression "piVar6 == piVar7" identifier == identifier) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) })) (expression_statement "bVar1 = uVar9 < 4;" (assignment_expression "bVar1 = uVar9 < 4" identifier = (binary_expression "uVar9 < 4" identifier < number_literal)) ;) (expression_statement "uVar9 = uVar10;" (assignment_expression "uVar9 = uVar10" identifier = identifier) ;) (if_statement "if (!bVar1) goto LAB_00215424;" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (goto_statement "goto LAB_00215424;" goto statement_identifier ;)) (expression_statement "piVar7 = (int *)piVar11[4];" (assignment_expression "piVar7 = (int *)piVar11[4]" identifier = (cast_expression "(int *)piVar11[4]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar11[4]" identifier [ number_literal ]))) ;) (if_statement "if (*(code **)(*piVar7 + 0xc) != (code *)puVar3) {\n          uVar14 = (**(code **)(*piVar7 + 0xc))();\n          uVar9 = *piVar11 + 4;\n          goto LAB_0021540c;\n        }" if (parenthesized_expression "(*(code **)(*piVar7 + 0xc) != (code *)puVar3)" ( (binary_expression "*(code **)(*piVar7 + 0xc) != (code *)puVar3" (pointer_expression "*(code **)(*piVar7 + 0xc)" * (cast_expression "(code **)(*piVar7 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar7 + 0xc)" ( (binary_expression "*piVar7 + 0xc" (pointer_expression "*piVar7" * identifier) + number_literal) )))) != (cast_expression "(code *)puVar3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n          uVar14 = (**(code **)(*piVar7 + 0xc))();\n          uVar9 = *piVar11 + 4;\n          goto LAB_0021540c;\n        }" { (expression_statement "uVar14 = (**(code **)(*piVar7 + 0xc))();" (assignment_expression "uVar14 = (**(code **)(*piVar7 + 0xc))()" identifier = (call_expression "(**(code **)(*piVar7 + 0xc))()" (parenthesized_expression "(**(code **)(*piVar7 + 0xc))" ( (pointer_expression "**(code **)(*piVar7 + 0xc)" * (pointer_expression "*(code **)(*piVar7 + 0xc)" * (cast_expression "(code **)(*piVar7 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar7 + 0xc)" ( (binary_expression "*piVar7 + 0xc" (pointer_expression "*piVar7" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar9 = *piVar11 + 4;" (assignment_expression "uVar9 = *piVar11 + 4" identifier = (binary_expression "*piVar11 + 4" (pointer_expression "*piVar11" * identifier) + number_literal)) ;) (goto_statement "goto LAB_0021540c;" goto statement_identifier ;) })) (expression_statement "uVar14 = *(ulonglong *)(piVar7 + 10);" (assignment_expression "uVar14 = *(ulonglong *)(piVar7 + 10)" identifier = (pointer_expression "*(ulonglong *)(piVar7 + 10)" * (cast_expression "(ulonglong *)(piVar7 + 10)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar7 + 10)" ( (binary_expression "piVar7 + 10" identifier + number_literal) ))))) ;) (if_statement "if (piVar7[10] != 0 || piVar7[0xb] != 0) goto LAB_00215368;" if (parenthesized_expression "(piVar7[10] != 0 || piVar7[0xb] != 0)" ( (binary_expression "piVar7[10] != 0 || piVar7[0xb] != 0" (binary_expression "piVar7[10] != 0" (subscript_expression "piVar7[10]" identifier [ number_literal ]) != number_literal) || (binary_expression "piVar7[0xb] != 0" (subscript_expression "piVar7[0xb]" identifier [ number_literal ]) != number_literal)) )) (goto_statement "goto LAB_00215368;" goto statement_identifier ;)) (labeled_statement "LAB_002153a8:\n        if (piVar4 == piVar7) {\n          *(uint *)param_3 = uVar13;\n          *(uint *)((int)param_3 + 4) = uVar9;\n          return -(iVar12 >> 0x1f);\n        }" statement_identifier : (if_statement "if (piVar4 == piVar7) {\n          *(uint *)param_3 = uVar13;\n          *(uint *)((int)param_3 + 4) = uVar9;\n          return -(iVar12 >> 0x1f);\n        }" if (parenthesized_expression "(piVar4 == piVar7)" ( (binary_expression "piVar4 == piVar7" identifier == identifier) )) (compound_statement "{\n          *(uint *)param_3 = uVar13;\n          *(uint *)((int)param_3 + 4) = uVar9;\n          return -(iVar12 >> 0x1f);\n        }" { (expression_statement "*(uint *)param_3 = uVar13;" (assignment_expression "*(uint *)param_3 = uVar13" (pointer_expression "*(uint *)param_3" * (cast_expression "(uint *)param_3" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(uint *)((int)param_3 + 4) = uVar9;" (assignment_expression "*(uint *)((int)param_3 + 4) = uVar9" (pointer_expression "*(uint *)((int)param_3 + 4)" * (cast_expression "(uint *)((int)param_3 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3 + 4)" ( (binary_expression "(int)param_3 + 4" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (return_statement "return -(iVar12 >> 0x1f);" return (unary_expression "-(iVar12 >> 0x1f)" - (parenthesized_expression "(iVar12 >> 0x1f)" ( (binary_expression "iVar12 >> 0x1f" identifier >> number_literal) ))) ;) }))) (expression_statement "piVar11 = piVar11 + 6;" (assignment_expression "piVar11 = piVar11 + 6" identifier = (binary_expression "piVar11 + 6" identifier + number_literal)) ;) (if_statement "if (-1 < piVar7[8] << 1) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00213098();\n        }" if (parenthesized_expression "(-1 < piVar7[8] << 1)" ( (binary_expression "-1 < piVar7[8] << 1" number_literal < (binary_expression "piVar7[8] << 1" (subscript_expression "piVar7[8]" identifier [ number_literal ]) << number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          FUN_00213098();\n        }" { comment (expression_statement "FUN_00213098();" (call_expression "FUN_00213098()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "piVar6 = *(int **)(this + 0x74);" (assignment_expression "piVar6 = *(int **)(this + 0x74)" identifier = (pointer_expression "*(int **)(this + 0x74)" * (cast_expression "(int **)(this + 0x74)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x74)" ( (binary_expression "this + 0x74" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = uVar9 + piVar7[5];" (assignment_expression "uVar10 = uVar9 + piVar7[5]" identifier = (binary_expression "uVar9 + piVar7[5]" identifier + (subscript_expression "piVar7[5]" identifier [ number_literal ]))) ;) (expression_statement "uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar7[4];" (assignment_expression "uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar7[4]" identifier = (binary_expression "(uint)(uVar10 < uVar9) + uVar13 + piVar7[4]" (binary_expression "(uint)(uVar10 < uVar9) + uVar13" (call_expression "(uint)(uVar10 < uVar9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar10 < uVar9)" ( (binary_expression "uVar10 < uVar9" identifier < identifier) ))) + identifier) + (subscript_expression "piVar7[4]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "(piVar6 != piVar11)" ( (binary_expression "piVar6 != piVar11" identifier != identifier) )) ;) })) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */\n/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */\n/* DWARF original prototype: bool find_starting_output_address(Output_section * this, Relobj *\n   object, uint shndx, uint64_t * paddr) */\n\nbool __thiscall\ngold::Output_section::find_starting_output_address\n          (Output_section *this,Relobj *object,uint shndx,uint64_t *paddr)\n\n{\n  bool bVar1;\n  Relobj *pRVar2;\n  Relobj *pRVar3;\n  int iVar4;\n  char *pcVar5;\n  uint uVar6;\n  char *pcVar7;\n  pointer pIVar8;\n  Relobj *pRVar9;\n  uint uVar10;\n  Input_section_sort_entry *this_00;\n  char *pcVar11;\n  uint uVar12;\n  Output_file *of;\n  Input_section *pIVar13;\n  Input_file *__s;\n  int iVar14;\n  char **__s_00;\n  char *pcVar15;\n  Relobj *this_01;\n  int iVar16;\n  uint uVar17;\n  Input_section *this_02;\n  pointer pIVar18;\n  pointer pIVar19;\n  char **ppcVar20;\n  Relobj *pRVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  _func_int_varargs *p_Var25;\n  undefined *puVar26;\n  code *pcVar27;\n  uint uVar28;\n  code *pcVar29;\n  char *apcStack_98 [2];\n  Relobj *pRStack_90;\n  uint uStack_8c;\n  Input_section *pIStack_88;\n  Relobj *pRStack_84;\n  Relobj *pRStack_80;\n  code *pcStack_7c;\n  undefined *puStack_68;\n  \n  pRVar2 = (Relobj *)(*(code *)PTR_find_merge_section_004c3f38)(object,shndx);\n  puVar26 = PTR_do_addralign_004c34e4;\n  if (pRVar2 == (Relobj *)0x0) {\n    return false;\n  }\n  iVar24 = -(*(int *)&(this->super_Output_data).field_0x20 >> 0x1f);\n  if (iVar24 != 0) {\n    uVar28 = (uint)this->first_input_offset_;\n    uVar17 = uVar28 + (int)(this->super_Output_data).address_;\n    pIVar18 = (this->input_sections_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_start;\n    pIVar8 = (this->input_sections_).\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             ._M_impl._M_finish;\n    uVar28 = (uint)(uVar17 < uVar28) +\n             *(int *)&this->first_input_offset_ + *(int *)&(this->super_Output_data).address_;\n    if (pIVar8 == pIVar18) {\n      return false;\n    }\n    do {\n      while( true ) {\n        uVar6 = pIVar18->p2align_;\n        uVar12 = pIVar18->shndx_ + 4;\n        if (uVar6 != 0) break;\n        of = (Output_file *)(uint)(uVar12 < 4);\n        uVar12 = uVar17;\n        if (of != (Output_file *)0x0) {\n          pRVar9 = (pIVar18->u2_).object;\n          p_Var25 = (pRVar9->super_Object)._vptr_Object[3];\n          if (p_Var25 != (_func_int_varargs *)puVar26) {\n            uVar10 = (*p_Var25)();\n            uVar12 = pIVar18->shndx_ + 4;\n            goto LAB_0021540c;\n          }\n          uVar10 = (pRVar9->super_Object).shnum_;\n          uVar6 = *(uint *)&(pRVar9->super_Object).field_0x2c;\n          if (uVar10 != 0 || uVar6 != 0) goto LAB_00215368;\n          goto LAB_002153a8;\n        }\nLAB_00215424:\n        pIVar19 = pIVar18 + 1;\n        uVar17 = uVar12 + *(int *)((int)&pIVar18->u1_ + 4);\n        uVar28 = (uint)(uVar17 < uVar12) + uVar28 + *(int *)&pIVar18->u1_;\n        pIVar18 = pIVar19;\n        if (pIVar8 == pIVar19) {\n          return false;\n        }\n      }\n      uVar10 = uVar6 - 1;\n      uVar6 = 1 << (uVar10 & 0x1f);\n      if ((uVar10 & 0x20) == 0) {\n        uVar10 = 0;\n      }\n      else {\n        uVar10 = uVar6;\n        uVar6 = 0;\n      }\nLAB_0021540c:\n      of = (Output_file *)(uint)(uVar12 < 4);\n      if (uVar10 != 0 || uVar6 != 0) {\nLAB_00215368:\n        uVar12 = uVar17 - 1;\n        bVar1 = uVar12 < uVar17;\n        uVar17 = uVar12 + uVar6 & -uVar6;\n        uVar28 = (uint)(uVar12 + uVar6 < uVar12) + (uint)bVar1 + (uVar28 - 1) + uVar10 &\n                 -(uint)(-uVar6 != 0) - uVar10;\n      }\n      if (of == (Output_file *)0x0) {\n        pIVar8 = (this->input_sections_).\n                 super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                 ._M_impl._M_finish;\n        uVar12 = uVar17;\n        goto LAB_00215424;\n      }\n      pRVar9 = (pIVar18->u2_).object;\n      uVar12 = uVar17;\nLAB_002153a8:\n      if (pRVar2 == pRVar9) {\n        *(uint *)paddr = uVar28;\n        *(uint *)((int)paddr + 4) = uVar12;\n        return SUB41(iVar24,0);\n      }\n      pIVar18 = pIVar18 + 1;\n      if (-1 < *(int *)&(pRVar9->super_Object).offset_ << 1) {\n                    /* WARNING: Subroutine does not return */\n        Output_data_const_buffer::do_write((Output_data_const_buffer *)pRVar9,of);\n      }\n      pIVar8 = (this->input_sections_).\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               ._M_impl._M_finish;\n      uVar17 = uVar12 + *(int *)((int)&(pRVar9->super_Object).name_.field_2 + 8);\n      uVar28 = (uint)(uVar17 < uVar12) +\n               uVar28 + *(int *)((int)&(pRVar9->super_Object).name_.field_2 + 4);\n      if (pIVar8 == pIVar18) {\n        return false;\n      }\n    } while( true );\n  }\n  pIVar13 = (Input_section *)&DAT_000000c5;\n  this_01 = (Relobj *)(PTR_s_in_a_linker_script_004c191c + -0x2a40);\n  puVar26 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574);\n  puStack_68 = puVar26 + 0x2b3d44;\n  pRVar9 = this_01;\n  if (pIVar13->shndx_ == 0xffffffff) {\n    pRVar21 = *(Relobj **)(puVar26 + 0x2aea40);\n    if ((this_01->super_Object)._vptr_Object != (_func_int_varargs **)0xffffffff) {\n      pRVar2 = Input_section::relobj((Input_section *)this_01);\n      iVar4 = (**(code **)(puStack_68 + -0x70ac))(pRVar2,*(int *)(puStack_68 + -0x77f0) + 0x35d0);\nLAB_00215650:\n      if (iVar4 != 0) {\n        return false;\n      }\n      pRVar2 = *(Relobj **)(puStack_68 + -0x77f0);\n      if (pIVar13->shndx_ == 0xffffffff) {\n        if ((this_01->super_Object)._vptr_Object != (_func_int_varargs **)0xffffffff) {\n          pRVar9 = Input_section::relobj((Input_section *)this_01);\n          iVar24 = (**(code **)(puStack_68 + -0x70ac))\n                             (pRVar9,*(int *)(puStack_68 + -0x77f0) + 0x35dc);\n          goto LAB_00215740;\n        }\n      }\n      else {\nLAB_00215690:\n        pRVar3 = Input_section::relobj(pIVar13);\n        iVar4 = (**(code **)(puStack_68 + -0x70ac))\n                          (pRVar3,&pRVar2[0x84].output_sections_.\n                                   super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                   ._M_impl._M_finish);\n        if ((this_01->super_Object)._vptr_Object == (_func_int_varargs **)0xffffffff) {\n          if (iVar4 != 0) {\n            return false;\n          }\n        }\n        else {\n          pRVar3 = Input_section::relobj((Input_section *)this_01);\n          __s = (Input_file *)\n                &pRVar2[0x84].output_sections_.\n                 super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                 _M_impl._M_finish;\n          iVar24 = (**(code **)(puStack_68 + -0x70ac))();\n          if (iVar4 != 0) {\n            if (iVar24 == 0) {\n              return false;\n            }\n            goto LAB_002155ac;\n          }\nLAB_00215740:\n          if (iVar24 != 0) {\n            return true;\n          }\n        }\n      }\n    }\n    pcVar27 = *(code **)(puStack_68 + -0x6ae0);\nLAB_0021575c:\n    iVar24 = (*pcVar27)(&pIVar13[1].p2align_,0x2e,1);\n    __s = (Input_file *)0x2e;\n    pRVar3 = (Relobj *)&(this_01->super_Object).input_file_;\n    iVar4 = (**(code **)(puStack_68 + -0x6ae0))(pRVar3,0x2e,1);\n    if (iVar24 == -1) {\n      if (iVar4 != -1) {\n        return true;\n      }\n    }\n    else if (iVar4 == -1) {\n      return false;\n    }\n    uVar17 = *(uint *)((int)&(this_01->super_Object).name_.field_2 + 0xc);\n    uVar28 = pIVar13->section_order_index_;\n    puVar26 = puStack_68;\n    if (uVar17 != 0xffffffff) {\n      if (uVar28 != 0) {\n        uVar6 = *(uint *)((int)&(this_01->super_Object).name_.field_2 + 8);\n        pRVar3 = (Relobj *)(uint)(uVar28 < uVar6);\n        if (uVar6 != 0) {\n          if (pRVar3 != (Relobj *)0x0) {\n            return true;\n          }\n          if (uVar6 < uVar28) {\n            return false;\n          }\n        }\n      }\n      pRVar2 = *(Relobj **)&pIVar13[1].u1_;\n      pRVar21 = *(Relobj **)&(this_01->super_Object).offset_;\n      pRVar9 = pRVar21;\n      if (pRVar2 <= pRVar21) {\n        pRVar9 = pRVar2;\n      }\n      if (pRVar9 != (Relobj *)0x0) {\n        __s = (this_01->super_Object).input_file_;\n        pRVar3 = (Relobj *)pIVar13[1].p2align_;\n        iVar24 = (**(code **)(puStack_68 + -0x354c))();\n        if (iVar24 != 0) {\n          return SUB41((uint)iVar24 >> 0x1f,0);\n        }\n      }\n      if ((int)pRVar2 - (int)pRVar21 != 0) {\n        return SUB41((uint)((int)pRVar2 - (int)pRVar21) >> 0x1f,0);\n      }\n      uVar28 = pIVar13[1].shndx_;\n      bVar1 = uVar28 < uVar17;\njoined_r0x002155bc:\n      if (uVar28 != 0xffffffff) {\n        return bVar1;\n      }\n      goto LAB_00215844;\n    }\n  }\n  else {\n    pRVar21 = *(Relobj **)(puVar26 + 0x2aea40);\n    pRVar2 = *(Relobj **)(puVar26 + 0x2ac554);\n    pRVar3 = Input_section::relobj(pIVar13);\n    iVar24 = (**(code **)(puStack_68 + -0x70ac))(pRVar3,&pRVar2[0x84].super_Object.xindex_);\n    if ((this_01->super_Object)._vptr_Object == (_func_int_varargs **)0xffffffff) {\n      if (iVar24 != 0) {\n        return true;\n      }\n      pcVar27 = *(code **)(puStack_68 + -0x6ae0);\n      if (pIVar13->shndx_ != 0xffffffff) {\n        pRVar2 = *(Relobj **)(puStack_68 + -0x77f0);\n        goto LAB_00215690;\n      }\n      goto LAB_0021575c;\n    }\n    pRVar3 = Input_section::relobj((Input_section *)this_01);\n    __s = (Input_file *)&pRVar2[0x84].super_Object.xindex_;\n    iVar4 = (**(code **)(puStack_68 + -0x70ac))();\n    if (iVar24 == 0) goto LAB_00215650;\n    if (iVar4 == 0) {\n      return true;\n    }\nLAB_002155ac:\n    uVar17 = 0xffffffff;\n    if (pIVar13[1].shndx_ != 0xffffffff) {\n      uVar28 = *(uint *)((int)&(this_01->super_Object).name_.field_2 + 0xc);\n      bVar1 = pIVar13[1].shndx_ < uVar28;\n      goto joined_r0x002155bc;\n    }\nLAB_00215844:\n    puVar26 = puStack_68;\n    Input_section_sort_entry::index((Input_section_sort_entry *)pRVar3,(char *)__s,(int)pRVar9);\n  }\n  iVar14 = 0xcf5;\n  pcVar27 = *(code **)(puVar26 + -0x7810);\n  iVar16 = *(int *)(puVar26 + -0x7924) + -0x30e8;\n  pcVar29 = Input_section_sort_init_fini_compare::operator();\n  (*pcVar27)(*(int *)(puVar26 + -0x7924) + -0x48b4);\n  iVar22 = iVar14 + 0x1c;\n  iVar23 = iVar16 + 0x1c;\n  pRStack_90 = this_01;\n  uStack_8c = uVar17;\n  pIStack_88 = pIVar13;\n  pRStack_84 = pRVar21;\n  pRStack_80 = pRVar2;\n  pcStack_7c = pcVar29;\n  iVar24 = (**(code **)(pcVar27 + 0x2acef4))(iVar22,0x2e,1);\n  iVar4 = (**(code **)(pcVar27 + 0x2acef4))(iVar23,0x2e,1);\n  if (iVar24 == -1) {\n    if (iVar4 != -1) {\n      return false;\n    }\n    iVar4 = *(int *)(pcVar27 + 0x2ac1e4);\n    iVar24 = (**(code **)(pcVar27 + 0x2acf7c))(iVar22,iVar4 + 0x3598);\n    if ((iVar24 == 0) ||\n       (iVar24 = (**(code **)(pcVar27 + 0x2acf7c))(iVar22,*(int *)(pcVar27 + 0x2ac1e4) + 0x35b8),\n       iVar24 == 0)) {\n      if (*(int *)(iVar14 + 0x20) != *(int *)(iVar16 + 0x20)) {\n        return false;\n      }\n      if ((*(int *)(iVar14 + 0x20) != 0) &&\n         (iVar24 = (**(code **)(pcVar27 + 0x2b0488))\n                             (*(undefined4 *)(iVar14 + 0x1c),*(undefined4 *)(iVar16 + 0x1c)),\n         iVar24 != 0)) {\n        return false;\n      }\n      pcVar29 = *(code **)(pcVar27 + 0x2acf7c);\n    }\n    else {\n      pcVar29 = *(code **)(pcVar27 + 0x2acf7c);\n    }\n    __s_00 = (char **)(iVar4 + 0x3598);\n    iVar24 = (*pcVar29)(iVar23);\n    if (iVar24 == 0) {\n      iVar24 = *(int *)(iVar16 + 0x20);\n    }\n    else {\n      __s_00 = (char **)(*(int *)(pcVar27 + 0x2ac1e4) + 0x35b8);\n      iVar24 = (**(code **)(pcVar27 + 0x2acf7c))(iVar23);\n      if (iVar24 != 0) goto LAB_00215a54;\n      iVar24 = *(int *)(iVar16 + 0x20);\n    }\n    if (iVar24 == *(int *)(iVar14 + 0x20)) {\n      if (iVar24 != 0) {\n        __s_00 = *(char ***)(iVar14 + 0x1c);\n        iVar24 = (**(code **)(pcVar27 + 0x2b0488))(*(undefined4 *)(iVar16 + 0x1c));\n        if (iVar24 != 0) {\n          return true;\n        }\n      }\nLAB_00215a54:\n      while( true ) {\n        uVar28 = *(uint *)(iVar16 + 0x18);\n        uVar17 = *(uint *)(iVar14 + 0x14);\n        if (uVar28 == 0xffffffff) break;\n        if (uVar17 != 0) {\n          uVar6 = *(uint *)(iVar16 + 0x14);\n          if (uVar6 != 0) {\n            if (uVar17 < uVar6) {\n              return true;\n            }\n            if (uVar6 < uVar17) {\n              return false;\n            }\n          }\n        }\n        uVar12 = *(uint *)(iVar14 + 0x20);\n        uVar17 = *(uint *)(iVar16 + 0x20);\n        uVar6 = uVar17;\n        if (uVar12 <= uVar17) {\n          uVar6 = uVar12;\n        }\n        if (uVar6 != 0) {\n          __s_00 = *(char ***)(iVar16 + 0x1c);\n          iVar24 = (**(code **)(pcVar27 + 0x2b0488))(*(undefined4 *)(iVar14 + 0x1c));\n          if (iVar24 != 0) goto LAB_00215bf4;\n        }\n        iVar24 = uVar12 - uVar17;\n        if (iVar24 != 0) {\nLAB_00215bf4:\n          return SUB41((uint)iVar24 >> 0x1f,0);\n        }\n        if (*(uint *)(iVar14 + 0x18) != 0xffffffff) {\n          return *(uint *)(iVar14 + 0x18) < uVar28;\n        }\n        Input_section_sort_entry::index((Input_section_sort_entry *)0xffffffff,(char *)__s_00,uVar6)\n        ;\nLAB_00215ae8:\n        iVar24 = (**(code **)(pcVar27 + 0x2b0334))(uVar28 + 7,apcStack_98,10);\n        if (*apcStack_98[0] == '\0') {\n          uVar28 = 0xffff - iVar24;\n        }\n        else {\nLAB_00215994:\n          uVar28 = 0;\n        }\nLAB_00215998:\n        ppcVar20 = *(char ***)(iVar16 + 0x1c);\n        iVar24 = (**(code **)(pcVar27 + 0x2b0254))(uVar17 + 0x35c0,ppcVar20,7);\n        if ((iVar24 == 0) ||\n           (iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                               (*(int *)(pcVar27 + 0x2ac1e4) + 0x35c8,ppcVar20,7), iVar24 == 0)) {\n          __s_00 = apcStack_98;\n          iVar24 = (**(code **)(pcVar27 + 0x2b0334))((char *)((int)ppcVar20 + 7),__s_00,10);\n          if (*apcStack_98[0] != '\0') goto LAB_00215bfc;\n          uVar17 = 0xffff - iVar24;\nLAB_00215a3c:\n          if (uVar28 < uVar17) {\n            return true;\n          }\n        }\n        else {\n          iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                             (*(int *)(pcVar27 + 0x2ac1e4) + 0x4150,ppcVar20,0xc);\n          if ((iVar24 == 0) ||\n             (__s_00 = ppcVar20,\n             iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                                (*(int *)(pcVar27 + 0x2ac1e4) + 0x4160,ppcVar20,0xc), iVar24 == 0))\n          {\n            __s_00 = apcStack_98;\n            uVar17 = (**(code **)(pcVar27 + 0x2b0334))(ppcVar20 + 3,__s_00,10);\n            if (*apcStack_98[0] == '\0') goto LAB_00215a3c;\n          }\nLAB_00215bfc:\n          uVar17 = 0;\n        }\n        if (uVar17 < uVar28) {\n          return false;\n        }\n      }\n      iVar24 = 0xcf5;\n      pcVar29 = *(code **)(pcVar27 + 0x2ac1c4);\n      iVar4 = *(int *)(pcVar27 + 0x2ac0b0) + -0x30e8;\n      (*pcVar29)(*(int *)(pcVar27 + 0x2ac0b0) + -0x48b4);\n      if (*(uint *)(iVar24 + 0x18) != 0xffffffff) {\n        if (*(uint *)(iVar4 + 0x18) != 0xffffffff) {\n          if (*(uint *)(iVar24 + 0x14) != *(uint *)(iVar4 + 0x14)) {\n            return *(uint *)(iVar24 + 0x14) < *(uint *)(iVar4 + 0x14);\n          }\n          return *(uint *)(iVar24 + 0x18) < *(uint *)(iVar4 + 0x18);\n        }\n      }\n      pcVar15 = (char *)0xcf5;\n      pcVar27 = *(code **)(pcVar29 + 0x2abd98);\n      iVar16 = *(int *)(pcVar29 + 0x2abc84) + -0x30e8;\n      (*pcVar27)(*(int *)(pcVar29 + 0x2abc84) + -0x48b4);\n      pcVar5 = pcVar15;\n      iVar24 = iVar16;\n      iVar4 = (**(code **)(pcVar27 + 0x2ae23c))(*(undefined4 *)(pcVar15 + 0x1c));\n      this_00 = *(Input_section_sort_entry **)(iVar16 + 0x1c);\n      iVar14 = (**(code **)(pcVar27 + 0x2ae23c))();\n      if (iVar4 != iVar14) {\n        if (iVar4 < 0) {\n          return false;\n        }\n        if (-1 < iVar14) {\n          return iVar4 < iVar14;\n        }\n        return true;\n      }\n      if ((*(uint *)(pcVar15 + 0x18) != 0xffffffff) && (*(uint *)(iVar16 + 0x18) != 0xffffffff)) {\n        return *(uint *)(pcVar15 + 0x18) < *(uint *)(iVar16 + 0x18);\n      }\n      iVar4 = *(int *)(pcVar27 + 0x2ae200) + 0x3338;\n      Input_section_sort_entry::index(this_00,pcVar5,iVar24);\n      uVar6 = *(uint *)(pcVar5 + 0x20);\n      uVar28 = *(uint *)(iVar24 + 0x20);\n      uVar17 = uVar28;\n      if (uVar28 < uVar6 == 0) {\n        uVar17 = uVar6;\n      }\n      pcVar15 = pcVar5;\n      uVar12 = (uint)(uVar28 < uVar6);\n      if (uVar17 != 0) {\n        pcVar15 = *(char **)(iVar24 + 0x1c);\n        this_00 = *(Input_section_sort_entry **)(pcVar5 + 0x1c);\n        iVar4 = (**(code **)(iVar4 + 0x2aff08))();\n        uVar12 = uVar17;\n        if (iVar4 != 0) goto LAB_00215e90;\n      }\n      iVar4 = uVar6 - uVar28;\n      if (iVar4 != 0) {\nLAB_00215e90:\n        return SUB41((uint)iVar4 >> 0x1f,0);\n      }\n      if ((*(Input_section_sort_entry **)(pcVar5 + 0x18) != (Input_section_sort_entry *)0xffffffff)\n         && (this_00 = *(Input_section_sort_entry **)(iVar24 + 0x18),\n            this_00 != (Input_section_sort_entry *)0xffffffff)) {\n        return *(Input_section_sort_entry **)(pcVar5 + 0x18) < this_00;\n      }\n      pcVar5 = Input_section_sort_entry::index(this_00,pcVar15,uVar12);\n      pIVar13 = (Input_section *)this_00[2].input_section_.p2align_;\n      this_02 = (Input_section *)this_00[2].input_section_.shndx_;\n      if (this_02 == pIVar13) {\n        return (bool)(char)pcVar5;\n      }\n      do {\n        uVar17 = 0xfffffffc;\n        if (this_02->shndx_ + 4 < 4) {\n          if (this_02->shndx_ == 0xfffffffc) {\n            pRVar2 = (Relobj *)(((this_02->u2_).object)->super_Object).xindex_;\n            goto LAB_00215f3c;\n          }\n        }\n        else {\n          pRVar2 = Input_section::relobj(this_02);\nLAB_00215f3c:\n          uVar17 = Input_section::shndx(this_02);\n          pcVar5 = *(char **)(pcVar15 + 8);\n          pcVar11 = pcVar15 + 4;\n          if (*(char **)(pcVar15 + 8) != (char *)0x0) {\n            do {\n              if ((*(Relobj **)(pcVar5 + 0x10) < pRVar2) ||\n                 ((pRVar2 == *(Relobj **)(pcVar5 + 0x10) && (*(uint *)(pcVar5 + 0x14) < uVar17)))) {\n                pcVar7 = *(char **)(pcVar5 + 0xc);\n              }\n              else {\n                pcVar7 = *(char **)(pcVar5 + 8);\n                pcVar11 = pcVar5;\n              }\n              pcVar5 = pcVar7;\n            } while (pcVar7 != (char *)0x0);\n            if ((((pcVar15 + 4 != pcVar11) && (*(Relobj **)(pcVar11 + 0x10) <= pRVar2)) &&\n                ((pRVar2 != *(Relobj **)(pcVar11 + 0x10) ||\n                 (uVar17 = (uint)(uVar17 < *(uint *)(pcVar11 + 0x14)), uVar17 == 0)))) &&\n               (uVar17 = *(uint *)(pcVar11 + 0x18), uVar17 != 0)) {\n              pIVar13 = (Input_section *)this_00[2].input_section_.p2align_;\n              this_02->section_order_index_ = uVar17;\n              uVar17 = *(uint *)((int)&this_00[2].section_name_.field_2 + 4) & 0xffbfffff | 0x400000\n              ;\n              *(uint *)((int)&this_00[2].section_name_.field_2 + 4) = uVar17;\n              goto LAB_00215fdc;\n            }\n          }\n          pIVar13 = (Input_section *)this_00[2].input_section_.p2align_;\n        }\nLAB_00215fdc:\n        this_02 = this_02 + 1;\n        if (pIVar13 == this_02) {\n          return (bool)(char)uVar17;\n        }\n      } while( true );\n    }\n  }\n  else {\n    uVar17 = *(uint *)(pcVar27 + 0x2ac1e4);\n    if (iVar4 != -1) {\n      uVar28 = *(uint *)(iVar14 + 0x1c);\n      iVar24 = (**(code **)(pcVar27 + 0x2b0254))(uVar17 + 0x35c0,uVar28,7);\n      if (iVar24 == 0) goto LAB_00215ae8;\n      iVar24 = (**(code **)(pcVar27 + 0x2b0254))(*(int *)(pcVar27 + 0x2ac1e4) + 0x35c8,uVar28,7);\n      if (iVar24 == 0) goto LAB_00215ae8;\n      iVar24 = (**(code **)(pcVar27 + 0x2b0254))(*(int *)(pcVar27 + 0x2ac1e4) + 0x4150,uVar28,0xc);\n      if ((iVar24 != 0) &&\n         (iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                             (*(int *)(pcVar27 + 0x2ac1e4) + 0x4160,uVar28,0xc), iVar24 != 0))\n      goto LAB_00215994;\n      uVar28 = (**(code **)(pcVar27 + 0x2b0334))(uVar28 + 0xc,apcStack_98,10);\n      if (*apcStack_98[0] == '\0') goto LAB_00215998;\n      goto LAB_00215994;\n    }\n  }\n  return true;\n}\n\n" comment comment comment (function_definition "bool __thiscall\ngold::Output_section::find_starting_output_address\n          (Output_section *this,Relobj *object,uint shndx,uint64_t *paddr)\n\n{\n  bool bVar1;\n  Relobj *pRVar2;\n  Relobj *pRVar3;\n  int iVar4;\n  char *pcVar5;\n  uint uVar6;\n  char *pcVar7;\n  pointer pIVar8;\n  Relobj *pRVar9;\n  uint uVar10;\n  Input_section_sort_entry *this_00;\n  char *pcVar11;\n  uint uVar12;\n  Output_file *of;\n  Input_section *pIVar13;\n  Input_file *__s;\n  int iVar14;\n  char **__s_00;\n  char *pcVar15;\n  Relobj *this_01;\n  int iVar16;\n  uint uVar17;\n  Input_section *this_02;\n  pointer pIVar18;\n  pointer pIVar19;\n  char **ppcVar20;\n  Relobj *pRVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  _func_int_varargs *p_Var25;\n  undefined *puVar26;\n  code *pcVar27;\n  uint uVar28;\n  code *pcVar29;\n  char *apcStack_98 [2];\n  Relobj *pRStack_90;\n  uint uStack_8c;\n  Input_section *pIStack_88;\n  Relobj *pRStack_84;\n  Relobj *pRStack_80;\n  code *pcStack_7c;\n  undefined *puStack_68;\n  \n  pRVar2 = (Relobj *)(*(code *)PTR_find_merge_section_004c3f38)(object,shndx);\n  puVar26 = PTR_do_addralign_004c34e4;\n  if (pRVar2 == (Relobj *)0x0) {\n    return false;\n  }\n  iVar24 = -(*(int *)&(this->super_Output_data).field_0x20 >> 0x1f);\n  if (iVar24 != 0) {\n    uVar28 = (uint)this->first_input_offset_;\n    uVar17 = uVar28 + (int)(this->super_Output_data).address_;\n    pIVar18 = (this->input_sections_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_start;\n    pIVar8 = (this->input_sections_).\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             ._M_impl._M_finish;\n    uVar28 = (uint)(uVar17 < uVar28) +\n             *(int *)&this->first_input_offset_ + *(int *)&(this->super_Output_data).address_;\n    if (pIVar8 == pIVar18) {\n      return false;\n    }\n    do {\n      while( true ) {\n        uVar6 = pIVar18->p2align_;\n        uVar12 = pIVar18->shndx_ + 4;\n        if (uVar6 != 0) break;\n        of = (Output_file *)(uint)(uVar12 < 4);\n        uVar12 = uVar17;\n        if (of != (Output_file *)0x0) {\n          pRVar9 = (pIVar18->u2_).object;\n          p_Var25 = (pRVar9->super_Object)._vptr_Object[3];\n          if (p_Var25 != (_func_int_varargs *)puVar26) {\n            uVar10 = (*p_Var25)();\n            uVar12 = pIVar18->shndx_ + 4;\n            goto LAB_0021540c;\n          }\n          uVar10 = (pRVar9->super_Object).shnum_;\n          uVar6 = *(uint *)&(pRVar9->super_Object).field_0x2c;\n          if (uVar10 != 0 || uVar6 != 0) goto LAB_00215368;\n          goto LAB_002153a8;\n        }\nLAB_00215424:\n        pIVar19 = pIVar18 + 1;\n        uVar17 = uVar12 + *(int *)((int)&pIVar18->u1_ + 4);\n        uVar28 = (uint)(uVar17 < uVar12) + uVar28 + *(int *)&pIVar18->u1_;\n        pIVar18 = pIVar19;\n        if (pIVar8 == pIVar19) {\n          return false;\n        }\n      }\n      uVar10 = uVar6 - 1;\n      uVar6 = 1 << (uVar10 & 0x1f);\n      if ((uVar10 & 0x20) == 0) {\n        uVar10 = 0;\n      }\n      else {\n        uVar10 = uVar6;\n        uVar6 = 0;\n      }\nLAB_0021540c:\n      of = (Output_file *)(uint)(uVar12 < 4);\n      if (uVar10 != 0 || uVar6 != 0) {\nLAB_00215368:\n        uVar12 = uVar17 - 1;\n        bVar1 = uVar12 < uVar17;\n        uVar17 = uVar12 + uVar6 & -uVar6;\n        uVar28 = (uint)(uVar12 + uVar6 < uVar12) + (uint)bVar1 + (uVar28 - 1) + uVar10 &\n                 -(uint)(-uVar6 != 0) - uVar10;\n      }\n      if (of == (Output_file *)0x0) {\n        pIVar8 = (this->input_sections_).\n                 super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                 ._M_impl._M_finish;\n        uVar12 = uVar17;\n        goto LAB_00215424;\n      }\n      pRVar9 = (pIVar18->u2_).object;\n      uVar12 = uVar17;\nLAB_002153a8:\n      if (pRVar2 == pRVar9) {\n        *(uint *)paddr = uVar28;\n        *(uint *)((int)paddr + 4) = uVar12;\n        return SUB41(iVar24,0);\n      }\n      pIVar18 = pIVar18 + 1;\n      if (-1 < *(int *)&(pRVar9->super_Object).offset_ << 1) {\n                    /* WARNING: Subroutine does not return */\n        Output_data_const_buffer::do_write((Output_data_const_buffer *)pRVar9,of);\n      }\n      pIVar8 = (this->input_sections_).\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               ._M_impl._M_finish;\n      uVar17 = uVar12 + *(int *)((int)&(pRVar9->super_Object).name_.field_2 + 8);\n      uVar28 = (uint)(uVar17 < uVar12) +\n               uVar28 + *(int *)((int)&(pRVar9->super_Object).name_.field_2 + 4);\n      if (pIVar8 == pIVar18) {\n        return false;\n      }\n    } while( true );\n  }\n  pIVar13 = (Input_section *)&DAT_000000c5;\n  this_01 = (Relobj *)(PTR_s_in_a_linker_script_004c191c + -0x2a40);\n  puVar26 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574);\n  puStack_68 = puVar26 + 0x2b3d44;\n  pRVar9 = this_01;\n  if (pIVar13->shndx_ == 0xffffffff) {\n    pRVar21 = *(Relobj **)(puVar26 + 0x2aea40);\n    if ((this_01->super_Object)._vptr_Object != (_func_int_varargs **)0xffffffff) {\n      pRVar2 = Input_section::relobj((Input_section *)this_01);\n      iVar4 = (**(code **)(puStack_68 + -0x70ac))(pRVar2,*(int *)(puStack_68 + -0x77f0) + 0x35d0);\nLAB_00215650:\n      if (iVar4 != 0) {\n        return false;\n      }\n      pRVar2 = *(Relobj **)(puStack_68 + -0x77f0);\n      if (pIVar13->shndx_ == 0xffffffff) {\n        if ((this_01->super_Object)._vptr_Object != (_func_int_varargs **)0xffffffff) {\n          pRVar9 = Input_section::relobj((Input_section *)this_01);\n          iVar24 = (**(code **)(puStack_68 + -0x70ac))\n                             (pRVar9,*(int *)(puStack_68 + -0x77f0) + 0x35dc);\n          goto LAB_00215740;\n        }\n      }\n      else {\nLAB_00215690:\n        pRVar3 = Input_section::relobj(pIVar13);\n        iVar4 = (**(code **)(puStack_68 + -0x70ac))\n                          (pRVar3,&pRVar2[0x84].output_sections_.\n                                   super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                   ._M_impl._M_finish);\n        if ((this_01->super_Object)._vptr_Object == (_func_int_varargs **)0xffffffff) {\n          if (iVar4 != 0) {\n            return false;\n          }\n        }\n        else {\n          pRVar3 = Input_section::relobj((Input_section *)this_01);\n          __s = (Input_file *)\n                &pRVar2[0x84].output_sections_.\n                 super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                 _M_impl._M_finish;\n          iVar24 = (**(code **)(puStack_68 + -0x70ac))();\n          if (iVar4 != 0) {\n            if (iVar24 == 0) {\n              return false;\n            }\n            goto LAB_002155ac;\n          }\nLAB_00215740:\n          if (iVar24 != 0) {\n            return true;\n          }\n        }\n      }\n    }\n    pcVar27 = *(code **)(puStack_68 + -0x6ae0);\nLAB_0021575c:\n    iVar24 = (*pcVar27)(&pIVar13[1].p2align_,0x2e,1);\n    __s = (Input_file *)0x2e;\n    pRVar3 = (Relobj *)&(this_01->super_Object).input_file_;\n    iVar4 = (**(code **)(puStack_68 + -0x6ae0))(pRVar3,0x2e,1);\n    if (iVar24 == -1) {\n      if (iVar4 != -1) {\n        return true;\n      }\n    }\n    else if (iVar4 == -1) {\n      return false;\n    }\n    uVar17 = *(uint *)((int)&(this_01->super_Object).name_.field_2 + 0xc);\n    uVar28 = pIVar13->section_order_index_;\n    puVar26 = puStack_68;\n    if (uVar17 != 0xffffffff) {\n      if (uVar28 != 0) {\n        uVar6 = *(uint *)((int)&(this_01->super_Object).name_.field_2 + 8);\n        pRVar3 = (Relobj *)(uint)(uVar28 < uVar6);\n        if (uVar6 != 0) {\n          if (pRVar3 != (Relobj *)0x0) {\n            return true;\n          }\n          if (uVar6 < uVar28) {\n            return false;\n          }\n        }\n      }\n      pRVar2 = *(Relobj **)&pIVar13[1].u1_;\n      pRVar21 = *(Relobj **)&(this_01->super_Object).offset_;\n      pRVar9 = pRVar21;\n      if (pRVar2 <= pRVar21) {\n        pRVar9 = pRVar2;\n      }\n      if (pRVar9 != (Relobj *)0x0) {\n        __s = (this_01->super_Object).input_file_;\n        pRVar3 = (Relobj *)pIVar13[1].p2align_;\n        iVar24 = (**(code **)(puStack_68 + -0x354c))();\n        if (iVar24 != 0) {\n          return SUB41((uint)iVar24 >> 0x1f,0);\n        }\n      }\n      if ((int)pRVar2 - (int)pRVar21 != 0) {\n        return SUB41((uint)((int)pRVar2 - (int)pRVar21) >> 0x1f,0);\n      }\n      uVar28 = pIVar13[1].shndx_;\n      bVar1 = uVar28 < uVar17;\njoined_r0x002155bc:\n      if (uVar28 != 0xffffffff) {\n        return bVar1;\n      }\n      goto LAB_00215844;\n    }\n  }\n  else {\n    pRVar21 = *(Relobj **)(puVar26 + 0x2aea40);\n    pRVar2 = *(Relobj **)(puVar26 + 0x2ac554);\n    pRVar3 = Input_section::relobj(pIVar13);\n    iVar24 = (**(code **)(puStack_68 + -0x70ac))(pRVar3,&pRVar2[0x84].super_Object.xindex_);\n    if ((this_01->super_Object)._vptr_Object == (_func_int_varargs **)0xffffffff) {\n      if (iVar24 != 0) {\n        return true;\n      }\n      pcVar27 = *(code **)(puStack_68 + -0x6ae0);\n      if (pIVar13->shndx_ != 0xffffffff) {\n        pRVar2 = *(Relobj **)(puStack_68 + -0x77f0);\n        goto LAB_00215690;\n      }\n      goto LAB_0021575c;\n    }\n    pRVar3 = Input_section::relobj((Input_section *)this_01);\n    __s = (Input_file *)&pRVar2[0x84].super_Object.xindex_;\n    iVar4 = (**(code **)(puStack_68 + -0x70ac))();\n    if (iVar24 == 0) goto LAB_00215650;\n    if (iVar4 == 0) {\n      return true;\n    }\nLAB_002155ac:\n    uVar17 = 0xffffffff;\n    if (pIVar13[1].shndx_ != 0xffffffff) {\n      uVar28 = *(uint *)((int)&(this_01->super_Object).name_.field_2 + 0xc);\n      bVar1 = pIVar13[1].shndx_ < uVar28;\n      goto joined_r0x002155bc;\n    }\nLAB_00215844:\n    puVar26 = puStack_68;\n    Input_section_sort_entry::index((Input_section_sort_entry *)pRVar3,(char *)__s,(int)pRVar9);\n  }\n  iVar14 = 0xcf5;\n  pcVar27 = *(code **)(puVar26 + -0x7810);\n  iVar16 = *(int *)(puVar26 + -0x7924) + -0x30e8;\n  pcVar29 = Input_section_sort_init_fini_compare::operator();\n  (*pcVar27)(*(int *)(puVar26 + -0x7924) + -0x48b4);\n  iVar22 = iVar14 + 0x1c;\n  iVar23 = iVar16 + 0x1c;\n  pRStack_90 = this_01;\n  uStack_8c = uVar17;\n  pIStack_88 = pIVar13;\n  pRStack_84 = pRVar21;\n  pRStack_80 = pRVar2;\n  pcStack_7c = pcVar29;\n  iVar24 = (**(code **)(pcVar27 + 0x2acef4))(iVar22,0x2e,1);\n  iVar4 = (**(code **)(pcVar27 + 0x2acef4))(iVar23,0x2e,1);\n  if (iVar24 == -1) {\n    if (iVar4 != -1) {\n      return false;\n    }\n    iVar4 = *(int *)(pcVar27 + 0x2ac1e4);\n    iVar24 = (**(code **)(pcVar27 + 0x2acf7c))(iVar22,iVar4 + 0x3598);\n    if ((iVar24 == 0) ||\n       (iVar24 = (**(code **)(pcVar27 + 0x2acf7c))(iVar22,*(int *)(pcVar27 + 0x2ac1e4) + 0x35b8),\n       iVar24 == 0)) {\n      if (*(int *)(iVar14 + 0x20) != *(int *)(iVar16 + 0x20)) {\n        return false;\n      }\n      if ((*(int *)(iVar14 + 0x20) != 0) &&\n         (iVar24 = (**(code **)(pcVar27 + 0x2b0488))\n                             (*(undefined4 *)(iVar14 + 0x1c),*(undefined4 *)(iVar16 + 0x1c)),\n         iVar24 != 0)) {\n        return false;\n      }\n      pcVar29 = *(code **)(pcVar27 + 0x2acf7c);\n    }\n    else {\n      pcVar29 = *(code **)(pcVar27 + 0x2acf7c);\n    }\n    __s_00 = (char **)(iVar4 + 0x3598);\n    iVar24 = (*pcVar29)(iVar23);\n    if (iVar24 == 0) {\n      iVar24 = *(int *)(iVar16 + 0x20);\n    }\n    else {\n      __s_00 = (char **)(*(int *)(pcVar27 + 0x2ac1e4) + 0x35b8);\n      iVar24 = (**(code **)(pcVar27 + 0x2acf7c))(iVar23);\n      if (iVar24 != 0) goto LAB_00215a54;\n      iVar24 = *(int *)(iVar16 + 0x20);\n    }\n    if (iVar24 == *(int *)(iVar14 + 0x20)) {\n      if (iVar24 != 0) {\n        __s_00 = *(char ***)(iVar14 + 0x1c);\n        iVar24 = (**(code **)(pcVar27 + 0x2b0488))(*(undefined4 *)(iVar16 + 0x1c));\n        if (iVar24 != 0) {\n          return true;\n        }\n      }\nLAB_00215a54:\n      while( true ) {\n        uVar28 = *(uint *)(iVar16 + 0x18);\n        uVar17 = *(uint *)(iVar14 + 0x14);\n        if (uVar28 == 0xffffffff) break;\n        if (uVar17 != 0) {\n          uVar6 = *(uint *)(iVar16 + 0x14);\n          if (uVar6 != 0) {\n            if (uVar17 < uVar6) {\n              return true;\n            }\n            if (uVar6 < uVar17) {\n              return false;\n            }\n          }\n        }\n        uVar12 = *(uint *)(iVar14 + 0x20);\n        uVar17 = *(uint *)(iVar16 + 0x20);\n        uVar6 = uVar17;\n        if (uVar12 <= uVar17) {\n          uVar6 = uVar12;\n        }\n        if (uVar6 != 0) {\n          __s_00 = *(char ***)(iVar16 + 0x1c);\n          iVar24 = (**(code **)(pcVar27 + 0x2b0488))(*(undefined4 *)(iVar14 + 0x1c));\n          if (iVar24 != 0) goto LAB_00215bf4;\n        }\n        iVar24 = uVar12 - uVar17;\n        if (iVar24 != 0) {\nLAB_00215bf4:\n          return SUB41((uint)iVar24 >> 0x1f,0);\n        }\n        if (*(uint *)(iVar14 + 0x18) != 0xffffffff) {\n          return *(uint *)(iVar14 + 0x18) < uVar28;\n        }\n        Input_section_sort_entry::index((Input_section_sort_entry *)0xffffffff,(char *)__s_00,uVar6)\n        ;\nLAB_00215ae8:\n        iVar24 = (**(code **)(pcVar27 + 0x2b0334))(uVar28 + 7,apcStack_98,10);\n        if (*apcStack_98[0] == '\0') {\n          uVar28 = 0xffff - iVar24;\n        }\n        else {\nLAB_00215994:\n          uVar28 = 0;\n        }\nLAB_00215998:\n        ppcVar20 = *(char ***)(iVar16 + 0x1c);\n        iVar24 = (**(code **)(pcVar27 + 0x2b0254))(uVar17 + 0x35c0,ppcVar20,7);\n        if ((iVar24 == 0) ||\n           (iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                               (*(int *)(pcVar27 + 0x2ac1e4) + 0x35c8,ppcVar20,7), iVar24 == 0)) {\n          __s_00 = apcStack_98;\n          iVar24 = (**(code **)(pcVar27 + 0x2b0334))((char *)((int)ppcVar20 + 7),__s_00,10);\n          if (*apcStack_98[0] != '\0') goto LAB_00215bfc;\n          uVar17 = 0xffff - iVar24;\nLAB_00215a3c:\n          if (uVar28 < uVar17) {\n            return true;\n          }\n        }\n        else {\n          iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                             (*(int *)(pcVar27 + 0x2ac1e4) + 0x4150,ppcVar20,0xc);\n          if ((iVar24 == 0) ||\n             (__s_00 = ppcVar20,\n             iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                                (*(int *)(pcVar27 + 0x2ac1e4) + 0x4160,ppcVar20,0xc), iVar24 == 0))\n          {\n            __s_00 = apcStack_98;\n            uVar17 = (**(code **)(pcVar27 + 0x2b0334))(ppcVar20 + 3,__s_00,10);\n            if (*apcStack_98[0] == '\0') goto LAB_00215a3c;\n          }\nLAB_00215bfc:\n          uVar17 = 0;\n        }\n        if (uVar17 < uVar28) {\n          return false;\n        }\n      }\n      iVar24 = 0xcf5;\n      pcVar29 = *(code **)(pcVar27 + 0x2ac1c4);\n      iVar4 = *(int *)(pcVar27 + 0x2ac0b0) + -0x30e8;\n      (*pcVar29)(*(int *)(pcVar27 + 0x2ac0b0) + -0x48b4);\n      if (*(uint *)(iVar24 + 0x18) != 0xffffffff) {\n        if (*(uint *)(iVar4 + 0x18) != 0xffffffff) {\n          if (*(uint *)(iVar24 + 0x14) != *(uint *)(iVar4 + 0x14)) {\n            return *(uint *)(iVar24 + 0x14) < *(uint *)(iVar4 + 0x14);\n          }\n          return *(uint *)(iVar24 + 0x18) < *(uint *)(iVar4 + 0x18);\n        }\n      }\n      pcVar15 = (char *)0xcf5;\n      pcVar27 = *(code **)(pcVar29 + 0x2abd98);\n      iVar16 = *(int *)(pcVar29 + 0x2abc84) + -0x30e8;\n      (*pcVar27)(*(int *)(pcVar29 + 0x2abc84) + -0x48b4);\n      pcVar5 = pcVar15;\n      iVar24 = iVar16;\n      iVar4 = (**(code **)(pcVar27 + 0x2ae23c))(*(undefined4 *)(pcVar15 + 0x1c));\n      this_00 = *(Input_section_sort_entry **)(iVar16 + 0x1c);\n      iVar14 = (**(code **)(pcVar27 + 0x2ae23c))();\n      if (iVar4 != iVar14) {\n        if (iVar4 < 0) {\n          return false;\n        }\n        if (-1 < iVar14) {\n          return iVar4 < iVar14;\n        }\n        return true;\n      }\n      if ((*(uint *)(pcVar15 + 0x18) != 0xffffffff) && (*(uint *)(iVar16 + 0x18) != 0xffffffff)) {\n        return *(uint *)(pcVar15 + 0x18) < *(uint *)(iVar16 + 0x18);\n      }\n      iVar4 = *(int *)(pcVar27 + 0x2ae200) + 0x3338;\n      Input_section_sort_entry::index(this_00,pcVar5,iVar24);\n      uVar6 = *(uint *)(pcVar5 + 0x20);\n      uVar28 = *(uint *)(iVar24 + 0x20);\n      uVar17 = uVar28;\n      if (uVar28 < uVar6 == 0) {\n        uVar17 = uVar6;\n      }\n      pcVar15 = pcVar5;\n      uVar12 = (uint)(uVar28 < uVar6);\n      if (uVar17 != 0) {\n        pcVar15 = *(char **)(iVar24 + 0x1c);\n        this_00 = *(Input_section_sort_entry **)(pcVar5 + 0x1c);\n        iVar4 = (**(code **)(iVar4 + 0x2aff08))();\n        uVar12 = uVar17;\n        if (iVar4 != 0) goto LAB_00215e90;\n      }\n      iVar4 = uVar6 - uVar28;\n      if (iVar4 != 0) {\nLAB_00215e90:\n        return SUB41((uint)iVar4 >> 0x1f,0);\n      }\n      if ((*(Input_section_sort_entry **)(pcVar5 + 0x18) != (Input_section_sort_entry *)0xffffffff)\n         && (this_00 = *(Input_section_sort_entry **)(iVar24 + 0x18),\n            this_00 != (Input_section_sort_entry *)0xffffffff)) {\n        return *(Input_section_sort_entry **)(pcVar5 + 0x18) < this_00;\n      }\n      pcVar5 = Input_section_sort_entry::index(this_00,pcVar15,uVar12);\n      pIVar13 = (Input_section *)this_00[2].input_section_.p2align_;\n      this_02 = (Input_section *)this_00[2].input_section_.shndx_;\n      if (this_02 == pIVar13) {\n        return (bool)(char)pcVar5;\n      }\n      do {\n        uVar17 = 0xfffffffc;\n        if (this_02->shndx_ + 4 < 4) {\n          if (this_02->shndx_ == 0xfffffffc) {\n            pRVar2 = (Relobj *)(((this_02->u2_).object)->super_Object).xindex_;\n            goto LAB_00215f3c;\n          }\n        }\n        else {\n          pRVar2 = Input_section::relobj(this_02);\nLAB_00215f3c:\n          uVar17 = Input_section::shndx(this_02);\n          pcVar5 = *(char **)(pcVar15 + 8);\n          pcVar11 = pcVar15 + 4;\n          if (*(char **)(pcVar15 + 8) != (char *)0x0) {\n            do {\n              if ((*(Relobj **)(pcVar5 + 0x10) < pRVar2) ||\n                 ((pRVar2 == *(Relobj **)(pcVar5 + 0x10) && (*(uint *)(pcVar5 + 0x14) < uVar17)))) {\n                pcVar7 = *(char **)(pcVar5 + 0xc);\n              }\n              else {\n                pcVar7 = *(char **)(pcVar5 + 8);\n                pcVar11 = pcVar5;\n              }\n              pcVar5 = pcVar7;\n            } while (pcVar7 != (char *)0x0);\n            if ((((pcVar15 + 4 != pcVar11) && (*(Relobj **)(pcVar11 + 0x10) <= pRVar2)) &&\n                ((pRVar2 != *(Relobj **)(pcVar11 + 0x10) ||\n                 (uVar17 = (uint)(uVar17 < *(uint *)(pcVar11 + 0x14)), uVar17 == 0)))) &&\n               (uVar17 = *(uint *)(pcVar11 + 0x18), uVar17 != 0)) {\n              pIVar13 = (Input_section *)this_00[2].input_section_.p2align_;\n              this_02->section_order_index_ = uVar17;\n              uVar17 = *(uint *)((int)&this_00[2].section_name_.field_2 + 4) & 0xffbfffff | 0x400000\n              ;\n              *(uint *)((int)&this_00[2].section_name_.field_2 + 4) = uVar17;\n              goto LAB_00215fdc;\n            }\n          }\n          pIVar13 = (Input_section *)this_00[2].input_section_.p2align_;\n        }\nLAB_00215fdc:\n        this_02 = this_02 + 1;\n        if (pIVar13 == this_02) {\n          return (bool)(char)uVar17;\n        }\n      } while( true );\n    }\n  }\n  else {\n    uVar17 = *(uint *)(pcVar27 + 0x2ac1e4);\n    if (iVar4 != -1) {\n      uVar28 = *(uint *)(iVar14 + 0x1c);\n      iVar24 = (**(code **)(pcVar27 + 0x2b0254))(uVar17 + 0x35c0,uVar28,7);\n      if (iVar24 == 0) goto LAB_00215ae8;\n      iVar24 = (**(code **)(pcVar27 + 0x2b0254))(*(int *)(pcVar27 + 0x2ac1e4) + 0x35c8,uVar28,7);\n      if (iVar24 == 0) goto LAB_00215ae8;\n      iVar24 = (**(code **)(pcVar27 + 0x2b0254))(*(int *)(pcVar27 + 0x2ac1e4) + 0x4150,uVar28,0xc);\n      if ((iVar24 != 0) &&\n         (iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                             (*(int *)(pcVar27 + 0x2ac1e4) + 0x4160,uVar28,0xc), iVar24 != 0))\n      goto LAB_00215994;\n      uVar28 = (**(code **)(pcVar27 + 0x2b0334))(uVar28 + 0xc,apcStack_98,10);\n      if (*apcStack_98[0] == '\0') goto LAB_00215998;\n      goto LAB_00215994;\n    }\n  }\n  return true;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Output_section::" identifier : : identifier : :) (function_declarator "find_starting_output_address\n          (Output_section *this,Relobj *object,uint shndx,uint64_t *paddr)" identifier (parameter_list "(Output_section *this,Relobj *object,uint shndx,uint64_t *paddr)" ( (parameter_declaration "Output_section *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Relobj *object" type_identifier (pointer_declarator "*object" * identifier)) , (parameter_declaration "uint shndx" type_identifier identifier) , (parameter_declaration "uint64_t *paddr" primitive_type (pointer_declarator "*paddr" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  Relobj *pRVar2;\n  Relobj *pRVar3;\n  int iVar4;\n  char *pcVar5;\n  uint uVar6;\n  char *pcVar7;\n  pointer pIVar8;\n  Relobj *pRVar9;\n  uint uVar10;\n  Input_section_sort_entry *this_00;\n  char *pcVar11;\n  uint uVar12;\n  Output_file *of;\n  Input_section *pIVar13;\n  Input_file *__s;\n  int iVar14;\n  char **__s_00;\n  char *pcVar15;\n  Relobj *this_01;\n  int iVar16;\n  uint uVar17;\n  Input_section *this_02;\n  pointer pIVar18;\n  pointer pIVar19;\n  char **ppcVar20;\n  Relobj *pRVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  _func_int_varargs *p_Var25;\n  undefined *puVar26;\n  code *pcVar27;\n  uint uVar28;\n  code *pcVar29;\n  char *apcStack_98 [2];\n  Relobj *pRStack_90;\n  uint uStack_8c;\n  Input_section *pIStack_88;\n  Relobj *pRStack_84;\n  Relobj *pRStack_80;\n  code *pcStack_7c;\n  undefined *puStack_68;\n  \n  pRVar2 = (Relobj *)(*(code *)PTR_find_merge_section_004c3f38)(object,shndx);\n  puVar26 = PTR_do_addralign_004c34e4;\n  if (pRVar2 == (Relobj *)0x0) {\n    return false;\n  }\n  iVar24 = -(*(int *)&(this->super_Output_data).field_0x20 >> 0x1f);\n  if (iVar24 != 0) {\n    uVar28 = (uint)this->first_input_offset_;\n    uVar17 = uVar28 + (int)(this->super_Output_data).address_;\n    pIVar18 = (this->input_sections_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_start;\n    pIVar8 = (this->input_sections_).\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             ._M_impl._M_finish;\n    uVar28 = (uint)(uVar17 < uVar28) +\n             *(int *)&this->first_input_offset_ + *(int *)&(this->super_Output_data).address_;\n    if (pIVar8 == pIVar18) {\n      return false;\n    }\n    do {\n      while( true ) {\n        uVar6 = pIVar18->p2align_;\n        uVar12 = pIVar18->shndx_ + 4;\n        if (uVar6 != 0) break;\n        of = (Output_file *)(uint)(uVar12 < 4);\n        uVar12 = uVar17;\n        if (of != (Output_file *)0x0) {\n          pRVar9 = (pIVar18->u2_).object;\n          p_Var25 = (pRVar9->super_Object)._vptr_Object[3];\n          if (p_Var25 != (_func_int_varargs *)puVar26) {\n            uVar10 = (*p_Var25)();\n            uVar12 = pIVar18->shndx_ + 4;\n            goto LAB_0021540c;\n          }\n          uVar10 = (pRVar9->super_Object).shnum_;\n          uVar6 = *(uint *)&(pRVar9->super_Object).field_0x2c;\n          if (uVar10 != 0 || uVar6 != 0) goto LAB_00215368;\n          goto LAB_002153a8;\n        }\nLAB_00215424:\n        pIVar19 = pIVar18 + 1;\n        uVar17 = uVar12 + *(int *)((int)&pIVar18->u1_ + 4);\n        uVar28 = (uint)(uVar17 < uVar12) + uVar28 + *(int *)&pIVar18->u1_;\n        pIVar18 = pIVar19;\n        if (pIVar8 == pIVar19) {\n          return false;\n        }\n      }\n      uVar10 = uVar6 - 1;\n      uVar6 = 1 << (uVar10 & 0x1f);\n      if ((uVar10 & 0x20) == 0) {\n        uVar10 = 0;\n      }\n      else {\n        uVar10 = uVar6;\n        uVar6 = 0;\n      }\nLAB_0021540c:\n      of = (Output_file *)(uint)(uVar12 < 4);\n      if (uVar10 != 0 || uVar6 != 0) {\nLAB_00215368:\n        uVar12 = uVar17 - 1;\n        bVar1 = uVar12 < uVar17;\n        uVar17 = uVar12 + uVar6 & -uVar6;\n        uVar28 = (uint)(uVar12 + uVar6 < uVar12) + (uint)bVar1 + (uVar28 - 1) + uVar10 &\n                 -(uint)(-uVar6 != 0) - uVar10;\n      }\n      if (of == (Output_file *)0x0) {\n        pIVar8 = (this->input_sections_).\n                 super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                 ._M_impl._M_finish;\n        uVar12 = uVar17;\n        goto LAB_00215424;\n      }\n      pRVar9 = (pIVar18->u2_).object;\n      uVar12 = uVar17;\nLAB_002153a8:\n      if (pRVar2 == pRVar9) {\n        *(uint *)paddr = uVar28;\n        *(uint *)((int)paddr + 4) = uVar12;\n        return SUB41(iVar24,0);\n      }\n      pIVar18 = pIVar18 + 1;\n      if (-1 < *(int *)&(pRVar9->super_Object).offset_ << 1) {\n                    /* WARNING: Subroutine does not return */\n        Output_data_const_buffer::do_write((Output_data_const_buffer *)pRVar9,of);\n      }\n      pIVar8 = (this->input_sections_).\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               ._M_impl._M_finish;\n      uVar17 = uVar12 + *(int *)((int)&(pRVar9->super_Object).name_.field_2 + 8);\n      uVar28 = (uint)(uVar17 < uVar12) +\n               uVar28 + *(int *)((int)&(pRVar9->super_Object).name_.field_2 + 4);\n      if (pIVar8 == pIVar18) {\n        return false;\n      }\n    } while( true );\n  }\n  pIVar13 = (Input_section *)&DAT_000000c5;\n  this_01 = (Relobj *)(PTR_s_in_a_linker_script_004c191c + -0x2a40);\n  puVar26 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574);\n  puStack_68 = puVar26 + 0x2b3d44;\n  pRVar9 = this_01;\n  if (pIVar13->shndx_ == 0xffffffff) {\n    pRVar21 = *(Relobj **)(puVar26 + 0x2aea40);\n    if ((this_01->super_Object)._vptr_Object != (_func_int_varargs **)0xffffffff) {\n      pRVar2 = Input_section::relobj((Input_section *)this_01);\n      iVar4 = (**(code **)(puStack_68 + -0x70ac))(pRVar2,*(int *)(puStack_68 + -0x77f0) + 0x35d0);\nLAB_00215650:\n      if (iVar4 != 0) {\n        return false;\n      }\n      pRVar2 = *(Relobj **)(puStack_68 + -0x77f0);\n      if (pIVar13->shndx_ == 0xffffffff) {\n        if ((this_01->super_Object)._vptr_Object != (_func_int_varargs **)0xffffffff) {\n          pRVar9 = Input_section::relobj((Input_section *)this_01);\n          iVar24 = (**(code **)(puStack_68 + -0x70ac))\n                             (pRVar9,*(int *)(puStack_68 + -0x77f0) + 0x35dc);\n          goto LAB_00215740;\n        }\n      }\n      else {\nLAB_00215690:\n        pRVar3 = Input_section::relobj(pIVar13);\n        iVar4 = (**(code **)(puStack_68 + -0x70ac))\n                          (pRVar3,&pRVar2[0x84].output_sections_.\n                                   super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                   ._M_impl._M_finish);\n        if ((this_01->super_Object)._vptr_Object == (_func_int_varargs **)0xffffffff) {\n          if (iVar4 != 0) {\n            return false;\n          }\n        }\n        else {\n          pRVar3 = Input_section::relobj((Input_section *)this_01);\n          __s = (Input_file *)\n                &pRVar2[0x84].output_sections_.\n                 super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                 _M_impl._M_finish;\n          iVar24 = (**(code **)(puStack_68 + -0x70ac))();\n          if (iVar4 != 0) {\n            if (iVar24 == 0) {\n              return false;\n            }\n            goto LAB_002155ac;\n          }\nLAB_00215740:\n          if (iVar24 != 0) {\n            return true;\n          }\n        }\n      }\n    }\n    pcVar27 = *(code **)(puStack_68 + -0x6ae0);\nLAB_0021575c:\n    iVar24 = (*pcVar27)(&pIVar13[1].p2align_,0x2e,1);\n    __s = (Input_file *)0x2e;\n    pRVar3 = (Relobj *)&(this_01->super_Object).input_file_;\n    iVar4 = (**(code **)(puStack_68 + -0x6ae0))(pRVar3,0x2e,1);\n    if (iVar24 == -1) {\n      if (iVar4 != -1) {\n        return true;\n      }\n    }\n    else if (iVar4 == -1) {\n      return false;\n    }\n    uVar17 = *(uint *)((int)&(this_01->super_Object).name_.field_2 + 0xc);\n    uVar28 = pIVar13->section_order_index_;\n    puVar26 = puStack_68;\n    if (uVar17 != 0xffffffff) {\n      if (uVar28 != 0) {\n        uVar6 = *(uint *)((int)&(this_01->super_Object).name_.field_2 + 8);\n        pRVar3 = (Relobj *)(uint)(uVar28 < uVar6);\n        if (uVar6 != 0) {\n          if (pRVar3 != (Relobj *)0x0) {\n            return true;\n          }\n          if (uVar6 < uVar28) {\n            return false;\n          }\n        }\n      }\n      pRVar2 = *(Relobj **)&pIVar13[1].u1_;\n      pRVar21 = *(Relobj **)&(this_01->super_Object).offset_;\n      pRVar9 = pRVar21;\n      if (pRVar2 <= pRVar21) {\n        pRVar9 = pRVar2;\n      }\n      if (pRVar9 != (Relobj *)0x0) {\n        __s = (this_01->super_Object).input_file_;\n        pRVar3 = (Relobj *)pIVar13[1].p2align_;\n        iVar24 = (**(code **)(puStack_68 + -0x354c))();\n        if (iVar24 != 0) {\n          return SUB41((uint)iVar24 >> 0x1f,0);\n        }\n      }\n      if ((int)pRVar2 - (int)pRVar21 != 0) {\n        return SUB41((uint)((int)pRVar2 - (int)pRVar21) >> 0x1f,0);\n      }\n      uVar28 = pIVar13[1].shndx_;\n      bVar1 = uVar28 < uVar17;\njoined_r0x002155bc:\n      if (uVar28 != 0xffffffff) {\n        return bVar1;\n      }\n      goto LAB_00215844;\n    }\n  }\n  else {\n    pRVar21 = *(Relobj **)(puVar26 + 0x2aea40);\n    pRVar2 = *(Relobj **)(puVar26 + 0x2ac554);\n    pRVar3 = Input_section::relobj(pIVar13);\n    iVar24 = (**(code **)(puStack_68 + -0x70ac))(pRVar3,&pRVar2[0x84].super_Object.xindex_);\n    if ((this_01->super_Object)._vptr_Object == (_func_int_varargs **)0xffffffff) {\n      if (iVar24 != 0) {\n        return true;\n      }\n      pcVar27 = *(code **)(puStack_68 + -0x6ae0);\n      if (pIVar13->shndx_ != 0xffffffff) {\n        pRVar2 = *(Relobj **)(puStack_68 + -0x77f0);\n        goto LAB_00215690;\n      }\n      goto LAB_0021575c;\n    }\n    pRVar3 = Input_section::relobj((Input_section *)this_01);\n    __s = (Input_file *)&pRVar2[0x84].super_Object.xindex_;\n    iVar4 = (**(code **)(puStack_68 + -0x70ac))();\n    if (iVar24 == 0) goto LAB_00215650;\n    if (iVar4 == 0) {\n      return true;\n    }\nLAB_002155ac:\n    uVar17 = 0xffffffff;\n    if (pIVar13[1].shndx_ != 0xffffffff) {\n      uVar28 = *(uint *)((int)&(this_01->super_Object).name_.field_2 + 0xc);\n      bVar1 = pIVar13[1].shndx_ < uVar28;\n      goto joined_r0x002155bc;\n    }\nLAB_00215844:\n    puVar26 = puStack_68;\n    Input_section_sort_entry::index((Input_section_sort_entry *)pRVar3,(char *)__s,(int)pRVar9);\n  }\n  iVar14 = 0xcf5;\n  pcVar27 = *(code **)(puVar26 + -0x7810);\n  iVar16 = *(int *)(puVar26 + -0x7924) + -0x30e8;\n  pcVar29 = Input_section_sort_init_fini_compare::operator();\n  (*pcVar27)(*(int *)(puVar26 + -0x7924) + -0x48b4);\n  iVar22 = iVar14 + 0x1c;\n  iVar23 = iVar16 + 0x1c;\n  pRStack_90 = this_01;\n  uStack_8c = uVar17;\n  pIStack_88 = pIVar13;\n  pRStack_84 = pRVar21;\n  pRStack_80 = pRVar2;\n  pcStack_7c = pcVar29;\n  iVar24 = (**(code **)(pcVar27 + 0x2acef4))(iVar22,0x2e,1);\n  iVar4 = (**(code **)(pcVar27 + 0x2acef4))(iVar23,0x2e,1);\n  if (iVar24 == -1) {\n    if (iVar4 != -1) {\n      return false;\n    }\n    iVar4 = *(int *)(pcVar27 + 0x2ac1e4);\n    iVar24 = (**(code **)(pcVar27 + 0x2acf7c))(iVar22,iVar4 + 0x3598);\n    if ((iVar24 == 0) ||\n       (iVar24 = (**(code **)(pcVar27 + 0x2acf7c))(iVar22,*(int *)(pcVar27 + 0x2ac1e4) + 0x35b8),\n       iVar24 == 0)) {\n      if (*(int *)(iVar14 + 0x20) != *(int *)(iVar16 + 0x20)) {\n        return false;\n      }\n      if ((*(int *)(iVar14 + 0x20) != 0) &&\n         (iVar24 = (**(code **)(pcVar27 + 0x2b0488))\n                             (*(undefined4 *)(iVar14 + 0x1c),*(undefined4 *)(iVar16 + 0x1c)),\n         iVar24 != 0)) {\n        return false;\n      }\n      pcVar29 = *(code **)(pcVar27 + 0x2acf7c);\n    }\n    else {\n      pcVar29 = *(code **)(pcVar27 + 0x2acf7c);\n    }\n    __s_00 = (char **)(iVar4 + 0x3598);\n    iVar24 = (*pcVar29)(iVar23);\n    if (iVar24 == 0) {\n      iVar24 = *(int *)(iVar16 + 0x20);\n    }\n    else {\n      __s_00 = (char **)(*(int *)(pcVar27 + 0x2ac1e4) + 0x35b8);\n      iVar24 = (**(code **)(pcVar27 + 0x2acf7c))(iVar23);\n      if (iVar24 != 0) goto LAB_00215a54;\n      iVar24 = *(int *)(iVar16 + 0x20);\n    }\n    if (iVar24 == *(int *)(iVar14 + 0x20)) {\n      if (iVar24 != 0) {\n        __s_00 = *(char ***)(iVar14 + 0x1c);\n        iVar24 = (**(code **)(pcVar27 + 0x2b0488))(*(undefined4 *)(iVar16 + 0x1c));\n        if (iVar24 != 0) {\n          return true;\n        }\n      }\nLAB_00215a54:\n      while( true ) {\n        uVar28 = *(uint *)(iVar16 + 0x18);\n        uVar17 = *(uint *)(iVar14 + 0x14);\n        if (uVar28 == 0xffffffff) break;\n        if (uVar17 != 0) {\n          uVar6 = *(uint *)(iVar16 + 0x14);\n          if (uVar6 != 0) {\n            if (uVar17 < uVar6) {\n              return true;\n            }\n            if (uVar6 < uVar17) {\n              return false;\n            }\n          }\n        }\n        uVar12 = *(uint *)(iVar14 + 0x20);\n        uVar17 = *(uint *)(iVar16 + 0x20);\n        uVar6 = uVar17;\n        if (uVar12 <= uVar17) {\n          uVar6 = uVar12;\n        }\n        if (uVar6 != 0) {\n          __s_00 = *(char ***)(iVar16 + 0x1c);\n          iVar24 = (**(code **)(pcVar27 + 0x2b0488))(*(undefined4 *)(iVar14 + 0x1c));\n          if (iVar24 != 0) goto LAB_00215bf4;\n        }\n        iVar24 = uVar12 - uVar17;\n        if (iVar24 != 0) {\nLAB_00215bf4:\n          return SUB41((uint)iVar24 >> 0x1f,0);\n        }\n        if (*(uint *)(iVar14 + 0x18) != 0xffffffff) {\n          return *(uint *)(iVar14 + 0x18) < uVar28;\n        }\n        Input_section_sort_entry::index((Input_section_sort_entry *)0xffffffff,(char *)__s_00,uVar6)\n        ;\nLAB_00215ae8:\n        iVar24 = (**(code **)(pcVar27 + 0x2b0334))(uVar28 + 7,apcStack_98,10);\n        if (*apcStack_98[0] == '\0') {\n          uVar28 = 0xffff - iVar24;\n        }\n        else {\nLAB_00215994:\n          uVar28 = 0;\n        }\nLAB_00215998:\n        ppcVar20 = *(char ***)(iVar16 + 0x1c);\n        iVar24 = (**(code **)(pcVar27 + 0x2b0254))(uVar17 + 0x35c0,ppcVar20,7);\n        if ((iVar24 == 0) ||\n           (iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                               (*(int *)(pcVar27 + 0x2ac1e4) + 0x35c8,ppcVar20,7), iVar24 == 0)) {\n          __s_00 = apcStack_98;\n          iVar24 = (**(code **)(pcVar27 + 0x2b0334))((char *)((int)ppcVar20 + 7),__s_00,10);\n          if (*apcStack_98[0] != '\0') goto LAB_00215bfc;\n          uVar17 = 0xffff - iVar24;\nLAB_00215a3c:\n          if (uVar28 < uVar17) {\n            return true;\n          }\n        }\n        else {\n          iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                             (*(int *)(pcVar27 + 0x2ac1e4) + 0x4150,ppcVar20,0xc);\n          if ((iVar24 == 0) ||\n             (__s_00 = ppcVar20,\n             iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                                (*(int *)(pcVar27 + 0x2ac1e4) + 0x4160,ppcVar20,0xc), iVar24 == 0))\n          {\n            __s_00 = apcStack_98;\n            uVar17 = (**(code **)(pcVar27 + 0x2b0334))(ppcVar20 + 3,__s_00,10);\n            if (*apcStack_98[0] == '\0') goto LAB_00215a3c;\n          }\nLAB_00215bfc:\n          uVar17 = 0;\n        }\n        if (uVar17 < uVar28) {\n          return false;\n        }\n      }\n      iVar24 = 0xcf5;\n      pcVar29 = *(code **)(pcVar27 + 0x2ac1c4);\n      iVar4 = *(int *)(pcVar27 + 0x2ac0b0) + -0x30e8;\n      (*pcVar29)(*(int *)(pcVar27 + 0x2ac0b0) + -0x48b4);\n      if (*(uint *)(iVar24 + 0x18) != 0xffffffff) {\n        if (*(uint *)(iVar4 + 0x18) != 0xffffffff) {\n          if (*(uint *)(iVar24 + 0x14) != *(uint *)(iVar4 + 0x14)) {\n            return *(uint *)(iVar24 + 0x14) < *(uint *)(iVar4 + 0x14);\n          }\n          return *(uint *)(iVar24 + 0x18) < *(uint *)(iVar4 + 0x18);\n        }\n      }\n      pcVar15 = (char *)0xcf5;\n      pcVar27 = *(code **)(pcVar29 + 0x2abd98);\n      iVar16 = *(int *)(pcVar29 + 0x2abc84) + -0x30e8;\n      (*pcVar27)(*(int *)(pcVar29 + 0x2abc84) + -0x48b4);\n      pcVar5 = pcVar15;\n      iVar24 = iVar16;\n      iVar4 = (**(code **)(pcVar27 + 0x2ae23c))(*(undefined4 *)(pcVar15 + 0x1c));\n      this_00 = *(Input_section_sort_entry **)(iVar16 + 0x1c);\n      iVar14 = (**(code **)(pcVar27 + 0x2ae23c))();\n      if (iVar4 != iVar14) {\n        if (iVar4 < 0) {\n          return false;\n        }\n        if (-1 < iVar14) {\n          return iVar4 < iVar14;\n        }\n        return true;\n      }\n      if ((*(uint *)(pcVar15 + 0x18) != 0xffffffff) && (*(uint *)(iVar16 + 0x18) != 0xffffffff)) {\n        return *(uint *)(pcVar15 + 0x18) < *(uint *)(iVar16 + 0x18);\n      }\n      iVar4 = *(int *)(pcVar27 + 0x2ae200) + 0x3338;\n      Input_section_sort_entry::index(this_00,pcVar5,iVar24);\n      uVar6 = *(uint *)(pcVar5 + 0x20);\n      uVar28 = *(uint *)(iVar24 + 0x20);\n      uVar17 = uVar28;\n      if (uVar28 < uVar6 == 0) {\n        uVar17 = uVar6;\n      }\n      pcVar15 = pcVar5;\n      uVar12 = (uint)(uVar28 < uVar6);\n      if (uVar17 != 0) {\n        pcVar15 = *(char **)(iVar24 + 0x1c);\n        this_00 = *(Input_section_sort_entry **)(pcVar5 + 0x1c);\n        iVar4 = (**(code **)(iVar4 + 0x2aff08))();\n        uVar12 = uVar17;\n        if (iVar4 != 0) goto LAB_00215e90;\n      }\n      iVar4 = uVar6 - uVar28;\n      if (iVar4 != 0) {\nLAB_00215e90:\n        return SUB41((uint)iVar4 >> 0x1f,0);\n      }\n      if ((*(Input_section_sort_entry **)(pcVar5 + 0x18) != (Input_section_sort_entry *)0xffffffff)\n         && (this_00 = *(Input_section_sort_entry **)(iVar24 + 0x18),\n            this_00 != (Input_section_sort_entry *)0xffffffff)) {\n        return *(Input_section_sort_entry **)(pcVar5 + 0x18) < this_00;\n      }\n      pcVar5 = Input_section_sort_entry::index(this_00,pcVar15,uVar12);\n      pIVar13 = (Input_section *)this_00[2].input_section_.p2align_;\n      this_02 = (Input_section *)this_00[2].input_section_.shndx_;\n      if (this_02 == pIVar13) {\n        return (bool)(char)pcVar5;\n      }\n      do {\n        uVar17 = 0xfffffffc;\n        if (this_02->shndx_ + 4 < 4) {\n          if (this_02->shndx_ == 0xfffffffc) {\n            pRVar2 = (Relobj *)(((this_02->u2_).object)->super_Object).xindex_;\n            goto LAB_00215f3c;\n          }\n        }\n        else {\n          pRVar2 = Input_section::relobj(this_02);\nLAB_00215f3c:\n          uVar17 = Input_section::shndx(this_02);\n          pcVar5 = *(char **)(pcVar15 + 8);\n          pcVar11 = pcVar15 + 4;\n          if (*(char **)(pcVar15 + 8) != (char *)0x0) {\n            do {\n              if ((*(Relobj **)(pcVar5 + 0x10) < pRVar2) ||\n                 ((pRVar2 == *(Relobj **)(pcVar5 + 0x10) && (*(uint *)(pcVar5 + 0x14) < uVar17)))) {\n                pcVar7 = *(char **)(pcVar5 + 0xc);\n              }\n              else {\n                pcVar7 = *(char **)(pcVar5 + 8);\n                pcVar11 = pcVar5;\n              }\n              pcVar5 = pcVar7;\n            } while (pcVar7 != (char *)0x0);\n            if ((((pcVar15 + 4 != pcVar11) && (*(Relobj **)(pcVar11 + 0x10) <= pRVar2)) &&\n                ((pRVar2 != *(Relobj **)(pcVar11 + 0x10) ||\n                 (uVar17 = (uint)(uVar17 < *(uint *)(pcVar11 + 0x14)), uVar17 == 0)))) &&\n               (uVar17 = *(uint *)(pcVar11 + 0x18), uVar17 != 0)) {\n              pIVar13 = (Input_section *)this_00[2].input_section_.p2align_;\n              this_02->section_order_index_ = uVar17;\n              uVar17 = *(uint *)((int)&this_00[2].section_name_.field_2 + 4) & 0xffbfffff | 0x400000\n              ;\n              *(uint *)((int)&this_00[2].section_name_.field_2 + 4) = uVar17;\n              goto LAB_00215fdc;\n            }\n          }\n          pIVar13 = (Input_section *)this_00[2].input_section_.p2align_;\n        }\nLAB_00215fdc:\n        this_02 = this_02 + 1;\n        if (pIVar13 == this_02) {\n          return (bool)(char)uVar17;\n        }\n      } while( true );\n    }\n  }\n  else {\n    uVar17 = *(uint *)(pcVar27 + 0x2ac1e4);\n    if (iVar4 != -1) {\n      uVar28 = *(uint *)(iVar14 + 0x1c);\n      iVar24 = (**(code **)(pcVar27 + 0x2b0254))(uVar17 + 0x35c0,uVar28,7);\n      if (iVar24 == 0) goto LAB_00215ae8;\n      iVar24 = (**(code **)(pcVar27 + 0x2b0254))(*(int *)(pcVar27 + 0x2ac1e4) + 0x35c8,uVar28,7);\n      if (iVar24 == 0) goto LAB_00215ae8;\n      iVar24 = (**(code **)(pcVar27 + 0x2b0254))(*(int *)(pcVar27 + 0x2ac1e4) + 0x4150,uVar28,0xc);\n      if ((iVar24 != 0) &&\n         (iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                             (*(int *)(pcVar27 + 0x2ac1e4) + 0x4160,uVar28,0xc), iVar24 != 0))\n      goto LAB_00215994;\n      uVar28 = (**(code **)(pcVar27 + 0x2b0334))(uVar28 + 0xc,apcStack_98,10);\n      if (*apcStack_98[0] == '\0') goto LAB_00215998;\n      goto LAB_00215994;\n    }\n  }\n  return true;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "Relobj *pRVar2;" type_identifier (pointer_declarator "*pRVar2" * identifier) ;) (declaration "Relobj *pRVar3;" type_identifier (pointer_declarator "*pRVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "pointer pIVar8;" type_identifier identifier ;) (declaration "Relobj *pRVar9;" type_identifier (pointer_declarator "*pRVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "Input_section_sort_entry *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "Output_file *of;" type_identifier (pointer_declarator "*of" * identifier) ;) (declaration "Input_section *pIVar13;" type_identifier (pointer_declarator "*pIVar13" * identifier) ;) (declaration "Input_file *__s;" type_identifier (pointer_declarator "*__s" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "char **__s_00;" primitive_type (pointer_declarator "**__s_00" * (pointer_declarator "*__s_00" * identifier)) ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "Relobj *this_01;" type_identifier (pointer_declarator "*this_01" * identifier) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "Input_section *this_02;" type_identifier (pointer_declarator "*this_02" * identifier) ;) (declaration "pointer pIVar18;" type_identifier identifier ;) (declaration "pointer pIVar19;" type_identifier identifier ;) (declaration "char **ppcVar20;" primitive_type (pointer_declarator "**ppcVar20" * (pointer_declarator "*ppcVar20" * identifier)) ;) (declaration "Relobj *pRVar21;" type_identifier (pointer_declarator "*pRVar21" * identifier) ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "_func_int_varargs *p_Var25;" type_identifier (pointer_declarator "*p_Var25" * identifier) ;) (declaration "undefined *puVar26;" type_identifier (pointer_declarator "*puVar26" * identifier) ;) (declaration "code *pcVar27;" type_identifier (pointer_declarator "*pcVar27" * identifier) ;) (declaration "uint uVar28;" type_identifier identifier ;) (declaration "code *pcVar29;" type_identifier (pointer_declarator "*pcVar29" * identifier) ;) (declaration "char *apcStack_98 [2];" primitive_type (pointer_declarator "*apcStack_98 [2]" * (array_declarator "apcStack_98 [2]" identifier [ number_literal ])) ;) (declaration "Relobj *pRStack_90;" type_identifier (pointer_declarator "*pRStack_90" * identifier) ;) (declaration "uint uStack_8c;" type_identifier identifier ;) (declaration "Input_section *pIStack_88;" type_identifier (pointer_declarator "*pIStack_88" * identifier) ;) (declaration "Relobj *pRStack_84;" type_identifier (pointer_declarator "*pRStack_84" * identifier) ;) (declaration "Relobj *pRStack_80;" type_identifier (pointer_declarator "*pRStack_80" * identifier) ;) (declaration "code *pcStack_7c;" type_identifier (pointer_declarator "*pcStack_7c" * identifier) ;) (declaration "undefined *puStack_68;" type_identifier (pointer_declarator "*puStack_68" * identifier) ;) (expression_statement "pRVar2 = (Relobj *)(*(code *)PTR_find_merge_section_004c3f38)(object,shndx);" (assignment_expression "pRVar2 = (Relobj *)(*(code *)PTR_find_merge_section_004c3f38)(object,shndx)" identifier = (cast_expression "(Relobj *)(*(code *)PTR_find_merge_section_004c3f38)(object,shndx)" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_find_merge_section_004c3f38)(object,shndx)" (parenthesized_expression "(*(code *)PTR_find_merge_section_004c3f38)" ( (pointer_expression "*(code *)PTR_find_merge_section_004c3f38" * (cast_expression "(code *)PTR_find_merge_section_004c3f38" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(object,shndx)" ( identifier , identifier ))))) ;) (expression_statement "puVar26 = PTR_do_addralign_004c34e4;" (assignment_expression "puVar26 = PTR_do_addralign_004c34e4" identifier = identifier) ;) (if_statement "if (pRVar2 == (Relobj *)0x0) {\n    return false;\n  }" if (parenthesized_expression "(pRVar2 == (Relobj *)0x0)" ( (binary_expression "pRVar2 == (Relobj *)0x0" identifier == (cast_expression "(Relobj *)0x0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return false;\n  }" { (return_statement "return false;" return false ;) })) (expression_statement "iVar24 = -(*(int *)&(this->super_Output_data).field_0x20 >> 0x1f);" (assignment_expression "iVar24 = -(*(int *)&(this->super_Output_data).field_0x20 >> 0x1f)" identifier = (unary_expression "-(*(int *)&(this->super_Output_data).field_0x20 >> 0x1f)" - (parenthesized_expression "(*(int *)&(this->super_Output_data).field_0x20 >> 0x1f)" ( (binary_expression "*(int *)&(this->super_Output_data).field_0x20 >> 0x1f" (pointer_expression "*(int *)&(this->super_Output_data).field_0x20" * (cast_expression "(int *)&(this->super_Output_data).field_0x20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this->super_Output_data).field_0x20" & (field_expression "(this->super_Output_data).field_0x20" (parenthesized_expression "(this->super_Output_data)" ( (field_expression "this->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) >> number_literal) )))) ;) (if_statement "if (iVar24 != 0) {\n    uVar28 = (uint)this->first_input_offset_;\n    uVar17 = uVar28 + (int)(this->super_Output_data).address_;\n    pIVar18 = (this->input_sections_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_start;\n    pIVar8 = (this->input_sections_).\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             ._M_impl._M_finish;\n    uVar28 = (uint)(uVar17 < uVar28) +\n             *(int *)&this->first_input_offset_ + *(int *)&(this->super_Output_data).address_;\n    if (pIVar8 == pIVar18) {\n      return false;\n    }\n    do {\n      while( true ) {\n        uVar6 = pIVar18->p2align_;\n        uVar12 = pIVar18->shndx_ + 4;\n        if (uVar6 != 0) break;\n        of = (Output_file *)(uint)(uVar12 < 4);\n        uVar12 = uVar17;\n        if (of != (Output_file *)0x0) {\n          pRVar9 = (pIVar18->u2_).object;\n          p_Var25 = (pRVar9->super_Object)._vptr_Object[3];\n          if (p_Var25 != (_func_int_varargs *)puVar26) {\n            uVar10 = (*p_Var25)();\n            uVar12 = pIVar18->shndx_ + 4;\n            goto LAB_0021540c;\n          }\n          uVar10 = (pRVar9->super_Object).shnum_;\n          uVar6 = *(uint *)&(pRVar9->super_Object).field_0x2c;\n          if (uVar10 != 0 || uVar6 != 0) goto LAB_00215368;\n          goto LAB_002153a8;\n        }\nLAB_00215424:\n        pIVar19 = pIVar18 + 1;\n        uVar17 = uVar12 + *(int *)((int)&pIVar18->u1_ + 4);\n        uVar28 = (uint)(uVar17 < uVar12) + uVar28 + *(int *)&pIVar18->u1_;\n        pIVar18 = pIVar19;\n        if (pIVar8 == pIVar19) {\n          return false;\n        }\n      }\n      uVar10 = uVar6 - 1;\n      uVar6 = 1 << (uVar10 & 0x1f);\n      if ((uVar10 & 0x20) == 0) {\n        uVar10 = 0;\n      }\n      else {\n        uVar10 = uVar6;\n        uVar6 = 0;\n      }\nLAB_0021540c:\n      of = (Output_file *)(uint)(uVar12 < 4);\n      if (uVar10 != 0 || uVar6 != 0) {\nLAB_00215368:\n        uVar12 = uVar17 - 1;\n        bVar1 = uVar12 < uVar17;\n        uVar17 = uVar12 + uVar6 & -uVar6;\n        uVar28 = (uint)(uVar12 + uVar6 < uVar12) + (uint)bVar1 + (uVar28 - 1) + uVar10 &\n                 -(uint)(-uVar6 != 0) - uVar10;\n      }\n      if (of == (Output_file *)0x0) {\n        pIVar8 = (this->input_sections_).\n                 super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                 ._M_impl._M_finish;\n        uVar12 = uVar17;\n        goto LAB_00215424;\n      }\n      pRVar9 = (pIVar18->u2_).object;\n      uVar12 = uVar17;\nLAB_002153a8:\n      if (pRVar2 == pRVar9) {\n        *(uint *)paddr = uVar28;\n        *(uint *)((int)paddr + 4) = uVar12;\n        return SUB41(iVar24,0);\n      }\n      pIVar18 = pIVar18 + 1;\n      if (-1 < *(int *)&(pRVar9->super_Object).offset_ << 1) {\n                    /* WARNING: Subroutine does not return */\n        Output_data_const_buffer::do_write((Output_data_const_buffer *)pRVar9,of);\n      }\n      pIVar8 = (this->input_sections_).\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               ._M_impl._M_finish;\n      uVar17 = uVar12 + *(int *)((int)&(pRVar9->super_Object).name_.field_2 + 8);\n      uVar28 = (uint)(uVar17 < uVar12) +\n               uVar28 + *(int *)((int)&(pRVar9->super_Object).name_.field_2 + 4);\n      if (pIVar8 == pIVar18) {\n        return false;\n      }\n    } while( true );\n  }" if (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar28 = (uint)this->first_input_offset_;\n    uVar17 = uVar28 + (int)(this->super_Output_data).address_;\n    pIVar18 = (this->input_sections_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_start;\n    pIVar8 = (this->input_sections_).\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             ._M_impl._M_finish;\n    uVar28 = (uint)(uVar17 < uVar28) +\n             *(int *)&this->first_input_offset_ + *(int *)&(this->super_Output_data).address_;\n    if (pIVar8 == pIVar18) {\n      return false;\n    }\n    do {\n      while( true ) {\n        uVar6 = pIVar18->p2align_;\n        uVar12 = pIVar18->shndx_ + 4;\n        if (uVar6 != 0) break;\n        of = (Output_file *)(uint)(uVar12 < 4);\n        uVar12 = uVar17;\n        if (of != (Output_file *)0x0) {\n          pRVar9 = (pIVar18->u2_).object;\n          p_Var25 = (pRVar9->super_Object)._vptr_Object[3];\n          if (p_Var25 != (_func_int_varargs *)puVar26) {\n            uVar10 = (*p_Var25)();\n            uVar12 = pIVar18->shndx_ + 4;\n            goto LAB_0021540c;\n          }\n          uVar10 = (pRVar9->super_Object).shnum_;\n          uVar6 = *(uint *)&(pRVar9->super_Object).field_0x2c;\n          if (uVar10 != 0 || uVar6 != 0) goto LAB_00215368;\n          goto LAB_002153a8;\n        }\nLAB_00215424:\n        pIVar19 = pIVar18 + 1;\n        uVar17 = uVar12 + *(int *)((int)&pIVar18->u1_ + 4);\n        uVar28 = (uint)(uVar17 < uVar12) + uVar28 + *(int *)&pIVar18->u1_;\n        pIVar18 = pIVar19;\n        if (pIVar8 == pIVar19) {\n          return false;\n        }\n      }\n      uVar10 = uVar6 - 1;\n      uVar6 = 1 << (uVar10 & 0x1f);\n      if ((uVar10 & 0x20) == 0) {\n        uVar10 = 0;\n      }\n      else {\n        uVar10 = uVar6;\n        uVar6 = 0;\n      }\nLAB_0021540c:\n      of = (Output_file *)(uint)(uVar12 < 4);\n      if (uVar10 != 0 || uVar6 != 0) {\nLAB_00215368:\n        uVar12 = uVar17 - 1;\n        bVar1 = uVar12 < uVar17;\n        uVar17 = uVar12 + uVar6 & -uVar6;\n        uVar28 = (uint)(uVar12 + uVar6 < uVar12) + (uint)bVar1 + (uVar28 - 1) + uVar10 &\n                 -(uint)(-uVar6 != 0) - uVar10;\n      }\n      if (of == (Output_file *)0x0) {\n        pIVar8 = (this->input_sections_).\n                 super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                 ._M_impl._M_finish;\n        uVar12 = uVar17;\n        goto LAB_00215424;\n      }\n      pRVar9 = (pIVar18->u2_).object;\n      uVar12 = uVar17;\nLAB_002153a8:\n      if (pRVar2 == pRVar9) {\n        *(uint *)paddr = uVar28;\n        *(uint *)((int)paddr + 4) = uVar12;\n        return SUB41(iVar24,0);\n      }\n      pIVar18 = pIVar18 + 1;\n      if (-1 < *(int *)&(pRVar9->super_Object).offset_ << 1) {\n                    /* WARNING: Subroutine does not return */\n        Output_data_const_buffer::do_write((Output_data_const_buffer *)pRVar9,of);\n      }\n      pIVar8 = (this->input_sections_).\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               ._M_impl._M_finish;\n      uVar17 = uVar12 + *(int *)((int)&(pRVar9->super_Object).name_.field_2 + 8);\n      uVar28 = (uint)(uVar17 < uVar12) +\n               uVar28 + *(int *)((int)&(pRVar9->super_Object).name_.field_2 + 4);\n      if (pIVar8 == pIVar18) {\n        return false;\n      }\n    } while( true );\n  }" { (expression_statement "uVar28 = (uint)this->first_input_offset_;" (assignment_expression "uVar28 = (uint)this->first_input_offset_" identifier = (cast_expression "(uint)this->first_input_offset_" ( (type_descriptor "uint" type_identifier) ) (field_expression "this->first_input_offset_" identifier -> field_identifier))) ;) (expression_statement "uVar17 = uVar28 + (int)(this->super_Output_data).address_;" (assignment_expression "uVar17 = uVar28 + (int)(this->super_Output_data).address_" identifier = (binary_expression "uVar28 + (int)(this->super_Output_data).address_" identifier + (cast_expression "(int)(this->super_Output_data).address_" ( (type_descriptor "int" primitive_type) ) (field_expression "(this->super_Output_data).address_" (parenthesized_expression "(this->super_Output_data)" ( (field_expression "this->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) ;) (ERROR "pIVar18 = (this->input_sections_).\n              super__Vector_base<gold::" (assignment_expression "pIVar18 = (this->input_sections_).\n              super__Vector_base<gold" identifier = (binary_expression "(this->input_sections_).\n              super__Vector_base<gold" (field_expression "(this->input_sections_).\n              super__Vector_base" (parenthesized_expression "(this->input_sections_)" ( (field_expression "this->input_sections_" identifier -> field_identifier) )) . field_identifier) < identifier)) : :) (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_start;" statement_identifier (ERROR "::Input_section,_std::allocator<gold:" : : (comma_expression "Input_section,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_section::Input_section>_>\n              ._M_impl._M_start;" statement_identifier : (ERROR ":" :) (expression_statement "Input_section>_>\n              ._M_impl._M_start;" (field_expression "Input_section>_>\n              ._M_impl._M_start" (field_expression "Input_section>_>\n              ._M_impl" (binary_expression "Input_section>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;))) (ERROR "pIVar8 = (this->input_sections_).\n             super__Vector_base<gold::" (assignment_expression "pIVar8 = (this->input_sections_).\n             super__Vector_base<gold" identifier = (binary_expression "(this->input_sections_).\n             super__Vector_base<gold" (field_expression "(this->input_sections_).\n             super__Vector_base" (parenthesized_expression "(this->input_sections_)" ( (field_expression "this->input_sections_" identifier -> field_identifier) )) . field_identifier) < identifier)) : :) (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             ._M_impl._M_finish;" statement_identifier (ERROR "::Input_section,_std::allocator<gold:" : : (comma_expression "Input_section,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_section::Input_section>_>\n             ._M_impl._M_finish;" statement_identifier : (ERROR ":" :) (expression_statement "Input_section>_>\n             ._M_impl._M_finish;" (field_expression "Input_section>_>\n             ._M_impl._M_finish" (field_expression "Input_section>_>\n             ._M_impl" (binary_expression "Input_section>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;))) (expression_statement "uVar28 = (uint)(uVar17 < uVar28) +\n             *(int *)&this->first_input_offset_ + *(int *)&(this->super_Output_data).address_;" (assignment_expression "uVar28 = (uint)(uVar17 < uVar28) +\n             *(int *)&this->first_input_offset_ + *(int *)&(this->super_Output_data).address_" identifier = (binary_expression "(uint)(uVar17 < uVar28) +\n             *(int *)&this->first_input_offset_ + *(int *)&(this->super_Output_data).address_" (binary_expression "(uint)(uVar17 < uVar28) +\n             *(int *)&this->first_input_offset_" (call_expression "(uint)(uVar17 < uVar28)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar17 < uVar28)" ( (binary_expression "uVar17 < uVar28" identifier < identifier) ))) + (pointer_expression "*(int *)&this->first_input_offset_" * (cast_expression "(int *)&this->first_input_offset_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->first_input_offset_" & (field_expression "this->first_input_offset_" identifier -> field_identifier))))) + (pointer_expression "*(int *)&(this->super_Output_data).address_" * (cast_expression "(int *)&(this->super_Output_data).address_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this->super_Output_data).address_" & (field_expression "(this->super_Output_data).address_" (parenthesized_expression "(this->super_Output_data)" ( (field_expression "this->super_Output_data" identifier -> field_identifier) )) . field_identifier)))))) ;) (if_statement "if (pIVar8 == pIVar18) {\n      return false;\n    }" if (parenthesized_expression "(pIVar8 == pIVar18)" ( (binary_expression "pIVar8 == pIVar18" identifier == identifier) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) (do_statement "do {\n      while( true ) {\n        uVar6 = pIVar18->p2align_;\n        uVar12 = pIVar18->shndx_ + 4;\n        if (uVar6 != 0) break;\n        of = (Output_file *)(uint)(uVar12 < 4);\n        uVar12 = uVar17;\n        if (of != (Output_file *)0x0) {\n          pRVar9 = (pIVar18->u2_).object;\n          p_Var25 = (pRVar9->super_Object)._vptr_Object[3];\n          if (p_Var25 != (_func_int_varargs *)puVar26) {\n            uVar10 = (*p_Var25)();\n            uVar12 = pIVar18->shndx_ + 4;\n            goto LAB_0021540c;\n          }\n          uVar10 = (pRVar9->super_Object).shnum_;\n          uVar6 = *(uint *)&(pRVar9->super_Object).field_0x2c;\n          if (uVar10 != 0 || uVar6 != 0) goto LAB_00215368;\n          goto LAB_002153a8;\n        }\nLAB_00215424:\n        pIVar19 = pIVar18 + 1;\n        uVar17 = uVar12 + *(int *)((int)&pIVar18->u1_ + 4);\n        uVar28 = (uint)(uVar17 < uVar12) + uVar28 + *(int *)&pIVar18->u1_;\n        pIVar18 = pIVar19;\n        if (pIVar8 == pIVar19) {\n          return false;\n        }\n      }\n      uVar10 = uVar6 - 1;\n      uVar6 = 1 << (uVar10 & 0x1f);\n      if ((uVar10 & 0x20) == 0) {\n        uVar10 = 0;\n      }\n      else {\n        uVar10 = uVar6;\n        uVar6 = 0;\n      }\nLAB_0021540c:\n      of = (Output_file *)(uint)(uVar12 < 4);\n      if (uVar10 != 0 || uVar6 != 0) {\nLAB_00215368:\n        uVar12 = uVar17 - 1;\n        bVar1 = uVar12 < uVar17;\n        uVar17 = uVar12 + uVar6 & -uVar6;\n        uVar28 = (uint)(uVar12 + uVar6 < uVar12) + (uint)bVar1 + (uVar28 - 1) + uVar10 &\n                 -(uint)(-uVar6 != 0) - uVar10;\n      }\n      if (of == (Output_file *)0x0) {\n        pIVar8 = (this->input_sections_).\n                 super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                 ._M_impl._M_finish;\n        uVar12 = uVar17;\n        goto LAB_00215424;\n      }\n      pRVar9 = (pIVar18->u2_).object;\n      uVar12 = uVar17;\nLAB_002153a8:\n      if (pRVar2 == pRVar9) {\n        *(uint *)paddr = uVar28;\n        *(uint *)((int)paddr + 4) = uVar12;\n        return SUB41(iVar24,0);\n      }\n      pIVar18 = pIVar18 + 1;\n      if (-1 < *(int *)&(pRVar9->super_Object).offset_ << 1) {\n                    /* WARNING: Subroutine does not return */\n        Output_data_const_buffer::do_write((Output_data_const_buffer *)pRVar9,of);\n      }\n      pIVar8 = (this->input_sections_).\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               ._M_impl._M_finish;\n      uVar17 = uVar12 + *(int *)((int)&(pRVar9->super_Object).name_.field_2 + 8);\n      uVar28 = (uint)(uVar17 < uVar12) +\n               uVar28 + *(int *)((int)&(pRVar9->super_Object).name_.field_2 + 4);\n      if (pIVar8 == pIVar18) {\n        return false;\n      }\n    } while( true );" do (compound_statement "{\n      while( true ) {\n        uVar6 = pIVar18->p2align_;\n        uVar12 = pIVar18->shndx_ + 4;\n        if (uVar6 != 0) break;\n        of = (Output_file *)(uint)(uVar12 < 4);\n        uVar12 = uVar17;\n        if (of != (Output_file *)0x0) {\n          pRVar9 = (pIVar18->u2_).object;\n          p_Var25 = (pRVar9->super_Object)._vptr_Object[3];\n          if (p_Var25 != (_func_int_varargs *)puVar26) {\n            uVar10 = (*p_Var25)();\n            uVar12 = pIVar18->shndx_ + 4;\n            goto LAB_0021540c;\n          }\n          uVar10 = (pRVar9->super_Object).shnum_;\n          uVar6 = *(uint *)&(pRVar9->super_Object).field_0x2c;\n          if (uVar10 != 0 || uVar6 != 0) goto LAB_00215368;\n          goto LAB_002153a8;\n        }\nLAB_00215424:\n        pIVar19 = pIVar18 + 1;\n        uVar17 = uVar12 + *(int *)((int)&pIVar18->u1_ + 4);\n        uVar28 = (uint)(uVar17 < uVar12) + uVar28 + *(int *)&pIVar18->u1_;\n        pIVar18 = pIVar19;\n        if (pIVar8 == pIVar19) {\n          return false;\n        }\n      }\n      uVar10 = uVar6 - 1;\n      uVar6 = 1 << (uVar10 & 0x1f);\n      if ((uVar10 & 0x20) == 0) {\n        uVar10 = 0;\n      }\n      else {\n        uVar10 = uVar6;\n        uVar6 = 0;\n      }\nLAB_0021540c:\n      of = (Output_file *)(uint)(uVar12 < 4);\n      if (uVar10 != 0 || uVar6 != 0) {\nLAB_00215368:\n        uVar12 = uVar17 - 1;\n        bVar1 = uVar12 < uVar17;\n        uVar17 = uVar12 + uVar6 & -uVar6;\n        uVar28 = (uint)(uVar12 + uVar6 < uVar12) + (uint)bVar1 + (uVar28 - 1) + uVar10 &\n                 -(uint)(-uVar6 != 0) - uVar10;\n      }\n      if (of == (Output_file *)0x0) {\n        pIVar8 = (this->input_sections_).\n                 super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                 ._M_impl._M_finish;\n        uVar12 = uVar17;\n        goto LAB_00215424;\n      }\n      pRVar9 = (pIVar18->u2_).object;\n      uVar12 = uVar17;\nLAB_002153a8:\n      if (pRVar2 == pRVar9) {\n        *(uint *)paddr = uVar28;\n        *(uint *)((int)paddr + 4) = uVar12;\n        return SUB41(iVar24,0);\n      }\n      pIVar18 = pIVar18 + 1;\n      if (-1 < *(int *)&(pRVar9->super_Object).offset_ << 1) {\n                    /* WARNING: Subroutine does not return */\n        Output_data_const_buffer::do_write((Output_data_const_buffer *)pRVar9,of);\n      }\n      pIVar8 = (this->input_sections_).\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               ._M_impl._M_finish;\n      uVar17 = uVar12 + *(int *)((int)&(pRVar9->super_Object).name_.field_2 + 8);\n      uVar28 = (uint)(uVar17 < uVar12) +\n               uVar28 + *(int *)((int)&(pRVar9->super_Object).name_.field_2 + 4);\n      if (pIVar8 == pIVar18) {\n        return false;\n      }\n    }" { (while_statement "while( true ) {\n        uVar6 = pIVar18->p2align_;\n        uVar12 = pIVar18->shndx_ + 4;\n        if (uVar6 != 0) break;\n        of = (Output_file *)(uint)(uVar12 < 4);\n        uVar12 = uVar17;\n        if (of != (Output_file *)0x0) {\n          pRVar9 = (pIVar18->u2_).object;\n          p_Var25 = (pRVar9->super_Object)._vptr_Object[3];\n          if (p_Var25 != (_func_int_varargs *)puVar26) {\n            uVar10 = (*p_Var25)();\n            uVar12 = pIVar18->shndx_ + 4;\n            goto LAB_0021540c;\n          }\n          uVar10 = (pRVar9->super_Object).shnum_;\n          uVar6 = *(uint *)&(pRVar9->super_Object).field_0x2c;\n          if (uVar10 != 0 || uVar6 != 0) goto LAB_00215368;\n          goto LAB_002153a8;\n        }\nLAB_00215424:\n        pIVar19 = pIVar18 + 1;\n        uVar17 = uVar12 + *(int *)((int)&pIVar18->u1_ + 4);\n        uVar28 = (uint)(uVar17 < uVar12) + uVar28 + *(int *)&pIVar18->u1_;\n        pIVar18 = pIVar19;\n        if (pIVar8 == pIVar19) {\n          return false;\n        }\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        uVar6 = pIVar18->p2align_;\n        uVar12 = pIVar18->shndx_ + 4;\n        if (uVar6 != 0) break;\n        of = (Output_file *)(uint)(uVar12 < 4);\n        uVar12 = uVar17;\n        if (of != (Output_file *)0x0) {\n          pRVar9 = (pIVar18->u2_).object;\n          p_Var25 = (pRVar9->super_Object)._vptr_Object[3];\n          if (p_Var25 != (_func_int_varargs *)puVar26) {\n            uVar10 = (*p_Var25)();\n            uVar12 = pIVar18->shndx_ + 4;\n            goto LAB_0021540c;\n          }\n          uVar10 = (pRVar9->super_Object).shnum_;\n          uVar6 = *(uint *)&(pRVar9->super_Object).field_0x2c;\n          if (uVar10 != 0 || uVar6 != 0) goto LAB_00215368;\n          goto LAB_002153a8;\n        }\nLAB_00215424:\n        pIVar19 = pIVar18 + 1;\n        uVar17 = uVar12 + *(int *)((int)&pIVar18->u1_ + 4);\n        uVar28 = (uint)(uVar17 < uVar12) + uVar28 + *(int *)&pIVar18->u1_;\n        pIVar18 = pIVar19;\n        if (pIVar8 == pIVar19) {\n          return false;\n        }\n      }" { (expression_statement "uVar6 = pIVar18->p2align_;" (assignment_expression "uVar6 = pIVar18->p2align_" identifier = (field_expression "pIVar18->p2align_" identifier -> field_identifier)) ;) (expression_statement "uVar12 = pIVar18->shndx_ + 4;" (assignment_expression "uVar12 = pIVar18->shndx_ + 4" identifier = (binary_expression "pIVar18->shndx_ + 4" (field_expression "pIVar18->shndx_" identifier -> field_identifier) + number_literal)) ;) (if_statement "if (uVar6 != 0) break;" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "of = (Output_file *)(uint)(uVar12 < 4);" (assignment_expression "of = (Output_file *)(uint)(uVar12 < 4)" identifier = (cast_expression "(Output_file *)(uint)(uVar12 < 4)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(uVar12 < 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar12 < 4)" ( (binary_expression "uVar12 < 4" identifier < number_literal) ))))) ;) (expression_statement "uVar12 = uVar17;" (assignment_expression "uVar12 = uVar17" identifier = identifier) ;) (if_statement "if (of != (Output_file *)0x0) {\n          pRVar9 = (pIVar18->u2_).object;\n          p_Var25 = (pRVar9->super_Object)._vptr_Object[3];\n          if (p_Var25 != (_func_int_varargs *)puVar26) {\n            uVar10 = (*p_Var25)();\n            uVar12 = pIVar18->shndx_ + 4;\n            goto LAB_0021540c;\n          }\n          uVar10 = (pRVar9->super_Object).shnum_;\n          uVar6 = *(uint *)&(pRVar9->super_Object).field_0x2c;\n          if (uVar10 != 0 || uVar6 != 0) goto LAB_00215368;\n          goto LAB_002153a8;\n        }" if (parenthesized_expression "(of != (Output_file *)0x0)" ( (binary_expression "of != (Output_file *)0x0" identifier != (cast_expression "(Output_file *)0x0" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pRVar9 = (pIVar18->u2_).object;\n          p_Var25 = (pRVar9->super_Object)._vptr_Object[3];\n          if (p_Var25 != (_func_int_varargs *)puVar26) {\n            uVar10 = (*p_Var25)();\n            uVar12 = pIVar18->shndx_ + 4;\n            goto LAB_0021540c;\n          }\n          uVar10 = (pRVar9->super_Object).shnum_;\n          uVar6 = *(uint *)&(pRVar9->super_Object).field_0x2c;\n          if (uVar10 != 0 || uVar6 != 0) goto LAB_00215368;\n          goto LAB_002153a8;\n        }" { (expression_statement "pRVar9 = (pIVar18->u2_).object;" (assignment_expression "pRVar9 = (pIVar18->u2_).object" identifier = (field_expression "(pIVar18->u2_).object" (parenthesized_expression "(pIVar18->u2_)" ( (field_expression "pIVar18->u2_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "p_Var25 = (pRVar9->super_Object)._vptr_Object[3];" (assignment_expression "p_Var25 = (pRVar9->super_Object)._vptr_Object[3]" identifier = (subscript_expression "(pRVar9->super_Object)._vptr_Object[3]" (field_expression "(pRVar9->super_Object)._vptr_Object" (parenthesized_expression "(pRVar9->super_Object)" ( (field_expression "pRVar9->super_Object" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (if_statement "if (p_Var25 != (_func_int_varargs *)puVar26) {\n            uVar10 = (*p_Var25)();\n            uVar12 = pIVar18->shndx_ + 4;\n            goto LAB_0021540c;\n          }" if (parenthesized_expression "(p_Var25 != (_func_int_varargs *)puVar26)" ( (binary_expression "p_Var25 != (_func_int_varargs *)puVar26" identifier != (cast_expression "(_func_int_varargs *)puVar26" ( (type_descriptor "_func_int_varargs *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n            uVar10 = (*p_Var25)();\n            uVar12 = pIVar18->shndx_ + 4;\n            goto LAB_0021540c;\n          }" { (expression_statement "uVar10 = (*p_Var25)();" (assignment_expression "uVar10 = (*p_Var25)()" identifier = (call_expression "(*p_Var25)()" (parenthesized_expression "(*p_Var25)" ( (pointer_expression "*p_Var25" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "uVar12 = pIVar18->shndx_ + 4;" (assignment_expression "uVar12 = pIVar18->shndx_ + 4" identifier = (binary_expression "pIVar18->shndx_ + 4" (field_expression "pIVar18->shndx_" identifier -> field_identifier) + number_literal)) ;) (goto_statement "goto LAB_0021540c;" goto statement_identifier ;) })) (expression_statement "uVar10 = (pRVar9->super_Object).shnum_;" (assignment_expression "uVar10 = (pRVar9->super_Object).shnum_" identifier = (field_expression "(pRVar9->super_Object).shnum_" (parenthesized_expression "(pRVar9->super_Object)" ( (field_expression "pRVar9->super_Object" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar6 = *(uint *)&(pRVar9->super_Object).field_0x2c;" (assignment_expression "uVar6 = *(uint *)&(pRVar9->super_Object).field_0x2c" identifier = (pointer_expression "*(uint *)&(pRVar9->super_Object).field_0x2c" * (cast_expression "(uint *)&(pRVar9->super_Object).field_0x2c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pRVar9->super_Object).field_0x2c" & (field_expression "(pRVar9->super_Object).field_0x2c" (parenthesized_expression "(pRVar9->super_Object)" ( (field_expression "pRVar9->super_Object" identifier -> field_identifier) )) . field_identifier))))) ;) (if_statement "if (uVar10 != 0 || uVar6 != 0) goto LAB_00215368;" if (parenthesized_expression "(uVar10 != 0 || uVar6 != 0)" ( (binary_expression "uVar10 != 0 || uVar6 != 0" (binary_expression "uVar10 != 0" identifier != number_literal) || (binary_expression "uVar6 != 0" identifier != number_literal)) )) (goto_statement "goto LAB_00215368;" goto statement_identifier ;)) (goto_statement "goto LAB_002153a8;" goto statement_identifier ;) })) (labeled_statement "LAB_00215424:\n        pIVar19 = pIVar18 + 1;" statement_identifier : (expression_statement "pIVar19 = pIVar18 + 1;" (assignment_expression "pIVar19 = pIVar18 + 1" identifier = (binary_expression "pIVar18 + 1" identifier + number_literal)) ;)) (expression_statement "uVar17 = uVar12 + *(int *)((int)&pIVar18->u1_ + 4);" (assignment_expression "uVar17 = uVar12 + *(int *)((int)&pIVar18->u1_ + 4)" identifier = (binary_expression "uVar12 + *(int *)((int)&pIVar18->u1_ + 4)" identifier + (pointer_expression "*(int *)((int)&pIVar18->u1_ + 4)" * (cast_expression "(int *)((int)&pIVar18->u1_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pIVar18->u1_ + 4)" ( (binary_expression "(int)&pIVar18->u1_ + 4" (cast_expression "(int)&pIVar18->u1_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pIVar18->u1_" & (field_expression "pIVar18->u1_" identifier -> field_identifier))) + number_literal) )))))) ;) (expression_statement "uVar28 = (uint)(uVar17 < uVar12) + uVar28 + *(int *)&pIVar18->u1_;" (assignment_expression "uVar28 = (uint)(uVar17 < uVar12) + uVar28 + *(int *)&pIVar18->u1_" identifier = (binary_expression "(uint)(uVar17 < uVar12) + uVar28 + *(int *)&pIVar18->u1_" (binary_expression "(uint)(uVar17 < uVar12) + uVar28" (call_expression "(uint)(uVar17 < uVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar17 < uVar12)" ( (binary_expression "uVar17 < uVar12" identifier < identifier) ))) + identifier) + (pointer_expression "*(int *)&pIVar18->u1_" * (cast_expression "(int *)&pIVar18->u1_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pIVar18->u1_" & (field_expression "pIVar18->u1_" identifier -> field_identifier)))))) ;) (expression_statement "pIVar18 = pIVar19;" (assignment_expression "pIVar18 = pIVar19" identifier = identifier) ;) (if_statement "if (pIVar8 == pIVar19) {\n          return false;\n        }" if (parenthesized_expression "(pIVar8 == pIVar19)" ( (binary_expression "pIVar8 == pIVar19" identifier == identifier) )) (compound_statement "{\n          return false;\n        }" { (return_statement "return false;" return false ;) })) })) (expression_statement "uVar10 = uVar6 - 1;" (assignment_expression "uVar10 = uVar6 - 1" identifier = (binary_expression "uVar6 - 1" identifier - number_literal)) ;) (expression_statement "uVar6 = 1 << (uVar10 & 0x1f);" (assignment_expression "uVar6 = 1 << (uVar10 & 0x1f)" identifier = (binary_expression "1 << (uVar10 & 0x1f)" number_literal << (parenthesized_expression "(uVar10 & 0x1f)" ( (binary_expression "uVar10 & 0x1f" identifier & number_literal) )))) ;) (if_statement "if ((uVar10 & 0x20) == 0) {\n        uVar10 = 0;\n      }\n      else {\n        uVar10 = uVar6;\n        uVar6 = 0;\n      }" if (parenthesized_expression "((uVar10 & 0x20) == 0)" ( (binary_expression "(uVar10 & 0x20) == 0" (parenthesized_expression "(uVar10 & 0x20)" ( (binary_expression "uVar10 & 0x20" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        uVar10 = 0;\n      }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        uVar10 = uVar6;\n        uVar6 = 0;\n      }" else (compound_statement "{\n        uVar10 = uVar6;\n        uVar6 = 0;\n      }" { (expression_statement "uVar10 = uVar6;" (assignment_expression "uVar10 = uVar6" identifier = identifier) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_0021540c:\n      of = (Output_file *)(uint)(uVar12 < 4);" statement_identifier : (expression_statement "of = (Output_file *)(uint)(uVar12 < 4);" (assignment_expression "of = (Output_file *)(uint)(uVar12 < 4)" identifier = (cast_expression "(Output_file *)(uint)(uVar12 < 4)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(uVar12 < 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar12 < 4)" ( (binary_expression "uVar12 < 4" identifier < number_literal) ))))) ;)) (if_statement "if (uVar10 != 0 || uVar6 != 0) {\nLAB_00215368:\n        uVar12 = uVar17 - 1;\n        bVar1 = uVar12 < uVar17;\n        uVar17 = uVar12 + uVar6 & -uVar6;\n        uVar28 = (uint)(uVar12 + uVar6 < uVar12) + (uint)bVar1 + (uVar28 - 1) + uVar10 &\n                 -(uint)(-uVar6 != 0) - uVar10;\n      }" if (parenthesized_expression "(uVar10 != 0 || uVar6 != 0)" ( (binary_expression "uVar10 != 0 || uVar6 != 0" (binary_expression "uVar10 != 0" identifier != number_literal) || (binary_expression "uVar6 != 0" identifier != number_literal)) )) (compound_statement "{\nLAB_00215368:\n        uVar12 = uVar17 - 1;\n        bVar1 = uVar12 < uVar17;\n        uVar17 = uVar12 + uVar6 & -uVar6;\n        uVar28 = (uint)(uVar12 + uVar6 < uVar12) + (uint)bVar1 + (uVar28 - 1) + uVar10 &\n                 -(uint)(-uVar6 != 0) - uVar10;\n      }" { (labeled_statement "LAB_00215368:\n        uVar12 = uVar17 - 1;" statement_identifier : (expression_statement "uVar12 = uVar17 - 1;" (assignment_expression "uVar12 = uVar17 - 1" identifier = (binary_expression "uVar17 - 1" identifier - number_literal)) ;)) (expression_statement "bVar1 = uVar12 < uVar17;" (assignment_expression "bVar1 = uVar12 < uVar17" identifier = (binary_expression "uVar12 < uVar17" identifier < identifier)) ;) (expression_statement "uVar17 = uVar12 + uVar6 & -uVar6;" (assignment_expression "uVar17 = uVar12 + uVar6 & -uVar6" identifier = (binary_expression "uVar12 + uVar6 & -uVar6" (binary_expression "uVar12 + uVar6" identifier + identifier) & (unary_expression "-uVar6" - identifier))) ;) (expression_statement "uVar28 = (uint)(uVar12 + uVar6 < uVar12) + (uint)bVar1 + (uVar28 - 1) + uVar10 &\n                 -(uint)(-uVar6 != 0) - uVar10;" (assignment_expression "uVar28 = (uint)(uVar12 + uVar6 < uVar12) + (uint)bVar1 + (uVar28 - 1) + uVar10 &\n                 -(uint)(-uVar6 != 0) - uVar10" identifier = (binary_expression "(uint)(uVar12 + uVar6 < uVar12) + (uint)bVar1 + (uVar28 - 1) + uVar10 &\n                 -(uint)(-uVar6 != 0) - uVar10" (binary_expression "(uint)(uVar12 + uVar6 < uVar12) + (uint)bVar1 + (uVar28 - 1) + uVar10" (binary_expression "(uint)(uVar12 + uVar6 < uVar12) + (uint)bVar1 + (uVar28 - 1)" (binary_expression "(uint)(uVar12 + uVar6 < uVar12) + (uint)bVar1" (call_expression "(uint)(uVar12 + uVar6 < uVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar12 + uVar6 < uVar12)" ( (binary_expression "uVar12 + uVar6 < uVar12" (binary_expression "uVar12 + uVar6" identifier + identifier) < identifier) ))) + (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) + (parenthesized_expression "(uVar28 - 1)" ( (binary_expression "uVar28 - 1" identifier - number_literal) ))) + identifier) & (binary_expression "-(uint)(-uVar6 != 0) - uVar10" (unary_expression "-(uint)(-uVar6 != 0)" - (call_expression "(uint)(-uVar6 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(-uVar6 != 0)" ( (binary_expression "-uVar6 != 0" (unary_expression "-uVar6" - identifier) != number_literal) )))) - identifier))) ;) })) (if_statement "if (of == (Output_file *)0x0) {\n        pIVar8 = (this->input_sections_).\n                 super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                 ._M_impl._M_finish;\n        uVar12 = uVar17;\n        goto LAB_00215424;\n      }" if (parenthesized_expression "(of == (Output_file *)0x0)" ( (binary_expression "of == (Output_file *)0x0" identifier == (cast_expression "(Output_file *)0x0" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pIVar8 = (this->input_sections_).\n                 super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                 ._M_impl._M_finish;\n        uVar12 = uVar17;\n        goto LAB_00215424;\n      }" { (ERROR "pIVar8 = (this->input_sections_).\n                 super__Vector_base<gold::" (assignment_expression "pIVar8 = (this->input_sections_).\n                 super__Vector_base<gold" identifier = (binary_expression "(this->input_sections_).\n                 super__Vector_base<gold" (field_expression "(this->input_sections_).\n                 super__Vector_base" (parenthesized_expression "(this->input_sections_)" ( (field_expression "this->input_sections_" identifier -> field_identifier) )) . field_identifier) < identifier)) : :) (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                 ._M_impl._M_finish;" statement_identifier (ERROR "::Input_section,_std::allocator<gold:" : : (comma_expression "Input_section,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_section::Input_section>_>\n                 ._M_impl._M_finish;" statement_identifier : (ERROR ":" :) (expression_statement "Input_section>_>\n                 ._M_impl._M_finish;" (field_expression "Input_section>_>\n                 ._M_impl._M_finish" (field_expression "Input_section>_>\n                 ._M_impl" (binary_expression "Input_section>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;))) (expression_statement "uVar12 = uVar17;" (assignment_expression "uVar12 = uVar17" identifier = identifier) ;) (goto_statement "goto LAB_00215424;" goto statement_identifier ;) })) (expression_statement "pRVar9 = (pIVar18->u2_).object;" (assignment_expression "pRVar9 = (pIVar18->u2_).object" identifier = (field_expression "(pIVar18->u2_).object" (parenthesized_expression "(pIVar18->u2_)" ( (field_expression "pIVar18->u2_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar12 = uVar17;" (assignment_expression "uVar12 = uVar17" identifier = identifier) ;) (labeled_statement "LAB_002153a8:\n      if (pRVar2 == pRVar9) {\n        *(uint *)paddr = uVar28;\n        *(uint *)((int)paddr + 4) = uVar12;\n        return SUB41(iVar24,0);\n      }" statement_identifier : (if_statement "if (pRVar2 == pRVar9) {\n        *(uint *)paddr = uVar28;\n        *(uint *)((int)paddr + 4) = uVar12;\n        return SUB41(iVar24,0);\n      }" if (parenthesized_expression "(pRVar2 == pRVar9)" ( (binary_expression "pRVar2 == pRVar9" identifier == identifier) )) (compound_statement "{\n        *(uint *)paddr = uVar28;\n        *(uint *)((int)paddr + 4) = uVar12;\n        return SUB41(iVar24,0);\n      }" { (expression_statement "*(uint *)paddr = uVar28;" (assignment_expression "*(uint *)paddr = uVar28" (pointer_expression "*(uint *)paddr" * (cast_expression "(uint *)paddr" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(uint *)((int)paddr + 4) = uVar12;" (assignment_expression "*(uint *)((int)paddr + 4) = uVar12" (pointer_expression "*(uint *)((int)paddr + 4)" * (cast_expression "(uint *)((int)paddr + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paddr + 4)" ( (binary_expression "(int)paddr + 4" (cast_expression "(int)paddr" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (return_statement "return SUB41(iVar24,0);" return (call_expression "SUB41(iVar24,0)" identifier (argument_list "(iVar24,0)" ( identifier , number_literal ))) ;) }))) (expression_statement "pIVar18 = pIVar18 + 1;" (assignment_expression "pIVar18 = pIVar18 + 1" identifier = (binary_expression "pIVar18 + 1" identifier + number_literal)) ;) (if_statement "if (-1 < *(int *)&(pRVar9->super_Object).offset_ << 1) {\n                    /* WARNING: Subroutine does not return */\n        Output_data_const_buffer::do_write((Output_data_const_buffer *)pRVar9,of);\n      }" if (parenthesized_expression "(-1 < *(int *)&(pRVar9->super_Object).offset_ << 1)" ( (binary_expression "-1 < *(int *)&(pRVar9->super_Object).offset_ << 1" number_literal < (binary_expression "*(int *)&(pRVar9->super_Object).offset_ << 1" (pointer_expression "*(int *)&(pRVar9->super_Object).offset_" * (cast_expression "(int *)&(pRVar9->super_Object).offset_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pRVar9->super_Object).offset_" & (field_expression "(pRVar9->super_Object).offset_" (parenthesized_expression "(pRVar9->super_Object)" ( (field_expression "pRVar9->super_Object" identifier -> field_identifier) )) . field_identifier)))) << number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        Output_data_const_buffer::do_write((Output_data_const_buffer *)pRVar9,of);\n      }" { comment (labeled_statement "Output_data_const_buffer::do_write((Output_data_const_buffer *)pRVar9,of);" statement_identifier : (ERROR ":" :) (expression_statement "do_write((Output_data_const_buffer *)pRVar9,of);" (call_expression "do_write((Output_data_const_buffer *)pRVar9,of)" identifier (argument_list "((Output_data_const_buffer *)pRVar9,of)" ( (cast_expression "(Output_data_const_buffer *)pRVar9" ( (type_descriptor "Output_data_const_buffer *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;)) })) (ERROR "pIVar8 = (this->input_sections_).\n               super__Vector_base<gold::" (assignment_expression "pIVar8 = (this->input_sections_).\n               super__Vector_base<gold" identifier = (binary_expression "(this->input_sections_).\n               super__Vector_base<gold" (field_expression "(this->input_sections_).\n               super__Vector_base" (parenthesized_expression "(this->input_sections_)" ( (field_expression "this->input_sections_" identifier -> field_identifier) )) . field_identifier) < identifier)) : :) (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               ._M_impl._M_finish;" statement_identifier (ERROR "::Input_section,_std::allocator<gold:" : : (comma_expression "Input_section,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_section::Input_section>_>\n               ._M_impl._M_finish;" statement_identifier : (ERROR ":" :) (expression_statement "Input_section>_>\n               ._M_impl._M_finish;" (field_expression "Input_section>_>\n               ._M_impl._M_finish" (field_expression "Input_section>_>\n               ._M_impl" (binary_expression "Input_section>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;))) (expression_statement "uVar17 = uVar12 + *(int *)((int)&(pRVar9->super_Object).name_.field_2 + 8);" (assignment_expression "uVar17 = uVar12 + *(int *)((int)&(pRVar9->super_Object).name_.field_2 + 8)" identifier = (binary_expression "uVar12 + *(int *)((int)&(pRVar9->super_Object).name_.field_2 + 8)" identifier + (pointer_expression "*(int *)((int)&(pRVar9->super_Object).name_.field_2 + 8)" * (cast_expression "(int *)((int)&(pRVar9->super_Object).name_.field_2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pRVar9->super_Object).name_.field_2 + 8)" ( (binary_expression "(int)&(pRVar9->super_Object).name_.field_2 + 8" (cast_expression "(int)&(pRVar9->super_Object).name_.field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pRVar9->super_Object).name_.field_2" & (field_expression "(pRVar9->super_Object).name_.field_2" (field_expression "(pRVar9->super_Object).name_" (parenthesized_expression "(pRVar9->super_Object)" ( (field_expression "pRVar9->super_Object" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) )))))) ;) (expression_statement "uVar28 = (uint)(uVar17 < uVar12) +\n               uVar28 + *(int *)((int)&(pRVar9->super_Object).name_.field_2 + 4);" (assignment_expression "uVar28 = (uint)(uVar17 < uVar12) +\n               uVar28 + *(int *)((int)&(pRVar9->super_Object).name_.field_2 + 4)" identifier = (binary_expression "(uint)(uVar17 < uVar12) +\n               uVar28 + *(int *)((int)&(pRVar9->super_Object).name_.field_2 + 4)" (binary_expression "(uint)(uVar17 < uVar12) +\n               uVar28" (call_expression "(uint)(uVar17 < uVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar17 < uVar12)" ( (binary_expression "uVar17 < uVar12" identifier < identifier) ))) + identifier) + (pointer_expression "*(int *)((int)&(pRVar9->super_Object).name_.field_2 + 4)" * (cast_expression "(int *)((int)&(pRVar9->super_Object).name_.field_2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pRVar9->super_Object).name_.field_2 + 4)" ( (binary_expression "(int)&(pRVar9->super_Object).name_.field_2 + 4" (cast_expression "(int)&(pRVar9->super_Object).name_.field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pRVar9->super_Object).name_.field_2" & (field_expression "(pRVar9->super_Object).name_.field_2" (field_expression "(pRVar9->super_Object).name_" (parenthesized_expression "(pRVar9->super_Object)" ( (field_expression "pRVar9->super_Object" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) )))))) ;) (if_statement "if (pIVar8 == pIVar18) {\n        return false;\n      }" if (parenthesized_expression "(pIVar8 == pIVar18)" ( (binary_expression "pIVar8 == pIVar18" identifier == identifier) )) (compound_statement "{\n        return false;\n      }" { (return_statement "return false;" return false ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "pIVar13 = (Input_section *)&DAT_000000c5;" (assignment_expression "pIVar13 = (Input_section *)&DAT_000000c5" identifier = (cast_expression "(Input_section *)&DAT_000000c5" ( (type_descriptor "Input_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000000c5" & identifier))) ;) (expression_statement "this_01 = (Relobj *)(PTR_s_in_a_linker_script_004c191c + -0x2a40);" (assignment_expression "this_01 = (Relobj *)(PTR_s_in_a_linker_script_004c191c + -0x2a40)" identifier = (cast_expression "(Relobj *)(PTR_s_in_a_linker_script_004c191c + -0x2a40)" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_in_a_linker_script_004c191c + -0x2a40)" ( (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2a40" identifier + number_literal) )))) ;) (expression_statement "puVar26 = PTR_do_gold_unreachable_004c1a30;" (assignment_expression "puVar26 = PTR_do_gold_unreachable_004c1a30" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) ))) ;) (expression_statement "puStack_68 = puVar26 + 0x2b3d44;" (assignment_expression "puStack_68 = puVar26 + 0x2b3d44" identifier = (binary_expression "puVar26 + 0x2b3d44" identifier + number_literal)) ;) (expression_statement "pRVar9 = this_01;" (assignment_expression "pRVar9 = this_01" identifier = identifier) ;) (if_statement "if (pIVar13->shndx_ == 0xffffffff) {\n    pRVar21 = *(Relobj **)(puVar26 + 0x2aea40);\n    if ((this_01->super_Object)._vptr_Object != (_func_int_varargs **)0xffffffff) {\n      pRVar2 = Input_section::relobj((Input_section *)this_01);\n      iVar4 = (**(code **)(puStack_68 + -0x70ac))(pRVar2,*(int *)(puStack_68 + -0x77f0) + 0x35d0);\nLAB_00215650:\n      if (iVar4 != 0) {\n        return false;\n      }\n      pRVar2 = *(Relobj **)(puStack_68 + -0x77f0);\n      if (pIVar13->shndx_ == 0xffffffff) {\n        if ((this_01->super_Object)._vptr_Object != (_func_int_varargs **)0xffffffff) {\n          pRVar9 = Input_section::relobj((Input_section *)this_01);\n          iVar24 = (**(code **)(puStack_68 + -0x70ac))\n                             (pRVar9,*(int *)(puStack_68 + -0x77f0) + 0x35dc);\n          goto LAB_00215740;\n        }\n      }\n      else {\nLAB_00215690:\n        pRVar3 = Input_section::relobj(pIVar13);\n        iVar4 = (**(code **)(puStack_68 + -0x70ac))\n                          (pRVar3,&pRVar2[0x84].output_sections_.\n                                   super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                   ._M_impl._M_finish);\n        if ((this_01->super_Object)._vptr_Object == (_func_int_varargs **)0xffffffff) {\n          if (iVar4 != 0) {\n            return false;\n          }\n        }\n        else {\n          pRVar3 = Input_section::relobj((Input_section *)this_01);\n          __s = (Input_file *)\n                &pRVar2[0x84].output_sections_.\n                 super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                 _M_impl._M_finish;\n          iVar24 = (**(code **)(puStack_68 + -0x70ac))();\n          if (iVar4 != 0) {\n            if (iVar24 == 0) {\n              return false;\n            }\n            goto LAB_002155ac;\n          }\nLAB_00215740:\n          if (iVar24 != 0) {\n            return true;\n          }\n        }\n      }\n    }\n    pcVar27 = *(code **)(puStack_68 + -0x6ae0);\nLAB_0021575c:\n    iVar24 = (*pcVar27)(&pIVar13[1].p2align_,0x2e,1);\n    __s = (Input_file *)0x2e;\n    pRVar3 = (Relobj *)&(this_01->super_Object).input_file_;\n    iVar4 = (**(code **)(puStack_68 + -0x6ae0))(pRVar3,0x2e,1);\n    if (iVar24 == -1) {\n      if (iVar4 != -1) {\n        return true;\n      }\n    }\n    else if (iVar4 == -1) {\n      return false;\n    }\n    uVar17 = *(uint *)((int)&(this_01->super_Object).name_.field_2 + 0xc);\n    uVar28 = pIVar13->section_order_index_;\n    puVar26 = puStack_68;\n    if (uVar17 != 0xffffffff) {\n      if (uVar28 != 0) {\n        uVar6 = *(uint *)((int)&(this_01->super_Object).name_.field_2 + 8);\n        pRVar3 = (Relobj *)(uint)(uVar28 < uVar6);\n        if (uVar6 != 0) {\n          if (pRVar3 != (Relobj *)0x0) {\n            return true;\n          }\n          if (uVar6 < uVar28) {\n            return false;\n          }\n        }\n      }\n      pRVar2 = *(Relobj **)&pIVar13[1].u1_;\n      pRVar21 = *(Relobj **)&(this_01->super_Object).offset_;\n      pRVar9 = pRVar21;\n      if (pRVar2 <= pRVar21) {\n        pRVar9 = pRVar2;\n      }\n      if (pRVar9 != (Relobj *)0x0) {\n        __s = (this_01->super_Object).input_file_;\n        pRVar3 = (Relobj *)pIVar13[1].p2align_;\n        iVar24 = (**(code **)(puStack_68 + -0x354c))();\n        if (iVar24 != 0) {\n          return SUB41((uint)iVar24 >> 0x1f,0);\n        }\n      }\n      if ((int)pRVar2 - (int)pRVar21 != 0) {\n        return SUB41((uint)((int)pRVar2 - (int)pRVar21) >> 0x1f,0);\n      }\n      uVar28 = pIVar13[1].shndx_;\n      bVar1 = uVar28 < uVar17;\njoined_r0x002155bc:\n      if (uVar28 != 0xffffffff) {\n        return bVar1;\n      }\n      goto LAB_00215844;\n    }\n  }\n  else {\n    pRVar21 = *(Relobj **)(puVar26 + 0x2aea40);\n    pRVar2 = *(Relobj **)(puVar26 + 0x2ac554);\n    pRVar3 = Input_section::relobj(pIVar13);\n    iVar24 = (**(code **)(puStack_68 + -0x70ac))(pRVar3,&pRVar2[0x84].super_Object.xindex_);\n    if ((this_01->super_Object)._vptr_Object == (_func_int_varargs **)0xffffffff) {\n      if (iVar24 != 0) {\n        return true;\n      }\n      pcVar27 = *(code **)(puStack_68 + -0x6ae0);\n      if (pIVar13->shndx_ != 0xffffffff) {\n        pRVar2 = *(Relobj **)(puStack_68 + -0x77f0);\n        goto LAB_00215690;\n      }\n      goto LAB_0021575c;\n    }\n    pRVar3 = Input_section::relobj((Input_section *)this_01);\n    __s = (Input_file *)&pRVar2[0x84].super_Object.xindex_;\n    iVar4 = (**(code **)(puStack_68 + -0x70ac))();\n    if (iVar24 == 0) goto LAB_00215650;\n    if (iVar4 == 0) {\n      return true;\n    }\nLAB_002155ac:\n    uVar17 = 0xffffffff;\n    if (pIVar13[1].shndx_ != 0xffffffff) {\n      uVar28 = *(uint *)((int)&(this_01->super_Object).name_.field_2 + 0xc);\n      bVar1 = pIVar13[1].shndx_ < uVar28;\n      goto joined_r0x002155bc;\n    }\nLAB_00215844:\n    puVar26 = puStack_68;\n    Input_section_sort_entry::index((Input_section_sort_entry *)pRVar3,(char *)__s,(int)pRVar9);\n  }" if (parenthesized_expression "(pIVar13->shndx_ == 0xffffffff)" ( (binary_expression "pIVar13->shndx_ == 0xffffffff" (field_expression "pIVar13->shndx_" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n    pRVar21 = *(Relobj **)(puVar26 + 0x2aea40);\n    if ((this_01->super_Object)._vptr_Object != (_func_int_varargs **)0xffffffff) {\n      pRVar2 = Input_section::relobj((Input_section *)this_01);\n      iVar4 = (**(code **)(puStack_68 + -0x70ac))(pRVar2,*(int *)(puStack_68 + -0x77f0) + 0x35d0);\nLAB_00215650:\n      if (iVar4 != 0) {\n        return false;\n      }\n      pRVar2 = *(Relobj **)(puStack_68 + -0x77f0);\n      if (pIVar13->shndx_ == 0xffffffff) {\n        if ((this_01->super_Object)._vptr_Object != (_func_int_varargs **)0xffffffff) {\n          pRVar9 = Input_section::relobj((Input_section *)this_01);\n          iVar24 = (**(code **)(puStack_68 + -0x70ac))\n                             (pRVar9,*(int *)(puStack_68 + -0x77f0) + 0x35dc);\n          goto LAB_00215740;\n        }\n      }\n      else {\nLAB_00215690:\n        pRVar3 = Input_section::relobj(pIVar13);\n        iVar4 = (**(code **)(puStack_68 + -0x70ac))\n                          (pRVar3,&pRVar2[0x84].output_sections_.\n                                   super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                   ._M_impl._M_finish);\n        if ((this_01->super_Object)._vptr_Object == (_func_int_varargs **)0xffffffff) {\n          if (iVar4 != 0) {\n            return false;\n          }\n        }\n        else {\n          pRVar3 = Input_section::relobj((Input_section *)this_01);\n          __s = (Input_file *)\n                &pRVar2[0x84].output_sections_.\n                 super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                 _M_impl._M_finish;\n          iVar24 = (**(code **)(puStack_68 + -0x70ac))();\n          if (iVar4 != 0) {\n            if (iVar24 == 0) {\n              return false;\n            }\n            goto LAB_002155ac;\n          }\nLAB_00215740:\n          if (iVar24 != 0) {\n            return true;\n          }\n        }\n      }\n    }\n    pcVar27 = *(code **)(puStack_68 + -0x6ae0);\nLAB_0021575c:\n    iVar24 = (*pcVar27)(&pIVar13[1].p2align_,0x2e,1);\n    __s = (Input_file *)0x2e;\n    pRVar3 = (Relobj *)&(this_01->super_Object).input_file_;\n    iVar4 = (**(code **)(puStack_68 + -0x6ae0))(pRVar3,0x2e,1);\n    if (iVar24 == -1) {\n      if (iVar4 != -1) {\n        return true;\n      }\n    }\n    else if (iVar4 == -1) {\n      return false;\n    }\n    uVar17 = *(uint *)((int)&(this_01->super_Object).name_.field_2 + 0xc);\n    uVar28 = pIVar13->section_order_index_;\n    puVar26 = puStack_68;\n    if (uVar17 != 0xffffffff) {\n      if (uVar28 != 0) {\n        uVar6 = *(uint *)((int)&(this_01->super_Object).name_.field_2 + 8);\n        pRVar3 = (Relobj *)(uint)(uVar28 < uVar6);\n        if (uVar6 != 0) {\n          if (pRVar3 != (Relobj *)0x0) {\n            return true;\n          }\n          if (uVar6 < uVar28) {\n            return false;\n          }\n        }\n      }\n      pRVar2 = *(Relobj **)&pIVar13[1].u1_;\n      pRVar21 = *(Relobj **)&(this_01->super_Object).offset_;\n      pRVar9 = pRVar21;\n      if (pRVar2 <= pRVar21) {\n        pRVar9 = pRVar2;\n      }\n      if (pRVar9 != (Relobj *)0x0) {\n        __s = (this_01->super_Object).input_file_;\n        pRVar3 = (Relobj *)pIVar13[1].p2align_;\n        iVar24 = (**(code **)(puStack_68 + -0x354c))();\n        if (iVar24 != 0) {\n          return SUB41((uint)iVar24 >> 0x1f,0);\n        }\n      }\n      if ((int)pRVar2 - (int)pRVar21 != 0) {\n        return SUB41((uint)((int)pRVar2 - (int)pRVar21) >> 0x1f,0);\n      }\n      uVar28 = pIVar13[1].shndx_;\n      bVar1 = uVar28 < uVar17;\njoined_r0x002155bc:\n      if (uVar28 != 0xffffffff) {\n        return bVar1;\n      }\n      goto LAB_00215844;\n    }\n  }" { (expression_statement "pRVar21 = *(Relobj **)(puVar26 + 0x2aea40);" (assignment_expression "pRVar21 = *(Relobj **)(puVar26 + 0x2aea40)" identifier = (pointer_expression "*(Relobj **)(puVar26 + 0x2aea40)" * (cast_expression "(Relobj **)(puVar26 + 0x2aea40)" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x2aea40)" ( (binary_expression "puVar26 + 0x2aea40" identifier + number_literal) ))))) ;) (if_statement "if ((this_01->super_Object)._vptr_Object != (_func_int_varargs **)0xffffffff) {\n      pRVar2 = Input_section::relobj((Input_section *)this_01);\n      iVar4 = (**(code **)(puStack_68 + -0x70ac))(pRVar2,*(int *)(puStack_68 + -0x77f0) + 0x35d0);\nLAB_00215650:\n      if (iVar4 != 0) {\n        return false;\n      }\n      pRVar2 = *(Relobj **)(puStack_68 + -0x77f0);\n      if (pIVar13->shndx_ == 0xffffffff) {\n        if ((this_01->super_Object)._vptr_Object != (_func_int_varargs **)0xffffffff) {\n          pRVar9 = Input_section::relobj((Input_section *)this_01);\n          iVar24 = (**(code **)(puStack_68 + -0x70ac))\n                             (pRVar9,*(int *)(puStack_68 + -0x77f0) + 0x35dc);\n          goto LAB_00215740;\n        }\n      }\n      else {\nLAB_00215690:\n        pRVar3 = Input_section::relobj(pIVar13);\n        iVar4 = (**(code **)(puStack_68 + -0x70ac))\n                          (pRVar3,&pRVar2[0x84].output_sections_.\n                                   super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                   ._M_impl._M_finish);\n        if ((this_01->super_Object)._vptr_Object == (_func_int_varargs **)0xffffffff) {\n          if (iVar4 != 0) {\n            return false;\n          }\n        }\n        else {\n          pRVar3 = Input_section::relobj((Input_section *)this_01);\n          __s = (Input_file *)\n                &pRVar2[0x84].output_sections_.\n                 super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                 _M_impl._M_finish;\n          iVar24 = (**(code **)(puStack_68 + -0x70ac))();\n          if (iVar4 != 0) {\n            if (iVar24 == 0) {\n              return false;\n            }\n            goto LAB_002155ac;\n          }\nLAB_00215740:\n          if (iVar24 != 0) {\n            return true;\n          }\n        }\n      }\n    }" if (parenthesized_expression "((this_01->super_Object)._vptr_Object != (_func_int_varargs **)0xffffffff)" ( (binary_expression "(this_01->super_Object)._vptr_Object != (_func_int_varargs **)0xffffffff" (field_expression "(this_01->super_Object)._vptr_Object" (parenthesized_expression "(this_01->super_Object)" ( (field_expression "this_01->super_Object" identifier -> field_identifier) )) . field_identifier) != (cast_expression "(_func_int_varargs **)0xffffffff" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n      pRVar2 = Input_section::relobj((Input_section *)this_01);\n      iVar4 = (**(code **)(puStack_68 + -0x70ac))(pRVar2,*(int *)(puStack_68 + -0x77f0) + 0x35d0);\nLAB_00215650:\n      if (iVar4 != 0) {\n        return false;\n      }\n      pRVar2 = *(Relobj **)(puStack_68 + -0x77f0);\n      if (pIVar13->shndx_ == 0xffffffff) {\n        if ((this_01->super_Object)._vptr_Object != (_func_int_varargs **)0xffffffff) {\n          pRVar9 = Input_section::relobj((Input_section *)this_01);\n          iVar24 = (**(code **)(puStack_68 + -0x70ac))\n                             (pRVar9,*(int *)(puStack_68 + -0x77f0) + 0x35dc);\n          goto LAB_00215740;\n        }\n      }\n      else {\nLAB_00215690:\n        pRVar3 = Input_section::relobj(pIVar13);\n        iVar4 = (**(code **)(puStack_68 + -0x70ac))\n                          (pRVar3,&pRVar2[0x84].output_sections_.\n                                   super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                   ._M_impl._M_finish);\n        if ((this_01->super_Object)._vptr_Object == (_func_int_varargs **)0xffffffff) {\n          if (iVar4 != 0) {\n            return false;\n          }\n        }\n        else {\n          pRVar3 = Input_section::relobj((Input_section *)this_01);\n          __s = (Input_file *)\n                &pRVar2[0x84].output_sections_.\n                 super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                 _M_impl._M_finish;\n          iVar24 = (**(code **)(puStack_68 + -0x70ac))();\n          if (iVar4 != 0) {\n            if (iVar24 == 0) {\n              return false;\n            }\n            goto LAB_002155ac;\n          }\nLAB_00215740:\n          if (iVar24 != 0) {\n            return true;\n          }\n        }\n      }\n    }" { (ERROR "pRVar2 = Input_section::" (assignment_expression "pRVar2 = Input_section" identifier = identifier) : :) (expression_statement "relobj((Input_section *)this_01);" (call_expression "relobj((Input_section *)this_01)" identifier (argument_list "((Input_section *)this_01)" ( (cast_expression "(Input_section *)this_01" ( (type_descriptor "Input_section *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "iVar4 = (**(code **)(puStack_68 + -0x70ac))(pRVar2,*(int *)(puStack_68 + -0x77f0) + 0x35d0);" (assignment_expression "iVar4 = (**(code **)(puStack_68 + -0x70ac))(pRVar2,*(int *)(puStack_68 + -0x77f0) + 0x35d0)" identifier = (call_expression "(**(code **)(puStack_68 + -0x70ac))(pRVar2,*(int *)(puStack_68 + -0x77f0) + 0x35d0)" (parenthesized_expression "(**(code **)(puStack_68 + -0x70ac))" ( (pointer_expression "**(code **)(puStack_68 + -0x70ac)" * (pointer_expression "*(code **)(puStack_68 + -0x70ac)" * (cast_expression "(code **)(puStack_68 + -0x70ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_68 + -0x70ac)" ( (binary_expression "puStack_68 + -0x70ac" identifier + number_literal) ))))) )) (argument_list "(pRVar2,*(int *)(puStack_68 + -0x77f0) + 0x35d0)" ( identifier , (binary_expression "*(int *)(puStack_68 + -0x77f0) + 0x35d0" (pointer_expression "*(int *)(puStack_68 + -0x77f0)" * (cast_expression "(int *)(puStack_68 + -0x77f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_68 + -0x77f0)" ( (binary_expression "puStack_68 + -0x77f0" identifier + number_literal) )))) + number_literal) )))) ;) (labeled_statement "LAB_00215650:\n      if (iVar4 != 0) {\n        return false;\n      }" statement_identifier : (if_statement "if (iVar4 != 0) {\n        return false;\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        return false;\n      }" { (return_statement "return false;" return false ;) }))) (expression_statement "pRVar2 = *(Relobj **)(puStack_68 + -0x77f0);" (assignment_expression "pRVar2 = *(Relobj **)(puStack_68 + -0x77f0)" identifier = (pointer_expression "*(Relobj **)(puStack_68 + -0x77f0)" * (cast_expression "(Relobj **)(puStack_68 + -0x77f0)" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_68 + -0x77f0)" ( (binary_expression "puStack_68 + -0x77f0" identifier + number_literal) ))))) ;) (if_statement "if (pIVar13->shndx_ == 0xffffffff) {\n        if ((this_01->super_Object)._vptr_Object != (_func_int_varargs **)0xffffffff) {\n          pRVar9 = Input_section::relobj((Input_section *)this_01);\n          iVar24 = (**(code **)(puStack_68 + -0x70ac))\n                             (pRVar9,*(int *)(puStack_68 + -0x77f0) + 0x35dc);\n          goto LAB_00215740;\n        }\n      }\n      else {\nLAB_00215690:\n        pRVar3 = Input_section::relobj(pIVar13);\n        iVar4 = (**(code **)(puStack_68 + -0x70ac))\n                          (pRVar3,&pRVar2[0x84].output_sections_.\n                                   super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                   ._M_impl._M_finish);\n        if ((this_01->super_Object)._vptr_Object == (_func_int_varargs **)0xffffffff) {\n          if (iVar4 != 0) {\n            return false;\n          }\n        }\n        else {\n          pRVar3 = Input_section::relobj((Input_section *)this_01);\n          __s = (Input_file *)\n                &pRVar2[0x84].output_sections_.\n                 super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                 _M_impl._M_finish;\n          iVar24 = (**(code **)(puStack_68 + -0x70ac))();\n          if (iVar4 != 0) {\n            if (iVar24 == 0) {\n              return false;\n            }\n            goto LAB_002155ac;\n          }\nLAB_00215740:\n          if (iVar24 != 0) {\n            return true;\n          }\n        }\n      }" if (parenthesized_expression "(pIVar13->shndx_ == 0xffffffff)" ( (binary_expression "pIVar13->shndx_ == 0xffffffff" (field_expression "pIVar13->shndx_" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n        if ((this_01->super_Object)._vptr_Object != (_func_int_varargs **)0xffffffff) {\n          pRVar9 = Input_section::relobj((Input_section *)this_01);\n          iVar24 = (**(code **)(puStack_68 + -0x70ac))\n                             (pRVar9,*(int *)(puStack_68 + -0x77f0) + 0x35dc);\n          goto LAB_00215740;\n        }\n      }" { (if_statement "if ((this_01->super_Object)._vptr_Object != (_func_int_varargs **)0xffffffff) {\n          pRVar9 = Input_section::relobj((Input_section *)this_01);\n          iVar24 = (**(code **)(puStack_68 + -0x70ac))\n                             (pRVar9,*(int *)(puStack_68 + -0x77f0) + 0x35dc);\n          goto LAB_00215740;\n        }" if (parenthesized_expression "((this_01->super_Object)._vptr_Object != (_func_int_varargs **)0xffffffff)" ( (binary_expression "(this_01->super_Object)._vptr_Object != (_func_int_varargs **)0xffffffff" (field_expression "(this_01->super_Object)._vptr_Object" (parenthesized_expression "(this_01->super_Object)" ( (field_expression "this_01->super_Object" identifier -> field_identifier) )) . field_identifier) != (cast_expression "(_func_int_varargs **)0xffffffff" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n          pRVar9 = Input_section::relobj((Input_section *)this_01);\n          iVar24 = (**(code **)(puStack_68 + -0x70ac))\n                             (pRVar9,*(int *)(puStack_68 + -0x77f0) + 0x35dc);\n          goto LAB_00215740;\n        }" { (ERROR "pRVar9 = Input_section::" (assignment_expression "pRVar9 = Input_section" identifier = identifier) : :) (expression_statement "relobj((Input_section *)this_01);" (call_expression "relobj((Input_section *)this_01)" identifier (argument_list "((Input_section *)this_01)" ( (cast_expression "(Input_section *)this_01" ( (type_descriptor "Input_section *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "iVar24 = (**(code **)(puStack_68 + -0x70ac))\n                             (pRVar9,*(int *)(puStack_68 + -0x77f0) + 0x35dc);" (assignment_expression "iVar24 = (**(code **)(puStack_68 + -0x70ac))\n                             (pRVar9,*(int *)(puStack_68 + -0x77f0) + 0x35dc)" identifier = (call_expression "(**(code **)(puStack_68 + -0x70ac))\n                             (pRVar9,*(int *)(puStack_68 + -0x77f0) + 0x35dc)" (parenthesized_expression "(**(code **)(puStack_68 + -0x70ac))" ( (pointer_expression "**(code **)(puStack_68 + -0x70ac)" * (pointer_expression "*(code **)(puStack_68 + -0x70ac)" * (cast_expression "(code **)(puStack_68 + -0x70ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_68 + -0x70ac)" ( (binary_expression "puStack_68 + -0x70ac" identifier + number_literal) ))))) )) (argument_list "(pRVar9,*(int *)(puStack_68 + -0x77f0) + 0x35dc)" ( identifier , (binary_expression "*(int *)(puStack_68 + -0x77f0) + 0x35dc" (pointer_expression "*(int *)(puStack_68 + -0x77f0)" * (cast_expression "(int *)(puStack_68 + -0x77f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_68 + -0x77f0)" ( (binary_expression "puStack_68 + -0x77f0" identifier + number_literal) )))) + number_literal) )))) ;) (goto_statement "goto LAB_00215740;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_00215690:\n        pRVar3 = Input_section::relobj(pIVar13);\n        iVar4 = (**(code **)(puStack_68 + -0x70ac))\n                          (pRVar3,&pRVar2[0x84].output_sections_.\n                                   super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                   ._M_impl._M_finish);\n        if ((this_01->super_Object)._vptr_Object == (_func_int_varargs **)0xffffffff) {\n          if (iVar4 != 0) {\n            return false;\n          }\n        }\n        else {\n          pRVar3 = Input_section::relobj((Input_section *)this_01);\n          __s = (Input_file *)\n                &pRVar2[0x84].output_sections_.\n                 super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                 _M_impl._M_finish;\n          iVar24 = (**(code **)(puStack_68 + -0x70ac))();\n          if (iVar4 != 0) {\n            if (iVar24 == 0) {\n              return false;\n            }\n            goto LAB_002155ac;\n          }\nLAB_00215740:\n          if (iVar24 != 0) {\n            return true;\n          }\n        }\n      }" else (compound_statement "{\nLAB_00215690:\n        pRVar3 = Input_section::relobj(pIVar13);\n        iVar4 = (**(code **)(puStack_68 + -0x70ac))\n                          (pRVar3,&pRVar2[0x84].output_sections_.\n                                   super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                   ._M_impl._M_finish);\n        if ((this_01->super_Object)._vptr_Object == (_func_int_varargs **)0xffffffff) {\n          if (iVar4 != 0) {\n            return false;\n          }\n        }\n        else {\n          pRVar3 = Input_section::relobj((Input_section *)this_01);\n          __s = (Input_file *)\n                &pRVar2[0x84].output_sections_.\n                 super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                 _M_impl._M_finish;\n          iVar24 = (**(code **)(puStack_68 + -0x70ac))();\n          if (iVar4 != 0) {\n            if (iVar24 == 0) {\n              return false;\n            }\n            goto LAB_002155ac;\n          }\nLAB_00215740:\n          if (iVar24 != 0) {\n            return true;\n          }\n        }\n      }" { (labeled_statement "LAB_00215690:\n        pRVar3 = Input_section::relobj(pIVar13);" statement_identifier : (ERROR "pRVar3 = Input_section::" (assignment_expression "pRVar3 = Input_section" identifier = identifier) : :) (expression_statement "relobj(pIVar13);" (call_expression "relobj(pIVar13)" identifier (argument_list "(pIVar13)" ( identifier ))) ;)) (expression_statement "iVar4 = (**(code **)(puStack_68 + -0x70ac))\n                          (pRVar3,&pRVar2[0x84].output_sections_.\n                                   super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                   ._M_impl._M_finish);" (assignment_expression "iVar4 = (**(code **)(puStack_68 + -0x70ac))\n                          (pRVar3,&pRVar2[0x84].output_sections_.\n                                   super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                   ._M_impl._M_finish)" identifier = (call_expression "(**(code **)(puStack_68 + -0x70ac))\n                          (pRVar3,&pRVar2[0x84].output_sections_.\n                                   super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                   ._M_impl._M_finish)" (parenthesized_expression "(**(code **)(puStack_68 + -0x70ac))" ( (pointer_expression "**(code **)(puStack_68 + -0x70ac)" * (pointer_expression "*(code **)(puStack_68 + -0x70ac)" * (cast_expression "(code **)(puStack_68 + -0x70ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_68 + -0x70ac)" ( (binary_expression "puStack_68 + -0x70ac" identifier + number_literal) ))))) )) (argument_list "(pRVar3,&pRVar2[0x84].output_sections_.\n                                   super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                   ._M_impl._M_finish)" ( identifier , (binary_expression "&pRVar2[0x84].output_sections_.\n                                   super__Vector_base<gold" (pointer_expression "&pRVar2[0x84].output_sections_.\n                                   super__Vector_base" & (field_expression "pRVar2[0x84].output_sections_.\n                                   super__Vector_base" (field_expression "pRVar2[0x84].output_sections_" (subscript_expression "pRVar2[0x84]" identifier [ number_literal ]) . field_identifier) . field_identifier)) < identifier) (ERROR "::Output_section*" : : identifier *) , (ERROR "_std::allocator<gold::" identifier : : (binary_expression "allocator<gold" identifier < identifier) : :) (field_expression "Output_section*>_>\n                                   ._M_impl._M_finish" (field_expression "Output_section*>_>\n                                   ._M_impl" (binary_expression "Output_section*>_" identifier * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) )))) ;) (if_statement "if ((this_01->super_Object)._vptr_Object == (_func_int_varargs **)0xffffffff) {\n          if (iVar4 != 0) {\n            return false;\n          }\n        }\n        else {\n          pRVar3 = Input_section::relobj((Input_section *)this_01);\n          __s = (Input_file *)\n                &pRVar2[0x84].output_sections_.\n                 super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                 _M_impl._M_finish;\n          iVar24 = (**(code **)(puStack_68 + -0x70ac))();\n          if (iVar4 != 0) {\n            if (iVar24 == 0) {\n              return false;\n            }\n            goto LAB_002155ac;\n          }\nLAB_00215740:\n          if (iVar24 != 0) {\n            return true;\n          }\n        }" if (parenthesized_expression "((this_01->super_Object)._vptr_Object == (_func_int_varargs **)0xffffffff)" ( (binary_expression "(this_01->super_Object)._vptr_Object == (_func_int_varargs **)0xffffffff" (field_expression "(this_01->super_Object)._vptr_Object" (parenthesized_expression "(this_01->super_Object)" ( (field_expression "this_01->super_Object" identifier -> field_identifier) )) . field_identifier) == (cast_expression "(_func_int_varargs **)0xffffffff" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n          if (iVar4 != 0) {\n            return false;\n          }\n        }" { (if_statement "if (iVar4 != 0) {\n            return false;\n          }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n            return false;\n          }" { (return_statement "return false;" return false ;) })) }) (else_clause "else {\n          pRVar3 = Input_section::relobj((Input_section *)this_01);\n          __s = (Input_file *)\n                &pRVar2[0x84].output_sections_.\n                 super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                 _M_impl._M_finish;\n          iVar24 = (**(code **)(puStack_68 + -0x70ac))();\n          if (iVar4 != 0) {\n            if (iVar24 == 0) {\n              return false;\n            }\n            goto LAB_002155ac;\n          }\nLAB_00215740:\n          if (iVar24 != 0) {\n            return true;\n          }\n        }" else (compound_statement "{\n          pRVar3 = Input_section::relobj((Input_section *)this_01);\n          __s = (Input_file *)\n                &pRVar2[0x84].output_sections_.\n                 super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                 _M_impl._M_finish;\n          iVar24 = (**(code **)(puStack_68 + -0x70ac))();\n          if (iVar4 != 0) {\n            if (iVar24 == 0) {\n              return false;\n            }\n            goto LAB_002155ac;\n          }\nLAB_00215740:\n          if (iVar24 != 0) {\n            return true;\n          }\n        }" { (ERROR "pRVar3 = Input_section::" (assignment_expression "pRVar3 = Input_section" identifier = identifier) : :) (expression_statement "relobj((Input_section *)this_01);" (call_expression "relobj((Input_section *)this_01)" identifier (argument_list "((Input_section *)this_01)" ( (cast_expression "(Input_section *)this_01" ( (type_descriptor "Input_section *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "__s = (Input_file *)\n                &pRVar2[0x84].output_sections_.\n                 super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                 _M_impl._M_finish;" (field_expression "__s = (Input_file *)\n                &pRVar2[0x84].output_sections_.\n                 super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                 _M_impl._M_finish" (field_expression "__s = (Input_file *)\n                &pRVar2[0x84].output_sections_.\n                 super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                 _M_impl" (binary_expression "__s = (Input_file *)\n                &pRVar2[0x84].output_sections_.\n                 super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "__s = (Input_file *)\n                &pRVar2[0x84].output_sections_.\n                 super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "__s = (Input_file *)\n                &pRVar2[0x84].output_sections_.\n                 super__Vector_base<gold::Output_section*,_std" (assignment_expression "__s = (Input_file *)\n                &pRVar2[0x84].output_sections_.\n                 super__Vector_base<gold" identifier = (binary_expression "(Input_file *)\n                &pRVar2[0x84].output_sections_.\n                 super__Vector_base<gold" (cast_expression "(Input_file *)\n                &pRVar2[0x84].output_sections_.\n                 super__Vector_base" ( (type_descriptor "Input_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pRVar2[0x84].output_sections_.\n                 super__Vector_base" & (field_expression "pRVar2[0x84].output_sections_.\n                 super__Vector_base" (field_expression "pRVar2[0x84].output_sections_" (subscript_expression "pRVar2[0x84]" identifier [ number_literal ]) . field_identifier) . field_identifier))) < identifier)) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "iVar24 = (**(code **)(puStack_68 + -0x70ac))();" (assignment_expression "iVar24 = (**(code **)(puStack_68 + -0x70ac))()" identifier = (call_expression "(**(code **)(puStack_68 + -0x70ac))()" (parenthesized_expression "(**(code **)(puStack_68 + -0x70ac))" ( (pointer_expression "**(code **)(puStack_68 + -0x70ac)" * (pointer_expression "*(code **)(puStack_68 + -0x70ac)" * (cast_expression "(code **)(puStack_68 + -0x70ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_68 + -0x70ac)" ( (binary_expression "puStack_68 + -0x70ac" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar4 != 0) {\n            if (iVar24 == 0) {\n              return false;\n            }\n            goto LAB_002155ac;\n          }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n            if (iVar24 == 0) {\n              return false;\n            }\n            goto LAB_002155ac;\n          }" { (if_statement "if (iVar24 == 0) {\n              return false;\n            }" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (compound_statement "{\n              return false;\n            }" { (return_statement "return false;" return false ;) })) (goto_statement "goto LAB_002155ac;" goto statement_identifier ;) })) (labeled_statement "LAB_00215740:\n          if (iVar24 != 0) {\n            return true;\n          }" statement_identifier : (if_statement "if (iVar24 != 0) {\n            return true;\n          }" if (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) (compound_statement "{\n            return true;\n          }" { (return_statement "return true;" return true ;) }))) }))) }))) })) (expression_statement "pcVar27 = *(code **)(puStack_68 + -0x6ae0);" (assignment_expression "pcVar27 = *(code **)(puStack_68 + -0x6ae0)" identifier = (pointer_expression "*(code **)(puStack_68 + -0x6ae0)" * (cast_expression "(code **)(puStack_68 + -0x6ae0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_68 + -0x6ae0)" ( (binary_expression "puStack_68 + -0x6ae0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0021575c:\n    iVar24 = (*pcVar27)(&pIVar13[1].p2align_,0x2e,1);" statement_identifier : (expression_statement "iVar24 = (*pcVar27)(&pIVar13[1].p2align_,0x2e,1);" (assignment_expression "iVar24 = (*pcVar27)(&pIVar13[1].p2align_,0x2e,1)" identifier = (call_expression "(*pcVar27)(&pIVar13[1].p2align_,0x2e,1)" (parenthesized_expression "(*pcVar27)" ( (pointer_expression "*pcVar27" * identifier) )) (argument_list "(&pIVar13[1].p2align_,0x2e,1)" ( (pointer_expression "&pIVar13[1].p2align_" & (field_expression "pIVar13[1].p2align_" (subscript_expression "pIVar13[1]" identifier [ number_literal ]) . field_identifier)) , number_literal , number_literal )))) ;)) (expression_statement "__s = (Input_file *)0x2e;" (assignment_expression "__s = (Input_file *)0x2e" identifier = (cast_expression "(Input_file *)0x2e" ( (type_descriptor "Input_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pRVar3 = (Relobj *)&(this_01->super_Object).input_file_;" (assignment_expression "pRVar3 = (Relobj *)&(this_01->super_Object).input_file_" identifier = (cast_expression "(Relobj *)&(this_01->super_Object).input_file_" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this_01->super_Object).input_file_" & (field_expression "(this_01->super_Object).input_file_" (parenthesized_expression "(this_01->super_Object)" ( (field_expression "this_01->super_Object" identifier -> field_identifier) )) . field_identifier)))) ;) (expression_statement "iVar4 = (**(code **)(puStack_68 + -0x6ae0))(pRVar3,0x2e,1);" (assignment_expression "iVar4 = (**(code **)(puStack_68 + -0x6ae0))(pRVar3,0x2e,1)" identifier = (call_expression "(**(code **)(puStack_68 + -0x6ae0))(pRVar3,0x2e,1)" (parenthesized_expression "(**(code **)(puStack_68 + -0x6ae0))" ( (pointer_expression "**(code **)(puStack_68 + -0x6ae0)" * (pointer_expression "*(code **)(puStack_68 + -0x6ae0)" * (cast_expression "(code **)(puStack_68 + -0x6ae0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_68 + -0x6ae0)" ( (binary_expression "puStack_68 + -0x6ae0" identifier + number_literal) ))))) )) (argument_list "(pRVar3,0x2e,1)" ( identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar24 == -1) {\n      if (iVar4 != -1) {\n        return true;\n      }\n    }\n    else if (iVar4 == -1) {\n      return false;\n    }" if (parenthesized_expression "(iVar24 == -1)" ( (binary_expression "iVar24 == -1" identifier == number_literal) )) (compound_statement "{\n      if (iVar4 != -1) {\n        return true;\n      }\n    }" { (if_statement "if (iVar4 != -1) {\n        return true;\n      }" if (parenthesized_expression "(iVar4 != -1)" ( (binary_expression "iVar4 != -1" identifier != number_literal) )) (compound_statement "{\n        return true;\n      }" { (return_statement "return true;" return true ;) })) }) (else_clause "else if (iVar4 == -1) {\n      return false;\n    }" else (if_statement "if (iVar4 == -1) {\n      return false;\n    }" if (parenthesized_expression "(iVar4 == -1)" ( (binary_expression "iVar4 == -1" identifier == number_literal) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })))) (expression_statement "uVar17 = *(uint *)((int)&(this_01->super_Object).name_.field_2 + 0xc);" (assignment_expression "uVar17 = *(uint *)((int)&(this_01->super_Object).name_.field_2 + 0xc)" identifier = (pointer_expression "*(uint *)((int)&(this_01->super_Object).name_.field_2 + 0xc)" * (cast_expression "(uint *)((int)&(this_01->super_Object).name_.field_2 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(this_01->super_Object).name_.field_2 + 0xc)" ( (binary_expression "(int)&(this_01->super_Object).name_.field_2 + 0xc" (cast_expression "(int)&(this_01->super_Object).name_.field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(this_01->super_Object).name_.field_2" & (field_expression "(this_01->super_Object).name_.field_2" (field_expression "(this_01->super_Object).name_" (parenthesized_expression "(this_01->super_Object)" ( (field_expression "this_01->super_Object" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar28 = pIVar13->section_order_index_;" (assignment_expression "uVar28 = pIVar13->section_order_index_" identifier = (field_expression "pIVar13->section_order_index_" identifier -> field_identifier)) ;) (expression_statement "puVar26 = puStack_68;" (assignment_expression "puVar26 = puStack_68" identifier = identifier) ;) (if_statement "if (uVar17 != 0xffffffff) {\n      if (uVar28 != 0) {\n        uVar6 = *(uint *)((int)&(this_01->super_Object).name_.field_2 + 8);\n        pRVar3 = (Relobj *)(uint)(uVar28 < uVar6);\n        if (uVar6 != 0) {\n          if (pRVar3 != (Relobj *)0x0) {\n            return true;\n          }\n          if (uVar6 < uVar28) {\n            return false;\n          }\n        }\n      }\n      pRVar2 = *(Relobj **)&pIVar13[1].u1_;\n      pRVar21 = *(Relobj **)&(this_01->super_Object).offset_;\n      pRVar9 = pRVar21;\n      if (pRVar2 <= pRVar21) {\n        pRVar9 = pRVar2;\n      }\n      if (pRVar9 != (Relobj *)0x0) {\n        __s = (this_01->super_Object).input_file_;\n        pRVar3 = (Relobj *)pIVar13[1].p2align_;\n        iVar24 = (**(code **)(puStack_68 + -0x354c))();\n        if (iVar24 != 0) {\n          return SUB41((uint)iVar24 >> 0x1f,0);\n        }\n      }\n      if ((int)pRVar2 - (int)pRVar21 != 0) {\n        return SUB41((uint)((int)pRVar2 - (int)pRVar21) >> 0x1f,0);\n      }\n      uVar28 = pIVar13[1].shndx_;\n      bVar1 = uVar28 < uVar17;\njoined_r0x002155bc:\n      if (uVar28 != 0xffffffff) {\n        return bVar1;\n      }\n      goto LAB_00215844;\n    }" if (parenthesized_expression "(uVar17 != 0xffffffff)" ( (binary_expression "uVar17 != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n      if (uVar28 != 0) {\n        uVar6 = *(uint *)((int)&(this_01->super_Object).name_.field_2 + 8);\n        pRVar3 = (Relobj *)(uint)(uVar28 < uVar6);\n        if (uVar6 != 0) {\n          if (pRVar3 != (Relobj *)0x0) {\n            return true;\n          }\n          if (uVar6 < uVar28) {\n            return false;\n          }\n        }\n      }\n      pRVar2 = *(Relobj **)&pIVar13[1].u1_;\n      pRVar21 = *(Relobj **)&(this_01->super_Object).offset_;\n      pRVar9 = pRVar21;\n      if (pRVar2 <= pRVar21) {\n        pRVar9 = pRVar2;\n      }\n      if (pRVar9 != (Relobj *)0x0) {\n        __s = (this_01->super_Object).input_file_;\n        pRVar3 = (Relobj *)pIVar13[1].p2align_;\n        iVar24 = (**(code **)(puStack_68 + -0x354c))();\n        if (iVar24 != 0) {\n          return SUB41((uint)iVar24 >> 0x1f,0);\n        }\n      }\n      if ((int)pRVar2 - (int)pRVar21 != 0) {\n        return SUB41((uint)((int)pRVar2 - (int)pRVar21) >> 0x1f,0);\n      }\n      uVar28 = pIVar13[1].shndx_;\n      bVar1 = uVar28 < uVar17;\njoined_r0x002155bc:\n      if (uVar28 != 0xffffffff) {\n        return bVar1;\n      }\n      goto LAB_00215844;\n    }" { (if_statement "if (uVar28 != 0) {\n        uVar6 = *(uint *)((int)&(this_01->super_Object).name_.field_2 + 8);\n        pRVar3 = (Relobj *)(uint)(uVar28 < uVar6);\n        if (uVar6 != 0) {\n          if (pRVar3 != (Relobj *)0x0) {\n            return true;\n          }\n          if (uVar6 < uVar28) {\n            return false;\n          }\n        }\n      }" if (parenthesized_expression "(uVar28 != 0)" ( (binary_expression "uVar28 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar6 = *(uint *)((int)&(this_01->super_Object).name_.field_2 + 8);\n        pRVar3 = (Relobj *)(uint)(uVar28 < uVar6);\n        if (uVar6 != 0) {\n          if (pRVar3 != (Relobj *)0x0) {\n            return true;\n          }\n          if (uVar6 < uVar28) {\n            return false;\n          }\n        }\n      }" { (expression_statement "uVar6 = *(uint *)((int)&(this_01->super_Object).name_.field_2 + 8);" (assignment_expression "uVar6 = *(uint *)((int)&(this_01->super_Object).name_.field_2 + 8)" identifier = (pointer_expression "*(uint *)((int)&(this_01->super_Object).name_.field_2 + 8)" * (cast_expression "(uint *)((int)&(this_01->super_Object).name_.field_2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(this_01->super_Object).name_.field_2 + 8)" ( (binary_expression "(int)&(this_01->super_Object).name_.field_2 + 8" (cast_expression "(int)&(this_01->super_Object).name_.field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(this_01->super_Object).name_.field_2" & (field_expression "(this_01->super_Object).name_.field_2" (field_expression "(this_01->super_Object).name_" (parenthesized_expression "(this_01->super_Object)" ( (field_expression "this_01->super_Object" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) ))))) ;) (expression_statement "pRVar3 = (Relobj *)(uint)(uVar28 < uVar6);" (assignment_expression "pRVar3 = (Relobj *)(uint)(uVar28 < uVar6)" identifier = (cast_expression "(Relobj *)(uint)(uVar28 < uVar6)" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(uVar28 < uVar6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar28 < uVar6)" ( (binary_expression "uVar28 < uVar6" identifier < identifier) ))))) ;) (if_statement "if (uVar6 != 0) {\n          if (pRVar3 != (Relobj *)0x0) {\n            return true;\n          }\n          if (uVar6 < uVar28) {\n            return false;\n          }\n        }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n          if (pRVar3 != (Relobj *)0x0) {\n            return true;\n          }\n          if (uVar6 < uVar28) {\n            return false;\n          }\n        }" { (if_statement "if (pRVar3 != (Relobj *)0x0) {\n            return true;\n          }" if (parenthesized_expression "(pRVar3 != (Relobj *)0x0)" ( (binary_expression "pRVar3 != (Relobj *)0x0" identifier != (cast_expression "(Relobj *)0x0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            return true;\n          }" { (return_statement "return true;" return true ;) })) (if_statement "if (uVar6 < uVar28) {\n            return false;\n          }" if (parenthesized_expression "(uVar6 < uVar28)" ( (binary_expression "uVar6 < uVar28" identifier < identifier) )) (compound_statement "{\n            return false;\n          }" { (return_statement "return false;" return false ;) })) })) })) (expression_statement "pRVar2 = *(Relobj **)&pIVar13[1].u1_;" (assignment_expression "pRVar2 = *(Relobj **)&pIVar13[1].u1_" identifier = (pointer_expression "*(Relobj **)&pIVar13[1].u1_" * (cast_expression "(Relobj **)&pIVar13[1].u1_" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pIVar13[1].u1_" & (field_expression "pIVar13[1].u1_" (subscript_expression "pIVar13[1]" identifier [ number_literal ]) . field_identifier))))) ;) (expression_statement "pRVar21 = *(Relobj **)&(this_01->super_Object).offset_;" (assignment_expression "pRVar21 = *(Relobj **)&(this_01->super_Object).offset_" identifier = (pointer_expression "*(Relobj **)&(this_01->super_Object).offset_" * (cast_expression "(Relobj **)&(this_01->super_Object).offset_" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&(this_01->super_Object).offset_" & (field_expression "(this_01->super_Object).offset_" (parenthesized_expression "(this_01->super_Object)" ( (field_expression "this_01->super_Object" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "pRVar9 = pRVar21;" (assignment_expression "pRVar9 = pRVar21" identifier = identifier) ;) (if_statement "if (pRVar2 <= pRVar21) {\n        pRVar9 = pRVar2;\n      }" if (parenthesized_expression "(pRVar2 <= pRVar21)" ( (binary_expression "pRVar2 <= pRVar21" identifier <= identifier) )) (compound_statement "{\n        pRVar9 = pRVar2;\n      }" { (expression_statement "pRVar9 = pRVar2;" (assignment_expression "pRVar9 = pRVar2" identifier = identifier) ;) })) (if_statement "if (pRVar9 != (Relobj *)0x0) {\n        __s = (this_01->super_Object).input_file_;\n        pRVar3 = (Relobj *)pIVar13[1].p2align_;\n        iVar24 = (**(code **)(puStack_68 + -0x354c))();\n        if (iVar24 != 0) {\n          return SUB41((uint)iVar24 >> 0x1f,0);\n        }\n      }" if (parenthesized_expression "(pRVar9 != (Relobj *)0x0)" ( (binary_expression "pRVar9 != (Relobj *)0x0" identifier != (cast_expression "(Relobj *)0x0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        __s = (this_01->super_Object).input_file_;\n        pRVar3 = (Relobj *)pIVar13[1].p2align_;\n        iVar24 = (**(code **)(puStack_68 + -0x354c))();\n        if (iVar24 != 0) {\n          return SUB41((uint)iVar24 >> 0x1f,0);\n        }\n      }" { (expression_statement "__s = (this_01->super_Object).input_file_;" (assignment_expression "__s = (this_01->super_Object).input_file_" identifier = (field_expression "(this_01->super_Object).input_file_" (parenthesized_expression "(this_01->super_Object)" ( (field_expression "this_01->super_Object" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pRVar3 = (Relobj *)pIVar13[1].p2align_;" (assignment_expression "pRVar3 = (Relobj *)pIVar13[1].p2align_" identifier = (cast_expression "(Relobj *)pIVar13[1].p2align_" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pIVar13[1].p2align_" (subscript_expression "pIVar13[1]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "iVar24 = (**(code **)(puStack_68 + -0x354c))();" (assignment_expression "iVar24 = (**(code **)(puStack_68 + -0x354c))()" identifier = (call_expression "(**(code **)(puStack_68 + -0x354c))()" (parenthesized_expression "(**(code **)(puStack_68 + -0x354c))" ( (pointer_expression "**(code **)(puStack_68 + -0x354c)" * (pointer_expression "*(code **)(puStack_68 + -0x354c)" * (cast_expression "(code **)(puStack_68 + -0x354c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_68 + -0x354c)" ( (binary_expression "puStack_68 + -0x354c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar24 != 0) {\n          return SUB41((uint)iVar24 >> 0x1f,0);\n        }" if (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) (compound_statement "{\n          return SUB41((uint)iVar24 >> 0x1f,0);\n        }" { (return_statement "return SUB41((uint)iVar24 >> 0x1f,0);" return (call_expression "SUB41((uint)iVar24 >> 0x1f,0)" identifier (argument_list "((uint)iVar24 >> 0x1f,0)" ( (binary_expression "(uint)iVar24 >> 0x1f" (cast_expression "(uint)iVar24" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) , number_literal ))) ;) })) })) (if_statement "if ((int)pRVar2 - (int)pRVar21 != 0) {\n        return SUB41((uint)((int)pRVar2 - (int)pRVar21) >> 0x1f,0);\n      }" if (parenthesized_expression "((int)pRVar2 - (int)pRVar21 != 0)" ( (binary_expression "(int)pRVar2 - (int)pRVar21 != 0" (binary_expression "(int)pRVar2 - (int)pRVar21" (cast_expression "(int)pRVar2" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pRVar21" ( (type_descriptor "int" primitive_type) ) identifier)) != number_literal) )) (compound_statement "{\n        return SUB41((uint)((int)pRVar2 - (int)pRVar21) >> 0x1f,0);\n      }" { (return_statement "return SUB41((uint)((int)pRVar2 - (int)pRVar21) >> 0x1f,0);" return (call_expression "SUB41((uint)((int)pRVar2 - (int)pRVar21) >> 0x1f,0)" identifier (argument_list "((uint)((int)pRVar2 - (int)pRVar21) >> 0x1f,0)" ( (binary_expression "(uint)((int)pRVar2 - (int)pRVar21) >> 0x1f" (call_expression "(uint)((int)pRVar2 - (int)pRVar21)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pRVar2 - (int)pRVar21)" ( (binary_expression "(int)pRVar2 - (int)pRVar21" (cast_expression "(int)pRVar2" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pRVar21" ( (type_descriptor "int" primitive_type) ) identifier)) ))) >> number_literal) , number_literal ))) ;) })) (expression_statement "uVar28 = pIVar13[1].shndx_;" (assignment_expression "uVar28 = pIVar13[1].shndx_" identifier = (field_expression "pIVar13[1].shndx_" (subscript_expression "pIVar13[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "bVar1 = uVar28 < uVar17;" (assignment_expression "bVar1 = uVar28 < uVar17" identifier = (binary_expression "uVar28 < uVar17" identifier < identifier)) ;) (labeled_statement "joined_r0x002155bc:\n      if (uVar28 != 0xffffffff) {\n        return bVar1;\n      }" statement_identifier : (if_statement "if (uVar28 != 0xffffffff) {\n        return bVar1;\n      }" if (parenthesized_expression "(uVar28 != 0xffffffff)" ( (binary_expression "uVar28 != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n        return bVar1;\n      }" { (return_statement "return bVar1;" return identifier ;) }))) (goto_statement "goto LAB_00215844;" goto statement_identifier ;) })) }) (else_clause "else {\n    pRVar21 = *(Relobj **)(puVar26 + 0x2aea40);\n    pRVar2 = *(Relobj **)(puVar26 + 0x2ac554);\n    pRVar3 = Input_section::relobj(pIVar13);\n    iVar24 = (**(code **)(puStack_68 + -0x70ac))(pRVar3,&pRVar2[0x84].super_Object.xindex_);\n    if ((this_01->super_Object)._vptr_Object == (_func_int_varargs **)0xffffffff) {\n      if (iVar24 != 0) {\n        return true;\n      }\n      pcVar27 = *(code **)(puStack_68 + -0x6ae0);\n      if (pIVar13->shndx_ != 0xffffffff) {\n        pRVar2 = *(Relobj **)(puStack_68 + -0x77f0);\n        goto LAB_00215690;\n      }\n      goto LAB_0021575c;\n    }\n    pRVar3 = Input_section::relobj((Input_section *)this_01);\n    __s = (Input_file *)&pRVar2[0x84].super_Object.xindex_;\n    iVar4 = (**(code **)(puStack_68 + -0x70ac))();\n    if (iVar24 == 0) goto LAB_00215650;\n    if (iVar4 == 0) {\n      return true;\n    }\nLAB_002155ac:\n    uVar17 = 0xffffffff;\n    if (pIVar13[1].shndx_ != 0xffffffff) {\n      uVar28 = *(uint *)((int)&(this_01->super_Object).name_.field_2 + 0xc);\n      bVar1 = pIVar13[1].shndx_ < uVar28;\n      goto joined_r0x002155bc;\n    }\nLAB_00215844:\n    puVar26 = puStack_68;\n    Input_section_sort_entry::index((Input_section_sort_entry *)pRVar3,(char *)__s,(int)pRVar9);\n  }" else (compound_statement "{\n    pRVar21 = *(Relobj **)(puVar26 + 0x2aea40);\n    pRVar2 = *(Relobj **)(puVar26 + 0x2ac554);\n    pRVar3 = Input_section::relobj(pIVar13);\n    iVar24 = (**(code **)(puStack_68 + -0x70ac))(pRVar3,&pRVar2[0x84].super_Object.xindex_);\n    if ((this_01->super_Object)._vptr_Object == (_func_int_varargs **)0xffffffff) {\n      if (iVar24 != 0) {\n        return true;\n      }\n      pcVar27 = *(code **)(puStack_68 + -0x6ae0);\n      if (pIVar13->shndx_ != 0xffffffff) {\n        pRVar2 = *(Relobj **)(puStack_68 + -0x77f0);\n        goto LAB_00215690;\n      }\n      goto LAB_0021575c;\n    }\n    pRVar3 = Input_section::relobj((Input_section *)this_01);\n    __s = (Input_file *)&pRVar2[0x84].super_Object.xindex_;\n    iVar4 = (**(code **)(puStack_68 + -0x70ac))();\n    if (iVar24 == 0) goto LAB_00215650;\n    if (iVar4 == 0) {\n      return true;\n    }\nLAB_002155ac:\n    uVar17 = 0xffffffff;\n    if (pIVar13[1].shndx_ != 0xffffffff) {\n      uVar28 = *(uint *)((int)&(this_01->super_Object).name_.field_2 + 0xc);\n      bVar1 = pIVar13[1].shndx_ < uVar28;\n      goto joined_r0x002155bc;\n    }\nLAB_00215844:\n    puVar26 = puStack_68;\n    Input_section_sort_entry::index((Input_section_sort_entry *)pRVar3,(char *)__s,(int)pRVar9);\n  }" { (expression_statement "pRVar21 = *(Relobj **)(puVar26 + 0x2aea40);" (assignment_expression "pRVar21 = *(Relobj **)(puVar26 + 0x2aea40)" identifier = (pointer_expression "*(Relobj **)(puVar26 + 0x2aea40)" * (cast_expression "(Relobj **)(puVar26 + 0x2aea40)" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x2aea40)" ( (binary_expression "puVar26 + 0x2aea40" identifier + number_literal) ))))) ;) (expression_statement "pRVar2 = *(Relobj **)(puVar26 + 0x2ac554);" (assignment_expression "pRVar2 = *(Relobj **)(puVar26 + 0x2ac554)" identifier = (pointer_expression "*(Relobj **)(puVar26 + 0x2ac554)" * (cast_expression "(Relobj **)(puVar26 + 0x2ac554)" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x2ac554)" ( (binary_expression "puVar26 + 0x2ac554" identifier + number_literal) ))))) ;) (ERROR "pRVar3 = Input_section::" (assignment_expression "pRVar3 = Input_section" identifier = identifier) : :) (expression_statement "relobj(pIVar13);" (call_expression "relobj(pIVar13)" identifier (argument_list "(pIVar13)" ( identifier ))) ;) (expression_statement "iVar24 = (**(code **)(puStack_68 + -0x70ac))(pRVar3,&pRVar2[0x84].super_Object.xindex_);" (assignment_expression "iVar24 = (**(code **)(puStack_68 + -0x70ac))(pRVar3,&pRVar2[0x84].super_Object.xindex_)" identifier = (call_expression "(**(code **)(puStack_68 + -0x70ac))(pRVar3,&pRVar2[0x84].super_Object.xindex_)" (parenthesized_expression "(**(code **)(puStack_68 + -0x70ac))" ( (pointer_expression "**(code **)(puStack_68 + -0x70ac)" * (pointer_expression "*(code **)(puStack_68 + -0x70ac)" * (cast_expression "(code **)(puStack_68 + -0x70ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_68 + -0x70ac)" ( (binary_expression "puStack_68 + -0x70ac" identifier + number_literal) ))))) )) (argument_list "(pRVar3,&pRVar2[0x84].super_Object.xindex_)" ( identifier , (pointer_expression "&pRVar2[0x84].super_Object.xindex_" & (field_expression "pRVar2[0x84].super_Object.xindex_" (field_expression "pRVar2[0x84].super_Object" (subscript_expression "pRVar2[0x84]" identifier [ number_literal ]) . field_identifier) . field_identifier)) )))) ;) (if_statement "if ((this_01->super_Object)._vptr_Object == (_func_int_varargs **)0xffffffff) {\n      if (iVar24 != 0) {\n        return true;\n      }\n      pcVar27 = *(code **)(puStack_68 + -0x6ae0);\n      if (pIVar13->shndx_ != 0xffffffff) {\n        pRVar2 = *(Relobj **)(puStack_68 + -0x77f0);\n        goto LAB_00215690;\n      }\n      goto LAB_0021575c;\n    }" if (parenthesized_expression "((this_01->super_Object)._vptr_Object == (_func_int_varargs **)0xffffffff)" ( (binary_expression "(this_01->super_Object)._vptr_Object == (_func_int_varargs **)0xffffffff" (field_expression "(this_01->super_Object)._vptr_Object" (parenthesized_expression "(this_01->super_Object)" ( (field_expression "this_01->super_Object" identifier -> field_identifier) )) . field_identifier) == (cast_expression "(_func_int_varargs **)0xffffffff" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n      if (iVar24 != 0) {\n        return true;\n      }\n      pcVar27 = *(code **)(puStack_68 + -0x6ae0);\n      if (pIVar13->shndx_ != 0xffffffff) {\n        pRVar2 = *(Relobj **)(puStack_68 + -0x77f0);\n        goto LAB_00215690;\n      }\n      goto LAB_0021575c;\n    }" { (if_statement "if (iVar24 != 0) {\n        return true;\n      }" if (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) (compound_statement "{\n        return true;\n      }" { (return_statement "return true;" return true ;) })) (expression_statement "pcVar27 = *(code **)(puStack_68 + -0x6ae0);" (assignment_expression "pcVar27 = *(code **)(puStack_68 + -0x6ae0)" identifier = (pointer_expression "*(code **)(puStack_68 + -0x6ae0)" * (cast_expression "(code **)(puStack_68 + -0x6ae0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_68 + -0x6ae0)" ( (binary_expression "puStack_68 + -0x6ae0" identifier + number_literal) ))))) ;) (if_statement "if (pIVar13->shndx_ != 0xffffffff) {\n        pRVar2 = *(Relobj **)(puStack_68 + -0x77f0);\n        goto LAB_00215690;\n      }" if (parenthesized_expression "(pIVar13->shndx_ != 0xffffffff)" ( (binary_expression "pIVar13->shndx_ != 0xffffffff" (field_expression "pIVar13->shndx_" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n        pRVar2 = *(Relobj **)(puStack_68 + -0x77f0);\n        goto LAB_00215690;\n      }" { (expression_statement "pRVar2 = *(Relobj **)(puStack_68 + -0x77f0);" (assignment_expression "pRVar2 = *(Relobj **)(puStack_68 + -0x77f0)" identifier = (pointer_expression "*(Relobj **)(puStack_68 + -0x77f0)" * (cast_expression "(Relobj **)(puStack_68 + -0x77f0)" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_68 + -0x77f0)" ( (binary_expression "puStack_68 + -0x77f0" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00215690;" goto statement_identifier ;) })) (goto_statement "goto LAB_0021575c;" goto statement_identifier ;) })) (ERROR "pRVar3 = Input_section::" (assignment_expression "pRVar3 = Input_section" identifier = identifier) : :) (expression_statement "relobj((Input_section *)this_01);" (call_expression "relobj((Input_section *)this_01)" identifier (argument_list "((Input_section *)this_01)" ( (cast_expression "(Input_section *)this_01" ( (type_descriptor "Input_section *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "__s = (Input_file *)&pRVar2[0x84].super_Object.xindex_;" (assignment_expression "__s = (Input_file *)&pRVar2[0x84].super_Object.xindex_" identifier = (cast_expression "(Input_file *)&pRVar2[0x84].super_Object.xindex_" ( (type_descriptor "Input_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pRVar2[0x84].super_Object.xindex_" & (field_expression "pRVar2[0x84].super_Object.xindex_" (field_expression "pRVar2[0x84].super_Object" (subscript_expression "pRVar2[0x84]" identifier [ number_literal ]) . field_identifier) . field_identifier)))) ;) (expression_statement "iVar4 = (**(code **)(puStack_68 + -0x70ac))();" (assignment_expression "iVar4 = (**(code **)(puStack_68 + -0x70ac))()" identifier = (call_expression "(**(code **)(puStack_68 + -0x70ac))()" (parenthesized_expression "(**(code **)(puStack_68 + -0x70ac))" ( (pointer_expression "**(code **)(puStack_68 + -0x70ac)" * (pointer_expression "*(code **)(puStack_68 + -0x70ac)" * (cast_expression "(code **)(puStack_68 + -0x70ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_68 + -0x70ac)" ( (binary_expression "puStack_68 + -0x70ac" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar24 == 0) goto LAB_00215650;" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00215650;" goto statement_identifier ;)) (if_statement "if (iVar4 == 0) {\n      return true;\n    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      return true;\n    }" { (return_statement "return true;" return true ;) })) (labeled_statement "LAB_002155ac:\n    uVar17 = 0xffffffff;" statement_identifier : (expression_statement "uVar17 = 0xffffffff;" (assignment_expression "uVar17 = 0xffffffff" identifier = number_literal) ;)) (if_statement "if (pIVar13[1].shndx_ != 0xffffffff) {\n      uVar28 = *(uint *)((int)&(this_01->super_Object).name_.field_2 + 0xc);\n      bVar1 = pIVar13[1].shndx_ < uVar28;\n      goto joined_r0x002155bc;\n    }" if (parenthesized_expression "(pIVar13[1].shndx_ != 0xffffffff)" ( (binary_expression "pIVar13[1].shndx_ != 0xffffffff" (field_expression "pIVar13[1].shndx_" (subscript_expression "pIVar13[1]" identifier [ number_literal ]) . field_identifier) != number_literal) )) (compound_statement "{\n      uVar28 = *(uint *)((int)&(this_01->super_Object).name_.field_2 + 0xc);\n      bVar1 = pIVar13[1].shndx_ < uVar28;\n      goto joined_r0x002155bc;\n    }" { (expression_statement "uVar28 = *(uint *)((int)&(this_01->super_Object).name_.field_2 + 0xc);" (assignment_expression "uVar28 = *(uint *)((int)&(this_01->super_Object).name_.field_2 + 0xc)" identifier = (pointer_expression "*(uint *)((int)&(this_01->super_Object).name_.field_2 + 0xc)" * (cast_expression "(uint *)((int)&(this_01->super_Object).name_.field_2 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(this_01->super_Object).name_.field_2 + 0xc)" ( (binary_expression "(int)&(this_01->super_Object).name_.field_2 + 0xc" (cast_expression "(int)&(this_01->super_Object).name_.field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(this_01->super_Object).name_.field_2" & (field_expression "(this_01->super_Object).name_.field_2" (field_expression "(this_01->super_Object).name_" (parenthesized_expression "(this_01->super_Object)" ( (field_expression "this_01->super_Object" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) ))))) ;) (expression_statement "bVar1 = pIVar13[1].shndx_ < uVar28;" (assignment_expression "bVar1 = pIVar13[1].shndx_ < uVar28" identifier = (binary_expression "pIVar13[1].shndx_ < uVar28" (field_expression "pIVar13[1].shndx_" (subscript_expression "pIVar13[1]" identifier [ number_literal ]) . field_identifier) < identifier)) ;) (goto_statement "goto joined_r0x002155bc;" goto statement_identifier ;) })) (labeled_statement "LAB_00215844:\n    puVar26 = puStack_68;" statement_identifier : (expression_statement "puVar26 = puStack_68;" (assignment_expression "puVar26 = puStack_68" identifier = identifier) ;)) (labeled_statement "Input_section_sort_entry::index((Input_section_sort_entry *)pRVar3,(char *)__s,(int)pRVar9);" statement_identifier : (ERROR ":" :) (expression_statement "index((Input_section_sort_entry *)pRVar3,(char *)__s,(int)pRVar9);" (call_expression "index((Input_section_sort_entry *)pRVar3,(char *)__s,(int)pRVar9)" identifier (argument_list "((Input_section_sort_entry *)pRVar3,(char *)__s,(int)pRVar9)" ( (cast_expression "(Input_section_sort_entry *)pRVar3" ( (type_descriptor "Input_section_sort_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(char *)__s" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(int)pRVar9" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;)) }))) (expression_statement "iVar14 = 0xcf5;" (assignment_expression "iVar14 = 0xcf5" identifier = number_literal) ;) (expression_statement "pcVar27 = *(code **)(puVar26 + -0x7810);" (assignment_expression "pcVar27 = *(code **)(puVar26 + -0x7810)" identifier = (pointer_expression "*(code **)(puVar26 + -0x7810)" * (cast_expression "(code **)(puVar26 + -0x7810)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x7810)" ( (binary_expression "puVar26 + -0x7810" identifier + number_literal) ))))) ;) (expression_statement "iVar16 = *(int *)(puVar26 + -0x7924) + -0x30e8;" (assignment_expression "iVar16 = *(int *)(puVar26 + -0x7924) + -0x30e8" identifier = (binary_expression "*(int *)(puVar26 + -0x7924) + -0x30e8" (pointer_expression "*(int *)(puVar26 + -0x7924)" * (cast_expression "(int *)(puVar26 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x7924)" ( (binary_expression "puVar26 + -0x7924" identifier + number_literal) )))) + number_literal)) ;) (ERROR "pcVar29 = Input_section_sort_init_fini_compare::" (assignment_expression "pcVar29 = Input_section_sort_init_fini_compare" identifier = identifier) : :) (expression_statement "operator();" (call_expression "operator()" identifier (argument_list "()" ( ))) ;) (expression_statement "(*pcVar27)(*(int *)(puVar26 + -0x7924) + -0x48b4);" (call_expression "(*pcVar27)(*(int *)(puVar26 + -0x7924) + -0x48b4)" (parenthesized_expression "(*pcVar27)" ( (pointer_expression "*pcVar27" * identifier) )) (argument_list "(*(int *)(puVar26 + -0x7924) + -0x48b4)" ( (binary_expression "*(int *)(puVar26 + -0x7924) + -0x48b4" (pointer_expression "*(int *)(puVar26 + -0x7924)" * (cast_expression "(int *)(puVar26 + -0x7924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x7924)" ( (binary_expression "puVar26 + -0x7924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar22 = iVar14 + 0x1c;" (assignment_expression "iVar22 = iVar14 + 0x1c" identifier = (binary_expression "iVar14 + 0x1c" identifier + number_literal)) ;) (expression_statement "iVar23 = iVar16 + 0x1c;" (assignment_expression "iVar23 = iVar16 + 0x1c" identifier = (binary_expression "iVar16 + 0x1c" identifier + number_literal)) ;) (expression_statement "pRStack_90 = this_01;" (assignment_expression "pRStack_90 = this_01" identifier = identifier) ;) (expression_statement "uStack_8c = uVar17;" (assignment_expression "uStack_8c = uVar17" identifier = identifier) ;) (expression_statement "pIStack_88 = pIVar13;" (assignment_expression "pIStack_88 = pIVar13" identifier = identifier) ;) (expression_statement "pRStack_84 = pRVar21;" (assignment_expression "pRStack_84 = pRVar21" identifier = identifier) ;) (expression_statement "pRStack_80 = pRVar2;" (assignment_expression "pRStack_80 = pRVar2" identifier = identifier) ;) (expression_statement "pcStack_7c = pcVar29;" (assignment_expression "pcStack_7c = pcVar29" identifier = identifier) ;) (expression_statement "iVar24 = (**(code **)(pcVar27 + 0x2acef4))(iVar22,0x2e,1);" (assignment_expression "iVar24 = (**(code **)(pcVar27 + 0x2acef4))(iVar22,0x2e,1)" identifier = (call_expression "(**(code **)(pcVar27 + 0x2acef4))(iVar22,0x2e,1)" (parenthesized_expression "(**(code **)(pcVar27 + 0x2acef4))" ( (pointer_expression "**(code **)(pcVar27 + 0x2acef4)" * (pointer_expression "*(code **)(pcVar27 + 0x2acef4)" * (cast_expression "(code **)(pcVar27 + 0x2acef4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x2acef4)" ( (binary_expression "pcVar27 + 0x2acef4" identifier + number_literal) ))))) )) (argument_list "(iVar22,0x2e,1)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "iVar4 = (**(code **)(pcVar27 + 0x2acef4))(iVar23,0x2e,1);" (assignment_expression "iVar4 = (**(code **)(pcVar27 + 0x2acef4))(iVar23,0x2e,1)" identifier = (call_expression "(**(code **)(pcVar27 + 0x2acef4))(iVar23,0x2e,1)" (parenthesized_expression "(**(code **)(pcVar27 + 0x2acef4))" ( (pointer_expression "**(code **)(pcVar27 + 0x2acef4)" * (pointer_expression "*(code **)(pcVar27 + 0x2acef4)" * (cast_expression "(code **)(pcVar27 + 0x2acef4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x2acef4)" ( (binary_expression "pcVar27 + 0x2acef4" identifier + number_literal) ))))) )) (argument_list "(iVar23,0x2e,1)" ( identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar24 == -1) {\n    if (iVar4 != -1) {\n      return false;\n    }\n    iVar4 = *(int *)(pcVar27 + 0x2ac1e4);\n    iVar24 = (**(code **)(pcVar27 + 0x2acf7c))(iVar22,iVar4 + 0x3598);\n    if ((iVar24 == 0) ||\n       (iVar24 = (**(code **)(pcVar27 + 0x2acf7c))(iVar22,*(int *)(pcVar27 + 0x2ac1e4) + 0x35b8),\n       iVar24 == 0)) {\n      if (*(int *)(iVar14 + 0x20) != *(int *)(iVar16 + 0x20)) {\n        return false;\n      }\n      if ((*(int *)(iVar14 + 0x20) != 0) &&\n         (iVar24 = (**(code **)(pcVar27 + 0x2b0488))\n                             (*(undefined4 *)(iVar14 + 0x1c),*(undefined4 *)(iVar16 + 0x1c)),\n         iVar24 != 0)) {\n        return false;\n      }\n      pcVar29 = *(code **)(pcVar27 + 0x2acf7c);\n    }\n    else {\n      pcVar29 = *(code **)(pcVar27 + 0x2acf7c);\n    }\n    __s_00 = (char **)(iVar4 + 0x3598);\n    iVar24 = (*pcVar29)(iVar23);\n    if (iVar24 == 0) {\n      iVar24 = *(int *)(iVar16 + 0x20);\n    }\n    else {\n      __s_00 = (char **)(*(int *)(pcVar27 + 0x2ac1e4) + 0x35b8);\n      iVar24 = (**(code **)(pcVar27 + 0x2acf7c))(iVar23);\n      if (iVar24 != 0) goto LAB_00215a54;\n      iVar24 = *(int *)(iVar16 + 0x20);\n    }\n    if (iVar24 == *(int *)(iVar14 + 0x20)) {\n      if (iVar24 != 0) {\n        __s_00 = *(char ***)(iVar14 + 0x1c);\n        iVar24 = (**(code **)(pcVar27 + 0x2b0488))(*(undefined4 *)(iVar16 + 0x1c));\n        if (iVar24 != 0) {\n          return true;\n        }\n      }\nLAB_00215a54:\n      while( true ) {\n        uVar28 = *(uint *)(iVar16 + 0x18);\n        uVar17 = *(uint *)(iVar14 + 0x14);\n        if (uVar28 == 0xffffffff) break;\n        if (uVar17 != 0) {\n          uVar6 = *(uint *)(iVar16 + 0x14);\n          if (uVar6 != 0) {\n            if (uVar17 < uVar6) {\n              return true;\n            }\n            if (uVar6 < uVar17) {\n              return false;\n            }\n          }\n        }\n        uVar12 = *(uint *)(iVar14 + 0x20);\n        uVar17 = *(uint *)(iVar16 + 0x20);\n        uVar6 = uVar17;\n        if (uVar12 <= uVar17) {\n          uVar6 = uVar12;\n        }\n        if (uVar6 != 0) {\n          __s_00 = *(char ***)(iVar16 + 0x1c);\n          iVar24 = (**(code **)(pcVar27 + 0x2b0488))(*(undefined4 *)(iVar14 + 0x1c));\n          if (iVar24 != 0) goto LAB_00215bf4;\n        }\n        iVar24 = uVar12 - uVar17;\n        if (iVar24 != 0) {\nLAB_00215bf4:\n          return SUB41((uint)iVar24 >> 0x1f,0);\n        }\n        if (*(uint *)(iVar14 + 0x18) != 0xffffffff) {\n          return *(uint *)(iVar14 + 0x18) < uVar28;\n        }\n        Input_section_sort_entry::index((Input_section_sort_entry *)0xffffffff,(char *)__s_00,uVar6)\n        ;\nLAB_00215ae8:\n        iVar24 = (**(code **)(pcVar27 + 0x2b0334))(uVar28 + 7,apcStack_98,10);\n        if (*apcStack_98[0] == '\0') {\n          uVar28 = 0xffff - iVar24;\n        }\n        else {\nLAB_00215994:\n          uVar28 = 0;\n        }\nLAB_00215998:\n        ppcVar20 = *(char ***)(iVar16 + 0x1c);\n        iVar24 = (**(code **)(pcVar27 + 0x2b0254))(uVar17 + 0x35c0,ppcVar20,7);\n        if ((iVar24 == 0) ||\n           (iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                               (*(int *)(pcVar27 + 0x2ac1e4) + 0x35c8,ppcVar20,7), iVar24 == 0)) {\n          __s_00 = apcStack_98;\n          iVar24 = (**(code **)(pcVar27 + 0x2b0334))((char *)((int)ppcVar20 + 7),__s_00,10);\n          if (*apcStack_98[0] != '\0') goto LAB_00215bfc;\n          uVar17 = 0xffff - iVar24;\nLAB_00215a3c:\n          if (uVar28 < uVar17) {\n            return true;\n          }\n        }\n        else {\n          iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                             (*(int *)(pcVar27 + 0x2ac1e4) + 0x4150,ppcVar20,0xc);\n          if ((iVar24 == 0) ||\n             (__s_00 = ppcVar20,\n             iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                                (*(int *)(pcVar27 + 0x2ac1e4) + 0x4160,ppcVar20,0xc), iVar24 == 0))\n          {\n            __s_00 = apcStack_98;\n            uVar17 = (**(code **)(pcVar27 + 0x2b0334))(ppcVar20 + 3,__s_00,10);\n            if (*apcStack_98[0] == '\0') goto LAB_00215a3c;\n          }\nLAB_00215bfc:\n          uVar17 = 0;\n        }\n        if (uVar17 < uVar28) {\n          return false;\n        }\n      }\n      iVar24 = 0xcf5;\n      pcVar29 = *(code **)(pcVar27 + 0x2ac1c4);\n      iVar4 = *(int *)(pcVar27 + 0x2ac0b0) + -0x30e8;\n      (*pcVar29)(*(int *)(pcVar27 + 0x2ac0b0) + -0x48b4);\n      if (*(uint *)(iVar24 + 0x18) != 0xffffffff) {\n        if (*(uint *)(iVar4 + 0x18) != 0xffffffff) {\n          if (*(uint *)(iVar24 + 0x14) != *(uint *)(iVar4 + 0x14)) {\n            return *(uint *)(iVar24 + 0x14) < *(uint *)(iVar4 + 0x14);\n          }\n          return *(uint *)(iVar24 + 0x18) < *(uint *)(iVar4 + 0x18);\n        }\n      }\n      pcVar15 = (char *)0xcf5;\n      pcVar27 = *(code **)(pcVar29 + 0x2abd98);\n      iVar16 = *(int *)(pcVar29 + 0x2abc84) + -0x30e8;\n      (*pcVar27)(*(int *)(pcVar29 + 0x2abc84) + -0x48b4);\n      pcVar5 = pcVar15;\n      iVar24 = iVar16;\n      iVar4 = (**(code **)(pcVar27 + 0x2ae23c))(*(undefined4 *)(pcVar15 + 0x1c));\n      this_00 = *(Input_section_sort_entry **)(iVar16 + 0x1c);\n      iVar14 = (**(code **)(pcVar27 + 0x2ae23c))();\n      if (iVar4 != iVar14) {\n        if (iVar4 < 0) {\n          return false;\n        }\n        if (-1 < iVar14) {\n          return iVar4 < iVar14;\n        }\n        return true;\n      }\n      if ((*(uint *)(pcVar15 + 0x18) != 0xffffffff) && (*(uint *)(iVar16 + 0x18) != 0xffffffff)) {\n        return *(uint *)(pcVar15 + 0x18) < *(uint *)(iVar16 + 0x18);\n      }\n      iVar4 = *(int *)(pcVar27 + 0x2ae200) + 0x3338;\n      Input_section_sort_entry::index(this_00,pcVar5,iVar24);\n      uVar6 = *(uint *)(pcVar5 + 0x20);\n      uVar28 = *(uint *)(iVar24 + 0x20);\n      uVar17 = uVar28;\n      if (uVar28 < uVar6 == 0) {\n        uVar17 = uVar6;\n      }\n      pcVar15 = pcVar5;\n      uVar12 = (uint)(uVar28 < uVar6);\n      if (uVar17 != 0) {\n        pcVar15 = *(char **)(iVar24 + 0x1c);\n        this_00 = *(Input_section_sort_entry **)(pcVar5 + 0x1c);\n        iVar4 = (**(code **)(iVar4 + 0x2aff08))();\n        uVar12 = uVar17;\n        if (iVar4 != 0) goto LAB_00215e90;\n      }\n      iVar4 = uVar6 - uVar28;\n      if (iVar4 != 0) {\nLAB_00215e90:\n        return SUB41((uint)iVar4 >> 0x1f,0);\n      }\n      if ((*(Input_section_sort_entry **)(pcVar5 + 0x18) != (Input_section_sort_entry *)0xffffffff)\n         && (this_00 = *(Input_section_sort_entry **)(iVar24 + 0x18),\n            this_00 != (Input_section_sort_entry *)0xffffffff)) {\n        return *(Input_section_sort_entry **)(pcVar5 + 0x18) < this_00;\n      }\n      pcVar5 = Input_section_sort_entry::index(this_00,pcVar15,uVar12);\n      pIVar13 = (Input_section *)this_00[2].input_section_.p2align_;\n      this_02 = (Input_section *)this_00[2].input_section_.shndx_;\n      if (this_02 == pIVar13) {\n        return (bool)(char)pcVar5;\n      }\n      do {\n        uVar17 = 0xfffffffc;\n        if (this_02->shndx_ + 4 < 4) {\n          if (this_02->shndx_ == 0xfffffffc) {\n            pRVar2 = (Relobj *)(((this_02->u2_).object)->super_Object).xindex_;\n            goto LAB_00215f3c;\n          }\n        }\n        else {\n          pRVar2 = Input_section::relobj(this_02);\nLAB_00215f3c:\n          uVar17 = Input_section::shndx(this_02);\n          pcVar5 = *(char **)(pcVar15 + 8);\n          pcVar11 = pcVar15 + 4;\n          if (*(char **)(pcVar15 + 8) != (char *)0x0) {\n            do {\n              if ((*(Relobj **)(pcVar5 + 0x10) < pRVar2) ||\n                 ((pRVar2 == *(Relobj **)(pcVar5 + 0x10) && (*(uint *)(pcVar5 + 0x14) < uVar17)))) {\n                pcVar7 = *(char **)(pcVar5 + 0xc);\n              }\n              else {\n                pcVar7 = *(char **)(pcVar5 + 8);\n                pcVar11 = pcVar5;\n              }\n              pcVar5 = pcVar7;\n            } while (pcVar7 != (char *)0x0);\n            if ((((pcVar15 + 4 != pcVar11) && (*(Relobj **)(pcVar11 + 0x10) <= pRVar2)) &&\n                ((pRVar2 != *(Relobj **)(pcVar11 + 0x10) ||\n                 (uVar17 = (uint)(uVar17 < *(uint *)(pcVar11 + 0x14)), uVar17 == 0)))) &&\n               (uVar17 = *(uint *)(pcVar11 + 0x18), uVar17 != 0)) {\n              pIVar13 = (Input_section *)this_00[2].input_section_.p2align_;\n              this_02->section_order_index_ = uVar17;\n              uVar17 = *(uint *)((int)&this_00[2].section_name_.field_2 + 4) & 0xffbfffff | 0x400000\n              ;\n              *(uint *)((int)&this_00[2].section_name_.field_2 + 4) = uVar17;\n              goto LAB_00215fdc;\n            }\n          }\n          pIVar13 = (Input_section *)this_00[2].input_section_.p2align_;\n        }\nLAB_00215fdc:\n        this_02 = this_02 + 1;\n        if (pIVar13 == this_02) {\n          return (bool)(char)uVar17;\n        }\n      } while( true );\n    }\n  }\n  else {\n    uVar17 = *(uint *)(pcVar27 + 0x2ac1e4);\n    if (iVar4 != -1) {\n      uVar28 = *(uint *)(iVar14 + 0x1c);\n      iVar24 = (**(code **)(pcVar27 + 0x2b0254))(uVar17 + 0x35c0,uVar28,7);\n      if (iVar24 == 0) goto LAB_00215ae8;\n      iVar24 = (**(code **)(pcVar27 + 0x2b0254))(*(int *)(pcVar27 + 0x2ac1e4) + 0x35c8,uVar28,7);\n      if (iVar24 == 0) goto LAB_00215ae8;\n      iVar24 = (**(code **)(pcVar27 + 0x2b0254))(*(int *)(pcVar27 + 0x2ac1e4) + 0x4150,uVar28,0xc);\n      if ((iVar24 != 0) &&\n         (iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                             (*(int *)(pcVar27 + 0x2ac1e4) + 0x4160,uVar28,0xc), iVar24 != 0))\n      goto LAB_00215994;\n      uVar28 = (**(code **)(pcVar27 + 0x2b0334))(uVar28 + 0xc,apcStack_98,10);\n      if (*apcStack_98[0] == '\0') goto LAB_00215998;\n      goto LAB_00215994;\n    }\n  }" if (parenthesized_expression "(iVar24 == -1)" ( (binary_expression "iVar24 == -1" identifier == number_literal) )) (compound_statement "{\n    if (iVar4 != -1) {\n      return false;\n    }\n    iVar4 = *(int *)(pcVar27 + 0x2ac1e4);\n    iVar24 = (**(code **)(pcVar27 + 0x2acf7c))(iVar22,iVar4 + 0x3598);\n    if ((iVar24 == 0) ||\n       (iVar24 = (**(code **)(pcVar27 + 0x2acf7c))(iVar22,*(int *)(pcVar27 + 0x2ac1e4) + 0x35b8),\n       iVar24 == 0)) {\n      if (*(int *)(iVar14 + 0x20) != *(int *)(iVar16 + 0x20)) {\n        return false;\n      }\n      if ((*(int *)(iVar14 + 0x20) != 0) &&\n         (iVar24 = (**(code **)(pcVar27 + 0x2b0488))\n                             (*(undefined4 *)(iVar14 + 0x1c),*(undefined4 *)(iVar16 + 0x1c)),\n         iVar24 != 0)) {\n        return false;\n      }\n      pcVar29 = *(code **)(pcVar27 + 0x2acf7c);\n    }\n    else {\n      pcVar29 = *(code **)(pcVar27 + 0x2acf7c);\n    }\n    __s_00 = (char **)(iVar4 + 0x3598);\n    iVar24 = (*pcVar29)(iVar23);\n    if (iVar24 == 0) {\n      iVar24 = *(int *)(iVar16 + 0x20);\n    }\n    else {\n      __s_00 = (char **)(*(int *)(pcVar27 + 0x2ac1e4) + 0x35b8);\n      iVar24 = (**(code **)(pcVar27 + 0x2acf7c))(iVar23);\n      if (iVar24 != 0) goto LAB_00215a54;\n      iVar24 = *(int *)(iVar16 + 0x20);\n    }\n    if (iVar24 == *(int *)(iVar14 + 0x20)) {\n      if (iVar24 != 0) {\n        __s_00 = *(char ***)(iVar14 + 0x1c);\n        iVar24 = (**(code **)(pcVar27 + 0x2b0488))(*(undefined4 *)(iVar16 + 0x1c));\n        if (iVar24 != 0) {\n          return true;\n        }\n      }\nLAB_00215a54:\n      while( true ) {\n        uVar28 = *(uint *)(iVar16 + 0x18);\n        uVar17 = *(uint *)(iVar14 + 0x14);\n        if (uVar28 == 0xffffffff) break;\n        if (uVar17 != 0) {\n          uVar6 = *(uint *)(iVar16 + 0x14);\n          if (uVar6 != 0) {\n            if (uVar17 < uVar6) {\n              return true;\n            }\n            if (uVar6 < uVar17) {\n              return false;\n            }\n          }\n        }\n        uVar12 = *(uint *)(iVar14 + 0x20);\n        uVar17 = *(uint *)(iVar16 + 0x20);\n        uVar6 = uVar17;\n        if (uVar12 <= uVar17) {\n          uVar6 = uVar12;\n        }\n        if (uVar6 != 0) {\n          __s_00 = *(char ***)(iVar16 + 0x1c);\n          iVar24 = (**(code **)(pcVar27 + 0x2b0488))(*(undefined4 *)(iVar14 + 0x1c));\n          if (iVar24 != 0) goto LAB_00215bf4;\n        }\n        iVar24 = uVar12 - uVar17;\n        if (iVar24 != 0) {\nLAB_00215bf4:\n          return SUB41((uint)iVar24 >> 0x1f,0);\n        }\n        if (*(uint *)(iVar14 + 0x18) != 0xffffffff) {\n          return *(uint *)(iVar14 + 0x18) < uVar28;\n        }\n        Input_section_sort_entry::index((Input_section_sort_entry *)0xffffffff,(char *)__s_00,uVar6)\n        ;\nLAB_00215ae8:\n        iVar24 = (**(code **)(pcVar27 + 0x2b0334))(uVar28 + 7,apcStack_98,10);\n        if (*apcStack_98[0] == '\0') {\n          uVar28 = 0xffff - iVar24;\n        }\n        else {\nLAB_00215994:\n          uVar28 = 0;\n        }\nLAB_00215998:\n        ppcVar20 = *(char ***)(iVar16 + 0x1c);\n        iVar24 = (**(code **)(pcVar27 + 0x2b0254))(uVar17 + 0x35c0,ppcVar20,7);\n        if ((iVar24 == 0) ||\n           (iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                               (*(int *)(pcVar27 + 0x2ac1e4) + 0x35c8,ppcVar20,7), iVar24 == 0)) {\n          __s_00 = apcStack_98;\n          iVar24 = (**(code **)(pcVar27 + 0x2b0334))((char *)((int)ppcVar20 + 7),__s_00,10);\n          if (*apcStack_98[0] != '\0') goto LAB_00215bfc;\n          uVar17 = 0xffff - iVar24;\nLAB_00215a3c:\n          if (uVar28 < uVar17) {\n            return true;\n          }\n        }\n        else {\n          iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                             (*(int *)(pcVar27 + 0x2ac1e4) + 0x4150,ppcVar20,0xc);\n          if ((iVar24 == 0) ||\n             (__s_00 = ppcVar20,\n             iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                                (*(int *)(pcVar27 + 0x2ac1e4) + 0x4160,ppcVar20,0xc), iVar24 == 0))\n          {\n            __s_00 = apcStack_98;\n            uVar17 = (**(code **)(pcVar27 + 0x2b0334))(ppcVar20 + 3,__s_00,10);\n            if (*apcStack_98[0] == '\0') goto LAB_00215a3c;\n          }\nLAB_00215bfc:\n          uVar17 = 0;\n        }\n        if (uVar17 < uVar28) {\n          return false;\n        }\n      }\n      iVar24 = 0xcf5;\n      pcVar29 = *(code **)(pcVar27 + 0x2ac1c4);\n      iVar4 = *(int *)(pcVar27 + 0x2ac0b0) + -0x30e8;\n      (*pcVar29)(*(int *)(pcVar27 + 0x2ac0b0) + -0x48b4);\n      if (*(uint *)(iVar24 + 0x18) != 0xffffffff) {\n        if (*(uint *)(iVar4 + 0x18) != 0xffffffff) {\n          if (*(uint *)(iVar24 + 0x14) != *(uint *)(iVar4 + 0x14)) {\n            return *(uint *)(iVar24 + 0x14) < *(uint *)(iVar4 + 0x14);\n          }\n          return *(uint *)(iVar24 + 0x18) < *(uint *)(iVar4 + 0x18);\n        }\n      }\n      pcVar15 = (char *)0xcf5;\n      pcVar27 = *(code **)(pcVar29 + 0x2abd98);\n      iVar16 = *(int *)(pcVar29 + 0x2abc84) + -0x30e8;\n      (*pcVar27)(*(int *)(pcVar29 + 0x2abc84) + -0x48b4);\n      pcVar5 = pcVar15;\n      iVar24 = iVar16;\n      iVar4 = (**(code **)(pcVar27 + 0x2ae23c))(*(undefined4 *)(pcVar15 + 0x1c));\n      this_00 = *(Input_section_sort_entry **)(iVar16 + 0x1c);\n      iVar14 = (**(code **)(pcVar27 + 0x2ae23c))();\n      if (iVar4 != iVar14) {\n        if (iVar4 < 0) {\n          return false;\n        }\n        if (-1 < iVar14) {\n          return iVar4 < iVar14;\n        }\n        return true;\n      }\n      if ((*(uint *)(pcVar15 + 0x18) != 0xffffffff) && (*(uint *)(iVar16 + 0x18) != 0xffffffff)) {\n        return *(uint *)(pcVar15 + 0x18) < *(uint *)(iVar16 + 0x18);\n      }\n      iVar4 = *(int *)(pcVar27 + 0x2ae200) + 0x3338;\n      Input_section_sort_entry::index(this_00,pcVar5,iVar24);\n      uVar6 = *(uint *)(pcVar5 + 0x20);\n      uVar28 = *(uint *)(iVar24 + 0x20);\n      uVar17 = uVar28;\n      if (uVar28 < uVar6 == 0) {\n        uVar17 = uVar6;\n      }\n      pcVar15 = pcVar5;\n      uVar12 = (uint)(uVar28 < uVar6);\n      if (uVar17 != 0) {\n        pcVar15 = *(char **)(iVar24 + 0x1c);\n        this_00 = *(Input_section_sort_entry **)(pcVar5 + 0x1c);\n        iVar4 = (**(code **)(iVar4 + 0x2aff08))();\n        uVar12 = uVar17;\n        if (iVar4 != 0) goto LAB_00215e90;\n      }\n      iVar4 = uVar6 - uVar28;\n      if (iVar4 != 0) {\nLAB_00215e90:\n        return SUB41((uint)iVar4 >> 0x1f,0);\n      }\n      if ((*(Input_section_sort_entry **)(pcVar5 + 0x18) != (Input_section_sort_entry *)0xffffffff)\n         && (this_00 = *(Input_section_sort_entry **)(iVar24 + 0x18),\n            this_00 != (Input_section_sort_entry *)0xffffffff)) {\n        return *(Input_section_sort_entry **)(pcVar5 + 0x18) < this_00;\n      }\n      pcVar5 = Input_section_sort_entry::index(this_00,pcVar15,uVar12);\n      pIVar13 = (Input_section *)this_00[2].input_section_.p2align_;\n      this_02 = (Input_section *)this_00[2].input_section_.shndx_;\n      if (this_02 == pIVar13) {\n        return (bool)(char)pcVar5;\n      }\n      do {\n        uVar17 = 0xfffffffc;\n        if (this_02->shndx_ + 4 < 4) {\n          if (this_02->shndx_ == 0xfffffffc) {\n            pRVar2 = (Relobj *)(((this_02->u2_).object)->super_Object).xindex_;\n            goto LAB_00215f3c;\n          }\n        }\n        else {\n          pRVar2 = Input_section::relobj(this_02);\nLAB_00215f3c:\n          uVar17 = Input_section::shndx(this_02);\n          pcVar5 = *(char **)(pcVar15 + 8);\n          pcVar11 = pcVar15 + 4;\n          if (*(char **)(pcVar15 + 8) != (char *)0x0) {\n            do {\n              if ((*(Relobj **)(pcVar5 + 0x10) < pRVar2) ||\n                 ((pRVar2 == *(Relobj **)(pcVar5 + 0x10) && (*(uint *)(pcVar5 + 0x14) < uVar17)))) {\n                pcVar7 = *(char **)(pcVar5 + 0xc);\n              }\n              else {\n                pcVar7 = *(char **)(pcVar5 + 8);\n                pcVar11 = pcVar5;\n              }\n              pcVar5 = pcVar7;\n            } while (pcVar7 != (char *)0x0);\n            if ((((pcVar15 + 4 != pcVar11) && (*(Relobj **)(pcVar11 + 0x10) <= pRVar2)) &&\n                ((pRVar2 != *(Relobj **)(pcVar11 + 0x10) ||\n                 (uVar17 = (uint)(uVar17 < *(uint *)(pcVar11 + 0x14)), uVar17 == 0)))) &&\n               (uVar17 = *(uint *)(pcVar11 + 0x18), uVar17 != 0)) {\n              pIVar13 = (Input_section *)this_00[2].input_section_.p2align_;\n              this_02->section_order_index_ = uVar17;\n              uVar17 = *(uint *)((int)&this_00[2].section_name_.field_2 + 4) & 0xffbfffff | 0x400000\n              ;\n              *(uint *)((int)&this_00[2].section_name_.field_2 + 4) = uVar17;\n              goto LAB_00215fdc;\n            }\n          }\n          pIVar13 = (Input_section *)this_00[2].input_section_.p2align_;\n        }\nLAB_00215fdc:\n        this_02 = this_02 + 1;\n        if (pIVar13 == this_02) {\n          return (bool)(char)uVar17;\n        }\n      } while( true );\n    }\n  }" { (if_statement "if (iVar4 != -1) {\n      return false;\n    }" if (parenthesized_expression "(iVar4 != -1)" ( (binary_expression "iVar4 != -1" identifier != number_literal) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) (expression_statement "iVar4 = *(int *)(pcVar27 + 0x2ac1e4);" (assignment_expression "iVar4 = *(int *)(pcVar27 + 0x2ac1e4)" identifier = (pointer_expression "*(int *)(pcVar27 + 0x2ac1e4)" * (cast_expression "(int *)(pcVar27 + 0x2ac1e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x2ac1e4)" ( (binary_expression "pcVar27 + 0x2ac1e4" identifier + number_literal) ))))) ;) (expression_statement "iVar24 = (**(code **)(pcVar27 + 0x2acf7c))(iVar22,iVar4 + 0x3598);" (assignment_expression "iVar24 = (**(code **)(pcVar27 + 0x2acf7c))(iVar22,iVar4 + 0x3598)" identifier = (call_expression "(**(code **)(pcVar27 + 0x2acf7c))(iVar22,iVar4 + 0x3598)" (parenthesized_expression "(**(code **)(pcVar27 + 0x2acf7c))" ( (pointer_expression "**(code **)(pcVar27 + 0x2acf7c)" * (pointer_expression "*(code **)(pcVar27 + 0x2acf7c)" * (cast_expression "(code **)(pcVar27 + 0x2acf7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x2acf7c)" ( (binary_expression "pcVar27 + 0x2acf7c" identifier + number_literal) ))))) )) (argument_list "(iVar22,iVar4 + 0x3598)" ( identifier , (binary_expression "iVar4 + 0x3598" identifier + number_literal) )))) ;) (if_statement "if ((iVar24 == 0) ||\n       (iVar24 = (**(code **)(pcVar27 + 0x2acf7c))(iVar22,*(int *)(pcVar27 + 0x2ac1e4) + 0x35b8),\n       iVar24 == 0)) {\n      if (*(int *)(iVar14 + 0x20) != *(int *)(iVar16 + 0x20)) {\n        return false;\n      }\n      if ((*(int *)(iVar14 + 0x20) != 0) &&\n         (iVar24 = (**(code **)(pcVar27 + 0x2b0488))\n                             (*(undefined4 *)(iVar14 + 0x1c),*(undefined4 *)(iVar16 + 0x1c)),\n         iVar24 != 0)) {\n        return false;\n      }\n      pcVar29 = *(code **)(pcVar27 + 0x2acf7c);\n    }\n    else {\n      pcVar29 = *(code **)(pcVar27 + 0x2acf7c);\n    }" if (parenthesized_expression "((iVar24 == 0) ||\n       (iVar24 = (**(code **)(pcVar27 + 0x2acf7c))(iVar22,*(int *)(pcVar27 + 0x2ac1e4) + 0x35b8),\n       iVar24 == 0))" ( (binary_expression "(iVar24 == 0) ||\n       (iVar24 = (**(code **)(pcVar27 + 0x2acf7c))(iVar22,*(int *)(pcVar27 + 0x2ac1e4) + 0x35b8),\n       iVar24 == 0)" (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar24 = (**(code **)(pcVar27 + 0x2acf7c))(iVar22,*(int *)(pcVar27 + 0x2ac1e4) + 0x35b8),\n       iVar24 == 0)" ( (comma_expression "iVar24 = (**(code **)(pcVar27 + 0x2acf7c))(iVar22,*(int *)(pcVar27 + 0x2ac1e4) + 0x35b8),\n       iVar24 == 0" (assignment_expression "iVar24 = (**(code **)(pcVar27 + 0x2acf7c))(iVar22,*(int *)(pcVar27 + 0x2ac1e4) + 0x35b8)" identifier = (call_expression "(**(code **)(pcVar27 + 0x2acf7c))(iVar22,*(int *)(pcVar27 + 0x2ac1e4) + 0x35b8)" (parenthesized_expression "(**(code **)(pcVar27 + 0x2acf7c))" ( (pointer_expression "**(code **)(pcVar27 + 0x2acf7c)" * (pointer_expression "*(code **)(pcVar27 + 0x2acf7c)" * (cast_expression "(code **)(pcVar27 + 0x2acf7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x2acf7c)" ( (binary_expression "pcVar27 + 0x2acf7c" identifier + number_literal) ))))) )) (argument_list "(iVar22,*(int *)(pcVar27 + 0x2ac1e4) + 0x35b8)" ( identifier , (binary_expression "*(int *)(pcVar27 + 0x2ac1e4) + 0x35b8" (pointer_expression "*(int *)(pcVar27 + 0x2ac1e4)" * (cast_expression "(int *)(pcVar27 + 0x2ac1e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x2ac1e4)" ( (binary_expression "pcVar27 + 0x2ac1e4" identifier + number_literal) )))) + number_literal) )))) , (binary_expression "iVar24 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      if (*(int *)(iVar14 + 0x20) != *(int *)(iVar16 + 0x20)) {\n        return false;\n      }\n      if ((*(int *)(iVar14 + 0x20) != 0) &&\n         (iVar24 = (**(code **)(pcVar27 + 0x2b0488))\n                             (*(undefined4 *)(iVar14 + 0x1c),*(undefined4 *)(iVar16 + 0x1c)),\n         iVar24 != 0)) {\n        return false;\n      }\n      pcVar29 = *(code **)(pcVar27 + 0x2acf7c);\n    }" { (if_statement "if (*(int *)(iVar14 + 0x20) != *(int *)(iVar16 + 0x20)) {\n        return false;\n      }" if (parenthesized_expression "(*(int *)(iVar14 + 0x20) != *(int *)(iVar16 + 0x20))" ( (binary_expression "*(int *)(iVar14 + 0x20) != *(int *)(iVar16 + 0x20)" (pointer_expression "*(int *)(iVar14 + 0x20)" * (cast_expression "(int *)(iVar14 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x20)" ( (binary_expression "iVar14 + 0x20" identifier + number_literal) )))) != (pointer_expression "*(int *)(iVar16 + 0x20)" * (cast_expression "(int *)(iVar16 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x20)" ( (binary_expression "iVar16 + 0x20" identifier + number_literal) ))))) )) (compound_statement "{\n        return false;\n      }" { (return_statement "return false;" return false ;) })) (if_statement "if ((*(int *)(iVar14 + 0x20) != 0) &&\n         (iVar24 = (**(code **)(pcVar27 + 0x2b0488))\n                             (*(undefined4 *)(iVar14 + 0x1c),*(undefined4 *)(iVar16 + 0x1c)),\n         iVar24 != 0)) {\n        return false;\n      }" if (parenthesized_expression "((*(int *)(iVar14 + 0x20) != 0) &&\n         (iVar24 = (**(code **)(pcVar27 + 0x2b0488))\n                             (*(undefined4 *)(iVar14 + 0x1c),*(undefined4 *)(iVar16 + 0x1c)),\n         iVar24 != 0))" ( (binary_expression "(*(int *)(iVar14 + 0x20) != 0) &&\n         (iVar24 = (**(code **)(pcVar27 + 0x2b0488))\n                             (*(undefined4 *)(iVar14 + 0x1c),*(undefined4 *)(iVar16 + 0x1c)),\n         iVar24 != 0)" (parenthesized_expression "(*(int *)(iVar14 + 0x20) != 0)" ( (binary_expression "*(int *)(iVar14 + 0x20) != 0" (pointer_expression "*(int *)(iVar14 + 0x20)" * (cast_expression "(int *)(iVar14 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x20)" ( (binary_expression "iVar14 + 0x20" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(iVar24 = (**(code **)(pcVar27 + 0x2b0488))\n                             (*(undefined4 *)(iVar14 + 0x1c),*(undefined4 *)(iVar16 + 0x1c)),\n         iVar24 != 0)" ( (comma_expression "iVar24 = (**(code **)(pcVar27 + 0x2b0488))\n                             (*(undefined4 *)(iVar14 + 0x1c),*(undefined4 *)(iVar16 + 0x1c)),\n         iVar24 != 0" (assignment_expression "iVar24 = (**(code **)(pcVar27 + 0x2b0488))\n                             (*(undefined4 *)(iVar14 + 0x1c),*(undefined4 *)(iVar16 + 0x1c))" identifier = (call_expression "(**(code **)(pcVar27 + 0x2b0488))\n                             (*(undefined4 *)(iVar14 + 0x1c),*(undefined4 *)(iVar16 + 0x1c))" (parenthesized_expression "(**(code **)(pcVar27 + 0x2b0488))" ( (pointer_expression "**(code **)(pcVar27 + 0x2b0488)" * (pointer_expression "*(code **)(pcVar27 + 0x2b0488)" * (cast_expression "(code **)(pcVar27 + 0x2b0488)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x2b0488)" ( (binary_expression "pcVar27 + 0x2b0488" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar14 + 0x1c),*(undefined4 *)(iVar16 + 0x1c))" ( (pointer_expression "*(undefined4 *)(iVar14 + 0x1c)" * (cast_expression "(undefined4 *)(iVar14 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x1c)" ( (binary_expression "iVar14 + 0x1c" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar16 + 0x1c)" * (cast_expression "(undefined4 *)(iVar16 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x1c)" ( (binary_expression "iVar16 + 0x1c" identifier + number_literal) )))) )))) , (binary_expression "iVar24 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        return false;\n      }" { (return_statement "return false;" return false ;) })) (expression_statement "pcVar29 = *(code **)(pcVar27 + 0x2acf7c);" (assignment_expression "pcVar29 = *(code **)(pcVar27 + 0x2acf7c)" identifier = (pointer_expression "*(code **)(pcVar27 + 0x2acf7c)" * (cast_expression "(code **)(pcVar27 + 0x2acf7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x2acf7c)" ( (binary_expression "pcVar27 + 0x2acf7c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      pcVar29 = *(code **)(pcVar27 + 0x2acf7c);\n    }" else (compound_statement "{\n      pcVar29 = *(code **)(pcVar27 + 0x2acf7c);\n    }" { (expression_statement "pcVar29 = *(code **)(pcVar27 + 0x2acf7c);" (assignment_expression "pcVar29 = *(code **)(pcVar27 + 0x2acf7c)" identifier = (pointer_expression "*(code **)(pcVar27 + 0x2acf7c)" * (cast_expression "(code **)(pcVar27 + 0x2acf7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x2acf7c)" ( (binary_expression "pcVar27 + 0x2acf7c" identifier + number_literal) ))))) ;) }))) (expression_statement "__s_00 = (char **)(iVar4 + 0x3598);" (assignment_expression "__s_00 = (char **)(iVar4 + 0x3598)" identifier = (cast_expression "(char **)(iVar4 + 0x3598)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x3598)" ( (binary_expression "iVar4 + 0x3598" identifier + number_literal) )))) ;) (expression_statement "iVar24 = (*pcVar29)(iVar23);" (assignment_expression "iVar24 = (*pcVar29)(iVar23)" identifier = (call_expression "(*pcVar29)(iVar23)" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(iVar23)" ( identifier )))) ;) (if_statement "if (iVar24 == 0) {\n      iVar24 = *(int *)(iVar16 + 0x20);\n    }\n    else {\n      __s_00 = (char **)(*(int *)(pcVar27 + 0x2ac1e4) + 0x35b8);\n      iVar24 = (**(code **)(pcVar27 + 0x2acf7c))(iVar23);\n      if (iVar24 != 0) goto LAB_00215a54;\n      iVar24 = *(int *)(iVar16 + 0x20);\n    }" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar24 = *(int *)(iVar16 + 0x20);\n    }" { (expression_statement "iVar24 = *(int *)(iVar16 + 0x20);" (assignment_expression "iVar24 = *(int *)(iVar16 + 0x20)" identifier = (pointer_expression "*(int *)(iVar16 + 0x20)" * (cast_expression "(int *)(iVar16 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x20)" ( (binary_expression "iVar16 + 0x20" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      __s_00 = (char **)(*(int *)(pcVar27 + 0x2ac1e4) + 0x35b8);\n      iVar24 = (**(code **)(pcVar27 + 0x2acf7c))(iVar23);\n      if (iVar24 != 0) goto LAB_00215a54;\n      iVar24 = *(int *)(iVar16 + 0x20);\n    }" else (compound_statement "{\n      __s_00 = (char **)(*(int *)(pcVar27 + 0x2ac1e4) + 0x35b8);\n      iVar24 = (**(code **)(pcVar27 + 0x2acf7c))(iVar23);\n      if (iVar24 != 0) goto LAB_00215a54;\n      iVar24 = *(int *)(iVar16 + 0x20);\n    }" { (expression_statement "__s_00 = (char **)(*(int *)(pcVar27 + 0x2ac1e4) + 0x35b8);" (assignment_expression "__s_00 = (char **)(*(int *)(pcVar27 + 0x2ac1e4) + 0x35b8)" identifier = (cast_expression "(char **)(*(int *)(pcVar27 + 0x2ac1e4) + 0x35b8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcVar27 + 0x2ac1e4) + 0x35b8)" ( (binary_expression "*(int *)(pcVar27 + 0x2ac1e4) + 0x35b8" (pointer_expression "*(int *)(pcVar27 + 0x2ac1e4)" * (cast_expression "(int *)(pcVar27 + 0x2ac1e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x2ac1e4)" ( (binary_expression "pcVar27 + 0x2ac1e4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar24 = (**(code **)(pcVar27 + 0x2acf7c))(iVar23);" (assignment_expression "iVar24 = (**(code **)(pcVar27 + 0x2acf7c))(iVar23)" identifier = (call_expression "(**(code **)(pcVar27 + 0x2acf7c))(iVar23)" (parenthesized_expression "(**(code **)(pcVar27 + 0x2acf7c))" ( (pointer_expression "**(code **)(pcVar27 + 0x2acf7c)" * (pointer_expression "*(code **)(pcVar27 + 0x2acf7c)" * (cast_expression "(code **)(pcVar27 + 0x2acf7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x2acf7c)" ( (binary_expression "pcVar27 + 0x2acf7c" identifier + number_literal) ))))) )) (argument_list "(iVar23)" ( identifier )))) ;) (if_statement "if (iVar24 != 0) goto LAB_00215a54;" if (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00215a54;" goto statement_identifier ;)) (expression_statement "iVar24 = *(int *)(iVar16 + 0x20);" (assignment_expression "iVar24 = *(int *)(iVar16 + 0x20)" identifier = (pointer_expression "*(int *)(iVar16 + 0x20)" * (cast_expression "(int *)(iVar16 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x20)" ( (binary_expression "iVar16 + 0x20" identifier + number_literal) ))))) ;) }))) (if_statement "if (iVar24 == *(int *)(iVar14 + 0x20)) {\n      if (iVar24 != 0) {\n        __s_00 = *(char ***)(iVar14 + 0x1c);\n        iVar24 = (**(code **)(pcVar27 + 0x2b0488))(*(undefined4 *)(iVar16 + 0x1c));\n        if (iVar24 != 0) {\n          return true;\n        }\n      }\nLAB_00215a54:\n      while( true ) {\n        uVar28 = *(uint *)(iVar16 + 0x18);\n        uVar17 = *(uint *)(iVar14 + 0x14);\n        if (uVar28 == 0xffffffff) break;\n        if (uVar17 != 0) {\n          uVar6 = *(uint *)(iVar16 + 0x14);\n          if (uVar6 != 0) {\n            if (uVar17 < uVar6) {\n              return true;\n            }\n            if (uVar6 < uVar17) {\n              return false;\n            }\n          }\n        }\n        uVar12 = *(uint *)(iVar14 + 0x20);\n        uVar17 = *(uint *)(iVar16 + 0x20);\n        uVar6 = uVar17;\n        if (uVar12 <= uVar17) {\n          uVar6 = uVar12;\n        }\n        if (uVar6 != 0) {\n          __s_00 = *(char ***)(iVar16 + 0x1c);\n          iVar24 = (**(code **)(pcVar27 + 0x2b0488))(*(undefined4 *)(iVar14 + 0x1c));\n          if (iVar24 != 0) goto LAB_00215bf4;\n        }\n        iVar24 = uVar12 - uVar17;\n        if (iVar24 != 0) {\nLAB_00215bf4:\n          return SUB41((uint)iVar24 >> 0x1f,0);\n        }\n        if (*(uint *)(iVar14 + 0x18) != 0xffffffff) {\n          return *(uint *)(iVar14 + 0x18) < uVar28;\n        }\n        Input_section_sort_entry::index((Input_section_sort_entry *)0xffffffff,(char *)__s_00,uVar6)\n        ;\nLAB_00215ae8:\n        iVar24 = (**(code **)(pcVar27 + 0x2b0334))(uVar28 + 7,apcStack_98,10);\n        if (*apcStack_98[0] == '\0') {\n          uVar28 = 0xffff - iVar24;\n        }\n        else {\nLAB_00215994:\n          uVar28 = 0;\n        }\nLAB_00215998:\n        ppcVar20 = *(char ***)(iVar16 + 0x1c);\n        iVar24 = (**(code **)(pcVar27 + 0x2b0254))(uVar17 + 0x35c0,ppcVar20,7);\n        if ((iVar24 == 0) ||\n           (iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                               (*(int *)(pcVar27 + 0x2ac1e4) + 0x35c8,ppcVar20,7), iVar24 == 0)) {\n          __s_00 = apcStack_98;\n          iVar24 = (**(code **)(pcVar27 + 0x2b0334))((char *)((int)ppcVar20 + 7),__s_00,10);\n          if (*apcStack_98[0] != '\0') goto LAB_00215bfc;\n          uVar17 = 0xffff - iVar24;\nLAB_00215a3c:\n          if (uVar28 < uVar17) {\n            return true;\n          }\n        }\n        else {\n          iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                             (*(int *)(pcVar27 + 0x2ac1e4) + 0x4150,ppcVar20,0xc);\n          if ((iVar24 == 0) ||\n             (__s_00 = ppcVar20,\n             iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                                (*(int *)(pcVar27 + 0x2ac1e4) + 0x4160,ppcVar20,0xc), iVar24 == 0))\n          {\n            __s_00 = apcStack_98;\n            uVar17 = (**(code **)(pcVar27 + 0x2b0334))(ppcVar20 + 3,__s_00,10);\n            if (*apcStack_98[0] == '\0') goto LAB_00215a3c;\n          }\nLAB_00215bfc:\n          uVar17 = 0;\n        }\n        if (uVar17 < uVar28) {\n          return false;\n        }\n      }\n      iVar24 = 0xcf5;\n      pcVar29 = *(code **)(pcVar27 + 0x2ac1c4);\n      iVar4 = *(int *)(pcVar27 + 0x2ac0b0) + -0x30e8;\n      (*pcVar29)(*(int *)(pcVar27 + 0x2ac0b0) + -0x48b4);\n      if (*(uint *)(iVar24 + 0x18) != 0xffffffff) {\n        if (*(uint *)(iVar4 + 0x18) != 0xffffffff) {\n          if (*(uint *)(iVar24 + 0x14) != *(uint *)(iVar4 + 0x14)) {\n            return *(uint *)(iVar24 + 0x14) < *(uint *)(iVar4 + 0x14);\n          }\n          return *(uint *)(iVar24 + 0x18) < *(uint *)(iVar4 + 0x18);\n        }\n      }\n      pcVar15 = (char *)0xcf5;\n      pcVar27 = *(code **)(pcVar29 + 0x2abd98);\n      iVar16 = *(int *)(pcVar29 + 0x2abc84) + -0x30e8;\n      (*pcVar27)(*(int *)(pcVar29 + 0x2abc84) + -0x48b4);\n      pcVar5 = pcVar15;\n      iVar24 = iVar16;\n      iVar4 = (**(code **)(pcVar27 + 0x2ae23c))(*(undefined4 *)(pcVar15 + 0x1c));\n      this_00 = *(Input_section_sort_entry **)(iVar16 + 0x1c);\n      iVar14 = (**(code **)(pcVar27 + 0x2ae23c))();\n      if (iVar4 != iVar14) {\n        if (iVar4 < 0) {\n          return false;\n        }\n        if (-1 < iVar14) {\n          return iVar4 < iVar14;\n        }\n        return true;\n      }\n      if ((*(uint *)(pcVar15 + 0x18) != 0xffffffff) && (*(uint *)(iVar16 + 0x18) != 0xffffffff)) {\n        return *(uint *)(pcVar15 + 0x18) < *(uint *)(iVar16 + 0x18);\n      }\n      iVar4 = *(int *)(pcVar27 + 0x2ae200) + 0x3338;\n      Input_section_sort_entry::index(this_00,pcVar5,iVar24);\n      uVar6 = *(uint *)(pcVar5 + 0x20);\n      uVar28 = *(uint *)(iVar24 + 0x20);\n      uVar17 = uVar28;\n      if (uVar28 < uVar6 == 0) {\n        uVar17 = uVar6;\n      }\n      pcVar15 = pcVar5;\n      uVar12 = (uint)(uVar28 < uVar6);\n      if (uVar17 != 0) {\n        pcVar15 = *(char **)(iVar24 + 0x1c);\n        this_00 = *(Input_section_sort_entry **)(pcVar5 + 0x1c);\n        iVar4 = (**(code **)(iVar4 + 0x2aff08))();\n        uVar12 = uVar17;\n        if (iVar4 != 0) goto LAB_00215e90;\n      }\n      iVar4 = uVar6 - uVar28;\n      if (iVar4 != 0) {\nLAB_00215e90:\n        return SUB41((uint)iVar4 >> 0x1f,0);\n      }\n      if ((*(Input_section_sort_entry **)(pcVar5 + 0x18) != (Input_section_sort_entry *)0xffffffff)\n         && (this_00 = *(Input_section_sort_entry **)(iVar24 + 0x18),\n            this_00 != (Input_section_sort_entry *)0xffffffff)) {\n        return *(Input_section_sort_entry **)(pcVar5 + 0x18) < this_00;\n      }\n      pcVar5 = Input_section_sort_entry::index(this_00,pcVar15,uVar12);\n      pIVar13 = (Input_section *)this_00[2].input_section_.p2align_;\n      this_02 = (Input_section *)this_00[2].input_section_.shndx_;\n      if (this_02 == pIVar13) {\n        return (bool)(char)pcVar5;\n      }\n      do {\n        uVar17 = 0xfffffffc;\n        if (this_02->shndx_ + 4 < 4) {\n          if (this_02->shndx_ == 0xfffffffc) {\n            pRVar2 = (Relobj *)(((this_02->u2_).object)->super_Object).xindex_;\n            goto LAB_00215f3c;\n          }\n        }\n        else {\n          pRVar2 = Input_section::relobj(this_02);\nLAB_00215f3c:\n          uVar17 = Input_section::shndx(this_02);\n          pcVar5 = *(char **)(pcVar15 + 8);\n          pcVar11 = pcVar15 + 4;\n          if (*(char **)(pcVar15 + 8) != (char *)0x0) {\n            do {\n              if ((*(Relobj **)(pcVar5 + 0x10) < pRVar2) ||\n                 ((pRVar2 == *(Relobj **)(pcVar5 + 0x10) && (*(uint *)(pcVar5 + 0x14) < uVar17)))) {\n                pcVar7 = *(char **)(pcVar5 + 0xc);\n              }\n              else {\n                pcVar7 = *(char **)(pcVar5 + 8);\n                pcVar11 = pcVar5;\n              }\n              pcVar5 = pcVar7;\n            } while (pcVar7 != (char *)0x0);\n            if ((((pcVar15 + 4 != pcVar11) && (*(Relobj **)(pcVar11 + 0x10) <= pRVar2)) &&\n                ((pRVar2 != *(Relobj **)(pcVar11 + 0x10) ||\n                 (uVar17 = (uint)(uVar17 < *(uint *)(pcVar11 + 0x14)), uVar17 == 0)))) &&\n               (uVar17 = *(uint *)(pcVar11 + 0x18), uVar17 != 0)) {\n              pIVar13 = (Input_section *)this_00[2].input_section_.p2align_;\n              this_02->section_order_index_ = uVar17;\n              uVar17 = *(uint *)((int)&this_00[2].section_name_.field_2 + 4) & 0xffbfffff | 0x400000\n              ;\n              *(uint *)((int)&this_00[2].section_name_.field_2 + 4) = uVar17;\n              goto LAB_00215fdc;\n            }\n          }\n          pIVar13 = (Input_section *)this_00[2].input_section_.p2align_;\n        }\nLAB_00215fdc:\n        this_02 = this_02 + 1;\n        if (pIVar13 == this_02) {\n          return (bool)(char)uVar17;\n        }\n      } while( true );\n    }" if (parenthesized_expression "(iVar24 == *(int *)(iVar14 + 0x20))" ( (binary_expression "iVar24 == *(int *)(iVar14 + 0x20)" identifier == (pointer_expression "*(int *)(iVar14 + 0x20)" * (cast_expression "(int *)(iVar14 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x20)" ( (binary_expression "iVar14 + 0x20" identifier + number_literal) ))))) )) (compound_statement "{\n      if (iVar24 != 0) {\n        __s_00 = *(char ***)(iVar14 + 0x1c);\n        iVar24 = (**(code **)(pcVar27 + 0x2b0488))(*(undefined4 *)(iVar16 + 0x1c));\n        if (iVar24 != 0) {\n          return true;\n        }\n      }\nLAB_00215a54:\n      while( true ) {\n        uVar28 = *(uint *)(iVar16 + 0x18);\n        uVar17 = *(uint *)(iVar14 + 0x14);\n        if (uVar28 == 0xffffffff) break;\n        if (uVar17 != 0) {\n          uVar6 = *(uint *)(iVar16 + 0x14);\n          if (uVar6 != 0) {\n            if (uVar17 < uVar6) {\n              return true;\n            }\n            if (uVar6 < uVar17) {\n              return false;\n            }\n          }\n        }\n        uVar12 = *(uint *)(iVar14 + 0x20);\n        uVar17 = *(uint *)(iVar16 + 0x20);\n        uVar6 = uVar17;\n        if (uVar12 <= uVar17) {\n          uVar6 = uVar12;\n        }\n        if (uVar6 != 0) {\n          __s_00 = *(char ***)(iVar16 + 0x1c);\n          iVar24 = (**(code **)(pcVar27 + 0x2b0488))(*(undefined4 *)(iVar14 + 0x1c));\n          if (iVar24 != 0) goto LAB_00215bf4;\n        }\n        iVar24 = uVar12 - uVar17;\n        if (iVar24 != 0) {\nLAB_00215bf4:\n          return SUB41((uint)iVar24 >> 0x1f,0);\n        }\n        if (*(uint *)(iVar14 + 0x18) != 0xffffffff) {\n          return *(uint *)(iVar14 + 0x18) < uVar28;\n        }\n        Input_section_sort_entry::index((Input_section_sort_entry *)0xffffffff,(char *)__s_00,uVar6)\n        ;\nLAB_00215ae8:\n        iVar24 = (**(code **)(pcVar27 + 0x2b0334))(uVar28 + 7,apcStack_98,10);\n        if (*apcStack_98[0] == '\0') {\n          uVar28 = 0xffff - iVar24;\n        }\n        else {\nLAB_00215994:\n          uVar28 = 0;\n        }\nLAB_00215998:\n        ppcVar20 = *(char ***)(iVar16 + 0x1c);\n        iVar24 = (**(code **)(pcVar27 + 0x2b0254))(uVar17 + 0x35c0,ppcVar20,7);\n        if ((iVar24 == 0) ||\n           (iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                               (*(int *)(pcVar27 + 0x2ac1e4) + 0x35c8,ppcVar20,7), iVar24 == 0)) {\n          __s_00 = apcStack_98;\n          iVar24 = (**(code **)(pcVar27 + 0x2b0334))((char *)((int)ppcVar20 + 7),__s_00,10);\n          if (*apcStack_98[0] != '\0') goto LAB_00215bfc;\n          uVar17 = 0xffff - iVar24;\nLAB_00215a3c:\n          if (uVar28 < uVar17) {\n            return true;\n          }\n        }\n        else {\n          iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                             (*(int *)(pcVar27 + 0x2ac1e4) + 0x4150,ppcVar20,0xc);\n          if ((iVar24 == 0) ||\n             (__s_00 = ppcVar20,\n             iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                                (*(int *)(pcVar27 + 0x2ac1e4) + 0x4160,ppcVar20,0xc), iVar24 == 0))\n          {\n            __s_00 = apcStack_98;\n            uVar17 = (**(code **)(pcVar27 + 0x2b0334))(ppcVar20 + 3,__s_00,10);\n            if (*apcStack_98[0] == '\0') goto LAB_00215a3c;\n          }\nLAB_00215bfc:\n          uVar17 = 0;\n        }\n        if (uVar17 < uVar28) {\n          return false;\n        }\n      }\n      iVar24 = 0xcf5;\n      pcVar29 = *(code **)(pcVar27 + 0x2ac1c4);\n      iVar4 = *(int *)(pcVar27 + 0x2ac0b0) + -0x30e8;\n      (*pcVar29)(*(int *)(pcVar27 + 0x2ac0b0) + -0x48b4);\n      if (*(uint *)(iVar24 + 0x18) != 0xffffffff) {\n        if (*(uint *)(iVar4 + 0x18) != 0xffffffff) {\n          if (*(uint *)(iVar24 + 0x14) != *(uint *)(iVar4 + 0x14)) {\n            return *(uint *)(iVar24 + 0x14) < *(uint *)(iVar4 + 0x14);\n          }\n          return *(uint *)(iVar24 + 0x18) < *(uint *)(iVar4 + 0x18);\n        }\n      }\n      pcVar15 = (char *)0xcf5;\n      pcVar27 = *(code **)(pcVar29 + 0x2abd98);\n      iVar16 = *(int *)(pcVar29 + 0x2abc84) + -0x30e8;\n      (*pcVar27)(*(int *)(pcVar29 + 0x2abc84) + -0x48b4);\n      pcVar5 = pcVar15;\n      iVar24 = iVar16;\n      iVar4 = (**(code **)(pcVar27 + 0x2ae23c))(*(undefined4 *)(pcVar15 + 0x1c));\n      this_00 = *(Input_section_sort_entry **)(iVar16 + 0x1c);\n      iVar14 = (**(code **)(pcVar27 + 0x2ae23c))();\n      if (iVar4 != iVar14) {\n        if (iVar4 < 0) {\n          return false;\n        }\n        if (-1 < iVar14) {\n          return iVar4 < iVar14;\n        }\n        return true;\n      }\n      if ((*(uint *)(pcVar15 + 0x18) != 0xffffffff) && (*(uint *)(iVar16 + 0x18) != 0xffffffff)) {\n        return *(uint *)(pcVar15 + 0x18) < *(uint *)(iVar16 + 0x18);\n      }\n      iVar4 = *(int *)(pcVar27 + 0x2ae200) + 0x3338;\n      Input_section_sort_entry::index(this_00,pcVar5,iVar24);\n      uVar6 = *(uint *)(pcVar5 + 0x20);\n      uVar28 = *(uint *)(iVar24 + 0x20);\n      uVar17 = uVar28;\n      if (uVar28 < uVar6 == 0) {\n        uVar17 = uVar6;\n      }\n      pcVar15 = pcVar5;\n      uVar12 = (uint)(uVar28 < uVar6);\n      if (uVar17 != 0) {\n        pcVar15 = *(char **)(iVar24 + 0x1c);\n        this_00 = *(Input_section_sort_entry **)(pcVar5 + 0x1c);\n        iVar4 = (**(code **)(iVar4 + 0x2aff08))();\n        uVar12 = uVar17;\n        if (iVar4 != 0) goto LAB_00215e90;\n      }\n      iVar4 = uVar6 - uVar28;\n      if (iVar4 != 0) {\nLAB_00215e90:\n        return SUB41((uint)iVar4 >> 0x1f,0);\n      }\n      if ((*(Input_section_sort_entry **)(pcVar5 + 0x18) != (Input_section_sort_entry *)0xffffffff)\n         && (this_00 = *(Input_section_sort_entry **)(iVar24 + 0x18),\n            this_00 != (Input_section_sort_entry *)0xffffffff)) {\n        return *(Input_section_sort_entry **)(pcVar5 + 0x18) < this_00;\n      }\n      pcVar5 = Input_section_sort_entry::index(this_00,pcVar15,uVar12);\n      pIVar13 = (Input_section *)this_00[2].input_section_.p2align_;\n      this_02 = (Input_section *)this_00[2].input_section_.shndx_;\n      if (this_02 == pIVar13) {\n        return (bool)(char)pcVar5;\n      }\n      do {\n        uVar17 = 0xfffffffc;\n        if (this_02->shndx_ + 4 < 4) {\n          if (this_02->shndx_ == 0xfffffffc) {\n            pRVar2 = (Relobj *)(((this_02->u2_).object)->super_Object).xindex_;\n            goto LAB_00215f3c;\n          }\n        }\n        else {\n          pRVar2 = Input_section::relobj(this_02);\nLAB_00215f3c:\n          uVar17 = Input_section::shndx(this_02);\n          pcVar5 = *(char **)(pcVar15 + 8);\n          pcVar11 = pcVar15 + 4;\n          if (*(char **)(pcVar15 + 8) != (char *)0x0) {\n            do {\n              if ((*(Relobj **)(pcVar5 + 0x10) < pRVar2) ||\n                 ((pRVar2 == *(Relobj **)(pcVar5 + 0x10) && (*(uint *)(pcVar5 + 0x14) < uVar17)))) {\n                pcVar7 = *(char **)(pcVar5 + 0xc);\n              }\n              else {\n                pcVar7 = *(char **)(pcVar5 + 8);\n                pcVar11 = pcVar5;\n              }\n              pcVar5 = pcVar7;\n            } while (pcVar7 != (char *)0x0);\n            if ((((pcVar15 + 4 != pcVar11) && (*(Relobj **)(pcVar11 + 0x10) <= pRVar2)) &&\n                ((pRVar2 != *(Relobj **)(pcVar11 + 0x10) ||\n                 (uVar17 = (uint)(uVar17 < *(uint *)(pcVar11 + 0x14)), uVar17 == 0)))) &&\n               (uVar17 = *(uint *)(pcVar11 + 0x18), uVar17 != 0)) {\n              pIVar13 = (Input_section *)this_00[2].input_section_.p2align_;\n              this_02->section_order_index_ = uVar17;\n              uVar17 = *(uint *)((int)&this_00[2].section_name_.field_2 + 4) & 0xffbfffff | 0x400000\n              ;\n              *(uint *)((int)&this_00[2].section_name_.field_2 + 4) = uVar17;\n              goto LAB_00215fdc;\n            }\n          }\n          pIVar13 = (Input_section *)this_00[2].input_section_.p2align_;\n        }\nLAB_00215fdc:\n        this_02 = this_02 + 1;\n        if (pIVar13 == this_02) {\n          return (bool)(char)uVar17;\n        }\n      } while( true );\n    }" { (if_statement "if (iVar24 != 0) {\n        __s_00 = *(char ***)(iVar14 + 0x1c);\n        iVar24 = (**(code **)(pcVar27 + 0x2b0488))(*(undefined4 *)(iVar16 + 0x1c));\n        if (iVar24 != 0) {\n          return true;\n        }\n      }" if (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) (compound_statement "{\n        __s_00 = *(char ***)(iVar14 + 0x1c);\n        iVar24 = (**(code **)(pcVar27 + 0x2b0488))(*(undefined4 *)(iVar16 + 0x1c));\n        if (iVar24 != 0) {\n          return true;\n        }\n      }" { (expression_statement "__s_00 = *(char ***)(iVar14 + 0x1c);" (assignment_expression "__s_00 = *(char ***)(iVar14 + 0x1c)" identifier = (pointer_expression "*(char ***)(iVar14 + 0x1c)" * (cast_expression "(char ***)(iVar14 + 0x1c)" ( (type_descriptor "char ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(iVar14 + 0x1c)" ( (binary_expression "iVar14 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "iVar24 = (**(code **)(pcVar27 + 0x2b0488))(*(undefined4 *)(iVar16 + 0x1c));" (assignment_expression "iVar24 = (**(code **)(pcVar27 + 0x2b0488))(*(undefined4 *)(iVar16 + 0x1c))" identifier = (call_expression "(**(code **)(pcVar27 + 0x2b0488))(*(undefined4 *)(iVar16 + 0x1c))" (parenthesized_expression "(**(code **)(pcVar27 + 0x2b0488))" ( (pointer_expression "**(code **)(pcVar27 + 0x2b0488)" * (pointer_expression "*(code **)(pcVar27 + 0x2b0488)" * (cast_expression "(code **)(pcVar27 + 0x2b0488)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x2b0488)" ( (binary_expression "pcVar27 + 0x2b0488" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar16 + 0x1c))" ( (pointer_expression "*(undefined4 *)(iVar16 + 0x1c)" * (cast_expression "(undefined4 *)(iVar16 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x1c)" ( (binary_expression "iVar16 + 0x1c" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar24 != 0) {\n          return true;\n        }" if (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) (compound_statement "{\n          return true;\n        }" { (return_statement "return true;" return true ;) })) })) (labeled_statement "LAB_00215a54:\n      while( true ) {\n        uVar28 = *(uint *)(iVar16 + 0x18);\n        uVar17 = *(uint *)(iVar14 + 0x14);\n        if (uVar28 == 0xffffffff) break;\n        if (uVar17 != 0) {\n          uVar6 = *(uint *)(iVar16 + 0x14);\n          if (uVar6 != 0) {\n            if (uVar17 < uVar6) {\n              return true;\n            }\n            if (uVar6 < uVar17) {\n              return false;\n            }\n          }\n        }\n        uVar12 = *(uint *)(iVar14 + 0x20);\n        uVar17 = *(uint *)(iVar16 + 0x20);\n        uVar6 = uVar17;\n        if (uVar12 <= uVar17) {\n          uVar6 = uVar12;\n        }\n        if (uVar6 != 0) {\n          __s_00 = *(char ***)(iVar16 + 0x1c);\n          iVar24 = (**(code **)(pcVar27 + 0x2b0488))(*(undefined4 *)(iVar14 + 0x1c));\n          if (iVar24 != 0) goto LAB_00215bf4;\n        }\n        iVar24 = uVar12 - uVar17;\n        if (iVar24 != 0) {\nLAB_00215bf4:\n          return SUB41((uint)iVar24 >> 0x1f,0);\n        }\n        if (*(uint *)(iVar14 + 0x18) != 0xffffffff) {\n          return *(uint *)(iVar14 + 0x18) < uVar28;\n        }\n        Input_section_sort_entry::index((Input_section_sort_entry *)0xffffffff,(char *)__s_00,uVar6)\n        ;\nLAB_00215ae8:\n        iVar24 = (**(code **)(pcVar27 + 0x2b0334))(uVar28 + 7,apcStack_98,10);\n        if (*apcStack_98[0] == '\0') {\n          uVar28 = 0xffff - iVar24;\n        }\n        else {\nLAB_00215994:\n          uVar28 = 0;\n        }\nLAB_00215998:\n        ppcVar20 = *(char ***)(iVar16 + 0x1c);\n        iVar24 = (**(code **)(pcVar27 + 0x2b0254))(uVar17 + 0x35c0,ppcVar20,7);\n        if ((iVar24 == 0) ||\n           (iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                               (*(int *)(pcVar27 + 0x2ac1e4) + 0x35c8,ppcVar20,7), iVar24 == 0)) {\n          __s_00 = apcStack_98;\n          iVar24 = (**(code **)(pcVar27 + 0x2b0334))((char *)((int)ppcVar20 + 7),__s_00,10);\n          if (*apcStack_98[0] != '\0') goto LAB_00215bfc;\n          uVar17 = 0xffff - iVar24;\nLAB_00215a3c:\n          if (uVar28 < uVar17) {\n            return true;\n          }\n        }\n        else {\n          iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                             (*(int *)(pcVar27 + 0x2ac1e4) + 0x4150,ppcVar20,0xc);\n          if ((iVar24 == 0) ||\n             (__s_00 = ppcVar20,\n             iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                                (*(int *)(pcVar27 + 0x2ac1e4) + 0x4160,ppcVar20,0xc), iVar24 == 0))\n          {\n            __s_00 = apcStack_98;\n            uVar17 = (**(code **)(pcVar27 + 0x2b0334))(ppcVar20 + 3,__s_00,10);\n            if (*apcStack_98[0] == '\0') goto LAB_00215a3c;\n          }\nLAB_00215bfc:\n          uVar17 = 0;\n        }\n        if (uVar17 < uVar28) {\n          return false;\n        }\n      }" statement_identifier : (while_statement "while( true ) {\n        uVar28 = *(uint *)(iVar16 + 0x18);\n        uVar17 = *(uint *)(iVar14 + 0x14);\n        if (uVar28 == 0xffffffff) break;\n        if (uVar17 != 0) {\n          uVar6 = *(uint *)(iVar16 + 0x14);\n          if (uVar6 != 0) {\n            if (uVar17 < uVar6) {\n              return true;\n            }\n            if (uVar6 < uVar17) {\n              return false;\n            }\n          }\n        }\n        uVar12 = *(uint *)(iVar14 + 0x20);\n        uVar17 = *(uint *)(iVar16 + 0x20);\n        uVar6 = uVar17;\n        if (uVar12 <= uVar17) {\n          uVar6 = uVar12;\n        }\n        if (uVar6 != 0) {\n          __s_00 = *(char ***)(iVar16 + 0x1c);\n          iVar24 = (**(code **)(pcVar27 + 0x2b0488))(*(undefined4 *)(iVar14 + 0x1c));\n          if (iVar24 != 0) goto LAB_00215bf4;\n        }\n        iVar24 = uVar12 - uVar17;\n        if (iVar24 != 0) {\nLAB_00215bf4:\n          return SUB41((uint)iVar24 >> 0x1f,0);\n        }\n        if (*(uint *)(iVar14 + 0x18) != 0xffffffff) {\n          return *(uint *)(iVar14 + 0x18) < uVar28;\n        }\n        Input_section_sort_entry::index((Input_section_sort_entry *)0xffffffff,(char *)__s_00,uVar6)\n        ;\nLAB_00215ae8:\n        iVar24 = (**(code **)(pcVar27 + 0x2b0334))(uVar28 + 7,apcStack_98,10);\n        if (*apcStack_98[0] == '\0') {\n          uVar28 = 0xffff - iVar24;\n        }\n        else {\nLAB_00215994:\n          uVar28 = 0;\n        }\nLAB_00215998:\n        ppcVar20 = *(char ***)(iVar16 + 0x1c);\n        iVar24 = (**(code **)(pcVar27 + 0x2b0254))(uVar17 + 0x35c0,ppcVar20,7);\n        if ((iVar24 == 0) ||\n           (iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                               (*(int *)(pcVar27 + 0x2ac1e4) + 0x35c8,ppcVar20,7), iVar24 == 0)) {\n          __s_00 = apcStack_98;\n          iVar24 = (**(code **)(pcVar27 + 0x2b0334))((char *)((int)ppcVar20 + 7),__s_00,10);\n          if (*apcStack_98[0] != '\0') goto LAB_00215bfc;\n          uVar17 = 0xffff - iVar24;\nLAB_00215a3c:\n          if (uVar28 < uVar17) {\n            return true;\n          }\n        }\n        else {\n          iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                             (*(int *)(pcVar27 + 0x2ac1e4) + 0x4150,ppcVar20,0xc);\n          if ((iVar24 == 0) ||\n             (__s_00 = ppcVar20,\n             iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                                (*(int *)(pcVar27 + 0x2ac1e4) + 0x4160,ppcVar20,0xc), iVar24 == 0))\n          {\n            __s_00 = apcStack_98;\n            uVar17 = (**(code **)(pcVar27 + 0x2b0334))(ppcVar20 + 3,__s_00,10);\n            if (*apcStack_98[0] == '\0') goto LAB_00215a3c;\n          }\nLAB_00215bfc:\n          uVar17 = 0;\n        }\n        if (uVar17 < uVar28) {\n          return false;\n        }\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        uVar28 = *(uint *)(iVar16 + 0x18);\n        uVar17 = *(uint *)(iVar14 + 0x14);\n        if (uVar28 == 0xffffffff) break;\n        if (uVar17 != 0) {\n          uVar6 = *(uint *)(iVar16 + 0x14);\n          if (uVar6 != 0) {\n            if (uVar17 < uVar6) {\n              return true;\n            }\n            if (uVar6 < uVar17) {\n              return false;\n            }\n          }\n        }\n        uVar12 = *(uint *)(iVar14 + 0x20);\n        uVar17 = *(uint *)(iVar16 + 0x20);\n        uVar6 = uVar17;\n        if (uVar12 <= uVar17) {\n          uVar6 = uVar12;\n        }\n        if (uVar6 != 0) {\n          __s_00 = *(char ***)(iVar16 + 0x1c);\n          iVar24 = (**(code **)(pcVar27 + 0x2b0488))(*(undefined4 *)(iVar14 + 0x1c));\n          if (iVar24 != 0) goto LAB_00215bf4;\n        }\n        iVar24 = uVar12 - uVar17;\n        if (iVar24 != 0) {\nLAB_00215bf4:\n          return SUB41((uint)iVar24 >> 0x1f,0);\n        }\n        if (*(uint *)(iVar14 + 0x18) != 0xffffffff) {\n          return *(uint *)(iVar14 + 0x18) < uVar28;\n        }\n        Input_section_sort_entry::index((Input_section_sort_entry *)0xffffffff,(char *)__s_00,uVar6)\n        ;\nLAB_00215ae8:\n        iVar24 = (**(code **)(pcVar27 + 0x2b0334))(uVar28 + 7,apcStack_98,10);\n        if (*apcStack_98[0] == '\0') {\n          uVar28 = 0xffff - iVar24;\n        }\n        else {\nLAB_00215994:\n          uVar28 = 0;\n        }\nLAB_00215998:\n        ppcVar20 = *(char ***)(iVar16 + 0x1c);\n        iVar24 = (**(code **)(pcVar27 + 0x2b0254))(uVar17 + 0x35c0,ppcVar20,7);\n        if ((iVar24 == 0) ||\n           (iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                               (*(int *)(pcVar27 + 0x2ac1e4) + 0x35c8,ppcVar20,7), iVar24 == 0)) {\n          __s_00 = apcStack_98;\n          iVar24 = (**(code **)(pcVar27 + 0x2b0334))((char *)((int)ppcVar20 + 7),__s_00,10);\n          if (*apcStack_98[0] != '\0') goto LAB_00215bfc;\n          uVar17 = 0xffff - iVar24;\nLAB_00215a3c:\n          if (uVar28 < uVar17) {\n            return true;\n          }\n        }\n        else {\n          iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                             (*(int *)(pcVar27 + 0x2ac1e4) + 0x4150,ppcVar20,0xc);\n          if ((iVar24 == 0) ||\n             (__s_00 = ppcVar20,\n             iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                                (*(int *)(pcVar27 + 0x2ac1e4) + 0x4160,ppcVar20,0xc), iVar24 == 0))\n          {\n            __s_00 = apcStack_98;\n            uVar17 = (**(code **)(pcVar27 + 0x2b0334))(ppcVar20 + 3,__s_00,10);\n            if (*apcStack_98[0] == '\0') goto LAB_00215a3c;\n          }\nLAB_00215bfc:\n          uVar17 = 0;\n        }\n        if (uVar17 < uVar28) {\n          return false;\n        }\n      }" { (expression_statement "uVar28 = *(uint *)(iVar16 + 0x18);" (assignment_expression "uVar28 = *(uint *)(iVar16 + 0x18)" identifier = (pointer_expression "*(uint *)(iVar16 + 0x18)" * (cast_expression "(uint *)(iVar16 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x18)" ( (binary_expression "iVar16 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "uVar17 = *(uint *)(iVar14 + 0x14);" (assignment_expression "uVar17 = *(uint *)(iVar14 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar14 + 0x14)" * (cast_expression "(uint *)(iVar14 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x14)" ( (binary_expression "iVar14 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (uVar28 == 0xffffffff) break;" if (parenthesized_expression "(uVar28 == 0xffffffff)" ( (binary_expression "uVar28 == 0xffffffff" identifier == number_literal) )) (break_statement "break;" break ;)) (if_statement "if (uVar17 != 0) {\n          uVar6 = *(uint *)(iVar16 + 0x14);\n          if (uVar6 != 0) {\n            if (uVar17 < uVar6) {\n              return true;\n            }\n            if (uVar6 < uVar17) {\n              return false;\n            }\n          }\n        }" if (parenthesized_expression "(uVar17 != 0)" ( (binary_expression "uVar17 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar6 = *(uint *)(iVar16 + 0x14);\n          if (uVar6 != 0) {\n            if (uVar17 < uVar6) {\n              return true;\n            }\n            if (uVar6 < uVar17) {\n              return false;\n            }\n          }\n        }" { (expression_statement "uVar6 = *(uint *)(iVar16 + 0x14);" (assignment_expression "uVar6 = *(uint *)(iVar16 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar16 + 0x14)" * (cast_expression "(uint *)(iVar16 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x14)" ( (binary_expression "iVar16 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (uVar6 != 0) {\n            if (uVar17 < uVar6) {\n              return true;\n            }\n            if (uVar6 < uVar17) {\n              return false;\n            }\n          }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n            if (uVar17 < uVar6) {\n              return true;\n            }\n            if (uVar6 < uVar17) {\n              return false;\n            }\n          }" { (if_statement "if (uVar17 < uVar6) {\n              return true;\n            }" if (parenthesized_expression "(uVar17 < uVar6)" ( (binary_expression "uVar17 < uVar6" identifier < identifier) )) (compound_statement "{\n              return true;\n            }" { (return_statement "return true;" return true ;) })) (if_statement "if (uVar6 < uVar17) {\n              return false;\n            }" if (parenthesized_expression "(uVar6 < uVar17)" ( (binary_expression "uVar6 < uVar17" identifier < identifier) )) (compound_statement "{\n              return false;\n            }" { (return_statement "return false;" return false ;) })) })) })) (expression_statement "uVar12 = *(uint *)(iVar14 + 0x20);" (assignment_expression "uVar12 = *(uint *)(iVar14 + 0x20)" identifier = (pointer_expression "*(uint *)(iVar14 + 0x20)" * (cast_expression "(uint *)(iVar14 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x20)" ( (binary_expression "iVar14 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "uVar17 = *(uint *)(iVar16 + 0x20);" (assignment_expression "uVar17 = *(uint *)(iVar16 + 0x20)" identifier = (pointer_expression "*(uint *)(iVar16 + 0x20)" * (cast_expression "(uint *)(iVar16 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x20)" ( (binary_expression "iVar16 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = uVar17;" (assignment_expression "uVar6 = uVar17" identifier = identifier) ;) (if_statement "if (uVar12 <= uVar17) {\n          uVar6 = uVar12;\n        }" if (parenthesized_expression "(uVar12 <= uVar17)" ( (binary_expression "uVar12 <= uVar17" identifier <= identifier) )) (compound_statement "{\n          uVar6 = uVar12;\n        }" { (expression_statement "uVar6 = uVar12;" (assignment_expression "uVar6 = uVar12" identifier = identifier) ;) })) (if_statement "if (uVar6 != 0) {\n          __s_00 = *(char ***)(iVar16 + 0x1c);\n          iVar24 = (**(code **)(pcVar27 + 0x2b0488))(*(undefined4 *)(iVar14 + 0x1c));\n          if (iVar24 != 0) goto LAB_00215bf4;\n        }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n          __s_00 = *(char ***)(iVar16 + 0x1c);\n          iVar24 = (**(code **)(pcVar27 + 0x2b0488))(*(undefined4 *)(iVar14 + 0x1c));\n          if (iVar24 != 0) goto LAB_00215bf4;\n        }" { (expression_statement "__s_00 = *(char ***)(iVar16 + 0x1c);" (assignment_expression "__s_00 = *(char ***)(iVar16 + 0x1c)" identifier = (pointer_expression "*(char ***)(iVar16 + 0x1c)" * (cast_expression "(char ***)(iVar16 + 0x1c)" ( (type_descriptor "char ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(iVar16 + 0x1c)" ( (binary_expression "iVar16 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "iVar24 = (**(code **)(pcVar27 + 0x2b0488))(*(undefined4 *)(iVar14 + 0x1c));" (assignment_expression "iVar24 = (**(code **)(pcVar27 + 0x2b0488))(*(undefined4 *)(iVar14 + 0x1c))" identifier = (call_expression "(**(code **)(pcVar27 + 0x2b0488))(*(undefined4 *)(iVar14 + 0x1c))" (parenthesized_expression "(**(code **)(pcVar27 + 0x2b0488))" ( (pointer_expression "**(code **)(pcVar27 + 0x2b0488)" * (pointer_expression "*(code **)(pcVar27 + 0x2b0488)" * (cast_expression "(code **)(pcVar27 + 0x2b0488)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x2b0488)" ( (binary_expression "pcVar27 + 0x2b0488" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar14 + 0x1c))" ( (pointer_expression "*(undefined4 *)(iVar14 + 0x1c)" * (cast_expression "(undefined4 *)(iVar14 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x1c)" ( (binary_expression "iVar14 + 0x1c" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar24 != 0) goto LAB_00215bf4;" if (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00215bf4;" goto statement_identifier ;)) })) (expression_statement "iVar24 = uVar12 - uVar17;" (assignment_expression "iVar24 = uVar12 - uVar17" identifier = (binary_expression "uVar12 - uVar17" identifier - identifier)) ;) (if_statement "if (iVar24 != 0) {\nLAB_00215bf4:\n          return SUB41((uint)iVar24 >> 0x1f,0);\n        }" if (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00215bf4:\n          return SUB41((uint)iVar24 >> 0x1f,0);\n        }" { (labeled_statement "LAB_00215bf4:\n          return SUB41((uint)iVar24 >> 0x1f,0);" statement_identifier : (return_statement "return SUB41((uint)iVar24 >> 0x1f,0);" return (call_expression "SUB41((uint)iVar24 >> 0x1f,0)" identifier (argument_list "((uint)iVar24 >> 0x1f,0)" ( (binary_expression "(uint)iVar24 >> 0x1f" (cast_expression "(uint)iVar24" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) , number_literal ))) ;)) })) (if_statement "if (*(uint *)(iVar14 + 0x18) != 0xffffffff) {\n          return *(uint *)(iVar14 + 0x18) < uVar28;\n        }" if (parenthesized_expression "(*(uint *)(iVar14 + 0x18) != 0xffffffff)" ( (binary_expression "*(uint *)(iVar14 + 0x18) != 0xffffffff" (pointer_expression "*(uint *)(iVar14 + 0x18)" * (cast_expression "(uint *)(iVar14 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x18)" ( (binary_expression "iVar14 + 0x18" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          return *(uint *)(iVar14 + 0x18) < uVar28;\n        }" { (return_statement "return *(uint *)(iVar14 + 0x18) < uVar28;" return (binary_expression "*(uint *)(iVar14 + 0x18) < uVar28" (pointer_expression "*(uint *)(iVar14 + 0x18)" * (cast_expression "(uint *)(iVar14 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x18)" ( (binary_expression "iVar14 + 0x18" identifier + number_literal) )))) < identifier) ;) })) (labeled_statement "Input_section_sort_entry::index((Input_section_sort_entry *)0xffffffff,(char *)__s_00,uVar6)\n        ;" statement_identifier : (ERROR ":" :) (expression_statement "index((Input_section_sort_entry *)0xffffffff,(char *)__s_00,uVar6)\n        ;" (call_expression "index((Input_section_sort_entry *)0xffffffff,(char *)__s_00,uVar6)" identifier (argument_list "((Input_section_sort_entry *)0xffffffff,(char *)__s_00,uVar6)" ( (cast_expression "(Input_section_sort_entry *)0xffffffff" ( (type_descriptor "Input_section_sort_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(char *)__s_00" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;)) (labeled_statement "LAB_00215ae8:\n        iVar24 = (**(code **)(pcVar27 + 0x2b0334))(uVar28 + 7,apcStack_98,10);" statement_identifier : (expression_statement "iVar24 = (**(code **)(pcVar27 + 0x2b0334))(uVar28 + 7,apcStack_98,10);" (assignment_expression "iVar24 = (**(code **)(pcVar27 + 0x2b0334))(uVar28 + 7,apcStack_98,10)" identifier = (call_expression "(**(code **)(pcVar27 + 0x2b0334))(uVar28 + 7,apcStack_98,10)" (parenthesized_expression "(**(code **)(pcVar27 + 0x2b0334))" ( (pointer_expression "**(code **)(pcVar27 + 0x2b0334)" * (pointer_expression "*(code **)(pcVar27 + 0x2b0334)" * (cast_expression "(code **)(pcVar27 + 0x2b0334)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x2b0334)" ( (binary_expression "pcVar27 + 0x2b0334" identifier + number_literal) ))))) )) (argument_list "(uVar28 + 7,apcStack_98,10)" ( (binary_expression "uVar28 + 7" identifier + number_literal) , identifier , number_literal )))) ;)) (if_statement "if (*apcStack_98[0] == '\0') {\n          uVar28 = 0xffff - iVar24;\n        }\n        else {\nLAB_00215994:\n          uVar28 = 0;\n        }" if (parenthesized_expression "(*apcStack_98[0] == '\0')" ( (binary_expression "*apcStack_98[0] == '\0'" (pointer_expression "*apcStack_98[0]" * (subscript_expression "apcStack_98[0]" identifier [ number_literal ])) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          uVar28 = 0xffff - iVar24;\n        }" { (expression_statement "uVar28 = 0xffff - iVar24;" (assignment_expression "uVar28 = 0xffff - iVar24" identifier = (binary_expression "0xffff - iVar24" number_literal - identifier)) ;) }) (else_clause "else {\nLAB_00215994:\n          uVar28 = 0;\n        }" else (compound_statement "{\nLAB_00215994:\n          uVar28 = 0;\n        }" { (labeled_statement "LAB_00215994:\n          uVar28 = 0;" statement_identifier : (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;)) }))) (labeled_statement "LAB_00215998:\n        ppcVar20 = *(char ***)(iVar16 + 0x1c);" statement_identifier : (expression_statement "ppcVar20 = *(char ***)(iVar16 + 0x1c);" (assignment_expression "ppcVar20 = *(char ***)(iVar16 + 0x1c)" identifier = (pointer_expression "*(char ***)(iVar16 + 0x1c)" * (cast_expression "(char ***)(iVar16 + 0x1c)" ( (type_descriptor "char ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(iVar16 + 0x1c)" ( (binary_expression "iVar16 + 0x1c" identifier + number_literal) ))))) ;)) (expression_statement "iVar24 = (**(code **)(pcVar27 + 0x2b0254))(uVar17 + 0x35c0,ppcVar20,7);" (assignment_expression "iVar24 = (**(code **)(pcVar27 + 0x2b0254))(uVar17 + 0x35c0,ppcVar20,7)" identifier = (call_expression "(**(code **)(pcVar27 + 0x2b0254))(uVar17 + 0x35c0,ppcVar20,7)" (parenthesized_expression "(**(code **)(pcVar27 + 0x2b0254))" ( (pointer_expression "**(code **)(pcVar27 + 0x2b0254)" * (pointer_expression "*(code **)(pcVar27 + 0x2b0254)" * (cast_expression "(code **)(pcVar27 + 0x2b0254)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x2b0254)" ( (binary_expression "pcVar27 + 0x2b0254" identifier + number_literal) ))))) )) (argument_list "(uVar17 + 0x35c0,ppcVar20,7)" ( (binary_expression "uVar17 + 0x35c0" identifier + number_literal) , identifier , number_literal )))) ;) (if_statement "if ((iVar24 == 0) ||\n           (iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                               (*(int *)(pcVar27 + 0x2ac1e4) + 0x35c8,ppcVar20,7), iVar24 == 0)) {\n          __s_00 = apcStack_98;\n          iVar24 = (**(code **)(pcVar27 + 0x2b0334))((char *)((int)ppcVar20 + 7),__s_00,10);\n          if (*apcStack_98[0] != '\0') goto LAB_00215bfc;\n          uVar17 = 0xffff - iVar24;\nLAB_00215a3c:\n          if (uVar28 < uVar17) {\n            return true;\n          }\n        }\n        else {\n          iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                             (*(int *)(pcVar27 + 0x2ac1e4) + 0x4150,ppcVar20,0xc);\n          if ((iVar24 == 0) ||\n             (__s_00 = ppcVar20,\n             iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                                (*(int *)(pcVar27 + 0x2ac1e4) + 0x4160,ppcVar20,0xc), iVar24 == 0))\n          {\n            __s_00 = apcStack_98;\n            uVar17 = (**(code **)(pcVar27 + 0x2b0334))(ppcVar20 + 3,__s_00,10);\n            if (*apcStack_98[0] == '\0') goto LAB_00215a3c;\n          }\nLAB_00215bfc:\n          uVar17 = 0;\n        }" if (parenthesized_expression "((iVar24 == 0) ||\n           (iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                               (*(int *)(pcVar27 + 0x2ac1e4) + 0x35c8,ppcVar20,7), iVar24 == 0))" ( (binary_expression "(iVar24 == 0) ||\n           (iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                               (*(int *)(pcVar27 + 0x2ac1e4) + 0x35c8,ppcVar20,7), iVar24 == 0)" (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                               (*(int *)(pcVar27 + 0x2ac1e4) + 0x35c8,ppcVar20,7), iVar24 == 0)" ( (comma_expression "iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                               (*(int *)(pcVar27 + 0x2ac1e4) + 0x35c8,ppcVar20,7), iVar24 == 0" (assignment_expression "iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                               (*(int *)(pcVar27 + 0x2ac1e4) + 0x35c8,ppcVar20,7)" identifier = (call_expression "(**(code **)(pcVar27 + 0x2b0254))\n                               (*(int *)(pcVar27 + 0x2ac1e4) + 0x35c8,ppcVar20,7)" (parenthesized_expression "(**(code **)(pcVar27 + 0x2b0254))" ( (pointer_expression "**(code **)(pcVar27 + 0x2b0254)" * (pointer_expression "*(code **)(pcVar27 + 0x2b0254)" * (cast_expression "(code **)(pcVar27 + 0x2b0254)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x2b0254)" ( (binary_expression "pcVar27 + 0x2b0254" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar27 + 0x2ac1e4) + 0x35c8,ppcVar20,7)" ( (binary_expression "*(int *)(pcVar27 + 0x2ac1e4) + 0x35c8" (pointer_expression "*(int *)(pcVar27 + 0x2ac1e4)" * (cast_expression "(int *)(pcVar27 + 0x2ac1e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x2ac1e4)" ( (binary_expression "pcVar27 + 0x2ac1e4" identifier + number_literal) )))) + number_literal) , identifier , number_literal )))) , (binary_expression "iVar24 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          __s_00 = apcStack_98;\n          iVar24 = (**(code **)(pcVar27 + 0x2b0334))((char *)((int)ppcVar20 + 7),__s_00,10);\n          if (*apcStack_98[0] != '\0') goto LAB_00215bfc;\n          uVar17 = 0xffff - iVar24;\nLAB_00215a3c:\n          if (uVar28 < uVar17) {\n            return true;\n          }\n        }" { (expression_statement "__s_00 = apcStack_98;" (assignment_expression "__s_00 = apcStack_98" identifier = identifier) ;) (expression_statement "iVar24 = (**(code **)(pcVar27 + 0x2b0334))((char *)((int)ppcVar20 + 7),__s_00,10);" (assignment_expression "iVar24 = (**(code **)(pcVar27 + 0x2b0334))((char *)((int)ppcVar20 + 7),__s_00,10)" identifier = (call_expression "(**(code **)(pcVar27 + 0x2b0334))((char *)((int)ppcVar20 + 7),__s_00,10)" (parenthesized_expression "(**(code **)(pcVar27 + 0x2b0334))" ( (pointer_expression "**(code **)(pcVar27 + 0x2b0334)" * (pointer_expression "*(code **)(pcVar27 + 0x2b0334)" * (cast_expression "(code **)(pcVar27 + 0x2b0334)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x2b0334)" ( (binary_expression "pcVar27 + 0x2b0334" identifier + number_literal) ))))) )) (argument_list "((char *)((int)ppcVar20 + 7),__s_00,10)" ( (cast_expression "(char *)((int)ppcVar20 + 7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar20 + 7)" ( (binary_expression "(int)ppcVar20 + 7" (cast_expression "(int)ppcVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) , identifier , number_literal )))) ;) (if_statement "if (*apcStack_98[0] != '\0') goto LAB_00215bfc;" if (parenthesized_expression "(*apcStack_98[0] != '\0')" ( (binary_expression "*apcStack_98[0] != '\0'" (pointer_expression "*apcStack_98[0]" * (subscript_expression "apcStack_98[0]" identifier [ number_literal ])) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00215bfc;" goto statement_identifier ;)) (expression_statement "uVar17 = 0xffff - iVar24;" (assignment_expression "uVar17 = 0xffff - iVar24" identifier = (binary_expression "0xffff - iVar24" number_literal - identifier)) ;) (labeled_statement "LAB_00215a3c:\n          if (uVar28 < uVar17) {\n            return true;\n          }" statement_identifier : (if_statement "if (uVar28 < uVar17) {\n            return true;\n          }" if (parenthesized_expression "(uVar28 < uVar17)" ( (binary_expression "uVar28 < uVar17" identifier < identifier) )) (compound_statement "{\n            return true;\n          }" { (return_statement "return true;" return true ;) }))) }) (else_clause "else {\n          iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                             (*(int *)(pcVar27 + 0x2ac1e4) + 0x4150,ppcVar20,0xc);\n          if ((iVar24 == 0) ||\n             (__s_00 = ppcVar20,\n             iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                                (*(int *)(pcVar27 + 0x2ac1e4) + 0x4160,ppcVar20,0xc), iVar24 == 0))\n          {\n            __s_00 = apcStack_98;\n            uVar17 = (**(code **)(pcVar27 + 0x2b0334))(ppcVar20 + 3,__s_00,10);\n            if (*apcStack_98[0] == '\0') goto LAB_00215a3c;\n          }\nLAB_00215bfc:\n          uVar17 = 0;\n        }" else (compound_statement "{\n          iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                             (*(int *)(pcVar27 + 0x2ac1e4) + 0x4150,ppcVar20,0xc);\n          if ((iVar24 == 0) ||\n             (__s_00 = ppcVar20,\n             iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                                (*(int *)(pcVar27 + 0x2ac1e4) + 0x4160,ppcVar20,0xc), iVar24 == 0))\n          {\n            __s_00 = apcStack_98;\n            uVar17 = (**(code **)(pcVar27 + 0x2b0334))(ppcVar20 + 3,__s_00,10);\n            if (*apcStack_98[0] == '\0') goto LAB_00215a3c;\n          }\nLAB_00215bfc:\n          uVar17 = 0;\n        }" { (expression_statement "iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                             (*(int *)(pcVar27 + 0x2ac1e4) + 0x4150,ppcVar20,0xc);" (assignment_expression "iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                             (*(int *)(pcVar27 + 0x2ac1e4) + 0x4150,ppcVar20,0xc)" identifier = (call_expression "(**(code **)(pcVar27 + 0x2b0254))\n                             (*(int *)(pcVar27 + 0x2ac1e4) + 0x4150,ppcVar20,0xc)" (parenthesized_expression "(**(code **)(pcVar27 + 0x2b0254))" ( (pointer_expression "**(code **)(pcVar27 + 0x2b0254)" * (pointer_expression "*(code **)(pcVar27 + 0x2b0254)" * (cast_expression "(code **)(pcVar27 + 0x2b0254)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x2b0254)" ( (binary_expression "pcVar27 + 0x2b0254" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar27 + 0x2ac1e4) + 0x4150,ppcVar20,0xc)" ( (binary_expression "*(int *)(pcVar27 + 0x2ac1e4) + 0x4150" (pointer_expression "*(int *)(pcVar27 + 0x2ac1e4)" * (cast_expression "(int *)(pcVar27 + 0x2ac1e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x2ac1e4)" ( (binary_expression "pcVar27 + 0x2ac1e4" identifier + number_literal) )))) + number_literal) , identifier , number_literal )))) ;) (if_statement "if ((iVar24 == 0) ||\n             (__s_00 = ppcVar20,\n             iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                                (*(int *)(pcVar27 + 0x2ac1e4) + 0x4160,ppcVar20,0xc), iVar24 == 0))\n          {\n            __s_00 = apcStack_98;\n            uVar17 = (**(code **)(pcVar27 + 0x2b0334))(ppcVar20 + 3,__s_00,10);\n            if (*apcStack_98[0] == '\0') goto LAB_00215a3c;\n          }" if (parenthesized_expression "((iVar24 == 0) ||\n             (__s_00 = ppcVar20,\n             iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                                (*(int *)(pcVar27 + 0x2ac1e4) + 0x4160,ppcVar20,0xc), iVar24 == 0))" ( (binary_expression "(iVar24 == 0) ||\n             (__s_00 = ppcVar20,\n             iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                                (*(int *)(pcVar27 + 0x2ac1e4) + 0x4160,ppcVar20,0xc), iVar24 == 0)" (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) || (parenthesized_expression "(__s_00 = ppcVar20,\n             iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                                (*(int *)(pcVar27 + 0x2ac1e4) + 0x4160,ppcVar20,0xc), iVar24 == 0)" ( (comma_expression "__s_00 = ppcVar20,\n             iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                                (*(int *)(pcVar27 + 0x2ac1e4) + 0x4160,ppcVar20,0xc), iVar24 == 0" (assignment_expression "__s_00 = ppcVar20" identifier = identifier) , (comma_expression "iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                                (*(int *)(pcVar27 + 0x2ac1e4) + 0x4160,ppcVar20,0xc), iVar24 == 0" (assignment_expression "iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                                (*(int *)(pcVar27 + 0x2ac1e4) + 0x4160,ppcVar20,0xc)" identifier = (call_expression "(**(code **)(pcVar27 + 0x2b0254))\n                                (*(int *)(pcVar27 + 0x2ac1e4) + 0x4160,ppcVar20,0xc)" (parenthesized_expression "(**(code **)(pcVar27 + 0x2b0254))" ( (pointer_expression "**(code **)(pcVar27 + 0x2b0254)" * (pointer_expression "*(code **)(pcVar27 + 0x2b0254)" * (cast_expression "(code **)(pcVar27 + 0x2b0254)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x2b0254)" ( (binary_expression "pcVar27 + 0x2b0254" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar27 + 0x2ac1e4) + 0x4160,ppcVar20,0xc)" ( (binary_expression "*(int *)(pcVar27 + 0x2ac1e4) + 0x4160" (pointer_expression "*(int *)(pcVar27 + 0x2ac1e4)" * (cast_expression "(int *)(pcVar27 + 0x2ac1e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x2ac1e4)" ( (binary_expression "pcVar27 + 0x2ac1e4" identifier + number_literal) )))) + number_literal) , identifier , number_literal )))) , (binary_expression "iVar24 == 0" identifier == number_literal))) ))) )) (compound_statement "{\n            __s_00 = apcStack_98;\n            uVar17 = (**(code **)(pcVar27 + 0x2b0334))(ppcVar20 + 3,__s_00,10);\n            if (*apcStack_98[0] == '\0') goto LAB_00215a3c;\n          }" { (expression_statement "__s_00 = apcStack_98;" (assignment_expression "__s_00 = apcStack_98" identifier = identifier) ;) (expression_statement "uVar17 = (**(code **)(pcVar27 + 0x2b0334))(ppcVar20 + 3,__s_00,10);" (assignment_expression "uVar17 = (**(code **)(pcVar27 + 0x2b0334))(ppcVar20 + 3,__s_00,10)" identifier = (call_expression "(**(code **)(pcVar27 + 0x2b0334))(ppcVar20 + 3,__s_00,10)" (parenthesized_expression "(**(code **)(pcVar27 + 0x2b0334))" ( (pointer_expression "**(code **)(pcVar27 + 0x2b0334)" * (pointer_expression "*(code **)(pcVar27 + 0x2b0334)" * (cast_expression "(code **)(pcVar27 + 0x2b0334)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x2b0334)" ( (binary_expression "pcVar27 + 0x2b0334" identifier + number_literal) ))))) )) (argument_list "(ppcVar20 + 3,__s_00,10)" ( (binary_expression "ppcVar20 + 3" identifier + number_literal) , identifier , number_literal )))) ;) (if_statement "if (*apcStack_98[0] == '\0') goto LAB_00215a3c;" if (parenthesized_expression "(*apcStack_98[0] == '\0')" ( (binary_expression "*apcStack_98[0] == '\0'" (pointer_expression "*apcStack_98[0]" * (subscript_expression "apcStack_98[0]" identifier [ number_literal ])) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00215a3c;" goto statement_identifier ;)) })) (labeled_statement "LAB_00215bfc:\n          uVar17 = 0;" statement_identifier : (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;)) }))) (if_statement "if (uVar17 < uVar28) {\n          return false;\n        }" if (parenthesized_expression "(uVar17 < uVar28)" ( (binary_expression "uVar17 < uVar28" identifier < identifier) )) (compound_statement "{\n          return false;\n        }" { (return_statement "return false;" return false ;) })) }))) (expression_statement "iVar24 = 0xcf5;" (assignment_expression "iVar24 = 0xcf5" identifier = number_literal) ;) (expression_statement "pcVar29 = *(code **)(pcVar27 + 0x2ac1c4);" (assignment_expression "pcVar29 = *(code **)(pcVar27 + 0x2ac1c4)" identifier = (pointer_expression "*(code **)(pcVar27 + 0x2ac1c4)" * (cast_expression "(code **)(pcVar27 + 0x2ac1c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x2ac1c4)" ( (binary_expression "pcVar27 + 0x2ac1c4" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)(pcVar27 + 0x2ac0b0) + -0x30e8;" (assignment_expression "iVar4 = *(int *)(pcVar27 + 0x2ac0b0) + -0x30e8" identifier = (binary_expression "*(int *)(pcVar27 + 0x2ac0b0) + -0x30e8" (pointer_expression "*(int *)(pcVar27 + 0x2ac0b0)" * (cast_expression "(int *)(pcVar27 + 0x2ac0b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x2ac0b0)" ( (binary_expression "pcVar27 + 0x2ac0b0" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar29)(*(int *)(pcVar27 + 0x2ac0b0) + -0x48b4);" (call_expression "(*pcVar29)(*(int *)(pcVar27 + 0x2ac0b0) + -0x48b4)" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(*(int *)(pcVar27 + 0x2ac0b0) + -0x48b4)" ( (binary_expression "*(int *)(pcVar27 + 0x2ac0b0) + -0x48b4" (pointer_expression "*(int *)(pcVar27 + 0x2ac0b0)" * (cast_expression "(int *)(pcVar27 + 0x2ac0b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x2ac0b0)" ( (binary_expression "pcVar27 + 0x2ac0b0" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (*(uint *)(iVar24 + 0x18) != 0xffffffff) {\n        if (*(uint *)(iVar4 + 0x18) != 0xffffffff) {\n          if (*(uint *)(iVar24 + 0x14) != *(uint *)(iVar4 + 0x14)) {\n            return *(uint *)(iVar24 + 0x14) < *(uint *)(iVar4 + 0x14);\n          }\n          return *(uint *)(iVar24 + 0x18) < *(uint *)(iVar4 + 0x18);\n        }\n      }" if (parenthesized_expression "(*(uint *)(iVar24 + 0x18) != 0xffffffff)" ( (binary_expression "*(uint *)(iVar24 + 0x18) != 0xffffffff" (pointer_expression "*(uint *)(iVar24 + 0x18)" * (cast_expression "(uint *)(iVar24 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x18)" ( (binary_expression "iVar24 + 0x18" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        if (*(uint *)(iVar4 + 0x18) != 0xffffffff) {\n          if (*(uint *)(iVar24 + 0x14) != *(uint *)(iVar4 + 0x14)) {\n            return *(uint *)(iVar24 + 0x14) < *(uint *)(iVar4 + 0x14);\n          }\n          return *(uint *)(iVar24 + 0x18) < *(uint *)(iVar4 + 0x18);\n        }\n      }" { (if_statement "if (*(uint *)(iVar4 + 0x18) != 0xffffffff) {\n          if (*(uint *)(iVar24 + 0x14) != *(uint *)(iVar4 + 0x14)) {\n            return *(uint *)(iVar24 + 0x14) < *(uint *)(iVar4 + 0x14);\n          }\n          return *(uint *)(iVar24 + 0x18) < *(uint *)(iVar4 + 0x18);\n        }" if (parenthesized_expression "(*(uint *)(iVar4 + 0x18) != 0xffffffff)" ( (binary_expression "*(uint *)(iVar4 + 0x18) != 0xffffffff" (pointer_expression "*(uint *)(iVar4 + 0x18)" * (cast_expression "(uint *)(iVar4 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          if (*(uint *)(iVar24 + 0x14) != *(uint *)(iVar4 + 0x14)) {\n            return *(uint *)(iVar24 + 0x14) < *(uint *)(iVar4 + 0x14);\n          }\n          return *(uint *)(iVar24 + 0x18) < *(uint *)(iVar4 + 0x18);\n        }" { (if_statement "if (*(uint *)(iVar24 + 0x14) != *(uint *)(iVar4 + 0x14)) {\n            return *(uint *)(iVar24 + 0x14) < *(uint *)(iVar4 + 0x14);\n          }" if (parenthesized_expression "(*(uint *)(iVar24 + 0x14) != *(uint *)(iVar4 + 0x14))" ( (binary_expression "*(uint *)(iVar24 + 0x14) != *(uint *)(iVar4 + 0x14)" (pointer_expression "*(uint *)(iVar24 + 0x14)" * (cast_expression "(uint *)(iVar24 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x14)" ( (binary_expression "iVar24 + 0x14" identifier + number_literal) )))) != (pointer_expression "*(uint *)(iVar4 + 0x14)" * (cast_expression "(uint *)(iVar4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n            return *(uint *)(iVar24 + 0x14) < *(uint *)(iVar4 + 0x14);\n          }" { (return_statement "return *(uint *)(iVar24 + 0x14) < *(uint *)(iVar4 + 0x14);" return (binary_expression "*(uint *)(iVar24 + 0x14) < *(uint *)(iVar4 + 0x14)" (pointer_expression "*(uint *)(iVar24 + 0x14)" * (cast_expression "(uint *)(iVar24 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x14)" ( (binary_expression "iVar24 + 0x14" identifier + number_literal) )))) < (pointer_expression "*(uint *)(iVar4 + 0x14)" * (cast_expression "(uint *)(iVar4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) ))))) ;) })) (return_statement "return *(uint *)(iVar24 + 0x18) < *(uint *)(iVar4 + 0x18);" return (binary_expression "*(uint *)(iVar24 + 0x18) < *(uint *)(iVar4 + 0x18)" (pointer_expression "*(uint *)(iVar24 + 0x18)" * (cast_expression "(uint *)(iVar24 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x18)" ( (binary_expression "iVar24 + 0x18" identifier + number_literal) )))) < (pointer_expression "*(uint *)(iVar4 + 0x18)" * (cast_expression "(uint *)(iVar4 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) ))))) ;) })) })) (expression_statement "pcVar15 = (char *)0xcf5;" (assignment_expression "pcVar15 = (char *)0xcf5" identifier = (cast_expression "(char *)0xcf5" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar27 = *(code **)(pcVar29 + 0x2abd98);" (assignment_expression "pcVar27 = *(code **)(pcVar29 + 0x2abd98)" identifier = (pointer_expression "*(code **)(pcVar29 + 0x2abd98)" * (cast_expression "(code **)(pcVar29 + 0x2abd98)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x2abd98)" ( (binary_expression "pcVar29 + 0x2abd98" identifier + number_literal) ))))) ;) (expression_statement "iVar16 = *(int *)(pcVar29 + 0x2abc84) + -0x30e8;" (assignment_expression "iVar16 = *(int *)(pcVar29 + 0x2abc84) + -0x30e8" identifier = (binary_expression "*(int *)(pcVar29 + 0x2abc84) + -0x30e8" (pointer_expression "*(int *)(pcVar29 + 0x2abc84)" * (cast_expression "(int *)(pcVar29 + 0x2abc84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar29 + 0x2abc84)" ( (binary_expression "pcVar29 + 0x2abc84" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(*pcVar27)(*(int *)(pcVar29 + 0x2abc84) + -0x48b4);" (call_expression "(*pcVar27)(*(int *)(pcVar29 + 0x2abc84) + -0x48b4)" (parenthesized_expression "(*pcVar27)" ( (pointer_expression "*pcVar27" * identifier) )) (argument_list "(*(int *)(pcVar29 + 0x2abc84) + -0x48b4)" ( (binary_expression "*(int *)(pcVar29 + 0x2abc84) + -0x48b4" (pointer_expression "*(int *)(pcVar29 + 0x2abc84)" * (cast_expression "(int *)(pcVar29 + 0x2abc84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar29 + 0x2abc84)" ( (binary_expression "pcVar29 + 0x2abc84" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pcVar5 = pcVar15;" (assignment_expression "pcVar5 = pcVar15" identifier = identifier) ;) (expression_statement "iVar24 = iVar16;" (assignment_expression "iVar24 = iVar16" identifier = identifier) ;) (expression_statement "iVar4 = (**(code **)(pcVar27 + 0x2ae23c))(*(undefined4 *)(pcVar15 + 0x1c));" (assignment_expression "iVar4 = (**(code **)(pcVar27 + 0x2ae23c))(*(undefined4 *)(pcVar15 + 0x1c))" identifier = (call_expression "(**(code **)(pcVar27 + 0x2ae23c))(*(undefined4 *)(pcVar15 + 0x1c))" (parenthesized_expression "(**(code **)(pcVar27 + 0x2ae23c))" ( (pointer_expression "**(code **)(pcVar27 + 0x2ae23c)" * (pointer_expression "*(code **)(pcVar27 + 0x2ae23c)" * (cast_expression "(code **)(pcVar27 + 0x2ae23c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x2ae23c)" ( (binary_expression "pcVar27 + 0x2ae23c" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(pcVar15 + 0x1c))" ( (pointer_expression "*(undefined4 *)(pcVar15 + 0x1c)" * (cast_expression "(undefined4 *)(pcVar15 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x1c)" ( (binary_expression "pcVar15 + 0x1c" identifier + number_literal) )))) )))) ;) (expression_statement "this_00 = *(Input_section_sort_entry **)(iVar16 + 0x1c);" (assignment_expression "this_00 = *(Input_section_sort_entry **)(iVar16 + 0x1c)" identifier = (pointer_expression "*(Input_section_sort_entry **)(iVar16 + 0x1c)" * (cast_expression "(Input_section_sort_entry **)(iVar16 + 0x1c)" ( (type_descriptor "Input_section_sort_entry **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar16 + 0x1c)" ( (binary_expression "iVar16 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "iVar14 = (**(code **)(pcVar27 + 0x2ae23c))();" (assignment_expression "iVar14 = (**(code **)(pcVar27 + 0x2ae23c))()" identifier = (call_expression "(**(code **)(pcVar27 + 0x2ae23c))()" (parenthesized_expression "(**(code **)(pcVar27 + 0x2ae23c))" ( (pointer_expression "**(code **)(pcVar27 + 0x2ae23c)" * (pointer_expression "*(code **)(pcVar27 + 0x2ae23c)" * (cast_expression "(code **)(pcVar27 + 0x2ae23c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x2ae23c)" ( (binary_expression "pcVar27 + 0x2ae23c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar4 != iVar14) {\n        if (iVar4 < 0) {\n          return false;\n        }\n        if (-1 < iVar14) {\n          return iVar4 < iVar14;\n        }\n        return true;\n      }" if (parenthesized_expression "(iVar4 != iVar14)" ( (binary_expression "iVar4 != iVar14" identifier != identifier) )) (compound_statement "{\n        if (iVar4 < 0) {\n          return false;\n        }\n        if (-1 < iVar14) {\n          return iVar4 < iVar14;\n        }\n        return true;\n      }" { (if_statement "if (iVar4 < 0) {\n          return false;\n        }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n          return false;\n        }" { (return_statement "return false;" return false ;) })) (if_statement "if (-1 < iVar14) {\n          return iVar4 < iVar14;\n        }" if (parenthesized_expression "(-1 < iVar14)" ( (binary_expression "-1 < iVar14" number_literal < identifier) )) (compound_statement "{\n          return iVar4 < iVar14;\n        }" { (return_statement "return iVar4 < iVar14;" return (binary_expression "iVar4 < iVar14" identifier < identifier) ;) })) (return_statement "return true;" return true ;) })) (if_statement "if ((*(uint *)(pcVar15 + 0x18) != 0xffffffff) && (*(uint *)(iVar16 + 0x18) != 0xffffffff)) {\n        return *(uint *)(pcVar15 + 0x18) < *(uint *)(iVar16 + 0x18);\n      }" if (parenthesized_expression "((*(uint *)(pcVar15 + 0x18) != 0xffffffff) && (*(uint *)(iVar16 + 0x18) != 0xffffffff))" ( (binary_expression "(*(uint *)(pcVar15 + 0x18) != 0xffffffff) && (*(uint *)(iVar16 + 0x18) != 0xffffffff)" (parenthesized_expression "(*(uint *)(pcVar15 + 0x18) != 0xffffffff)" ( (binary_expression "*(uint *)(pcVar15 + 0x18) != 0xffffffff" (pointer_expression "*(uint *)(pcVar15 + 0x18)" * (cast_expression "(uint *)(pcVar15 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x18)" ( (binary_expression "pcVar15 + 0x18" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(*(uint *)(iVar16 + 0x18) != 0xffffffff)" ( (binary_expression "*(uint *)(iVar16 + 0x18) != 0xffffffff" (pointer_expression "*(uint *)(iVar16 + 0x18)" * (cast_expression "(uint *)(iVar16 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x18)" ( (binary_expression "iVar16 + 0x18" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n        return *(uint *)(pcVar15 + 0x18) < *(uint *)(iVar16 + 0x18);\n      }" { (return_statement "return *(uint *)(pcVar15 + 0x18) < *(uint *)(iVar16 + 0x18);" return (binary_expression "*(uint *)(pcVar15 + 0x18) < *(uint *)(iVar16 + 0x18)" (pointer_expression "*(uint *)(pcVar15 + 0x18)" * (cast_expression "(uint *)(pcVar15 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x18)" ( (binary_expression "pcVar15 + 0x18" identifier + number_literal) )))) < (pointer_expression "*(uint *)(iVar16 + 0x18)" * (cast_expression "(uint *)(iVar16 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x18)" ( (binary_expression "iVar16 + 0x18" identifier + number_literal) ))))) ;) })) (expression_statement "iVar4 = *(int *)(pcVar27 + 0x2ae200) + 0x3338;" (assignment_expression "iVar4 = *(int *)(pcVar27 + 0x2ae200) + 0x3338" identifier = (binary_expression "*(int *)(pcVar27 + 0x2ae200) + 0x3338" (pointer_expression "*(int *)(pcVar27 + 0x2ae200)" * (cast_expression "(int *)(pcVar27 + 0x2ae200)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x2ae200)" ( (binary_expression "pcVar27 + 0x2ae200" identifier + number_literal) )))) + number_literal)) ;) (labeled_statement "Input_section_sort_entry::index(this_00,pcVar5,iVar24);" statement_identifier : (ERROR ":" :) (expression_statement "index(this_00,pcVar5,iVar24);" (call_expression "index(this_00,pcVar5,iVar24)" identifier (argument_list "(this_00,pcVar5,iVar24)" ( identifier , identifier , identifier ))) ;)) (expression_statement "uVar6 = *(uint *)(pcVar5 + 0x20);" (assignment_expression "uVar6 = *(uint *)(pcVar5 + 0x20)" identifier = (pointer_expression "*(uint *)(pcVar5 + 0x20)" * (cast_expression "(uint *)(pcVar5 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar5 + 0x20)" ( (binary_expression "pcVar5 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "uVar28 = *(uint *)(iVar24 + 0x20);" (assignment_expression "uVar28 = *(uint *)(iVar24 + 0x20)" identifier = (pointer_expression "*(uint *)(iVar24 + 0x20)" * (cast_expression "(uint *)(iVar24 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x20)" ( (binary_expression "iVar24 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "uVar17 = uVar28;" (assignment_expression "uVar17 = uVar28" identifier = identifier) ;) (if_statement "if (uVar28 < uVar6 == 0) {\n        uVar17 = uVar6;\n      }" if (parenthesized_expression "(uVar28 < uVar6 == 0)" ( (binary_expression "uVar28 < uVar6 == 0" (binary_expression "uVar28 < uVar6" identifier < identifier) == number_literal) )) (compound_statement "{\n        uVar17 = uVar6;\n      }" { (expression_statement "uVar17 = uVar6;" (assignment_expression "uVar17 = uVar6" identifier = identifier) ;) })) (expression_statement "pcVar15 = pcVar5;" (assignment_expression "pcVar15 = pcVar5" identifier = identifier) ;) (expression_statement "uVar12 = (uint)(uVar28 < uVar6);" (assignment_expression "uVar12 = (uint)(uVar28 < uVar6)" identifier = (call_expression "(uint)(uVar28 < uVar6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar28 < uVar6)" ( (binary_expression "uVar28 < uVar6" identifier < identifier) )))) ;) (if_statement "if (uVar17 != 0) {\n        pcVar15 = *(char **)(iVar24 + 0x1c);\n        this_00 = *(Input_section_sort_entry **)(pcVar5 + 0x1c);\n        iVar4 = (**(code **)(iVar4 + 0x2aff08))();\n        uVar12 = uVar17;\n        if (iVar4 != 0) goto LAB_00215e90;\n      }" if (parenthesized_expression "(uVar17 != 0)" ( (binary_expression "uVar17 != 0" identifier != number_literal) )) (compound_statement "{\n        pcVar15 = *(char **)(iVar24 + 0x1c);\n        this_00 = *(Input_section_sort_entry **)(pcVar5 + 0x1c);\n        iVar4 = (**(code **)(iVar4 + 0x2aff08))();\n        uVar12 = uVar17;\n        if (iVar4 != 0) goto LAB_00215e90;\n      }" { (expression_statement "pcVar15 = *(char **)(iVar24 + 0x1c);" (assignment_expression "pcVar15 = *(char **)(iVar24 + 0x1c)" identifier = (pointer_expression "*(char **)(iVar24 + 0x1c)" * (cast_expression "(char **)(iVar24 + 0x1c)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x1c)" ( (binary_expression "iVar24 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "this_00 = *(Input_section_sort_entry **)(pcVar5 + 0x1c);" (assignment_expression "this_00 = *(Input_section_sort_entry **)(pcVar5 + 0x1c)" identifier = (pointer_expression "*(Input_section_sort_entry **)(pcVar5 + 0x1c)" * (cast_expression "(Input_section_sort_entry **)(pcVar5 + 0x1c)" ( (type_descriptor "Input_section_sort_entry **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0x1c)" ( (binary_expression "pcVar5 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = (**(code **)(iVar4 + 0x2aff08))();" (assignment_expression "iVar4 = (**(code **)(iVar4 + 0x2aff08))()" identifier = (call_expression "(**(code **)(iVar4 + 0x2aff08))()" (parenthesized_expression "(**(code **)(iVar4 + 0x2aff08))" ( (pointer_expression "**(code **)(iVar4 + 0x2aff08)" * (pointer_expression "*(code **)(iVar4 + 0x2aff08)" * (cast_expression "(code **)(iVar4 + 0x2aff08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x2aff08)" ( (binary_expression "iVar4 + 0x2aff08" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar12 = uVar17;" (assignment_expression "uVar12 = uVar17" identifier = identifier) ;) (if_statement "if (iVar4 != 0) goto LAB_00215e90;" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00215e90;" goto statement_identifier ;)) })) (expression_statement "iVar4 = uVar6 - uVar28;" (assignment_expression "iVar4 = uVar6 - uVar28" identifier = (binary_expression "uVar6 - uVar28" identifier - identifier)) ;) (if_statement "if (iVar4 != 0) {\nLAB_00215e90:\n        return SUB41((uint)iVar4 >> 0x1f,0);\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00215e90:\n        return SUB41((uint)iVar4 >> 0x1f,0);\n      }" { (labeled_statement "LAB_00215e90:\n        return SUB41((uint)iVar4 >> 0x1f,0);" statement_identifier : (return_statement "return SUB41((uint)iVar4 >> 0x1f,0);" return (call_expression "SUB41((uint)iVar4 >> 0x1f,0)" identifier (argument_list "((uint)iVar4 >> 0x1f,0)" ( (binary_expression "(uint)iVar4 >> 0x1f" (cast_expression "(uint)iVar4" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) , number_literal ))) ;)) })) (if_statement "if ((*(Input_section_sort_entry **)(pcVar5 + 0x18) != (Input_section_sort_entry *)0xffffffff)\n         && (this_00 = *(Input_section_sort_entry **)(iVar24 + 0x18),\n            this_00 != (Input_section_sort_entry *)0xffffffff)) {\n        return *(Input_section_sort_entry **)(pcVar5 + 0x18) < this_00;\n      }" if (parenthesized_expression "((*(Input_section_sort_entry **)(pcVar5 + 0x18) != (Input_section_sort_entry *)0xffffffff)\n         && (this_00 = *(Input_section_sort_entry **)(iVar24 + 0x18),\n            this_00 != (Input_section_sort_entry *)0xffffffff))" ( (binary_expression "(*(Input_section_sort_entry **)(pcVar5 + 0x18) != (Input_section_sort_entry *)0xffffffff)\n         && (this_00 = *(Input_section_sort_entry **)(iVar24 + 0x18),\n            this_00 != (Input_section_sort_entry *)0xffffffff)" (parenthesized_expression "(*(Input_section_sort_entry **)(pcVar5 + 0x18) != (Input_section_sort_entry *)0xffffffff)" ( (binary_expression "*(Input_section_sort_entry **)(pcVar5 + 0x18) != (Input_section_sort_entry *)0xffffffff" (pointer_expression "*(Input_section_sort_entry **)(pcVar5 + 0x18)" * (cast_expression "(Input_section_sort_entry **)(pcVar5 + 0x18)" ( (type_descriptor "Input_section_sort_entry **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0x18)" ( (binary_expression "pcVar5 + 0x18" identifier + number_literal) )))) != (cast_expression "(Input_section_sort_entry *)0xffffffff" ( (type_descriptor "Input_section_sort_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(this_00 = *(Input_section_sort_entry **)(iVar24 + 0x18),\n            this_00 != (Input_section_sort_entry *)0xffffffff)" ( (comma_expression "this_00 = *(Input_section_sort_entry **)(iVar24 + 0x18),\n            this_00 != (Input_section_sort_entry *)0xffffffff" (assignment_expression "this_00 = *(Input_section_sort_entry **)(iVar24 + 0x18)" identifier = (pointer_expression "*(Input_section_sort_entry **)(iVar24 + 0x18)" * (cast_expression "(Input_section_sort_entry **)(iVar24 + 0x18)" ( (type_descriptor "Input_section_sort_entry **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + 0x18)" ( (binary_expression "iVar24 + 0x18" identifier + number_literal) ))))) , (binary_expression "this_00 != (Input_section_sort_entry *)0xffffffff" identifier != (cast_expression "(Input_section_sort_entry *)0xffffffff" ( (type_descriptor "Input_section_sort_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n        return *(Input_section_sort_entry **)(pcVar5 + 0x18) < this_00;\n      }" { (return_statement "return *(Input_section_sort_entry **)(pcVar5 + 0x18) < this_00;" return (binary_expression "*(Input_section_sort_entry **)(pcVar5 + 0x18) < this_00" (pointer_expression "*(Input_section_sort_entry **)(pcVar5 + 0x18)" * (cast_expression "(Input_section_sort_entry **)(pcVar5 + 0x18)" ( (type_descriptor "Input_section_sort_entry **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0x18)" ( (binary_expression "pcVar5 + 0x18" identifier + number_literal) )))) < identifier) ;) })) (ERROR "pcVar5 = Input_section_sort_entry::" (assignment_expression "pcVar5 = Input_section_sort_entry" identifier = identifier) : :) (expression_statement "index(this_00,pcVar15,uVar12);" (call_expression "index(this_00,pcVar15,uVar12)" identifier (argument_list "(this_00,pcVar15,uVar12)" ( identifier , identifier , identifier ))) ;) (expression_statement "pIVar13 = (Input_section *)this_00[2].input_section_.p2align_;" (assignment_expression "pIVar13 = (Input_section *)this_00[2].input_section_.p2align_" identifier = (cast_expression "(Input_section *)this_00[2].input_section_.p2align_" ( (type_descriptor "Input_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "this_00[2].input_section_.p2align_" (field_expression "this_00[2].input_section_" (subscript_expression "this_00[2]" identifier [ number_literal ]) . field_identifier) . field_identifier))) ;) (expression_statement "this_02 = (Input_section *)this_00[2].input_section_.shndx_;" (assignment_expression "this_02 = (Input_section *)this_00[2].input_section_.shndx_" identifier = (cast_expression "(Input_section *)this_00[2].input_section_.shndx_" ( (type_descriptor "Input_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "this_00[2].input_section_.shndx_" (field_expression "this_00[2].input_section_" (subscript_expression "this_00[2]" identifier [ number_literal ]) . field_identifier) . field_identifier))) ;) (if_statement "if (this_02 == pIVar13) {\n        return (bool)(char)pcVar5;\n      }" if (parenthesized_expression "(this_02 == pIVar13)" ( (binary_expression "this_02 == pIVar13" identifier == identifier) )) (compound_statement "{\n        return (bool)(char)pcVar5;\n      }" { (return_statement "return (bool)(char)pcVar5;" return (cast_expression "(bool)(char)pcVar5" ( (type_descriptor "bool" primitive_type) ) (cast_expression "(char)pcVar5" ( (type_descriptor "char" primitive_type) ) identifier)) ;) })) (do_statement "do {\n        uVar17 = 0xfffffffc;\n        if (this_02->shndx_ + 4 < 4) {\n          if (this_02->shndx_ == 0xfffffffc) {\n            pRVar2 = (Relobj *)(((this_02->u2_).object)->super_Object).xindex_;\n            goto LAB_00215f3c;\n          }\n        }\n        else {\n          pRVar2 = Input_section::relobj(this_02);\nLAB_00215f3c:\n          uVar17 = Input_section::shndx(this_02);\n          pcVar5 = *(char **)(pcVar15 + 8);\n          pcVar11 = pcVar15 + 4;\n          if (*(char **)(pcVar15 + 8) != (char *)0x0) {\n            do {\n              if ((*(Relobj **)(pcVar5 + 0x10) < pRVar2) ||\n                 ((pRVar2 == *(Relobj **)(pcVar5 + 0x10) && (*(uint *)(pcVar5 + 0x14) < uVar17)))) {\n                pcVar7 = *(char **)(pcVar5 + 0xc);\n              }\n              else {\n                pcVar7 = *(char **)(pcVar5 + 8);\n                pcVar11 = pcVar5;\n              }\n              pcVar5 = pcVar7;\n            } while (pcVar7 != (char *)0x0);\n            if ((((pcVar15 + 4 != pcVar11) && (*(Relobj **)(pcVar11 + 0x10) <= pRVar2)) &&\n                ((pRVar2 != *(Relobj **)(pcVar11 + 0x10) ||\n                 (uVar17 = (uint)(uVar17 < *(uint *)(pcVar11 + 0x14)), uVar17 == 0)))) &&\n               (uVar17 = *(uint *)(pcVar11 + 0x18), uVar17 != 0)) {\n              pIVar13 = (Input_section *)this_00[2].input_section_.p2align_;\n              this_02->section_order_index_ = uVar17;\n              uVar17 = *(uint *)((int)&this_00[2].section_name_.field_2 + 4) & 0xffbfffff | 0x400000\n              ;\n              *(uint *)((int)&this_00[2].section_name_.field_2 + 4) = uVar17;\n              goto LAB_00215fdc;\n            }\n          }\n          pIVar13 = (Input_section *)this_00[2].input_section_.p2align_;\n        }\nLAB_00215fdc:\n        this_02 = this_02 + 1;\n        if (pIVar13 == this_02) {\n          return (bool)(char)uVar17;\n        }\n      } while( true );" do (compound_statement "{\n        uVar17 = 0xfffffffc;\n        if (this_02->shndx_ + 4 < 4) {\n          if (this_02->shndx_ == 0xfffffffc) {\n            pRVar2 = (Relobj *)(((this_02->u2_).object)->super_Object).xindex_;\n            goto LAB_00215f3c;\n          }\n        }\n        else {\n          pRVar2 = Input_section::relobj(this_02);\nLAB_00215f3c:\n          uVar17 = Input_section::shndx(this_02);\n          pcVar5 = *(char **)(pcVar15 + 8);\n          pcVar11 = pcVar15 + 4;\n          if (*(char **)(pcVar15 + 8) != (char *)0x0) {\n            do {\n              if ((*(Relobj **)(pcVar5 + 0x10) < pRVar2) ||\n                 ((pRVar2 == *(Relobj **)(pcVar5 + 0x10) && (*(uint *)(pcVar5 + 0x14) < uVar17)))) {\n                pcVar7 = *(char **)(pcVar5 + 0xc);\n              }\n              else {\n                pcVar7 = *(char **)(pcVar5 + 8);\n                pcVar11 = pcVar5;\n              }\n              pcVar5 = pcVar7;\n            } while (pcVar7 != (char *)0x0);\n            if ((((pcVar15 + 4 != pcVar11) && (*(Relobj **)(pcVar11 + 0x10) <= pRVar2)) &&\n                ((pRVar2 != *(Relobj **)(pcVar11 + 0x10) ||\n                 (uVar17 = (uint)(uVar17 < *(uint *)(pcVar11 + 0x14)), uVar17 == 0)))) &&\n               (uVar17 = *(uint *)(pcVar11 + 0x18), uVar17 != 0)) {\n              pIVar13 = (Input_section *)this_00[2].input_section_.p2align_;\n              this_02->section_order_index_ = uVar17;\n              uVar17 = *(uint *)((int)&this_00[2].section_name_.field_2 + 4) & 0xffbfffff | 0x400000\n              ;\n              *(uint *)((int)&this_00[2].section_name_.field_2 + 4) = uVar17;\n              goto LAB_00215fdc;\n            }\n          }\n          pIVar13 = (Input_section *)this_00[2].input_section_.p2align_;\n        }\nLAB_00215fdc:\n        this_02 = this_02 + 1;\n        if (pIVar13 == this_02) {\n          return (bool)(char)uVar17;\n        }\n      }" { (expression_statement "uVar17 = 0xfffffffc;" (assignment_expression "uVar17 = 0xfffffffc" identifier = number_literal) ;) (if_statement "if (this_02->shndx_ + 4 < 4) {\n          if (this_02->shndx_ == 0xfffffffc) {\n            pRVar2 = (Relobj *)(((this_02->u2_).object)->super_Object).xindex_;\n            goto LAB_00215f3c;\n          }\n        }\n        else {\n          pRVar2 = Input_section::relobj(this_02);\nLAB_00215f3c:\n          uVar17 = Input_section::shndx(this_02);\n          pcVar5 = *(char **)(pcVar15 + 8);\n          pcVar11 = pcVar15 + 4;\n          if (*(char **)(pcVar15 + 8) != (char *)0x0) {\n            do {\n              if ((*(Relobj **)(pcVar5 + 0x10) < pRVar2) ||\n                 ((pRVar2 == *(Relobj **)(pcVar5 + 0x10) && (*(uint *)(pcVar5 + 0x14) < uVar17)))) {\n                pcVar7 = *(char **)(pcVar5 + 0xc);\n              }\n              else {\n                pcVar7 = *(char **)(pcVar5 + 8);\n                pcVar11 = pcVar5;\n              }\n              pcVar5 = pcVar7;\n            } while (pcVar7 != (char *)0x0);\n            if ((((pcVar15 + 4 != pcVar11) && (*(Relobj **)(pcVar11 + 0x10) <= pRVar2)) &&\n                ((pRVar2 != *(Relobj **)(pcVar11 + 0x10) ||\n                 (uVar17 = (uint)(uVar17 < *(uint *)(pcVar11 + 0x14)), uVar17 == 0)))) &&\n               (uVar17 = *(uint *)(pcVar11 + 0x18), uVar17 != 0)) {\n              pIVar13 = (Input_section *)this_00[2].input_section_.p2align_;\n              this_02->section_order_index_ = uVar17;\n              uVar17 = *(uint *)((int)&this_00[2].section_name_.field_2 + 4) & 0xffbfffff | 0x400000\n              ;\n              *(uint *)((int)&this_00[2].section_name_.field_2 + 4) = uVar17;\n              goto LAB_00215fdc;\n            }\n          }\n          pIVar13 = (Input_section *)this_00[2].input_section_.p2align_;\n        }" if (parenthesized_expression "(this_02->shndx_ + 4 < 4)" ( (binary_expression "this_02->shndx_ + 4 < 4" (binary_expression "this_02->shndx_ + 4" (field_expression "this_02->shndx_" identifier -> field_identifier) + number_literal) < number_literal) )) (compound_statement "{\n          if (this_02->shndx_ == 0xfffffffc) {\n            pRVar2 = (Relobj *)(((this_02->u2_).object)->super_Object).xindex_;\n            goto LAB_00215f3c;\n          }\n        }" { (if_statement "if (this_02->shndx_ == 0xfffffffc) {\n            pRVar2 = (Relobj *)(((this_02->u2_).object)->super_Object).xindex_;\n            goto LAB_00215f3c;\n          }" if (parenthesized_expression "(this_02->shndx_ == 0xfffffffc)" ( (binary_expression "this_02->shndx_ == 0xfffffffc" (field_expression "this_02->shndx_" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n            pRVar2 = (Relobj *)(((this_02->u2_).object)->super_Object).xindex_;\n            goto LAB_00215f3c;\n          }" { (expression_statement "pRVar2 = (Relobj *)(((this_02->u2_).object)->super_Object).xindex_;" (assignment_expression "pRVar2 = (Relobj *)(((this_02->u2_).object)->super_Object).xindex_" identifier = (cast_expression "(Relobj *)(((this_02->u2_).object)->super_Object).xindex_" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(((this_02->u2_).object)->super_Object).xindex_" (parenthesized_expression "(((this_02->u2_).object)->super_Object)" ( (field_expression "((this_02->u2_).object)->super_Object" (parenthesized_expression "((this_02->u2_).object)" ( (field_expression "(this_02->u2_).object" (parenthesized_expression "(this_02->u2_)" ( (field_expression "this_02->u2_" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) )) . field_identifier))) ;) (goto_statement "goto LAB_00215f3c;" goto statement_identifier ;) })) }) (else_clause "else {\n          pRVar2 = Input_section::relobj(this_02);\nLAB_00215f3c:\n          uVar17 = Input_section::shndx(this_02);\n          pcVar5 = *(char **)(pcVar15 + 8);\n          pcVar11 = pcVar15 + 4;\n          if (*(char **)(pcVar15 + 8) != (char *)0x0) {\n            do {\n              if ((*(Relobj **)(pcVar5 + 0x10) < pRVar2) ||\n                 ((pRVar2 == *(Relobj **)(pcVar5 + 0x10) && (*(uint *)(pcVar5 + 0x14) < uVar17)))) {\n                pcVar7 = *(char **)(pcVar5 + 0xc);\n              }\n              else {\n                pcVar7 = *(char **)(pcVar5 + 8);\n                pcVar11 = pcVar5;\n              }\n              pcVar5 = pcVar7;\n            } while (pcVar7 != (char *)0x0);\n            if ((((pcVar15 + 4 != pcVar11) && (*(Relobj **)(pcVar11 + 0x10) <= pRVar2)) &&\n                ((pRVar2 != *(Relobj **)(pcVar11 + 0x10) ||\n                 (uVar17 = (uint)(uVar17 < *(uint *)(pcVar11 + 0x14)), uVar17 == 0)))) &&\n               (uVar17 = *(uint *)(pcVar11 + 0x18), uVar17 != 0)) {\n              pIVar13 = (Input_section *)this_00[2].input_section_.p2align_;\n              this_02->section_order_index_ = uVar17;\n              uVar17 = *(uint *)((int)&this_00[2].section_name_.field_2 + 4) & 0xffbfffff | 0x400000\n              ;\n              *(uint *)((int)&this_00[2].section_name_.field_2 + 4) = uVar17;\n              goto LAB_00215fdc;\n            }\n          }\n          pIVar13 = (Input_section *)this_00[2].input_section_.p2align_;\n        }" else (compound_statement "{\n          pRVar2 = Input_section::relobj(this_02);\nLAB_00215f3c:\n          uVar17 = Input_section::shndx(this_02);\n          pcVar5 = *(char **)(pcVar15 + 8);\n          pcVar11 = pcVar15 + 4;\n          if (*(char **)(pcVar15 + 8) != (char *)0x0) {\n            do {\n              if ((*(Relobj **)(pcVar5 + 0x10) < pRVar2) ||\n                 ((pRVar2 == *(Relobj **)(pcVar5 + 0x10) && (*(uint *)(pcVar5 + 0x14) < uVar17)))) {\n                pcVar7 = *(char **)(pcVar5 + 0xc);\n              }\n              else {\n                pcVar7 = *(char **)(pcVar5 + 8);\n                pcVar11 = pcVar5;\n              }\n              pcVar5 = pcVar7;\n            } while (pcVar7 != (char *)0x0);\n            if ((((pcVar15 + 4 != pcVar11) && (*(Relobj **)(pcVar11 + 0x10) <= pRVar2)) &&\n                ((pRVar2 != *(Relobj **)(pcVar11 + 0x10) ||\n                 (uVar17 = (uint)(uVar17 < *(uint *)(pcVar11 + 0x14)), uVar17 == 0)))) &&\n               (uVar17 = *(uint *)(pcVar11 + 0x18), uVar17 != 0)) {\n              pIVar13 = (Input_section *)this_00[2].input_section_.p2align_;\n              this_02->section_order_index_ = uVar17;\n              uVar17 = *(uint *)((int)&this_00[2].section_name_.field_2 + 4) & 0xffbfffff | 0x400000\n              ;\n              *(uint *)((int)&this_00[2].section_name_.field_2 + 4) = uVar17;\n              goto LAB_00215fdc;\n            }\n          }\n          pIVar13 = (Input_section *)this_00[2].input_section_.p2align_;\n        }" { (ERROR "pRVar2 = Input_section::" (assignment_expression "pRVar2 = Input_section" identifier = identifier) : :) (expression_statement "relobj(this_02);" (call_expression "relobj(this_02)" identifier (argument_list "(this_02)" ( identifier ))) ;) (labeled_statement "LAB_00215f3c:\n          uVar17 = Input_section::shndx(this_02);" statement_identifier : (ERROR "uVar17 = Input_section::" (assignment_expression "uVar17 = Input_section" identifier = identifier) : :) (expression_statement "shndx(this_02);" (call_expression "shndx(this_02)" identifier (argument_list "(this_02)" ( identifier ))) ;)) (expression_statement "pcVar5 = *(char **)(pcVar15 + 8);" (assignment_expression "pcVar5 = *(char **)(pcVar15 + 8)" identifier = (pointer_expression "*(char **)(pcVar15 + 8)" * (cast_expression "(char **)(pcVar15 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 8)" ( (binary_expression "pcVar15 + 8" identifier + number_literal) ))))) ;) (expression_statement "pcVar11 = pcVar15 + 4;" (assignment_expression "pcVar11 = pcVar15 + 4" identifier = (binary_expression "pcVar15 + 4" identifier + number_literal)) ;) (if_statement "if (*(char **)(pcVar15 + 8) != (char *)0x0) {\n            do {\n              if ((*(Relobj **)(pcVar5 + 0x10) < pRVar2) ||\n                 ((pRVar2 == *(Relobj **)(pcVar5 + 0x10) && (*(uint *)(pcVar5 + 0x14) < uVar17)))) {\n                pcVar7 = *(char **)(pcVar5 + 0xc);\n              }\n              else {\n                pcVar7 = *(char **)(pcVar5 + 8);\n                pcVar11 = pcVar5;\n              }\n              pcVar5 = pcVar7;\n            } while (pcVar7 != (char *)0x0);\n            if ((((pcVar15 + 4 != pcVar11) && (*(Relobj **)(pcVar11 + 0x10) <= pRVar2)) &&\n                ((pRVar2 != *(Relobj **)(pcVar11 + 0x10) ||\n                 (uVar17 = (uint)(uVar17 < *(uint *)(pcVar11 + 0x14)), uVar17 == 0)))) &&\n               (uVar17 = *(uint *)(pcVar11 + 0x18), uVar17 != 0)) {\n              pIVar13 = (Input_section *)this_00[2].input_section_.p2align_;\n              this_02->section_order_index_ = uVar17;\n              uVar17 = *(uint *)((int)&this_00[2].section_name_.field_2 + 4) & 0xffbfffff | 0x400000\n              ;\n              *(uint *)((int)&this_00[2].section_name_.field_2 + 4) = uVar17;\n              goto LAB_00215fdc;\n            }\n          }" if (parenthesized_expression "(*(char **)(pcVar15 + 8) != (char *)0x0)" ( (binary_expression "*(char **)(pcVar15 + 8) != (char *)0x0" (pointer_expression "*(char **)(pcVar15 + 8)" * (cast_expression "(char **)(pcVar15 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 8)" ( (binary_expression "pcVar15 + 8" identifier + number_literal) )))) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            do {\n              if ((*(Relobj **)(pcVar5 + 0x10) < pRVar2) ||\n                 ((pRVar2 == *(Relobj **)(pcVar5 + 0x10) && (*(uint *)(pcVar5 + 0x14) < uVar17)))) {\n                pcVar7 = *(char **)(pcVar5 + 0xc);\n              }\n              else {\n                pcVar7 = *(char **)(pcVar5 + 8);\n                pcVar11 = pcVar5;\n              }\n              pcVar5 = pcVar7;\n            } while (pcVar7 != (char *)0x0);\n            if ((((pcVar15 + 4 != pcVar11) && (*(Relobj **)(pcVar11 + 0x10) <= pRVar2)) &&\n                ((pRVar2 != *(Relobj **)(pcVar11 + 0x10) ||\n                 (uVar17 = (uint)(uVar17 < *(uint *)(pcVar11 + 0x14)), uVar17 == 0)))) &&\n               (uVar17 = *(uint *)(pcVar11 + 0x18), uVar17 != 0)) {\n              pIVar13 = (Input_section *)this_00[2].input_section_.p2align_;\n              this_02->section_order_index_ = uVar17;\n              uVar17 = *(uint *)((int)&this_00[2].section_name_.field_2 + 4) & 0xffbfffff | 0x400000\n              ;\n              *(uint *)((int)&this_00[2].section_name_.field_2 + 4) = uVar17;\n              goto LAB_00215fdc;\n            }\n          }" { (do_statement "do {\n              if ((*(Relobj **)(pcVar5 + 0x10) < pRVar2) ||\n                 ((pRVar2 == *(Relobj **)(pcVar5 + 0x10) && (*(uint *)(pcVar5 + 0x14) < uVar17)))) {\n                pcVar7 = *(char **)(pcVar5 + 0xc);\n              }\n              else {\n                pcVar7 = *(char **)(pcVar5 + 8);\n                pcVar11 = pcVar5;\n              }\n              pcVar5 = pcVar7;\n            } while (pcVar7 != (char *)0x0);" do (compound_statement "{\n              if ((*(Relobj **)(pcVar5 + 0x10) < pRVar2) ||\n                 ((pRVar2 == *(Relobj **)(pcVar5 + 0x10) && (*(uint *)(pcVar5 + 0x14) < uVar17)))) {\n                pcVar7 = *(char **)(pcVar5 + 0xc);\n              }\n              else {\n                pcVar7 = *(char **)(pcVar5 + 8);\n                pcVar11 = pcVar5;\n              }\n              pcVar5 = pcVar7;\n            }" { (if_statement "if ((*(Relobj **)(pcVar5 + 0x10) < pRVar2) ||\n                 ((pRVar2 == *(Relobj **)(pcVar5 + 0x10) && (*(uint *)(pcVar5 + 0x14) < uVar17)))) {\n                pcVar7 = *(char **)(pcVar5 + 0xc);\n              }\n              else {\n                pcVar7 = *(char **)(pcVar5 + 8);\n                pcVar11 = pcVar5;\n              }" if (parenthesized_expression "((*(Relobj **)(pcVar5 + 0x10) < pRVar2) ||\n                 ((pRVar2 == *(Relobj **)(pcVar5 + 0x10) && (*(uint *)(pcVar5 + 0x14) < uVar17))))" ( (binary_expression "(*(Relobj **)(pcVar5 + 0x10) < pRVar2) ||\n                 ((pRVar2 == *(Relobj **)(pcVar5 + 0x10) && (*(uint *)(pcVar5 + 0x14) < uVar17)))" (parenthesized_expression "(*(Relobj **)(pcVar5 + 0x10) < pRVar2)" ( (binary_expression "*(Relobj **)(pcVar5 + 0x10) < pRVar2" (pointer_expression "*(Relobj **)(pcVar5 + 0x10)" * (cast_expression "(Relobj **)(pcVar5 + 0x10)" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0x10)" ( (binary_expression "pcVar5 + 0x10" identifier + number_literal) )))) < identifier) )) || (parenthesized_expression "((pRVar2 == *(Relobj **)(pcVar5 + 0x10) && (*(uint *)(pcVar5 + 0x14) < uVar17)))" ( (parenthesized_expression "(pRVar2 == *(Relobj **)(pcVar5 + 0x10) && (*(uint *)(pcVar5 + 0x14) < uVar17))" ( (binary_expression "pRVar2 == *(Relobj **)(pcVar5 + 0x10) && (*(uint *)(pcVar5 + 0x14) < uVar17)" (binary_expression "pRVar2 == *(Relobj **)(pcVar5 + 0x10)" identifier == (pointer_expression "*(Relobj **)(pcVar5 + 0x10)" * (cast_expression "(Relobj **)(pcVar5 + 0x10)" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0x10)" ( (binary_expression "pcVar5 + 0x10" identifier + number_literal) ))))) && (parenthesized_expression "(*(uint *)(pcVar5 + 0x14) < uVar17)" ( (binary_expression "*(uint *)(pcVar5 + 0x14) < uVar17" (pointer_expression "*(uint *)(pcVar5 + 0x14)" * (cast_expression "(uint *)(pcVar5 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar5 + 0x14)" ( (binary_expression "pcVar5 + 0x14" identifier + number_literal) )))) < identifier) ))) )) ))) )) (compound_statement "{\n                pcVar7 = *(char **)(pcVar5 + 0xc);\n              }" { (expression_statement "pcVar7 = *(char **)(pcVar5 + 0xc);" (assignment_expression "pcVar7 = *(char **)(pcVar5 + 0xc)" identifier = (pointer_expression "*(char **)(pcVar5 + 0xc)" * (cast_expression "(char **)(pcVar5 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 0xc)" ( (binary_expression "pcVar5 + 0xc" identifier + number_literal) ))))) ;) }) (else_clause "else {\n                pcVar7 = *(char **)(pcVar5 + 8);\n                pcVar11 = pcVar5;\n              }" else (compound_statement "{\n                pcVar7 = *(char **)(pcVar5 + 8);\n                pcVar11 = pcVar5;\n              }" { (expression_statement "pcVar7 = *(char **)(pcVar5 + 8);" (assignment_expression "pcVar7 = *(char **)(pcVar5 + 8)" identifier = (pointer_expression "*(char **)(pcVar5 + 8)" * (cast_expression "(char **)(pcVar5 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar5 + 8)" ( (binary_expression "pcVar5 + 8" identifier + number_literal) ))))) ;) (expression_statement "pcVar11 = pcVar5;" (assignment_expression "pcVar11 = pcVar5" identifier = identifier) ;) }))) (expression_statement "pcVar5 = pcVar7;" (assignment_expression "pcVar5 = pcVar7" identifier = identifier) ;) }) while (parenthesized_expression "(pcVar7 != (char *)0x0)" ( (binary_expression "pcVar7 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (if_statement "if ((((pcVar15 + 4 != pcVar11) && (*(Relobj **)(pcVar11 + 0x10) <= pRVar2)) &&\n                ((pRVar2 != *(Relobj **)(pcVar11 + 0x10) ||\n                 (uVar17 = (uint)(uVar17 < *(uint *)(pcVar11 + 0x14)), uVar17 == 0)))) &&\n               (uVar17 = *(uint *)(pcVar11 + 0x18), uVar17 != 0)) {\n              pIVar13 = (Input_section *)this_00[2].input_section_.p2align_;\n              this_02->section_order_index_ = uVar17;\n              uVar17 = *(uint *)((int)&this_00[2].section_name_.field_2 + 4) & 0xffbfffff | 0x400000\n              ;\n              *(uint *)((int)&this_00[2].section_name_.field_2 + 4) = uVar17;\n              goto LAB_00215fdc;\n            }" if (parenthesized_expression "((((pcVar15 + 4 != pcVar11) && (*(Relobj **)(pcVar11 + 0x10) <= pRVar2)) &&\n                ((pRVar2 != *(Relobj **)(pcVar11 + 0x10) ||\n                 (uVar17 = (uint)(uVar17 < *(uint *)(pcVar11 + 0x14)), uVar17 == 0)))) &&\n               (uVar17 = *(uint *)(pcVar11 + 0x18), uVar17 != 0))" ( (binary_expression "(((pcVar15 + 4 != pcVar11) && (*(Relobj **)(pcVar11 + 0x10) <= pRVar2)) &&\n                ((pRVar2 != *(Relobj **)(pcVar11 + 0x10) ||\n                 (uVar17 = (uint)(uVar17 < *(uint *)(pcVar11 + 0x14)), uVar17 == 0)))) &&\n               (uVar17 = *(uint *)(pcVar11 + 0x18), uVar17 != 0)" (parenthesized_expression "(((pcVar15 + 4 != pcVar11) && (*(Relobj **)(pcVar11 + 0x10) <= pRVar2)) &&\n                ((pRVar2 != *(Relobj **)(pcVar11 + 0x10) ||\n                 (uVar17 = (uint)(uVar17 < *(uint *)(pcVar11 + 0x14)), uVar17 == 0))))" ( (binary_expression "((pcVar15 + 4 != pcVar11) && (*(Relobj **)(pcVar11 + 0x10) <= pRVar2)) &&\n                ((pRVar2 != *(Relobj **)(pcVar11 + 0x10) ||\n                 (uVar17 = (uint)(uVar17 < *(uint *)(pcVar11 + 0x14)), uVar17 == 0)))" (parenthesized_expression "((pcVar15 + 4 != pcVar11) && (*(Relobj **)(pcVar11 + 0x10) <= pRVar2))" ( (binary_expression "(pcVar15 + 4 != pcVar11) && (*(Relobj **)(pcVar11 + 0x10) <= pRVar2)" (parenthesized_expression "(pcVar15 + 4 != pcVar11)" ( (binary_expression "pcVar15 + 4 != pcVar11" (binary_expression "pcVar15 + 4" identifier + number_literal) != identifier) )) && (parenthesized_expression "(*(Relobj **)(pcVar11 + 0x10) <= pRVar2)" ( (binary_expression "*(Relobj **)(pcVar11 + 0x10) <= pRVar2" (pointer_expression "*(Relobj **)(pcVar11 + 0x10)" * (cast_expression "(Relobj **)(pcVar11 + 0x10)" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x10)" ( (binary_expression "pcVar11 + 0x10" identifier + number_literal) )))) <= identifier) ))) )) && (parenthesized_expression "((pRVar2 != *(Relobj **)(pcVar11 + 0x10) ||\n                 (uVar17 = (uint)(uVar17 < *(uint *)(pcVar11 + 0x14)), uVar17 == 0)))" ( (parenthesized_expression "(pRVar2 != *(Relobj **)(pcVar11 + 0x10) ||\n                 (uVar17 = (uint)(uVar17 < *(uint *)(pcVar11 + 0x14)), uVar17 == 0))" ( (binary_expression "pRVar2 != *(Relobj **)(pcVar11 + 0x10) ||\n                 (uVar17 = (uint)(uVar17 < *(uint *)(pcVar11 + 0x14)), uVar17 == 0)" (binary_expression "pRVar2 != *(Relobj **)(pcVar11 + 0x10)" identifier != (pointer_expression "*(Relobj **)(pcVar11 + 0x10)" * (cast_expression "(Relobj **)(pcVar11 + 0x10)" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x10)" ( (binary_expression "pcVar11 + 0x10" identifier + number_literal) ))))) || (parenthesized_expression "(uVar17 = (uint)(uVar17 < *(uint *)(pcVar11 + 0x14)), uVar17 == 0)" ( (comma_expression "uVar17 = (uint)(uVar17 < *(uint *)(pcVar11 + 0x14)), uVar17 == 0" (assignment_expression "uVar17 = (uint)(uVar17 < *(uint *)(pcVar11 + 0x14))" identifier = (call_expression "(uint)(uVar17 < *(uint *)(pcVar11 + 0x14))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar17 < *(uint *)(pcVar11 + 0x14))" ( (binary_expression "uVar17 < *(uint *)(pcVar11 + 0x14)" identifier < (pointer_expression "*(uint *)(pcVar11 + 0x14)" * (cast_expression "(uint *)(pcVar11 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x14)" ( (binary_expression "pcVar11 + 0x14" identifier + number_literal) ))))) )))) , (binary_expression "uVar17 == 0" identifier == number_literal)) ))) )) ))) )) && (parenthesized_expression "(uVar17 = *(uint *)(pcVar11 + 0x18), uVar17 != 0)" ( (comma_expression "uVar17 = *(uint *)(pcVar11 + 0x18), uVar17 != 0" (assignment_expression "uVar17 = *(uint *)(pcVar11 + 0x18)" identifier = (pointer_expression "*(uint *)(pcVar11 + 0x18)" * (cast_expression "(uint *)(pcVar11 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x18)" ( (binary_expression "pcVar11 + 0x18" identifier + number_literal) ))))) , (binary_expression "uVar17 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n              pIVar13 = (Input_section *)this_00[2].input_section_.p2align_;\n              this_02->section_order_index_ = uVar17;\n              uVar17 = *(uint *)((int)&this_00[2].section_name_.field_2 + 4) & 0xffbfffff | 0x400000\n              ;\n              *(uint *)((int)&this_00[2].section_name_.field_2 + 4) = uVar17;\n              goto LAB_00215fdc;\n            }" { (expression_statement "pIVar13 = (Input_section *)this_00[2].input_section_.p2align_;" (assignment_expression "pIVar13 = (Input_section *)this_00[2].input_section_.p2align_" identifier = (cast_expression "(Input_section *)this_00[2].input_section_.p2align_" ( (type_descriptor "Input_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "this_00[2].input_section_.p2align_" (field_expression "this_00[2].input_section_" (subscript_expression "this_00[2]" identifier [ number_literal ]) . field_identifier) . field_identifier))) ;) (expression_statement "this_02->section_order_index_ = uVar17;" (assignment_expression "this_02->section_order_index_ = uVar17" (field_expression "this_02->section_order_index_" identifier -> field_identifier) = identifier) ;) (expression_statement "uVar17 = *(uint *)((int)&this_00[2].section_name_.field_2 + 4) & 0xffbfffff | 0x400000\n              ;" (assignment_expression "uVar17 = *(uint *)((int)&this_00[2].section_name_.field_2 + 4) & 0xffbfffff | 0x400000" identifier = (binary_expression "*(uint *)((int)&this_00[2].section_name_.field_2 + 4) & 0xffbfffff | 0x400000" (binary_expression "*(uint *)((int)&this_00[2].section_name_.field_2 + 4) & 0xffbfffff" (pointer_expression "*(uint *)((int)&this_00[2].section_name_.field_2 + 4)" * (cast_expression "(uint *)((int)&this_00[2].section_name_.field_2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&this_00[2].section_name_.field_2 + 4)" ( (binary_expression "(int)&this_00[2].section_name_.field_2 + 4" (cast_expression "(int)&this_00[2].section_name_.field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&this_00[2].section_name_.field_2" & (field_expression "this_00[2].section_name_.field_2" (field_expression "this_00[2].section_name_" (subscript_expression "this_00[2]" identifier [ number_literal ]) . field_identifier) . field_identifier))) + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "*(uint *)((int)&this_00[2].section_name_.field_2 + 4) = uVar17;" (assignment_expression "*(uint *)((int)&this_00[2].section_name_.field_2 + 4) = uVar17" (pointer_expression "*(uint *)((int)&this_00[2].section_name_.field_2 + 4)" * (cast_expression "(uint *)((int)&this_00[2].section_name_.field_2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&this_00[2].section_name_.field_2 + 4)" ( (binary_expression "(int)&this_00[2].section_name_.field_2 + 4" (cast_expression "(int)&this_00[2].section_name_.field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&this_00[2].section_name_.field_2" & (field_expression "this_00[2].section_name_.field_2" (field_expression "this_00[2].section_name_" (subscript_expression "this_00[2]" identifier [ number_literal ]) . field_identifier) . field_identifier))) + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_00215fdc;" goto statement_identifier ;) })) })) (expression_statement "pIVar13 = (Input_section *)this_00[2].input_section_.p2align_;" (assignment_expression "pIVar13 = (Input_section *)this_00[2].input_section_.p2align_" identifier = (cast_expression "(Input_section *)this_00[2].input_section_.p2align_" ( (type_descriptor "Input_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "this_00[2].input_section_.p2align_" (field_expression "this_00[2].input_section_" (subscript_expression "this_00[2]" identifier [ number_literal ]) . field_identifier) . field_identifier))) ;) }))) (labeled_statement "LAB_00215fdc:\n        this_02 = this_02 + 1;" statement_identifier : (expression_statement "this_02 = this_02 + 1;" (assignment_expression "this_02 = this_02 + 1" identifier = (binary_expression "this_02 + 1" identifier + number_literal)) ;)) (if_statement "if (pIVar13 == this_02) {\n          return (bool)(char)uVar17;\n        }" if (parenthesized_expression "(pIVar13 == this_02)" ( (binary_expression "pIVar13 == this_02" identifier == identifier) )) (compound_statement "{\n          return (bool)(char)uVar17;\n        }" { (return_statement "return (bool)(char)uVar17;" return (cast_expression "(bool)(char)uVar17" ( (type_descriptor "bool" primitive_type) ) (cast_expression "(char)uVar17" ( (type_descriptor "char" primitive_type) ) identifier)) ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })) }) (else_clause "else {\n    uVar17 = *(uint *)(pcVar27 + 0x2ac1e4);\n    if (iVar4 != -1) {\n      uVar28 = *(uint *)(iVar14 + 0x1c);\n      iVar24 = (**(code **)(pcVar27 + 0x2b0254))(uVar17 + 0x35c0,uVar28,7);\n      if (iVar24 == 0) goto LAB_00215ae8;\n      iVar24 = (**(code **)(pcVar27 + 0x2b0254))(*(int *)(pcVar27 + 0x2ac1e4) + 0x35c8,uVar28,7);\n      if (iVar24 == 0) goto LAB_00215ae8;\n      iVar24 = (**(code **)(pcVar27 + 0x2b0254))(*(int *)(pcVar27 + 0x2ac1e4) + 0x4150,uVar28,0xc);\n      if ((iVar24 != 0) &&\n         (iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                             (*(int *)(pcVar27 + 0x2ac1e4) + 0x4160,uVar28,0xc), iVar24 != 0))\n      goto LAB_00215994;\n      uVar28 = (**(code **)(pcVar27 + 0x2b0334))(uVar28 + 0xc,apcStack_98,10);\n      if (*apcStack_98[0] == '\0') goto LAB_00215998;\n      goto LAB_00215994;\n    }\n  }" else (compound_statement "{\n    uVar17 = *(uint *)(pcVar27 + 0x2ac1e4);\n    if (iVar4 != -1) {\n      uVar28 = *(uint *)(iVar14 + 0x1c);\n      iVar24 = (**(code **)(pcVar27 + 0x2b0254))(uVar17 + 0x35c0,uVar28,7);\n      if (iVar24 == 0) goto LAB_00215ae8;\n      iVar24 = (**(code **)(pcVar27 + 0x2b0254))(*(int *)(pcVar27 + 0x2ac1e4) + 0x35c8,uVar28,7);\n      if (iVar24 == 0) goto LAB_00215ae8;\n      iVar24 = (**(code **)(pcVar27 + 0x2b0254))(*(int *)(pcVar27 + 0x2ac1e4) + 0x4150,uVar28,0xc);\n      if ((iVar24 != 0) &&\n         (iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                             (*(int *)(pcVar27 + 0x2ac1e4) + 0x4160,uVar28,0xc), iVar24 != 0))\n      goto LAB_00215994;\n      uVar28 = (**(code **)(pcVar27 + 0x2b0334))(uVar28 + 0xc,apcStack_98,10);\n      if (*apcStack_98[0] == '\0') goto LAB_00215998;\n      goto LAB_00215994;\n    }\n  }" { (expression_statement "uVar17 = *(uint *)(pcVar27 + 0x2ac1e4);" (assignment_expression "uVar17 = *(uint *)(pcVar27 + 0x2ac1e4)" identifier = (pointer_expression "*(uint *)(pcVar27 + 0x2ac1e4)" * (cast_expression "(uint *)(pcVar27 + 0x2ac1e4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x2ac1e4)" ( (binary_expression "pcVar27 + 0x2ac1e4" identifier + number_literal) ))))) ;) (if_statement "if (iVar4 != -1) {\n      uVar28 = *(uint *)(iVar14 + 0x1c);\n      iVar24 = (**(code **)(pcVar27 + 0x2b0254))(uVar17 + 0x35c0,uVar28,7);\n      if (iVar24 == 0) goto LAB_00215ae8;\n      iVar24 = (**(code **)(pcVar27 + 0x2b0254))(*(int *)(pcVar27 + 0x2ac1e4) + 0x35c8,uVar28,7);\n      if (iVar24 == 0) goto LAB_00215ae8;\n      iVar24 = (**(code **)(pcVar27 + 0x2b0254))(*(int *)(pcVar27 + 0x2ac1e4) + 0x4150,uVar28,0xc);\n      if ((iVar24 != 0) &&\n         (iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                             (*(int *)(pcVar27 + 0x2ac1e4) + 0x4160,uVar28,0xc), iVar24 != 0))\n      goto LAB_00215994;\n      uVar28 = (**(code **)(pcVar27 + 0x2b0334))(uVar28 + 0xc,apcStack_98,10);\n      if (*apcStack_98[0] == '\0') goto LAB_00215998;\n      goto LAB_00215994;\n    }" if (parenthesized_expression "(iVar4 != -1)" ( (binary_expression "iVar4 != -1" identifier != number_literal) )) (compound_statement "{\n      uVar28 = *(uint *)(iVar14 + 0x1c);\n      iVar24 = (**(code **)(pcVar27 + 0x2b0254))(uVar17 + 0x35c0,uVar28,7);\n      if (iVar24 == 0) goto LAB_00215ae8;\n      iVar24 = (**(code **)(pcVar27 + 0x2b0254))(*(int *)(pcVar27 + 0x2ac1e4) + 0x35c8,uVar28,7);\n      if (iVar24 == 0) goto LAB_00215ae8;\n      iVar24 = (**(code **)(pcVar27 + 0x2b0254))(*(int *)(pcVar27 + 0x2ac1e4) + 0x4150,uVar28,0xc);\n      if ((iVar24 != 0) &&\n         (iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                             (*(int *)(pcVar27 + 0x2ac1e4) + 0x4160,uVar28,0xc), iVar24 != 0))\n      goto LAB_00215994;\n      uVar28 = (**(code **)(pcVar27 + 0x2b0334))(uVar28 + 0xc,apcStack_98,10);\n      if (*apcStack_98[0] == '\0') goto LAB_00215998;\n      goto LAB_00215994;\n    }" { (expression_statement "uVar28 = *(uint *)(iVar14 + 0x1c);" (assignment_expression "uVar28 = *(uint *)(iVar14 + 0x1c)" identifier = (pointer_expression "*(uint *)(iVar14 + 0x1c)" * (cast_expression "(uint *)(iVar14 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x1c)" ( (binary_expression "iVar14 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "iVar24 = (**(code **)(pcVar27 + 0x2b0254))(uVar17 + 0x35c0,uVar28,7);" (assignment_expression "iVar24 = (**(code **)(pcVar27 + 0x2b0254))(uVar17 + 0x35c0,uVar28,7)" identifier = (call_expression "(**(code **)(pcVar27 + 0x2b0254))(uVar17 + 0x35c0,uVar28,7)" (parenthesized_expression "(**(code **)(pcVar27 + 0x2b0254))" ( (pointer_expression "**(code **)(pcVar27 + 0x2b0254)" * (pointer_expression "*(code **)(pcVar27 + 0x2b0254)" * (cast_expression "(code **)(pcVar27 + 0x2b0254)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x2b0254)" ( (binary_expression "pcVar27 + 0x2b0254" identifier + number_literal) ))))) )) (argument_list "(uVar17 + 0x35c0,uVar28,7)" ( (binary_expression "uVar17 + 0x35c0" identifier + number_literal) , identifier , number_literal )))) ;) (if_statement "if (iVar24 == 0) goto LAB_00215ae8;" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00215ae8;" goto statement_identifier ;)) (expression_statement "iVar24 = (**(code **)(pcVar27 + 0x2b0254))(*(int *)(pcVar27 + 0x2ac1e4) + 0x35c8,uVar28,7);" (assignment_expression "iVar24 = (**(code **)(pcVar27 + 0x2b0254))(*(int *)(pcVar27 + 0x2ac1e4) + 0x35c8,uVar28,7)" identifier = (call_expression "(**(code **)(pcVar27 + 0x2b0254))(*(int *)(pcVar27 + 0x2ac1e4) + 0x35c8,uVar28,7)" (parenthesized_expression "(**(code **)(pcVar27 + 0x2b0254))" ( (pointer_expression "**(code **)(pcVar27 + 0x2b0254)" * (pointer_expression "*(code **)(pcVar27 + 0x2b0254)" * (cast_expression "(code **)(pcVar27 + 0x2b0254)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x2b0254)" ( (binary_expression "pcVar27 + 0x2b0254" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar27 + 0x2ac1e4) + 0x35c8,uVar28,7)" ( (binary_expression "*(int *)(pcVar27 + 0x2ac1e4) + 0x35c8" (pointer_expression "*(int *)(pcVar27 + 0x2ac1e4)" * (cast_expression "(int *)(pcVar27 + 0x2ac1e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x2ac1e4)" ( (binary_expression "pcVar27 + 0x2ac1e4" identifier + number_literal) )))) + number_literal) , identifier , number_literal )))) ;) (if_statement "if (iVar24 == 0) goto LAB_00215ae8;" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00215ae8;" goto statement_identifier ;)) (expression_statement "iVar24 = (**(code **)(pcVar27 + 0x2b0254))(*(int *)(pcVar27 + 0x2ac1e4) + 0x4150,uVar28,0xc);" (assignment_expression "iVar24 = (**(code **)(pcVar27 + 0x2b0254))(*(int *)(pcVar27 + 0x2ac1e4) + 0x4150,uVar28,0xc)" identifier = (call_expression "(**(code **)(pcVar27 + 0x2b0254))(*(int *)(pcVar27 + 0x2ac1e4) + 0x4150,uVar28,0xc)" (parenthesized_expression "(**(code **)(pcVar27 + 0x2b0254))" ( (pointer_expression "**(code **)(pcVar27 + 0x2b0254)" * (pointer_expression "*(code **)(pcVar27 + 0x2b0254)" * (cast_expression "(code **)(pcVar27 + 0x2b0254)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x2b0254)" ( (binary_expression "pcVar27 + 0x2b0254" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar27 + 0x2ac1e4) + 0x4150,uVar28,0xc)" ( (binary_expression "*(int *)(pcVar27 + 0x2ac1e4) + 0x4150" (pointer_expression "*(int *)(pcVar27 + 0x2ac1e4)" * (cast_expression "(int *)(pcVar27 + 0x2ac1e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x2ac1e4)" ( (binary_expression "pcVar27 + 0x2ac1e4" identifier + number_literal) )))) + number_literal) , identifier , number_literal )))) ;) (if_statement "if ((iVar24 != 0) &&\n         (iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                             (*(int *)(pcVar27 + 0x2ac1e4) + 0x4160,uVar28,0xc), iVar24 != 0))\n      goto LAB_00215994;" if (parenthesized_expression "((iVar24 != 0) &&\n         (iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                             (*(int *)(pcVar27 + 0x2ac1e4) + 0x4160,uVar28,0xc), iVar24 != 0))" ( (binary_expression "(iVar24 != 0) &&\n         (iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                             (*(int *)(pcVar27 + 0x2ac1e4) + 0x4160,uVar28,0xc), iVar24 != 0)" (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                             (*(int *)(pcVar27 + 0x2ac1e4) + 0x4160,uVar28,0xc), iVar24 != 0)" ( (comma_expression "iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                             (*(int *)(pcVar27 + 0x2ac1e4) + 0x4160,uVar28,0xc), iVar24 != 0" (assignment_expression "iVar24 = (**(code **)(pcVar27 + 0x2b0254))\n                             (*(int *)(pcVar27 + 0x2ac1e4) + 0x4160,uVar28,0xc)" identifier = (call_expression "(**(code **)(pcVar27 + 0x2b0254))\n                             (*(int *)(pcVar27 + 0x2ac1e4) + 0x4160,uVar28,0xc)" (parenthesized_expression "(**(code **)(pcVar27 + 0x2b0254))" ( (pointer_expression "**(code **)(pcVar27 + 0x2b0254)" * (pointer_expression "*(code **)(pcVar27 + 0x2b0254)" * (cast_expression "(code **)(pcVar27 + 0x2b0254)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x2b0254)" ( (binary_expression "pcVar27 + 0x2b0254" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar27 + 0x2ac1e4) + 0x4160,uVar28,0xc)" ( (binary_expression "*(int *)(pcVar27 + 0x2ac1e4) + 0x4160" (pointer_expression "*(int *)(pcVar27 + 0x2ac1e4)" * (cast_expression "(int *)(pcVar27 + 0x2ac1e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x2ac1e4)" ( (binary_expression "pcVar27 + 0x2ac1e4" identifier + number_literal) )))) + number_literal) , identifier , number_literal )))) , (binary_expression "iVar24 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_00215994;" goto statement_identifier ;)) (expression_statement "uVar28 = (**(code **)(pcVar27 + 0x2b0334))(uVar28 + 0xc,apcStack_98,10);" (assignment_expression "uVar28 = (**(code **)(pcVar27 + 0x2b0334))(uVar28 + 0xc,apcStack_98,10)" identifier = (call_expression "(**(code **)(pcVar27 + 0x2b0334))(uVar28 + 0xc,apcStack_98,10)" (parenthesized_expression "(**(code **)(pcVar27 + 0x2b0334))" ( (pointer_expression "**(code **)(pcVar27 + 0x2b0334)" * (pointer_expression "*(code **)(pcVar27 + 0x2b0334)" * (cast_expression "(code **)(pcVar27 + 0x2b0334)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x2b0334)" ( (binary_expression "pcVar27 + 0x2b0334" identifier + number_literal) ))))) )) (argument_list "(uVar28 + 0xc,apcStack_98,10)" ( (binary_expression "uVar28 + 0xc" identifier + number_literal) , identifier , number_literal )))) ;) (if_statement "if (*apcStack_98[0] == '\0') goto LAB_00215998;" if (parenthesized_expression "(*apcStack_98[0] == '\0')" ( (binary_expression "*apcStack_98[0] == '\0'" (pointer_expression "*apcStack_98[0]" * (subscript_expression "apcStack_98[0]" identifier [ number_literal ])) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00215998;" goto statement_identifier ;)) (goto_statement "goto LAB_00215994;" goto statement_identifier ;) })) }))) (return_statement "return true;" return true ;) })))
(translation_unit "int __thiscall\ngold::Output_section::find_starting_output_address\n          (Output_section *this,Relobj *param_1,uint param_2,ulonglong *param_3)\n\n{\n  bool bVar1;\n  longlong lVar2;\n  undefined *puVar3;\n  int *piVar4;\n  uint uVar5;\n  int *piVar6;\n  int *piVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  int *piVar11;\n  int iVar12;\n  uint uVar13;\n  ulonglong uVar14;\n  \n  piVar4 = (int *)(*(code *)PTR_find_merge_section_004c3f38)(param_1,param_2);\n  puVar3 = PTR_do_addralign_004c34e4;\n  if (piVar4 != (int *)0x0) {\n    iVar12 = *(int *)(this + 0x20);\n    if (-(iVar12 >> 0x1f) == 0) {\n      iVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n                          PTR_s_in_a_linker_script_004c191c + -0x2a40);\n      return iVar12;\n    }\n    uVar10 = *(uint *)(this + 0x84) + *(int *)(this + 0xc);\n    piVar11 = *(int **)(this + 0x70);\n    piVar6 = *(int **)(this + 0x74);\n    uVar13 = (uint)(uVar10 < *(uint *)(this + 0x84)) + *(int *)(this + 0x80) + *(int *)(this + 8);\n    if (piVar6 != piVar11) {\n      do {\n        while( true ) {\n          uVar9 = *piVar11 + 4;\n          if (piVar11[1] == 0) break;\n          uVar8 = piVar11[1] - 1;\n          uVar5 = 1 << (uVar8 & 0x1f);\n          if ((uVar8 & 0x20) == 0) {\n            uVar14 = (ulonglong)uVar5;\n          }\n          else {\n            uVar14 = (ulonglong)uVar5 << 0x20;\n          }\nLAB_0021540c:\n          bVar1 = uVar9 < 4;\n          if (uVar14 == 0) {\n            if (bVar1) {\nLAB_002153a4:\n              piVar7 = (int *)piVar11[4];\n              uVar9 = uVar10;\n              goto LAB_002153a8;\n            }\n          }\n          else {\nLAB_00215368:\n            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);\n            uVar10 = (uint)lVar2 & -(int)uVar14;\n            uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);\n            if (bVar1) goto LAB_002153a4;\n          }\n          piVar6 = *(int **)(this + 0x74);\n          uVar9 = uVar10;\nLAB_00215424:\n          piVar7 = piVar11 + 6;\n          uVar10 = uVar9 + piVar11[3];\n          uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar11[2];\n          piVar11 = piVar7;\n          if (piVar6 == piVar7) {\n            return 0;\n          }\n        }\n        bVar1 = uVar9 < 4;\n        uVar9 = uVar10;\n        if (!bVar1) goto LAB_00215424;\n        piVar7 = (int *)piVar11[4];\n        if (*(code **)(*piVar7 + 0xc) != (code *)puVar3) {\n          uVar14 = (**(code **)(*piVar7 + 0xc))();\n          uVar9 = *piVar11 + 4;\n          goto LAB_0021540c;\n        }\n        uVar14 = *(ulonglong *)(piVar7 + 10);\n        if (piVar7[10] != 0 || piVar7[0xb] != 0) goto LAB_00215368;\nLAB_002153a8:\n        if (piVar4 == piVar7) {\n          *(uint *)param_3 = uVar13;\n          *(uint *)((int)param_3 + 4) = uVar9;\n          return -(iVar12 >> 0x1f);\n        }\n        piVar11 = piVar11 + 6;\n        if (-1 < piVar7[8] << 1) {\n                    \n          FUN_00213098();\n        }\n        piVar6 = *(int **)(this + 0x74);\n        uVar10 = uVar9 + piVar7[5];\n        uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar7[4];\n      } while (piVar6 != piVar11);\n    }\n  }\n  return 0;\n}\n\n" (function_definition "int __thiscall\ngold::Output_section::find_starting_output_address\n          (Output_section *this,Relobj *param_1,uint param_2,ulonglong *param_3)\n\n{\n  bool bVar1;\n  longlong lVar2;\n  undefined *puVar3;\n  int *piVar4;\n  uint uVar5;\n  int *piVar6;\n  int *piVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  int *piVar11;\n  int iVar12;\n  uint uVar13;\n  ulonglong uVar14;\n  \n  piVar4 = (int *)(*(code *)PTR_find_merge_section_004c3f38)(param_1,param_2);\n  puVar3 = PTR_do_addralign_004c34e4;\n  if (piVar4 != (int *)0x0) {\n    iVar12 = *(int *)(this + 0x20);\n    if (-(iVar12 >> 0x1f) == 0) {\n      iVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n                          PTR_s_in_a_linker_script_004c191c + -0x2a40);\n      return iVar12;\n    }\n    uVar10 = *(uint *)(this + 0x84) + *(int *)(this + 0xc);\n    piVar11 = *(int **)(this + 0x70);\n    piVar6 = *(int **)(this + 0x74);\n    uVar13 = (uint)(uVar10 < *(uint *)(this + 0x84)) + *(int *)(this + 0x80) + *(int *)(this + 8);\n    if (piVar6 != piVar11) {\n      do {\n        while( true ) {\n          uVar9 = *piVar11 + 4;\n          if (piVar11[1] == 0) break;\n          uVar8 = piVar11[1] - 1;\n          uVar5 = 1 << (uVar8 & 0x1f);\n          if ((uVar8 & 0x20) == 0) {\n            uVar14 = (ulonglong)uVar5;\n          }\n          else {\n            uVar14 = (ulonglong)uVar5 << 0x20;\n          }\nLAB_0021540c:\n          bVar1 = uVar9 < 4;\n          if (uVar14 == 0) {\n            if (bVar1) {\nLAB_002153a4:\n              piVar7 = (int *)piVar11[4];\n              uVar9 = uVar10;\n              goto LAB_002153a8;\n            }\n          }\n          else {\nLAB_00215368:\n            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);\n            uVar10 = (uint)lVar2 & -(int)uVar14;\n            uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);\n            if (bVar1) goto LAB_002153a4;\n          }\n          piVar6 = *(int **)(this + 0x74);\n          uVar9 = uVar10;\nLAB_00215424:\n          piVar7 = piVar11 + 6;\n          uVar10 = uVar9 + piVar11[3];\n          uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar11[2];\n          piVar11 = piVar7;\n          if (piVar6 == piVar7) {\n            return 0;\n          }\n        }\n        bVar1 = uVar9 < 4;\n        uVar9 = uVar10;\n        if (!bVar1) goto LAB_00215424;\n        piVar7 = (int *)piVar11[4];\n        if (*(code **)(*piVar7 + 0xc) != (code *)puVar3) {\n          uVar14 = (**(code **)(*piVar7 + 0xc))();\n          uVar9 = *piVar11 + 4;\n          goto LAB_0021540c;\n        }\n        uVar14 = *(ulonglong *)(piVar7 + 10);\n        if (piVar7[10] != 0 || piVar7[0xb] != 0) goto LAB_00215368;\nLAB_002153a8:\n        if (piVar4 == piVar7) {\n          *(uint *)param_3 = uVar13;\n          *(uint *)((int)param_3 + 4) = uVar9;\n          return -(iVar12 >> 0x1f);\n        }\n        piVar11 = piVar11 + 6;\n        if (-1 < piVar7[8] << 1) {\n                    \n          FUN_00213098();\n        }\n        piVar6 = *(int **)(this + 0x74);\n        uVar10 = uVar9 + piVar7[5];\n        uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar7[4];\n      } while (piVar6 != piVar11);\n    }\n  }\n  return 0;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Output_section::" identifier : : identifier : :) (function_declarator "find_starting_output_address\n          (Output_section *this,Relobj *param_1,uint param_2,ulonglong *param_3)" identifier (parameter_list "(Output_section *this,Relobj *param_1,uint param_2,ulonglong *param_3)" ( (parameter_declaration "Output_section *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Relobj *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "ulonglong *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  longlong lVar2;\n  undefined *puVar3;\n  int *piVar4;\n  uint uVar5;\n  int *piVar6;\n  int *piVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  int *piVar11;\n  int iVar12;\n  uint uVar13;\n  ulonglong uVar14;\n  \n  piVar4 = (int *)(*(code *)PTR_find_merge_section_004c3f38)(param_1,param_2);\n  puVar3 = PTR_do_addralign_004c34e4;\n  if (piVar4 != (int *)0x0) {\n    iVar12 = *(int *)(this + 0x20);\n    if (-(iVar12 >> 0x1f) == 0) {\n      iVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n                          PTR_s_in_a_linker_script_004c191c + -0x2a40);\n      return iVar12;\n    }\n    uVar10 = *(uint *)(this + 0x84) + *(int *)(this + 0xc);\n    piVar11 = *(int **)(this + 0x70);\n    piVar6 = *(int **)(this + 0x74);\n    uVar13 = (uint)(uVar10 < *(uint *)(this + 0x84)) + *(int *)(this + 0x80) + *(int *)(this + 8);\n    if (piVar6 != piVar11) {\n      do {\n        while( true ) {\n          uVar9 = *piVar11 + 4;\n          if (piVar11[1] == 0) break;\n          uVar8 = piVar11[1] - 1;\n          uVar5 = 1 << (uVar8 & 0x1f);\n          if ((uVar8 & 0x20) == 0) {\n            uVar14 = (ulonglong)uVar5;\n          }\n          else {\n            uVar14 = (ulonglong)uVar5 << 0x20;\n          }\nLAB_0021540c:\n          bVar1 = uVar9 < 4;\n          if (uVar14 == 0) {\n            if (bVar1) {\nLAB_002153a4:\n              piVar7 = (int *)piVar11[4];\n              uVar9 = uVar10;\n              goto LAB_002153a8;\n            }\n          }\n          else {\nLAB_00215368:\n            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);\n            uVar10 = (uint)lVar2 & -(int)uVar14;\n            uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);\n            if (bVar1) goto LAB_002153a4;\n          }\n          piVar6 = *(int **)(this + 0x74);\n          uVar9 = uVar10;\nLAB_00215424:\n          piVar7 = piVar11 + 6;\n          uVar10 = uVar9 + piVar11[3];\n          uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar11[2];\n          piVar11 = piVar7;\n          if (piVar6 == piVar7) {\n            return 0;\n          }\n        }\n        bVar1 = uVar9 < 4;\n        uVar9 = uVar10;\n        if (!bVar1) goto LAB_00215424;\n        piVar7 = (int *)piVar11[4];\n        if (*(code **)(*piVar7 + 0xc) != (code *)puVar3) {\n          uVar14 = (**(code **)(*piVar7 + 0xc))();\n          uVar9 = *piVar11 + 4;\n          goto LAB_0021540c;\n        }\n        uVar14 = *(ulonglong *)(piVar7 + 10);\n        if (piVar7[10] != 0 || piVar7[0xb] != 0) goto LAB_00215368;\nLAB_002153a8:\n        if (piVar4 == piVar7) {\n          *(uint *)param_3 = uVar13;\n          *(uint *)((int)param_3 + 4) = uVar9;\n          return -(iVar12 >> 0x1f);\n        }\n        piVar11 = piVar11 + 6;\n        if (-1 < piVar7[8] << 1) {\n                    \n          FUN_00213098();\n        }\n        piVar6 = *(int **)(this + 0x74);\n        uVar10 = uVar9 + piVar7[5];\n        uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar7[4];\n      } while (piVar6 != piVar11);\n    }\n  }\n  return 0;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "longlong lVar2;" type_identifier identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "ulonglong uVar14;" type_identifier identifier ;) (expression_statement "piVar4 = (int *)(*(code *)PTR_find_merge_section_004c3f38)(param_1,param_2);" (assignment_expression "piVar4 = (int *)(*(code *)PTR_find_merge_section_004c3f38)(param_1,param_2)" identifier = (cast_expression "(int *)(*(code *)PTR_find_merge_section_004c3f38)(param_1,param_2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_find_merge_section_004c3f38)(param_1,param_2)" (parenthesized_expression "(*(code *)PTR_find_merge_section_004c3f38)" ( (pointer_expression "*(code *)PTR_find_merge_section_004c3f38" * (cast_expression "(code *)PTR_find_merge_section_004c3f38" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_2)" ( identifier , identifier ))))) ;) (expression_statement "puVar3 = PTR_do_addralign_004c34e4;" (assignment_expression "puVar3 = PTR_do_addralign_004c34e4" identifier = identifier) ;) (if_statement "if (piVar4 != (int *)0x0) {\n    iVar12 = *(int *)(this + 0x20);\n    if (-(iVar12 >> 0x1f) == 0) {\n      iVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n                          PTR_s_in_a_linker_script_004c191c + -0x2a40);\n      return iVar12;\n    }\n    uVar10 = *(uint *)(this + 0x84) + *(int *)(this + 0xc);\n    piVar11 = *(int **)(this + 0x70);\n    piVar6 = *(int **)(this + 0x74);\n    uVar13 = (uint)(uVar10 < *(uint *)(this + 0x84)) + *(int *)(this + 0x80) + *(int *)(this + 8);\n    if (piVar6 != piVar11) {\n      do {\n        while( true ) {\n          uVar9 = *piVar11 + 4;\n          if (piVar11[1] == 0) break;\n          uVar8 = piVar11[1] - 1;\n          uVar5 = 1 << (uVar8 & 0x1f);\n          if ((uVar8 & 0x20) == 0) {\n            uVar14 = (ulonglong)uVar5;\n          }\n          else {\n            uVar14 = (ulonglong)uVar5 << 0x20;\n          }\nLAB_0021540c:\n          bVar1 = uVar9 < 4;\n          if (uVar14 == 0) {\n            if (bVar1) {\nLAB_002153a4:\n              piVar7 = (int *)piVar11[4];\n              uVar9 = uVar10;\n              goto LAB_002153a8;\n            }\n          }\n          else {\nLAB_00215368:\n            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);\n            uVar10 = (uint)lVar2 & -(int)uVar14;\n            uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);\n            if (bVar1) goto LAB_002153a4;\n          }\n          piVar6 = *(int **)(this + 0x74);\n          uVar9 = uVar10;\nLAB_00215424:\n          piVar7 = piVar11 + 6;\n          uVar10 = uVar9 + piVar11[3];\n          uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar11[2];\n          piVar11 = piVar7;\n          if (piVar6 == piVar7) {\n            return 0;\n          }\n        }\n        bVar1 = uVar9 < 4;\n        uVar9 = uVar10;\n        if (!bVar1) goto LAB_00215424;\n        piVar7 = (int *)piVar11[4];\n        if (*(code **)(*piVar7 + 0xc) != (code *)puVar3) {\n          uVar14 = (**(code **)(*piVar7 + 0xc))();\n          uVar9 = *piVar11 + 4;\n          goto LAB_0021540c;\n        }\n        uVar14 = *(ulonglong *)(piVar7 + 10);\n        if (piVar7[10] != 0 || piVar7[0xb] != 0) goto LAB_00215368;\nLAB_002153a8:\n        if (piVar4 == piVar7) {\n          *(uint *)param_3 = uVar13;\n          *(uint *)((int)param_3 + 4) = uVar9;\n          return -(iVar12 >> 0x1f);\n        }\n        piVar11 = piVar11 + 6;\n        if (-1 < piVar7[8] << 1) {\n                    \n          FUN_00213098();\n        }\n        piVar6 = *(int **)(this + 0x74);\n        uVar10 = uVar9 + piVar7[5];\n        uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar7[4];\n      } while (piVar6 != piVar11);\n    }\n  }" if (parenthesized_expression "(piVar4 != (int *)0x0)" ( (binary_expression "piVar4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar12 = *(int *)(this + 0x20);\n    if (-(iVar12 >> 0x1f) == 0) {\n      iVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n                          PTR_s_in_a_linker_script_004c191c + -0x2a40);\n      return iVar12;\n    }\n    uVar10 = *(uint *)(this + 0x84) + *(int *)(this + 0xc);\n    piVar11 = *(int **)(this + 0x70);\n    piVar6 = *(int **)(this + 0x74);\n    uVar13 = (uint)(uVar10 < *(uint *)(this + 0x84)) + *(int *)(this + 0x80) + *(int *)(this + 8);\n    if (piVar6 != piVar11) {\n      do {\n        while( true ) {\n          uVar9 = *piVar11 + 4;\n          if (piVar11[1] == 0) break;\n          uVar8 = piVar11[1] - 1;\n          uVar5 = 1 << (uVar8 & 0x1f);\n          if ((uVar8 & 0x20) == 0) {\n            uVar14 = (ulonglong)uVar5;\n          }\n          else {\n            uVar14 = (ulonglong)uVar5 << 0x20;\n          }\nLAB_0021540c:\n          bVar1 = uVar9 < 4;\n          if (uVar14 == 0) {\n            if (bVar1) {\nLAB_002153a4:\n              piVar7 = (int *)piVar11[4];\n              uVar9 = uVar10;\n              goto LAB_002153a8;\n            }\n          }\n          else {\nLAB_00215368:\n            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);\n            uVar10 = (uint)lVar2 & -(int)uVar14;\n            uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);\n            if (bVar1) goto LAB_002153a4;\n          }\n          piVar6 = *(int **)(this + 0x74);\n          uVar9 = uVar10;\nLAB_00215424:\n          piVar7 = piVar11 + 6;\n          uVar10 = uVar9 + piVar11[3];\n          uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar11[2];\n          piVar11 = piVar7;\n          if (piVar6 == piVar7) {\n            return 0;\n          }\n        }\n        bVar1 = uVar9 < 4;\n        uVar9 = uVar10;\n        if (!bVar1) goto LAB_00215424;\n        piVar7 = (int *)piVar11[4];\n        if (*(code **)(*piVar7 + 0xc) != (code *)puVar3) {\n          uVar14 = (**(code **)(*piVar7 + 0xc))();\n          uVar9 = *piVar11 + 4;\n          goto LAB_0021540c;\n        }\n        uVar14 = *(ulonglong *)(piVar7 + 10);\n        if (piVar7[10] != 0 || piVar7[0xb] != 0) goto LAB_00215368;\nLAB_002153a8:\n        if (piVar4 == piVar7) {\n          *(uint *)param_3 = uVar13;\n          *(uint *)((int)param_3 + 4) = uVar9;\n          return -(iVar12 >> 0x1f);\n        }\n        piVar11 = piVar11 + 6;\n        if (-1 < piVar7[8] << 1) {\n                    \n          FUN_00213098();\n        }\n        piVar6 = *(int **)(this + 0x74);\n        uVar10 = uVar9 + piVar7[5];\n        uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar7[4];\n      } while (piVar6 != piVar11);\n    }\n  }" { (expression_statement "iVar12 = *(int *)(this + 0x20);" (assignment_expression "iVar12 = *(int *)(this + 0x20)" identifier = (pointer_expression "*(int *)(this + 0x20)" * (cast_expression "(int *)(this + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x20)" ( (binary_expression "this + 0x20" identifier + number_literal) ))))) ;) (if_statement "if (-(iVar12 >> 0x1f) == 0) {\n      iVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n                          PTR_s_in_a_linker_script_004c191c + -0x2a40);\n      return iVar12;\n    }" if (parenthesized_expression "(-(iVar12 >> 0x1f) == 0)" ( (binary_expression "-(iVar12 >> 0x1f) == 0" (unary_expression "-(iVar12 >> 0x1f)" - (parenthesized_expression "(iVar12 >> 0x1f)" ( (binary_expression "iVar12 >> 0x1f" identifier >> number_literal) ))) == number_literal) )) (compound_statement "{\n      iVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n                          PTR_s_in_a_linker_script_004c191c + -0x2a40);\n      return iVar12;\n    }" { (expression_statement "iVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n                          PTR_s_in_a_linker_script_004c191c + -0x2a40);" (assignment_expression "iVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n                          PTR_s_in_a_linker_script_004c191c + -0x2a40)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n                          PTR_s_in_a_linker_script_004c191c + -0x2a40)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n                          PTR_s_in_a_linker_script_004c191c + -0x2a40)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2a40" identifier + number_literal) )))) ;) (return_statement "return iVar12;" return identifier ;) })) (expression_statement "uVar10 = *(uint *)(this + 0x84) + *(int *)(this + 0xc);" (assignment_expression "uVar10 = *(uint *)(this + 0x84) + *(int *)(this + 0xc)" identifier = (binary_expression "*(uint *)(this + 0x84) + *(int *)(this + 0xc)" (pointer_expression "*(uint *)(this + 0x84)" * (cast_expression "(uint *)(this + 0x84)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x84)" ( (binary_expression "this + 0x84" identifier + number_literal) )))) + (pointer_expression "*(int *)(this + 0xc)" * (cast_expression "(int *)(this + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0xc)" ( (binary_expression "this + 0xc" identifier + number_literal) )))))) ;) (expression_statement "piVar11 = *(int **)(this + 0x70);" (assignment_expression "piVar11 = *(int **)(this + 0x70)" identifier = (pointer_expression "*(int **)(this + 0x70)" * (cast_expression "(int **)(this + 0x70)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x70)" ( (binary_expression "this + 0x70" identifier + number_literal) ))))) ;) (expression_statement "piVar6 = *(int **)(this + 0x74);" (assignment_expression "piVar6 = *(int **)(this + 0x74)" identifier = (pointer_expression "*(int **)(this + 0x74)" * (cast_expression "(int **)(this + 0x74)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x74)" ( (binary_expression "this + 0x74" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = (uint)(uVar10 < *(uint *)(this + 0x84)) + *(int *)(this + 0x80) + *(int *)(this + 8);" (assignment_expression "uVar13 = (uint)(uVar10 < *(uint *)(this + 0x84)) + *(int *)(this + 0x80) + *(int *)(this + 8)" identifier = (binary_expression "(uint)(uVar10 < *(uint *)(this + 0x84)) + *(int *)(this + 0x80) + *(int *)(this + 8)" (binary_expression "(uint)(uVar10 < *(uint *)(this + 0x84)) + *(int *)(this + 0x80)" (call_expression "(uint)(uVar10 < *(uint *)(this + 0x84))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar10 < *(uint *)(this + 0x84))" ( (binary_expression "uVar10 < *(uint *)(this + 0x84)" identifier < (pointer_expression "*(uint *)(this + 0x84)" * (cast_expression "(uint *)(this + 0x84)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x84)" ( (binary_expression "this + 0x84" identifier + number_literal) ))))) ))) + (pointer_expression "*(int *)(this + 0x80)" * (cast_expression "(int *)(this + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x80)" ( (binary_expression "this + 0x80" identifier + number_literal) ))))) + (pointer_expression "*(int *)(this + 8)" * (cast_expression "(int *)(this + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))))) ;) (if_statement "if (piVar6 != piVar11) {\n      do {\n        while( true ) {\n          uVar9 = *piVar11 + 4;\n          if (piVar11[1] == 0) break;\n          uVar8 = piVar11[1] - 1;\n          uVar5 = 1 << (uVar8 & 0x1f);\n          if ((uVar8 & 0x20) == 0) {\n            uVar14 = (ulonglong)uVar5;\n          }\n          else {\n            uVar14 = (ulonglong)uVar5 << 0x20;\n          }\nLAB_0021540c:\n          bVar1 = uVar9 < 4;\n          if (uVar14 == 0) {\n            if (bVar1) {\nLAB_002153a4:\n              piVar7 = (int *)piVar11[4];\n              uVar9 = uVar10;\n              goto LAB_002153a8;\n            }\n          }\n          else {\nLAB_00215368:\n            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);\n            uVar10 = (uint)lVar2 & -(int)uVar14;\n            uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);\n            if (bVar1) goto LAB_002153a4;\n          }\n          piVar6 = *(int **)(this + 0x74);\n          uVar9 = uVar10;\nLAB_00215424:\n          piVar7 = piVar11 + 6;\n          uVar10 = uVar9 + piVar11[3];\n          uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar11[2];\n          piVar11 = piVar7;\n          if (piVar6 == piVar7) {\n            return 0;\n          }\n        }\n        bVar1 = uVar9 < 4;\n        uVar9 = uVar10;\n        if (!bVar1) goto LAB_00215424;\n        piVar7 = (int *)piVar11[4];\n        if (*(code **)(*piVar7 + 0xc) != (code *)puVar3) {\n          uVar14 = (**(code **)(*piVar7 + 0xc))();\n          uVar9 = *piVar11 + 4;\n          goto LAB_0021540c;\n        }\n        uVar14 = *(ulonglong *)(piVar7 + 10);\n        if (piVar7[10] != 0 || piVar7[0xb] != 0) goto LAB_00215368;\nLAB_002153a8:\n        if (piVar4 == piVar7) {\n          *(uint *)param_3 = uVar13;\n          *(uint *)((int)param_3 + 4) = uVar9;\n          return -(iVar12 >> 0x1f);\n        }\n        piVar11 = piVar11 + 6;\n        if (-1 < piVar7[8] << 1) {\n                    \n          FUN_00213098();\n        }\n        piVar6 = *(int **)(this + 0x74);\n        uVar10 = uVar9 + piVar7[5];\n        uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar7[4];\n      } while (piVar6 != piVar11);\n    }" if (parenthesized_expression "(piVar6 != piVar11)" ( (binary_expression "piVar6 != piVar11" identifier != identifier) )) (compound_statement "{\n      do {\n        while( true ) {\n          uVar9 = *piVar11 + 4;\n          if (piVar11[1] == 0) break;\n          uVar8 = piVar11[1] - 1;\n          uVar5 = 1 << (uVar8 & 0x1f);\n          if ((uVar8 & 0x20) == 0) {\n            uVar14 = (ulonglong)uVar5;\n          }\n          else {\n            uVar14 = (ulonglong)uVar5 << 0x20;\n          }\nLAB_0021540c:\n          bVar1 = uVar9 < 4;\n          if (uVar14 == 0) {\n            if (bVar1) {\nLAB_002153a4:\n              piVar7 = (int *)piVar11[4];\n              uVar9 = uVar10;\n              goto LAB_002153a8;\n            }\n          }\n          else {\nLAB_00215368:\n            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);\n            uVar10 = (uint)lVar2 & -(int)uVar14;\n            uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);\n            if (bVar1) goto LAB_002153a4;\n          }\n          piVar6 = *(int **)(this + 0x74);\n          uVar9 = uVar10;\nLAB_00215424:\n          piVar7 = piVar11 + 6;\n          uVar10 = uVar9 + piVar11[3];\n          uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar11[2];\n          piVar11 = piVar7;\n          if (piVar6 == piVar7) {\n            return 0;\n          }\n        }\n        bVar1 = uVar9 < 4;\n        uVar9 = uVar10;\n        if (!bVar1) goto LAB_00215424;\n        piVar7 = (int *)piVar11[4];\n        if (*(code **)(*piVar7 + 0xc) != (code *)puVar3) {\n          uVar14 = (**(code **)(*piVar7 + 0xc))();\n          uVar9 = *piVar11 + 4;\n          goto LAB_0021540c;\n        }\n        uVar14 = *(ulonglong *)(piVar7 + 10);\n        if (piVar7[10] != 0 || piVar7[0xb] != 0) goto LAB_00215368;\nLAB_002153a8:\n        if (piVar4 == piVar7) {\n          *(uint *)param_3 = uVar13;\n          *(uint *)((int)param_3 + 4) = uVar9;\n          return -(iVar12 >> 0x1f);\n        }\n        piVar11 = piVar11 + 6;\n        if (-1 < piVar7[8] << 1) {\n                    \n          FUN_00213098();\n        }\n        piVar6 = *(int **)(this + 0x74);\n        uVar10 = uVar9 + piVar7[5];\n        uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar7[4];\n      } while (piVar6 != piVar11);\n    }" { (do_statement "do {\n        while( true ) {\n          uVar9 = *piVar11 + 4;\n          if (piVar11[1] == 0) break;\n          uVar8 = piVar11[1] - 1;\n          uVar5 = 1 << (uVar8 & 0x1f);\n          if ((uVar8 & 0x20) == 0) {\n            uVar14 = (ulonglong)uVar5;\n          }\n          else {\n            uVar14 = (ulonglong)uVar5 << 0x20;\n          }\nLAB_0021540c:\n          bVar1 = uVar9 < 4;\n          if (uVar14 == 0) {\n            if (bVar1) {\nLAB_002153a4:\n              piVar7 = (int *)piVar11[4];\n              uVar9 = uVar10;\n              goto LAB_002153a8;\n            }\n          }\n          else {\nLAB_00215368:\n            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);\n            uVar10 = (uint)lVar2 & -(int)uVar14;\n            uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);\n            if (bVar1) goto LAB_002153a4;\n          }\n          piVar6 = *(int **)(this + 0x74);\n          uVar9 = uVar10;\nLAB_00215424:\n          piVar7 = piVar11 + 6;\n          uVar10 = uVar9 + piVar11[3];\n          uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar11[2];\n          piVar11 = piVar7;\n          if (piVar6 == piVar7) {\n            return 0;\n          }\n        }\n        bVar1 = uVar9 < 4;\n        uVar9 = uVar10;\n        if (!bVar1) goto LAB_00215424;\n        piVar7 = (int *)piVar11[4];\n        if (*(code **)(*piVar7 + 0xc) != (code *)puVar3) {\n          uVar14 = (**(code **)(*piVar7 + 0xc))();\n          uVar9 = *piVar11 + 4;\n          goto LAB_0021540c;\n        }\n        uVar14 = *(ulonglong *)(piVar7 + 10);\n        if (piVar7[10] != 0 || piVar7[0xb] != 0) goto LAB_00215368;\nLAB_002153a8:\n        if (piVar4 == piVar7) {\n          *(uint *)param_3 = uVar13;\n          *(uint *)((int)param_3 + 4) = uVar9;\n          return -(iVar12 >> 0x1f);\n        }\n        piVar11 = piVar11 + 6;\n        if (-1 < piVar7[8] << 1) {\n                    \n          FUN_00213098();\n        }\n        piVar6 = *(int **)(this + 0x74);\n        uVar10 = uVar9 + piVar7[5];\n        uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar7[4];\n      } while (piVar6 != piVar11);" do (compound_statement "{\n        while( true ) {\n          uVar9 = *piVar11 + 4;\n          if (piVar11[1] == 0) break;\n          uVar8 = piVar11[1] - 1;\n          uVar5 = 1 << (uVar8 & 0x1f);\n          if ((uVar8 & 0x20) == 0) {\n            uVar14 = (ulonglong)uVar5;\n          }\n          else {\n            uVar14 = (ulonglong)uVar5 << 0x20;\n          }\nLAB_0021540c:\n          bVar1 = uVar9 < 4;\n          if (uVar14 == 0) {\n            if (bVar1) {\nLAB_002153a4:\n              piVar7 = (int *)piVar11[4];\n              uVar9 = uVar10;\n              goto LAB_002153a8;\n            }\n          }\n          else {\nLAB_00215368:\n            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);\n            uVar10 = (uint)lVar2 & -(int)uVar14;\n            uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);\n            if (bVar1) goto LAB_002153a4;\n          }\n          piVar6 = *(int **)(this + 0x74);\n          uVar9 = uVar10;\nLAB_00215424:\n          piVar7 = piVar11 + 6;\n          uVar10 = uVar9 + piVar11[3];\n          uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar11[2];\n          piVar11 = piVar7;\n          if (piVar6 == piVar7) {\n            return 0;\n          }\n        }\n        bVar1 = uVar9 < 4;\n        uVar9 = uVar10;\n        if (!bVar1) goto LAB_00215424;\n        piVar7 = (int *)piVar11[4];\n        if (*(code **)(*piVar7 + 0xc) != (code *)puVar3) {\n          uVar14 = (**(code **)(*piVar7 + 0xc))();\n          uVar9 = *piVar11 + 4;\n          goto LAB_0021540c;\n        }\n        uVar14 = *(ulonglong *)(piVar7 + 10);\n        if (piVar7[10] != 0 || piVar7[0xb] != 0) goto LAB_00215368;\nLAB_002153a8:\n        if (piVar4 == piVar7) {\n          *(uint *)param_3 = uVar13;\n          *(uint *)((int)param_3 + 4) = uVar9;\n          return -(iVar12 >> 0x1f);\n        }\n        piVar11 = piVar11 + 6;\n        if (-1 < piVar7[8] << 1) {\n                    \n          FUN_00213098();\n        }\n        piVar6 = *(int **)(this + 0x74);\n        uVar10 = uVar9 + piVar7[5];\n        uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar7[4];\n      }" { (while_statement "while( true ) {\n          uVar9 = *piVar11 + 4;\n          if (piVar11[1] == 0) break;\n          uVar8 = piVar11[1] - 1;\n          uVar5 = 1 << (uVar8 & 0x1f);\n          if ((uVar8 & 0x20) == 0) {\n            uVar14 = (ulonglong)uVar5;\n          }\n          else {\n            uVar14 = (ulonglong)uVar5 << 0x20;\n          }\nLAB_0021540c:\n          bVar1 = uVar9 < 4;\n          if (uVar14 == 0) {\n            if (bVar1) {\nLAB_002153a4:\n              piVar7 = (int *)piVar11[4];\n              uVar9 = uVar10;\n              goto LAB_002153a8;\n            }\n          }\n          else {\nLAB_00215368:\n            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);\n            uVar10 = (uint)lVar2 & -(int)uVar14;\n            uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);\n            if (bVar1) goto LAB_002153a4;\n          }\n          piVar6 = *(int **)(this + 0x74);\n          uVar9 = uVar10;\nLAB_00215424:\n          piVar7 = piVar11 + 6;\n          uVar10 = uVar9 + piVar11[3];\n          uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar11[2];\n          piVar11 = piVar7;\n          if (piVar6 == piVar7) {\n            return 0;\n          }\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          uVar9 = *piVar11 + 4;\n          if (piVar11[1] == 0) break;\n          uVar8 = piVar11[1] - 1;\n          uVar5 = 1 << (uVar8 & 0x1f);\n          if ((uVar8 & 0x20) == 0) {\n            uVar14 = (ulonglong)uVar5;\n          }\n          else {\n            uVar14 = (ulonglong)uVar5 << 0x20;\n          }\nLAB_0021540c:\n          bVar1 = uVar9 < 4;\n          if (uVar14 == 0) {\n            if (bVar1) {\nLAB_002153a4:\n              piVar7 = (int *)piVar11[4];\n              uVar9 = uVar10;\n              goto LAB_002153a8;\n            }\n          }\n          else {\nLAB_00215368:\n            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);\n            uVar10 = (uint)lVar2 & -(int)uVar14;\n            uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);\n            if (bVar1) goto LAB_002153a4;\n          }\n          piVar6 = *(int **)(this + 0x74);\n          uVar9 = uVar10;\nLAB_00215424:\n          piVar7 = piVar11 + 6;\n          uVar10 = uVar9 + piVar11[3];\n          uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar11[2];\n          piVar11 = piVar7;\n          if (piVar6 == piVar7) {\n            return 0;\n          }\n        }" { (expression_statement "uVar9 = *piVar11 + 4;" (assignment_expression "uVar9 = *piVar11 + 4" identifier = (binary_expression "*piVar11 + 4" (pointer_expression "*piVar11" * identifier) + number_literal)) ;) (if_statement "if (piVar11[1] == 0) break;" if (parenthesized_expression "(piVar11[1] == 0)" ( (binary_expression "piVar11[1] == 0" (subscript_expression "piVar11[1]" identifier [ number_literal ]) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar8 = piVar11[1] - 1;" (assignment_expression "uVar8 = piVar11[1] - 1" identifier = (binary_expression "piVar11[1] - 1" (subscript_expression "piVar11[1]" identifier [ number_literal ]) - number_literal)) ;) (expression_statement "uVar5 = 1 << (uVar8 & 0x1f);" (assignment_expression "uVar5 = 1 << (uVar8 & 0x1f)" identifier = (binary_expression "1 << (uVar8 & 0x1f)" number_literal << (parenthesized_expression "(uVar8 & 0x1f)" ( (binary_expression "uVar8 & 0x1f" identifier & number_literal) )))) ;) (if_statement "if ((uVar8 & 0x20) == 0) {\n            uVar14 = (ulonglong)uVar5;\n          }\n          else {\n            uVar14 = (ulonglong)uVar5 << 0x20;\n          }" if (parenthesized_expression "((uVar8 & 0x20) == 0)" ( (binary_expression "(uVar8 & 0x20) == 0" (parenthesized_expression "(uVar8 & 0x20)" ( (binary_expression "uVar8 & 0x20" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            uVar14 = (ulonglong)uVar5;\n          }" { (expression_statement "uVar14 = (ulonglong)uVar5;" (assignment_expression "uVar14 = (ulonglong)uVar5" identifier = (cast_expression "(ulonglong)uVar5" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) }) (else_clause "else {\n            uVar14 = (ulonglong)uVar5 << 0x20;\n          }" else (compound_statement "{\n            uVar14 = (ulonglong)uVar5 << 0x20;\n          }" { (expression_statement "uVar14 = (ulonglong)uVar5 << 0x20;" (assignment_expression "uVar14 = (ulonglong)uVar5 << 0x20" identifier = (binary_expression "(ulonglong)uVar5 << 0x20" (cast_expression "(ulonglong)uVar5" ( (type_descriptor "ulonglong" type_identifier) ) identifier) << number_literal)) ;) }))) (labeled_statement "LAB_0021540c:\n          bVar1 = uVar9 < 4;" statement_identifier : (expression_statement "bVar1 = uVar9 < 4;" (assignment_expression "bVar1 = uVar9 < 4" identifier = (binary_expression "uVar9 < 4" identifier < number_literal)) ;)) (if_statement "if (uVar14 == 0) {\n            if (bVar1) {\nLAB_002153a4:\n              piVar7 = (int *)piVar11[4];\n              uVar9 = uVar10;\n              goto LAB_002153a8;\n            }\n          }\n          else {\nLAB_00215368:\n            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);\n            uVar10 = (uint)lVar2 & -(int)uVar14;\n            uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);\n            if (bVar1) goto LAB_002153a4;\n          }" if (parenthesized_expression "(uVar14 == 0)" ( (binary_expression "uVar14 == 0" identifier == number_literal) )) (compound_statement "{\n            if (bVar1) {\nLAB_002153a4:\n              piVar7 = (int *)piVar11[4];\n              uVar9 = uVar10;\n              goto LAB_002153a8;\n            }\n          }" { (if_statement "if (bVar1) {\nLAB_002153a4:\n              piVar7 = (int *)piVar11[4];\n              uVar9 = uVar10;\n              goto LAB_002153a8;\n            }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\nLAB_002153a4:\n              piVar7 = (int *)piVar11[4];\n              uVar9 = uVar10;\n              goto LAB_002153a8;\n            }" { (labeled_statement "LAB_002153a4:\n              piVar7 = (int *)piVar11[4];" statement_identifier : (expression_statement "piVar7 = (int *)piVar11[4];" (assignment_expression "piVar7 = (int *)piVar11[4]" identifier = (cast_expression "(int *)piVar11[4]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar11[4]" identifier [ number_literal ]))) ;)) (expression_statement "uVar9 = uVar10;" (assignment_expression "uVar9 = uVar10" identifier = identifier) ;) (goto_statement "goto LAB_002153a8;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_00215368:\n            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);\n            uVar10 = (uint)lVar2 & -(int)uVar14;\n            uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);\n            if (bVar1) goto LAB_002153a4;\n          }" else (compound_statement "{\nLAB_00215368:\n            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);\n            uVar10 = (uint)lVar2 & -(int)uVar14;\n            uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);\n            if (bVar1) goto LAB_002153a4;\n          }" { (labeled_statement "LAB_00215368:\n            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);" statement_identifier : (expression_statement "lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);" (assignment_expression "lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1)" identifier = (binary_expression "uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1)" identifier + (call_expression "CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1)" identifier (argument_list "((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1)" ( (binary_expression "(uint)(uVar10 - 1 < uVar10) + (uVar13 - 1)" (call_expression "(uint)(uVar10 - 1 < uVar10)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar10 - 1 < uVar10)" ( (binary_expression "uVar10 - 1 < uVar10" (binary_expression "uVar10 - 1" identifier - number_literal) < identifier) ))) + (parenthesized_expression "(uVar13 - 1)" ( (binary_expression "uVar13 - 1" identifier - number_literal) ))) , (binary_expression "uVar10 - 1" identifier - number_literal) ))))) ;)) (expression_statement "uVar10 = (uint)lVar2 & -(int)uVar14;" (assignment_expression "uVar10 = (uint)lVar2 & -(int)uVar14" identifier = (binary_expression "(uint)lVar2 & -(int)uVar14" (cast_expression "(uint)lVar2" ( (type_descriptor "uint" type_identifier) ) identifier) & (unary_expression "-(int)uVar14" - (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);" (assignment_expression "uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20)" identifier = (binary_expression "(uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20)" (call_expression "(uint)((ulonglong)lVar2 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar2 >> 0x20)" ( (binary_expression "(ulonglong)lVar2 >> 0x20" (cast_expression "(ulonglong)lVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) & (binary_expression "-(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20)" (unary_expression "-(uint)(-(int)uVar14 != 0)" - (call_expression "(uint)(-(int)uVar14 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(-(int)uVar14 != 0)" ( (binary_expression "-(int)uVar14 != 0" (unary_expression "-(int)uVar14" - (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier)) != number_literal) )))) - (cast_expression "(int)(uVar14 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar14 >> 0x20)" ( (binary_expression "uVar14 >> 0x20" identifier >> number_literal) )))))) ;) (if_statement "if (bVar1) goto LAB_002153a4;" if (parenthesized_expression "(bVar1)" ( identifier )) (goto_statement "goto LAB_002153a4;" goto statement_identifier ;)) }))) (expression_statement "piVar6 = *(int **)(this + 0x74);" (assignment_expression "piVar6 = *(int **)(this + 0x74)" identifier = (pointer_expression "*(int **)(this + 0x74)" * (cast_expression "(int **)(this + 0x74)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x74)" ( (binary_expression "this + 0x74" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = uVar10;" (assignment_expression "uVar9 = uVar10" identifier = identifier) ;) (labeled_statement "LAB_00215424:\n          piVar7 = piVar11 + 6;" statement_identifier : (expression_statement "piVar7 = piVar11 + 6;" (assignment_expression "piVar7 = piVar11 + 6" identifier = (binary_expression "piVar11 + 6" identifier + number_literal)) ;)) (expression_statement "uVar10 = uVar9 + piVar11[3];" (assignment_expression "uVar10 = uVar9 + piVar11[3]" identifier = (binary_expression "uVar9 + piVar11[3]" identifier + (subscript_expression "piVar11[3]" identifier [ number_literal ]))) ;) (expression_statement "uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar11[2];" (assignment_expression "uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar11[2]" identifier = (binary_expression "(uint)(uVar10 < uVar9) + uVar13 + piVar11[2]" (binary_expression "(uint)(uVar10 < uVar9) + uVar13" (call_expression "(uint)(uVar10 < uVar9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar10 < uVar9)" ( (binary_expression "uVar10 < uVar9" identifier < identifier) ))) + identifier) + (subscript_expression "piVar11[2]" identifier [ number_literal ]))) ;) (expression_statement "piVar11 = piVar7;" (assignment_expression "piVar11 = piVar7" identifier = identifier) ;) (if_statement "if (piVar6 == piVar7) {\n            return 0;\n          }" if (parenthesized_expression "(piVar6 == piVar7)" ( (binary_expression "piVar6 == piVar7" identifier == identifier) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) })) (expression_statement "bVar1 = uVar9 < 4;" (assignment_expression "bVar1 = uVar9 < 4" identifier = (binary_expression "uVar9 < 4" identifier < number_literal)) ;) (expression_statement "uVar9 = uVar10;" (assignment_expression "uVar9 = uVar10" identifier = identifier) ;) (if_statement "if (!bVar1) goto LAB_00215424;" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (goto_statement "goto LAB_00215424;" goto statement_identifier ;)) (expression_statement "piVar7 = (int *)piVar11[4];" (assignment_expression "piVar7 = (int *)piVar11[4]" identifier = (cast_expression "(int *)piVar11[4]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar11[4]" identifier [ number_literal ]))) ;) (if_statement "if (*(code **)(*piVar7 + 0xc) != (code *)puVar3) {\n          uVar14 = (**(code **)(*piVar7 + 0xc))();\n          uVar9 = *piVar11 + 4;\n          goto LAB_0021540c;\n        }" if (parenthesized_expression "(*(code **)(*piVar7 + 0xc) != (code *)puVar3)" ( (binary_expression "*(code **)(*piVar7 + 0xc) != (code *)puVar3" (pointer_expression "*(code **)(*piVar7 + 0xc)" * (cast_expression "(code **)(*piVar7 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar7 + 0xc)" ( (binary_expression "*piVar7 + 0xc" (pointer_expression "*piVar7" * identifier) + number_literal) )))) != (cast_expression "(code *)puVar3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n          uVar14 = (**(code **)(*piVar7 + 0xc))();\n          uVar9 = *piVar11 + 4;\n          goto LAB_0021540c;\n        }" { (expression_statement "uVar14 = (**(code **)(*piVar7 + 0xc))();" (assignment_expression "uVar14 = (**(code **)(*piVar7 + 0xc))()" identifier = (call_expression "(**(code **)(*piVar7 + 0xc))()" (parenthesized_expression "(**(code **)(*piVar7 + 0xc))" ( (pointer_expression "**(code **)(*piVar7 + 0xc)" * (pointer_expression "*(code **)(*piVar7 + 0xc)" * (cast_expression "(code **)(*piVar7 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar7 + 0xc)" ( (binary_expression "*piVar7 + 0xc" (pointer_expression "*piVar7" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar9 = *piVar11 + 4;" (assignment_expression "uVar9 = *piVar11 + 4" identifier = (binary_expression "*piVar11 + 4" (pointer_expression "*piVar11" * identifier) + number_literal)) ;) (goto_statement "goto LAB_0021540c;" goto statement_identifier ;) })) (expression_statement "uVar14 = *(ulonglong *)(piVar7 + 10);" (assignment_expression "uVar14 = *(ulonglong *)(piVar7 + 10)" identifier = (pointer_expression "*(ulonglong *)(piVar7 + 10)" * (cast_expression "(ulonglong *)(piVar7 + 10)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar7 + 10)" ( (binary_expression "piVar7 + 10" identifier + number_literal) ))))) ;) (if_statement "if (piVar7[10] != 0 || piVar7[0xb] != 0) goto LAB_00215368;" if (parenthesized_expression "(piVar7[10] != 0 || piVar7[0xb] != 0)" ( (binary_expression "piVar7[10] != 0 || piVar7[0xb] != 0" (binary_expression "piVar7[10] != 0" (subscript_expression "piVar7[10]" identifier [ number_literal ]) != number_literal) || (binary_expression "piVar7[0xb] != 0" (subscript_expression "piVar7[0xb]" identifier [ number_literal ]) != number_literal)) )) (goto_statement "goto LAB_00215368;" goto statement_identifier ;)) (labeled_statement "LAB_002153a8:\n        if (piVar4 == piVar7) {\n          *(uint *)param_3 = uVar13;\n          *(uint *)((int)param_3 + 4) = uVar9;\n          return -(iVar12 >> 0x1f);\n        }" statement_identifier : (if_statement "if (piVar4 == piVar7) {\n          *(uint *)param_3 = uVar13;\n          *(uint *)((int)param_3 + 4) = uVar9;\n          return -(iVar12 >> 0x1f);\n        }" if (parenthesized_expression "(piVar4 == piVar7)" ( (binary_expression "piVar4 == piVar7" identifier == identifier) )) (compound_statement "{\n          *(uint *)param_3 = uVar13;\n          *(uint *)((int)param_3 + 4) = uVar9;\n          return -(iVar12 >> 0x1f);\n        }" { (expression_statement "*(uint *)param_3 = uVar13;" (assignment_expression "*(uint *)param_3 = uVar13" (pointer_expression "*(uint *)param_3" * (cast_expression "(uint *)param_3" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(uint *)((int)param_3 + 4) = uVar9;" (assignment_expression "*(uint *)((int)param_3 + 4) = uVar9" (pointer_expression "*(uint *)((int)param_3 + 4)" * (cast_expression "(uint *)((int)param_3 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3 + 4)" ( (binary_expression "(int)param_3 + 4" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (return_statement "return -(iVar12 >> 0x1f);" return (unary_expression "-(iVar12 >> 0x1f)" - (parenthesized_expression "(iVar12 >> 0x1f)" ( (binary_expression "iVar12 >> 0x1f" identifier >> number_literal) ))) ;) }))) (expression_statement "piVar11 = piVar11 + 6;" (assignment_expression "piVar11 = piVar11 + 6" identifier = (binary_expression "piVar11 + 6" identifier + number_literal)) ;) (if_statement "if (-1 < piVar7[8] << 1) {\n                    \n          FUN_00213098();\n        }" if (parenthesized_expression "(-1 < piVar7[8] << 1)" ( (binary_expression "-1 < piVar7[8] << 1" number_literal < (binary_expression "piVar7[8] << 1" (subscript_expression "piVar7[8]" identifier [ number_literal ]) << number_literal)) )) (compound_statement "{\n                    \n          FUN_00213098();\n        }" { (expression_statement "FUN_00213098();" (call_expression "FUN_00213098()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "piVar6 = *(int **)(this + 0x74);" (assignment_expression "piVar6 = *(int **)(this + 0x74)" identifier = (pointer_expression "*(int **)(this + 0x74)" * (cast_expression "(int **)(this + 0x74)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x74)" ( (binary_expression "this + 0x74" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = uVar9 + piVar7[5];" (assignment_expression "uVar10 = uVar9 + piVar7[5]" identifier = (binary_expression "uVar9 + piVar7[5]" identifier + (subscript_expression "piVar7[5]" identifier [ number_literal ]))) ;) (expression_statement "uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar7[4];" (assignment_expression "uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar7[4]" identifier = (binary_expression "(uint)(uVar10 < uVar9) + uVar13 + piVar7[4]" (binary_expression "(uint)(uVar10 < uVar9) + uVar13" (call_expression "(uint)(uVar10 < uVar9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar10 < uVar9)" ( (binary_expression "uVar10 < uVar9" identifier < identifier) ))) + identifier) + (subscript_expression "piVar7[4]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "(piVar6 != piVar11)" ( (binary_expression "piVar6 != piVar11" identifier != identifier) )) ;) })) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit (function_definition TYPE (ms_call_modifier __thiscall) (ERROR IDENT : : IDENT : :) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * 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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 (unary_expression - (parenthesized_expression ( (binary_expression IDENT >> LIT) ))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (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) )))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (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) ))))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT << (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT)) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT < LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (call_expression IDENT (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT - LIT) < IDENT) ))) + (parenthesized_expression ( (binary_expression IDENT - LIT) ))) , (binary_expression IDENT - LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) & (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)) != LIT) )))) - (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) )))))) ;) (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) + IDENT) + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return LIT ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) + LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) || (binary_expression (subscript_expression IDENT [ LIT ]) != LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (return_statement return (unary_expression - (parenthesized_expression ( (binary_expression IDENT >> LIT) ))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression (subscript_expression IDENT [ LIT ]) << LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) + IDENT) + (subscript_expression IDENT [ LIT ]))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) })) (return_statement return LIT ;) })))
(function_definition "int __thiscall\ngold::Output_section::find_starting_output_address\n          (Output_section *this,Relobj *param_1,uint param_2,ulonglong *param_3)\n\n{\n  bool bVar1;\n  longlong lVar2;\n  undefined *puVar3;\n  int *piVar4;\n  uint uVar5;\n  int *piVar6;\n  int *piVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  int *piVar11;\n  int iVar12;\n  uint uVar13;\n  ulonglong uVar14;\n  \n  piVar4 = (int *)(*(code *)PTR_find_merge_section_004c3f38)(param_1,param_2);\n  puVar3 = PTR_do_addralign_004c34e4;\n  if (piVar4 != (int *)0x0) {\n    iVar12 = *(int *)(this + 0x20);\n    if (-(iVar12 >> 0x1f) == 0) {\n      iVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n                          PTR_s_in_a_linker_script_004c191c + -0x2a40);\n      return iVar12;\n    }\n    uVar10 = *(uint *)(this + 0x84) + *(int *)(this + 0xc);\n    piVar11 = *(int **)(this + 0x70);\n    piVar6 = *(int **)(this + 0x74);\n    uVar13 = (uint)(uVar10 < *(uint *)(this + 0x84)) + *(int *)(this + 0x80) + *(int *)(this + 8);\n    if (piVar6 != piVar11) {\n      do {\n        while( true ) {\n          uVar9 = *piVar11 + 4;\n          if (piVar11[1] == 0) break;\n          uVar8 = piVar11[1] - 1;\n          uVar5 = 1 << (uVar8 & 0x1f);\n          if ((uVar8 & 0x20) == 0) {\n            uVar14 = (ulonglong)uVar5;\n          }\n          else {\n            uVar14 = (ulonglong)uVar5 << 0x20;\n          }\nLAB_0021540c:\n          bVar1 = uVar9 < 4;\n          if (uVar14 == 0) {\n            if (bVar1) {\nLAB_002153a4:\n              piVar7 = (int *)piVar11[4];\n              uVar9 = uVar10;\n              goto LAB_002153a8;\n            }\n          }\n          else {\nLAB_00215368:\n            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);\n            uVar10 = (uint)lVar2 & -(int)uVar14;\n            uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);\n            if (bVar1) goto LAB_002153a4;\n          }\n          piVar6 = *(int **)(this + 0x74);\n          uVar9 = uVar10;\nLAB_00215424:\n          piVar7 = piVar11 + 6;\n          uVar10 = uVar9 + piVar11[3];\n          uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar11[2];\n          piVar11 = piVar7;\n          if (piVar6 == piVar7) {\n            return 0;\n          }\n        }\n        bVar1 = uVar9 < 4;\n        uVar9 = uVar10;\n        if (!bVar1) goto LAB_00215424;\n        piVar7 = (int *)piVar11[4];\n        if (*(code **)(*piVar7 + 0xc) != (code *)puVar3) {\n          uVar14 = (**(code **)(*piVar7 + 0xc))();\n          uVar9 = *piVar11 + 4;\n          goto LAB_0021540c;\n        }\n        uVar14 = *(ulonglong *)(piVar7 + 10);\n        if (piVar7[10] != 0 || piVar7[0xb] != 0) goto LAB_00215368;\nLAB_002153a8:\n        if (piVar4 == piVar7) {\n          *(uint *)param_3 = uVar13;\n          *(uint *)((int)param_3 + 4) = uVar9;\n          return -(iVar12 >> 0x1f);\n        }\n        piVar11 = piVar11 + 6;\n        if (-1 < piVar7[8] << 1) {\n                    \n          FUN_00213098();\n        }\n        piVar6 = *(int **)(this + 0x74);\n        uVar10 = uVar9 + piVar7[5];\n        uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar7[4];\n      } while (piVar6 != piVar11);\n    }\n  }\n  return 0;\n}" (primitive_type "int") (ms_call_modifier "__thiscall" (__thiscall "__thiscall")) (ERROR "gold::Output_section::" (identifier "gold") (: ":") (: ":") (identifier "Output_section") (: ":") (: ":")) (function_declarator "find_starting_output_address\n          (Output_section *this,Relobj *param_1,uint param_2,ulonglong *param_3)" (identifier "find_starting_output_address") (parameter_list "(Output_section *this,Relobj *param_1,uint param_2,ulonglong *param_3)" (( "(") (parameter_declaration "Output_section *this" (type_identifier "Output_section") (pointer_declarator "*this" (* "*") (identifier "this"))) (, ",") (parameter_declaration "Relobj *param_1" (type_identifier "Relobj") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) (, ",") (parameter_declaration "ulonglong *param_3" (type_identifier "ulonglong") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  bool bVar1;\n  longlong lVar2;\n  undefined *puVar3;\n  int *piVar4;\n  uint uVar5;\n  int *piVar6;\n  int *piVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  int *piVar11;\n  int iVar12;\n  uint uVar13;\n  ulonglong uVar14;\n  \n  piVar4 = (int *)(*(code *)PTR_find_merge_section_004c3f38)(param_1,param_2);\n  puVar3 = PTR_do_addralign_004c34e4;\n  if (piVar4 != (int *)0x0) {\n    iVar12 = *(int *)(this + 0x20);\n    if (-(iVar12 >> 0x1f) == 0) {\n      iVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n                          PTR_s_in_a_linker_script_004c191c + -0x2a40);\n      return iVar12;\n    }\n    uVar10 = *(uint *)(this + 0x84) + *(int *)(this + 0xc);\n    piVar11 = *(int **)(this + 0x70);\n    piVar6 = *(int **)(this + 0x74);\n    uVar13 = (uint)(uVar10 < *(uint *)(this + 0x84)) + *(int *)(this + 0x80) + *(int *)(this + 8);\n    if (piVar6 != piVar11) {\n      do {\n        while( true ) {\n          uVar9 = *piVar11 + 4;\n          if (piVar11[1] == 0) break;\n          uVar8 = piVar11[1] - 1;\n          uVar5 = 1 << (uVar8 & 0x1f);\n          if ((uVar8 & 0x20) == 0) {\n            uVar14 = (ulonglong)uVar5;\n          }\n          else {\n            uVar14 = (ulonglong)uVar5 << 0x20;\n          }\nLAB_0021540c:\n          bVar1 = uVar9 < 4;\n          if (uVar14 == 0) {\n            if (bVar1) {\nLAB_002153a4:\n              piVar7 = (int *)piVar11[4];\n              uVar9 = uVar10;\n              goto LAB_002153a8;\n            }\n          }\n          else {\nLAB_00215368:\n            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);\n            uVar10 = (uint)lVar2 & -(int)uVar14;\n            uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);\n            if (bVar1) goto LAB_002153a4;\n          }\n          piVar6 = *(int **)(this + 0x74);\n          uVar9 = uVar10;\nLAB_00215424:\n          piVar7 = piVar11 + 6;\n          uVar10 = uVar9 + piVar11[3];\n          uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar11[2];\n          piVar11 = piVar7;\n          if (piVar6 == piVar7) {\n            return 0;\n          }\n        }\n        bVar1 = uVar9 < 4;\n        uVar9 = uVar10;\n        if (!bVar1) goto LAB_00215424;\n        piVar7 = (int *)piVar11[4];\n        if (*(code **)(*piVar7 + 0xc) != (code *)puVar3) {\n          uVar14 = (**(code **)(*piVar7 + 0xc))();\n          uVar9 = *piVar11 + 4;\n          goto LAB_0021540c;\n        }\n        uVar14 = *(ulonglong *)(piVar7 + 10);\n        if (piVar7[10] != 0 || piVar7[0xb] != 0) goto LAB_00215368;\nLAB_002153a8:\n        if (piVar4 == piVar7) {\n          *(uint *)param_3 = uVar13;\n          *(uint *)((int)param_3 + 4) = uVar9;\n          return -(iVar12 >> 0x1f);\n        }\n        piVar11 = piVar11 + 6;\n        if (-1 < piVar7[8] << 1) {\n                    \n          FUN_00213098();\n        }\n        piVar6 = *(int **)(this + 0x74);\n        uVar10 = uVar9 + piVar7[5];\n        uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar7[4];\n      } while (piVar6 != piVar11);\n    }\n  }\n  return 0;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "longlong lVar2;" (type_identifier "longlong") (identifier "lVar2") (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "int *piVar7;" (primitive_type "int") (pointer_declarator "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "int *piVar11;" (primitive_type "int") (pointer_declarator "*piVar11" (* "*") (identifier "piVar11")) (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "uint uVar13;" (type_identifier "uint") (identifier "uVar13") (; ";")) (declaration "ulonglong uVar14;" (type_identifier "ulonglong") (identifier "uVar14") (; ";")) (expression_statement "piVar4 = (int *)(*(code *)PTR_find_merge_section_004c3f38)(param_1,param_2);" (assignment_expression "piVar4 = (int *)(*(code *)PTR_find_merge_section_004c3f38)(param_1,param_2)" (identifier "piVar4") (= "=") (cast_expression "(int *)(*(code *)PTR_find_merge_section_004c3f38)(param_1,param_2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_find_merge_section_004c3f38)(param_1,param_2)" (parenthesized_expression "(*(code *)PTR_find_merge_section_004c3f38)" (( "(") (pointer_expression "*(code *)PTR_find_merge_section_004c3f38" (* "*") (cast_expression "(code *)PTR_find_merge_section_004c3f38" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_find_merge_section_004c3f38"))) () ")")) (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")"))))) (; ";")) (expression_statement "puVar3 = PTR_do_addralign_004c34e4;" (assignment_expression "puVar3 = PTR_do_addralign_004c34e4" (identifier "puVar3") (= "=") (identifier "PTR_do_addralign_004c34e4")) (; ";")) (if_statement "if (piVar4 != (int *)0x0) {\n    iVar12 = *(int *)(this + 0x20);\n    if (-(iVar12 >> 0x1f) == 0) {\n      iVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n                          PTR_s_in_a_linker_script_004c191c + -0x2a40);\n      return iVar12;\n    }\n    uVar10 = *(uint *)(this + 0x84) + *(int *)(this + 0xc);\n    piVar11 = *(int **)(this + 0x70);\n    piVar6 = *(int **)(this + 0x74);\n    uVar13 = (uint)(uVar10 < *(uint *)(this + 0x84)) + *(int *)(this + 0x80) + *(int *)(this + 8);\n    if (piVar6 != piVar11) {\n      do {\n        while( true ) {\n          uVar9 = *piVar11 + 4;\n          if (piVar11[1] == 0) break;\n          uVar8 = piVar11[1] - 1;\n          uVar5 = 1 << (uVar8 & 0x1f);\n          if ((uVar8 & 0x20) == 0) {\n            uVar14 = (ulonglong)uVar5;\n          }\n          else {\n            uVar14 = (ulonglong)uVar5 << 0x20;\n          }\nLAB_0021540c:\n          bVar1 = uVar9 < 4;\n          if (uVar14 == 0) {\n            if (bVar1) {\nLAB_002153a4:\n              piVar7 = (int *)piVar11[4];\n              uVar9 = uVar10;\n              goto LAB_002153a8;\n            }\n          }\n          else {\nLAB_00215368:\n            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);\n            uVar10 = (uint)lVar2 & -(int)uVar14;\n            uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);\n            if (bVar1) goto LAB_002153a4;\n          }\n          piVar6 = *(int **)(this + 0x74);\n          uVar9 = uVar10;\nLAB_00215424:\n          piVar7 = piVar11 + 6;\n          uVar10 = uVar9 + piVar11[3];\n          uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar11[2];\n          piVar11 = piVar7;\n          if (piVar6 == piVar7) {\n            return 0;\n          }\n        }\n        bVar1 = uVar9 < 4;\n        uVar9 = uVar10;\n        if (!bVar1) goto LAB_00215424;\n        piVar7 = (int *)piVar11[4];\n        if (*(code **)(*piVar7 + 0xc) != (code *)puVar3) {\n          uVar14 = (**(code **)(*piVar7 + 0xc))();\n          uVar9 = *piVar11 + 4;\n          goto LAB_0021540c;\n        }\n        uVar14 = *(ulonglong *)(piVar7 + 10);\n        if (piVar7[10] != 0 || piVar7[0xb] != 0) goto LAB_00215368;\nLAB_002153a8:\n        if (piVar4 == piVar7) {\n          *(uint *)param_3 = uVar13;\n          *(uint *)((int)param_3 + 4) = uVar9;\n          return -(iVar12 >> 0x1f);\n        }\n        piVar11 = piVar11 + 6;\n        if (-1 < piVar7[8] << 1) {\n                    \n          FUN_00213098();\n        }\n        piVar6 = *(int **)(this + 0x74);\n        uVar10 = uVar9 + piVar7[5];\n        uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar7[4];\n      } while (piVar6 != piVar11);\n    }\n  }" (if "if") (parenthesized_expression "(piVar4 != (int *)0x0)" (( "(") (binary_expression "piVar4 != (int *)0x0" (identifier "piVar4") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    iVar12 = *(int *)(this + 0x20);\n    if (-(iVar12 >> 0x1f) == 0) {\n      iVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n                          PTR_s_in_a_linker_script_004c191c + -0x2a40);\n      return iVar12;\n    }\n    uVar10 = *(uint *)(this + 0x84) + *(int *)(this + 0xc);\n    piVar11 = *(int **)(this + 0x70);\n    piVar6 = *(int **)(this + 0x74);\n    uVar13 = (uint)(uVar10 < *(uint *)(this + 0x84)) + *(int *)(this + 0x80) + *(int *)(this + 8);\n    if (piVar6 != piVar11) {\n      do {\n        while( true ) {\n          uVar9 = *piVar11 + 4;\n          if (piVar11[1] == 0) break;\n          uVar8 = piVar11[1] - 1;\n          uVar5 = 1 << (uVar8 & 0x1f);\n          if ((uVar8 & 0x20) == 0) {\n            uVar14 = (ulonglong)uVar5;\n          }\n          else {\n            uVar14 = (ulonglong)uVar5 << 0x20;\n          }\nLAB_0021540c:\n          bVar1 = uVar9 < 4;\n          if (uVar14 == 0) {\n            if (bVar1) {\nLAB_002153a4:\n              piVar7 = (int *)piVar11[4];\n              uVar9 = uVar10;\n              goto LAB_002153a8;\n            }\n          }\n          else {\nLAB_00215368:\n            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);\n            uVar10 = (uint)lVar2 & -(int)uVar14;\n            uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);\n            if (bVar1) goto LAB_002153a4;\n          }\n          piVar6 = *(int **)(this + 0x74);\n          uVar9 = uVar10;\nLAB_00215424:\n          piVar7 = piVar11 + 6;\n          uVar10 = uVar9 + piVar11[3];\n          uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar11[2];\n          piVar11 = piVar7;\n          if (piVar6 == piVar7) {\n            return 0;\n          }\n        }\n        bVar1 = uVar9 < 4;\n        uVar9 = uVar10;\n        if (!bVar1) goto LAB_00215424;\n        piVar7 = (int *)piVar11[4];\n        if (*(code **)(*piVar7 + 0xc) != (code *)puVar3) {\n          uVar14 = (**(code **)(*piVar7 + 0xc))();\n          uVar9 = *piVar11 + 4;\n          goto LAB_0021540c;\n        }\n        uVar14 = *(ulonglong *)(piVar7 + 10);\n        if (piVar7[10] != 0 || piVar7[0xb] != 0) goto LAB_00215368;\nLAB_002153a8:\n        if (piVar4 == piVar7) {\n          *(uint *)param_3 = uVar13;\n          *(uint *)((int)param_3 + 4) = uVar9;\n          return -(iVar12 >> 0x1f);\n        }\n        piVar11 = piVar11 + 6;\n        if (-1 < piVar7[8] << 1) {\n                    \n          FUN_00213098();\n        }\n        piVar6 = *(int **)(this + 0x74);\n        uVar10 = uVar9 + piVar7[5];\n        uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar7[4];\n      } while (piVar6 != piVar11);\n    }\n  }" ({ "{") (expression_statement "iVar12 = *(int *)(this + 0x20);" (assignment_expression "iVar12 = *(int *)(this + 0x20)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(this + 0x20)" (* "*") (cast_expression "(int *)(this + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x20)" (( "(") (binary_expression "this + 0x20" (identifier "this") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (if_statement "if (-(iVar12 >> 0x1f) == 0) {\n      iVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n                          PTR_s_in_a_linker_script_004c191c + -0x2a40);\n      return iVar12;\n    }" (if "if") (parenthesized_expression "(-(iVar12 >> 0x1f) == 0)" (( "(") (binary_expression "-(iVar12 >> 0x1f) == 0" (unary_expression "-(iVar12 >> 0x1f)" (- "-") (parenthesized_expression "(iVar12 >> 0x1f)" (( "(") (binary_expression "iVar12 >> 0x1f" (identifier "iVar12") (>> ">>") (number_literal "0x1f")) () ")"))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n                          PTR_s_in_a_linker_script_004c191c + -0x2a40);\n      return iVar12;\n    }" ({ "{") (expression_statement "iVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n                          PTR_s_in_a_linker_script_004c191c + -0x2a40);" (assignment_expression "iVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n                          PTR_s_in_a_linker_script_004c191c + -0x2a40)" (identifier "iVar12") (= "=") (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n                          PTR_s_in_a_linker_script_004c191c + -0x2a40)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004c1a30"))) () ")")) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n                          PTR_s_in_a_linker_script_004c191c + -0x2a40)" (( "(") (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" (identifier "PTR_s_ral_options14Struct_no_crefE_004c127c") (+ "+") (number_literal "0x3574")) (, ",") (number_literal "0xc5") (, ",") (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2a40" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0x2a40")) () ")")))) (; ";")) (return_statement "return iVar12;" (return "return") (identifier "iVar12") (; ";")) (} "}"))) (expression_statement "uVar10 = *(uint *)(this + 0x84) + *(int *)(this + 0xc);" (assignment_expression "uVar10 = *(uint *)(this + 0x84) + *(int *)(this + 0xc)" (identifier "uVar10") (= "=") (binary_expression "*(uint *)(this + 0x84) + *(int *)(this + 0xc)" (pointer_expression "*(uint *)(this + 0x84)" (* "*") (cast_expression "(uint *)(this + 0x84)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x84)" (( "(") (binary_expression "this + 0x84" (identifier "this") (+ "+") (number_literal "0x84")) () ")")))) (+ "+") (pointer_expression "*(int *)(this + 0xc)" (* "*") (cast_expression "(int *)(this + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0xc)" (( "(") (binary_expression "this + 0xc" (identifier "this") (+ "+") (number_literal "0xc")) () ")")))))) (; ";")) (expression_statement "piVar11 = *(int **)(this + 0x70);" (assignment_expression "piVar11 = *(int **)(this + 0x70)" (identifier "piVar11") (= "=") (pointer_expression "*(int **)(this + 0x70)" (* "*") (cast_expression "(int **)(this + 0x70)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0x70)" (( "(") (binary_expression "this + 0x70" (identifier "this") (+ "+") (number_literal "0x70")) () ")"))))) (; ";")) (expression_statement "piVar6 = *(int **)(this + 0x74);" (assignment_expression "piVar6 = *(int **)(this + 0x74)" (identifier "piVar6") (= "=") (pointer_expression "*(int **)(this + 0x74)" (* "*") (cast_expression "(int **)(this + 0x74)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0x74)" (( "(") (binary_expression "this + 0x74" (identifier "this") (+ "+") (number_literal "0x74")) () ")"))))) (; ";")) (expression_statement "uVar13 = (uint)(uVar10 < *(uint *)(this + 0x84)) + *(int *)(this + 0x80) + *(int *)(this + 8);" (assignment_expression "uVar13 = (uint)(uVar10 < *(uint *)(this + 0x84)) + *(int *)(this + 0x80) + *(int *)(this + 8)" (identifier "uVar13") (= "=") (binary_expression "(uint)(uVar10 < *(uint *)(this + 0x84)) + *(int *)(this + 0x80) + *(int *)(this + 8)" (binary_expression "(uint)(uVar10 < *(uint *)(this + 0x84)) + *(int *)(this + 0x80)" (call_expression "(uint)(uVar10 < *(uint *)(this + 0x84))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar10 < *(uint *)(this + 0x84))" (( "(") (binary_expression "uVar10 < *(uint *)(this + 0x84)" (identifier "uVar10") (< "<") (pointer_expression "*(uint *)(this + 0x84)" (* "*") (cast_expression "(uint *)(this + 0x84)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x84)" (( "(") (binary_expression "this + 0x84" (identifier "this") (+ "+") (number_literal "0x84")) () ")"))))) () ")"))) (+ "+") (pointer_expression "*(int *)(this + 0x80)" (* "*") (cast_expression "(int *)(this + 0x80)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x80)" (( "(") (binary_expression "this + 0x80" (identifier "this") (+ "+") (number_literal "0x80")) () ")"))))) (+ "+") (pointer_expression "*(int *)(this + 8)" (* "*") (cast_expression "(int *)(this + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 8)" (( "(") (binary_expression "this + 8" (identifier "this") (+ "+") (number_literal "8")) () ")")))))) (; ";")) (if_statement "if (piVar6 != piVar11) {\n      do {\n        while( true ) {\n          uVar9 = *piVar11 + 4;\n          if (piVar11[1] == 0) break;\n          uVar8 = piVar11[1] - 1;\n          uVar5 = 1 << (uVar8 & 0x1f);\n          if ((uVar8 & 0x20) == 0) {\n            uVar14 = (ulonglong)uVar5;\n          }\n          else {\n            uVar14 = (ulonglong)uVar5 << 0x20;\n          }\nLAB_0021540c:\n          bVar1 = uVar9 < 4;\n          if (uVar14 == 0) {\n            if (bVar1) {\nLAB_002153a4:\n              piVar7 = (int *)piVar11[4];\n              uVar9 = uVar10;\n              goto LAB_002153a8;\n            }\n          }\n          else {\nLAB_00215368:\n            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);\n            uVar10 = (uint)lVar2 & -(int)uVar14;\n            uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);\n            if (bVar1) goto LAB_002153a4;\n          }\n          piVar6 = *(int **)(this + 0x74);\n          uVar9 = uVar10;\nLAB_00215424:\n          piVar7 = piVar11 + 6;\n          uVar10 = uVar9 + piVar11[3];\n          uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar11[2];\n          piVar11 = piVar7;\n          if (piVar6 == piVar7) {\n            return 0;\n          }\n        }\n        bVar1 = uVar9 < 4;\n        uVar9 = uVar10;\n        if (!bVar1) goto LAB_00215424;\n        piVar7 = (int *)piVar11[4];\n        if (*(code **)(*piVar7 + 0xc) != (code *)puVar3) {\n          uVar14 = (**(code **)(*piVar7 + 0xc))();\n          uVar9 = *piVar11 + 4;\n          goto LAB_0021540c;\n        }\n        uVar14 = *(ulonglong *)(piVar7 + 10);\n        if (piVar7[10] != 0 || piVar7[0xb] != 0) goto LAB_00215368;\nLAB_002153a8:\n        if (piVar4 == piVar7) {\n          *(uint *)param_3 = uVar13;\n          *(uint *)((int)param_3 + 4) = uVar9;\n          return -(iVar12 >> 0x1f);\n        }\n        piVar11 = piVar11 + 6;\n        if (-1 < piVar7[8] << 1) {\n                    \n          FUN_00213098();\n        }\n        piVar6 = *(int **)(this + 0x74);\n        uVar10 = uVar9 + piVar7[5];\n        uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar7[4];\n      } while (piVar6 != piVar11);\n    }" (if "if") (parenthesized_expression "(piVar6 != piVar11)" (( "(") (binary_expression "piVar6 != piVar11" (identifier "piVar6") (!= "!=") (identifier "piVar11")) () ")")) (compound_statement "{\n      do {\n        while( true ) {\n          uVar9 = *piVar11 + 4;\n          if (piVar11[1] == 0) break;\n          uVar8 = piVar11[1] - 1;\n          uVar5 = 1 << (uVar8 & 0x1f);\n          if ((uVar8 & 0x20) == 0) {\n            uVar14 = (ulonglong)uVar5;\n          }\n          else {\n            uVar14 = (ulonglong)uVar5 << 0x20;\n          }\nLAB_0021540c:\n          bVar1 = uVar9 < 4;\n          if (uVar14 == 0) {\n            if (bVar1) {\nLAB_002153a4:\n              piVar7 = (int *)piVar11[4];\n              uVar9 = uVar10;\n              goto LAB_002153a8;\n            }\n          }\n          else {\nLAB_00215368:\n            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);\n            uVar10 = (uint)lVar2 & -(int)uVar14;\n            uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);\n            if (bVar1) goto LAB_002153a4;\n          }\n          piVar6 = *(int **)(this + 0x74);\n          uVar9 = uVar10;\nLAB_00215424:\n          piVar7 = piVar11 + 6;\n          uVar10 = uVar9 + piVar11[3];\n          uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar11[2];\n          piVar11 = piVar7;\n          if (piVar6 == piVar7) {\n            return 0;\n          }\n        }\n        bVar1 = uVar9 < 4;\n        uVar9 = uVar10;\n        if (!bVar1) goto LAB_00215424;\n        piVar7 = (int *)piVar11[4];\n        if (*(code **)(*piVar7 + 0xc) != (code *)puVar3) {\n          uVar14 = (**(code **)(*piVar7 + 0xc))();\n          uVar9 = *piVar11 + 4;\n          goto LAB_0021540c;\n        }\n        uVar14 = *(ulonglong *)(piVar7 + 10);\n        if (piVar7[10] != 0 || piVar7[0xb] != 0) goto LAB_00215368;\nLAB_002153a8:\n        if (piVar4 == piVar7) {\n          *(uint *)param_3 = uVar13;\n          *(uint *)((int)param_3 + 4) = uVar9;\n          return -(iVar12 >> 0x1f);\n        }\n        piVar11 = piVar11 + 6;\n        if (-1 < piVar7[8] << 1) {\n                    \n          FUN_00213098();\n        }\n        piVar6 = *(int **)(this + 0x74);\n        uVar10 = uVar9 + piVar7[5];\n        uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar7[4];\n      } while (piVar6 != piVar11);\n    }" ({ "{") (do_statement "do {\n        while( true ) {\n          uVar9 = *piVar11 + 4;\n          if (piVar11[1] == 0) break;\n          uVar8 = piVar11[1] - 1;\n          uVar5 = 1 << (uVar8 & 0x1f);\n          if ((uVar8 & 0x20) == 0) {\n            uVar14 = (ulonglong)uVar5;\n          }\n          else {\n            uVar14 = (ulonglong)uVar5 << 0x20;\n          }\nLAB_0021540c:\n          bVar1 = uVar9 < 4;\n          if (uVar14 == 0) {\n            if (bVar1) {\nLAB_002153a4:\n              piVar7 = (int *)piVar11[4];\n              uVar9 = uVar10;\n              goto LAB_002153a8;\n            }\n          }\n          else {\nLAB_00215368:\n            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);\n            uVar10 = (uint)lVar2 & -(int)uVar14;\n            uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);\n            if (bVar1) goto LAB_002153a4;\n          }\n          piVar6 = *(int **)(this + 0x74);\n          uVar9 = uVar10;\nLAB_00215424:\n          piVar7 = piVar11 + 6;\n          uVar10 = uVar9 + piVar11[3];\n          uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar11[2];\n          piVar11 = piVar7;\n          if (piVar6 == piVar7) {\n            return 0;\n          }\n        }\n        bVar1 = uVar9 < 4;\n        uVar9 = uVar10;\n        if (!bVar1) goto LAB_00215424;\n        piVar7 = (int *)piVar11[4];\n        if (*(code **)(*piVar7 + 0xc) != (code *)puVar3) {\n          uVar14 = (**(code **)(*piVar7 + 0xc))();\n          uVar9 = *piVar11 + 4;\n          goto LAB_0021540c;\n        }\n        uVar14 = *(ulonglong *)(piVar7 + 10);\n        if (piVar7[10] != 0 || piVar7[0xb] != 0) goto LAB_00215368;\nLAB_002153a8:\n        if (piVar4 == piVar7) {\n          *(uint *)param_3 = uVar13;\n          *(uint *)((int)param_3 + 4) = uVar9;\n          return -(iVar12 >> 0x1f);\n        }\n        piVar11 = piVar11 + 6;\n        if (-1 < piVar7[8] << 1) {\n                    \n          FUN_00213098();\n        }\n        piVar6 = *(int **)(this + 0x74);\n        uVar10 = uVar9 + piVar7[5];\n        uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar7[4];\n      } while (piVar6 != piVar11);" (do "do") (compound_statement "{\n        while( true ) {\n          uVar9 = *piVar11 + 4;\n          if (piVar11[1] == 0) break;\n          uVar8 = piVar11[1] - 1;\n          uVar5 = 1 << (uVar8 & 0x1f);\n          if ((uVar8 & 0x20) == 0) {\n            uVar14 = (ulonglong)uVar5;\n          }\n          else {\n            uVar14 = (ulonglong)uVar5 << 0x20;\n          }\nLAB_0021540c:\n          bVar1 = uVar9 < 4;\n          if (uVar14 == 0) {\n            if (bVar1) {\nLAB_002153a4:\n              piVar7 = (int *)piVar11[4];\n              uVar9 = uVar10;\n              goto LAB_002153a8;\n            }\n          }\n          else {\nLAB_00215368:\n            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);\n            uVar10 = (uint)lVar2 & -(int)uVar14;\n            uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);\n            if (bVar1) goto LAB_002153a4;\n          }\n          piVar6 = *(int **)(this + 0x74);\n          uVar9 = uVar10;\nLAB_00215424:\n          piVar7 = piVar11 + 6;\n          uVar10 = uVar9 + piVar11[3];\n          uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar11[2];\n          piVar11 = piVar7;\n          if (piVar6 == piVar7) {\n            return 0;\n          }\n        }\n        bVar1 = uVar9 < 4;\n        uVar9 = uVar10;\n        if (!bVar1) goto LAB_00215424;\n        piVar7 = (int *)piVar11[4];\n        if (*(code **)(*piVar7 + 0xc) != (code *)puVar3) {\n          uVar14 = (**(code **)(*piVar7 + 0xc))();\n          uVar9 = *piVar11 + 4;\n          goto LAB_0021540c;\n        }\n        uVar14 = *(ulonglong *)(piVar7 + 10);\n        if (piVar7[10] != 0 || piVar7[0xb] != 0) goto LAB_00215368;\nLAB_002153a8:\n        if (piVar4 == piVar7) {\n          *(uint *)param_3 = uVar13;\n          *(uint *)((int)param_3 + 4) = uVar9;\n          return -(iVar12 >> 0x1f);\n        }\n        piVar11 = piVar11 + 6;\n        if (-1 < piVar7[8] << 1) {\n                    \n          FUN_00213098();\n        }\n        piVar6 = *(int **)(this + 0x74);\n        uVar10 = uVar9 + piVar7[5];\n        uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar7[4];\n      }" ({ "{") (while_statement "while( true ) {\n          uVar9 = *piVar11 + 4;\n          if (piVar11[1] == 0) break;\n          uVar8 = piVar11[1] - 1;\n          uVar5 = 1 << (uVar8 & 0x1f);\n          if ((uVar8 & 0x20) == 0) {\n            uVar14 = (ulonglong)uVar5;\n          }\n          else {\n            uVar14 = (ulonglong)uVar5 << 0x20;\n          }\nLAB_0021540c:\n          bVar1 = uVar9 < 4;\n          if (uVar14 == 0) {\n            if (bVar1) {\nLAB_002153a4:\n              piVar7 = (int *)piVar11[4];\n              uVar9 = uVar10;\n              goto LAB_002153a8;\n            }\n          }\n          else {\nLAB_00215368:\n            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);\n            uVar10 = (uint)lVar2 & -(int)uVar14;\n            uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);\n            if (bVar1) goto LAB_002153a4;\n          }\n          piVar6 = *(int **)(this + 0x74);\n          uVar9 = uVar10;\nLAB_00215424:\n          piVar7 = piVar11 + 6;\n          uVar10 = uVar9 + piVar11[3];\n          uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar11[2];\n          piVar11 = piVar7;\n          if (piVar6 == piVar7) {\n            return 0;\n          }\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          uVar9 = *piVar11 + 4;\n          if (piVar11[1] == 0) break;\n          uVar8 = piVar11[1] - 1;\n          uVar5 = 1 << (uVar8 & 0x1f);\n          if ((uVar8 & 0x20) == 0) {\n            uVar14 = (ulonglong)uVar5;\n          }\n          else {\n            uVar14 = (ulonglong)uVar5 << 0x20;\n          }\nLAB_0021540c:\n          bVar1 = uVar9 < 4;\n          if (uVar14 == 0) {\n            if (bVar1) {\nLAB_002153a4:\n              piVar7 = (int *)piVar11[4];\n              uVar9 = uVar10;\n              goto LAB_002153a8;\n            }\n          }\n          else {\nLAB_00215368:\n            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);\n            uVar10 = (uint)lVar2 & -(int)uVar14;\n            uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);\n            if (bVar1) goto LAB_002153a4;\n          }\n          piVar6 = *(int **)(this + 0x74);\n          uVar9 = uVar10;\nLAB_00215424:\n          piVar7 = piVar11 + 6;\n          uVar10 = uVar9 + piVar11[3];\n          uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar11[2];\n          piVar11 = piVar7;\n          if (piVar6 == piVar7) {\n            return 0;\n          }\n        }" ({ "{") (expression_statement "uVar9 = *piVar11 + 4;" (assignment_expression "uVar9 = *piVar11 + 4" (identifier "uVar9") (= "=") (binary_expression "*piVar11 + 4" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (+ "+") (number_literal "4"))) (; ";")) (if_statement "if (piVar11[1] == 0) break;" (if "if") (parenthesized_expression "(piVar11[1] == 0)" (( "(") (binary_expression "piVar11[1] == 0" (subscript_expression "piVar11[1]" (identifier "piVar11") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar8 = piVar11[1] - 1;" (assignment_expression "uVar8 = piVar11[1] - 1" (identifier "uVar8") (= "=") (binary_expression "piVar11[1] - 1" (subscript_expression "piVar11[1]" (identifier "piVar11") ([ "[") (number_literal "1") (] "]")) (- "-") (number_literal "1"))) (; ";")) (expression_statement "uVar5 = 1 << (uVar8 & 0x1f);" (assignment_expression "uVar5 = 1 << (uVar8 & 0x1f)" (identifier "uVar5") (= "=") (binary_expression "1 << (uVar8 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "(uVar8 & 0x1f)" (( "(") (binary_expression "uVar8 & 0x1f" (identifier "uVar8") (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (if_statement "if ((uVar8 & 0x20) == 0) {\n            uVar14 = (ulonglong)uVar5;\n          }\n          else {\n            uVar14 = (ulonglong)uVar5 << 0x20;\n          }" (if "if") (parenthesized_expression "((uVar8 & 0x20) == 0)" (( "(") (binary_expression "(uVar8 & 0x20) == 0" (parenthesized_expression "(uVar8 & 0x20)" (( "(") (binary_expression "uVar8 & 0x20" (identifier "uVar8") (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            uVar14 = (ulonglong)uVar5;\n          }" ({ "{") (expression_statement "uVar14 = (ulonglong)uVar5;" (assignment_expression "uVar14 = (ulonglong)uVar5" (identifier "uVar14") (= "=") (cast_expression "(ulonglong)uVar5" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar5"))) (; ";")) (} "}")) (else_clause "else {\n            uVar14 = (ulonglong)uVar5 << 0x20;\n          }" (else "else") (compound_statement "{\n            uVar14 = (ulonglong)uVar5 << 0x20;\n          }" ({ "{") (expression_statement "uVar14 = (ulonglong)uVar5 << 0x20;" (assignment_expression "uVar14 = (ulonglong)uVar5 << 0x20" (identifier "uVar14") (= "=") (binary_expression "(ulonglong)uVar5 << 0x20" (cast_expression "(ulonglong)uVar5" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar5")) (<< "<<") (number_literal "0x20"))) (; ";")) (} "}")))) (labeled_statement "LAB_0021540c:\n          bVar1 = uVar9 < 4;" (statement_identifier "LAB_0021540c") (: ":") (expression_statement "bVar1 = uVar9 < 4;" (assignment_expression "bVar1 = uVar9 < 4" (identifier "bVar1") (= "=") (binary_expression "uVar9 < 4" (identifier "uVar9") (< "<") (number_literal "4"))) (; ";"))) (if_statement "if (uVar14 == 0) {\n            if (bVar1) {\nLAB_002153a4:\n              piVar7 = (int *)piVar11[4];\n              uVar9 = uVar10;\n              goto LAB_002153a8;\n            }\n          }\n          else {\nLAB_00215368:\n            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);\n            uVar10 = (uint)lVar2 & -(int)uVar14;\n            uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);\n            if (bVar1) goto LAB_002153a4;\n          }" (if "if") (parenthesized_expression "(uVar14 == 0)" (( "(") (binary_expression "uVar14 == 0" (identifier "uVar14") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            if (bVar1) {\nLAB_002153a4:\n              piVar7 = (int *)piVar11[4];\n              uVar9 = uVar10;\n              goto LAB_002153a8;\n            }\n          }" ({ "{") (if_statement "if (bVar1) {\nLAB_002153a4:\n              piVar7 = (int *)piVar11[4];\n              uVar9 = uVar10;\n              goto LAB_002153a8;\n            }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\nLAB_002153a4:\n              piVar7 = (int *)piVar11[4];\n              uVar9 = uVar10;\n              goto LAB_002153a8;\n            }" ({ "{") (labeled_statement "LAB_002153a4:\n              piVar7 = (int *)piVar11[4];" (statement_identifier "LAB_002153a4") (: ":") (expression_statement "piVar7 = (int *)piVar11[4];" (assignment_expression "piVar7 = (int *)piVar11[4]" (identifier "piVar7") (= "=") (cast_expression "(int *)piVar11[4]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar11[4]" (identifier "piVar11") ([ "[") (number_literal "4") (] "]")))) (; ";"))) (expression_statement "uVar9 = uVar10;" (assignment_expression "uVar9 = uVar10" (identifier "uVar9") (= "=") (identifier "uVar10")) (; ";")) (goto_statement "goto LAB_002153a8;" (goto "goto") (statement_identifier "LAB_002153a8") (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_00215368:\n            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);\n            uVar10 = (uint)lVar2 & -(int)uVar14;\n            uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);\n            if (bVar1) goto LAB_002153a4;\n          }" (else "else") (compound_statement "{\nLAB_00215368:\n            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);\n            uVar10 = (uint)lVar2 & -(int)uVar14;\n            uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);\n            if (bVar1) goto LAB_002153a4;\n          }" ({ "{") (labeled_statement "LAB_00215368:\n            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);" (statement_identifier "LAB_00215368") (: ":") (expression_statement "lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);" (assignment_expression "lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1)" (identifier "lVar2") (= "=") (binary_expression "uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1)" (identifier "uVar14") (+ "+") (call_expression "CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1)" (identifier "CONCAT44") (argument_list "((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1)" (( "(") (binary_expression "(uint)(uVar10 - 1 < uVar10) + (uVar13 - 1)" (call_expression "(uint)(uVar10 - 1 < uVar10)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar10 - 1 < uVar10)" (( "(") (binary_expression "uVar10 - 1 < uVar10" (binary_expression "uVar10 - 1" (identifier "uVar10") (- "-") (number_literal "1")) (< "<") (identifier "uVar10")) () ")"))) (+ "+") (parenthesized_expression "(uVar13 - 1)" (( "(") (binary_expression "uVar13 - 1" (identifier "uVar13") (- "-") (number_literal "1")) () ")"))) (, ",") (binary_expression "uVar10 - 1" (identifier "uVar10") (- "-") (number_literal "1")) () ")"))))) (; ";"))) (expression_statement "uVar10 = (uint)lVar2 & -(int)uVar14;" (assignment_expression "uVar10 = (uint)lVar2 & -(int)uVar14" (identifier "uVar10") (= "=") (binary_expression "(uint)lVar2 & -(int)uVar14" (cast_expression "(uint)lVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar2")) (& "&") (unary_expression "-(int)uVar14" (- "-") (cast_expression "(int)uVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar14"))))) (; ";")) (expression_statement "uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);" (assignment_expression "uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20)" (identifier "uVar13") (= "=") (binary_expression "(uint)((ulonglong)lVar2 >> 0x20) &\n                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20)" (call_expression "(uint)((ulonglong)lVar2 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar2 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar2 >> 0x20" (cast_expression "(ulonglong)lVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar2")) (>> ">>") (number_literal "0x20")) () ")"))) (& "&") (binary_expression "-(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20)" (unary_expression "-(uint)(-(int)uVar14 != 0)" (- "-") (call_expression "(uint)(-(int)uVar14 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(-(int)uVar14 != 0)" (( "(") (binary_expression "-(int)uVar14 != 0" (unary_expression "-(int)uVar14" (- "-") (cast_expression "(int)uVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar14"))) (!= "!=") (number_literal "0")) () ")")))) (- "-") (cast_expression "(int)(uVar14 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar14 >> 0x20)" (( "(") (binary_expression "uVar14 >> 0x20" (identifier "uVar14") (>> ">>") (number_literal "0x20")) () ")")))))) (; ";")) (if_statement "if (bVar1) goto LAB_002153a4;" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (goto_statement "goto LAB_002153a4;" (goto "goto") (statement_identifier "LAB_002153a4") (; ";"))) (} "}")))) (expression_statement "piVar6 = *(int **)(this + 0x74);" (assignment_expression "piVar6 = *(int **)(this + 0x74)" (identifier "piVar6") (= "=") (pointer_expression "*(int **)(this + 0x74)" (* "*") (cast_expression "(int **)(this + 0x74)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0x74)" (( "(") (binary_expression "this + 0x74" (identifier "this") (+ "+") (number_literal "0x74")) () ")"))))) (; ";")) (expression_statement "uVar9 = uVar10;" (assignment_expression "uVar9 = uVar10" (identifier "uVar9") (= "=") (identifier "uVar10")) (; ";")) (labeled_statement "LAB_00215424:\n          piVar7 = piVar11 + 6;" (statement_identifier "LAB_00215424") (: ":") (expression_statement "piVar7 = piVar11 + 6;" (assignment_expression "piVar7 = piVar11 + 6" (identifier "piVar7") (= "=") (binary_expression "piVar11 + 6" (identifier "piVar11") (+ "+") (number_literal "6"))) (; ";"))) (expression_statement "uVar10 = uVar9 + piVar11[3];" (assignment_expression "uVar10 = uVar9 + piVar11[3]" (identifier "uVar10") (= "=") (binary_expression "uVar9 + piVar11[3]" (identifier "uVar9") (+ "+") (subscript_expression "piVar11[3]" (identifier "piVar11") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar11[2];" (assignment_expression "uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar11[2]" (identifier "uVar13") (= "=") (binary_expression "(uint)(uVar10 < uVar9) + uVar13 + piVar11[2]" (binary_expression "(uint)(uVar10 < uVar9) + uVar13" (call_expression "(uint)(uVar10 < uVar9)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar10 < uVar9)" (( "(") (binary_expression "uVar10 < uVar9" (identifier "uVar10") (< "<") (identifier "uVar9")) () ")"))) (+ "+") (identifier "uVar13")) (+ "+") (subscript_expression "piVar11[2]" (identifier "piVar11") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "piVar11 = piVar7;" (assignment_expression "piVar11 = piVar7" (identifier "piVar11") (= "=") (identifier "piVar7")) (; ";")) (if_statement "if (piVar6 == piVar7) {\n            return 0;\n          }" (if "if") (parenthesized_expression "(piVar6 == piVar7)" (( "(") (binary_expression "piVar6 == piVar7" (identifier "piVar6") (== "==") (identifier "piVar7")) () ")")) (compound_statement "{\n            return 0;\n          }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}"))) (expression_statement "bVar1 = uVar9 < 4;" (assignment_expression "bVar1 = uVar9 < 4" (identifier "bVar1") (= "=") (binary_expression "uVar9 < 4" (identifier "uVar9") (< "<") (number_literal "4"))) (; ";")) (expression_statement "uVar9 = uVar10;" (assignment_expression "uVar9 = uVar10" (identifier "uVar9") (= "=") (identifier "uVar10")) (; ";")) (if_statement "if (!bVar1) goto LAB_00215424;" (if "if") (parenthesized_expression "(!bVar1)" (( "(") (unary_expression "!bVar1" (! "!") (identifier "bVar1")) () ")")) (goto_statement "goto LAB_00215424;" (goto "goto") (statement_identifier "LAB_00215424") (; ";"))) (expression_statement "piVar7 = (int *)piVar11[4];" (assignment_expression "piVar7 = (int *)piVar11[4]" (identifier "piVar7") (= "=") (cast_expression "(int *)piVar11[4]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar11[4]" (identifier "piVar11") ([ "[") (number_literal "4") (] "]")))) (; ";")) (if_statement "if (*(code **)(*piVar7 + 0xc) != (code *)puVar3) {\n          uVar14 = (**(code **)(*piVar7 + 0xc))();\n          uVar9 = *piVar11 + 4;\n          goto LAB_0021540c;\n        }" (if "if") (parenthesized_expression "(*(code **)(*piVar7 + 0xc) != (code *)puVar3)" (( "(") (binary_expression "*(code **)(*piVar7 + 0xc) != (code *)puVar3" (pointer_expression "*(code **)(*piVar7 + 0xc)" (* "*") (cast_expression "(code **)(*piVar7 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar7 + 0xc)" (( "(") (binary_expression "*piVar7 + 0xc" (pointer_expression "*piVar7" (* "*") (identifier "piVar7")) (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (cast_expression "(code *)puVar3" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar3"))) () ")")) (compound_statement "{\n          uVar14 = (**(code **)(*piVar7 + 0xc))();\n          uVar9 = *piVar11 + 4;\n          goto LAB_0021540c;\n        }" ({ "{") (expression_statement "uVar14 = (**(code **)(*piVar7 + 0xc))();" (assignment_expression "uVar14 = (**(code **)(*piVar7 + 0xc))()" (identifier "uVar14") (= "=") (call_expression "(**(code **)(*piVar7 + 0xc))()" (parenthesized_expression "(**(code **)(*piVar7 + 0xc))" (( "(") (pointer_expression "**(code **)(*piVar7 + 0xc)" (* "*") (pointer_expression "*(code **)(*piVar7 + 0xc)" (* "*") (cast_expression "(code **)(*piVar7 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar7 + 0xc)" (( "(") (binary_expression "*piVar7 + 0xc" (pointer_expression "*piVar7" (* "*") (identifier "piVar7")) (+ "+") (number_literal "0xc")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar9 = *piVar11 + 4;" (assignment_expression "uVar9 = *piVar11 + 4" (identifier "uVar9") (= "=") (binary_expression "*piVar11 + 4" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (+ "+") (number_literal "4"))) (; ";")) (goto_statement "goto LAB_0021540c;" (goto "goto") (statement_identifier "LAB_0021540c") (; ";")) (} "}"))) (expression_statement "uVar14 = *(ulonglong *)(piVar7 + 10);" (assignment_expression "uVar14 = *(ulonglong *)(piVar7 + 10)" (identifier "uVar14") (= "=") (pointer_expression "*(ulonglong *)(piVar7 + 10)" (* "*") (cast_expression "(ulonglong *)(piVar7 + 10)" (( "(") (type_descriptor "ulonglong *" (type_identifier "ulonglong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar7 + 10)" (( "(") (binary_expression "piVar7 + 10" (identifier "piVar7") (+ "+") (number_literal "10")) () ")"))))) (; ";")) (if_statement "if (piVar7[10] != 0 || piVar7[0xb] != 0) goto LAB_00215368;" (if "if") (parenthesized_expression "(piVar7[10] != 0 || piVar7[0xb] != 0)" (( "(") (binary_expression "piVar7[10] != 0 || piVar7[0xb] != 0" (binary_expression "piVar7[10] != 0" (subscript_expression "piVar7[10]" (identifier "piVar7") ([ "[") (number_literal "10") (] "]")) (!= "!=") (number_literal "0")) (|| "||") (binary_expression "piVar7[0xb] != 0" (subscript_expression "piVar7[0xb]" (identifier "piVar7") ([ "[") (number_literal "0xb") (] "]")) (!= "!=") (number_literal "0"))) () ")")) (goto_statement "goto LAB_00215368;" (goto "goto") (statement_identifier "LAB_00215368") (; ";"))) (labeled_statement "LAB_002153a8:\n        if (piVar4 == piVar7) {\n          *(uint *)param_3 = uVar13;\n          *(uint *)((int)param_3 + 4) = uVar9;\n          return -(iVar12 >> 0x1f);\n        }" (statement_identifier "LAB_002153a8") (: ":") (if_statement "if (piVar4 == piVar7) {\n          *(uint *)param_3 = uVar13;\n          *(uint *)((int)param_3 + 4) = uVar9;\n          return -(iVar12 >> 0x1f);\n        }" (if "if") (parenthesized_expression "(piVar4 == piVar7)" (( "(") (binary_expression "piVar4 == piVar7" (identifier "piVar4") (== "==") (identifier "piVar7")) () ")")) (compound_statement "{\n          *(uint *)param_3 = uVar13;\n          *(uint *)((int)param_3 + 4) = uVar9;\n          return -(iVar12 >> 0x1f);\n        }" ({ "{") (expression_statement "*(uint *)param_3 = uVar13;" (assignment_expression "*(uint *)param_3 = uVar13" (pointer_expression "*(uint *)param_3" (* "*") (cast_expression "(uint *)param_3" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_3"))) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "*(uint *)((int)param_3 + 4) = uVar9;" (assignment_expression "*(uint *)((int)param_3 + 4) = uVar9" (pointer_expression "*(uint *)((int)param_3 + 4)" (* "*") (cast_expression "(uint *)((int)param_3 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_3 + 4)" (( "(") (binary_expression "(int)param_3 + 4" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "uVar9")) (; ";")) (return_statement "return -(iVar12 >> 0x1f);" (return "return") (unary_expression "-(iVar12 >> 0x1f)" (- "-") (parenthesized_expression "(iVar12 >> 0x1f)" (( "(") (binary_expression "iVar12 >> 0x1f" (identifier "iVar12") (>> ">>") (number_literal "0x1f")) () ")"))) (; ";")) (} "}")))) (expression_statement "piVar11 = piVar11 + 6;" (assignment_expression "piVar11 = piVar11 + 6" (identifier "piVar11") (= "=") (binary_expression "piVar11 + 6" (identifier "piVar11") (+ "+") (number_literal "6"))) (; ";")) (if_statement "if (-1 < piVar7[8] << 1) {\n                    \n          FUN_00213098();\n        }" (if "if") (parenthesized_expression "(-1 < piVar7[8] << 1)" (( "(") (binary_expression "-1 < piVar7[8] << 1" (number_literal "-1") (< "<") (binary_expression "piVar7[8] << 1" (subscript_expression "piVar7[8]" (identifier "piVar7") ([ "[") (number_literal "8") (] "]")) (<< "<<") (number_literal "1"))) () ")")) (compound_statement "{\n                    \n          FUN_00213098();\n        }" ({ "{") (expression_statement "FUN_00213098();" (call_expression "FUN_00213098()" (identifier "FUN_00213098") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar6 = *(int **)(this + 0x74);" (assignment_expression "piVar6 = *(int **)(this + 0x74)" (identifier "piVar6") (= "=") (pointer_expression "*(int **)(this + 0x74)" (* "*") (cast_expression "(int **)(this + 0x74)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0x74)" (( "(") (binary_expression "this + 0x74" (identifier "this") (+ "+") (number_literal "0x74")) () ")"))))) (; ";")) (expression_statement "uVar10 = uVar9 + piVar7[5];" (assignment_expression "uVar10 = uVar9 + piVar7[5]" (identifier "uVar10") (= "=") (binary_expression "uVar9 + piVar7[5]" (identifier "uVar9") (+ "+") (subscript_expression "piVar7[5]" (identifier "piVar7") ([ "[") (number_literal "5") (] "]")))) (; ";")) (expression_statement "uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar7[4];" (assignment_expression "uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar7[4]" (identifier "uVar13") (= "=") (binary_expression "(uint)(uVar10 < uVar9) + uVar13 + piVar7[4]" (binary_expression "(uint)(uVar10 < uVar9) + uVar13" (call_expression "(uint)(uVar10 < uVar9)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar10 < uVar9)" (( "(") (binary_expression "uVar10 < uVar9" (identifier "uVar10") (< "<") (identifier "uVar9")) () ")"))) (+ "+") (identifier "uVar13")) (+ "+") (subscript_expression "piVar7[4]" (identifier "piVar7") ([ "[") (number_literal "4") (] "]")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar6 != piVar11)" (( "(") (binary_expression "piVar6 != piVar11" (identifier "piVar6") (!= "!=") (identifier "piVar11")) () ")")) (; ";")) (} "}"))) (} "}"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))

/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* DWARF original prototype: bool find_starting_output_address(Output_section * this, Relobj *
   object, uint shndx, uint64_t * paddr) */

bool __thiscall
var_23::type_1::function_1
          (type_1 *this,type_2 *object,type_3 var_39,uint64_t *paddr)

{
  bool bVar1;
  type_2 *var_1;
  type_2 *var_25;
  int var_22;
  char *var_35;
  type_3 var_8;
  char *var_40;
  type_4 var_6;
  type_2 *var_14;
  type_3 var_12;
  type_5 *var_36;
  char *var_41;
  type_3 var_9;
  type_6 *var_10;
  type_7 *var_38;
  type_8 *__s;
  int var_29;
  char **__s_00;
  char *var_34;
  type_2 *this_01;
  int var_30;
  type_3 var_5;
  type_7 *var_37;
  type_4 var_7;
  type_4 var_13;
  char **var_32;
  type_2 *var_26;
  int iVar22;
  int iVar23;
  int var_2;
  type_9 *var_11;
  type_10 *var_19;
  type_11 *var_31;
  type_3 var_3;
  type_11 *var_33;
  char *apcStack_98 [2];
  type_2 *pRStack_90;
  type_3 uStack_8c;
  type_7 *pIStack_88;
  type_2 *pRStack_84;
  type_2 *pRStack_80;
  type_11 *pcStack_7c;
  type_10 *var_21;
  
  var_1 = (type_2 *)(*(type_11 *)PTR_find_merge_section_004c3f38)(object,var_39);
  var_19 = PTR_do_addralign_004c34e4;
  if (var_1 == (type_2 *)0x0) {
    return false;
  }
  var_2 = -(*(int *)&(this->super_Output_data).field_0x20 >> 0x1f);
  if (var_2 != 0) {
    var_3 = (type_3)this->first_input_offset_;
    var_5 = var_3 + (int)(this->super_Output_data).address_;
    var_7 = (this->input_sections_).
              super__Vector_base<var_23::Output_section::type_7,var_24::allocator<var_23::Output_section::type_7>var_4>
              ._M_impl._M_start;
    var_6 = (this->input_sections_).
             super__Vector_base<var_23::Output_section::type_7,var_24::allocator<var_23::Output_section::type_7>var_4>
             ._M_impl._M_finish;
    var_3 = (type_3)(var_5 < var_3) +
             *(int *)&this->first_input_offset_ + *(int *)&(this->super_Output_data).address_;
    if (var_6 == var_7) {
      return false;
    }
    do {
      while( true ) {
        var_8 = var_7->p2align_;
        var_9 = var_7->shndx_ + 4;
        if (var_8 != 0) break;
        var_10 = (type_6 *)(type_3)(var_9 < 4);
        var_9 = var_5;
        if (var_10 != (type_6 *)0x0) {
          var_14 = (var_7->u2_).object;
          var_11 = (var_14->super_Object)._vptr_Object[3];
          if (var_11 != (type_9 *)var_19) {
            var_12 = (*var_11)();
            var_9 = var_7->shndx_ + 4;
            goto LAB_0021540c;
          }
          var_12 = (var_14->super_Object).shnum_;
          var_8 = *(type_3 *)&(var_14->super_Object).field_0x2c;
          if (var_12 != 0 || var_8 != 0) goto LAB_00215368;
          goto LAB_002153a8;
        }
LAB_00215424:
        var_13 = var_7 + 1;
        var_5 = var_9 + *(int *)((int)&var_7->u1_ + 4);
        var_3 = (type_3)(var_5 < var_9) + var_3 + *(int *)&var_7->u1_;
        var_7 = var_13;
        if (var_6 == var_13) {
          return false;
        }
      }
      var_12 = var_8 - 1;
      var_8 = 1 << (var_12 & 0x1f);
      if ((var_12 & 0x20) == 0) {
        var_12 = 0;
      }
      else {
        var_12 = var_8;
        var_8 = 0;
      }
LAB_0021540c:
      var_10 = (type_6 *)(type_3)(var_9 < 4);
      if (var_12 != 0 || var_8 != 0) {
LAB_00215368:
        var_9 = var_5 - 1;
        bVar1 = var_9 < var_5;
        var_5 = var_9 + var_8 & -var_8;
        var_3 = (type_3)(var_9 + var_8 < var_9) + (type_3)bVar1 + (var_3 - 1) + var_12 &
                 -(type_3)(-var_8 != 0) - var_12;
      }
      if (var_10 == (type_6 *)0x0) {
        var_6 = (this->input_sections_).
                 super__Vector_base<var_23::Output_section::type_7,var_24::allocator<var_23::Output_section::type_7>var_4>
                 ._M_impl._M_finish;
        var_9 = var_5;
        goto LAB_00215424;
      }
      var_14 = (var_7->u2_).object;
      var_9 = var_5;
LAB_002153a8:
      if (var_1 == var_14) {
        *(type_3 *)paddr = var_3;
        *(type_3 *)((int)paddr + 4) = var_9;
        return var_15(var_2,0);
      }
      var_7 = var_7 + 1;
      if (-1 < *(int *)&(var_14->super_Object).offset_ << 1) {
                    /* WARNING: Subroutine does not return */
        Output_data_const_buffer::var_16((type_12 *)var_14,var_10);
      }
      var_6 = (this->input_sections_).
               super__Vector_base<var_23::Output_section::type_7,var_24::allocator<var_23::Output_section::type_7>var_4>
               ._M_impl._M_finish;
      var_5 = var_9 + *(int *)((int)&(var_14->super_Object).name_.field_2 + 8);
      var_3 = (type_3)(var_5 < var_9) +
               var_3 + *(int *)((int)&(var_14->super_Object).name_.field_2 + 4);
      if (var_6 == var_7) {
        return false;
      }
    } while( true );
  }
  var_38 = (type_7 *)&DAT_000000c5;
  this_01 = (type_2 *)(var_17 + -0x2a40);
  var_19 = PTR_do_gold_unreachable_004c1a30;
  (*(type_11 *)PTR_do_gold_unreachable_004c1a30)(var_18 + 0x3574);
  var_21 = var_19 + 0x2b3d44;
  var_14 = this_01;
  if (var_38->shndx_ == 0xffffffff) {
    var_26 = *(type_2 **)(var_19 + 0x2aea40);
    if ((this_01->super_Object)._vptr_Object != (type_9 **)0xffffffff) {
      var_1 = type_7::var_20((type_7 *)this_01);
      var_22 = (**(type_11 **)(var_21 + -0x70ac))(var_1,*(int *)(var_21 + -0x77f0) + 0x35d0);
LAB_00215650:
      if (var_22 != 0) {
        return false;
      }
      var_1 = *(type_2 **)(var_21 + -0x77f0);
      if (var_38->shndx_ == 0xffffffff) {
        if ((this_01->super_Object)._vptr_Object != (type_9 **)0xffffffff) {
          var_14 = type_7::var_20((type_7 *)this_01);
          var_2 = (**(type_11 **)(var_21 + -0x70ac))
                             (var_14,*(int *)(var_21 + -0x77f0) + 0x35dc);
          goto LAB_00215740;
        }
      }
      else {
LAB_00215690:
        var_25 = type_7::var_20(var_38);
        var_22 = (**(type_11 **)(var_21 + -0x70ac))
                          (var_25,&var_1[0x84].output_sections_.
                                   super__Vector_base<var_23::type_1*,var_24::allocator<var_23::type_1*>var_4>
                                   ._M_impl._M_finish);
        if ((this_01->super_Object)._vptr_Object == (type_9 **)0xffffffff) {
          if (var_22 != 0) {
            return false;
          }
        }
        else {
          var_25 = type_7::var_20((type_7 *)this_01);
          __s = (type_8 *)
                &var_1[0x84].output_sections_.
                 super__Vector_base<var_23::type_1*,var_24::allocator<var_23::type_1*>var_4>.
                 _M_impl._M_finish;
          var_2 = (**(type_11 **)(var_21 + -0x70ac))();
          if (var_22 != 0) {
            if (var_2 == 0) {
              return false;
            }
            goto LAB_002155ac;
          }
LAB_00215740:
          if (var_2 != 0) {
            return true;
          }
        }
      }
    }
    var_31 = *(type_11 **)(var_21 + -0x6ae0);
LAB_0021575c:
    var_2 = (*var_31)(&var_38[1].p2align_,0x2e,1);
    __s = (type_8 *)0x2e;
    var_25 = (type_2 *)&(this_01->super_Object).input_file_;
    var_22 = (**(type_11 **)(var_21 + -0x6ae0))(var_25,0x2e,1);
    if (var_2 == -1) {
      if (var_22 != -1) {
        return true;
      }
    }
    else if (var_22 == -1) {
      return false;
    }
    var_5 = *(type_3 *)((int)&(this_01->super_Object).name_.field_2 + 0xc);
    var_3 = var_38->section_order_index_;
    var_19 = var_21;
    if (var_5 != 0xffffffff) {
      if (var_3 != 0) {
        var_8 = *(type_3 *)((int)&(this_01->super_Object).name_.field_2 + 8);
        var_25 = (type_2 *)(type_3)(var_3 < var_8);
        if (var_8 != 0) {
          if (var_25 != (type_2 *)0x0) {
            return true;
          }
          if (var_8 < var_3) {
            return false;
          }
        }
      }
      var_1 = *(type_2 **)&var_38[1].u1_;
      var_26 = *(type_2 **)&(this_01->super_Object).offset_;
      var_14 = var_26;
      if (var_1 <= var_26) {
        var_14 = var_1;
      }
      if (var_14 != (type_2 *)0x0) {
        __s = (this_01->super_Object).input_file_;
        var_25 = (type_2 *)var_38[1].p2align_;
        var_2 = (**(type_11 **)(var_21 + -0x354c))();
        if (var_2 != 0) {
          return var_15((type_3)var_2 >> 0x1f,0);
        }
      }
      if ((int)var_1 - (int)var_26 != 0) {
        return var_15((type_3)((int)var_1 - (int)var_26) >> 0x1f,0);
      }
      var_3 = var_38[1].shndx_;
      bVar1 = var_3 < var_5;
joined_r0x002155bc:
      if (var_3 != 0xffffffff) {
        return bVar1;
      }
      goto LAB_00215844;
    }
  }
  else {
    var_26 = *(type_2 **)(var_19 + 0x2aea40);
    var_1 = *(type_2 **)(var_19 + 0x2ac554);
    var_25 = type_7::var_20(var_38);
    var_2 = (**(type_11 **)(var_21 + -0x70ac))(var_25,&var_1[0x84].super_Object.xindex_);
    if ((this_01->super_Object)._vptr_Object == (type_9 **)0xffffffff) {
      if (var_2 != 0) {
        return true;
      }
      var_31 = *(type_11 **)(var_21 + -0x6ae0);
      if (var_38->shndx_ != 0xffffffff) {
        var_1 = *(type_2 **)(var_21 + -0x77f0);
        goto LAB_00215690;
      }
      goto LAB_0021575c;
    }
    var_25 = type_7::var_20((type_7 *)this_01);
    __s = (type_8 *)&var_1[0x84].super_Object.xindex_;
    var_22 = (**(type_11 **)(var_21 + -0x70ac))();
    if (var_2 == 0) goto LAB_00215650;
    if (var_22 == 0) {
      return true;
    }
LAB_002155ac:
    var_5 = 0xffffffff;
    if (var_38[1].shndx_ != 0xffffffff) {
      var_3 = *(type_3 *)((int)&(this_01->super_Object).name_.field_2 + 0xc);
      bVar1 = var_38[1].shndx_ < var_3;
      goto joined_r0x002155bc;
    }
LAB_00215844:
    var_19 = var_21;
    Input_section_sort_entry::var_27((type_5 *)var_25,(char *)__s,(int)var_14);
  }
  var_29 = 0xcf5;
  var_31 = *(type_11 **)(var_19 + -0x7810);
  var_30 = *(int *)(var_19 + -0x7924) + -0x30e8;
  var_33 = Input_section_sort_init_fini_compare::var_28();
  (*var_31)(*(int *)(var_19 + -0x7924) + -0x48b4);
  iVar22 = var_29 + 0x1c;
  iVar23 = var_30 + 0x1c;
  pRStack_90 = this_01;
  uStack_8c = var_5;
  pIStack_88 = var_38;
  pRStack_84 = var_26;
  pRStack_80 = var_1;
  pcStack_7c = var_33;
  var_2 = (**(type_11 **)(var_31 + 0x2acef4))(iVar22,0x2e,1);
  var_22 = (**(type_11 **)(var_31 + 0x2acef4))(iVar23,0x2e,1);
  if (var_2 == -1) {
    if (var_22 != -1) {
      return false;
    }
    var_22 = *(int *)(var_31 + 0x2ac1e4);
    var_2 = (**(type_11 **)(var_31 + 0x2acf7c))(iVar22,var_22 + 0x3598);
    if ((var_2 == 0) ||
       (var_2 = (**(type_11 **)(var_31 + 0x2acf7c))(iVar22,*(int *)(var_31 + 0x2ac1e4) + 0x35b8),
       var_2 == 0)) {
      if (*(int *)(var_29 + 0x20) != *(int *)(var_30 + 0x20)) {
        return false;
      }
      if ((*(int *)(var_29 + 0x20) != 0) &&
         (var_2 = (**(type_11 **)(var_31 + 0x2b0488))
                             (*(type_13 *)(var_29 + 0x1c),*(type_13 *)(var_30 + 0x1c)),
         var_2 != 0)) {
        return false;
      }
      var_33 = *(type_11 **)(var_31 + 0x2acf7c);
    }
    else {
      var_33 = *(type_11 **)(var_31 + 0x2acf7c);
    }
    __s_00 = (char **)(var_22 + 0x3598);
    var_2 = (*var_33)(iVar23);
    if (var_2 == 0) {
      var_2 = *(int *)(var_30 + 0x20);
    }
    else {
      __s_00 = (char **)(*(int *)(var_31 + 0x2ac1e4) + 0x35b8);
      var_2 = (**(type_11 **)(var_31 + 0x2acf7c))(iVar23);
      if (var_2 != 0) goto LAB_00215a54;
      var_2 = *(int *)(var_30 + 0x20);
    }
    if (var_2 == *(int *)(var_29 + 0x20)) {
      if (var_2 != 0) {
        __s_00 = *(char ***)(var_29 + 0x1c);
        var_2 = (**(type_11 **)(var_31 + 0x2b0488))(*(type_13 *)(var_30 + 0x1c));
        if (var_2 != 0) {
          return true;
        }
      }
LAB_00215a54:
      while( true ) {
        var_3 = *(type_3 *)(var_30 + 0x18);
        var_5 = *(type_3 *)(var_29 + 0x14);
        if (var_3 == 0xffffffff) break;
        if (var_5 != 0) {
          var_8 = *(type_3 *)(var_30 + 0x14);
          if (var_8 != 0) {
            if (var_5 < var_8) {
              return true;
            }
            if (var_8 < var_5) {
              return false;
            }
          }
        }
        var_9 = *(type_3 *)(var_29 + 0x20);
        var_5 = *(type_3 *)(var_30 + 0x20);
        var_8 = var_5;
        if (var_9 <= var_5) {
          var_8 = var_9;
        }
        if (var_8 != 0) {
          __s_00 = *(char ***)(var_30 + 0x1c);
          var_2 = (**(type_11 **)(var_31 + 0x2b0488))(*(type_13 *)(var_29 + 0x1c));
          if (var_2 != 0) goto LAB_00215bf4;
        }
        var_2 = var_9 - var_5;
        if (var_2 != 0) {
LAB_00215bf4:
          return var_15((type_3)var_2 >> 0x1f,0);
        }
        if (*(type_3 *)(var_29 + 0x18) != 0xffffffff) {
          return *(type_3 *)(var_29 + 0x18) < var_3;
        }
        Input_section_sort_entry::var_27((type_5 *)0xffffffff,(char *)__s_00,var_8)
        ;
LAB_00215ae8:
        var_2 = (**(type_11 **)(var_31 + 0x2b0334))(var_3 + 7,apcStack_98,10);
        if (*apcStack_98[0] == '\0') {
          var_3 = 0xffff - var_2;
        }
        else {
LAB_00215994:
          var_3 = 0;
        }
LAB_00215998:
        var_32 = *(char ***)(var_30 + 0x1c);
        var_2 = (**(type_11 **)(var_31 + 0x2b0254))(var_5 + 0x35c0,var_32,7);
        if ((var_2 == 0) ||
           (var_2 = (**(type_11 **)(var_31 + 0x2b0254))
                               (*(int *)(var_31 + 0x2ac1e4) + 0x35c8,var_32,7), var_2 == 0)) {
          __s_00 = apcStack_98;
          var_2 = (**(type_11 **)(var_31 + 0x2b0334))((char *)((int)var_32 + 7),__s_00,10);
          if (*apcStack_98[0] != '\0') goto LAB_00215bfc;
          var_5 = 0xffff - var_2;
LAB_00215a3c:
          if (var_3 < var_5) {
            return true;
          }
        }
        else {
          var_2 = (**(type_11 **)(var_31 + 0x2b0254))
                             (*(int *)(var_31 + 0x2ac1e4) + 0x4150,var_32,0xc);
          if ((var_2 == 0) ||
             (__s_00 = var_32,
             var_2 = (**(type_11 **)(var_31 + 0x2b0254))
                                (*(int *)(var_31 + 0x2ac1e4) + 0x4160,var_32,0xc), var_2 == 0))
          {
            __s_00 = apcStack_98;
            var_5 = (**(type_11 **)(var_31 + 0x2b0334))(var_32 + 3,__s_00,10);
            if (*apcStack_98[0] == '\0') goto LAB_00215a3c;
          }
LAB_00215bfc:
          var_5 = 0;
        }
        if (var_5 < var_3) {
          return false;
        }
      }
      var_2 = 0xcf5;
      var_33 = *(type_11 **)(var_31 + 0x2ac1c4);
      var_22 = *(int *)(var_31 + 0x2ac0b0) + -0x30e8;
      (*var_33)(*(int *)(var_31 + 0x2ac0b0) + -0x48b4);
      if (*(type_3 *)(var_2 + 0x18) != 0xffffffff) {
        if (*(type_3 *)(var_22 + 0x18) != 0xffffffff) {
          if (*(type_3 *)(var_2 + 0x14) != *(type_3 *)(var_22 + 0x14)) {
            return *(type_3 *)(var_2 + 0x14) < *(type_3 *)(var_22 + 0x14);
          }
          return *(type_3 *)(var_2 + 0x18) < *(type_3 *)(var_22 + 0x18);
        }
      }
      var_34 = (char *)0xcf5;
      var_31 = *(type_11 **)(var_33 + 0x2abd98);
      var_30 = *(int *)(var_33 + 0x2abc84) + -0x30e8;
      (*var_31)(*(int *)(var_33 + 0x2abc84) + -0x48b4);
      var_35 = var_34;
      var_2 = var_30;
      var_22 = (**(type_11 **)(var_31 + 0x2ae23c))(*(type_13 *)(var_34 + 0x1c));
      var_36 = *(type_5 **)(var_30 + 0x1c);
      var_29 = (**(type_11 **)(var_31 + 0x2ae23c))();
      if (var_22 != var_29) {
        if (var_22 < 0) {
          return false;
        }
        if (-1 < var_29) {
          return var_22 < var_29;
        }
        return true;
      }
      if ((*(type_3 *)(var_34 + 0x18) != 0xffffffff) && (*(type_3 *)(var_30 + 0x18) != 0xffffffff)) {
        return *(type_3 *)(var_34 + 0x18) < *(type_3 *)(var_30 + 0x18);
      }
      var_22 = *(int *)(var_31 + 0x2ae200) + 0x3338;
      Input_section_sort_entry::var_27(var_36,var_35,var_2);
      var_8 = *(type_3 *)(var_35 + 0x20);
      var_3 = *(type_3 *)(var_2 + 0x20);
      var_5 = var_3;
      if (var_3 < var_8 == 0) {
        var_5 = var_8;
      }
      var_34 = var_35;
      var_9 = (type_3)(var_3 < var_8);
      if (var_5 != 0) {
        var_34 = *(char **)(var_2 + 0x1c);
        var_36 = *(type_5 **)(var_35 + 0x1c);
        var_22 = (**(type_11 **)(var_22 + 0x2aff08))();
        var_9 = var_5;
        if (var_22 != 0) goto LAB_00215e90;
      }
      var_22 = var_8 - var_3;
      if (var_22 != 0) {
LAB_00215e90:
        return var_15((type_3)var_22 >> 0x1f,0);
      }
      if ((*(type_5 **)(var_35 + 0x18) != (type_5 *)0xffffffff)
         && (var_36 = *(type_5 **)(var_2 + 0x18),
            var_36 != (type_5 *)0xffffffff)) {
        return *(type_5 **)(var_35 + 0x18) < var_36;
      }
      var_35 = type_5::var_27(var_36,var_34,var_9);
      var_38 = (type_7 *)var_36[2].input_section_.p2align_;
      var_37 = (type_7 *)var_36[2].input_section_.shndx_;
      if (var_37 == var_38) {
        return (bool)(char)var_35;
      }
      do {
        var_5 = 0xfffffffc;
        if (var_37->shndx_ + 4 < 4) {
          if (var_37->shndx_ == 0xfffffffc) {
            var_1 = (type_2 *)(((var_37->u2_).object)->super_Object).xindex_;
            goto LAB_00215f3c;
          }
        }
        else {
          var_1 = type_7::var_20(var_37);
LAB_00215f3c:
          var_5 = type_7::var_39(var_37);
          var_35 = *(char **)(var_34 + 8);
          var_41 = var_34 + 4;
          if (*(char **)(var_34 + 8) != (char *)0x0) {
            do {
              if ((*(type_2 **)(var_35 + 0x10) < var_1) ||
                 ((var_1 == *(type_2 **)(var_35 + 0x10) && (*(type_3 *)(var_35 + 0x14) < var_5)))) {
                var_40 = *(char **)(var_35 + 0xc);
              }
              else {
                var_40 = *(char **)(var_35 + 8);
                var_41 = var_35;
              }
              var_35 = var_40;
            } while (var_40 != (char *)0x0);
            if ((((var_34 + 4 != var_41) && (*(type_2 **)(var_41 + 0x10) <= var_1)) &&
                ((var_1 != *(type_2 **)(var_41 + 0x10) ||
                 (var_5 = (type_3)(var_5 < *(type_3 *)(var_41 + 0x14)), var_5 == 0)))) &&
               (var_5 = *(type_3 *)(var_41 + 0x18), var_5 != 0)) {
              var_38 = (type_7 *)var_36[2].input_section_.p2align_;
              var_37->section_order_index_ = var_5;
              var_5 = *(type_3 *)((int)&var_36[2].section_name_.field_2 + 4) & 0xffbfffff | 0x400000
              ;
              *(type_3 *)((int)&var_36[2].section_name_.field_2 + 4) = var_5;
              goto LAB_00215fdc;
            }
          }
          var_38 = (type_7 *)var_36[2].input_section_.p2align_;
        }
LAB_00215fdc:
        var_37 = var_37 + 1;
        if (var_38 == var_37) {
          return (bool)(char)var_5;
        }
      } while( true );
    }
  }
  else {
    var_5 = *(type_3 *)(var_31 + 0x2ac1e4);
    if (var_22 != -1) {
      var_3 = *(type_3 *)(var_29 + 0x1c);
      var_2 = (**(type_11 **)(var_31 + 0x2b0254))(var_5 + 0x35c0,var_3,7);
      if (var_2 == 0) goto LAB_00215ae8;
      var_2 = (**(type_11 **)(var_31 + 0x2b0254))(*(int *)(var_31 + 0x2ac1e4) + 0x35c8,var_3,7);
      if (var_2 == 0) goto LAB_00215ae8;
      var_2 = (**(type_11 **)(var_31 + 0x2b0254))(*(int *)(var_31 + 0x2ac1e4) + 0x4150,var_3,0xc);
      if ((var_2 != 0) &&
         (var_2 = (**(type_11 **)(var_31 + 0x2b0254))
                             (*(int *)(var_31 + 0x2ac1e4) + 0x4160,var_3,0xc), var_2 != 0))
      goto LAB_00215994;
      var_3 = (**(type_11 **)(var_31 + 0x2b0334))(var_3 + 0xc,apcStack_98,10);
      if (*apcStack_98[0] == '\0') goto LAB_00215998;
      goto LAB_00215994;
    }
  }
  return true;
}


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

/* gold::Output_section::MASKED(gold::Relobj const*, unsigned int, unsigned
   long long*) const */

int __thiscall
gold::Output_section::MASKED
          (Output_section *this,Relobj *param_1,uint param_2,ulonglong *param_3)

{
  bool bVar1;
  longlong lVar2;
  undefined *puVar3;
  int *piVar4;
  uint uVar5;
  int *piVar6;
  int *piVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  int *piVar11;
  int iVar12;
  uint uVar13;
  ulonglong uVar14;
  
  piVar4 = (int *)(*(code *)PTR_find_merge_section_004c3f38)(param_1,param_2);
  puVar3 = PTR_do_addralign_004c34e4;
  if (piVar4 != (int *)0x0) {
    iVar12 = *(int *)(this + 0x20);
    if (-(iVar12 >> 0x1f) == 0) {
      iVar12 = (*(code *)PTR_do_gold_unreachable_004c1a30)
                         (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,
                          PTR_s_in_a_linker_script_004c191c + -0x2a40);
      return iVar12;
    }
    uVar10 = *(uint *)(this + 0x84) + *(int *)(this + 0xc);
    piVar11 = *(int **)(this + 0x70);
    piVar6 = *(int **)(this + 0x74);
    uVar13 = (uint)(uVar10 < *(uint *)(this + 0x84)) + *(int *)(this + 0x80) + *(int *)(this + 8);
    if (piVar6 != piVar11) {
      do {
        while( true ) {
          uVar9 = *piVar11 + 4;
          if (piVar11[1] == 0) break;
          uVar8 = piVar11[1] - 1;
          uVar5 = 1 << (uVar8 & 0x1f);
          if ((uVar8 & 0x20) == 0) {
            uVar14 = (ulonglong)uVar5;
          }
          else {
            uVar14 = (ulonglong)uVar5 << 0x20;
          }
LAB_0021540c:
          bVar1 = uVar9 < 4;
          if (uVar14 == 0) {
            if (bVar1) {
LAB_002153a4:
              piVar7 = (int *)piVar11[4];
              uVar9 = uVar10;
              goto LAB_002153a8;
            }
          }
          else {
LAB_00215368:
            lVar2 = uVar14 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar13 - 1),uVar10 - 1);
            uVar10 = (uint)lVar2 & -(int)uVar14;
            uVar13 = (uint)((ulonglong)lVar2 >> 0x20) &
                     -(uint)(-(int)uVar14 != 0) - (int)(uVar14 >> 0x20);
            if (bVar1) goto LAB_002153a4;
          }
          piVar6 = *(int **)(this + 0x74);
          uVar9 = uVar10;
LAB_00215424:
          piVar7 = piVar11 + 6;
          uVar10 = uVar9 + piVar11[3];
          uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar11[2];
          piVar11 = piVar7;
          if (piVar6 == piVar7) {
            return 0;
          }
        }
        bVar1 = uVar9 < 4;
        uVar9 = uVar10;
        if (!bVar1) goto LAB_00215424;
        piVar7 = (int *)piVar11[4];
        if (*(code **)(*piVar7 + 0xc) != (code *)puVar3) {
          uVar14 = (**(code **)(*piVar7 + 0xc))();
          uVar9 = *piVar11 + 4;
          goto LAB_0021540c;
        }
        uVar14 = *(ulonglong *)(piVar7 + 10);
        if (piVar7[10] != 0 || piVar7[0xb] != 0) goto LAB_00215368;
LAB_002153a8:
        if (piVar4 == piVar7) {
          *(uint *)param_3 = uVar13;
          *(uint *)((int)param_3 + 4) = uVar9;
          return -(iVar12 >> 0x1f);
        }
        piVar11 = piVar11 + 6;
        if (-1 < piVar7[8] << 1) {
                    /* WARNING: Subroutine does not return */
          FUN_00213098();
        }
        piVar6 = *(int **)(this + 0x74);
        uVar10 = uVar9 + piVar7[5];
        uVar13 = (uint)(uVar10 < uVar9) + uVar13 + piVar7[4];
      } while (piVar6 != piVar11);
    }
  }
  return 0;
}

