
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Type propagation algorithm not settling */
/* DWARF original prototype: void do_read_symbols(Mips_relobj<32,_false> * this, Read_symbols_data *
   sd) */

void __thiscall
anon_unknown.dwarf_d7d43e::Mips_relobj<32,_false>::do_read_symbols
          (Mips_relobj<32,_false> *this,Read_symbols_data *sd)

{
  byte bVar1;
  ushort uVar2;
  Input_file *pIVar3;
  Format FVar4;
  section_size_type sVar5;
  pointer pcVar6;
  bool bVar7;
  uchar *puVar8;
  uint *puVar9;
  uchar *puVar10;
  Attributes_section_data *this_00;
  ushort *puVar11;
  Mips_abiflags<false> *pMVar12;
  uint uVar13;
  Valtype *pVVar14;
  uchar *puVar15;
  char *format;
  char *pcVar16;
  int iVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  byte *pbVar21;
  byte *pbVar22;
  byte *pbVar23;
  bool bVar24;
  bool bVar25;
  bool bVar26;
  byte bVar27;
  Object *in_stack_ffffffb4;
  uint local_28;
  uint *local_24;
  
  bVar27 = 0;
  gold::Sized_relobj_file<32,_false>::base_read_symbols
            (&this->super_Sized_relobj_file<32,_false>,sd);
  pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.
           super_Object.input_file_;
  if (pIVar3 == (Input_file *)0x0) {
LAB_001bbcba:
                    /* WARNING: Subroutine does not return */
    gold::Object::input_file(in_stack_ffffffb4);
  }
  FVar4 = pIVar3->format_;
  if (FVar4 == FORMAT_ELF) {
    puVar8 = gold::Object::get_view((Object *)this,0,0x34,true,false);
    this->processor_specific_flags_ = *(Elf_Word *)(puVar8 + 0x24);
    puVar8 = sd->section_names->data_;
    std::vector<bool,_std::allocator<bool>_>::resize
              (&this->section_is_mips16_fn_stub_,
               (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj
               .super_Object.shnum_,false);
    std::vector<bool,_std::allocator<bool>_>::resize
              (&this->section_is_mips16_call_stub_,
               (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj
               .super_Object.shnum_,false);
    std::vector<bool,_std::allocator<bool>_>::resize
              (&this->section_is_mips16_call_fp_stub_,
               (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj
               .super_Object.shnum_,false);
    bVar7 = false;
    puVar10 = sd->section_headers->data_;
    local_24 = (uint *)(puVar10 + 0x28);
    if (1 < (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.
            super_Object.shnum_) {
      uVar19 = *(uint *)(puVar10 + 0x2c);
      local_28 = 1;
      if (uVar19 != 2) goto LAB_001bb8fa;
      local_28 = 1;
      do {
        if (0x10 < local_24[5]) {
          bVar7 = true;
        }
LAB_001bba8f:
        iVar17 = 10;
        bVar24 = CARRY4((uint)puVar8,*local_24);
        pbVar23 = puVar8 + *local_24;
        bVar26 = pbVar23 == (byte *)0x0;
        pbVar21 = (byte *)".mips16.fn";
        pbVar22 = pbVar23;
        do {
          if (iVar17 == 0) break;
          iVar17 = iVar17 + -1;
          bVar24 = *pbVar21 < *pbVar22;
          bVar26 = *pbVar21 == *pbVar22;
          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;
          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;
        } while (bVar26);
        uVar13 = local_28 >> 5;
        puVar9 = (this->section_is_mips16_fn_stub_).super__Bvector_base<std::allocator<bool>_>.
                 _M_impl.super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p + uVar13;
        uVar20 = 1 << ((byte)local_28 & 0x1f);
        uVar19 = *puVar9;
        bVar25 = false;
        bVar24 = (!bVar24 && !bVar26) == bVar24;
        uVar18 = uVar19 & ~uVar20;
        if (bVar24) {
          uVar18 = uVar19 | uVar20;
        }
        *puVar9 = uVar18;
        iVar17 = 0xd;
        pbVar21 = (byte *)".mips16.call.";
        pbVar22 = pbVar23;
        do {
          if (iVar17 == 0) break;
          iVar17 = iVar17 + -1;
          bVar25 = *pbVar21 < *pbVar22;
          bVar24 = *pbVar21 == *pbVar22;
          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;
          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;
        } while (bVar24);
        puVar9 = (this->section_is_mips16_call_stub_).super__Bvector_base<std::allocator<bool>_>.
                 _M_impl.super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p + uVar13;
        if ((!bVar25 && !bVar24) == bVar25) {
          uVar19 = *puVar9 | uVar20;
        }
        else {
          uVar19 = ~uVar20 & *puVar9;
        }
        bVar26 = uVar19 == 0;
        bVar24 = false;
        *puVar9 = uVar19;
        iVar17 = 0x10;
        pbVar21 = (byte *)".mips16.call.fp.";
        pbVar22 = pbVar23;
        do {
          if (iVar17 == 0) break;
          iVar17 = iVar17 + -1;
          bVar24 = *pbVar21 < *pbVar22;
          bVar26 = *pbVar21 == *pbVar22;
          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;
          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;
        } while (bVar26);
        puVar9 = (this->section_is_mips16_call_fp_stub_).super__Bvector_base<std::allocator<bool>_>.
                 _M_impl.super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p + uVar13;
        if ((!bVar24 && !bVar26) == bVar24) {
          uVar20 = uVar20 | *puVar9;
        }
        else {
          uVar20 = ~uVar20 & *puVar9;
        }
        bVar26 = uVar20 == 0;
        bVar24 = false;
        *puVar9 = uVar20;
        iVar17 = 5;
        pbVar21 = &DAT_0044d56a;
        do {
          if (iVar17 == 0) break;
          iVar17 = iVar17 + -1;
          bVar24 = *pbVar23 < *pbVar21;
          bVar26 = *pbVar23 == *pbVar21;
          pbVar23 = pbVar23 + (uint)bVar27 * -2 + 1;
          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;
        } while (bVar26);
        if ((!bVar24 && !bVar26) == bVar24) {
          if (this->pdr_shndx_ != 0xffffffff) {
                    /* WARNING: Subroutine does not return */
            gold::do_gold_unreachable("../../gold/mips.cc",0x1b6f,"do_read_symbols");
          }
          this->pdr_shndx_ = local_28;
        }
        local_28 = local_28 + 1;
        puVar9 = local_24 + 10;
        if ((this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.
            super_Object.shnum_ <= local_28) {
          if (bVar7) {
            return;
          }
          goto LAB_001bb77c;
        }
        uVar19 = local_24[0xb];
        local_24 = puVar9;
      } while (uVar19 == 2);
LAB_001bb8fa:
      if (uVar19 != 3) {
        if (uVar19 == 0x70000006) {
          this->field_0x1e4 = this->field_0x1e4 | 4;
          pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.
                   super_Relobj.super_Object.input_file_;
          if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;
          pVVar14 = (Valtype *)
                    gold::File_read::get_view
                              (&pIVar3->file_,
                               (this->super_Sized_relobj_file<32,_false>).
                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,
                               (longlong)(int)local_24[4],local_24[5],true,false);
          this->gp_ = pVVar14[5];
          this->gprmask_ = *pVVar14;
          this->cprmask1_ = pVVar14[1];
          this->cprmask2_ = pVVar14[2];
          this->cprmask3_ = pVVar14[3];
          this->cprmask4_ = pVVar14[4];
          uVar19 = local_24[1];
        }
        if (uVar19 == 0x6ffffff5) {
          if (this->attributes_section_data_ != (Attributes_section_data *)0x0) {
                    /* WARNING: Subroutine does not return */
            gold::do_gold_unreachable("../../gold/mips.cc",0x1adf,"do_read_symbols");
          }
          sVar5 = local_24[5];
          pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.
                   super_Relobj.super_Object.input_file_;
          if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;
          puVar10 = gold::File_read::get_view
                              (&pIVar3->file_,
                               (this->super_Sized_relobj_file<32,_false>).
                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,
                               (longlong)(int)local_24[4],sVar5,true,false);
          this_00 = (Attributes_section_data *)operator_new(8);
                    /* try { // try from 001bb97b to 001bb97f has its CatchHandler @ 001bbd31 */
          gold::Attributes_section_data::Attributes_section_data(this_00,puVar10,sVar5);
          this->attributes_section_data_ = this_00;
          uVar19 = local_24[1];
        }
        if (uVar19 == 0x7000002a) {
          if (this->abiflags_ != (Mips_abiflags<false> *)0x0) {
                    /* WARNING: Subroutine does not return */
            gold::do_gold_unreachable("../../gold/mips.cc",0x1aeb,"do_read_symbols");
          }
          pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.
                   super_Relobj.super_Object.input_file_;
          if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;
          puVar11 = (ushort *)
                    gold::File_read::get_view
                              (&pIVar3->file_,
                               (this->super_Sized_relobj_file<32,_false>).
                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,
                               (longlong)(int)local_24[4],local_24[5],true,false);
          pMVar12 = (Mips_abiflags<false> *)operator_new(0x18);
          pMVar12->version = 0;
          pMVar12->isa_level = '\0';
          pMVar12->isa_rev = '\0';
          pMVar12->gpr_size = '\0';
          pMVar12->cpr1_size = '\0';
          pMVar12->cpr2_size = '\0';
          pMVar12->fp_abi = '\0';
          uVar2 = *puVar11;
          pMVar12->isa_ext = 0;
          pMVar12->ases = 0;
          pMVar12->flags1 = 0;
          pMVar12->flags2 = 0;
          this->abiflags_ = pMVar12;
          pMVar12->version = uVar2;
          if (uVar2 != 0) {
            pcVar6 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.
                     super_Relobj.super_Object.name_._M_dataplus._M_p;
            pcVar16 = (char *)gettext("%s: .MIPS.abiflags section has unsupported version %u");
            gold::gold_error(pcVar16,pcVar6,(uint)uVar2);
            return;
          }
          pMVar12->isa_level = (Valtype8)puVar11[1];
          pMVar12->isa_rev = *(Valtype8 *)((int)puVar11 + 3);
          pMVar12->gpr_size = (Valtype8)puVar11[2];
          pMVar12->cpr1_size = *(Valtype8 *)((int)puVar11 + 5);
          pMVar12->cpr2_size = (Valtype8)puVar11[3];
          pMVar12->fp_abi = *(Valtype8 *)((int)puVar11 + 7);
          pMVar12->isa_ext = *(Valtype32 *)(puVar11 + 4);
          pMVar12->ases = *(Valtype32 *)(puVar11 + 6);
          pMVar12->flags1 = *(Valtype32 *)(puVar11 + 8);
          pMVar12->flags2 = *(Valtype32 *)(puVar11 + 10);
          uVar19 = local_24[1];
        }
        if (uVar19 == 0x7000000d) {
          sVar5 = local_24[5];
          pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.
                   super_Relobj.super_Object.input_file_;
          if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;
          puVar15 = gold::File_read::get_view
                              (&pIVar3->file_,
                               (this->super_Sized_relobj_file<32,_false>).
                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,
                               (longlong)(int)local_24[4],sVar5,true,false);
          puVar10 = puVar15 + sVar5;
          for (; puVar15 + 8 <= puVar10; puVar15 = puVar15 + bVar1) {
            bVar1 = puVar15[1];
            if (bVar1 < 8) {
              pcVar6 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.
                       super_Relobj.super_Object.name_._M_dataplus._M_p;
              pcVar16 = ".MIPS.options";
              if ((this->field_0x1e4 & 2) == 0) {
                pcVar16 = ".options";
              }
              format = (char *)gettext(
                                      "%s: Warning: bad `%s\' option size %u smaller than its header"
                                      );
              gold::gold_error(format,pcVar6,pcVar16,(uint)bVar1);
              bVar7 = true;
              goto LAB_001bba8f;
            }
            if (*puVar15 == '\x01') {
              this->gp_ = *(Mips_address *)(puVar15 + 0x1c);
            }
          }
        }
        bVar7 = true;
      }
      goto LAB_001bba8f;
    }
  }
  else if (FVar4 != FORMAT_BINARY) {
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/mips.cc",0x1a9a,"do_read_symbols");
  }
LAB_001bb77c:
  this->field_0x1e4 = this->field_0x1e4 & 0xf7;
  return;
}



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

void FUN_001bb730(char *param_1,int *param_2)

{
  byte bVar1;
  short sVar2;
  uint uVar3;
  bool bVar4;
  int iVar5;
  undefined4 uVar6;
  undefined4 uVar7;
  short *psVar8;
  short *psVar9;
  undefined4 *puVar10;
  char *pcVar11;
  uint uVar12;
  int iVar13;
  char cVar14;
  undefined4 extraout_EDX;
  undefined4 extraout_EDX_00;
  uint uVar15;
  char *pcVar16;
  uint uVar17;
  byte *pbVar18;
  uint *puVar19;
  byte *pbVar20;
  byte *pbVar21;
  bool bVar22;
  bool bVar23;
  bool bVar24;
  byte bVar25;
  uint local_28;
  uint *local_24;
  
  bVar25 = 0;
  FUN_002b3240(param_1,param_2);
  if (*(int *)(param_1 + 0x1c) == 0) {
LAB_001bbcba:
    FUN_00175c50();
LAB_001bbcbf:
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/mips.cc",0x1b6f,"do_read_symbols");
  }
  iVar5 = *(int *)(*(int *)(param_1 + 0x1c) + 0x90);
  if (iVar5 == 1) {
    iVar5 = FUN_001cc8a0(param_1,0,0,0x34,1,0);
    *(undefined4 *)(param_1 + 0x13c) = *(undefined4 *)(iVar5 + 0x24);
    uVar3 = *(uint *)(param_2[1] + 8);
    FUN_00104420(param_1 + 0x1ec,*(undefined4 *)(param_1 + 0x28),0);
    FUN_00104420(param_1 + 0x200,*(undefined4 *)(param_1 + 0x28),0);
    FUN_00104420(param_1 + 0x214,*(undefined4 *)(param_1 + 0x28),0);
    bVar4 = false;
    local_24 = (uint *)(*(int *)(*param_2 + 8) + 0x28);
    if (1 < *(uint *)(param_1 + 0x28)) {
      uVar15 = *(uint *)(*(int *)(*param_2 + 8) + 0x2c);
      local_28 = 1;
      uVar6 = extraout_EDX;
      pcVar16 = ".MIPS.options";
      if (uVar15 != 2) goto LAB_001bb8fa;
      local_28 = 1;
      do {
        if (0x10 < local_24[5]) {
          bVar4 = true;
        }
LAB_001bba8f:
        iVar5 = 10;
        bVar22 = CARRY4(uVar3,*local_24);
        pbVar21 = (byte *)(uVar3 + *local_24);
        bVar24 = pbVar21 == (byte *)0x0;
        pbVar18 = (byte *)".mips16.fn";
        pbVar20 = pbVar21;
        do {
          if (iVar5 == 0) break;
          iVar5 = iVar5 + -1;
          bVar22 = *pbVar18 < *pbVar20;
          bVar24 = *pbVar18 == *pbVar20;
          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;
          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;
        } while (bVar24);
        iVar5 = (local_28 >> 5) * 4;
        uVar17 = 1 << ((byte)local_28 & 0x1f);
        uVar15 = *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5);
        bVar23 = false;
        bVar22 = (!bVar22 && !bVar24) == bVar22;
        uVar12 = uVar15 & ~uVar17;
        if (bVar22) {
          uVar12 = uVar15 | uVar17;
        }
        *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5) = uVar12;
        iVar13 = 0xd;
        pbVar18 = (byte *)".mips16.call.";
        pbVar20 = pbVar21;
        do {
          if (iVar13 == 0) break;
          iVar13 = iVar13 + -1;
          bVar23 = *pbVar18 < *pbVar20;
          bVar22 = *pbVar18 == *pbVar20;
          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;
          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;
        } while (bVar22);
        puVar19 = (uint *)(*(int *)(param_1 + 0x200) + iVar5);
        if ((!bVar23 && !bVar22) == bVar23) {
          uVar15 = *puVar19 | uVar17;
        }
        else {
          uVar15 = ~uVar17 & *puVar19;
        }
        bVar24 = uVar15 == 0;
        bVar22 = false;
        *puVar19 = uVar15;
        iVar13 = 0x10;
        pbVar18 = (byte *)".mips16.call.fp.";
        pbVar20 = pbVar21;
        do {
          if (iVar13 == 0) break;
          iVar13 = iVar13 + -1;
          bVar22 = *pbVar18 < *pbVar20;
          bVar24 = *pbVar18 == *pbVar20;
          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;
          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;
        } while (bVar24);
        cVar14 = (!bVar22 && !bVar24) - bVar22;
        uVar6 = CONCAT31((int3)(uVar15 >> 8),cVar14);
        puVar19 = (uint *)(iVar5 + *(int *)(param_1 + 0x214));
        if (cVar14 == '\0') {
          uVar17 = uVar17 | *puVar19;
        }
        else {
          uVar17 = ~uVar17 & *puVar19;
        }
        bVar24 = uVar17 == 0;
        bVar22 = false;
        *puVar19 = uVar17;
        iVar5 = 5;
        pbVar18 = &DAT_0044d56a;
        do {
          if (iVar5 == 0) break;
          iVar5 = iVar5 + -1;
          bVar22 = *pbVar21 < *pbVar18;
          bVar24 = *pbVar21 == *pbVar18;
          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;
          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;
        } while (bVar24);
        if ((!bVar22 && !bVar24) == bVar22) {
          if (*(int *)(param_1 + 0x228) != -1) goto LAB_001bbcbf;
          *(uint *)(param_1 + 0x228) = local_28;
        }
        local_28 = local_28 + 1;
        puVar19 = local_24 + 10;
        if (*(uint *)(param_1 + 0x28) <= local_28) {
          if (bVar4) {
            return;
          }
          goto LAB_001bb77c;
        }
        uVar15 = local_24[0xb];
        pcVar16 = param_1;
        local_24 = puVar19;
      } while (uVar15 == 2);
LAB_001bb8fa:
      if (uVar15 != 3) {
        if (uVar15 == 0x70000006) {
          param_1[0x1e4] = param_1[0x1e4] | 4;
          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;
          puVar10 = (undefined4 *)
                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),
                                 *(undefined4 *)(param_1 + 0x24),local_24[4],
                                 (int)local_24[4] >> 0x1f,local_24[5],1,0);
          *(undefined4 *)(param_1 + 0x1e0) = puVar10[5];
          *(undefined4 *)(param_1 + 0x234) = *puVar10;
          *(undefined4 *)(param_1 + 0x238) = puVar10[1];
          *(undefined4 *)(param_1 + 0x23c) = puVar10[2];
          uVar6 = puVar10[3];
          *(undefined4 *)(param_1 + 0x240) = uVar6;
          *(undefined4 *)(param_1 + 0x244) = puVar10[4];
          uVar15 = local_24[1];
          pcVar16 = param_1;
        }
        if (uVar15 == 0x6ffffff5) {
          if (*(int *)(param_1 + 0x22c) != 0) {
                    /* WARNING: Subroutine does not return */
            FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);
          }
          uVar15 = local_24[5];
          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;
          uVar6 = FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),
                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,
                               uVar15,1,0);
          uVar7 = FUN_003ac4d0(8);
                    /* try { // try from 001bb97b to 001bb97f has its CatchHandler @ 001bbd31 */
          FUN_00225ca0(uVar7,uVar6,uVar15);
          *(undefined4 *)(param_1 + 0x22c) = uVar7;
          uVar15 = local_24[1];
          uVar6 = extraout_EDX_00;
        }
        if (uVar15 == 0x7000002a) {
          if (*(int *)(param_1 + 0x230) != 0) {
                    /* WARNING: Subroutine does not return */
            FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);
          }
          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;
          psVar8 = (short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,
                                         *(undefined4 *)(param_1 + 0x20),
                                         *(undefined4 *)(param_1 + 0x24),local_24[4],
                                         (int)local_24[4] >> 0x1f,local_24[5],1,0);
          psVar9 = (short *)FUN_003ac4d0(0x18);
          psVar9[0] = 0;
          psVar9[1] = 0;
          psVar9[2] = 0;
          psVar9[3] = 0;
          sVar2 = *psVar8;
          psVar9[4] = 0;
          psVar9[5] = 0;
          psVar9[6] = 0;
          psVar9[7] = 0;
          psVar9[8] = 0;
          psVar9[9] = 0;
          psVar9[10] = 0;
          psVar9[0xb] = 0;
          *(short **)(param_1 + 0x230) = psVar9;
          *psVar9 = sVar2;
          if (sVar2 != 0) {
            uVar6 = *(undefined4 *)(param_1 + 4);
            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");
            FUN_0023b810(uVar7,uVar6,sVar2);
            return;
          }
          *(char *)(psVar9 + 1) = (char)psVar8[1];
          *(undefined1 *)((int)psVar9 + 3) = *(undefined1 *)((int)psVar8 + 3);
          *(char *)(psVar9 + 2) = (char)psVar8[2];
          *(undefined1 *)((int)psVar9 + 5) = *(undefined1 *)((int)psVar8 + 5);
          *(char *)(psVar9 + 3) = (char)psVar8[3];
          *(undefined1 *)((int)psVar9 + 7) = *(undefined1 *)((int)psVar8 + 7);
          *(undefined4 *)(psVar9 + 4) = *(undefined4 *)(psVar8 + 4);
          *(undefined4 *)(psVar9 + 6) = *(undefined4 *)(psVar8 + 6);
          *(undefined4 *)(psVar9 + 8) = *(undefined4 *)(psVar8 + 8);
          *(undefined4 *)(psVar9 + 10) = *(undefined4 *)(psVar8 + 10);
          uVar15 = local_24[1];
        }
        if (uVar15 == 0x7000000d) {
          uVar15 = local_24[5];
          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;
          pcVar11 = (char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,
                                         *(undefined4 *)(param_1 + 0x20),
                                         *(undefined4 *)(param_1 + 0x24),local_24[4],
                                         (int)local_24[4] >> 0x1f,uVar15,1,0);
          pcVar16 = pcVar11 + uVar15;
          for (; pcVar11 + 8 <= pcVar16; pcVar11 = pcVar11 + bVar1) {
            bVar1 = pcVar11[1];
            if (bVar1 < 8) {
              uVar6 = *(undefined4 *)(param_1 + 4);
              pcVar16 = ".MIPS.options";
              if ((param_1[0x1e4] & 2U) == 0) {
                pcVar16 = ".options";
              }
              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");
              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);
              bVar4 = true;
              goto LAB_001bba8f;
            }
            if (*pcVar11 == '\x01') {
              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);
            }
          }
        }
        bVar4 = true;
      }
      goto LAB_001bba8f;
    }
  }
  else if (iVar5 != 2) {
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/mips.cc",0x1a9a,"do_read_symbols");
  }
LAB_001bb77c:
  param_1[0x1e4] = param_1[0x1e4] & 0xf7;
  return;
}


CALL 0x00074f02
ADD EAX,0x42e8cb
PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
PUSH EBX
MOV EBX,EAX
SUB ESP,0x44
MOV ESI,dword ptr [EBP + 0xc]
MOV dword ptr [EBP + -0x1c],EAX
PUSH ESI
PUSH dword ptr [EBP + 0x8]
CALL 0x002b3240
MOV EAX,dword ptr [EBP + 0x8]
ADD ESP,0x10
MOV EAX,dword ptr [EAX + 0x1c]
TEST EAX,EAX
JZ 0x001bbcba
MOV EAX,dword ptr [EAX + 0x90]
MOV dword ptr [EBP + -0x24],EAX
CMP EAX,0x1
JZ 0x001bb790
CMP EAX,0x2
JNZ 0x001bbd15
MOV EAX,dword ptr [EBP + 0x8]
AND byte ptr [EAX + 0x1e4],0xf7
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x8
PUSH 0x0
PUSH 0x1
PUSH 0x34
PUSH 0x0
PUSH 0x0
PUSH dword ptr [EBP + 0x8]
CALL 0x001cc8a0
MOV EBX,dword ptr [EBP + 0x8]
ADD ESP,0x1c
MOV EAX,dword ptr [EAX + 0x24]
MOV dword ptr [EBX + 0x13c],EAX
MOV EAX,dword ptr [ESI + 0x4]
MOV EAX,dword ptr [EAX + 0x8]
PUSH 0x0
PUSH dword ptr [EBX + 0x28]
MOV dword ptr [EBP + -0x34],EAX
MOV EAX,EBX
ADD EAX,0x1ec
PUSH EAX
CALL 0x00104420
MOV EAX,dword ptr [EBP + 0x8]
ADD ESP,0xc
PUSH 0x0
ADD EAX,0x200
PUSH dword ptr [EAX + 0xfffffe28]
PUSH EAX
CALL 0x00104420
MOV EAX,dword ptr [EBP + 0x8]
ADD ESP,0xc
PUSH 0x0
ADD EAX,0x214
PUSH dword ptr [EAX + 0xfffffe14]
PUSH EAX
CALL 0x00104420
MOV EAX,dword ptr [ESI]
ADD ESP,0x10
MOV byte ptr [EBP + -0x2d],0x0
MOV EAX,dword ptr [EAX + 0x8]
ADD EAX,0x28
MOV dword ptr [EBP + -0x20],EAX
MOV EAX,dword ptr [EBP + -0x1c]
LEA EBX,[EAX + 0xffe87446]
LEA EAX,[EAX + 0xffe8744b]
MOV dword ptr [EBP + -0x3c],EAX
MOV EAX,dword ptr [EBP + 0x8]
MOV dword ptr [EBP + -0x38],EBX
CMP dword ptr [EAX + 0x28],0x1
JBE 0x001bb77c
MOV EAX,dword ptr [EBP + -0x20]
MOV EAX,dword ptr [EAX + 0x4]
CMP EAX,0x2
JNZ 0x001bb8fa
LEA ESI,[ESI]
MOV EAX,dword ptr [EBP + -0x20]
MOVZX EBX,byte ptr [EBP + -0x2d]
CMP dword ptr [EAX + 0x14],0x11
MOV EAX,0x1
CMOVNC EBX,EAX
MOV byte ptr [EBP + -0x2d],BL
JMP 0x001bba8f
MOV EDX,dword ptr [ESI]
OR EDX,EBX
MOV EDI,dword ptr [EBP + -0x1c]
MOV dword ptr [ESI],EDX
MOV ECX,0x10
LEA ESI,[EDI + 0xffe8746d]
MOV EDI,dword ptr [EBP + -0x28]
CMPSB.REPE ES:EDI,ESI
MOV EDI,dword ptr [EBP + 0x8]
SETA DL
SBB DL,0x0
ADD EAX,dword ptr [EDI + 0x214]
TEST DL,DL
JNZ 0x001bbb20
OR EBX,dword ptr [EAX]
MOV dword ptr [EAX],EBX
MOV EAX,dword ptr [EBP + -0x1c]
MOV ECX,0x5
MOV ESI,dword ptr [EBP + -0x28]
LEA EDI,[EAX + 0xffe6356a]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x001bb8d4
MOV EAX,dword ptr [EBP + 0x8]
CMP dword ptr [EAX + 0x228],-0x1
JNZ 0x001bbcbf
MOV EAX,dword ptr [EBP + 0x8]
MOV EBX,dword ptr [EBP + -0x24]
MOV dword ptr [EAX + 0x228],EBX
MOV EBX,dword ptr [EBP + 0x8]
ADD dword ptr [EBP + -0x24],0x1
ADD dword ptr [EBP + -0x20],0x28
MOV EAX,dword ptr [EBP + -0x24]
CMP EAX,dword ptr [EBX + 0x28]
JNC 0x001bbc80
MOV EAX,dword ptr [EBP + -0x20]
MOV EAX,dword ptr [EAX + 0x4]
CMP EAX,0x2
JZ 0x001bb848
CMP EAX,0x3
JZ 0x001bba8f
CMP EAX,0x70000006
JZ 0x001bbb30
CMP EAX,0x6ffffff5
JNZ 0x001bb992
MOV EAX,dword ptr [EBP + 0x8]
MOV ESI,dword ptr [EAX + 0x22c]
TEST ESI,ESI
JNZ 0x001bbcdd
MOV EAX,dword ptr [EBP + -0x20]
MOV EDI,dword ptr [EBP + 0x8]
MOV ECX,dword ptr [EAX + 0x10]
MOV ESI,dword ptr [EAX + 0x14]
MOV EAX,dword ptr [EDI + 0x1c]
MOV EBX,ECX
SAR EBX,0x1f
TEST EAX,EAX
JZ 0x001bbcba
ADD EAX,0x1c
PUSH 0x0
PUSH 0x1
PUSH ESI
PUSH EBX
PUSH ECX
PUSH dword ptr [EDI + 0x24]
PUSH dword ptr [EDI + 0x20]
MOV EDI,dword ptr [EBP + -0x1c]
PUSH EAX
MOV EBX,EDI
CALL 0x0023eb50
ADD ESP,0x14
MOV dword ptr [EBP + -0x1c],EDI
PUSH 0x8
MOV dword ptr [EBP + -0x28],EAX
CALL 0x003ac4d0
MOV EDX,dword ptr [EBP + -0x28]
ADD ESP,0xc
MOV EBX,dword ptr [EBP + -0x1c]
PUSH ESI
MOV EDI,EAX
PUSH EDX
PUSH EAX
CALL 0x00225ca0
MOV EBX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EBP + -0x20]
ADD ESP,0x10
MOV dword ptr [EBX + 0x22c],EDI
MOV EAX,dword ptr [EAX + 0x4]
CMP EAX,0x7000002a
JNZ 0x001bba80
MOV EAX,dword ptr [EBP + 0x8]
MOV ECX,dword ptr [EAX + 0x230]
TEST ECX,ECX
JNZ 0x001bbcf9
MOV EAX,dword ptr [EBP + -0x20]
MOV ECX,dword ptr [EAX + 0x10]
MOV EDX,dword ptr [EAX + 0x14]
MOV EAX,dword ptr [EBP + 0x8]
MOV EBX,ECX
MOV EAX,dword ptr [EAX + 0x1c]
SAR EBX,0x1f
TEST EAX,EAX
JZ 0x001bbcba
PUSH 0x0
ADD EAX,0x1c
MOV EDI,dword ptr [EBP + -0x1c]
PUSH 0x1
PUSH EDX
PUSH EBX
MOV EBX,dword ptr [EBP + 0x8]
PUSH ECX
PUSH dword ptr [EBX + 0x24]
PUSH dword ptr [EBX + 0x20]
MOV EBX,EDI
PUSH EAX
CALL 0x0023eb50
ADD ESP,0x14
PUSH 0x18
MOV ESI,EAX
CALL 0x003ac4d0
MOV EBX,dword ptr [EBP + 0x8]
ADD ESP,0x10
MOV dword ptr [EAX],0x0
MOV dword ptr [EAX + 0x4],0x0
MOVZX EDI,word ptr [ESI]
MOV dword ptr [EAX + 0x8],0x0
MOV dword ptr [EAX + 0xc],0x0
MOV dword ptr [EAX + 0x10],0x0
MOV dword ptr [EAX + 0x14],0x0
MOV dword ptr [EBX + 0x230],EAX
MOV word ptr [EAX],DI
TEST DI,DI
JNZ 0x001bbc8f
MOVZX EDX,byte ptr [ESI + 0x2]
MOV byte ptr [EAX + 0x2],DL
MOVZX EDX,byte ptr [ESI + 0x3]
MOV byte ptr [EAX + 0x3],DL
MOVZX EDX,byte ptr [ESI + 0x4]
MOV byte ptr [EAX + 0x4],DL
MOVZX EDX,byte ptr [ESI + 0x5]
MOV byte ptr [EAX + 0x5],DL
MOVZX EDX,byte ptr [ESI + 0x6]
MOV byte ptr [EAX + 0x6],DL
MOVZX EDX,byte ptr [ESI + 0x7]
MOV byte ptr [EAX + 0x7],DL
MOV EDX,dword ptr [ESI + 0x8]
MOV dword ptr [EAX + 0x8],EDX
MOV EDX,dword ptr [ESI + 0xc]
MOV dword ptr [EAX + 0xc],EDX
MOV EDX,dword ptr [ESI + 0x10]
MOV dword ptr [EAX + 0x10],EDX
MOV EDX,dword ptr [ESI + 0x14]
MOV dword ptr [EAX + 0x14],EDX
MOV EAX,dword ptr [EBP + -0x20]
MOV EAX,dword ptr [EAX + 0x4]
CMP EAX,0x7000000d
JZ 0x001bbbb8
MOV byte ptr [EBP + -0x2d],0x1
MOV EAX,dword ptr [EBP + -0x20]
MOV EDI,dword ptr [EBP + -0x34]
MOV ECX,0xa
ADD EDI,dword ptr [EAX]
MOV EAX,dword ptr [EBP + -0x1c]
MOV dword ptr [EBP + -0x28],EDI
LEA ESI,[EAX + 0xffe87454]
CMPSB.REPE ES:EDI,ESI
MOV ESI,dword ptr [EBP + -0x24]
MOV ECX,dword ptr [EBP + 0x8]
MOV EBX,dword ptr [ECX + 0x1ec]
MOV ECX,ESI
SETA AL
SBB AL,0x0
MOV byte ptr [EBP + -0x2c],AL
MOV EAX,ESI
SHR EAX,0x5
SHL EAX,0x2
ADD EBX,EAX
MOV EDI,EBX
MOV EBX,0x1
SHL EBX,CL
MOV ECX,dword ptr [EDI]
MOV EDX,ECX
OR EDX,EBX
MOV ESI,EDX
MOV EDX,EBX
NOT EDX
AND ECX,EDX
CMP byte ptr [EBP + -0x2c],0x0
CMOVZ ECX,ESI
MOV ESI,dword ptr [EBP + -0x1c]
MOV dword ptr [EDI],ECX
MOV EDI,dword ptr [EBP + -0x28]
MOV ECX,0xd
LEA ESI,[ESI + 0xffe8745f]
CMPSB.REPE ES:EDI,ESI
MOV EDI,dword ptr [EBP + 0x8]
MOV ESI,dword ptr [EDI + 0x200]
SETA CL
SBB CL,0x0
ADD ESI,EAX
TEST CL,CL
JZ 0x001bb868
AND EDX,dword ptr [ESI]
JMP 0x001bb86c
NOT EBX
AND EBX,dword ptr [EAX]
JMP 0x001bb89a
MOV EAX,dword ptr [EBP + 0x8]
MOV EDI,dword ptr [EBP + -0x20]
OR byte ptr [EAX + 0x1e4],0x4
MOV ECX,dword ptr [EDI + 0x10]
MOV EAX,dword ptr [EAX + 0x1c]
MOV EDX,dword ptr [EDI + 0x14]
MOV EBX,ECX
SAR EBX,0x1f
TEST EAX,EAX
JZ 0x001bbcba
PUSH 0x0
ADD EAX,0x1c
PUSH 0x1
PUSH EDX
PUSH EBX
MOV EBX,dword ptr [EBP + 0x8]
PUSH ECX
PUSH dword ptr [EBX + 0x24]
PUSH dword ptr [EBX + 0x20]
MOV EBX,dword ptr [EBP + -0x1c]
PUSH EAX
CALL 0x0023eb50
MOV EBX,dword ptr [EBP + 0x8]
ADD ESP,0x20
MOV EDX,dword ptr [EAX + 0x14]
MOV dword ptr [EBX + 0x1e0],EDX
MOV EDX,dword ptr [EAX]
MOV dword ptr [EBX + 0x234],EDX
MOV EDX,dword ptr [EAX + 0x4]
MOV dword ptr [EBX + 0x238],EDX
MOV EDX,dword ptr [EAX + 0x8]
MOV dword ptr [EBX + 0x23c],EDX
MOV EDX,dword ptr [EAX + 0xc]
MOV dword ptr [EBX + 0x240],EDX
MOV EAX,dword ptr [EAX + 0x10]
MOV dword ptr [EBX + 0x244],EAX
MOV EAX,dword ptr [EDI + 0x4]
JMP 0x001bb90e
MOV EAX,dword ptr [EBP + -0x20]
MOV ECX,dword ptr [EAX + 0x10]
MOV ESI,dword ptr [EAX + 0x14]
MOV EAX,dword ptr [EBP + 0x8]
MOV EBX,ECX
MOV EAX,dword ptr [EAX + 0x1c]
SAR EBX,0x1f
TEST EAX,EAX
JZ 0x001bbcba
PUSH 0x0
ADD EAX,0x1c
PUSH 0x1
PUSH ESI
PUSH EBX
MOV EBX,dword ptr [EBP + 0x8]
PUSH ECX
PUSH dword ptr [EBX + 0x24]
PUSH dword ptr [EBX + 0x20]
MOV EBX,dword ptr [EBP + -0x1c]
PUSH EAX
CALL 0x0023eb50
ADD ESP,0x20
LEA EBX,[EAX + ESI*0x1]
LEA EDX,[EAX + 0x8]
CMP EBX,EDX
JNC 0x001bbc26
JMP 0x001bba8b
CMP CL,0x1
JNZ 0x001bbc19
MOV ECX,dword ptr [EAX + 0x1c]
MOV ESI,dword ptr [EBP + 0x8]
MOV dword ptr [ESI + 0x1e0],ECX
ADD EAX,EDX
LEA EDX,[EAX + 0x8]
CMP EBX,EDX
JC 0x001bba8b
MOVZX EDX,byte ptr [EAX + 0x1]
MOVZX ECX,byte ptr [EAX]
CMP DL,0x7
JA 0x001bbc08
MOV EAX,dword ptr [EBP + 0x8]
MOV EBX,dword ptr [EBP + -0x1c]
MOVZX ESI,DL
MOV EDX,dword ptr [EBP + -0x38]
TEST byte ptr [EAX + 0x1e4],0x2
MOV EDI,dword ptr [EAX + 0x4]
LEA EAX,[EBX + 0xffe879c8]
CMOVZ EDX,dword ptr [EBP + -0x3c]
SUB ESP,0xc
PUSH EAX
MOV dword ptr [EBP + -0x28],EDX
CALL 0x00039440
MOV EDX,dword ptr [EBP + -0x28]
ADD ESP,0x10
MOV EBX,dword ptr [EBP + -0x1c]
PUSH ESI
PUSH EDX
PUSH EDI
PUSH EAX
CALL 0x0023b810
ADD ESP,0x10
MOV byte ptr [EBP + -0x2d],0x1
JMP 0x001bba8f
CMP byte ptr [EBP + -0x2d],0x0
JZ 0x001bb77c
JMP 0x001bb786
MOV ESI,dword ptr [EBX + 0x4]
MOV EBX,dword ptr [EBP + -0x1c]
SUB ESP,0xc
LEA EAX,[EBX + 0xffe87990]
PUSH EAX
CALL 0x00039440
ADD ESP,0xc
MOV EBX,dword ptr [EBP + -0x1c]
PUSH EDI
PUSH ESI
PUSH EAX
CALL 0x0023b810
ADD ESP,0x10
JMP 0x001bb786
CALL 0x00175c50
MOV EBX,dword ptr [EBP + -0x1c]
SUB ESP,0x4
LEA EAX,[EBX + 0xffe8f27c]
PUSH EAX
LEA EAX,[EBX + 0xffe871ea]
PUSH 0x1b6f
PUSH EAX
CALL 0x002446e0
PUSH EBX
MOV EBX,dword ptr [EBP + -0x1c]
LEA EAX,[EBX + 0xffe8f27c]
PUSH EAX
LEA EAX,[EBX + 0xffe871ea]
PUSH 0x1adf
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + -0x1c]
PUSH EDX
LEA EAX,[EBX + 0xffe8f27c]
PUSH EAX
LEA EAX,[EBX + 0xffe871ea]
PUSH 0x1aeb
PUSH EAX
CALL 0x002446e0
MOV EBX,dword ptr [EBP + -0x1c]
PUSH EDI
LEA EAX,[EBX + 0xffe8f27c]
PUSH EAX
LEA EAX,[EBX + 0xffe871ea]
PUSH 0x1a9a
PUSH EAX
CALL 0x002446e0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nvoid FUN_001bb730(char *param_1,int *param_2)\n\n{\n  byte bVar1;\n  short sVar2;\n  uint uVar3;\n  bool bVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  short *psVar8;\n  short *psVar9;\n  undefined4 *puVar10;\n  char *pcVar11;\n  uint uVar12;\n  int iVar13;\n  char cVar14;\n  undefined4 extraout_EDX;\n  undefined4 extraout_EDX_00;\n  uint uVar15;\n  char *pcVar16;\n  uint uVar17;\n  byte *pbVar18;\n  uint *puVar19;\n  byte *pbVar20;\n  byte *pbVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  uint local_28;\n  uint *local_24;\n  \n  bVar25 = 0;\n  FUN_002b3240(param_1,param_2);\n  if (*(int *)(param_1 + 0x1c) == 0) {\nLAB_001bbcba:\n    FUN_00175c50();\nLAB_001bbcbf:\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/mips.cc",0x1b6f,"do_read_symbols");\n  }\n  iVar5 = *(int *)(*(int *)(param_1 + 0x1c) + 0x90);\n  if (iVar5 == 1) {\n    iVar5 = FUN_001cc8a0(param_1,0,0,0x34,1,0);\n    *(undefined4 *)(param_1 + 0x13c) = *(undefined4 *)(iVar5 + 0x24);\n    uVar3 = *(uint *)(param_2[1] + 8);\n    FUN_00104420(param_1 + 0x1ec,*(undefined4 *)(param_1 + 0x28),0);\n    FUN_00104420(param_1 + 0x200,*(undefined4 *)(param_1 + 0x28),0);\n    FUN_00104420(param_1 + 0x214,*(undefined4 *)(param_1 + 0x28),0);\n    bVar4 = false;\n    local_24 = (uint *)(*(int *)(*param_2 + 8) + 0x28);\n    if (1 < *(uint *)(param_1 + 0x28)) {\n      uVar15 = *(uint *)(*(int *)(*param_2 + 8) + 0x2c);\n      local_28 = 1;\n      uVar6 = extraout_EDX;\n      pcVar16 = ".MIPS.options";\n      if (uVar15 != 2) goto LAB_001bb8fa;\n      local_28 = 1;\n      do {\n        if (0x10 < local_24[5]) {\n          bVar4 = true;\n        }\nLAB_001bba8f:\n        iVar5 = 10;\n        bVar22 = CARRY4(uVar3,*local_24);\n        pbVar21 = (byte *)(uVar3 + *local_24);\n        bVar24 = pbVar21 == (byte *)0x0;\n        pbVar18 = (byte *)".mips16.fn";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        iVar5 = (local_28 >> 5) * 4;\n        uVar17 = 1 << ((byte)local_28 & 0x1f);\n        uVar15 = *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        uVar12 = uVar15 & ~uVar17;\n        if (bVar22) {\n          uVar12 = uVar15 | uVar17;\n        }\n        *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5) = uVar12;\n        iVar13 = 0xd;\n        pbVar18 = (byte *)".mips16.call.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        puVar19 = (uint *)(*(int *)(param_1 + 0x200) + iVar5);\n        if ((!bVar23 && !bVar22) == bVar23) {\n          uVar15 = *puVar19 | uVar17;\n        }\n        else {\n          uVar15 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar15 == 0;\n        bVar22 = false;\n        *puVar19 = uVar15;\n        iVar13 = 0x10;\n        pbVar18 = (byte *)".mips16.call.fp.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        cVar14 = (!bVar22 && !bVar24) - bVar22;\n        uVar6 = CONCAT31((int3)(uVar15 >> 8),cVar14);\n        puVar19 = (uint *)(iVar5 + *(int *)(param_1 + 0x214));\n        if (cVar14 == '\0') {\n          uVar17 = uVar17 | *puVar19;\n        }\n        else {\n          uVar17 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar17 == 0;\n        bVar22 = false;\n        *puVar19 = uVar17;\n        iVar5 = 5;\n        pbVar18 = &DAT_0044d56a;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar21 < *pbVar18;\n          bVar24 = *pbVar21 == *pbVar18;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        if ((!bVar22 && !bVar24) == bVar22) {\n          if (*(int *)(param_1 + 0x228) != -1) goto LAB_001bbcbf;\n          *(uint *)(param_1 + 0x228) = local_28;\n        }\n        local_28 = local_28 + 1;\n        puVar19 = local_24 + 10;\n        if (*(uint *)(param_1 + 0x28) <= local_28) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_001bb77c;\n        }\n        uVar15 = local_24[0xb];\n        pcVar16 = param_1;\n        local_24 = puVar19;\n      } while (uVar15 == 2);\nLAB_001bb8fa:\n      if (uVar15 != 3) {\n        if (uVar15 == 0x70000006) {\n          param_1[0x1e4] = param_1[0x1e4] | 4;\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          puVar10 = (undefined4 *)\n                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          *(undefined4 *)(param_1 + 0x1e0) = puVar10[5];\n          *(undefined4 *)(param_1 + 0x234) = *puVar10;\n          *(undefined4 *)(param_1 + 0x238) = puVar10[1];\n          *(undefined4 *)(param_1 + 0x23c) = puVar10[2];\n          uVar6 = puVar10[3];\n          *(undefined4 *)(param_1 + 0x240) = uVar6;\n          *(undefined4 *)(param_1 + 0x244) = puVar10[4];\n          uVar15 = local_24[1];\n          pcVar16 = param_1;\n        }\n        if (uVar15 == 0x6ffffff5) {\n          if (*(int *)(param_1 + 0x22c) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);\n          }\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          uVar6 = FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0);\n          uVar7 = FUN_003ac4d0(8);\n                    /* try { // try from 001bb97b to 001bb97f has its CatchHandler @ 001bbd31 */\n          FUN_00225ca0(uVar7,uVar6,uVar15);\n          *(undefined4 *)(param_1 + 0x22c) = uVar7;\n          uVar15 = local_24[1];\n          uVar6 = extraout_EDX_00;\n        }\n        if (uVar15 == 0x7000002a) {\n          if (*(int *)(param_1 + 0x230) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);\n          }\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          psVar8 = (short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          psVar9 = (short *)FUN_003ac4d0(0x18);\n          psVar9[0] = 0;\n          psVar9[1] = 0;\n          psVar9[2] = 0;\n          psVar9[3] = 0;\n          sVar2 = *psVar8;\n          psVar9[4] = 0;\n          psVar9[5] = 0;\n          psVar9[6] = 0;\n          psVar9[7] = 0;\n          psVar9[8] = 0;\n          psVar9[9] = 0;\n          psVar9[10] = 0;\n          psVar9[0xb] = 0;\n          *(short **)(param_1 + 0x230) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined4 *)(param_1 + 4);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0023b810(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((int)psVar9 + 3) = *(undefined1 *)((int)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((int)psVar9 + 5) = *(undefined1 *)((int)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((int)psVar9 + 7) = *(undefined1 *)((int)psVar8 + 7);\n          *(undefined4 *)(psVar9 + 4) = *(undefined4 *)(psVar8 + 4);\n          *(undefined4 *)(psVar9 + 6) = *(undefined4 *)(psVar8 + 6);\n          *(undefined4 *)(psVar9 + 8) = *(undefined4 *)(psVar8 + 8);\n          *(undefined4 *)(psVar9 + 10) = *(undefined4 *)(psVar8 + 10);\n          uVar15 = local_24[1];\n        }\n        if (uVar15 == 0x7000000d) {\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          pcVar11 = (char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0);\n          pcVar16 = pcVar11 + uVar15;\n          for (; pcVar11 + 8 <= pcVar16; pcVar11 = pcVar11 + bVar1) {\n            bVar1 = pcVar11[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }\n            if (*pcVar11 == '\x01') {\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }\n      goto LAB_001bba8f;\n    }\n  }\n  else if (iVar5 != 2) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }\nLAB_001bb77c:\n  param_1[0x1e4] = param_1[0x1e4] & 0xf7;\n  return;\n}\n\n" comment (function_definition "void FUN_001bb730(char *param_1,int *param_2)\n\n{\n  byte bVar1;\n  short sVar2;\n  uint uVar3;\n  bool bVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  short *psVar8;\n  short *psVar9;\n  undefined4 *puVar10;\n  char *pcVar11;\n  uint uVar12;\n  int iVar13;\n  char cVar14;\n  undefined4 extraout_EDX;\n  undefined4 extraout_EDX_00;\n  uint uVar15;\n  char *pcVar16;\n  uint uVar17;\n  byte *pbVar18;\n  uint *puVar19;\n  byte *pbVar20;\n  byte *pbVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  uint local_28;\n  uint *local_24;\n  \n  bVar25 = 0;\n  FUN_002b3240(param_1,param_2);\n  if (*(int *)(param_1 + 0x1c) == 0) {\nLAB_001bbcba:\n    FUN_00175c50();\nLAB_001bbcbf:\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/mips.cc",0x1b6f,"do_read_symbols");\n  }\n  iVar5 = *(int *)(*(int *)(param_1 + 0x1c) + 0x90);\n  if (iVar5 == 1) {\n    iVar5 = FUN_001cc8a0(param_1,0,0,0x34,1,0);\n    *(undefined4 *)(param_1 + 0x13c) = *(undefined4 *)(iVar5 + 0x24);\n    uVar3 = *(uint *)(param_2[1] + 8);\n    FUN_00104420(param_1 + 0x1ec,*(undefined4 *)(param_1 + 0x28),0);\n    FUN_00104420(param_1 + 0x200,*(undefined4 *)(param_1 + 0x28),0);\n    FUN_00104420(param_1 + 0x214,*(undefined4 *)(param_1 + 0x28),0);\n    bVar4 = false;\n    local_24 = (uint *)(*(int *)(*param_2 + 8) + 0x28);\n    if (1 < *(uint *)(param_1 + 0x28)) {\n      uVar15 = *(uint *)(*(int *)(*param_2 + 8) + 0x2c);\n      local_28 = 1;\n      uVar6 = extraout_EDX;\n      pcVar16 = ".MIPS.options";\n      if (uVar15 != 2) goto LAB_001bb8fa;\n      local_28 = 1;\n      do {\n        if (0x10 < local_24[5]) {\n          bVar4 = true;\n        }\nLAB_001bba8f:\n        iVar5 = 10;\n        bVar22 = CARRY4(uVar3,*local_24);\n        pbVar21 = (byte *)(uVar3 + *local_24);\n        bVar24 = pbVar21 == (byte *)0x0;\n        pbVar18 = (byte *)".mips16.fn";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        iVar5 = (local_28 >> 5) * 4;\n        uVar17 = 1 << ((byte)local_28 & 0x1f);\n        uVar15 = *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        uVar12 = uVar15 & ~uVar17;\n        if (bVar22) {\n          uVar12 = uVar15 | uVar17;\n        }\n        *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5) = uVar12;\n        iVar13 = 0xd;\n        pbVar18 = (byte *)".mips16.call.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        puVar19 = (uint *)(*(int *)(param_1 + 0x200) + iVar5);\n        if ((!bVar23 && !bVar22) == bVar23) {\n          uVar15 = *puVar19 | uVar17;\n        }\n        else {\n          uVar15 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar15 == 0;\n        bVar22 = false;\n        *puVar19 = uVar15;\n        iVar13 = 0x10;\n        pbVar18 = (byte *)".mips16.call.fp.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        cVar14 = (!bVar22 && !bVar24) - bVar22;\n        uVar6 = CONCAT31((int3)(uVar15 >> 8),cVar14);\n        puVar19 = (uint *)(iVar5 + *(int *)(param_1 + 0x214));\n        if (cVar14 == '\0') {\n          uVar17 = uVar17 | *puVar19;\n        }\n        else {\n          uVar17 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar17 == 0;\n        bVar22 = false;\n        *puVar19 = uVar17;\n        iVar5 = 5;\n        pbVar18 = &DAT_0044d56a;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar21 < *pbVar18;\n          bVar24 = *pbVar21 == *pbVar18;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        if ((!bVar22 && !bVar24) == bVar22) {\n          if (*(int *)(param_1 + 0x228) != -1) goto LAB_001bbcbf;\n          *(uint *)(param_1 + 0x228) = local_28;\n        }\n        local_28 = local_28 + 1;\n        puVar19 = local_24 + 10;\n        if (*(uint *)(param_1 + 0x28) <= local_28) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_001bb77c;\n        }\n        uVar15 = local_24[0xb];\n        pcVar16 = param_1;\n        local_24 = puVar19;\n      } while (uVar15 == 2);\nLAB_001bb8fa:\n      if (uVar15 != 3) {\n        if (uVar15 == 0x70000006) {\n          param_1[0x1e4] = param_1[0x1e4] | 4;\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          puVar10 = (undefined4 *)\n                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          *(undefined4 *)(param_1 + 0x1e0) = puVar10[5];\n          *(undefined4 *)(param_1 + 0x234) = *puVar10;\n          *(undefined4 *)(param_1 + 0x238) = puVar10[1];\n          *(undefined4 *)(param_1 + 0x23c) = puVar10[2];\n          uVar6 = puVar10[3];\n          *(undefined4 *)(param_1 + 0x240) = uVar6;\n          *(undefined4 *)(param_1 + 0x244) = puVar10[4];\n          uVar15 = local_24[1];\n          pcVar16 = param_1;\n        }\n        if (uVar15 == 0x6ffffff5) {\n          if (*(int *)(param_1 + 0x22c) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);\n          }\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          uVar6 = FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0);\n          uVar7 = FUN_003ac4d0(8);\n                    /* try { // try from 001bb97b to 001bb97f has its CatchHandler @ 001bbd31 */\n          FUN_00225ca0(uVar7,uVar6,uVar15);\n          *(undefined4 *)(param_1 + 0x22c) = uVar7;\n          uVar15 = local_24[1];\n          uVar6 = extraout_EDX_00;\n        }\n        if (uVar15 == 0x7000002a) {\n          if (*(int *)(param_1 + 0x230) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);\n          }\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          psVar8 = (short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          psVar9 = (short *)FUN_003ac4d0(0x18);\n          psVar9[0] = 0;\n          psVar9[1] = 0;\n          psVar9[2] = 0;\n          psVar9[3] = 0;\n          sVar2 = *psVar8;\n          psVar9[4] = 0;\n          psVar9[5] = 0;\n          psVar9[6] = 0;\n          psVar9[7] = 0;\n          psVar9[8] = 0;\n          psVar9[9] = 0;\n          psVar9[10] = 0;\n          psVar9[0xb] = 0;\n          *(short **)(param_1 + 0x230) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined4 *)(param_1 + 4);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0023b810(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((int)psVar9 + 3) = *(undefined1 *)((int)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((int)psVar9 + 5) = *(undefined1 *)((int)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((int)psVar9 + 7) = *(undefined1 *)((int)psVar8 + 7);\n          *(undefined4 *)(psVar9 + 4) = *(undefined4 *)(psVar8 + 4);\n          *(undefined4 *)(psVar9 + 6) = *(undefined4 *)(psVar8 + 6);\n          *(undefined4 *)(psVar9 + 8) = *(undefined4 *)(psVar8 + 8);\n          *(undefined4 *)(psVar9 + 10) = *(undefined4 *)(psVar8 + 10);\n          uVar15 = local_24[1];\n        }\n        if (uVar15 == 0x7000000d) {\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          pcVar11 = (char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0);\n          pcVar16 = pcVar11 + uVar15;\n          for (; pcVar11 + 8 <= pcVar16; pcVar11 = pcVar11 + bVar1) {\n            bVar1 = pcVar11[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }\n            if (*pcVar11 == '\x01') {\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }\n      goto LAB_001bba8f;\n    }\n  }\n  else if (iVar5 != 2) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }\nLAB_001bb77c:\n  param_1[0x1e4] = param_1[0x1e4] & 0xf7;\n  return;\n}" primitive_type (function_declarator "FUN_001bb730(char *param_1,int *param_2)" identifier (parameter_list "(char *param_1,int *param_2)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  short sVar2;\n  uint uVar3;\n  bool bVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  short *psVar8;\n  short *psVar9;\n  undefined4 *puVar10;\n  char *pcVar11;\n  uint uVar12;\n  int iVar13;\n  char cVar14;\n  undefined4 extraout_EDX;\n  undefined4 extraout_EDX_00;\n  uint uVar15;\n  char *pcVar16;\n  uint uVar17;\n  byte *pbVar18;\n  uint *puVar19;\n  byte *pbVar20;\n  byte *pbVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  uint local_28;\n  uint *local_24;\n  \n  bVar25 = 0;\n  FUN_002b3240(param_1,param_2);\n  if (*(int *)(param_1 + 0x1c) == 0) {\nLAB_001bbcba:\n    FUN_00175c50();\nLAB_001bbcbf:\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/mips.cc",0x1b6f,"do_read_symbols");\n  }\n  iVar5 = *(int *)(*(int *)(param_1 + 0x1c) + 0x90);\n  if (iVar5 == 1) {\n    iVar5 = FUN_001cc8a0(param_1,0,0,0x34,1,0);\n    *(undefined4 *)(param_1 + 0x13c) = *(undefined4 *)(iVar5 + 0x24);\n    uVar3 = *(uint *)(param_2[1] + 8);\n    FUN_00104420(param_1 + 0x1ec,*(undefined4 *)(param_1 + 0x28),0);\n    FUN_00104420(param_1 + 0x200,*(undefined4 *)(param_1 + 0x28),0);\n    FUN_00104420(param_1 + 0x214,*(undefined4 *)(param_1 + 0x28),0);\n    bVar4 = false;\n    local_24 = (uint *)(*(int *)(*param_2 + 8) + 0x28);\n    if (1 < *(uint *)(param_1 + 0x28)) {\n      uVar15 = *(uint *)(*(int *)(*param_2 + 8) + 0x2c);\n      local_28 = 1;\n      uVar6 = extraout_EDX;\n      pcVar16 = ".MIPS.options";\n      if (uVar15 != 2) goto LAB_001bb8fa;\n      local_28 = 1;\n      do {\n        if (0x10 < local_24[5]) {\n          bVar4 = true;\n        }\nLAB_001bba8f:\n        iVar5 = 10;\n        bVar22 = CARRY4(uVar3,*local_24);\n        pbVar21 = (byte *)(uVar3 + *local_24);\n        bVar24 = pbVar21 == (byte *)0x0;\n        pbVar18 = (byte *)".mips16.fn";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        iVar5 = (local_28 >> 5) * 4;\n        uVar17 = 1 << ((byte)local_28 & 0x1f);\n        uVar15 = *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        uVar12 = uVar15 & ~uVar17;\n        if (bVar22) {\n          uVar12 = uVar15 | uVar17;\n        }\n        *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5) = uVar12;\n        iVar13 = 0xd;\n        pbVar18 = (byte *)".mips16.call.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        puVar19 = (uint *)(*(int *)(param_1 + 0x200) + iVar5);\n        if ((!bVar23 && !bVar22) == bVar23) {\n          uVar15 = *puVar19 | uVar17;\n        }\n        else {\n          uVar15 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar15 == 0;\n        bVar22 = false;\n        *puVar19 = uVar15;\n        iVar13 = 0x10;\n        pbVar18 = (byte *)".mips16.call.fp.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        cVar14 = (!bVar22 && !bVar24) - bVar22;\n        uVar6 = CONCAT31((int3)(uVar15 >> 8),cVar14);\n        puVar19 = (uint *)(iVar5 + *(int *)(param_1 + 0x214));\n        if (cVar14 == '\0') {\n          uVar17 = uVar17 | *puVar19;\n        }\n        else {\n          uVar17 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar17 == 0;\n        bVar22 = false;\n        *puVar19 = uVar17;\n        iVar5 = 5;\n        pbVar18 = &DAT_0044d56a;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar21 < *pbVar18;\n          bVar24 = *pbVar21 == *pbVar18;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        if ((!bVar22 && !bVar24) == bVar22) {\n          if (*(int *)(param_1 + 0x228) != -1) goto LAB_001bbcbf;\n          *(uint *)(param_1 + 0x228) = local_28;\n        }\n        local_28 = local_28 + 1;\n        puVar19 = local_24 + 10;\n        if (*(uint *)(param_1 + 0x28) <= local_28) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_001bb77c;\n        }\n        uVar15 = local_24[0xb];\n        pcVar16 = param_1;\n        local_24 = puVar19;\n      } while (uVar15 == 2);\nLAB_001bb8fa:\n      if (uVar15 != 3) {\n        if (uVar15 == 0x70000006) {\n          param_1[0x1e4] = param_1[0x1e4] | 4;\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          puVar10 = (undefined4 *)\n                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          *(undefined4 *)(param_1 + 0x1e0) = puVar10[5];\n          *(undefined4 *)(param_1 + 0x234) = *puVar10;\n          *(undefined4 *)(param_1 + 0x238) = puVar10[1];\n          *(undefined4 *)(param_1 + 0x23c) = puVar10[2];\n          uVar6 = puVar10[3];\n          *(undefined4 *)(param_1 + 0x240) = uVar6;\n          *(undefined4 *)(param_1 + 0x244) = puVar10[4];\n          uVar15 = local_24[1];\n          pcVar16 = param_1;\n        }\n        if (uVar15 == 0x6ffffff5) {\n          if (*(int *)(param_1 + 0x22c) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);\n          }\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          uVar6 = FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0);\n          uVar7 = FUN_003ac4d0(8);\n                    /* try { // try from 001bb97b to 001bb97f has its CatchHandler @ 001bbd31 */\n          FUN_00225ca0(uVar7,uVar6,uVar15);\n          *(undefined4 *)(param_1 + 0x22c) = uVar7;\n          uVar15 = local_24[1];\n          uVar6 = extraout_EDX_00;\n        }\n        if (uVar15 == 0x7000002a) {\n          if (*(int *)(param_1 + 0x230) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);\n          }\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          psVar8 = (short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          psVar9 = (short *)FUN_003ac4d0(0x18);\n          psVar9[0] = 0;\n          psVar9[1] = 0;\n          psVar9[2] = 0;\n          psVar9[3] = 0;\n          sVar2 = *psVar8;\n          psVar9[4] = 0;\n          psVar9[5] = 0;\n          psVar9[6] = 0;\n          psVar9[7] = 0;\n          psVar9[8] = 0;\n          psVar9[9] = 0;\n          psVar9[10] = 0;\n          psVar9[0xb] = 0;\n          *(short **)(param_1 + 0x230) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined4 *)(param_1 + 4);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0023b810(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((int)psVar9 + 3) = *(undefined1 *)((int)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((int)psVar9 + 5) = *(undefined1 *)((int)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((int)psVar9 + 7) = *(undefined1 *)((int)psVar8 + 7);\n          *(undefined4 *)(psVar9 + 4) = *(undefined4 *)(psVar8 + 4);\n          *(undefined4 *)(psVar9 + 6) = *(undefined4 *)(psVar8 + 6);\n          *(undefined4 *)(psVar9 + 8) = *(undefined4 *)(psVar8 + 8);\n          *(undefined4 *)(psVar9 + 10) = *(undefined4 *)(psVar8 + 10);\n          uVar15 = local_24[1];\n        }\n        if (uVar15 == 0x7000000d) {\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          pcVar11 = (char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0);\n          pcVar16 = pcVar11 + uVar15;\n          for (; pcVar11 + 8 <= pcVar16; pcVar11 = pcVar11 + bVar1) {\n            bVar1 = pcVar11[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }\n            if (*pcVar11 == '\x01') {\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }\n      goto LAB_001bba8f;\n    }\n  }\n  else if (iVar5 != 2) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }\nLAB_001bb77c:\n  param_1[0x1e4] = param_1[0x1e4] & 0xf7;\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "short sVar2;" (sized_type_specifier "short" short) identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "short *psVar8;" (sized_type_specifier "short" short) (pointer_declarator "*psVar8" * identifier) ;) (declaration "short *psVar9;" (sized_type_specifier "short" short) (pointer_declarator "*psVar9" * identifier) ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "char cVar14;" primitive_type identifier ;) (declaration "undefined4 extraout_EDX;" type_identifier identifier ;) (declaration "undefined4 extraout_EDX_00;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "uint *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "byte *pbVar21;" type_identifier (pointer_declarator "*pbVar21" * identifier) ;) (declaration "bool bVar22;" primitive_type identifier ;) (declaration "bool bVar23;" primitive_type identifier ;) (declaration "bool bVar24;" primitive_type identifier ;) (declaration "byte bVar25;" type_identifier identifier ;) (declaration "uint local_28;" type_identifier identifier ;) (declaration "uint *local_24;" type_identifier (pointer_declarator "*local_24" * identifier) ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (expression_statement "FUN_002b3240(param_1,param_2);" (call_expression "FUN_002b3240(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier ))) ;) (if_statement "if (*(int *)(param_1 + 0x1c) == 0) {\nLAB_001bbcba:\n    FUN_00175c50();\nLAB_001bbcbf:\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/mips.cc",0x1b6f,"do_read_symbols");\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x1c) == 0)" ( (binary_expression "*(int *)(param_1 + 0x1c) == 0" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_001bbcba:\n    FUN_00175c50();\nLAB_001bbcbf:\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/mips.cc",0x1b6f,"do_read_symbols");\n  }" { (labeled_statement "LAB_001bbcba:\n    FUN_00175c50();" statement_identifier : (expression_statement "FUN_00175c50();" (call_expression "FUN_00175c50()" identifier (argument_list "()" ( ))) ;)) (labeled_statement "LAB_001bbcbf:\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/mips.cc",0x1b6f,"do_read_symbols");" statement_identifier : comment (expression_statement "FUN_002446e0("../../gold/mips.cc",0x1b6f,"do_read_symbols");" (call_expression "FUN_002446e0("../../gold/mips.cc",0x1b6f,"do_read_symbols")" identifier (argument_list "("../../gold/mips.cc",0x1b6f,"do_read_symbols")" ( (string_literal ""../../gold/mips.cc"" " string_content ") , number_literal , (string_literal ""do_read_symbols"" " string_content ") ))) ;)) })) (expression_statement "iVar5 = *(int *)(*(int *)(param_1 + 0x1c) + 0x90);" (assignment_expression "iVar5 = *(int *)(*(int *)(param_1 + 0x1c) + 0x90)" identifier = (pointer_expression "*(int *)(*(int *)(param_1 + 0x1c) + 0x90)" * (cast_expression "(int *)(*(int *)(param_1 + 0x1c) + 0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x1c) + 0x90)" ( (binary_expression "*(int *)(param_1 + 0x1c) + 0x90" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (iVar5 == 1) {\n    iVar5 = FUN_001cc8a0(param_1,0,0,0x34,1,0);\n    *(undefined4 *)(param_1 + 0x13c) = *(undefined4 *)(iVar5 + 0x24);\n    uVar3 = *(uint *)(param_2[1] + 8);\n    FUN_00104420(param_1 + 0x1ec,*(undefined4 *)(param_1 + 0x28),0);\n    FUN_00104420(param_1 + 0x200,*(undefined4 *)(param_1 + 0x28),0);\n    FUN_00104420(param_1 + 0x214,*(undefined4 *)(param_1 + 0x28),0);\n    bVar4 = false;\n    local_24 = (uint *)(*(int *)(*param_2 + 8) + 0x28);\n    if (1 < *(uint *)(param_1 + 0x28)) {\n      uVar15 = *(uint *)(*(int *)(*param_2 + 8) + 0x2c);\n      local_28 = 1;\n      uVar6 = extraout_EDX;\n      pcVar16 = ".MIPS.options";\n      if (uVar15 != 2) goto LAB_001bb8fa;\n      local_28 = 1;\n      do {\n        if (0x10 < local_24[5]) {\n          bVar4 = true;\n        }\nLAB_001bba8f:\n        iVar5 = 10;\n        bVar22 = CARRY4(uVar3,*local_24);\n        pbVar21 = (byte *)(uVar3 + *local_24);\n        bVar24 = pbVar21 == (byte *)0x0;\n        pbVar18 = (byte *)".mips16.fn";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        iVar5 = (local_28 >> 5) * 4;\n        uVar17 = 1 << ((byte)local_28 & 0x1f);\n        uVar15 = *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        uVar12 = uVar15 & ~uVar17;\n        if (bVar22) {\n          uVar12 = uVar15 | uVar17;\n        }\n        *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5) = uVar12;\n        iVar13 = 0xd;\n        pbVar18 = (byte *)".mips16.call.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        puVar19 = (uint *)(*(int *)(param_1 + 0x200) + iVar5);\n        if ((!bVar23 && !bVar22) == bVar23) {\n          uVar15 = *puVar19 | uVar17;\n        }\n        else {\n          uVar15 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar15 == 0;\n        bVar22 = false;\n        *puVar19 = uVar15;\n        iVar13 = 0x10;\n        pbVar18 = (byte *)".mips16.call.fp.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        cVar14 = (!bVar22 && !bVar24) - bVar22;\n        uVar6 = CONCAT31((int3)(uVar15 >> 8),cVar14);\n        puVar19 = (uint *)(iVar5 + *(int *)(param_1 + 0x214));\n        if (cVar14 == '\0') {\n          uVar17 = uVar17 | *puVar19;\n        }\n        else {\n          uVar17 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar17 == 0;\n        bVar22 = false;\n        *puVar19 = uVar17;\n        iVar5 = 5;\n        pbVar18 = &DAT_0044d56a;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar21 < *pbVar18;\n          bVar24 = *pbVar21 == *pbVar18;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        if ((!bVar22 && !bVar24) == bVar22) {\n          if (*(int *)(param_1 + 0x228) != -1) goto LAB_001bbcbf;\n          *(uint *)(param_1 + 0x228) = local_28;\n        }\n        local_28 = local_28 + 1;\n        puVar19 = local_24 + 10;\n        if (*(uint *)(param_1 + 0x28) <= local_28) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_001bb77c;\n        }\n        uVar15 = local_24[0xb];\n        pcVar16 = param_1;\n        local_24 = puVar19;\n      } while (uVar15 == 2);\nLAB_001bb8fa:\n      if (uVar15 != 3) {\n        if (uVar15 == 0x70000006) {\n          param_1[0x1e4] = param_1[0x1e4] | 4;\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          puVar10 = (undefined4 *)\n                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          *(undefined4 *)(param_1 + 0x1e0) = puVar10[5];\n          *(undefined4 *)(param_1 + 0x234) = *puVar10;\n          *(undefined4 *)(param_1 + 0x238) = puVar10[1];\n          *(undefined4 *)(param_1 + 0x23c) = puVar10[2];\n          uVar6 = puVar10[3];\n          *(undefined4 *)(param_1 + 0x240) = uVar6;\n          *(undefined4 *)(param_1 + 0x244) = puVar10[4];\n          uVar15 = local_24[1];\n          pcVar16 = param_1;\n        }\n        if (uVar15 == 0x6ffffff5) {\n          if (*(int *)(param_1 + 0x22c) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);\n          }\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          uVar6 = FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0);\n          uVar7 = FUN_003ac4d0(8);\n                    /* try { // try from 001bb97b to 001bb97f has its CatchHandler @ 001bbd31 */\n          FUN_00225ca0(uVar7,uVar6,uVar15);\n          *(undefined4 *)(param_1 + 0x22c) = uVar7;\n          uVar15 = local_24[1];\n          uVar6 = extraout_EDX_00;\n        }\n        if (uVar15 == 0x7000002a) {\n          if (*(int *)(param_1 + 0x230) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);\n          }\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          psVar8 = (short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          psVar9 = (short *)FUN_003ac4d0(0x18);\n          psVar9[0] = 0;\n          psVar9[1] = 0;\n          psVar9[2] = 0;\n          psVar9[3] = 0;\n          sVar2 = *psVar8;\n          psVar9[4] = 0;\n          psVar9[5] = 0;\n          psVar9[6] = 0;\n          psVar9[7] = 0;\n          psVar9[8] = 0;\n          psVar9[9] = 0;\n          psVar9[10] = 0;\n          psVar9[0xb] = 0;\n          *(short **)(param_1 + 0x230) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined4 *)(param_1 + 4);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0023b810(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((int)psVar9 + 3) = *(undefined1 *)((int)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((int)psVar9 + 5) = *(undefined1 *)((int)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((int)psVar9 + 7) = *(undefined1 *)((int)psVar8 + 7);\n          *(undefined4 *)(psVar9 + 4) = *(undefined4 *)(psVar8 + 4);\n          *(undefined4 *)(psVar9 + 6) = *(undefined4 *)(psVar8 + 6);\n          *(undefined4 *)(psVar9 + 8) = *(undefined4 *)(psVar8 + 8);\n          *(undefined4 *)(psVar9 + 10) = *(undefined4 *)(psVar8 + 10);\n          uVar15 = local_24[1];\n        }\n        if (uVar15 == 0x7000000d) {\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          pcVar11 = (char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0);\n          pcVar16 = pcVar11 + uVar15;\n          for (; pcVar11 + 8 <= pcVar16; pcVar11 = pcVar11 + bVar1) {\n            bVar1 = pcVar11[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }\n            if (*pcVar11 == '\x01') {\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }\n      goto LAB_001bba8f;\n    }\n  }\n  else if (iVar5 != 2) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }" if (parenthesized_expression "(iVar5 == 1)" ( (binary_expression "iVar5 == 1" identifier == number_literal) )) (compound_statement "{\n    iVar5 = FUN_001cc8a0(param_1,0,0,0x34,1,0);\n    *(undefined4 *)(param_1 + 0x13c) = *(undefined4 *)(iVar5 + 0x24);\n    uVar3 = *(uint *)(param_2[1] + 8);\n    FUN_00104420(param_1 + 0x1ec,*(undefined4 *)(param_1 + 0x28),0);\n    FUN_00104420(param_1 + 0x200,*(undefined4 *)(param_1 + 0x28),0);\n    FUN_00104420(param_1 + 0x214,*(undefined4 *)(param_1 + 0x28),0);\n    bVar4 = false;\n    local_24 = (uint *)(*(int *)(*param_2 + 8) + 0x28);\n    if (1 < *(uint *)(param_1 + 0x28)) {\n      uVar15 = *(uint *)(*(int *)(*param_2 + 8) + 0x2c);\n      local_28 = 1;\n      uVar6 = extraout_EDX;\n      pcVar16 = ".MIPS.options";\n      if (uVar15 != 2) goto LAB_001bb8fa;\n      local_28 = 1;\n      do {\n        if (0x10 < local_24[5]) {\n          bVar4 = true;\n        }\nLAB_001bba8f:\n        iVar5 = 10;\n        bVar22 = CARRY4(uVar3,*local_24);\n        pbVar21 = (byte *)(uVar3 + *local_24);\n        bVar24 = pbVar21 == (byte *)0x0;\n        pbVar18 = (byte *)".mips16.fn";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        iVar5 = (local_28 >> 5) * 4;\n        uVar17 = 1 << ((byte)local_28 & 0x1f);\n        uVar15 = *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        uVar12 = uVar15 & ~uVar17;\n        if (bVar22) {\n          uVar12 = uVar15 | uVar17;\n        }\n        *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5) = uVar12;\n        iVar13 = 0xd;\n        pbVar18 = (byte *)".mips16.call.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        puVar19 = (uint *)(*(int *)(param_1 + 0x200) + iVar5);\n        if ((!bVar23 && !bVar22) == bVar23) {\n          uVar15 = *puVar19 | uVar17;\n        }\n        else {\n          uVar15 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar15 == 0;\n        bVar22 = false;\n        *puVar19 = uVar15;\n        iVar13 = 0x10;\n        pbVar18 = (byte *)".mips16.call.fp.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        cVar14 = (!bVar22 && !bVar24) - bVar22;\n        uVar6 = CONCAT31((int3)(uVar15 >> 8),cVar14);\n        puVar19 = (uint *)(iVar5 + *(int *)(param_1 + 0x214));\n        if (cVar14 == '\0') {\n          uVar17 = uVar17 | *puVar19;\n        }\n        else {\n          uVar17 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar17 == 0;\n        bVar22 = false;\n        *puVar19 = uVar17;\n        iVar5 = 5;\n        pbVar18 = &DAT_0044d56a;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar21 < *pbVar18;\n          bVar24 = *pbVar21 == *pbVar18;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        if ((!bVar22 && !bVar24) == bVar22) {\n          if (*(int *)(param_1 + 0x228) != -1) goto LAB_001bbcbf;\n          *(uint *)(param_1 + 0x228) = local_28;\n        }\n        local_28 = local_28 + 1;\n        puVar19 = local_24 + 10;\n        if (*(uint *)(param_1 + 0x28) <= local_28) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_001bb77c;\n        }\n        uVar15 = local_24[0xb];\n        pcVar16 = param_1;\n        local_24 = puVar19;\n      } while (uVar15 == 2);\nLAB_001bb8fa:\n      if (uVar15 != 3) {\n        if (uVar15 == 0x70000006) {\n          param_1[0x1e4] = param_1[0x1e4] | 4;\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          puVar10 = (undefined4 *)\n                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          *(undefined4 *)(param_1 + 0x1e0) = puVar10[5];\n          *(undefined4 *)(param_1 + 0x234) = *puVar10;\n          *(undefined4 *)(param_1 + 0x238) = puVar10[1];\n          *(undefined4 *)(param_1 + 0x23c) = puVar10[2];\n          uVar6 = puVar10[3];\n          *(undefined4 *)(param_1 + 0x240) = uVar6;\n          *(undefined4 *)(param_1 + 0x244) = puVar10[4];\n          uVar15 = local_24[1];\n          pcVar16 = param_1;\n        }\n        if (uVar15 == 0x6ffffff5) {\n          if (*(int *)(param_1 + 0x22c) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);\n          }\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          uVar6 = FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0);\n          uVar7 = FUN_003ac4d0(8);\n                    /* try { // try from 001bb97b to 001bb97f has its CatchHandler @ 001bbd31 */\n          FUN_00225ca0(uVar7,uVar6,uVar15);\n          *(undefined4 *)(param_1 + 0x22c) = uVar7;\n          uVar15 = local_24[1];\n          uVar6 = extraout_EDX_00;\n        }\n        if (uVar15 == 0x7000002a) {\n          if (*(int *)(param_1 + 0x230) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);\n          }\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          psVar8 = (short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          psVar9 = (short *)FUN_003ac4d0(0x18);\n          psVar9[0] = 0;\n          psVar9[1] = 0;\n          psVar9[2] = 0;\n          psVar9[3] = 0;\n          sVar2 = *psVar8;\n          psVar9[4] = 0;\n          psVar9[5] = 0;\n          psVar9[6] = 0;\n          psVar9[7] = 0;\n          psVar9[8] = 0;\n          psVar9[9] = 0;\n          psVar9[10] = 0;\n          psVar9[0xb] = 0;\n          *(short **)(param_1 + 0x230) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined4 *)(param_1 + 4);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0023b810(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((int)psVar9 + 3) = *(undefined1 *)((int)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((int)psVar9 + 5) = *(undefined1 *)((int)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((int)psVar9 + 7) = *(undefined1 *)((int)psVar8 + 7);\n          *(undefined4 *)(psVar9 + 4) = *(undefined4 *)(psVar8 + 4);\n          *(undefined4 *)(psVar9 + 6) = *(undefined4 *)(psVar8 + 6);\n          *(undefined4 *)(psVar9 + 8) = *(undefined4 *)(psVar8 + 8);\n          *(undefined4 *)(psVar9 + 10) = *(undefined4 *)(psVar8 + 10);\n          uVar15 = local_24[1];\n        }\n        if (uVar15 == 0x7000000d) {\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          pcVar11 = (char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0);\n          pcVar16 = pcVar11 + uVar15;\n          for (; pcVar11 + 8 <= pcVar16; pcVar11 = pcVar11 + bVar1) {\n            bVar1 = pcVar11[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }\n            if (*pcVar11 == '\x01') {\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }\n      goto LAB_001bba8f;\n    }\n  }" { (expression_statement "iVar5 = FUN_001cc8a0(param_1,0,0,0x34,1,0);" (assignment_expression "iVar5 = FUN_001cc8a0(param_1,0,0,0x34,1,0)" identifier = (call_expression "FUN_001cc8a0(param_1,0,0,0x34,1,0)" identifier (argument_list "(param_1,0,0,0x34,1,0)" ( identifier , number_literal , number_literal , number_literal , number_literal , number_literal )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x13c) = *(undefined4 *)(iVar5 + 0x24);" (assignment_expression "*(undefined4 *)(param_1 + 0x13c) = *(undefined4 *)(iVar5 + 0x24)" (pointer_expression "*(undefined4 *)(param_1 + 0x13c)" * (cast_expression "(undefined4 *)(param_1 + 0x13c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x13c)" ( (binary_expression "param_1 + 0x13c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar5 + 0x24)" * (cast_expression "(undefined4 *)(iVar5 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x24)" ( (binary_expression "iVar5 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(uint *)(param_2[1] + 8);" (assignment_expression "uVar3 = *(uint *)(param_2[1] + 8)" identifier = (pointer_expression "*(uint *)(param_2[1] + 8)" * (cast_expression "(uint *)(param_2[1] + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + 8)" ( (binary_expression "param_2[1] + 8" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "FUN_00104420(param_1 + 0x1ec,*(undefined4 *)(param_1 + 0x28),0);" (call_expression "FUN_00104420(param_1 + 0x1ec,*(undefined4 *)(param_1 + 0x28),0)" identifier (argument_list "(param_1 + 0x1ec,*(undefined4 *)(param_1 + 0x28),0)" ( (binary_expression "param_1 + 0x1ec" identifier + number_literal) , (pointer_expression "*(undefined4 *)(param_1 + 0x28)" * (cast_expression "(undefined4 *)(param_1 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) , number_literal ))) ;) (expression_statement "FUN_00104420(param_1 + 0x200,*(undefined4 *)(param_1 + 0x28),0);" (call_expression "FUN_00104420(param_1 + 0x200,*(undefined4 *)(param_1 + 0x28),0)" identifier (argument_list "(param_1 + 0x200,*(undefined4 *)(param_1 + 0x28),0)" ( (binary_expression "param_1 + 0x200" identifier + number_literal) , (pointer_expression "*(undefined4 *)(param_1 + 0x28)" * (cast_expression "(undefined4 *)(param_1 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) , number_literal ))) ;) (expression_statement "FUN_00104420(param_1 + 0x214,*(undefined4 *)(param_1 + 0x28),0);" (call_expression "FUN_00104420(param_1 + 0x214,*(undefined4 *)(param_1 + 0x28),0)" identifier (argument_list "(param_1 + 0x214,*(undefined4 *)(param_1 + 0x28),0)" ( (binary_expression "param_1 + 0x214" identifier + number_literal) , (pointer_expression "*(undefined4 *)(param_1 + 0x28)" * (cast_expression "(undefined4 *)(param_1 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) , number_literal ))) ;) (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) (expression_statement "local_24 = (uint *)(*(int *)(*param_2 + 8) + 0x28);" (assignment_expression "local_24 = (uint *)(*(int *)(*param_2 + 8) + 0x28)" identifier = (cast_expression "(uint *)(*(int *)(*param_2 + 8) + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*param_2 + 8) + 0x28)" ( (binary_expression "*(int *)(*param_2 + 8) + 0x28" (pointer_expression "*(int *)(*param_2 + 8)" * (cast_expression "(int *)(*param_2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_2 + 8)" ( (binary_expression "*param_2 + 8" (pointer_expression "*param_2" * identifier) + number_literal) )))) + number_literal) )))) ;) (if_statement "if (1 < *(uint *)(param_1 + 0x28)) {\n      uVar15 = *(uint *)(*(int *)(*param_2 + 8) + 0x2c);\n      local_28 = 1;\n      uVar6 = extraout_EDX;\n      pcVar16 = ".MIPS.options";\n      if (uVar15 != 2) goto LAB_001bb8fa;\n      local_28 = 1;\n      do {\n        if (0x10 < local_24[5]) {\n          bVar4 = true;\n        }\nLAB_001bba8f:\n        iVar5 = 10;\n        bVar22 = CARRY4(uVar3,*local_24);\n        pbVar21 = (byte *)(uVar3 + *local_24);\n        bVar24 = pbVar21 == (byte *)0x0;\n        pbVar18 = (byte *)".mips16.fn";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        iVar5 = (local_28 >> 5) * 4;\n        uVar17 = 1 << ((byte)local_28 & 0x1f);\n        uVar15 = *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        uVar12 = uVar15 & ~uVar17;\n        if (bVar22) {\n          uVar12 = uVar15 | uVar17;\n        }\n        *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5) = uVar12;\n        iVar13 = 0xd;\n        pbVar18 = (byte *)".mips16.call.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        puVar19 = (uint *)(*(int *)(param_1 + 0x200) + iVar5);\n        if ((!bVar23 && !bVar22) == bVar23) {\n          uVar15 = *puVar19 | uVar17;\n        }\n        else {\n          uVar15 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar15 == 0;\n        bVar22 = false;\n        *puVar19 = uVar15;\n        iVar13 = 0x10;\n        pbVar18 = (byte *)".mips16.call.fp.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        cVar14 = (!bVar22 && !bVar24) - bVar22;\n        uVar6 = CONCAT31((int3)(uVar15 >> 8),cVar14);\n        puVar19 = (uint *)(iVar5 + *(int *)(param_1 + 0x214));\n        if (cVar14 == '\0') {\n          uVar17 = uVar17 | *puVar19;\n        }\n        else {\n          uVar17 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar17 == 0;\n        bVar22 = false;\n        *puVar19 = uVar17;\n        iVar5 = 5;\n        pbVar18 = &DAT_0044d56a;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar21 < *pbVar18;\n          bVar24 = *pbVar21 == *pbVar18;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        if ((!bVar22 && !bVar24) == bVar22) {\n          if (*(int *)(param_1 + 0x228) != -1) goto LAB_001bbcbf;\n          *(uint *)(param_1 + 0x228) = local_28;\n        }\n        local_28 = local_28 + 1;\n        puVar19 = local_24 + 10;\n        if (*(uint *)(param_1 + 0x28) <= local_28) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_001bb77c;\n        }\n        uVar15 = local_24[0xb];\n        pcVar16 = param_1;\n        local_24 = puVar19;\n      } while (uVar15 == 2);\nLAB_001bb8fa:\n      if (uVar15 != 3) {\n        if (uVar15 == 0x70000006) {\n          param_1[0x1e4] = param_1[0x1e4] | 4;\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          puVar10 = (undefined4 *)\n                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          *(undefined4 *)(param_1 + 0x1e0) = puVar10[5];\n          *(undefined4 *)(param_1 + 0x234) = *puVar10;\n          *(undefined4 *)(param_1 + 0x238) = puVar10[1];\n          *(undefined4 *)(param_1 + 0x23c) = puVar10[2];\n          uVar6 = puVar10[3];\n          *(undefined4 *)(param_1 + 0x240) = uVar6;\n          *(undefined4 *)(param_1 + 0x244) = puVar10[4];\n          uVar15 = local_24[1];\n          pcVar16 = param_1;\n        }\n        if (uVar15 == 0x6ffffff5) {\n          if (*(int *)(param_1 + 0x22c) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);\n          }\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          uVar6 = FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0);\n          uVar7 = FUN_003ac4d0(8);\n                    /* try { // try from 001bb97b to 001bb97f has its CatchHandler @ 001bbd31 */\n          FUN_00225ca0(uVar7,uVar6,uVar15);\n          *(undefined4 *)(param_1 + 0x22c) = uVar7;\n          uVar15 = local_24[1];\n          uVar6 = extraout_EDX_00;\n        }\n        if (uVar15 == 0x7000002a) {\n          if (*(int *)(param_1 + 0x230) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);\n          }\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          psVar8 = (short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          psVar9 = (short *)FUN_003ac4d0(0x18);\n          psVar9[0] = 0;\n          psVar9[1] = 0;\n          psVar9[2] = 0;\n          psVar9[3] = 0;\n          sVar2 = *psVar8;\n          psVar9[4] = 0;\n          psVar9[5] = 0;\n          psVar9[6] = 0;\n          psVar9[7] = 0;\n          psVar9[8] = 0;\n          psVar9[9] = 0;\n          psVar9[10] = 0;\n          psVar9[0xb] = 0;\n          *(short **)(param_1 + 0x230) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined4 *)(param_1 + 4);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0023b810(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((int)psVar9 + 3) = *(undefined1 *)((int)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((int)psVar9 + 5) = *(undefined1 *)((int)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((int)psVar9 + 7) = *(undefined1 *)((int)psVar8 + 7);\n          *(undefined4 *)(psVar9 + 4) = *(undefined4 *)(psVar8 + 4);\n          *(undefined4 *)(psVar9 + 6) = *(undefined4 *)(psVar8 + 6);\n          *(undefined4 *)(psVar9 + 8) = *(undefined4 *)(psVar8 + 8);\n          *(undefined4 *)(psVar9 + 10) = *(undefined4 *)(psVar8 + 10);\n          uVar15 = local_24[1];\n        }\n        if (uVar15 == 0x7000000d) {\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          pcVar11 = (char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0);\n          pcVar16 = pcVar11 + uVar15;\n          for (; pcVar11 + 8 <= pcVar16; pcVar11 = pcVar11 + bVar1) {\n            bVar1 = pcVar11[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }\n            if (*pcVar11 == '\x01') {\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }\n      goto LAB_001bba8f;\n    }" if (parenthesized_expression "(1 < *(uint *)(param_1 + 0x28))" ( (binary_expression "1 < *(uint *)(param_1 + 0x28)" number_literal < (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n      uVar15 = *(uint *)(*(int *)(*param_2 + 8) + 0x2c);\n      local_28 = 1;\n      uVar6 = extraout_EDX;\n      pcVar16 = ".MIPS.options";\n      if (uVar15 != 2) goto LAB_001bb8fa;\n      local_28 = 1;\n      do {\n        if (0x10 < local_24[5]) {\n          bVar4 = true;\n        }\nLAB_001bba8f:\n        iVar5 = 10;\n        bVar22 = CARRY4(uVar3,*local_24);\n        pbVar21 = (byte *)(uVar3 + *local_24);\n        bVar24 = pbVar21 == (byte *)0x0;\n        pbVar18 = (byte *)".mips16.fn";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        iVar5 = (local_28 >> 5) * 4;\n        uVar17 = 1 << ((byte)local_28 & 0x1f);\n        uVar15 = *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        uVar12 = uVar15 & ~uVar17;\n        if (bVar22) {\n          uVar12 = uVar15 | uVar17;\n        }\n        *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5) = uVar12;\n        iVar13 = 0xd;\n        pbVar18 = (byte *)".mips16.call.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        puVar19 = (uint *)(*(int *)(param_1 + 0x200) + iVar5);\n        if ((!bVar23 && !bVar22) == bVar23) {\n          uVar15 = *puVar19 | uVar17;\n        }\n        else {\n          uVar15 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar15 == 0;\n        bVar22 = false;\n        *puVar19 = uVar15;\n        iVar13 = 0x10;\n        pbVar18 = (byte *)".mips16.call.fp.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        cVar14 = (!bVar22 && !bVar24) - bVar22;\n        uVar6 = CONCAT31((int3)(uVar15 >> 8),cVar14);\n        puVar19 = (uint *)(iVar5 + *(int *)(param_1 + 0x214));\n        if (cVar14 == '\0') {\n          uVar17 = uVar17 | *puVar19;\n        }\n        else {\n          uVar17 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar17 == 0;\n        bVar22 = false;\n        *puVar19 = uVar17;\n        iVar5 = 5;\n        pbVar18 = &DAT_0044d56a;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar21 < *pbVar18;\n          bVar24 = *pbVar21 == *pbVar18;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        if ((!bVar22 && !bVar24) == bVar22) {\n          if (*(int *)(param_1 + 0x228) != -1) goto LAB_001bbcbf;\n          *(uint *)(param_1 + 0x228) = local_28;\n        }\n        local_28 = local_28 + 1;\n        puVar19 = local_24 + 10;\n        if (*(uint *)(param_1 + 0x28) <= local_28) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_001bb77c;\n        }\n        uVar15 = local_24[0xb];\n        pcVar16 = param_1;\n        local_24 = puVar19;\n      } while (uVar15 == 2);\nLAB_001bb8fa:\n      if (uVar15 != 3) {\n        if (uVar15 == 0x70000006) {\n          param_1[0x1e4] = param_1[0x1e4] | 4;\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          puVar10 = (undefined4 *)\n                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          *(undefined4 *)(param_1 + 0x1e0) = puVar10[5];\n          *(undefined4 *)(param_1 + 0x234) = *puVar10;\n          *(undefined4 *)(param_1 + 0x238) = puVar10[1];\n          *(undefined4 *)(param_1 + 0x23c) = puVar10[2];\n          uVar6 = puVar10[3];\n          *(undefined4 *)(param_1 + 0x240) = uVar6;\n          *(undefined4 *)(param_1 + 0x244) = puVar10[4];\n          uVar15 = local_24[1];\n          pcVar16 = param_1;\n        }\n        if (uVar15 == 0x6ffffff5) {\n          if (*(int *)(param_1 + 0x22c) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);\n          }\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          uVar6 = FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0);\n          uVar7 = FUN_003ac4d0(8);\n                    /* try { // try from 001bb97b to 001bb97f has its CatchHandler @ 001bbd31 */\n          FUN_00225ca0(uVar7,uVar6,uVar15);\n          *(undefined4 *)(param_1 + 0x22c) = uVar7;\n          uVar15 = local_24[1];\n          uVar6 = extraout_EDX_00;\n        }\n        if (uVar15 == 0x7000002a) {\n          if (*(int *)(param_1 + 0x230) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);\n          }\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          psVar8 = (short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          psVar9 = (short *)FUN_003ac4d0(0x18);\n          psVar9[0] = 0;\n          psVar9[1] = 0;\n          psVar9[2] = 0;\n          psVar9[3] = 0;\n          sVar2 = *psVar8;\n          psVar9[4] = 0;\n          psVar9[5] = 0;\n          psVar9[6] = 0;\n          psVar9[7] = 0;\n          psVar9[8] = 0;\n          psVar9[9] = 0;\n          psVar9[10] = 0;\n          psVar9[0xb] = 0;\n          *(short **)(param_1 + 0x230) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined4 *)(param_1 + 4);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0023b810(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((int)psVar9 + 3) = *(undefined1 *)((int)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((int)psVar9 + 5) = *(undefined1 *)((int)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((int)psVar9 + 7) = *(undefined1 *)((int)psVar8 + 7);\n          *(undefined4 *)(psVar9 + 4) = *(undefined4 *)(psVar8 + 4);\n          *(undefined4 *)(psVar9 + 6) = *(undefined4 *)(psVar8 + 6);\n          *(undefined4 *)(psVar9 + 8) = *(undefined4 *)(psVar8 + 8);\n          *(undefined4 *)(psVar9 + 10) = *(undefined4 *)(psVar8 + 10);\n          uVar15 = local_24[1];\n        }\n        if (uVar15 == 0x7000000d) {\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          pcVar11 = (char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0);\n          pcVar16 = pcVar11 + uVar15;\n          for (; pcVar11 + 8 <= pcVar16; pcVar11 = pcVar11 + bVar1) {\n            bVar1 = pcVar11[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }\n            if (*pcVar11 == '\x01') {\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }\n      goto LAB_001bba8f;\n    }" { (expression_statement "uVar15 = *(uint *)(*(int *)(*param_2 + 8) + 0x2c);" (assignment_expression "uVar15 = *(uint *)(*(int *)(*param_2 + 8) + 0x2c)" identifier = (pointer_expression "*(uint *)(*(int *)(*param_2 + 8) + 0x2c)" * (cast_expression "(uint *)(*(int *)(*param_2 + 8) + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*param_2 + 8) + 0x2c)" ( (binary_expression "*(int *)(*param_2 + 8) + 0x2c" (pointer_expression "*(int *)(*param_2 + 8)" * (cast_expression "(int *)(*param_2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_2 + 8)" ( (binary_expression "*param_2 + 8" (pointer_expression "*param_2" * identifier) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "local_28 = 1;" (assignment_expression "local_28 = 1" identifier = number_literal) ;) (expression_statement "uVar6 = extraout_EDX;" (assignment_expression "uVar6 = extraout_EDX" identifier = identifier) ;) (expression_statement "pcVar16 = ".MIPS.options";" (assignment_expression "pcVar16 = ".MIPS.options"" identifier = (string_literal "".MIPS.options"" " string_content ")) ;) (if_statement "if (uVar15 != 2) goto LAB_001bb8fa;" if (parenthesized_expression "(uVar15 != 2)" ( (binary_expression "uVar15 != 2" identifier != number_literal) )) (goto_statement "goto LAB_001bb8fa;" goto statement_identifier ;)) (expression_statement "local_28 = 1;" (assignment_expression "local_28 = 1" identifier = number_literal) ;) (do_statement "do {\n        if (0x10 < local_24[5]) {\n          bVar4 = true;\n        }\nLAB_001bba8f:\n        iVar5 = 10;\n        bVar22 = CARRY4(uVar3,*local_24);\n        pbVar21 = (byte *)(uVar3 + *local_24);\n        bVar24 = pbVar21 == (byte *)0x0;\n        pbVar18 = (byte *)".mips16.fn";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        iVar5 = (local_28 >> 5) * 4;\n        uVar17 = 1 << ((byte)local_28 & 0x1f);\n        uVar15 = *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        uVar12 = uVar15 & ~uVar17;\n        if (bVar22) {\n          uVar12 = uVar15 | uVar17;\n        }\n        *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5) = uVar12;\n        iVar13 = 0xd;\n        pbVar18 = (byte *)".mips16.call.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        puVar19 = (uint *)(*(int *)(param_1 + 0x200) + iVar5);\n        if ((!bVar23 && !bVar22) == bVar23) {\n          uVar15 = *puVar19 | uVar17;\n        }\n        else {\n          uVar15 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar15 == 0;\n        bVar22 = false;\n        *puVar19 = uVar15;\n        iVar13 = 0x10;\n        pbVar18 = (byte *)".mips16.call.fp.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        cVar14 = (!bVar22 && !bVar24) - bVar22;\n        uVar6 = CONCAT31((int3)(uVar15 >> 8),cVar14);\n        puVar19 = (uint *)(iVar5 + *(int *)(param_1 + 0x214));\n        if (cVar14 == '\0') {\n          uVar17 = uVar17 | *puVar19;\n        }\n        else {\n          uVar17 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar17 == 0;\n        bVar22 = false;\n        *puVar19 = uVar17;\n        iVar5 = 5;\n        pbVar18 = &DAT_0044d56a;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar21 < *pbVar18;\n          bVar24 = *pbVar21 == *pbVar18;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        if ((!bVar22 && !bVar24) == bVar22) {\n          if (*(int *)(param_1 + 0x228) != -1) goto LAB_001bbcbf;\n          *(uint *)(param_1 + 0x228) = local_28;\n        }\n        local_28 = local_28 + 1;\n        puVar19 = local_24 + 10;\n        if (*(uint *)(param_1 + 0x28) <= local_28) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_001bb77c;\n        }\n        uVar15 = local_24[0xb];\n        pcVar16 = param_1;\n        local_24 = puVar19;\n      } while (uVar15 == 2);" do (compound_statement "{\n        if (0x10 < local_24[5]) {\n          bVar4 = true;\n        }\nLAB_001bba8f:\n        iVar5 = 10;\n        bVar22 = CARRY4(uVar3,*local_24);\n        pbVar21 = (byte *)(uVar3 + *local_24);\n        bVar24 = pbVar21 == (byte *)0x0;\n        pbVar18 = (byte *)".mips16.fn";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        iVar5 = (local_28 >> 5) * 4;\n        uVar17 = 1 << ((byte)local_28 & 0x1f);\n        uVar15 = *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        uVar12 = uVar15 & ~uVar17;\n        if (bVar22) {\n          uVar12 = uVar15 | uVar17;\n        }\n        *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5) = uVar12;\n        iVar13 = 0xd;\n        pbVar18 = (byte *)".mips16.call.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        puVar19 = (uint *)(*(int *)(param_1 + 0x200) + iVar5);\n        if ((!bVar23 && !bVar22) == bVar23) {\n          uVar15 = *puVar19 | uVar17;\n        }\n        else {\n          uVar15 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar15 == 0;\n        bVar22 = false;\n        *puVar19 = uVar15;\n        iVar13 = 0x10;\n        pbVar18 = (byte *)".mips16.call.fp.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        cVar14 = (!bVar22 && !bVar24) - bVar22;\n        uVar6 = CONCAT31((int3)(uVar15 >> 8),cVar14);\n        puVar19 = (uint *)(iVar5 + *(int *)(param_1 + 0x214));\n        if (cVar14 == '\0') {\n          uVar17 = uVar17 | *puVar19;\n        }\n        else {\n          uVar17 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar17 == 0;\n        bVar22 = false;\n        *puVar19 = uVar17;\n        iVar5 = 5;\n        pbVar18 = &DAT_0044d56a;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar21 < *pbVar18;\n          bVar24 = *pbVar21 == *pbVar18;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        if ((!bVar22 && !bVar24) == bVar22) {\n          if (*(int *)(param_1 + 0x228) != -1) goto LAB_001bbcbf;\n          *(uint *)(param_1 + 0x228) = local_28;\n        }\n        local_28 = local_28 + 1;\n        puVar19 = local_24 + 10;\n        if (*(uint *)(param_1 + 0x28) <= local_28) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_001bb77c;\n        }\n        uVar15 = local_24[0xb];\n        pcVar16 = param_1;\n        local_24 = puVar19;\n      }" { (if_statement "if (0x10 < local_24[5]) {\n          bVar4 = true;\n        }" if (parenthesized_expression "(0x10 < local_24[5])" ( (binary_expression "0x10 < local_24[5]" number_literal < (subscript_expression "local_24[5]" identifier [ number_literal ])) )) (compound_statement "{\n          bVar4 = true;\n        }" { (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" identifier = true) ;) })) (labeled_statement "LAB_001bba8f:\n        iVar5 = 10;" statement_identifier : (expression_statement "iVar5 = 10;" (assignment_expression "iVar5 = 10" identifier = number_literal) ;)) (expression_statement "bVar22 = CARRY4(uVar3,*local_24);" (assignment_expression "bVar22 = CARRY4(uVar3,*local_24)" identifier = (call_expression "CARRY4(uVar3,*local_24)" identifier (argument_list "(uVar3,*local_24)" ( identifier , (pointer_expression "*local_24" * identifier) )))) ;) (expression_statement "pbVar21 = (byte *)(uVar3 + *local_24);" (assignment_expression "pbVar21 = (byte *)(uVar3 + *local_24)" identifier = (cast_expression "(byte *)(uVar3 + *local_24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar3 + *local_24)" ( (binary_expression "uVar3 + *local_24" identifier + (pointer_expression "*local_24" * identifier)) )))) ;) (expression_statement "bVar24 = pbVar21 == (byte *)0x0;" (assignment_expression "bVar24 = pbVar21 == (byte *)0x0" identifier = (binary_expression "pbVar21 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar18 = (byte *)".mips16.fn";" (assignment_expression "pbVar18 = (byte *)".mips16.fn"" identifier = (cast_expression "(byte *)".mips16.fn"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".mips16.fn"" " string_content "))) ;) (expression_statement "pbVar20 = pbVar21;" (assignment_expression "pbVar20 = pbVar21" identifier = identifier) ;) (do_statement "do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);" do (compound_statement "{\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar18 < *pbVar20;" (assignment_expression "bVar22 = *pbVar18 < *pbVar20" identifier = (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar24 = *pbVar18 == *pbVar20;" (assignment_expression "bVar24 = *pbVar18 == *pbVar20" identifier = (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (expression_statement "iVar5 = (local_28 >> 5) * 4;" (assignment_expression "iVar5 = (local_28 >> 5) * 4" identifier = (binary_expression "(local_28 >> 5) * 4" (parenthesized_expression "(local_28 >> 5)" ( (binary_expression "local_28 >> 5" identifier >> number_literal) )) * number_literal)) ;) (expression_statement "uVar17 = 1 << ((byte)local_28 & 0x1f);" (assignment_expression "uVar17 = 1 << ((byte)local_28 & 0x1f)" identifier = (binary_expression "1 << ((byte)local_28 & 0x1f)" number_literal << (parenthesized_expression "((byte)local_28 & 0x1f)" ( (binary_expression "(byte)local_28 & 0x1f" (cast_expression "(byte)local_28" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "uVar15 = *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5);" (assignment_expression "uVar15 = *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5)" identifier = (pointer_expression "*(uint *)(*(int *)(param_1 + 0x1ec) + iVar5)" * (cast_expression "(uint *)(*(int *)(param_1 + 0x1ec) + iVar5)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x1ec) + iVar5)" ( (binary_expression "*(int *)(param_1 + 0x1ec) + iVar5" (pointer_expression "*(int *)(param_1 + 0x1ec)" * (cast_expression "(int *)(param_1 + 0x1ec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1ec)" ( (binary_expression "param_1 + 0x1ec" identifier + number_literal) )))) + identifier) ))))) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "bVar22 = (!bVar22 && !bVar24) == bVar22;" (assignment_expression "bVar22 = (!bVar22 && !bVar24) == bVar22" identifier = (binary_expression "(!bVar22 && !bVar24) == bVar22" (parenthesized_expression "(!bVar22 && !bVar24)" ( (binary_expression "!bVar22 && !bVar24" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) == identifier)) ;) (expression_statement "uVar12 = uVar15 & ~uVar17;" (assignment_expression "uVar12 = uVar15 & ~uVar17" identifier = (binary_expression "uVar15 & ~uVar17" identifier & (unary_expression "~uVar17" ~ identifier))) ;) (if_statement "if (bVar22) {\n          uVar12 = uVar15 | uVar17;\n        }" if (parenthesized_expression "(bVar22)" ( identifier )) (compound_statement "{\n          uVar12 = uVar15 | uVar17;\n        }" { (expression_statement "uVar12 = uVar15 | uVar17;" (assignment_expression "uVar12 = uVar15 | uVar17" identifier = (binary_expression "uVar15 | uVar17" identifier | identifier)) ;) })) (expression_statement "*(uint *)(*(int *)(param_1 + 0x1ec) + iVar5) = uVar12;" (assignment_expression "*(uint *)(*(int *)(param_1 + 0x1ec) + iVar5) = uVar12" (pointer_expression "*(uint *)(*(int *)(param_1 + 0x1ec) + iVar5)" * (cast_expression "(uint *)(*(int *)(param_1 + 0x1ec) + iVar5)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x1ec) + iVar5)" ( (binary_expression "*(int *)(param_1 + 0x1ec) + iVar5" (pointer_expression "*(int *)(param_1 + 0x1ec)" * (cast_expression "(int *)(param_1 + 0x1ec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1ec)" ( (binary_expression "param_1 + 0x1ec" identifier + number_literal) )))) + identifier) )))) = identifier) ;) (expression_statement "iVar13 = 0xd;" (assignment_expression "iVar13 = 0xd" identifier = number_literal) ;) (expression_statement "pbVar18 = (byte *)".mips16.call.";" (assignment_expression "pbVar18 = (byte *)".mips16.call."" identifier = (cast_expression "(byte *)".mips16.call."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".mips16.call."" " string_content "))) ;) (expression_statement "pbVar20 = pbVar21;" (assignment_expression "pbVar20 = pbVar21" identifier = identifier) ;) (do_statement "do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);" do (compound_statement "{\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        }" { (if_statement "if (iVar13 == 0) break;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" identifier = (binary_expression "iVar13 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar18 < *pbVar20;" (assignment_expression "bVar23 = *pbVar18 < *pbVar20" identifier = (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar22 = *pbVar18 == *pbVar20;" (assignment_expression "bVar22 = *pbVar18 == *pbVar20" identifier = (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (expression_statement "puVar19 = (uint *)(*(int *)(param_1 + 0x200) + iVar5);" (assignment_expression "puVar19 = (uint *)(*(int *)(param_1 + 0x200) + iVar5)" identifier = (cast_expression "(uint *)(*(int *)(param_1 + 0x200) + iVar5)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x200) + iVar5)" ( (binary_expression "*(int *)(param_1 + 0x200) + iVar5" (pointer_expression "*(int *)(param_1 + 0x200)" * (cast_expression "(int *)(param_1 + 0x200)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x200)" ( (binary_expression "param_1 + 0x200" identifier + number_literal) )))) + identifier) )))) ;) (if_statement "if ((!bVar23 && !bVar22) == bVar23) {\n          uVar15 = *puVar19 | uVar17;\n        }\n        else {\n          uVar15 = ~uVar17 & *puVar19;\n        }" if (parenthesized_expression "((!bVar23 && !bVar22) == bVar23)" ( (binary_expression "(!bVar23 && !bVar22) == bVar23" (parenthesized_expression "(!bVar23 && !bVar22)" ( (binary_expression "!bVar23 && !bVar22" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) == identifier) )) (compound_statement "{\n          uVar15 = *puVar19 | uVar17;\n        }" { (expression_statement "uVar15 = *puVar19 | uVar17;" (assignment_expression "uVar15 = *puVar19 | uVar17" identifier = (binary_expression "*puVar19 | uVar17" (pointer_expression "*puVar19" * identifier) | identifier)) ;) }) (else_clause "else {\n          uVar15 = ~uVar17 & *puVar19;\n        }" else (compound_statement "{\n          uVar15 = ~uVar17 & *puVar19;\n        }" { (expression_statement "uVar15 = ~uVar17 & *puVar19;" (assignment_expression "uVar15 = ~uVar17 & *puVar19" identifier = (binary_expression "~uVar17 & *puVar19" (unary_expression "~uVar17" ~ identifier) & (pointer_expression "*puVar19" * identifier))) ;) }))) (expression_statement "bVar24 = uVar15 == 0;" (assignment_expression "bVar24 = uVar15 == 0" identifier = (binary_expression "uVar15 == 0" identifier == number_literal)) ;) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "*puVar19 = uVar15;" (assignment_expression "*puVar19 = uVar15" (pointer_expression "*puVar19" * identifier) = identifier) ;) (expression_statement "iVar13 = 0x10;" (assignment_expression "iVar13 = 0x10" identifier = number_literal) ;) (expression_statement "pbVar18 = (byte *)".mips16.call.fp.";" (assignment_expression "pbVar18 = (byte *)".mips16.call.fp."" identifier = (cast_expression "(byte *)".mips16.call.fp."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".mips16.call.fp."" " string_content "))) ;) (expression_statement "pbVar20 = pbVar21;" (assignment_expression "pbVar20 = pbVar21" identifier = identifier) ;) (do_statement "do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);" do (compound_statement "{\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        }" { (if_statement "if (iVar13 == 0) break;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" identifier = (binary_expression "iVar13 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar18 < *pbVar20;" (assignment_expression "bVar22 = *pbVar18 < *pbVar20" identifier = (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar24 = *pbVar18 == *pbVar20;" (assignment_expression "bVar24 = *pbVar18 == *pbVar20" identifier = (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (expression_statement "cVar14 = (!bVar22 && !bVar24) - bVar22;" (assignment_expression "cVar14 = (!bVar22 && !bVar24) - bVar22" identifier = (binary_expression "(!bVar22 && !bVar24) - bVar22" (parenthesized_expression "(!bVar22 && !bVar24)" ( (binary_expression "!bVar22 && !bVar24" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) - identifier)) ;) (expression_statement "uVar6 = CONCAT31((int3)(uVar15 >> 8),cVar14);" (assignment_expression "uVar6 = CONCAT31((int3)(uVar15 >> 8),cVar14)" identifier = (call_expression "CONCAT31((int3)(uVar15 >> 8),cVar14)" identifier (argument_list "((int3)(uVar15 >> 8),cVar14)" ( (call_expression "(int3)(uVar15 >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "(uVar15 >> 8)" ( (binary_expression "uVar15 >> 8" identifier >> number_literal) ))) , identifier )))) ;) (expression_statement "puVar19 = (uint *)(iVar5 + *(int *)(param_1 + 0x214));" (assignment_expression "puVar19 = (uint *)(iVar5 + *(int *)(param_1 + 0x214))" identifier = (cast_expression "(uint *)(iVar5 + *(int *)(param_1 + 0x214))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + *(int *)(param_1 + 0x214))" ( (binary_expression "iVar5 + *(int *)(param_1 + 0x214)" identifier + (pointer_expression "*(int *)(param_1 + 0x214)" * (cast_expression "(int *)(param_1 + 0x214)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x214)" ( (binary_expression "param_1 + 0x214" identifier + number_literal) ))))) )))) ;) (if_statement "if (cVar14 == '\0') {\n          uVar17 = uVar17 | *puVar19;\n        }\n        else {\n          uVar17 = ~uVar17 & *puVar19;\n        }" if (parenthesized_expression "(cVar14 == '\0')" ( (binary_expression "cVar14 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          uVar17 = uVar17 | *puVar19;\n        }" { (expression_statement "uVar17 = uVar17 | *puVar19;" (assignment_expression "uVar17 = uVar17 | *puVar19" identifier = (binary_expression "uVar17 | *puVar19" identifier | (pointer_expression "*puVar19" * identifier))) ;) }) (else_clause "else {\n          uVar17 = ~uVar17 & *puVar19;\n        }" else (compound_statement "{\n          uVar17 = ~uVar17 & *puVar19;\n        }" { (expression_statement "uVar17 = ~uVar17 & *puVar19;" (assignment_expression "uVar17 = ~uVar17 & *puVar19" identifier = (binary_expression "~uVar17 & *puVar19" (unary_expression "~uVar17" ~ identifier) & (pointer_expression "*puVar19" * identifier))) ;) }))) (expression_statement "bVar24 = uVar17 == 0;" (assignment_expression "bVar24 = uVar17 == 0" identifier = (binary_expression "uVar17 == 0" identifier == number_literal)) ;) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "*puVar19 = uVar17;" (assignment_expression "*puVar19 = uVar17" (pointer_expression "*puVar19" * identifier) = identifier) ;) (expression_statement "iVar5 = 5;" (assignment_expression "iVar5 = 5" identifier = number_literal) ;) (expression_statement "pbVar18 = &DAT_0044d56a;" (assignment_expression "pbVar18 = &DAT_0044d56a" identifier = (pointer_expression "&DAT_0044d56a" & identifier)) ;) (do_statement "do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar21 < *pbVar18;\n          bVar24 = *pbVar21 == *pbVar18;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);" do (compound_statement "{\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar21 < *pbVar18;\n          bVar24 = *pbVar21 == *pbVar18;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar21 < *pbVar18;" (assignment_expression "bVar22 = *pbVar21 < *pbVar18" identifier = (binary_expression "*pbVar21 < *pbVar18" (pointer_expression "*pbVar21" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "bVar24 = *pbVar21 == *pbVar18;" (assignment_expression "bVar24 = *pbVar21 == *pbVar18" identifier = (binary_expression "*pbVar21 == *pbVar18" (pointer_expression "*pbVar21" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (if_statement "if ((!bVar22 && !bVar24) == bVar22) {\n          if (*(int *)(param_1 + 0x228) != -1) goto LAB_001bbcbf;\n          *(uint *)(param_1 + 0x228) = local_28;\n        }" if (parenthesized_expression "((!bVar22 && !bVar24) == bVar22)" ( (binary_expression "(!bVar22 && !bVar24) == bVar22" (parenthesized_expression "(!bVar22 && !bVar24)" ( (binary_expression "!bVar22 && !bVar24" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) == identifier) )) (compound_statement "{\n          if (*(int *)(param_1 + 0x228) != -1) goto LAB_001bbcbf;\n          *(uint *)(param_1 + 0x228) = local_28;\n        }" { (if_statement "if (*(int *)(param_1 + 0x228) != -1) goto LAB_001bbcbf;" if (parenthesized_expression "(*(int *)(param_1 + 0x228) != -1)" ( (binary_expression "*(int *)(param_1 + 0x228) != -1" (pointer_expression "*(int *)(param_1 + 0x228)" * (cast_expression "(int *)(param_1 + 0x228)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x228)" ( (binary_expression "param_1 + 0x228" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_001bbcbf;" goto statement_identifier ;)) (expression_statement "*(uint *)(param_1 + 0x228) = local_28;" (assignment_expression "*(uint *)(param_1 + 0x228) = local_28" (pointer_expression "*(uint *)(param_1 + 0x228)" * (cast_expression "(uint *)(param_1 + 0x228)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x228)" ( (binary_expression "param_1 + 0x228" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "local_28 = local_28 + 1;" (assignment_expression "local_28 = local_28 + 1" identifier = (binary_expression "local_28 + 1" identifier + number_literal)) ;) (expression_statement "puVar19 = local_24 + 10;" (assignment_expression "puVar19 = local_24 + 10" identifier = (binary_expression "local_24 + 10" identifier + number_literal)) ;) (if_statement "if (*(uint *)(param_1 + 0x28) <= local_28) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_001bb77c;\n        }" if (parenthesized_expression "(*(uint *)(param_1 + 0x28) <= local_28)" ( (binary_expression "*(uint *)(param_1 + 0x28) <= local_28" (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n          if (bVar4) {\n            return;\n          }\n          goto LAB_001bb77c;\n        }" { (if_statement "if (bVar4) {\n            return;\n          }" if (parenthesized_expression "(bVar4)" ( identifier )) (compound_statement "{\n            return;\n          }" { (return_statement "return;" return ;) })) (goto_statement "goto LAB_001bb77c;" goto statement_identifier ;) })) (expression_statement "uVar15 = local_24[0xb];" (assignment_expression "uVar15 = local_24[0xb]" identifier = (subscript_expression "local_24[0xb]" identifier [ number_literal ])) ;) (expression_statement "pcVar16 = param_1;" (assignment_expression "pcVar16 = param_1" identifier = identifier) ;) (expression_statement "local_24 = puVar19;" (assignment_expression "local_24 = puVar19" identifier = identifier) ;) }) while (parenthesized_expression "(uVar15 == 2)" ( (binary_expression "uVar15 == 2" identifier == number_literal) )) ;) (labeled_statement "LAB_001bb8fa:\n      if (uVar15 != 3) {\n        if (uVar15 == 0x70000006) {\n          param_1[0x1e4] = param_1[0x1e4] | 4;\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          puVar10 = (undefined4 *)\n                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          *(undefined4 *)(param_1 + 0x1e0) = puVar10[5];\n          *(undefined4 *)(param_1 + 0x234) = *puVar10;\n          *(undefined4 *)(param_1 + 0x238) = puVar10[1];\n          *(undefined4 *)(param_1 + 0x23c) = puVar10[2];\n          uVar6 = puVar10[3];\n          *(undefined4 *)(param_1 + 0x240) = uVar6;\n          *(undefined4 *)(param_1 + 0x244) = puVar10[4];\n          uVar15 = local_24[1];\n          pcVar16 = param_1;\n        }\n        if (uVar15 == 0x6ffffff5) {\n          if (*(int *)(param_1 + 0x22c) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);\n          }\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          uVar6 = FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0);\n          uVar7 = FUN_003ac4d0(8);\n                    /* try { // try from 001bb97b to 001bb97f has its CatchHandler @ 001bbd31 */\n          FUN_00225ca0(uVar7,uVar6,uVar15);\n          *(undefined4 *)(param_1 + 0x22c) = uVar7;\n          uVar15 = local_24[1];\n          uVar6 = extraout_EDX_00;\n        }\n        if (uVar15 == 0x7000002a) {\n          if (*(int *)(param_1 + 0x230) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);\n          }\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          psVar8 = (short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          psVar9 = (short *)FUN_003ac4d0(0x18);\n          psVar9[0] = 0;\n          psVar9[1] = 0;\n          psVar9[2] = 0;\n          psVar9[3] = 0;\n          sVar2 = *psVar8;\n          psVar9[4] = 0;\n          psVar9[5] = 0;\n          psVar9[6] = 0;\n          psVar9[7] = 0;\n          psVar9[8] = 0;\n          psVar9[9] = 0;\n          psVar9[10] = 0;\n          psVar9[0xb] = 0;\n          *(short **)(param_1 + 0x230) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined4 *)(param_1 + 4);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0023b810(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((int)psVar9 + 3) = *(undefined1 *)((int)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((int)psVar9 + 5) = *(undefined1 *)((int)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((int)psVar9 + 7) = *(undefined1 *)((int)psVar8 + 7);\n          *(undefined4 *)(psVar9 + 4) = *(undefined4 *)(psVar8 + 4);\n          *(undefined4 *)(psVar9 + 6) = *(undefined4 *)(psVar8 + 6);\n          *(undefined4 *)(psVar9 + 8) = *(undefined4 *)(psVar8 + 8);\n          *(undefined4 *)(psVar9 + 10) = *(undefined4 *)(psVar8 + 10);\n          uVar15 = local_24[1];\n        }\n        if (uVar15 == 0x7000000d) {\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          pcVar11 = (char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0);\n          pcVar16 = pcVar11 + uVar15;\n          for (; pcVar11 + 8 <= pcVar16; pcVar11 = pcVar11 + bVar1) {\n            bVar1 = pcVar11[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }\n            if (*pcVar11 == '\x01') {\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }" statement_identifier : (if_statement "if (uVar15 != 3) {\n        if (uVar15 == 0x70000006) {\n          param_1[0x1e4] = param_1[0x1e4] | 4;\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          puVar10 = (undefined4 *)\n                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          *(undefined4 *)(param_1 + 0x1e0) = puVar10[5];\n          *(undefined4 *)(param_1 + 0x234) = *puVar10;\n          *(undefined4 *)(param_1 + 0x238) = puVar10[1];\n          *(undefined4 *)(param_1 + 0x23c) = puVar10[2];\n          uVar6 = puVar10[3];\n          *(undefined4 *)(param_1 + 0x240) = uVar6;\n          *(undefined4 *)(param_1 + 0x244) = puVar10[4];\n          uVar15 = local_24[1];\n          pcVar16 = param_1;\n        }\n        if (uVar15 == 0x6ffffff5) {\n          if (*(int *)(param_1 + 0x22c) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);\n          }\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          uVar6 = FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0);\n          uVar7 = FUN_003ac4d0(8);\n                    /* try { // try from 001bb97b to 001bb97f has its CatchHandler @ 001bbd31 */\n          FUN_00225ca0(uVar7,uVar6,uVar15);\n          *(undefined4 *)(param_1 + 0x22c) = uVar7;\n          uVar15 = local_24[1];\n          uVar6 = extraout_EDX_00;\n        }\n        if (uVar15 == 0x7000002a) {\n          if (*(int *)(param_1 + 0x230) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);\n          }\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          psVar8 = (short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          psVar9 = (short *)FUN_003ac4d0(0x18);\n          psVar9[0] = 0;\n          psVar9[1] = 0;\n          psVar9[2] = 0;\n          psVar9[3] = 0;\n          sVar2 = *psVar8;\n          psVar9[4] = 0;\n          psVar9[5] = 0;\n          psVar9[6] = 0;\n          psVar9[7] = 0;\n          psVar9[8] = 0;\n          psVar9[9] = 0;\n          psVar9[10] = 0;\n          psVar9[0xb] = 0;\n          *(short **)(param_1 + 0x230) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined4 *)(param_1 + 4);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0023b810(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((int)psVar9 + 3) = *(undefined1 *)((int)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((int)psVar9 + 5) = *(undefined1 *)((int)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((int)psVar9 + 7) = *(undefined1 *)((int)psVar8 + 7);\n          *(undefined4 *)(psVar9 + 4) = *(undefined4 *)(psVar8 + 4);\n          *(undefined4 *)(psVar9 + 6) = *(undefined4 *)(psVar8 + 6);\n          *(undefined4 *)(psVar9 + 8) = *(undefined4 *)(psVar8 + 8);\n          *(undefined4 *)(psVar9 + 10) = *(undefined4 *)(psVar8 + 10);\n          uVar15 = local_24[1];\n        }\n        if (uVar15 == 0x7000000d) {\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          pcVar11 = (char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0);\n          pcVar16 = pcVar11 + uVar15;\n          for (; pcVar11 + 8 <= pcVar16; pcVar11 = pcVar11 + bVar1) {\n            bVar1 = pcVar11[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }\n            if (*pcVar11 == '\x01') {\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }" if (parenthesized_expression "(uVar15 != 3)" ( (binary_expression "uVar15 != 3" identifier != number_literal) )) (compound_statement "{\n        if (uVar15 == 0x70000006) {\n          param_1[0x1e4] = param_1[0x1e4] | 4;\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          puVar10 = (undefined4 *)\n                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          *(undefined4 *)(param_1 + 0x1e0) = puVar10[5];\n          *(undefined4 *)(param_1 + 0x234) = *puVar10;\n          *(undefined4 *)(param_1 + 0x238) = puVar10[1];\n          *(undefined4 *)(param_1 + 0x23c) = puVar10[2];\n          uVar6 = puVar10[3];\n          *(undefined4 *)(param_1 + 0x240) = uVar6;\n          *(undefined4 *)(param_1 + 0x244) = puVar10[4];\n          uVar15 = local_24[1];\n          pcVar16 = param_1;\n        }\n        if (uVar15 == 0x6ffffff5) {\n          if (*(int *)(param_1 + 0x22c) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);\n          }\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          uVar6 = FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0);\n          uVar7 = FUN_003ac4d0(8);\n                    /* try { // try from 001bb97b to 001bb97f has its CatchHandler @ 001bbd31 */\n          FUN_00225ca0(uVar7,uVar6,uVar15);\n          *(undefined4 *)(param_1 + 0x22c) = uVar7;\n          uVar15 = local_24[1];\n          uVar6 = extraout_EDX_00;\n        }\n        if (uVar15 == 0x7000002a) {\n          if (*(int *)(param_1 + 0x230) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);\n          }\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          psVar8 = (short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          psVar9 = (short *)FUN_003ac4d0(0x18);\n          psVar9[0] = 0;\n          psVar9[1] = 0;\n          psVar9[2] = 0;\n          psVar9[3] = 0;\n          sVar2 = *psVar8;\n          psVar9[4] = 0;\n          psVar9[5] = 0;\n          psVar9[6] = 0;\n          psVar9[7] = 0;\n          psVar9[8] = 0;\n          psVar9[9] = 0;\n          psVar9[10] = 0;\n          psVar9[0xb] = 0;\n          *(short **)(param_1 + 0x230) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined4 *)(param_1 + 4);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0023b810(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((int)psVar9 + 3) = *(undefined1 *)((int)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((int)psVar9 + 5) = *(undefined1 *)((int)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((int)psVar9 + 7) = *(undefined1 *)((int)psVar8 + 7);\n          *(undefined4 *)(psVar9 + 4) = *(undefined4 *)(psVar8 + 4);\n          *(undefined4 *)(psVar9 + 6) = *(undefined4 *)(psVar8 + 6);\n          *(undefined4 *)(psVar9 + 8) = *(undefined4 *)(psVar8 + 8);\n          *(undefined4 *)(psVar9 + 10) = *(undefined4 *)(psVar8 + 10);\n          uVar15 = local_24[1];\n        }\n        if (uVar15 == 0x7000000d) {\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          pcVar11 = (char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0);\n          pcVar16 = pcVar11 + uVar15;\n          for (; pcVar11 + 8 <= pcVar16; pcVar11 = pcVar11 + bVar1) {\n            bVar1 = pcVar11[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }\n            if (*pcVar11 == '\x01') {\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }" { (if_statement "if (uVar15 == 0x70000006) {\n          param_1[0x1e4] = param_1[0x1e4] | 4;\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          puVar10 = (undefined4 *)\n                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          *(undefined4 *)(param_1 + 0x1e0) = puVar10[5];\n          *(undefined4 *)(param_1 + 0x234) = *puVar10;\n          *(undefined4 *)(param_1 + 0x238) = puVar10[1];\n          *(undefined4 *)(param_1 + 0x23c) = puVar10[2];\n          uVar6 = puVar10[3];\n          *(undefined4 *)(param_1 + 0x240) = uVar6;\n          *(undefined4 *)(param_1 + 0x244) = puVar10[4];\n          uVar15 = local_24[1];\n          pcVar16 = param_1;\n        }" if (parenthesized_expression "(uVar15 == 0x70000006)" ( (binary_expression "uVar15 == 0x70000006" identifier == number_literal) )) (compound_statement "{\n          param_1[0x1e4] = param_1[0x1e4] | 4;\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          puVar10 = (undefined4 *)\n                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          *(undefined4 *)(param_1 + 0x1e0) = puVar10[5];\n          *(undefined4 *)(param_1 + 0x234) = *puVar10;\n          *(undefined4 *)(param_1 + 0x238) = puVar10[1];\n          *(undefined4 *)(param_1 + 0x23c) = puVar10[2];\n          uVar6 = puVar10[3];\n          *(undefined4 *)(param_1 + 0x240) = uVar6;\n          *(undefined4 *)(param_1 + 0x244) = puVar10[4];\n          uVar15 = local_24[1];\n          pcVar16 = param_1;\n        }" { (expression_statement "param_1[0x1e4] = param_1[0x1e4] | 4;" (assignment_expression "param_1[0x1e4] = param_1[0x1e4] | 4" (subscript_expression "param_1[0x1e4]" identifier [ number_literal ]) = (binary_expression "param_1[0x1e4] | 4" (subscript_expression "param_1[0x1e4]" identifier [ number_literal ]) | number_literal)) ;) (if_statement "if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;" if (parenthesized_expression "(*(int *)(param_1 + 0x1c) == 0)" ( (binary_expression "*(int *)(param_1 + 0x1c) == 0" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_001bbcba;" goto statement_identifier ;)) (expression_statement "puVar10 = (undefined4 *)\n                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0);" (assignment_expression "puVar10 = (undefined4 *)\n                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0)" identifier = (cast_expression "(undefined4 *)\n                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0)" identifier (argument_list "(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0)" ( (binary_expression "*(int *)(param_1 + 0x1c) + 0x1c" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) + number_literal) , (pointer_expression "*(undefined4 *)(param_1 + 0x20)" * (cast_expression "(undefined4 *)(param_1 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x24)" * (cast_expression "(undefined4 *)(param_1 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) , (subscript_expression "local_24[4]" identifier [ number_literal ]) , (binary_expression "(int)local_24[4] >> 0x1f" (cast_expression "(int)local_24[4]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_24[4]" identifier [ number_literal ])) >> number_literal) , (subscript_expression "local_24[5]" identifier [ number_literal ]) , number_literal , number_literal ))))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x1e0) = puVar10[5];" (assignment_expression "*(undefined4 *)(param_1 + 0x1e0) = puVar10[5]" (pointer_expression "*(undefined4 *)(param_1 + 0x1e0)" * (cast_expression "(undefined4 *)(param_1 + 0x1e0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1e0)" ( (binary_expression "param_1 + 0x1e0" identifier + number_literal) )))) = (subscript_expression "puVar10[5]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(param_1 + 0x234) = *puVar10;" (assignment_expression "*(undefined4 *)(param_1 + 0x234) = *puVar10" (pointer_expression "*(undefined4 *)(param_1 + 0x234)" * (cast_expression "(undefined4 *)(param_1 + 0x234)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x234)" ( (binary_expression "param_1 + 0x234" identifier + number_literal) )))) = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "*(undefined4 *)(param_1 + 0x238) = puVar10[1];" (assignment_expression "*(undefined4 *)(param_1 + 0x238) = puVar10[1]" (pointer_expression "*(undefined4 *)(param_1 + 0x238)" * (cast_expression "(undefined4 *)(param_1 + 0x238)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x238)" ( (binary_expression "param_1 + 0x238" identifier + number_literal) )))) = (subscript_expression "puVar10[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(param_1 + 0x23c) = puVar10[2];" (assignment_expression "*(undefined4 *)(param_1 + 0x23c) = puVar10[2]" (pointer_expression "*(undefined4 *)(param_1 + 0x23c)" * (cast_expression "(undefined4 *)(param_1 + 0x23c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x23c)" ( (binary_expression "param_1 + 0x23c" identifier + number_literal) )))) = (subscript_expression "puVar10[2]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = puVar10[3];" (assignment_expression "uVar6 = puVar10[3]" identifier = (subscript_expression "puVar10[3]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(param_1 + 0x240) = uVar6;" (assignment_expression "*(undefined4 *)(param_1 + 0x240) = uVar6" (pointer_expression "*(undefined4 *)(param_1 + 0x240)" * (cast_expression "(undefined4 *)(param_1 + 0x240)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x240)" ( (binary_expression "param_1 + 0x240" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(param_1 + 0x244) = puVar10[4];" (assignment_expression "*(undefined4 *)(param_1 + 0x244) = puVar10[4]" (pointer_expression "*(undefined4 *)(param_1 + 0x244)" * (cast_expression "(undefined4 *)(param_1 + 0x244)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x244)" ( (binary_expression "param_1 + 0x244" identifier + number_literal) )))) = (subscript_expression "puVar10[4]" identifier [ number_literal ])) ;) (expression_statement "uVar15 = local_24[1];" (assignment_expression "uVar15 = local_24[1]" identifier = (subscript_expression "local_24[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar16 = param_1;" (assignment_expression "pcVar16 = param_1" identifier = identifier) ;) })) (if_statement "if (uVar15 == 0x6ffffff5) {\n          if (*(int *)(param_1 + 0x22c) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);\n          }\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          uVar6 = FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0);\n          uVar7 = FUN_003ac4d0(8);\n                    /* try { // try from 001bb97b to 001bb97f has its CatchHandler @ 001bbd31 */\n          FUN_00225ca0(uVar7,uVar6,uVar15);\n          *(undefined4 *)(param_1 + 0x22c) = uVar7;\n          uVar15 = local_24[1];\n          uVar6 = extraout_EDX_00;\n        }" if (parenthesized_expression "(uVar15 == 0x6ffffff5)" ( (binary_expression "uVar15 == 0x6ffffff5" identifier == number_literal) )) (compound_statement "{\n          if (*(int *)(param_1 + 0x22c) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);\n          }\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          uVar6 = FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0);\n          uVar7 = FUN_003ac4d0(8);\n                    /* try { // try from 001bb97b to 001bb97f has its CatchHandler @ 001bbd31 */\n          FUN_00225ca0(uVar7,uVar6,uVar15);\n          *(undefined4 *)(param_1 + 0x22c) = uVar7;\n          uVar15 = local_24[1];\n          uVar6 = extraout_EDX_00;\n        }" { (if_statement "if (*(int *)(param_1 + 0x22c) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);\n          }" if (parenthesized_expression "(*(int *)(param_1 + 0x22c) != 0)" ( (binary_expression "*(int *)(param_1 + 0x22c) != 0" (pointer_expression "*(int *)(param_1 + 0x22c)" * (cast_expression "(int *)(param_1 + 0x22c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x22c)" ( (binary_expression "param_1 + 0x22c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);\n          }" { comment (expression_statement "FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);" (call_expression "FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16)" identifier (argument_list "("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16)" ( (string_literal ""../../gold/mips.cc"" " string_content ") , number_literal , (string_literal ""do_read_symbols"" " string_content ") , identifier ))) ;) })) (expression_statement "uVar15 = local_24[5];" (assignment_expression "uVar15 = local_24[5]" identifier = (subscript_expression "local_24[5]" identifier [ number_literal ])) ;) (if_statement "if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;" if (parenthesized_expression "(*(int *)(param_1 + 0x1c) == 0)" ( (binary_expression "*(int *)(param_1 + 0x1c) == 0" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_001bbcba;" goto statement_identifier ;)) (expression_statement "uVar6 = FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0);" (assignment_expression "uVar6 = FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0)" identifier = (call_expression "FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0)" identifier (argument_list "(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0)" ( (binary_expression "*(int *)(param_1 + 0x1c) + 0x1c" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) + number_literal) , (pointer_expression "*(undefined4 *)(param_1 + 0x20)" * (cast_expression "(undefined4 *)(param_1 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x24)" * (cast_expression "(undefined4 *)(param_1 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) , (subscript_expression "local_24[4]" identifier [ number_literal ]) , (binary_expression "(int)local_24[4] >> 0x1f" (cast_expression "(int)local_24[4]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_24[4]" identifier [ number_literal ])) >> number_literal) , identifier , number_literal , number_literal )))) ;) (expression_statement "uVar7 = FUN_003ac4d0(8);" (assignment_expression "uVar7 = FUN_003ac4d0(8)" identifier = (call_expression "FUN_003ac4d0(8)" identifier (argument_list "(8)" ( number_literal )))) ;) comment (expression_statement "FUN_00225ca0(uVar7,uVar6,uVar15);" (call_expression "FUN_00225ca0(uVar7,uVar6,uVar15)" identifier (argument_list "(uVar7,uVar6,uVar15)" ( identifier , identifier , identifier ))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x22c) = uVar7;" (assignment_expression "*(undefined4 *)(param_1 + 0x22c) = uVar7" (pointer_expression "*(undefined4 *)(param_1 + 0x22c)" * (cast_expression "(undefined4 *)(param_1 + 0x22c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x22c)" ( (binary_expression "param_1 + 0x22c" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar15 = local_24[1];" (assignment_expression "uVar15 = local_24[1]" identifier = (subscript_expression "local_24[1]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = extraout_EDX_00;" (assignment_expression "uVar6 = extraout_EDX_00" identifier = identifier) ;) })) (if_statement "if (uVar15 == 0x7000002a) {\n          if (*(int *)(param_1 + 0x230) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);\n          }\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          psVar8 = (short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          psVar9 = (short *)FUN_003ac4d0(0x18);\n          psVar9[0] = 0;\n          psVar9[1] = 0;\n          psVar9[2] = 0;\n          psVar9[3] = 0;\n          sVar2 = *psVar8;\n          psVar9[4] = 0;\n          psVar9[5] = 0;\n          psVar9[6] = 0;\n          psVar9[7] = 0;\n          psVar9[8] = 0;\n          psVar9[9] = 0;\n          psVar9[10] = 0;\n          psVar9[0xb] = 0;\n          *(short **)(param_1 + 0x230) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined4 *)(param_1 + 4);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0023b810(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((int)psVar9 + 3) = *(undefined1 *)((int)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((int)psVar9 + 5) = *(undefined1 *)((int)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((int)psVar9 + 7) = *(undefined1 *)((int)psVar8 + 7);\n          *(undefined4 *)(psVar9 + 4) = *(undefined4 *)(psVar8 + 4);\n          *(undefined4 *)(psVar9 + 6) = *(undefined4 *)(psVar8 + 6);\n          *(undefined4 *)(psVar9 + 8) = *(undefined4 *)(psVar8 + 8);\n          *(undefined4 *)(psVar9 + 10) = *(undefined4 *)(psVar8 + 10);\n          uVar15 = local_24[1];\n        }" if (parenthesized_expression "(uVar15 == 0x7000002a)" ( (binary_expression "uVar15 == 0x7000002a" identifier == number_literal) )) (compound_statement "{\n          if (*(int *)(param_1 + 0x230) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);\n          }\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          psVar8 = (short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          psVar9 = (short *)FUN_003ac4d0(0x18);\n          psVar9[0] = 0;\n          psVar9[1] = 0;\n          psVar9[2] = 0;\n          psVar9[3] = 0;\n          sVar2 = *psVar8;\n          psVar9[4] = 0;\n          psVar9[5] = 0;\n          psVar9[6] = 0;\n          psVar9[7] = 0;\n          psVar9[8] = 0;\n          psVar9[9] = 0;\n          psVar9[10] = 0;\n          psVar9[0xb] = 0;\n          *(short **)(param_1 + 0x230) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined4 *)(param_1 + 4);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0023b810(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((int)psVar9 + 3) = *(undefined1 *)((int)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((int)psVar9 + 5) = *(undefined1 *)((int)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((int)psVar9 + 7) = *(undefined1 *)((int)psVar8 + 7);\n          *(undefined4 *)(psVar9 + 4) = *(undefined4 *)(psVar8 + 4);\n          *(undefined4 *)(psVar9 + 6) = *(undefined4 *)(psVar8 + 6);\n          *(undefined4 *)(psVar9 + 8) = *(undefined4 *)(psVar8 + 8);\n          *(undefined4 *)(psVar9 + 10) = *(undefined4 *)(psVar8 + 10);\n          uVar15 = local_24[1];\n        }" { (if_statement "if (*(int *)(param_1 + 0x230) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);\n          }" if (parenthesized_expression "(*(int *)(param_1 + 0x230) != 0)" ( (binary_expression "*(int *)(param_1 + 0x230) != 0" (pointer_expression "*(int *)(param_1 + 0x230)" * (cast_expression "(int *)(param_1 + 0x230)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x230)" ( (binary_expression "param_1 + 0x230" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);\n          }" { comment (expression_statement "FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);" (call_expression "FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6)" identifier (argument_list "("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6)" ( (string_literal ""../../gold/mips.cc"" " string_content ") , number_literal , (string_literal ""do_read_symbols"" " string_content ") , identifier ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;" if (parenthesized_expression "(*(int *)(param_1 + 0x1c) == 0)" ( (binary_expression "*(int *)(param_1 + 0x1c) == 0" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_001bbcba;" goto statement_identifier ;)) (expression_statement "psVar8 = (short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0);" (assignment_expression "psVar8 = (short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0)" identifier = (cast_expression "(short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0)" identifier (argument_list "(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0)" ( (binary_expression "*(int *)(param_1 + 0x1c) + 0x1c" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) + number_literal) , (pointer_expression "*(undefined4 *)(param_1 + 0x20)" * (cast_expression "(undefined4 *)(param_1 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x24)" * (cast_expression "(undefined4 *)(param_1 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) , (subscript_expression "local_24[4]" identifier [ number_literal ]) , (binary_expression "(int)local_24[4] >> 0x1f" (cast_expression "(int)local_24[4]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_24[4]" identifier [ number_literal ])) >> number_literal) , (subscript_expression "local_24[5]" identifier [ number_literal ]) , number_literal , number_literal ))))) ;) (expression_statement "psVar9 = (short *)FUN_003ac4d0(0x18);" (assignment_expression "psVar9 = (short *)FUN_003ac4d0(0x18)" identifier = (cast_expression "(short *)FUN_003ac4d0(0x18)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_003ac4d0(0x18)" identifier (argument_list "(0x18)" ( number_literal ))))) ;) (expression_statement "psVar9[0] = 0;" (assignment_expression "psVar9[0] = 0" (subscript_expression "psVar9[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "psVar9[1] = 0;" (assignment_expression "psVar9[1] = 0" (subscript_expression "psVar9[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "psVar9[2] = 0;" (assignment_expression "psVar9[2] = 0" (subscript_expression "psVar9[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "psVar9[3] = 0;" (assignment_expression "psVar9[3] = 0" (subscript_expression "psVar9[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "sVar2 = *psVar8;" (assignment_expression "sVar2 = *psVar8" identifier = (pointer_expression "*psVar8" * identifier)) ;) (expression_statement "psVar9[4] = 0;" (assignment_expression "psVar9[4] = 0" (subscript_expression "psVar9[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "psVar9[5] = 0;" (assignment_expression "psVar9[5] = 0" (subscript_expression "psVar9[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "psVar9[6] = 0;" (assignment_expression "psVar9[6] = 0" (subscript_expression "psVar9[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "psVar9[7] = 0;" (assignment_expression "psVar9[7] = 0" (subscript_expression "psVar9[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "psVar9[8] = 0;" (assignment_expression "psVar9[8] = 0" (subscript_expression "psVar9[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "psVar9[9] = 0;" (assignment_expression "psVar9[9] = 0" (subscript_expression "psVar9[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "psVar9[10] = 0;" (assignment_expression "psVar9[10] = 0" (subscript_expression "psVar9[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "psVar9[0xb] = 0;" (assignment_expression "psVar9[0xb] = 0" (subscript_expression "psVar9[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(short **)(param_1 + 0x230) = psVar9;" (assignment_expression "*(short **)(param_1 + 0x230) = psVar9" (pointer_expression "*(short **)(param_1 + 0x230)" * (cast_expression "(short **)(param_1 + 0x230)" ( (type_descriptor "short **" (sized_type_specifier "short" short) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x230)" ( (binary_expression "param_1 + 0x230" identifier + number_literal) )))) = identifier) ;) (expression_statement "*psVar9 = sVar2;" (assignment_expression "*psVar9 = sVar2" (pointer_expression "*psVar9" * identifier) = identifier) ;) (if_statement "if (sVar2 != 0) {\n            uVar6 = *(undefined4 *)(param_1 + 4);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0023b810(uVar7,uVar6,sVar2);\n            return;\n          }" if (parenthesized_expression "(sVar2 != 0)" ( (binary_expression "sVar2 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar6 = *(undefined4 *)(param_1 + 4);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0023b810(uVar7,uVar6,sVar2);\n            return;\n          }" { (expression_statement "uVar6 = *(undefined4 *)(param_1 + 4);" (assignment_expression "uVar6 = *(undefined4 *)(param_1 + 4)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");" (assignment_expression "uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u")" identifier = (call_expression "gettext("%s: .MIPS.abiflags section has unsupported version %u")" identifier (argument_list "("%s: .MIPS.abiflags section has unsupported version %u")" ( (string_literal ""%s: .MIPS.abiflags section has unsupported version %u"" " string_content ") )))) ;) (expression_statement "FUN_0023b810(uVar7,uVar6,sVar2);" (call_expression "FUN_0023b810(uVar7,uVar6,sVar2)" identifier (argument_list "(uVar7,uVar6,sVar2)" ( identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "*(char *)(psVar9 + 1) = (char)psVar8[1];" (assignment_expression "*(char *)(psVar9 + 1) = (char)psVar8[1]" (pointer_expression "*(char *)(psVar9 + 1)" * (cast_expression "(char *)(psVar9 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psVar9 + 1)" ( (binary_expression "psVar9 + 1" identifier + number_literal) )))) = (cast_expression "(char)psVar8[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "psVar8[1]" identifier [ number_literal ]))) ;) (expression_statement "*(undefined1 *)((int)psVar9 + 3) = *(undefined1 *)((int)psVar8 + 3);" (assignment_expression "*(undefined1 *)((int)psVar9 + 3) = *(undefined1 *)((int)psVar8 + 3)" (pointer_expression "*(undefined1 *)((int)psVar9 + 3)" * (cast_expression "(undefined1 *)((int)psVar9 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar9 + 3)" ( (binary_expression "(int)psVar9 + 3" (cast_expression "(int)psVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((int)psVar8 + 3)" * (cast_expression "(undefined1 *)((int)psVar8 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar8 + 3)" ( (binary_expression "(int)psVar8 + 3" (cast_expression "(int)psVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(char *)(psVar9 + 2) = (char)psVar8[2];" (assignment_expression "*(char *)(psVar9 + 2) = (char)psVar8[2]" (pointer_expression "*(char *)(psVar9 + 2)" * (cast_expression "(char *)(psVar9 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psVar9 + 2)" ( (binary_expression "psVar9 + 2" identifier + number_literal) )))) = (cast_expression "(char)psVar8[2]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "psVar8[2]" identifier [ number_literal ]))) ;) (expression_statement "*(undefined1 *)((int)psVar9 + 5) = *(undefined1 *)((int)psVar8 + 5);" (assignment_expression "*(undefined1 *)((int)psVar9 + 5) = *(undefined1 *)((int)psVar8 + 5)" (pointer_expression "*(undefined1 *)((int)psVar9 + 5)" * (cast_expression "(undefined1 *)((int)psVar9 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar9 + 5)" ( (binary_expression "(int)psVar9 + 5" (cast_expression "(int)psVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((int)psVar8 + 5)" * (cast_expression "(undefined1 *)((int)psVar8 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar8 + 5)" ( (binary_expression "(int)psVar8 + 5" (cast_expression "(int)psVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(char *)(psVar9 + 3) = (char)psVar8[3];" (assignment_expression "*(char *)(psVar9 + 3) = (char)psVar8[3]" (pointer_expression "*(char *)(psVar9 + 3)" * (cast_expression "(char *)(psVar9 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psVar9 + 3)" ( (binary_expression "psVar9 + 3" identifier + number_literal) )))) = (cast_expression "(char)psVar8[3]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "psVar8[3]" identifier [ number_literal ]))) ;) (expression_statement "*(undefined1 *)((int)psVar9 + 7) = *(undefined1 *)((int)psVar8 + 7);" (assignment_expression "*(undefined1 *)((int)psVar9 + 7) = *(undefined1 *)((int)psVar8 + 7)" (pointer_expression "*(undefined1 *)((int)psVar9 + 7)" * (cast_expression "(undefined1 *)((int)psVar9 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar9 + 7)" ( (binary_expression "(int)psVar9 + 7" (cast_expression "(int)psVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((int)psVar8 + 7)" * (cast_expression "(undefined1 *)((int)psVar8 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar8 + 7)" ( (binary_expression "(int)psVar8 + 7" (cast_expression "(int)psVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(psVar9 + 4) = *(undefined4 *)(psVar8 + 4);" (assignment_expression "*(undefined4 *)(psVar9 + 4) = *(undefined4 *)(psVar8 + 4)" (pointer_expression "*(undefined4 *)(psVar9 + 4)" * (cast_expression "(undefined4 *)(psVar9 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psVar9 + 4)" ( (binary_expression "psVar9 + 4" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(psVar8 + 4)" * (cast_expression "(undefined4 *)(psVar8 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psVar8 + 4)" ( (binary_expression "psVar8 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(psVar9 + 6) = *(undefined4 *)(psVar8 + 6);" (assignment_expression "*(undefined4 *)(psVar9 + 6) = *(undefined4 *)(psVar8 + 6)" (pointer_expression "*(undefined4 *)(psVar9 + 6)" * (cast_expression "(undefined4 *)(psVar9 + 6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psVar9 + 6)" ( (binary_expression "psVar9 + 6" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(psVar8 + 6)" * (cast_expression "(undefined4 *)(psVar8 + 6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psVar8 + 6)" ( (binary_expression "psVar8 + 6" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(psVar9 + 8) = *(undefined4 *)(psVar8 + 8);" (assignment_expression "*(undefined4 *)(psVar9 + 8) = *(undefined4 *)(psVar8 + 8)" (pointer_expression "*(undefined4 *)(psVar9 + 8)" * (cast_expression "(undefined4 *)(psVar9 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psVar9 + 8)" ( (binary_expression "psVar9 + 8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(psVar8 + 8)" * (cast_expression "(undefined4 *)(psVar8 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psVar8 + 8)" ( (binary_expression "psVar8 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(psVar9 + 10) = *(undefined4 *)(psVar8 + 10);" (assignment_expression "*(undefined4 *)(psVar9 + 10) = *(undefined4 *)(psVar8 + 10)" (pointer_expression "*(undefined4 *)(psVar9 + 10)" * (cast_expression "(undefined4 *)(psVar9 + 10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psVar9 + 10)" ( (binary_expression "psVar9 + 10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(psVar8 + 10)" * (cast_expression "(undefined4 *)(psVar8 + 10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psVar8 + 10)" ( (binary_expression "psVar8 + 10" identifier + number_literal) ))))) ;) (expression_statement "uVar15 = local_24[1];" (assignment_expression "uVar15 = local_24[1]" identifier = (subscript_expression "local_24[1]" identifier [ number_literal ])) ;) })) (if_statement "if (uVar15 == 0x7000000d) {\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          pcVar11 = (char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0);\n          pcVar16 = pcVar11 + uVar15;\n          for (; pcVar11 + 8 <= pcVar16; pcVar11 = pcVar11 + bVar1) {\n            bVar1 = pcVar11[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }\n            if (*pcVar11 == '\x01') {\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }\n          }\n        }" if (parenthesized_expression "(uVar15 == 0x7000000d)" ( (binary_expression "uVar15 == 0x7000000d" identifier == number_literal) )) (compound_statement "{\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          pcVar11 = (char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0);\n          pcVar16 = pcVar11 + uVar15;\n          for (; pcVar11 + 8 <= pcVar16; pcVar11 = pcVar11 + bVar1) {\n            bVar1 = pcVar11[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }\n            if (*pcVar11 == '\x01') {\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }\n          }\n        }" { (expression_statement "uVar15 = local_24[5];" (assignment_expression "uVar15 = local_24[5]" identifier = (subscript_expression "local_24[5]" identifier [ number_literal ])) ;) (if_statement "if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;" if (parenthesized_expression "(*(int *)(param_1 + 0x1c) == 0)" ( (binary_expression "*(int *)(param_1 + 0x1c) == 0" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_001bbcba;" goto statement_identifier ;)) (expression_statement "pcVar11 = (char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0);" (assignment_expression "pcVar11 = (char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0)" identifier = (cast_expression "(char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0)" identifier (argument_list "(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0)" ( (binary_expression "*(int *)(param_1 + 0x1c) + 0x1c" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) + number_literal) , (pointer_expression "*(undefined4 *)(param_1 + 0x20)" * (cast_expression "(undefined4 *)(param_1 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x24)" * (cast_expression "(undefined4 *)(param_1 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) , (subscript_expression "local_24[4]" identifier [ number_literal ]) , (binary_expression "(int)local_24[4] >> 0x1f" (cast_expression "(int)local_24[4]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_24[4]" identifier [ number_literal ])) >> number_literal) , identifier , number_literal , number_literal ))))) ;) (expression_statement "pcVar16 = pcVar11 + uVar15;" (assignment_expression "pcVar16 = pcVar11 + uVar15" identifier = (binary_expression "pcVar11 + uVar15" identifier + identifier)) ;) (for_statement "for (; pcVar11 + 8 <= pcVar16; pcVar11 = pcVar11 + bVar1) {\n            bVar1 = pcVar11[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }\n            if (*pcVar11 == '\x01') {\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }\n          }" for ( ; (binary_expression "pcVar11 + 8 <= pcVar16" (binary_expression "pcVar11 + 8" identifier + number_literal) <= identifier) ; (assignment_expression "pcVar11 = pcVar11 + bVar1" identifier = (binary_expression "pcVar11 + bVar1" identifier + identifier)) ) (compound_statement "{\n            bVar1 = pcVar11[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }\n            if (*pcVar11 == '\x01') {\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }\n          }" { (expression_statement "bVar1 = pcVar11[1];" (assignment_expression "bVar1 = pcVar11[1]" identifier = (subscript_expression "pcVar11[1]" identifier [ number_literal ])) ;) (if_statement "if (bVar1 < 8) {\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }" if (parenthesized_expression "(bVar1 < 8)" ( (binary_expression "bVar1 < 8" identifier < number_literal) )) (compound_statement "{\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }" { (expression_statement "uVar6 = *(undefined4 *)(param_1 + 4);" (assignment_expression "uVar6 = *(undefined4 *)(param_1 + 4)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "pcVar16 = ".MIPS.options";" (assignment_expression "pcVar16 = ".MIPS.options"" identifier = (string_literal "".MIPS.options"" " string_content ")) ;) (if_statement "if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }" if (parenthesized_expression "((param_1[0x1e4] & 2U) == 0)" ( (binary_expression "(param_1[0x1e4] & 2U) == 0" (parenthesized_expression "(param_1[0x1e4] & 2U)" ( (binary_expression "param_1[0x1e4] & 2U" (subscript_expression "param_1[0x1e4]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n                pcVar16 = ".options";\n              }" { (expression_statement "pcVar16 = ".options";" (assignment_expression "pcVar16 = ".options"" identifier = (string_literal "".options"" " string_content ")) ;) })) (expression_statement "uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");" (assignment_expression "uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header")" identifier = (call_expression "gettext("%s: Warning: bad `%s\' option size %u smaller than its header")" identifier (argument_list "("%s: Warning: bad `%s\' option size %u smaller than its header")" ( (string_literal ""%s: Warning: bad `%s\' option size %u smaller than its header"" " string_content escape_sequence string_content ") )))) ;) (expression_statement "FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);" (call_expression "FUN_0023b810(uVar7,uVar6,pcVar16,bVar1)" identifier (argument_list "(uVar7,uVar6,pcVar16,bVar1)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" identifier = true) ;) (goto_statement "goto LAB_001bba8f;" goto statement_identifier ;) })) (if_statement "if (*pcVar11 == '\x01') {\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }" if (parenthesized_expression "(*pcVar11 == '\x01')" ( (binary_expression "*pcVar11 == '\x01'" (pointer_expression "*pcVar11" * identifier) == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }" { (expression_statement "*(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);" (assignment_expression "*(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c)" (pointer_expression "*(undefined4 *)(param_1 + 0x1e0)" * (cast_expression "(undefined4 *)(param_1 + 0x1e0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1e0)" ( (binary_expression "param_1 + 0x1e0" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(pcVar11 + 0x1c)" * (cast_expression "(undefined4 *)(pcVar11 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x1c)" ( (binary_expression "pcVar11 + 0x1c" identifier + number_literal) ))))) ;) })) })) })) (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" identifier = true) ;) }))) (goto_statement "goto LAB_001bba8f;" goto statement_identifier ;) })) }) (else_clause "else if (iVar5 != 2) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }" else (if_statement "if (iVar5 != 2) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }" if (parenthesized_expression "(iVar5 != 2)" ( (binary_expression "iVar5 != 2" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }" { comment (expression_statement "FUN_002446e0("../../gold/mips.cc",0x1a9a,"do_read_symbols");" (call_expression "FUN_002446e0("../../gold/mips.cc",0x1a9a,"do_read_symbols")" identifier (argument_list "("../../gold/mips.cc",0x1a9a,"do_read_symbols")" ( (string_literal ""../../gold/mips.cc"" " string_content ") , number_literal , (string_literal ""do_read_symbols"" " string_content ") ))) ;) })))) (labeled_statement "LAB_001bb77c:\n  param_1[0x1e4] = param_1[0x1e4] & 0xf7;" statement_identifier : (expression_statement "param_1[0x1e4] = param_1[0x1e4] & 0xf7;" (assignment_expression "param_1[0x1e4] = param_1[0x1e4] & 0xf7" (subscript_expression "param_1[0x1e4]" identifier [ number_literal ]) = (binary_expression "param_1[0x1e4] & 0xf7" (subscript_expression "param_1[0x1e4]" identifier [ number_literal ]) & number_literal)) ;)) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* WARNING: Type propagation algorithm not settling */\n/* DWARF original prototype: void do_read_symbols(Mips_relobj<32,_false> * this, Read_symbols_data *\n   sd) */\n\nvoid __thiscall\nanon_unknown.dwarf_d7d43e::Mips_relobj<32,_false>::do_read_symbols\n          (Mips_relobj<32,_false> *this,Read_symbols_data *sd)\n\n{\n  byte bVar1;\n  ushort uVar2;\n  Input_file *pIVar3;\n  Format FVar4;\n  section_size_type sVar5;\n  pointer pcVar6;\n  bool bVar7;\n  uchar *puVar8;\n  uint *puVar9;\n  uchar *puVar10;\n  Attributes_section_data *this_00;\n  ushort *puVar11;\n  Mips_abiflags<false> *pMVar12;\n  uint uVar13;\n  Valtype *pVVar14;\n  uchar *puVar15;\n  char *format;\n  char *pcVar16;\n  int iVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  byte *pbVar21;\n  byte *pbVar22;\n  byte *pbVar23;\n  bool bVar24;\n  bool bVar25;\n  bool bVar26;\n  byte bVar27;\n  Object *in_stack_ffffffb4;\n  uint local_28;\n  uint *local_24;\n  \n  bVar27 = 0;\n  gold::Sized_relobj_file<32,_false>::base_read_symbols\n            (&this->super_Sized_relobj_file<32,_false>,sd);\n  pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.\n           super_Object.input_file_;\n  if (pIVar3 == (Input_file *)0x0) {\nLAB_001bbcba:\n                    /* WARNING: Subroutine does not return */\n    gold::Object::input_file(in_stack_ffffffb4);\n  }\n  FVar4 = pIVar3->format_;\n  if (FVar4 == FORMAT_ELF) {\n    puVar8 = gold::Object::get_view((Object *)this,0,0x34,true,false);\n    this->processor_specific_flags_ = *(Elf_Word *)(puVar8 + 0x24);\n    puVar8 = sd->section_names->data_;\n    std::vector<bool,_std::allocator<bool>_>::resize\n              (&this->section_is_mips16_fn_stub_,\n               (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj\n               .super_Object.shnum_,false);\n    std::vector<bool,_std::allocator<bool>_>::resize\n              (&this->section_is_mips16_call_stub_,\n               (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj\n               .super_Object.shnum_,false);\n    std::vector<bool,_std::allocator<bool>_>::resize\n              (&this->section_is_mips16_call_fp_stub_,\n               (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj\n               .super_Object.shnum_,false);\n    bVar7 = false;\n    puVar10 = sd->section_headers->data_;\n    local_24 = (uint *)(puVar10 + 0x28);\n    if (1 < (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.\n            super_Object.shnum_) {\n      uVar19 = *(uint *)(puVar10 + 0x2c);\n      local_28 = 1;\n      if (uVar19 != 2) goto LAB_001bb8fa;\n      local_28 = 1;\n      do {\n        if (0x10 < local_24[5]) {\n          bVar7 = true;\n        }\nLAB_001bba8f:\n        iVar17 = 10;\n        bVar24 = CARRY4((uint)puVar8,*local_24);\n        pbVar23 = puVar8 + *local_24;\n        bVar26 = pbVar23 == (byte *)0x0;\n        pbVar21 = (byte *)".mips16.fn";\n        pbVar22 = pbVar23;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar24 = *pbVar21 < *pbVar22;\n          bVar26 = *pbVar21 == *pbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        uVar13 = local_28 >> 5;\n        puVar9 = (this->section_is_mips16_fn_stub_).super__Bvector_base<std::allocator<bool>_>.\n                 _M_impl.super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p + uVar13;\n        uVar20 = 1 << ((byte)local_28 & 0x1f);\n        uVar19 = *puVar9;\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        uVar18 = uVar19 & ~uVar20;\n        if (bVar24) {\n          uVar18 = uVar19 | uVar20;\n        }\n        *puVar9 = uVar18;\n        iVar17 = 0xd;\n        pbVar21 = (byte *)".mips16.call.";\n        pbVar22 = pbVar23;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar25 = *pbVar21 < *pbVar22;\n          bVar24 = *pbVar21 == *pbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        puVar9 = (this->section_is_mips16_call_stub_).super__Bvector_base<std::allocator<bool>_>.\n                 _M_impl.super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p + uVar13;\n        if ((!bVar25 && !bVar24) == bVar25) {\n          uVar19 = *puVar9 | uVar20;\n        }\n        else {\n          uVar19 = ~uVar20 & *puVar9;\n        }\n        bVar26 = uVar19 == 0;\n        bVar24 = false;\n        *puVar9 = uVar19;\n        iVar17 = 0x10;\n        pbVar21 = (byte *)".mips16.call.fp.";\n        pbVar22 = pbVar23;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar24 = *pbVar21 < *pbVar22;\n          bVar26 = *pbVar21 == *pbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        puVar9 = (this->section_is_mips16_call_fp_stub_).super__Bvector_base<std::allocator<bool>_>.\n                 _M_impl.super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p + uVar13;\n        if ((!bVar24 && !bVar26) == bVar24) {\n          uVar20 = uVar20 | *puVar9;\n        }\n        else {\n          uVar20 = ~uVar20 & *puVar9;\n        }\n        bVar26 = uVar20 == 0;\n        bVar24 = false;\n        *puVar9 = uVar20;\n        iVar17 = 5;\n        pbVar21 = &DAT_0044d56a;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar24 = *pbVar23 < *pbVar21;\n          bVar26 = *pbVar23 == *pbVar21;\n          pbVar23 = pbVar23 + (uint)bVar27 * -2 + 1;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if (this->pdr_shndx_ != 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable("../../gold/mips.cc",0x1b6f,"do_read_symbols");\n          }\n          this->pdr_shndx_ = local_28;\n        }\n        local_28 = local_28 + 1;\n        puVar9 = local_24 + 10;\n        if ((this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.\n            super_Object.shnum_ <= local_28) {\n          if (bVar7) {\n            return;\n          }\n          goto LAB_001bb77c;\n        }\n        uVar19 = local_24[0xb];\n        local_24 = puVar9;\n      } while (uVar19 == 2);\nLAB_001bb8fa:\n      if (uVar19 != 3) {\n        if (uVar19 == 0x70000006) {\n          this->field_0x1e4 = this->field_0x1e4 | 4;\n          pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_;\n          if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;\n          pVVar14 = (Valtype *)\n                    gold::File_read::get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],local_24[5],true,false);\n          this->gp_ = pVVar14[5];\n          this->gprmask_ = *pVVar14;\n          this->cprmask1_ = pVVar14[1];\n          this->cprmask2_ = pVVar14[2];\n          this->cprmask3_ = pVVar14[3];\n          this->cprmask4_ = pVVar14[4];\n          uVar19 = local_24[1];\n        }\n        if (uVar19 == 0x6ffffff5) {\n          if (this->attributes_section_data_ != (Attributes_section_data *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }\n          sVar5 = local_24[5];\n          pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_;\n          if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;\n          puVar10 = gold::File_read::get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],sVar5,true,false);\n          this_00 = (Attributes_section_data *)operator_new(8);\n                    /* try { // try from 001bb97b to 001bb97f has its CatchHandler @ 001bbd31 */\n          gold::Attributes_section_data::Attributes_section_data(this_00,puVar10,sVar5);\n          this->attributes_section_data_ = this_00;\n          uVar19 = local_24[1];\n        }\n        if (uVar19 == 0x7000002a) {\n          if (this->abiflags_ != (Mips_abiflags<false> *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }\n          pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_;\n          if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;\n          puVar11 = (ushort *)\n                    gold::File_read::get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],local_24[5],true,false);\n          pMVar12 = (Mips_abiflags<false> *)operator_new(0x18);\n          pMVar12->version = 0;\n          pMVar12->isa_level = '\0';\n          pMVar12->isa_rev = '\0';\n          pMVar12->gpr_size = '\0';\n          pMVar12->cpr1_size = '\0';\n          pMVar12->cpr2_size = '\0';\n          pMVar12->fp_abi = '\0';\n          uVar2 = *puVar11;\n          pMVar12->isa_ext = 0;\n          pMVar12->ases = 0;\n          pMVar12->flags1 = 0;\n          pMVar12->flags2 = 0;\n          this->abiflags_ = pMVar12;\n          pMVar12->version = uVar2;\n          if (uVar2 != 0) {\n            pcVar6 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                     super_Relobj.super_Object.name_._M_dataplus._M_p;\n            pcVar16 = (char *)gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            gold::gold_error(pcVar16,pcVar6,(uint)uVar2);\n            return;\n          }\n          pMVar12->isa_level = (Valtype8)puVar11[1];\n          pMVar12->isa_rev = *(Valtype8 *)((int)puVar11 + 3);\n          pMVar12->gpr_size = (Valtype8)puVar11[2];\n          pMVar12->cpr1_size = *(Valtype8 *)((int)puVar11 + 5);\n          pMVar12->cpr2_size = (Valtype8)puVar11[3];\n          pMVar12->fp_abi = *(Valtype8 *)((int)puVar11 + 7);\n          pMVar12->isa_ext = *(Valtype32 *)(puVar11 + 4);\n          pMVar12->ases = *(Valtype32 *)(puVar11 + 6);\n          pMVar12->flags1 = *(Valtype32 *)(puVar11 + 8);\n          pMVar12->flags2 = *(Valtype32 *)(puVar11 + 10);\n          uVar19 = local_24[1];\n        }\n        if (uVar19 == 0x7000000d) {\n          sVar5 = local_24[5];\n          pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_;\n          if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;\n          puVar15 = gold::File_read::get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],sVar5,true,false);\n          puVar10 = puVar15 + sVar5;\n          for (; puVar15 + 8 <= puVar10; puVar15 = puVar15 + bVar1) {\n            bVar1 = puVar15[1];\n            if (bVar1 < 8) {\n              pcVar6 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                       super_Relobj.super_Object.name_._M_dataplus._M_p;\n              pcVar16 = ".MIPS.options";\n              if ((this->field_0x1e4 & 2) == 0) {\n                pcVar16 = ".options";\n              }\n              format = (char *)gettext(\n                                      "%s: Warning: bad `%s\' option size %u smaller than its header"\n                                      );\n              gold::gold_error(format,pcVar6,pcVar16,(uint)bVar1);\n              bVar7 = true;\n              goto LAB_001bba8f;\n            }\n            if (*puVar15 == '\x01') {\n              this->gp_ = *(Mips_address *)(puVar15 + 0x1c);\n            }\n          }\n        }\n        bVar7 = true;\n      }\n      goto LAB_001bba8f;\n    }\n  }\n  else if (FVar4 != FORMAT_BINARY) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }\nLAB_001bb77c:\n  this->field_0x1e4 = this->field_0x1e4 & 0xf7;\n  return;\n}\n\n" comment comment comment (declaration "void __thiscall\nanon_unknown.dwarf_d7d43e::Mips_relobj<32,_false>::do_read_symbols\n          (Mips_relobj<32,_false> *this,Read_symbols_data *sd)\n\n{\n  byte bVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) identifier (ERROR ".dwarf_d7d43e::Mips_relobj<32" . identifier : : identifier < number_literal) , (ERROR "_false>::do_read_symbols\n          (Mips_relobj<32,_false> *this,Read_symbols_data *sd)\n\n{\n  byte" identifier > : : (function_declarator "do_read_symbols\n          (Mips_relobj<32,_false> *this,Read_symbols_data *sd)" identifier (parameter_list "(Mips_relobj<32,_false> *this,Read_symbols_data *sd)" ( (parameter_declaration "Mips_relobj" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "_false> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "Read_symbols_data *sd" type_identifier (pointer_declarator "*sd" * identifier)) ))) { identifier) identifier ;) (declaration "ushort uVar2;" type_identifier identifier ;) (declaration "Input_file *pIVar3;" type_identifier (pointer_declarator "*pIVar3" * identifier) ;) (declaration "Format FVar4;" type_identifier identifier ;) (declaration "section_size_type sVar5;" type_identifier identifier ;) (declaration "pointer pcVar6;" type_identifier identifier ;) (declaration "bool bVar7;" primitive_type identifier ;) (declaration "uchar *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "uint *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "uchar *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "Attributes_section_data *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "ushort *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (expression_statement "Mips_abiflags<false> *pMVar12;" (update_expression "Mips_abiflags<false> *pMVar12" (binary_expression "Mips_abiflags<false> *pMVar12" (binary_expression "Mips_abiflags<false" identifier < false) > (pointer_expression "*pMVar12" * identifier)) --) ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "Valtype *pVVar14;" type_identifier (pointer_declarator "*pVVar14" * identifier) ;) (declaration "uchar *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "char *format;" primitive_type (pointer_declarator "*format" * identifier) ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "byte *pbVar21;" type_identifier (pointer_declarator "*pbVar21" * identifier) ;) (declaration "byte *pbVar22;" type_identifier (pointer_declarator "*pbVar22" * identifier) ;) (declaration "byte *pbVar23;" type_identifier (pointer_declarator "*pbVar23" * identifier) ;) (declaration "bool bVar24;" primitive_type identifier ;) (declaration "bool bVar25;" primitive_type identifier ;) (declaration "bool bVar26;" primitive_type identifier ;) (declaration "byte bVar27;" type_identifier identifier ;) (declaration "Object *in_stack_ffffffb4;" type_identifier (pointer_declarator "*in_stack_ffffffb4" * identifier) ;) (declaration "uint local_28;" type_identifier identifier ;) (declaration "uint *local_24;" type_identifier (pointer_declarator "*local_24" * identifier) ;) (expression_statement "bVar27 = 0;" (assignment_expression "bVar27 = 0" identifier = number_literal) ;) (labeled_statement "gold::Sized_relobj_file<32,_false>::base_read_symbols\n            (&this->super_Sized_relobj_file<32,_false>,sd);" statement_identifier : (ERROR ":" :) (expression_statement "Sized_relobj_file<32,_false>::base_read_symbols\n            (&this->super_Sized_relobj_file<32,_false>,sd);" (comma_expression "Sized_relobj_file<32,_false>::base_read_symbols\n            (&this->super_Sized_relobj_file<32,_false>,sd)" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false>::base_read_symbols\n            (&this->super_Sized_relobj_file<32,_false>,sd)" identifier > (ERROR "::" : :) (call_expression "base_read_symbols\n            (&this->super_Sized_relobj_file<32,_false>,sd)" identifier (argument_list "(&this->super_Sized_relobj_file<32,_false>,sd)" ( (binary_expression "&this->super_Sized_relobj_file<32" (pointer_expression "&this->super_Sized_relobj_file" & (field_expression "this->super_Sized_relobj_file" identifier -> field_identifier)) < number_literal) , identifier (ERROR ">" >) , identifier ))))) ;)) (expression_statement "pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.\n           super_Object.input_file_;" (assignment_expression "pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.\n           super_Object.input_file_" identifier = (parenthesized_expression "(this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.\n           super_Object.input_file_" ( (comma_expression "this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.\n           super_Object.input_file_" (binary_expression "this->super_Sized_relobj_file<32" (field_expression "this->super_Sized_relobj_file" identifier -> field_identifier) < number_literal) , (comma_expression "_false>).super_Sized_relobj<32,_false>.super_Relobj.\n           super_Object.input_file_" (binary_expression "_false>).super_Sized_relobj<32" (field_expression "_false>).super_Sized_relobj" identifier (ERROR ">)" > )) . field_identifier) < number_literal) , (field_expression "_false>.super_Relobj.\n           super_Object.input_file_" (field_expression "_false>.super_Relobj.\n           super_Object" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier))) ))) ;) (if_statement "if (pIVar3 == (Input_file *)0x0) {\nLAB_001bbcba:\n                    /* WARNING: Subroutine does not return */\n    gold::Object::input_file(in_stack_ffffffb4);\n  }" if (parenthesized_expression "(pIVar3 == (Input_file *)0x0)" ( (binary_expression "pIVar3 == (Input_file *)0x0" identifier == (cast_expression "(Input_file *)0x0" ( (type_descriptor "Input_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_001bbcba:\n                    /* WARNING: Subroutine does not return */\n    gold::Object::input_file(in_stack_ffffffb4);\n  }" { (labeled_statement "LAB_001bbcba:\n                    /* WARNING: Subroutine does not return */\n    gold::Object::input_file(in_stack_ffffffb4);" statement_identifier : comment (labeled_statement "gold::Object::input_file(in_stack_ffffffb4);" statement_identifier : (ERROR ":" :) (labeled_statement "Object::input_file(in_stack_ffffffb4);" statement_identifier : (ERROR ":" :) (expression_statement "input_file(in_stack_ffffffb4);" (call_expression "input_file(in_stack_ffffffb4)" identifier (argument_list "(in_stack_ffffffb4)" ( identifier ))) ;)))) })) (expression_statement "FVar4 = pIVar3->format_;" (assignment_expression "FVar4 = pIVar3->format_" identifier = (field_expression "pIVar3->format_" identifier -> field_identifier)) ;) (if_statement "if (FVar4 == FORMAT_ELF) {\n    puVar8 = gold::Object::get_view((Object *)this,0,0x34,true,false);\n    this->processor_specific_flags_ = *(Elf_Word *)(puVar8 + 0x24);\n    puVar8 = sd->section_names->data_;\n    std::vector<bool,_std::allocator<bool>_>::resize\n              (&this->section_is_mips16_fn_stub_,\n               (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj\n               .super_Object.shnum_,false);\n    std::vector<bool,_std::allocator<bool>_>::resize\n              (&this->section_is_mips16_call_stub_,\n               (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj\n               .super_Object.shnum_,false);\n    std::vector<bool,_std::allocator<bool>_>::resize\n              (&this->section_is_mips16_call_fp_stub_,\n               (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj\n               .super_Object.shnum_,false);\n    bVar7 = false;\n    puVar10 = sd->section_headers->data_;\n    local_24 = (uint *)(puVar10 + 0x28);\n    if (1 < (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.\n            super_Object.shnum_) {\n      uVar19 = *(uint *)(puVar10 + 0x2c);\n      local_28 = 1;\n      if (uVar19 != 2) goto LAB_001bb8fa;\n      local_28 = 1;\n      do {\n        if (0x10 < local_24[5]) {\n          bVar7 = true;\n        }\nLAB_001bba8f:\n        iVar17 = 10;\n        bVar24 = CARRY4((uint)puVar8,*local_24);\n        pbVar23 = puVar8 + *local_24;\n        bVar26 = pbVar23 == (byte *)0x0;\n        pbVar21 = (byte *)".mips16.fn";\n        pbVar22 = pbVar23;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar24 = *pbVar21 < *pbVar22;\n          bVar26 = *pbVar21 == *pbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        uVar13 = local_28 >> 5;\n        puVar9 = (this->section_is_mips16_fn_stub_).super__Bvector_base<std::allocator<bool>_>.\n                 _M_impl.super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p + uVar13;\n        uVar20 = 1 << ((byte)local_28 & 0x1f);\n        uVar19 = *puVar9;\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        uVar18 = uVar19 & ~uVar20;\n        if (bVar24) {\n          uVar18 = uVar19 | uVar20;\n        }\n        *puVar9 = uVar18;\n        iVar17 = 0xd;\n        pbVar21 = (byte *)".mips16.call.";\n        pbVar22 = pbVar23;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar25 = *pbVar21 < *pbVar22;\n          bVar24 = *pbVar21 == *pbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        puVar9 = (this->section_is_mips16_call_stub_).super__Bvector_base<std::allocator<bool>_>.\n                 _M_impl.super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p + uVar13;\n        if ((!bVar25 && !bVar24) == bVar25) {\n          uVar19 = *puVar9 | uVar20;\n        }\n        else {\n          uVar19 = ~uVar20 & *puVar9;\n        }\n        bVar26 = uVar19 == 0;\n        bVar24 = false;\n        *puVar9 = uVar19;\n        iVar17 = 0x10;\n        pbVar21 = (byte *)".mips16.call.fp.";\n        pbVar22 = pbVar23;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar24 = *pbVar21 < *pbVar22;\n          bVar26 = *pbVar21 == *pbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        puVar9 = (this->section_is_mips16_call_fp_stub_).super__Bvector_base<std::allocator<bool>_>.\n                 _M_impl.super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p + uVar13;\n        if ((!bVar24 && !bVar26) == bVar24) {\n          uVar20 = uVar20 | *puVar9;\n        }\n        else {\n          uVar20 = ~uVar20 & *puVar9;\n        }\n        bVar26 = uVar20 == 0;\n        bVar24 = false;\n        *puVar9 = uVar20;\n        iVar17 = 5;\n        pbVar21 = &DAT_0044d56a;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar24 = *pbVar23 < *pbVar21;\n          bVar26 = *pbVar23 == *pbVar21;\n          pbVar23 = pbVar23 + (uint)bVar27 * -2 + 1;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if (this->pdr_shndx_ != 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable("../../gold/mips.cc",0x1b6f,"do_read_symbols");\n          }\n          this->pdr_shndx_ = local_28;\n        }\n        local_28 = local_28 + 1;\n        puVar9 = local_24 + 10;\n        if ((this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.\n            super_Object.shnum_ <= local_28) {\n          if (bVar7) {\n            return;\n          }\n          goto LAB_001bb77c;\n        }\n        uVar19 = local_24[0xb];\n        local_24 = puVar9;\n      } while (uVar19 == 2);\nLAB_001bb8fa:\n      if (uVar19 != 3) {\n        if (uVar19 == 0x70000006) {\n          this->field_0x1e4 = this->field_0x1e4 | 4;\n          pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_;\n          if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;\n          pVVar14 = (Valtype *)\n                    gold::File_read::get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],local_24[5],true,false);\n          this->gp_ = pVVar14[5];\n          this->gprmask_ = *pVVar14;\n          this->cprmask1_ = pVVar14[1];\n          this->cprmask2_ = pVVar14[2];\n          this->cprmask3_ = pVVar14[3];\n          this->cprmask4_ = pVVar14[4];\n          uVar19 = local_24[1];\n        }\n        if (uVar19 == 0x6ffffff5) {\n          if (this->attributes_section_data_ != (Attributes_section_data *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }\n          sVar5 = local_24[5];\n          pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_;\n          if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;\n          puVar10 = gold::File_read::get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],sVar5,true,false);\n          this_00 = (Attributes_section_data *)operator_new(8);\n                    /* try { // try from 001bb97b to 001bb97f has its CatchHandler @ 001bbd31 */\n          gold::Attributes_section_data::Attributes_section_data(this_00,puVar10,sVar5);\n          this->attributes_section_data_ = this_00;\n          uVar19 = local_24[1];\n        }\n        if (uVar19 == 0x7000002a) {\n          if (this->abiflags_ != (Mips_abiflags<false> *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }\n          pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_;\n          if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;\n          puVar11 = (ushort *)\n                    gold::File_read::get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],local_24[5],true,false);\n          pMVar12 = (Mips_abiflags<false> *)operator_new(0x18);\n          pMVar12->version = 0;\n          pMVar12->isa_level = '\0';\n          pMVar12->isa_rev = '\0';\n          pMVar12->gpr_size = '\0';\n          pMVar12->cpr1_size = '\0';\n          pMVar12->cpr2_size = '\0';\n          pMVar12->fp_abi = '\0';\n          uVar2 = *puVar11;\n          pMVar12->isa_ext = 0;\n          pMVar12->ases = 0;\n          pMVar12->flags1 = 0;\n          pMVar12->flags2 = 0;\n          this->abiflags_ = pMVar12;\n          pMVar12->version = uVar2;\n          if (uVar2 != 0) {\n            pcVar6 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                     super_Relobj.super_Object.name_._M_dataplus._M_p;\n            pcVar16 = (char *)gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            gold::gold_error(pcVar16,pcVar6,(uint)uVar2);\n            return;\n          }\n          pMVar12->isa_level = (Valtype8)puVar11[1];\n          pMVar12->isa_rev = *(Valtype8 *)((int)puVar11 + 3);\n          pMVar12->gpr_size = (Valtype8)puVar11[2];\n          pMVar12->cpr1_size = *(Valtype8 *)((int)puVar11 + 5);\n          pMVar12->cpr2_size = (Valtype8)puVar11[3];\n          pMVar12->fp_abi = *(Valtype8 *)((int)puVar11 + 7);\n          pMVar12->isa_ext = *(Valtype32 *)(puVar11 + 4);\n          pMVar12->ases = *(Valtype32 *)(puVar11 + 6);\n          pMVar12->flags1 = *(Valtype32 *)(puVar11 + 8);\n          pMVar12->flags2 = *(Valtype32 *)(puVar11 + 10);\n          uVar19 = local_24[1];\n        }\n        if (uVar19 == 0x7000000d) {\n          sVar5 = local_24[5];\n          pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_;\n          if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;\n          puVar15 = gold::File_read::get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],sVar5,true,false);\n          puVar10 = puVar15 + sVar5;\n          for (; puVar15 + 8 <= puVar10; puVar15 = puVar15 + bVar1) {\n            bVar1 = puVar15[1];\n            if (bVar1 < 8) {\n              pcVar6 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                       super_Relobj.super_Object.name_._M_dataplus._M_p;\n              pcVar16 = ".MIPS.options";\n              if ((this->field_0x1e4 & 2) == 0) {\n                pcVar16 = ".options";\n              }\n              format = (char *)gettext(\n                                      "%s: Warning: bad `%s\' option size %u smaller than its header"\n                                      );\n              gold::gold_error(format,pcVar6,pcVar16,(uint)bVar1);\n              bVar7 = true;\n              goto LAB_001bba8f;\n            }\n            if (*puVar15 == '\x01') {\n              this->gp_ = *(Mips_address *)(puVar15 + 0x1c);\n            }\n          }\n        }\n        bVar7 = true;\n      }\n      goto LAB_001bba8f;\n    }\n  }\n  else if (FVar4 != FORMAT_BINARY) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }" if (parenthesized_expression "(FVar4 == FORMAT_ELF)" ( (binary_expression "FVar4 == FORMAT_ELF" identifier == identifier) )) (compound_statement "{\n    puVar8 = gold::Object::get_view((Object *)this,0,0x34,true,false);\n    this->processor_specific_flags_ = *(Elf_Word *)(puVar8 + 0x24);\n    puVar8 = sd->section_names->data_;\n    std::vector<bool,_std::allocator<bool>_>::resize\n              (&this->section_is_mips16_fn_stub_,\n               (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj\n               .super_Object.shnum_,false);\n    std::vector<bool,_std::allocator<bool>_>::resize\n              (&this->section_is_mips16_call_stub_,\n               (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj\n               .super_Object.shnum_,false);\n    std::vector<bool,_std::allocator<bool>_>::resize\n              (&this->section_is_mips16_call_fp_stub_,\n               (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj\n               .super_Object.shnum_,false);\n    bVar7 = false;\n    puVar10 = sd->section_headers->data_;\n    local_24 = (uint *)(puVar10 + 0x28);\n    if (1 < (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.\n            super_Object.shnum_) {\n      uVar19 = *(uint *)(puVar10 + 0x2c);\n      local_28 = 1;\n      if (uVar19 != 2) goto LAB_001bb8fa;\n      local_28 = 1;\n      do {\n        if (0x10 < local_24[5]) {\n          bVar7 = true;\n        }\nLAB_001bba8f:\n        iVar17 = 10;\n        bVar24 = CARRY4((uint)puVar8,*local_24);\n        pbVar23 = puVar8 + *local_24;\n        bVar26 = pbVar23 == (byte *)0x0;\n        pbVar21 = (byte *)".mips16.fn";\n        pbVar22 = pbVar23;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar24 = *pbVar21 < *pbVar22;\n          bVar26 = *pbVar21 == *pbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        uVar13 = local_28 >> 5;\n        puVar9 = (this->section_is_mips16_fn_stub_).super__Bvector_base<std::allocator<bool>_>.\n                 _M_impl.super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p + uVar13;\n        uVar20 = 1 << ((byte)local_28 & 0x1f);\n        uVar19 = *puVar9;\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        uVar18 = uVar19 & ~uVar20;\n        if (bVar24) {\n          uVar18 = uVar19 | uVar20;\n        }\n        *puVar9 = uVar18;\n        iVar17 = 0xd;\n        pbVar21 = (byte *)".mips16.call.";\n        pbVar22 = pbVar23;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar25 = *pbVar21 < *pbVar22;\n          bVar24 = *pbVar21 == *pbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        puVar9 = (this->section_is_mips16_call_stub_).super__Bvector_base<std::allocator<bool>_>.\n                 _M_impl.super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p + uVar13;\n        if ((!bVar25 && !bVar24) == bVar25) {\n          uVar19 = *puVar9 | uVar20;\n        }\n        else {\n          uVar19 = ~uVar20 & *puVar9;\n        }\n        bVar26 = uVar19 == 0;\n        bVar24 = false;\n        *puVar9 = uVar19;\n        iVar17 = 0x10;\n        pbVar21 = (byte *)".mips16.call.fp.";\n        pbVar22 = pbVar23;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar24 = *pbVar21 < *pbVar22;\n          bVar26 = *pbVar21 == *pbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        puVar9 = (this->section_is_mips16_call_fp_stub_).super__Bvector_base<std::allocator<bool>_>.\n                 _M_impl.super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p + uVar13;\n        if ((!bVar24 && !bVar26) == bVar24) {\n          uVar20 = uVar20 | *puVar9;\n        }\n        else {\n          uVar20 = ~uVar20 & *puVar9;\n        }\n        bVar26 = uVar20 == 0;\n        bVar24 = false;\n        *puVar9 = uVar20;\n        iVar17 = 5;\n        pbVar21 = &DAT_0044d56a;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar24 = *pbVar23 < *pbVar21;\n          bVar26 = *pbVar23 == *pbVar21;\n          pbVar23 = pbVar23 + (uint)bVar27 * -2 + 1;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if (this->pdr_shndx_ != 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable("../../gold/mips.cc",0x1b6f,"do_read_symbols");\n          }\n          this->pdr_shndx_ = local_28;\n        }\n        local_28 = local_28 + 1;\n        puVar9 = local_24 + 10;\n        if ((this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.\n            super_Object.shnum_ <= local_28) {\n          if (bVar7) {\n            return;\n          }\n          goto LAB_001bb77c;\n        }\n        uVar19 = local_24[0xb];\n        local_24 = puVar9;\n      } while (uVar19 == 2);\nLAB_001bb8fa:\n      if (uVar19 != 3) {\n        if (uVar19 == 0x70000006) {\n          this->field_0x1e4 = this->field_0x1e4 | 4;\n          pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_;\n          if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;\n          pVVar14 = (Valtype *)\n                    gold::File_read::get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],local_24[5],true,false);\n          this->gp_ = pVVar14[5];\n          this->gprmask_ = *pVVar14;\n          this->cprmask1_ = pVVar14[1];\n          this->cprmask2_ = pVVar14[2];\n          this->cprmask3_ = pVVar14[3];\n          this->cprmask4_ = pVVar14[4];\n          uVar19 = local_24[1];\n        }\n        if (uVar19 == 0x6ffffff5) {\n          if (this->attributes_section_data_ != (Attributes_section_data *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }\n          sVar5 = local_24[5];\n          pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_;\n          if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;\n          puVar10 = gold::File_read::get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],sVar5,true,false);\n          this_00 = (Attributes_section_data *)operator_new(8);\n                    /* try { // try from 001bb97b to 001bb97f has its CatchHandler @ 001bbd31 */\n          gold::Attributes_section_data::Attributes_section_data(this_00,puVar10,sVar5);\n          this->attributes_section_data_ = this_00;\n          uVar19 = local_24[1];\n        }\n        if (uVar19 == 0x7000002a) {\n          if (this->abiflags_ != (Mips_abiflags<false> *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }\n          pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_;\n          if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;\n          puVar11 = (ushort *)\n                    gold::File_read::get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],local_24[5],true,false);\n          pMVar12 = (Mips_abiflags<false> *)operator_new(0x18);\n          pMVar12->version = 0;\n          pMVar12->isa_level = '\0';\n          pMVar12->isa_rev = '\0';\n          pMVar12->gpr_size = '\0';\n          pMVar12->cpr1_size = '\0';\n          pMVar12->cpr2_size = '\0';\n          pMVar12->fp_abi = '\0';\n          uVar2 = *puVar11;\n          pMVar12->isa_ext = 0;\n          pMVar12->ases = 0;\n          pMVar12->flags1 = 0;\n          pMVar12->flags2 = 0;\n          this->abiflags_ = pMVar12;\n          pMVar12->version = uVar2;\n          if (uVar2 != 0) {\n            pcVar6 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                     super_Relobj.super_Object.name_._M_dataplus._M_p;\n            pcVar16 = (char *)gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            gold::gold_error(pcVar16,pcVar6,(uint)uVar2);\n            return;\n          }\n          pMVar12->isa_level = (Valtype8)puVar11[1];\n          pMVar12->isa_rev = *(Valtype8 *)((int)puVar11 + 3);\n          pMVar12->gpr_size = (Valtype8)puVar11[2];\n          pMVar12->cpr1_size = *(Valtype8 *)((int)puVar11 + 5);\n          pMVar12->cpr2_size = (Valtype8)puVar11[3];\n          pMVar12->fp_abi = *(Valtype8 *)((int)puVar11 + 7);\n          pMVar12->isa_ext = *(Valtype32 *)(puVar11 + 4);\n          pMVar12->ases = *(Valtype32 *)(puVar11 + 6);\n          pMVar12->flags1 = *(Valtype32 *)(puVar11 + 8);\n          pMVar12->flags2 = *(Valtype32 *)(puVar11 + 10);\n          uVar19 = local_24[1];\n        }\n        if (uVar19 == 0x7000000d) {\n          sVar5 = local_24[5];\n          pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_;\n          if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;\n          puVar15 = gold::File_read::get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],sVar5,true,false);\n          puVar10 = puVar15 + sVar5;\n          for (; puVar15 + 8 <= puVar10; puVar15 = puVar15 + bVar1) {\n            bVar1 = puVar15[1];\n            if (bVar1 < 8) {\n              pcVar6 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                       super_Relobj.super_Object.name_._M_dataplus._M_p;\n              pcVar16 = ".MIPS.options";\n              if ((this->field_0x1e4 & 2) == 0) {\n                pcVar16 = ".options";\n              }\n              format = (char *)gettext(\n                                      "%s: Warning: bad `%s\' option size %u smaller than its header"\n                                      );\n              gold::gold_error(format,pcVar6,pcVar16,(uint)bVar1);\n              bVar7 = true;\n              goto LAB_001bba8f;\n            }\n            if (*puVar15 == '\x01') {\n              this->gp_ = *(Mips_address *)(puVar15 + 0x1c);\n            }\n          }\n        }\n        bVar7 = true;\n      }\n      goto LAB_001bba8f;\n    }\n  }" { (ERROR "puVar8 = gold::" (assignment_expression "puVar8 = gold" identifier = identifier) : :) (labeled_statement "Object::get_view((Object *)this,0,0x34,true,false);" statement_identifier : (ERROR ":" :) (expression_statement "get_view((Object *)this,0,0x34,true,false);" (call_expression "get_view((Object *)this,0,0x34,true,false)" identifier (argument_list "((Object *)this,0,0x34,true,false)" ( (cast_expression "(Object *)this" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , number_literal , true , false ))) ;)) (expression_statement "this->processor_specific_flags_ = *(Elf_Word *)(puVar8 + 0x24);" (assignment_expression "this->processor_specific_flags_ = *(Elf_Word *)(puVar8 + 0x24)" (field_expression "this->processor_specific_flags_" identifier -> field_identifier) = (pointer_expression "*(Elf_Word *)(puVar8 + 0x24)" * (cast_expression "(Elf_Word *)(puVar8 + 0x24)" ( (type_descriptor "Elf_Word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x24)" ( (binary_expression "puVar8 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "puVar8 = sd->section_names->data_;" (assignment_expression "puVar8 = sd->section_names->data_" identifier = (field_expression "sd->section_names->data_" (field_expression "sd->section_names" identifier -> field_identifier) -> field_identifier)) ;) (labeled_statement "std::vector<bool,_std::allocator<bool>_>::resize\n              (&this->section_is_mips16_fn_stub_,\n               (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj\n               .super_Object.shnum_,false);" statement_identifier (ERROR "::vector<bool,_std::allocator<bool>_>:" : : (comma_expression "vector<bool,_std" (binary_expression "vector<bool" identifier < identifier) , identifier) : : (binary_expression "allocator<bool>_" (binary_expression "allocator<bool" identifier < identifier) > identifier) > :) : (expression_statement "resize\n              (&this->section_is_mips16_fn_stub_,\n               (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj\n               .super_Object.shnum_,false);" (call_expression "resize\n              (&this->section_is_mips16_fn_stub_,\n               (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj\n               .super_Object.shnum_,false)" identifier (argument_list "(&this->section_is_mips16_fn_stub_,\n               (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj\n               .super_Object.shnum_,false)" ( (pointer_expression "&this->section_is_mips16_fn_stub_" & (field_expression "this->section_is_mips16_fn_stub_" identifier -> field_identifier)) , (binary_expression "(this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32" (field_expression "(this->super_Sized_relobj_file<32,_false>).super_Sized_relobj" (parenthesized_expression "(this->super_Sized_relobj_file<32,_false>)" ( (comma_expression "this->super_Sized_relobj_file<32,_false" (binary_expression "this->super_Sized_relobj_file<32" (field_expression "this->super_Sized_relobj_file" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) < number_literal) , (field_expression "_false>.super_Relobj\n               .super_Object.shnum_" (field_expression "_false>.super_Relobj\n               .super_Object" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) , false ))) ;)) (labeled_statement "std::vector<bool,_std::allocator<bool>_>::resize\n              (&this->section_is_mips16_call_stub_,\n               (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj\n               .super_Object.shnum_,false);" statement_identifier (ERROR "::vector<bool,_std::allocator<bool>_>:" : : (comma_expression "vector<bool,_std" (binary_expression "vector<bool" identifier < identifier) , identifier) : : (binary_expression "allocator<bool>_" (binary_expression "allocator<bool" identifier < identifier) > identifier) > :) : (expression_statement "resize\n              (&this->section_is_mips16_call_stub_,\n               (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj\n               .super_Object.shnum_,false);" (call_expression "resize\n              (&this->section_is_mips16_call_stub_,\n               (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj\n               .super_Object.shnum_,false)" identifier (argument_list "(&this->section_is_mips16_call_stub_,\n               (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj\n               .super_Object.shnum_,false)" ( (pointer_expression "&this->section_is_mips16_call_stub_" & (field_expression "this->section_is_mips16_call_stub_" identifier -> field_identifier)) , (binary_expression "(this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32" (field_expression "(this->super_Sized_relobj_file<32,_false>).super_Sized_relobj" (parenthesized_expression "(this->super_Sized_relobj_file<32,_false>)" ( (comma_expression "this->super_Sized_relobj_file<32,_false" (binary_expression "this->super_Sized_relobj_file<32" (field_expression "this->super_Sized_relobj_file" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) < number_literal) , (field_expression "_false>.super_Relobj\n               .super_Object.shnum_" (field_expression "_false>.super_Relobj\n               .super_Object" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) , false ))) ;)) (labeled_statement "std::vector<bool,_std::allocator<bool>_>::resize\n              (&this->section_is_mips16_call_fp_stub_,\n               (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj\n               .super_Object.shnum_,false);" statement_identifier (ERROR "::vector<bool,_std::allocator<bool>_>:" : : (comma_expression "vector<bool,_std" (binary_expression "vector<bool" identifier < identifier) , identifier) : : (binary_expression "allocator<bool>_" (binary_expression "allocator<bool" identifier < identifier) > identifier) > :) : (expression_statement "resize\n              (&this->section_is_mips16_call_fp_stub_,\n               (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj\n               .super_Object.shnum_,false);" (call_expression "resize\n              (&this->section_is_mips16_call_fp_stub_,\n               (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj\n               .super_Object.shnum_,false)" identifier (argument_list "(&this->section_is_mips16_call_fp_stub_,\n               (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj\n               .super_Object.shnum_,false)" ( (pointer_expression "&this->section_is_mips16_call_fp_stub_" & (field_expression "this->section_is_mips16_call_fp_stub_" identifier -> field_identifier)) , (binary_expression "(this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32" (field_expression "(this->super_Sized_relobj_file<32,_false>).super_Sized_relobj" (parenthesized_expression "(this->super_Sized_relobj_file<32,_false>)" ( (comma_expression "this->super_Sized_relobj_file<32,_false" (binary_expression "this->super_Sized_relobj_file<32" (field_expression "this->super_Sized_relobj_file" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) < number_literal) , (field_expression "_false>.super_Relobj\n               .super_Object.shnum_" (field_expression "_false>.super_Relobj\n               .super_Object" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) , false ))) ;)) (expression_statement "bVar7 = false;" (assignment_expression "bVar7 = false" identifier = false) ;) (expression_statement "puVar10 = sd->section_headers->data_;" (assignment_expression "puVar10 = sd->section_headers->data_" identifier = (field_expression "sd->section_headers->data_" (field_expression "sd->section_headers" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "local_24 = (uint *)(puVar10 + 0x28);" (assignment_expression "local_24 = (uint *)(puVar10 + 0x28)" identifier = (cast_expression "(uint *)(puVar10 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x28)" ( (binary_expression "puVar10 + 0x28" identifier + number_literal) )))) ;) (if_statement "if (1 < (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.\n            super_Object.shnum_) {\n      uVar19 = *(uint *)(puVar10 + 0x2c);\n      local_28 = 1;\n      if (uVar19 != 2) goto LAB_001bb8fa;\n      local_28 = 1;\n      do {\n        if (0x10 < local_24[5]) {\n          bVar7 = true;\n        }\nLAB_001bba8f:\n        iVar17 = 10;\n        bVar24 = CARRY4((uint)puVar8,*local_24);\n        pbVar23 = puVar8 + *local_24;\n        bVar26 = pbVar23 == (byte *)0x0;\n        pbVar21 = (byte *)".mips16.fn";\n        pbVar22 = pbVar23;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar24 = *pbVar21 < *pbVar22;\n          bVar26 = *pbVar21 == *pbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        uVar13 = local_28 >> 5;\n        puVar9 = (this->section_is_mips16_fn_stub_).super__Bvector_base<std::allocator<bool>_>.\n                 _M_impl.super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p + uVar13;\n        uVar20 = 1 << ((byte)local_28 & 0x1f);\n        uVar19 = *puVar9;\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        uVar18 = uVar19 & ~uVar20;\n        if (bVar24) {\n          uVar18 = uVar19 | uVar20;\n        }\n        *puVar9 = uVar18;\n        iVar17 = 0xd;\n        pbVar21 = (byte *)".mips16.call.";\n        pbVar22 = pbVar23;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar25 = *pbVar21 < *pbVar22;\n          bVar24 = *pbVar21 == *pbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        puVar9 = (this->section_is_mips16_call_stub_).super__Bvector_base<std::allocator<bool>_>.\n                 _M_impl.super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p + uVar13;\n        if ((!bVar25 && !bVar24) == bVar25) {\n          uVar19 = *puVar9 | uVar20;\n        }\n        else {\n          uVar19 = ~uVar20 & *puVar9;\n        }\n        bVar26 = uVar19 == 0;\n        bVar24 = false;\n        *puVar9 = uVar19;\n        iVar17 = 0x10;\n        pbVar21 = (byte *)".mips16.call.fp.";\n        pbVar22 = pbVar23;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar24 = *pbVar21 < *pbVar22;\n          bVar26 = *pbVar21 == *pbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        puVar9 = (this->section_is_mips16_call_fp_stub_).super__Bvector_base<std::allocator<bool>_>.\n                 _M_impl.super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p + uVar13;\n        if ((!bVar24 && !bVar26) == bVar24) {\n          uVar20 = uVar20 | *puVar9;\n        }\n        else {\n          uVar20 = ~uVar20 & *puVar9;\n        }\n        bVar26 = uVar20 == 0;\n        bVar24 = false;\n        *puVar9 = uVar20;\n        iVar17 = 5;\n        pbVar21 = &DAT_0044d56a;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar24 = *pbVar23 < *pbVar21;\n          bVar26 = *pbVar23 == *pbVar21;\n          pbVar23 = pbVar23 + (uint)bVar27 * -2 + 1;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if (this->pdr_shndx_ != 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable("../../gold/mips.cc",0x1b6f,"do_read_symbols");\n          }\n          this->pdr_shndx_ = local_28;\n        }\n        local_28 = local_28 + 1;\n        puVar9 = local_24 + 10;\n        if ((this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.\n            super_Object.shnum_ <= local_28) {\n          if (bVar7) {\n            return;\n          }\n          goto LAB_001bb77c;\n        }\n        uVar19 = local_24[0xb];\n        local_24 = puVar9;\n      } while (uVar19 == 2);\nLAB_001bb8fa:\n      if (uVar19 != 3) {\n        if (uVar19 == 0x70000006) {\n          this->field_0x1e4 = this->field_0x1e4 | 4;\n          pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_;\n          if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;\n          pVVar14 = (Valtype *)\n                    gold::File_read::get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],local_24[5],true,false);\n          this->gp_ = pVVar14[5];\n          this->gprmask_ = *pVVar14;\n          this->cprmask1_ = pVVar14[1];\n          this->cprmask2_ = pVVar14[2];\n          this->cprmask3_ = pVVar14[3];\n          this->cprmask4_ = pVVar14[4];\n          uVar19 = local_24[1];\n        }\n        if (uVar19 == 0x6ffffff5) {\n          if (this->attributes_section_data_ != (Attributes_section_data *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }\n          sVar5 = local_24[5];\n          pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_;\n          if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;\n          puVar10 = gold::File_read::get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],sVar5,true,false);\n          this_00 = (Attributes_section_data *)operator_new(8);\n                    /* try { // try from 001bb97b to 001bb97f has its CatchHandler @ 001bbd31 */\n          gold::Attributes_section_data::Attributes_section_data(this_00,puVar10,sVar5);\n          this->attributes_section_data_ = this_00;\n          uVar19 = local_24[1];\n        }\n        if (uVar19 == 0x7000002a) {\n          if (this->abiflags_ != (Mips_abiflags<false> *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }\n          pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_;\n          if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;\n          puVar11 = (ushort *)\n                    gold::File_read::get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],local_24[5],true,false);\n          pMVar12 = (Mips_abiflags<false> *)operator_new(0x18);\n          pMVar12->version = 0;\n          pMVar12->isa_level = '\0';\n          pMVar12->isa_rev = '\0';\n          pMVar12->gpr_size = '\0';\n          pMVar12->cpr1_size = '\0';\n          pMVar12->cpr2_size = '\0';\n          pMVar12->fp_abi = '\0';\n          uVar2 = *puVar11;\n          pMVar12->isa_ext = 0;\n          pMVar12->ases = 0;\n          pMVar12->flags1 = 0;\n          pMVar12->flags2 = 0;\n          this->abiflags_ = pMVar12;\n          pMVar12->version = uVar2;\n          if (uVar2 != 0) {\n            pcVar6 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                     super_Relobj.super_Object.name_._M_dataplus._M_p;\n            pcVar16 = (char *)gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            gold::gold_error(pcVar16,pcVar6,(uint)uVar2);\n            return;\n          }\n          pMVar12->isa_level = (Valtype8)puVar11[1];\n          pMVar12->isa_rev = *(Valtype8 *)((int)puVar11 + 3);\n          pMVar12->gpr_size = (Valtype8)puVar11[2];\n          pMVar12->cpr1_size = *(Valtype8 *)((int)puVar11 + 5);\n          pMVar12->cpr2_size = (Valtype8)puVar11[3];\n          pMVar12->fp_abi = *(Valtype8 *)((int)puVar11 + 7);\n          pMVar12->isa_ext = *(Valtype32 *)(puVar11 + 4);\n          pMVar12->ases = *(Valtype32 *)(puVar11 + 6);\n          pMVar12->flags1 = *(Valtype32 *)(puVar11 + 8);\n          pMVar12->flags2 = *(Valtype32 *)(puVar11 + 10);\n          uVar19 = local_24[1];\n        }\n        if (uVar19 == 0x7000000d) {\n          sVar5 = local_24[5];\n          pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_;\n          if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;\n          puVar15 = gold::File_read::get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],sVar5,true,false);\n          puVar10 = puVar15 + sVar5;\n          for (; puVar15 + 8 <= puVar10; puVar15 = puVar15 + bVar1) {\n            bVar1 = puVar15[1];\n            if (bVar1 < 8) {\n              pcVar6 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                       super_Relobj.super_Object.name_._M_dataplus._M_p;\n              pcVar16 = ".MIPS.options";\n              if ((this->field_0x1e4 & 2) == 0) {\n                pcVar16 = ".options";\n              }\n              format = (char *)gettext(\n                                      "%s: Warning: bad `%s\' option size %u smaller than its header"\n                                      );\n              gold::gold_error(format,pcVar6,pcVar16,(uint)bVar1);\n              bVar7 = true;\n              goto LAB_001bba8f;\n            }\n            if (*puVar15 == '\x01') {\n              this->gp_ = *(Mips_address *)(puVar15 + 0x1c);\n            }\n          }\n        }\n        bVar7 = true;\n      }\n      goto LAB_001bba8f;\n    }" if (parenthesized_expression "(1 < (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.\n            super_Object.shnum_)" ( (comma_expression "1 < (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.\n            super_Object.shnum_" (binary_expression "1 < (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32" (binary_expression "1 < (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj" number_literal < (field_expression "(this->super_Sized_relobj_file<32,_false>).super_Sized_relobj" (parenthesized_expression "(this->super_Sized_relobj_file<32,_false>)" ( (comma_expression "this->super_Sized_relobj_file<32,_false" (binary_expression "this->super_Sized_relobj_file<32" (field_expression "this->super_Sized_relobj_file" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier)) < number_literal) , (field_expression "_false>.super_Relobj.\n            super_Object.shnum_" (field_expression "_false>.super_Relobj.\n            super_Object" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier)) )) (compound_statement "{\n      uVar19 = *(uint *)(puVar10 + 0x2c);\n      local_28 = 1;\n      if (uVar19 != 2) goto LAB_001bb8fa;\n      local_28 = 1;\n      do {\n        if (0x10 < local_24[5]) {\n          bVar7 = true;\n        }\nLAB_001bba8f:\n        iVar17 = 10;\n        bVar24 = CARRY4((uint)puVar8,*local_24);\n        pbVar23 = puVar8 + *local_24;\n        bVar26 = pbVar23 == (byte *)0x0;\n        pbVar21 = (byte *)".mips16.fn";\n        pbVar22 = pbVar23;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar24 = *pbVar21 < *pbVar22;\n          bVar26 = *pbVar21 == *pbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        uVar13 = local_28 >> 5;\n        puVar9 = (this->section_is_mips16_fn_stub_).super__Bvector_base<std::allocator<bool>_>.\n                 _M_impl.super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p + uVar13;\n        uVar20 = 1 << ((byte)local_28 & 0x1f);\n        uVar19 = *puVar9;\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        uVar18 = uVar19 & ~uVar20;\n        if (bVar24) {\n          uVar18 = uVar19 | uVar20;\n        }\n        *puVar9 = uVar18;\n        iVar17 = 0xd;\n        pbVar21 = (byte *)".mips16.call.";\n        pbVar22 = pbVar23;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar25 = *pbVar21 < *pbVar22;\n          bVar24 = *pbVar21 == *pbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        puVar9 = (this->section_is_mips16_call_stub_).super__Bvector_base<std::allocator<bool>_>.\n                 _M_impl.super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p + uVar13;\n        if ((!bVar25 && !bVar24) == bVar25) {\n          uVar19 = *puVar9 | uVar20;\n        }\n        else {\n          uVar19 = ~uVar20 & *puVar9;\n        }\n        bVar26 = uVar19 == 0;\n        bVar24 = false;\n        *puVar9 = uVar19;\n        iVar17 = 0x10;\n        pbVar21 = (byte *)".mips16.call.fp.";\n        pbVar22 = pbVar23;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar24 = *pbVar21 < *pbVar22;\n          bVar26 = *pbVar21 == *pbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        puVar9 = (this->section_is_mips16_call_fp_stub_).super__Bvector_base<std::allocator<bool>_>.\n                 _M_impl.super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p + uVar13;\n        if ((!bVar24 && !bVar26) == bVar24) {\n          uVar20 = uVar20 | *puVar9;\n        }\n        else {\n          uVar20 = ~uVar20 & *puVar9;\n        }\n        bVar26 = uVar20 == 0;\n        bVar24 = false;\n        *puVar9 = uVar20;\n        iVar17 = 5;\n        pbVar21 = &DAT_0044d56a;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar24 = *pbVar23 < *pbVar21;\n          bVar26 = *pbVar23 == *pbVar21;\n          pbVar23 = pbVar23 + (uint)bVar27 * -2 + 1;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if (this->pdr_shndx_ != 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable("../../gold/mips.cc",0x1b6f,"do_read_symbols");\n          }\n          this->pdr_shndx_ = local_28;\n        }\n        local_28 = local_28 + 1;\n        puVar9 = local_24 + 10;\n        if ((this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.\n            super_Object.shnum_ <= local_28) {\n          if (bVar7) {\n            return;\n          }\n          goto LAB_001bb77c;\n        }\n        uVar19 = local_24[0xb];\n        local_24 = puVar9;\n      } while (uVar19 == 2);\nLAB_001bb8fa:\n      if (uVar19 != 3) {\n        if (uVar19 == 0x70000006) {\n          this->field_0x1e4 = this->field_0x1e4 | 4;\n          pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_;\n          if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;\n          pVVar14 = (Valtype *)\n                    gold::File_read::get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],local_24[5],true,false);\n          this->gp_ = pVVar14[5];\n          this->gprmask_ = *pVVar14;\n          this->cprmask1_ = pVVar14[1];\n          this->cprmask2_ = pVVar14[2];\n          this->cprmask3_ = pVVar14[3];\n          this->cprmask4_ = pVVar14[4];\n          uVar19 = local_24[1];\n        }\n        if (uVar19 == 0x6ffffff5) {\n          if (this->attributes_section_data_ != (Attributes_section_data *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }\n          sVar5 = local_24[5];\n          pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_;\n          if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;\n          puVar10 = gold::File_read::get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],sVar5,true,false);\n          this_00 = (Attributes_section_data *)operator_new(8);\n                    /* try { // try from 001bb97b to 001bb97f has its CatchHandler @ 001bbd31 */\n          gold::Attributes_section_data::Attributes_section_data(this_00,puVar10,sVar5);\n          this->attributes_section_data_ = this_00;\n          uVar19 = local_24[1];\n        }\n        if (uVar19 == 0x7000002a) {\n          if (this->abiflags_ != (Mips_abiflags<false> *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }\n          pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_;\n          if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;\n          puVar11 = (ushort *)\n                    gold::File_read::get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],local_24[5],true,false);\n          pMVar12 = (Mips_abiflags<false> *)operator_new(0x18);\n          pMVar12->version = 0;\n          pMVar12->isa_level = '\0';\n          pMVar12->isa_rev = '\0';\n          pMVar12->gpr_size = '\0';\n          pMVar12->cpr1_size = '\0';\n          pMVar12->cpr2_size = '\0';\n          pMVar12->fp_abi = '\0';\n          uVar2 = *puVar11;\n          pMVar12->isa_ext = 0;\n          pMVar12->ases = 0;\n          pMVar12->flags1 = 0;\n          pMVar12->flags2 = 0;\n          this->abiflags_ = pMVar12;\n          pMVar12->version = uVar2;\n          if (uVar2 != 0) {\n            pcVar6 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                     super_Relobj.super_Object.name_._M_dataplus._M_p;\n            pcVar16 = (char *)gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            gold::gold_error(pcVar16,pcVar6,(uint)uVar2);\n            return;\n          }\n          pMVar12->isa_level = (Valtype8)puVar11[1];\n          pMVar12->isa_rev = *(Valtype8 *)((int)puVar11 + 3);\n          pMVar12->gpr_size = (Valtype8)puVar11[2];\n          pMVar12->cpr1_size = *(Valtype8 *)((int)puVar11 + 5);\n          pMVar12->cpr2_size = (Valtype8)puVar11[3];\n          pMVar12->fp_abi = *(Valtype8 *)((int)puVar11 + 7);\n          pMVar12->isa_ext = *(Valtype32 *)(puVar11 + 4);\n          pMVar12->ases = *(Valtype32 *)(puVar11 + 6);\n          pMVar12->flags1 = *(Valtype32 *)(puVar11 + 8);\n          pMVar12->flags2 = *(Valtype32 *)(puVar11 + 10);\n          uVar19 = local_24[1];\n        }\n        if (uVar19 == 0x7000000d) {\n          sVar5 = local_24[5];\n          pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_;\n          if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;\n          puVar15 = gold::File_read::get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],sVar5,true,false);\n          puVar10 = puVar15 + sVar5;\n          for (; puVar15 + 8 <= puVar10; puVar15 = puVar15 + bVar1) {\n            bVar1 = puVar15[1];\n            if (bVar1 < 8) {\n              pcVar6 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                       super_Relobj.super_Object.name_._M_dataplus._M_p;\n              pcVar16 = ".MIPS.options";\n              if ((this->field_0x1e4 & 2) == 0) {\n                pcVar16 = ".options";\n              }\n              format = (char *)gettext(\n                                      "%s: Warning: bad `%s\' option size %u smaller than its header"\n                                      );\n              gold::gold_error(format,pcVar6,pcVar16,(uint)bVar1);\n              bVar7 = true;\n              goto LAB_001bba8f;\n            }\n            if (*puVar15 == '\x01') {\n              this->gp_ = *(Mips_address *)(puVar15 + 0x1c);\n            }\n          }\n        }\n        bVar7 = true;\n      }\n      goto LAB_001bba8f;\n    }" { (expression_statement "uVar19 = *(uint *)(puVar10 + 0x2c);" (assignment_expression "uVar19 = *(uint *)(puVar10 + 0x2c)" identifier = (pointer_expression "*(uint *)(puVar10 + 0x2c)" * (cast_expression "(uint *)(puVar10 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x2c)" ( (binary_expression "puVar10 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "local_28 = 1;" (assignment_expression "local_28 = 1" identifier = number_literal) ;) (if_statement "if (uVar19 != 2) goto LAB_001bb8fa;" if (parenthesized_expression "(uVar19 != 2)" ( (binary_expression "uVar19 != 2" identifier != number_literal) )) (goto_statement "goto LAB_001bb8fa;" goto statement_identifier ;)) (expression_statement "local_28 = 1;" (assignment_expression "local_28 = 1" identifier = number_literal) ;) (do_statement "do {\n        if (0x10 < local_24[5]) {\n          bVar7 = true;\n        }\nLAB_001bba8f:\n        iVar17 = 10;\n        bVar24 = CARRY4((uint)puVar8,*local_24);\n        pbVar23 = puVar8 + *local_24;\n        bVar26 = pbVar23 == (byte *)0x0;\n        pbVar21 = (byte *)".mips16.fn";\n        pbVar22 = pbVar23;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar24 = *pbVar21 < *pbVar22;\n          bVar26 = *pbVar21 == *pbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        uVar13 = local_28 >> 5;\n        puVar9 = (this->section_is_mips16_fn_stub_).super__Bvector_base<std::allocator<bool>_>.\n                 _M_impl.super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p + uVar13;\n        uVar20 = 1 << ((byte)local_28 & 0x1f);\n        uVar19 = *puVar9;\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        uVar18 = uVar19 & ~uVar20;\n        if (bVar24) {\n          uVar18 = uVar19 | uVar20;\n        }\n        *puVar9 = uVar18;\n        iVar17 = 0xd;\n        pbVar21 = (byte *)".mips16.call.";\n        pbVar22 = pbVar23;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar25 = *pbVar21 < *pbVar22;\n          bVar24 = *pbVar21 == *pbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        puVar9 = (this->section_is_mips16_call_stub_).super__Bvector_base<std::allocator<bool>_>.\n                 _M_impl.super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p + uVar13;\n        if ((!bVar25 && !bVar24) == bVar25) {\n          uVar19 = *puVar9 | uVar20;\n        }\n        else {\n          uVar19 = ~uVar20 & *puVar9;\n        }\n        bVar26 = uVar19 == 0;\n        bVar24 = false;\n        *puVar9 = uVar19;\n        iVar17 = 0x10;\n        pbVar21 = (byte *)".mips16.call.fp.";\n        pbVar22 = pbVar23;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar24 = *pbVar21 < *pbVar22;\n          bVar26 = *pbVar21 == *pbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        puVar9 = (this->section_is_mips16_call_fp_stub_).super__Bvector_base<std::allocator<bool>_>.\n                 _M_impl.super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p + uVar13;\n        if ((!bVar24 && !bVar26) == bVar24) {\n          uVar20 = uVar20 | *puVar9;\n        }\n        else {\n          uVar20 = ~uVar20 & *puVar9;\n        }\n        bVar26 = uVar20 == 0;\n        bVar24 = false;\n        *puVar9 = uVar20;\n        iVar17 = 5;\n        pbVar21 = &DAT_0044d56a;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar24 = *pbVar23 < *pbVar21;\n          bVar26 = *pbVar23 == *pbVar21;\n          pbVar23 = pbVar23 + (uint)bVar27 * -2 + 1;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if (this->pdr_shndx_ != 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable("../../gold/mips.cc",0x1b6f,"do_read_symbols");\n          }\n          this->pdr_shndx_ = local_28;\n        }\n        local_28 = local_28 + 1;\n        puVar9 = local_24 + 10;\n        if ((this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.\n            super_Object.shnum_ <= local_28) {\n          if (bVar7) {\n            return;\n          }\n          goto LAB_001bb77c;\n        }\n        uVar19 = local_24[0xb];\n        local_24 = puVar9;\n      } while (uVar19 == 2);" do (compound_statement "{\n        if (0x10 < local_24[5]) {\n          bVar7 = true;\n        }\nLAB_001bba8f:\n        iVar17 = 10;\n        bVar24 = CARRY4((uint)puVar8,*local_24);\n        pbVar23 = puVar8 + *local_24;\n        bVar26 = pbVar23 == (byte *)0x0;\n        pbVar21 = (byte *)".mips16.fn";\n        pbVar22 = pbVar23;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar24 = *pbVar21 < *pbVar22;\n          bVar26 = *pbVar21 == *pbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        uVar13 = local_28 >> 5;\n        puVar9 = (this->section_is_mips16_fn_stub_).super__Bvector_base<std::allocator<bool>_>.\n                 _M_impl.super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p + uVar13;\n        uVar20 = 1 << ((byte)local_28 & 0x1f);\n        uVar19 = *puVar9;\n        bVar25 = false;\n        bVar24 = (!bVar24 && !bVar26) == bVar24;\n        uVar18 = uVar19 & ~uVar20;\n        if (bVar24) {\n          uVar18 = uVar19 | uVar20;\n        }\n        *puVar9 = uVar18;\n        iVar17 = 0xd;\n        pbVar21 = (byte *)".mips16.call.";\n        pbVar22 = pbVar23;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar25 = *pbVar21 < *pbVar22;\n          bVar24 = *pbVar21 == *pbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);\n        puVar9 = (this->section_is_mips16_call_stub_).super__Bvector_base<std::allocator<bool>_>.\n                 _M_impl.super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p + uVar13;\n        if ((!bVar25 && !bVar24) == bVar25) {\n          uVar19 = *puVar9 | uVar20;\n        }\n        else {\n          uVar19 = ~uVar20 & *puVar9;\n        }\n        bVar26 = uVar19 == 0;\n        bVar24 = false;\n        *puVar9 = uVar19;\n        iVar17 = 0x10;\n        pbVar21 = (byte *)".mips16.call.fp.";\n        pbVar22 = pbVar23;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar24 = *pbVar21 < *pbVar22;\n          bVar26 = *pbVar21 == *pbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        puVar9 = (this->section_is_mips16_call_fp_stub_).super__Bvector_base<std::allocator<bool>_>.\n                 _M_impl.super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p + uVar13;\n        if ((!bVar24 && !bVar26) == bVar24) {\n          uVar20 = uVar20 | *puVar9;\n        }\n        else {\n          uVar20 = ~uVar20 & *puVar9;\n        }\n        bVar26 = uVar20 == 0;\n        bVar24 = false;\n        *puVar9 = uVar20;\n        iVar17 = 5;\n        pbVar21 = &DAT_0044d56a;\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar24 = *pbVar23 < *pbVar21;\n          bVar26 = *pbVar23 == *pbVar21;\n          pbVar23 = pbVar23 + (uint)bVar27 * -2 + 1;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if (this->pdr_shndx_ != 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable("../../gold/mips.cc",0x1b6f,"do_read_symbols");\n          }\n          this->pdr_shndx_ = local_28;\n        }\n        local_28 = local_28 + 1;\n        puVar9 = local_24 + 10;\n        if ((this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.\n            super_Object.shnum_ <= local_28) {\n          if (bVar7) {\n            return;\n          }\n          goto LAB_001bb77c;\n        }\n        uVar19 = local_24[0xb];\n        local_24 = puVar9;\n      }" { (if_statement "if (0x10 < local_24[5]) {\n          bVar7 = true;\n        }" if (parenthesized_expression "(0x10 < local_24[5])" ( (binary_expression "0x10 < local_24[5]" number_literal < (subscript_expression "local_24[5]" identifier [ number_literal ])) )) (compound_statement "{\n          bVar7 = true;\n        }" { (expression_statement "bVar7 = true;" (assignment_expression "bVar7 = true" identifier = true) ;) })) (labeled_statement "LAB_001bba8f:\n        iVar17 = 10;" statement_identifier : (expression_statement "iVar17 = 10;" (assignment_expression "iVar17 = 10" identifier = number_literal) ;)) (expression_statement "bVar24 = CARRY4((uint)puVar8,*local_24);" (assignment_expression "bVar24 = CARRY4((uint)puVar8,*local_24)" identifier = (call_expression "CARRY4((uint)puVar8,*local_24)" identifier (argument_list "((uint)puVar8,*local_24)" ( (cast_expression "(uint)puVar8" ( (type_descriptor "uint" type_identifier) ) identifier) , (pointer_expression "*local_24" * identifier) )))) ;) (expression_statement "pbVar23 = puVar8 + *local_24;" (assignment_expression "pbVar23 = puVar8 + *local_24" identifier = (binary_expression "puVar8 + *local_24" identifier + (pointer_expression "*local_24" * identifier))) ;) (expression_statement "bVar26 = pbVar23 == (byte *)0x0;" (assignment_expression "bVar26 = pbVar23 == (byte *)0x0" identifier = (binary_expression "pbVar23 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar21 = (byte *)".mips16.fn";" (assignment_expression "pbVar21 = (byte *)".mips16.fn"" identifier = (cast_expression "(byte *)".mips16.fn"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".mips16.fn"" " string_content "))) ;) (expression_statement "pbVar22 = pbVar23;" (assignment_expression "pbVar22 = pbVar23" identifier = identifier) ;) (do_statement "do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar24 = *pbVar21 < *pbVar22;\n          bVar26 = *pbVar21 == *pbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);" do (compound_statement "{\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar24 = *pbVar21 < *pbVar22;\n          bVar26 = *pbVar21 == *pbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = *pbVar21 < *pbVar22;" (assignment_expression "bVar24 = *pbVar21 < *pbVar22" identifier = (binary_expression "*pbVar21 < *pbVar22" (pointer_expression "*pbVar21" * identifier) < (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "bVar26 = *pbVar21 == *pbVar22;" (assignment_expression "bVar26 = *pbVar21 == *pbVar22" identifier = (binary_expression "*pbVar21 == *pbVar22" (pointer_expression "*pbVar21" * identifier) == (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar22 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (expression_statement "uVar13 = local_28 >> 5;" (assignment_expression "uVar13 = local_28 >> 5" identifier = (binary_expression "local_28 >> 5" identifier >> number_literal)) ;) (expression_statement "puVar9 = (this->section_is_mips16_fn_stub_).super__Bvector_base<std::allocator<bool>_>.\n                 _M_impl.super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p + uVar13;" (binary_expression "puVar9 = (this->section_is_mips16_fn_stub_).super__Bvector_base<std::allocator<bool>_>.\n                 _M_impl.super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p + uVar13" (field_expression "puVar9 = (this->section_is_mips16_fn_stub_).super__Bvector_base<std::allocator<bool>_>.\n                 _M_impl.super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p" (field_expression "puVar9 = (this->section_is_mips16_fn_stub_).super__Bvector_base<std::allocator<bool>_>.\n                 _M_impl.super__Bvector_impl_data._M_start.super__Bit_iterator_base" (field_expression "puVar9 = (this->section_is_mips16_fn_stub_).super__Bvector_base<std::allocator<bool>_>.\n                 _M_impl.super__Bvector_impl_data._M_start" (field_expression "puVar9 = (this->section_is_mips16_fn_stub_).super__Bvector_base<std::allocator<bool>_>.\n                 _M_impl.super__Bvector_impl_data" (field_expression "puVar9 = (this->section_is_mips16_fn_stub_).super__Bvector_base<std::allocator<bool>_>.\n                 _M_impl" (binary_expression "puVar9 = (this->section_is_mips16_fn_stub_).super__Bvector_base<std::allocator<bool>_" (binary_expression "puVar9 = (this->section_is_mips16_fn_stub_).super__Bvector_base<std::allocator<bool" (assignment_expression "puVar9 = (this->section_is_mips16_fn_stub_).super__Bvector_base<std" identifier = (binary_expression "(this->section_is_mips16_fn_stub_).super__Bvector_base<std" (field_expression "(this->section_is_mips16_fn_stub_).super__Bvector_base" (parenthesized_expression "(this->section_is_mips16_fn_stub_)" ( (field_expression "this->section_is_mips16_fn_stub_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::allocator" : : identifier) < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) + identifier) ;) (expression_statement "uVar20 = 1 << ((byte)local_28 & 0x1f);" (assignment_expression "uVar20 = 1 << ((byte)local_28 & 0x1f)" identifier = (binary_expression "1 << ((byte)local_28 & 0x1f)" number_literal << (parenthesized_expression "((byte)local_28 & 0x1f)" ( (binary_expression "(byte)local_28 & 0x1f" (cast_expression "(byte)local_28" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "uVar19 = *puVar9;" (assignment_expression "uVar19 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "bVar24 = (!bVar24 && !bVar26) == bVar24;" (assignment_expression "bVar24 = (!bVar24 && !bVar26) == bVar24" identifier = (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier)) ;) (expression_statement "uVar18 = uVar19 & ~uVar20;" (assignment_expression "uVar18 = uVar19 & ~uVar20" identifier = (binary_expression "uVar19 & ~uVar20" identifier & (unary_expression "~uVar20" ~ identifier))) ;) (if_statement "if (bVar24) {\n          uVar18 = uVar19 | uVar20;\n        }" if (parenthesized_expression "(bVar24)" ( identifier )) (compound_statement "{\n          uVar18 = uVar19 | uVar20;\n        }" { (expression_statement "uVar18 = uVar19 | uVar20;" (assignment_expression "uVar18 = uVar19 | uVar20" identifier = (binary_expression "uVar19 | uVar20" identifier | identifier)) ;) })) (expression_statement "*puVar9 = uVar18;" (assignment_expression "*puVar9 = uVar18" (pointer_expression "*puVar9" * identifier) = identifier) ;) (expression_statement "iVar17 = 0xd;" (assignment_expression "iVar17 = 0xd" identifier = number_literal) ;) (expression_statement "pbVar21 = (byte *)".mips16.call.";" (assignment_expression "pbVar21 = (byte *)".mips16.call."" identifier = (cast_expression "(byte *)".mips16.call."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".mips16.call."" " string_content "))) ;) (expression_statement "pbVar22 = pbVar23;" (assignment_expression "pbVar22 = pbVar23" identifier = identifier) ;) (do_statement "do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar25 = *pbVar21 < *pbVar22;\n          bVar24 = *pbVar21 == *pbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar24);" do (compound_statement "{\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar25 = *pbVar21 < *pbVar22;\n          bVar24 = *pbVar21 == *pbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar21 < *pbVar22;" (assignment_expression "bVar25 = *pbVar21 < *pbVar22" identifier = (binary_expression "*pbVar21 < *pbVar22" (pointer_expression "*pbVar21" * identifier) < (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "bVar24 = *pbVar21 == *pbVar22;" (assignment_expression "bVar24 = *pbVar21 == *pbVar22" identifier = (binary_expression "*pbVar21 == *pbVar22" (pointer_expression "*pbVar21" * identifier) == (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar22 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (expression_statement "puVar9 = (this->section_is_mips16_call_stub_).super__Bvector_base<std::allocator<bool>_>.\n                 _M_impl.super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p + uVar13;" (binary_expression "puVar9 = (this->section_is_mips16_call_stub_).super__Bvector_base<std::allocator<bool>_>.\n                 _M_impl.super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p + uVar13" (field_expression "puVar9 = (this->section_is_mips16_call_stub_).super__Bvector_base<std::allocator<bool>_>.\n                 _M_impl.super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p" (field_expression "puVar9 = (this->section_is_mips16_call_stub_).super__Bvector_base<std::allocator<bool>_>.\n                 _M_impl.super__Bvector_impl_data._M_start.super__Bit_iterator_base" (field_expression "puVar9 = (this->section_is_mips16_call_stub_).super__Bvector_base<std::allocator<bool>_>.\n                 _M_impl.super__Bvector_impl_data._M_start" (field_expression "puVar9 = (this->section_is_mips16_call_stub_).super__Bvector_base<std::allocator<bool>_>.\n                 _M_impl.super__Bvector_impl_data" (field_expression "puVar9 = (this->section_is_mips16_call_stub_).super__Bvector_base<std::allocator<bool>_>.\n                 _M_impl" (binary_expression "puVar9 = (this->section_is_mips16_call_stub_).super__Bvector_base<std::allocator<bool>_" (binary_expression "puVar9 = (this->section_is_mips16_call_stub_).super__Bvector_base<std::allocator<bool" (assignment_expression "puVar9 = (this->section_is_mips16_call_stub_).super__Bvector_base<std" identifier = (binary_expression "(this->section_is_mips16_call_stub_).super__Bvector_base<std" (field_expression "(this->section_is_mips16_call_stub_).super__Bvector_base" (parenthesized_expression "(this->section_is_mips16_call_stub_)" ( (field_expression "this->section_is_mips16_call_stub_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::allocator" : : identifier) < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) + identifier) ;) (if_statement "if ((!bVar25 && !bVar24) == bVar25) {\n          uVar19 = *puVar9 | uVar20;\n        }\n        else {\n          uVar19 = ~uVar20 & *puVar9;\n        }" if (parenthesized_expression "((!bVar25 && !bVar24) == bVar25)" ( (binary_expression "(!bVar25 && !bVar24) == bVar25" (parenthesized_expression "(!bVar25 && !bVar24)" ( (binary_expression "!bVar25 && !bVar24" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) == identifier) )) (compound_statement "{\n          uVar19 = *puVar9 | uVar20;\n        }" { (expression_statement "uVar19 = *puVar9 | uVar20;" (assignment_expression "uVar19 = *puVar9 | uVar20" identifier = (binary_expression "*puVar9 | uVar20" (pointer_expression "*puVar9" * identifier) | identifier)) ;) }) (else_clause "else {\n          uVar19 = ~uVar20 & *puVar9;\n        }" else (compound_statement "{\n          uVar19 = ~uVar20 & *puVar9;\n        }" { (expression_statement "uVar19 = ~uVar20 & *puVar9;" (assignment_expression "uVar19 = ~uVar20 & *puVar9" identifier = (binary_expression "~uVar20 & *puVar9" (unary_expression "~uVar20" ~ identifier) & (pointer_expression "*puVar9" * identifier))) ;) }))) (expression_statement "bVar26 = uVar19 == 0;" (assignment_expression "bVar26 = uVar19 == 0" identifier = (binary_expression "uVar19 == 0" identifier == number_literal)) ;) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "*puVar9 = uVar19;" (assignment_expression "*puVar9 = uVar19" (pointer_expression "*puVar9" * identifier) = identifier) ;) (expression_statement "iVar17 = 0x10;" (assignment_expression "iVar17 = 0x10" identifier = number_literal) ;) (expression_statement "pbVar21 = (byte *)".mips16.call.fp.";" (assignment_expression "pbVar21 = (byte *)".mips16.call.fp."" identifier = (cast_expression "(byte *)".mips16.call.fp."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".mips16.call.fp."" " string_content "))) ;) (expression_statement "pbVar22 = pbVar23;" (assignment_expression "pbVar22 = pbVar23" identifier = identifier) ;) (do_statement "do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar24 = *pbVar21 < *pbVar22;\n          bVar26 = *pbVar21 == *pbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);" do (compound_statement "{\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar24 = *pbVar21 < *pbVar22;\n          bVar26 = *pbVar21 == *pbVar22;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n        }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = *pbVar21 < *pbVar22;" (assignment_expression "bVar24 = *pbVar21 < *pbVar22" identifier = (binary_expression "*pbVar21 < *pbVar22" (pointer_expression "*pbVar21" * identifier) < (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "bVar26 = *pbVar21 == *pbVar22;" (assignment_expression "bVar26 = *pbVar21 == *pbVar22" identifier = (binary_expression "*pbVar21 == *pbVar22" (pointer_expression "*pbVar21" * identifier) == (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar22 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (expression_statement "puVar9 = (this->section_is_mips16_call_fp_stub_).super__Bvector_base<std::allocator<bool>_>.\n                 _M_impl.super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p + uVar13;" (binary_expression "puVar9 = (this->section_is_mips16_call_fp_stub_).super__Bvector_base<std::allocator<bool>_>.\n                 _M_impl.super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p + uVar13" (field_expression "puVar9 = (this->section_is_mips16_call_fp_stub_).super__Bvector_base<std::allocator<bool>_>.\n                 _M_impl.super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p" (field_expression "puVar9 = (this->section_is_mips16_call_fp_stub_).super__Bvector_base<std::allocator<bool>_>.\n                 _M_impl.super__Bvector_impl_data._M_start.super__Bit_iterator_base" (field_expression "puVar9 = (this->section_is_mips16_call_fp_stub_).super__Bvector_base<std::allocator<bool>_>.\n                 _M_impl.super__Bvector_impl_data._M_start" (field_expression "puVar9 = (this->section_is_mips16_call_fp_stub_).super__Bvector_base<std::allocator<bool>_>.\n                 _M_impl.super__Bvector_impl_data" (field_expression "puVar9 = (this->section_is_mips16_call_fp_stub_).super__Bvector_base<std::allocator<bool>_>.\n                 _M_impl" (binary_expression "puVar9 = (this->section_is_mips16_call_fp_stub_).super__Bvector_base<std::allocator<bool>_" (binary_expression "puVar9 = (this->section_is_mips16_call_fp_stub_).super__Bvector_base<std::allocator<bool" (assignment_expression "puVar9 = (this->section_is_mips16_call_fp_stub_).super__Bvector_base<std" identifier = (binary_expression "(this->section_is_mips16_call_fp_stub_).super__Bvector_base<std" (field_expression "(this->section_is_mips16_call_fp_stub_).super__Bvector_base" (parenthesized_expression "(this->section_is_mips16_call_fp_stub_)" ( (field_expression "this->section_is_mips16_call_fp_stub_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::allocator" : : identifier) < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) + identifier) ;) (if_statement "if ((!bVar24 && !bVar26) == bVar24) {\n          uVar20 = uVar20 | *puVar9;\n        }\n        else {\n          uVar20 = ~uVar20 & *puVar9;\n        }" if (parenthesized_expression "((!bVar24 && !bVar26) == bVar24)" ( (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier) )) (compound_statement "{\n          uVar20 = uVar20 | *puVar9;\n        }" { (expression_statement "uVar20 = uVar20 | *puVar9;" (assignment_expression "uVar20 = uVar20 | *puVar9" identifier = (binary_expression "uVar20 | *puVar9" identifier | (pointer_expression "*puVar9" * identifier))) ;) }) (else_clause "else {\n          uVar20 = ~uVar20 & *puVar9;\n        }" else (compound_statement "{\n          uVar20 = ~uVar20 & *puVar9;\n        }" { (expression_statement "uVar20 = ~uVar20 & *puVar9;" (assignment_expression "uVar20 = ~uVar20 & *puVar9" identifier = (binary_expression "~uVar20 & *puVar9" (unary_expression "~uVar20" ~ identifier) & (pointer_expression "*puVar9" * identifier))) ;) }))) (expression_statement "bVar26 = uVar20 == 0;" (assignment_expression "bVar26 = uVar20 == 0" identifier = (binary_expression "uVar20 == 0" identifier == number_literal)) ;) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "*puVar9 = uVar20;" (assignment_expression "*puVar9 = uVar20" (pointer_expression "*puVar9" * identifier) = identifier) ;) (expression_statement "iVar17 = 5;" (assignment_expression "iVar17 = 5" identifier = number_literal) ;) (expression_statement "pbVar21 = &DAT_0044d56a;" (assignment_expression "pbVar21 = &DAT_0044d56a" identifier = (pointer_expression "&DAT_0044d56a" & identifier)) ;) (do_statement "do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar24 = *pbVar23 < *pbVar21;\n          bVar26 = *pbVar23 == *pbVar21;\n          pbVar23 = pbVar23 + (uint)bVar27 * -2 + 1;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);" do (compound_statement "{\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar24 = *pbVar23 < *pbVar21;\n          bVar26 = *pbVar23 == *pbVar21;\n          pbVar23 = pbVar23 + (uint)bVar27 * -2 + 1;\n          pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;\n        }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = *pbVar23 < *pbVar21;" (assignment_expression "bVar24 = *pbVar23 < *pbVar21" identifier = (binary_expression "*pbVar23 < *pbVar21" (pointer_expression "*pbVar23" * identifier) < (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "bVar26 = *pbVar23 == *pbVar21;" (assignment_expression "bVar26 = *pbVar23 == *pbVar21" identifier = (binary_expression "*pbVar23 == *pbVar21" (pointer_expression "*pbVar23" * identifier) == (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "pbVar23 = pbVar23 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar23 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar23 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (if_statement "if ((!bVar24 && !bVar26) == bVar24) {\n          if (this->pdr_shndx_ != 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable("../../gold/mips.cc",0x1b6f,"do_read_symbols");\n          }\n          this->pdr_shndx_ = local_28;\n        }" if (parenthesized_expression "((!bVar24 && !bVar26) == bVar24)" ( (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier) )) (compound_statement "{\n          if (this->pdr_shndx_ != 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable("../../gold/mips.cc",0x1b6f,"do_read_symbols");\n          }\n          this->pdr_shndx_ = local_28;\n        }" { (if_statement "if (this->pdr_shndx_ != 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable("../../gold/mips.cc",0x1b6f,"do_read_symbols");\n          }" if (parenthesized_expression "(this->pdr_shndx_ != 0xffffffff)" ( (binary_expression "this->pdr_shndx_ != 0xffffffff" (field_expression "this->pdr_shndx_" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable("../../gold/mips.cc",0x1b6f,"do_read_symbols");\n          }" { comment (labeled_statement "gold::do_gold_unreachable("../../gold/mips.cc",0x1b6f,"do_read_symbols");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/mips.cc",0x1b6f,"do_read_symbols");" (call_expression "do_gold_unreachable("../../gold/mips.cc",0x1b6f,"do_read_symbols")" identifier (argument_list "("../../gold/mips.cc",0x1b6f,"do_read_symbols")" ( (string_literal ""../../gold/mips.cc"" " string_content ") , number_literal , (string_literal ""do_read_symbols"" " string_content ") ))) ;)) })) (expression_statement "this->pdr_shndx_ = local_28;" (assignment_expression "this->pdr_shndx_ = local_28" (field_expression "this->pdr_shndx_" identifier -> field_identifier) = identifier) ;) })) (expression_statement "local_28 = local_28 + 1;" (assignment_expression "local_28 = local_28 + 1" identifier = (binary_expression "local_28 + 1" identifier + number_literal)) ;) (expression_statement "puVar9 = local_24 + 10;" (assignment_expression "puVar9 = local_24 + 10" identifier = (binary_expression "local_24 + 10" identifier + number_literal)) ;) (if_statement "if ((this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.\n            super_Object.shnum_ <= local_28) {\n          if (bVar7) {\n            return;\n          }\n          goto LAB_001bb77c;\n        }" if (parenthesized_expression "((this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.\n            super_Object.shnum_ <= local_28)" ( (comma_expression "(this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.\n            super_Object.shnum_ <= local_28" (binary_expression "(this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32" (field_expression "(this->super_Sized_relobj_file<32,_false>).super_Sized_relobj" (parenthesized_expression "(this->super_Sized_relobj_file<32,_false>)" ( (comma_expression "this->super_Sized_relobj_file<32,_false" (binary_expression "this->super_Sized_relobj_file<32" (field_expression "this->super_Sized_relobj_file" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) < number_literal) , (binary_expression "_false>.super_Relobj.\n            super_Object.shnum_ <= local_28" (field_expression "_false>.super_Relobj.\n            super_Object.shnum_" (field_expression "_false>.super_Relobj.\n            super_Object" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) <= identifier)) )) (compound_statement "{\n          if (bVar7) {\n            return;\n          }\n          goto LAB_001bb77c;\n        }" { (if_statement "if (bVar7) {\n            return;\n          }" if (parenthesized_expression "(bVar7)" ( identifier )) (compound_statement "{\n            return;\n          }" { (return_statement "return;" return ;) })) (goto_statement "goto LAB_001bb77c;" goto statement_identifier ;) })) (expression_statement "uVar19 = local_24[0xb];" (assignment_expression "uVar19 = local_24[0xb]" identifier = (subscript_expression "local_24[0xb]" identifier [ number_literal ])) ;) (expression_statement "local_24 = puVar9;" (assignment_expression "local_24 = puVar9" identifier = identifier) ;) }) while (parenthesized_expression "(uVar19 == 2)" ( (binary_expression "uVar19 == 2" identifier == number_literal) )) ;) (labeled_statement "LAB_001bb8fa:\n      if (uVar19 != 3) {\n        if (uVar19 == 0x70000006) {\n          this->field_0x1e4 = this->field_0x1e4 | 4;\n          pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_;\n          if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;\n          pVVar14 = (Valtype *)\n                    gold::File_read::get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],local_24[5],true,false);\n          this->gp_ = pVVar14[5];\n          this->gprmask_ = *pVVar14;\n          this->cprmask1_ = pVVar14[1];\n          this->cprmask2_ = pVVar14[2];\n          this->cprmask3_ = pVVar14[3];\n          this->cprmask4_ = pVVar14[4];\n          uVar19 = local_24[1];\n        }\n        if (uVar19 == 0x6ffffff5) {\n          if (this->attributes_section_data_ != (Attributes_section_data *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }\n          sVar5 = local_24[5];\n          pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_;\n          if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;\n          puVar10 = gold::File_read::get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],sVar5,true,false);\n          this_00 = (Attributes_section_data *)operator_new(8);\n                    /* try { // try from 001bb97b to 001bb97f has its CatchHandler @ 001bbd31 */\n          gold::Attributes_section_data::Attributes_section_data(this_00,puVar10,sVar5);\n          this->attributes_section_data_ = this_00;\n          uVar19 = local_24[1];\n        }\n        if (uVar19 == 0x7000002a) {\n          if (this->abiflags_ != (Mips_abiflags<false> *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }\n          pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_;\n          if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;\n          puVar11 = (ushort *)\n                    gold::File_read::get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],local_24[5],true,false);\n          pMVar12 = (Mips_abiflags<false> *)operator_new(0x18);\n          pMVar12->version = 0;\n          pMVar12->isa_level = '\0';\n          pMVar12->isa_rev = '\0';\n          pMVar12->gpr_size = '\0';\n          pMVar12->cpr1_size = '\0';\n          pMVar12->cpr2_size = '\0';\n          pMVar12->fp_abi = '\0';\n          uVar2 = *puVar11;\n          pMVar12->isa_ext = 0;\n          pMVar12->ases = 0;\n          pMVar12->flags1 = 0;\n          pMVar12->flags2 = 0;\n          this->abiflags_ = pMVar12;\n          pMVar12->version = uVar2;\n          if (uVar2 != 0) {\n            pcVar6 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                     super_Relobj.super_Object.name_._M_dataplus._M_p;\n            pcVar16 = (char *)gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            gold::gold_error(pcVar16,pcVar6,(uint)uVar2);\n            return;\n          }\n          pMVar12->isa_level = (Valtype8)puVar11[1];\n          pMVar12->isa_rev = *(Valtype8 *)((int)puVar11 + 3);\n          pMVar12->gpr_size = (Valtype8)puVar11[2];\n          pMVar12->cpr1_size = *(Valtype8 *)((int)puVar11 + 5);\n          pMVar12->cpr2_size = (Valtype8)puVar11[3];\n          pMVar12->fp_abi = *(Valtype8 *)((int)puVar11 + 7);\n          pMVar12->isa_ext = *(Valtype32 *)(puVar11 + 4);\n          pMVar12->ases = *(Valtype32 *)(puVar11 + 6);\n          pMVar12->flags1 = *(Valtype32 *)(puVar11 + 8);\n          pMVar12->flags2 = *(Valtype32 *)(puVar11 + 10);\n          uVar19 = local_24[1];\n        }\n        if (uVar19 == 0x7000000d) {\n          sVar5 = local_24[5];\n          pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_;\n          if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;\n          puVar15 = gold::File_read::get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],sVar5,true,false);\n          puVar10 = puVar15 + sVar5;\n          for (; puVar15 + 8 <= puVar10; puVar15 = puVar15 + bVar1) {\n            bVar1 = puVar15[1];\n            if (bVar1 < 8) {\n              pcVar6 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                       super_Relobj.super_Object.name_._M_dataplus._M_p;\n              pcVar16 = ".MIPS.options";\n              if ((this->field_0x1e4 & 2) == 0) {\n                pcVar16 = ".options";\n              }\n              format = (char *)gettext(\n                                      "%s: Warning: bad `%s\' option size %u smaller than its header"\n                                      );\n              gold::gold_error(format,pcVar6,pcVar16,(uint)bVar1);\n              bVar7 = true;\n              goto LAB_001bba8f;\n            }\n            if (*puVar15 == '\x01') {\n              this->gp_ = *(Mips_address *)(puVar15 + 0x1c);\n            }\n          }\n        }\n        bVar7 = true;\n      }" statement_identifier : (if_statement "if (uVar19 != 3) {\n        if (uVar19 == 0x70000006) {\n          this->field_0x1e4 = this->field_0x1e4 | 4;\n          pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_;\n          if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;\n          pVVar14 = (Valtype *)\n                    gold::File_read::get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],local_24[5],true,false);\n          this->gp_ = pVVar14[5];\n          this->gprmask_ = *pVVar14;\n          this->cprmask1_ = pVVar14[1];\n          this->cprmask2_ = pVVar14[2];\n          this->cprmask3_ = pVVar14[3];\n          this->cprmask4_ = pVVar14[4];\n          uVar19 = local_24[1];\n        }\n        if (uVar19 == 0x6ffffff5) {\n          if (this->attributes_section_data_ != (Attributes_section_data *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }\n          sVar5 = local_24[5];\n          pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_;\n          if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;\n          puVar10 = gold::File_read::get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],sVar5,true,false);\n          this_00 = (Attributes_section_data *)operator_new(8);\n                    /* try { // try from 001bb97b to 001bb97f has its CatchHandler @ 001bbd31 */\n          gold::Attributes_section_data::Attributes_section_data(this_00,puVar10,sVar5);\n          this->attributes_section_data_ = this_00;\n          uVar19 = local_24[1];\n        }\n        if (uVar19 == 0x7000002a) {\n          if (this->abiflags_ != (Mips_abiflags<false> *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }\n          pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_;\n          if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;\n          puVar11 = (ushort *)\n                    gold::File_read::get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],local_24[5],true,false);\n          pMVar12 = (Mips_abiflags<false> *)operator_new(0x18);\n          pMVar12->version = 0;\n          pMVar12->isa_level = '\0';\n          pMVar12->isa_rev = '\0';\n          pMVar12->gpr_size = '\0';\n          pMVar12->cpr1_size = '\0';\n          pMVar12->cpr2_size = '\0';\n          pMVar12->fp_abi = '\0';\n          uVar2 = *puVar11;\n          pMVar12->isa_ext = 0;\n          pMVar12->ases = 0;\n          pMVar12->flags1 = 0;\n          pMVar12->flags2 = 0;\n          this->abiflags_ = pMVar12;\n          pMVar12->version = uVar2;\n          if (uVar2 != 0) {\n            pcVar6 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                     super_Relobj.super_Object.name_._M_dataplus._M_p;\n            pcVar16 = (char *)gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            gold::gold_error(pcVar16,pcVar6,(uint)uVar2);\n            return;\n          }\n          pMVar12->isa_level = (Valtype8)puVar11[1];\n          pMVar12->isa_rev = *(Valtype8 *)((int)puVar11 + 3);\n          pMVar12->gpr_size = (Valtype8)puVar11[2];\n          pMVar12->cpr1_size = *(Valtype8 *)((int)puVar11 + 5);\n          pMVar12->cpr2_size = (Valtype8)puVar11[3];\n          pMVar12->fp_abi = *(Valtype8 *)((int)puVar11 + 7);\n          pMVar12->isa_ext = *(Valtype32 *)(puVar11 + 4);\n          pMVar12->ases = *(Valtype32 *)(puVar11 + 6);\n          pMVar12->flags1 = *(Valtype32 *)(puVar11 + 8);\n          pMVar12->flags2 = *(Valtype32 *)(puVar11 + 10);\n          uVar19 = local_24[1];\n        }\n        if (uVar19 == 0x7000000d) {\n          sVar5 = local_24[5];\n          pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_;\n          if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;\n          puVar15 = gold::File_read::get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],sVar5,true,false);\n          puVar10 = puVar15 + sVar5;\n          for (; puVar15 + 8 <= puVar10; puVar15 = puVar15 + bVar1) {\n            bVar1 = puVar15[1];\n            if (bVar1 < 8) {\n              pcVar6 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                       super_Relobj.super_Object.name_._M_dataplus._M_p;\n              pcVar16 = ".MIPS.options";\n              if ((this->field_0x1e4 & 2) == 0) {\n                pcVar16 = ".options";\n              }\n              format = (char *)gettext(\n                                      "%s: Warning: bad `%s\' option size %u smaller than its header"\n                                      );\n              gold::gold_error(format,pcVar6,pcVar16,(uint)bVar1);\n              bVar7 = true;\n              goto LAB_001bba8f;\n            }\n            if (*puVar15 == '\x01') {\n              this->gp_ = *(Mips_address *)(puVar15 + 0x1c);\n            }\n          }\n        }\n        bVar7 = true;\n      }" if (parenthesized_expression "(uVar19 != 3)" ( (binary_expression "uVar19 != 3" identifier != number_literal) )) (compound_statement "{\n        if (uVar19 == 0x70000006) {\n          this->field_0x1e4 = this->field_0x1e4 | 4;\n          pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_;\n          if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;\n          pVVar14 = (Valtype *)\n                    gold::File_read::get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],local_24[5],true,false);\n          this->gp_ = pVVar14[5];\n          this->gprmask_ = *pVVar14;\n          this->cprmask1_ = pVVar14[1];\n          this->cprmask2_ = pVVar14[2];\n          this->cprmask3_ = pVVar14[3];\n          this->cprmask4_ = pVVar14[4];\n          uVar19 = local_24[1];\n        }\n        if (uVar19 == 0x6ffffff5) {\n          if (this->attributes_section_data_ != (Attributes_section_data *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }\n          sVar5 = local_24[5];\n          pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_;\n          if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;\n          puVar10 = gold::File_read::get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],sVar5,true,false);\n          this_00 = (Attributes_section_data *)operator_new(8);\n                    /* try { // try from 001bb97b to 001bb97f has its CatchHandler @ 001bbd31 */\n          gold::Attributes_section_data::Attributes_section_data(this_00,puVar10,sVar5);\n          this->attributes_section_data_ = this_00;\n          uVar19 = local_24[1];\n        }\n        if (uVar19 == 0x7000002a) {\n          if (this->abiflags_ != (Mips_abiflags<false> *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }\n          pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_;\n          if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;\n          puVar11 = (ushort *)\n                    gold::File_read::get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],local_24[5],true,false);\n          pMVar12 = (Mips_abiflags<false> *)operator_new(0x18);\n          pMVar12->version = 0;\n          pMVar12->isa_level = '\0';\n          pMVar12->isa_rev = '\0';\n          pMVar12->gpr_size = '\0';\n          pMVar12->cpr1_size = '\0';\n          pMVar12->cpr2_size = '\0';\n          pMVar12->fp_abi = '\0';\n          uVar2 = *puVar11;\n          pMVar12->isa_ext = 0;\n          pMVar12->ases = 0;\n          pMVar12->flags1 = 0;\n          pMVar12->flags2 = 0;\n          this->abiflags_ = pMVar12;\n          pMVar12->version = uVar2;\n          if (uVar2 != 0) {\n            pcVar6 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                     super_Relobj.super_Object.name_._M_dataplus._M_p;\n            pcVar16 = (char *)gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            gold::gold_error(pcVar16,pcVar6,(uint)uVar2);\n            return;\n          }\n          pMVar12->isa_level = (Valtype8)puVar11[1];\n          pMVar12->isa_rev = *(Valtype8 *)((int)puVar11 + 3);\n          pMVar12->gpr_size = (Valtype8)puVar11[2];\n          pMVar12->cpr1_size = *(Valtype8 *)((int)puVar11 + 5);\n          pMVar12->cpr2_size = (Valtype8)puVar11[3];\n          pMVar12->fp_abi = *(Valtype8 *)((int)puVar11 + 7);\n          pMVar12->isa_ext = *(Valtype32 *)(puVar11 + 4);\n          pMVar12->ases = *(Valtype32 *)(puVar11 + 6);\n          pMVar12->flags1 = *(Valtype32 *)(puVar11 + 8);\n          pMVar12->flags2 = *(Valtype32 *)(puVar11 + 10);\n          uVar19 = local_24[1];\n        }\n        if (uVar19 == 0x7000000d) {\n          sVar5 = local_24[5];\n          pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_;\n          if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;\n          puVar15 = gold::File_read::get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],sVar5,true,false);\n          puVar10 = puVar15 + sVar5;\n          for (; puVar15 + 8 <= puVar10; puVar15 = puVar15 + bVar1) {\n            bVar1 = puVar15[1];\n            if (bVar1 < 8) {\n              pcVar6 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                       super_Relobj.super_Object.name_._M_dataplus._M_p;\n              pcVar16 = ".MIPS.options";\n              if ((this->field_0x1e4 & 2) == 0) {\n                pcVar16 = ".options";\n              }\n              format = (char *)gettext(\n                                      "%s: Warning: bad `%s\' option size %u smaller than its header"\n                                      );\n              gold::gold_error(format,pcVar6,pcVar16,(uint)bVar1);\n              bVar7 = true;\n              goto LAB_001bba8f;\n            }\n            if (*puVar15 == '\x01') {\n              this->gp_ = *(Mips_address *)(puVar15 + 0x1c);\n            }\n          }\n        }\n        bVar7 = true;\n      }" { (if_statement "if (uVar19 == 0x70000006) {\n          this->field_0x1e4 = this->field_0x1e4 | 4;\n          pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_;\n          if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;\n          pVVar14 = (Valtype *)\n                    gold::File_read::get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],local_24[5],true,false);\n          this->gp_ = pVVar14[5];\n          this->gprmask_ = *pVVar14;\n          this->cprmask1_ = pVVar14[1];\n          this->cprmask2_ = pVVar14[2];\n          this->cprmask3_ = pVVar14[3];\n          this->cprmask4_ = pVVar14[4];\n          uVar19 = local_24[1];\n        }" if (parenthesized_expression "(uVar19 == 0x70000006)" ( (binary_expression "uVar19 == 0x70000006" identifier == number_literal) )) (compound_statement "{\n          this->field_0x1e4 = this->field_0x1e4 | 4;\n          pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_;\n          if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;\n          pVVar14 = (Valtype *)\n                    gold::File_read::get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],local_24[5],true,false);\n          this->gp_ = pVVar14[5];\n          this->gprmask_ = *pVVar14;\n          this->cprmask1_ = pVVar14[1];\n          this->cprmask2_ = pVVar14[2];\n          this->cprmask3_ = pVVar14[3];\n          this->cprmask4_ = pVVar14[4];\n          uVar19 = local_24[1];\n        }" { (expression_statement "this->field_0x1e4 = this->field_0x1e4 | 4;" (assignment_expression "this->field_0x1e4 = this->field_0x1e4 | 4" (field_expression "this->field_0x1e4" identifier -> field_identifier) = (binary_expression "this->field_0x1e4 | 4" (field_expression "this->field_0x1e4" identifier -> field_identifier) | number_literal)) ;) (expression_statement "pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_;" (comma_expression "pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_" (assignment_expression "pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32" identifier = (binary_expression "(this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32" (field_expression "(this->super_Sized_relobj_file<32,_false>).super_Sized_relobj" (parenthesized_expression "(this->super_Sized_relobj_file<32,_false>)" ( (comma_expression "this->super_Sized_relobj_file<32,_false" (binary_expression "this->super_Sized_relobj_file<32" (field_expression "this->super_Sized_relobj_file" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) < number_literal)) , (field_expression "_false>.\n                   super_Relobj.super_Object.input_file_" (field_expression "_false>.\n                   super_Relobj.super_Object" (field_expression "_false>.\n                   super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier)) ;) (if_statement "if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;" if (parenthesized_expression "(pIVar3 == (Input_file *)0x0)" ( (binary_expression "pIVar3 == (Input_file *)0x0" identifier == (cast_expression "(Input_file *)0x0" ( (type_descriptor "Input_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001bbcba;" goto statement_identifier ;)) (ERROR "pVVar14 = (Valtype *)\n                    gold::" (assignment_expression "pVVar14 = (Valtype *)\n                    gold" identifier = (cast_expression "(Valtype *)\n                    gold" ( (type_descriptor "Valtype *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) : :) (labeled_statement "File_read::get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],local_24[5],true,false);" statement_identifier : (ERROR ":" :) (expression_statement "get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],local_24[5],true,false);" (call_expression "get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],local_24[5],true,false)" identifier (argument_list "(&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],local_24[5],true,false)" ( (pointer_expression "&pIVar3->file_" & (field_expression "pIVar3->file_" identifier -> field_identifier)) , (binary_expression "(this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32" (field_expression "(this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj" (parenthesized_expression "(this->super_Sized_relobj_file<32,_false>)" ( (comma_expression "this->super_Sized_relobj_file<32,_false" (binary_expression "this->super_Sized_relobj_file<32" (field_expression "this->super_Sized_relobj_file" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) < number_literal) , (field_expression "_false>.super_Relobj.super_Object.offset_" (field_expression "_false>.super_Relobj.super_Object" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) , (cast_expression "(longlong)(int)local_24[4]" ( (type_descriptor "longlong" type_identifier) ) (cast_expression "(int)local_24[4]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_24[4]" identifier [ number_literal ]))) , (subscript_expression "local_24[5]" identifier [ number_literal ]) , true , false ))) ;)) (expression_statement "this->gp_ = pVVar14[5];" (assignment_expression "this->gp_ = pVVar14[5]" (field_expression "this->gp_" identifier -> field_identifier) = (subscript_expression "pVVar14[5]" identifier [ number_literal ])) ;) (expression_statement "this->gprmask_ = *pVVar14;" (assignment_expression "this->gprmask_ = *pVVar14" (field_expression "this->gprmask_" identifier -> field_identifier) = (pointer_expression "*pVVar14" * identifier)) ;) (expression_statement "this->cprmask1_ = pVVar14[1];" (assignment_expression "this->cprmask1_ = pVVar14[1]" (field_expression "this->cprmask1_" identifier -> field_identifier) = (subscript_expression "pVVar14[1]" identifier [ number_literal ])) ;) (expression_statement "this->cprmask2_ = pVVar14[2];" (assignment_expression "this->cprmask2_ = pVVar14[2]" (field_expression "this->cprmask2_" identifier -> field_identifier) = (subscript_expression "pVVar14[2]" identifier [ number_literal ])) ;) (expression_statement "this->cprmask3_ = pVVar14[3];" (assignment_expression "this->cprmask3_ = pVVar14[3]" (field_expression "this->cprmask3_" identifier -> field_identifier) = (subscript_expression "pVVar14[3]" identifier [ number_literal ])) ;) (expression_statement "this->cprmask4_ = pVVar14[4];" (assignment_expression "this->cprmask4_ = pVVar14[4]" (field_expression "this->cprmask4_" identifier -> field_identifier) = (subscript_expression "pVVar14[4]" identifier [ number_literal ])) ;) (expression_statement "uVar19 = local_24[1];" (assignment_expression "uVar19 = local_24[1]" identifier = (subscript_expression "local_24[1]" identifier [ number_literal ])) ;) })) (if_statement "if (uVar19 == 0x6ffffff5) {\n          if (this->attributes_section_data_ != (Attributes_section_data *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }\n          sVar5 = local_24[5];\n          pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_;\n          if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;\n          puVar10 = gold::File_read::get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],sVar5,true,false);\n          this_00 = (Attributes_section_data *)operator_new(8);\n                    /* try { // try from 001bb97b to 001bb97f has its CatchHandler @ 001bbd31 */\n          gold::Attributes_section_data::Attributes_section_data(this_00,puVar10,sVar5);\n          this->attributes_section_data_ = this_00;\n          uVar19 = local_24[1];\n        }" if (parenthesized_expression "(uVar19 == 0x6ffffff5)" ( (binary_expression "uVar19 == 0x6ffffff5" identifier == number_literal) )) (compound_statement "{\n          if (this->attributes_section_data_ != (Attributes_section_data *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }\n          sVar5 = local_24[5];\n          pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_;\n          if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;\n          puVar10 = gold::File_read::get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],sVar5,true,false);\n          this_00 = (Attributes_section_data *)operator_new(8);\n                    /* try { // try from 001bb97b to 001bb97f has its CatchHandler @ 001bbd31 */\n          gold::Attributes_section_data::Attributes_section_data(this_00,puVar10,sVar5);\n          this->attributes_section_data_ = this_00;\n          uVar19 = local_24[1];\n        }" { (if_statement "if (this->attributes_section_data_ != (Attributes_section_data *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }" if (parenthesized_expression "(this->attributes_section_data_ != (Attributes_section_data *)0x0)" ( (binary_expression "this->attributes_section_data_ != (Attributes_section_data *)0x0" (field_expression "this->attributes_section_data_" identifier -> field_identifier) != (cast_expression "(Attributes_section_data *)0x0" ( (type_descriptor "Attributes_section_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }" { comment (labeled_statement "gold::do_gold_unreachable("../../gold/mips.cc",0x1adf,"do_read_symbols");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/mips.cc",0x1adf,"do_read_symbols");" (call_expression "do_gold_unreachable("../../gold/mips.cc",0x1adf,"do_read_symbols")" identifier (argument_list "("../../gold/mips.cc",0x1adf,"do_read_symbols")" ( (string_literal ""../../gold/mips.cc"" " string_content ") , number_literal , (string_literal ""do_read_symbols"" " string_content ") ))) ;)) })) (expression_statement "sVar5 = local_24[5];" (assignment_expression "sVar5 = local_24[5]" identifier = (subscript_expression "local_24[5]" identifier [ number_literal ])) ;) (expression_statement "pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_;" (comma_expression "pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_" (assignment_expression "pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32" identifier = (binary_expression "(this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32" (field_expression "(this->super_Sized_relobj_file<32,_false>).super_Sized_relobj" (parenthesized_expression "(this->super_Sized_relobj_file<32,_false>)" ( (comma_expression "this->super_Sized_relobj_file<32,_false" (binary_expression "this->super_Sized_relobj_file<32" (field_expression "this->super_Sized_relobj_file" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) < number_literal)) , (field_expression "_false>.\n                   super_Relobj.super_Object.input_file_" (field_expression "_false>.\n                   super_Relobj.super_Object" (field_expression "_false>.\n                   super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier)) ;) (if_statement "if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;" if (parenthesized_expression "(pIVar3 == (Input_file *)0x0)" ( (binary_expression "pIVar3 == (Input_file *)0x0" identifier == (cast_expression "(Input_file *)0x0" ( (type_descriptor "Input_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001bbcba;" goto statement_identifier ;)) (ERROR "puVar10 = gold::" (assignment_expression "puVar10 = gold" identifier = identifier) : :) (labeled_statement "File_read::get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],sVar5,true,false);" statement_identifier : (ERROR ":" :) (expression_statement "get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],sVar5,true,false);" (call_expression "get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],sVar5,true,false)" identifier (argument_list "(&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],sVar5,true,false)" ( (pointer_expression "&pIVar3->file_" & (field_expression "pIVar3->file_" identifier -> field_identifier)) , (binary_expression "(this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32" (field_expression "(this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj" (parenthesized_expression "(this->super_Sized_relobj_file<32,_false>)" ( (comma_expression "this->super_Sized_relobj_file<32,_false" (binary_expression "this->super_Sized_relobj_file<32" (field_expression "this->super_Sized_relobj_file" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) < number_literal) , (field_expression "_false>.super_Relobj.super_Object.offset_" (field_expression "_false>.super_Relobj.super_Object" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) , (cast_expression "(longlong)(int)local_24[4]" ( (type_descriptor "longlong" type_identifier) ) (cast_expression "(int)local_24[4]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_24[4]" identifier [ number_literal ]))) , identifier , true , false ))) ;)) (expression_statement "this_00 = (Attributes_section_data *)operator_new(8);" (assignment_expression "this_00 = (Attributes_section_data *)operator_new(8)" identifier = (cast_expression "(Attributes_section_data *)operator_new(8)" ( (type_descriptor "Attributes_section_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(8)" identifier (argument_list "(8)" ( number_literal ))))) ;) comment (labeled_statement "gold::Attributes_section_data::Attributes_section_data(this_00,puVar10,sVar5);" statement_identifier : (ERROR ":" :) (labeled_statement "Attributes_section_data::Attributes_section_data(this_00,puVar10,sVar5);" statement_identifier : (ERROR ":" :) (expression_statement "Attributes_section_data(this_00,puVar10,sVar5);" (call_expression "Attributes_section_data(this_00,puVar10,sVar5)" identifier (argument_list "(this_00,puVar10,sVar5)" ( identifier , identifier , identifier ))) ;))) (expression_statement "this->attributes_section_data_ = this_00;" (assignment_expression "this->attributes_section_data_ = this_00" (field_expression "this->attributes_section_data_" identifier -> field_identifier) = identifier) ;) (expression_statement "uVar19 = local_24[1];" (assignment_expression "uVar19 = local_24[1]" identifier = (subscript_expression "local_24[1]" identifier [ number_literal ])) ;) })) (if_statement "if (uVar19 == 0x7000002a) {\n          if (this->abiflags_ != (Mips_abiflags<false> *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }\n          pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_;\n          if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;\n          puVar11 = (ushort *)\n                    gold::File_read::get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],local_24[5],true,false);\n          pMVar12 = (Mips_abiflags<false> *)operator_new(0x18);\n          pMVar12->version = 0;\n          pMVar12->isa_level = '\0';\n          pMVar12->isa_rev = '\0';\n          pMVar12->gpr_size = '\0';\n          pMVar12->cpr1_size = '\0';\n          pMVar12->cpr2_size = '\0';\n          pMVar12->fp_abi = '\0';\n          uVar2 = *puVar11;\n          pMVar12->isa_ext = 0;\n          pMVar12->ases = 0;\n          pMVar12->flags1 = 0;\n          pMVar12->flags2 = 0;\n          this->abiflags_ = pMVar12;\n          pMVar12->version = uVar2;\n          if (uVar2 != 0) {\n            pcVar6 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                     super_Relobj.super_Object.name_._M_dataplus._M_p;\n            pcVar16 = (char *)gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            gold::gold_error(pcVar16,pcVar6,(uint)uVar2);\n            return;\n          }\n          pMVar12->isa_level = (Valtype8)puVar11[1];\n          pMVar12->isa_rev = *(Valtype8 *)((int)puVar11 + 3);\n          pMVar12->gpr_size = (Valtype8)puVar11[2];\n          pMVar12->cpr1_size = *(Valtype8 *)((int)puVar11 + 5);\n          pMVar12->cpr2_size = (Valtype8)puVar11[3];\n          pMVar12->fp_abi = *(Valtype8 *)((int)puVar11 + 7);\n          pMVar12->isa_ext = *(Valtype32 *)(puVar11 + 4);\n          pMVar12->ases = *(Valtype32 *)(puVar11 + 6);\n          pMVar12->flags1 = *(Valtype32 *)(puVar11 + 8);\n          pMVar12->flags2 = *(Valtype32 *)(puVar11 + 10);\n          uVar19 = local_24[1];\n        }" if (parenthesized_expression "(uVar19 == 0x7000002a)" ( (binary_expression "uVar19 == 0x7000002a" identifier == number_literal) )) (compound_statement "{\n          if (this->abiflags_ != (Mips_abiflags<false> *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }\n          pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_;\n          if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;\n          puVar11 = (ushort *)\n                    gold::File_read::get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],local_24[5],true,false);\n          pMVar12 = (Mips_abiflags<false> *)operator_new(0x18);\n          pMVar12->version = 0;\n          pMVar12->isa_level = '\0';\n          pMVar12->isa_rev = '\0';\n          pMVar12->gpr_size = '\0';\n          pMVar12->cpr1_size = '\0';\n          pMVar12->cpr2_size = '\0';\n          pMVar12->fp_abi = '\0';\n          uVar2 = *puVar11;\n          pMVar12->isa_ext = 0;\n          pMVar12->ases = 0;\n          pMVar12->flags1 = 0;\n          pMVar12->flags2 = 0;\n          this->abiflags_ = pMVar12;\n          pMVar12->version = uVar2;\n          if (uVar2 != 0) {\n            pcVar6 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                     super_Relobj.super_Object.name_._M_dataplus._M_p;\n            pcVar16 = (char *)gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            gold::gold_error(pcVar16,pcVar6,(uint)uVar2);\n            return;\n          }\n          pMVar12->isa_level = (Valtype8)puVar11[1];\n          pMVar12->isa_rev = *(Valtype8 *)((int)puVar11 + 3);\n          pMVar12->gpr_size = (Valtype8)puVar11[2];\n          pMVar12->cpr1_size = *(Valtype8 *)((int)puVar11 + 5);\n          pMVar12->cpr2_size = (Valtype8)puVar11[3];\n          pMVar12->fp_abi = *(Valtype8 *)((int)puVar11 + 7);\n          pMVar12->isa_ext = *(Valtype32 *)(puVar11 + 4);\n          pMVar12->ases = *(Valtype32 *)(puVar11 + 6);\n          pMVar12->flags1 = *(Valtype32 *)(puVar11 + 8);\n          pMVar12->flags2 = *(Valtype32 *)(puVar11 + 10);\n          uVar19 = local_24[1];\n        }" { (if_statement "if (this->abiflags_ != (Mips_abiflags<false> *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }" if (parenthesized_expression "(this->abiflags_ != (Mips_abiflags<false> *)0x0)" ( (binary_expression "this->abiflags_ != (Mips_abiflags<false> *)0x0)" (field_expression "this->abiflags_" identifier -> field_identifier) != (parenthesized_expression "(Mips_abiflags<false> *)0x0)" ( (binary_expression "Mips_abiflags<false> *)0x0" (binary_expression "Mips_abiflags<false" identifier < false) > (pointer_expression "*)0x0" * (ERROR ")" )) number_literal)) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            gold::do_gold_unreachable("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }" { comment (labeled_statement "gold::do_gold_unreachable("../../gold/mips.cc",0x1aeb,"do_read_symbols");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/mips.cc",0x1aeb,"do_read_symbols");" (call_expression "do_gold_unreachable("../../gold/mips.cc",0x1aeb,"do_read_symbols")" identifier (argument_list "("../../gold/mips.cc",0x1aeb,"do_read_symbols")" ( (string_literal ""../../gold/mips.cc"" " string_content ") , number_literal , (string_literal ""do_read_symbols"" " string_content ") ))) ;)) })) (expression_statement "pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_;" (comma_expression "pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_" (assignment_expression "pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32" identifier = (binary_expression "(this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32" (field_expression "(this->super_Sized_relobj_file<32,_false>).super_Sized_relobj" (parenthesized_expression "(this->super_Sized_relobj_file<32,_false>)" ( (comma_expression "this->super_Sized_relobj_file<32,_false" (binary_expression "this->super_Sized_relobj_file<32" (field_expression "this->super_Sized_relobj_file" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) < number_literal)) , (field_expression "_false>.\n                   super_Relobj.super_Object.input_file_" (field_expression "_false>.\n                   super_Relobj.super_Object" (field_expression "_false>.\n                   super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier)) ;) (if_statement "if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;" if (parenthesized_expression "(pIVar3 == (Input_file *)0x0)" ( (binary_expression "pIVar3 == (Input_file *)0x0" identifier == (cast_expression "(Input_file *)0x0" ( (type_descriptor "Input_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001bbcba;" goto statement_identifier ;)) (ERROR "puVar11 = (ushort *)\n                    gold::" (assignment_expression "puVar11 = (ushort *)\n                    gold" identifier = (cast_expression "(ushort *)\n                    gold" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) : :) (labeled_statement "File_read::get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],local_24[5],true,false);" statement_identifier : (ERROR ":" :) (expression_statement "get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],local_24[5],true,false);" (call_expression "get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],local_24[5],true,false)" identifier (argument_list "(&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],local_24[5],true,false)" ( (pointer_expression "&pIVar3->file_" & (field_expression "pIVar3->file_" identifier -> field_identifier)) , (binary_expression "(this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32" (field_expression "(this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj" (parenthesized_expression "(this->super_Sized_relobj_file<32,_false>)" ( (comma_expression "this->super_Sized_relobj_file<32,_false" (binary_expression "this->super_Sized_relobj_file<32" (field_expression "this->super_Sized_relobj_file" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) < number_literal) , (field_expression "_false>.super_Relobj.super_Object.offset_" (field_expression "_false>.super_Relobj.super_Object" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) , (cast_expression "(longlong)(int)local_24[4]" ( (type_descriptor "longlong" type_identifier) ) (cast_expression "(int)local_24[4]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_24[4]" identifier [ number_literal ]))) , (subscript_expression "local_24[5]" identifier [ number_literal ]) , true , false ))) ;)) (expression_statement "pMVar12 = (Mips_abiflags<false> *)operator_new(0x18);" (assignment_expression "pMVar12 = (Mips_abiflags<false> *)operator_new(0x18)" identifier = (parenthesized_expression "(Mips_abiflags<false> *)operator_new(0x18)" ( (binary_expression "Mips_abiflags<false> *)operator_new(0x18)" (binary_expression "Mips_abiflags<false" identifier < false) > (pointer_expression "*)operator_new(0x18)" * (ERROR ")" )) (call_expression "operator_new(0x18)" identifier (argument_list "(0x18)" ( number_literal ))))) ))) ;) (expression_statement "pMVar12->version = 0;" (assignment_expression "pMVar12->version = 0" (field_expression "pMVar12->version" identifier -> field_identifier) = number_literal) ;) (expression_statement "pMVar12->isa_level = '\0';" (assignment_expression "pMVar12->isa_level = '\0'" (field_expression "pMVar12->isa_level" identifier -> field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pMVar12->isa_rev = '\0';" (assignment_expression "pMVar12->isa_rev = '\0'" (field_expression "pMVar12->isa_rev" identifier -> field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pMVar12->gpr_size = '\0';" (assignment_expression "pMVar12->gpr_size = '\0'" (field_expression "pMVar12->gpr_size" identifier -> field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pMVar12->cpr1_size = '\0';" (assignment_expression "pMVar12->cpr1_size = '\0'" (field_expression "pMVar12->cpr1_size" identifier -> field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pMVar12->cpr2_size = '\0';" (assignment_expression "pMVar12->cpr2_size = '\0'" (field_expression "pMVar12->cpr2_size" identifier -> field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pMVar12->fp_abi = '\0';" (assignment_expression "pMVar12->fp_abi = '\0'" (field_expression "pMVar12->fp_abi" identifier -> field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar2 = *puVar11;" (assignment_expression "uVar2 = *puVar11" identifier = (pointer_expression "*puVar11" * identifier)) ;) (expression_statement "pMVar12->isa_ext = 0;" (assignment_expression "pMVar12->isa_ext = 0" (field_expression "pMVar12->isa_ext" identifier -> field_identifier) = number_literal) ;) (expression_statement "pMVar12->ases = 0;" (assignment_expression "pMVar12->ases = 0" (field_expression "pMVar12->ases" identifier -> field_identifier) = number_literal) ;) (expression_statement "pMVar12->flags1 = 0;" (assignment_expression "pMVar12->flags1 = 0" (field_expression "pMVar12->flags1" identifier -> field_identifier) = number_literal) ;) (expression_statement "pMVar12->flags2 = 0;" (assignment_expression "pMVar12->flags2 = 0" (field_expression "pMVar12->flags2" identifier -> field_identifier) = number_literal) ;) (expression_statement "this->abiflags_ = pMVar12;" (assignment_expression "this->abiflags_ = pMVar12" (field_expression "this->abiflags_" identifier -> field_identifier) = identifier) ;) (expression_statement "pMVar12->version = uVar2;" (assignment_expression "pMVar12->version = uVar2" (field_expression "pMVar12->version" identifier -> field_identifier) = identifier) ;) (if_statement "if (uVar2 != 0) {\n            pcVar6 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                     super_Relobj.super_Object.name_._M_dataplus._M_p;\n            pcVar16 = (char *)gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            gold::gold_error(pcVar16,pcVar6,(uint)uVar2);\n            return;\n          }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n            pcVar6 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                     super_Relobj.super_Object.name_._M_dataplus._M_p;\n            pcVar16 = (char *)gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            gold::gold_error(pcVar16,pcVar6,(uint)uVar2);\n            return;\n          }" { (expression_statement "pcVar6 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                     super_Relobj.super_Object.name_._M_dataplus._M_p;" (comma_expression "pcVar6 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                     super_Relobj.super_Object.name_._M_dataplus._M_p" (assignment_expression "pcVar6 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32" identifier = (binary_expression "(this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32" (field_expression "(this->super_Sized_relobj_file<32,_false>).super_Sized_relobj" (parenthesized_expression "(this->super_Sized_relobj_file<32,_false>)" ( (comma_expression "this->super_Sized_relobj_file<32,_false" (binary_expression "this->super_Sized_relobj_file<32" (field_expression "this->super_Sized_relobj_file" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) < number_literal)) , (field_expression "_false>.\n                     super_Relobj.super_Object.name_._M_dataplus._M_p" (field_expression "_false>.\n                     super_Relobj.super_Object.name_._M_dataplus" (field_expression "_false>.\n                     super_Relobj.super_Object.name_" (field_expression "_false>.\n                     super_Relobj.super_Object" (field_expression "_false>.\n                     super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "pcVar16 = (char *)gettext("%s: .MIPS.abiflags section has unsupported version %u");" (assignment_expression "pcVar16 = (char *)gettext("%s: .MIPS.abiflags section has unsupported version %u")" identifier = (cast_expression "(char *)gettext("%s: .MIPS.abiflags section has unsupported version %u")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("%s: .MIPS.abiflags section has unsupported version %u")" identifier (argument_list "("%s: .MIPS.abiflags section has unsupported version %u")" ( (string_literal ""%s: .MIPS.abiflags section has unsupported version %u"" " string_content ") ))))) ;) (labeled_statement "gold::gold_error(pcVar16,pcVar6,(uint)uVar2);" statement_identifier : (ERROR ":" :) (expression_statement "gold_error(pcVar16,pcVar6,(uint)uVar2);" (call_expression "gold_error(pcVar16,pcVar6,(uint)uVar2)" identifier (argument_list "(pcVar16,pcVar6,(uint)uVar2)" ( identifier , identifier , (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier) ))) ;)) (return_statement "return;" return ;) })) (expression_statement "pMVar12->isa_level = (Valtype8)puVar11[1];" (assignment_expression "pMVar12->isa_level = (Valtype8)puVar11[1]" (field_expression "pMVar12->isa_level" identifier -> field_identifier) = (cast_expression "(Valtype8)puVar11[1]" ( (type_descriptor "Valtype8" type_identifier) ) (subscript_expression "puVar11[1]" identifier [ number_literal ]))) ;) (expression_statement "pMVar12->isa_rev = *(Valtype8 *)((int)puVar11 + 3);" (assignment_expression "pMVar12->isa_rev = *(Valtype8 *)((int)puVar11 + 3)" (field_expression "pMVar12->isa_rev" identifier -> field_identifier) = (pointer_expression "*(Valtype8 *)((int)puVar11 + 3)" * (cast_expression "(Valtype8 *)((int)puVar11 + 3)" ( (type_descriptor "Valtype8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 3)" ( (binary_expression "(int)puVar11 + 3" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pMVar12->gpr_size = (Valtype8)puVar11[2];" (assignment_expression "pMVar12->gpr_size = (Valtype8)puVar11[2]" (field_expression "pMVar12->gpr_size" identifier -> field_identifier) = (cast_expression "(Valtype8)puVar11[2]" ( (type_descriptor "Valtype8" type_identifier) ) (subscript_expression "puVar11[2]" identifier [ number_literal ]))) ;) (expression_statement "pMVar12->cpr1_size = *(Valtype8 *)((int)puVar11 + 5);" (assignment_expression "pMVar12->cpr1_size = *(Valtype8 *)((int)puVar11 + 5)" (field_expression "pMVar12->cpr1_size" identifier -> field_identifier) = (pointer_expression "*(Valtype8 *)((int)puVar11 + 5)" * (cast_expression "(Valtype8 *)((int)puVar11 + 5)" ( (type_descriptor "Valtype8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 5)" ( (binary_expression "(int)puVar11 + 5" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pMVar12->cpr2_size = (Valtype8)puVar11[3];" (assignment_expression "pMVar12->cpr2_size = (Valtype8)puVar11[3]" (field_expression "pMVar12->cpr2_size" identifier -> field_identifier) = (cast_expression "(Valtype8)puVar11[3]" ( (type_descriptor "Valtype8" type_identifier) ) (subscript_expression "puVar11[3]" identifier [ number_literal ]))) ;) (expression_statement "pMVar12->fp_abi = *(Valtype8 *)((int)puVar11 + 7);" (assignment_expression "pMVar12->fp_abi = *(Valtype8 *)((int)puVar11 + 7)" (field_expression "pMVar12->fp_abi" identifier -> field_identifier) = (pointer_expression "*(Valtype8 *)((int)puVar11 + 7)" * (cast_expression "(Valtype8 *)((int)puVar11 + 7)" ( (type_descriptor "Valtype8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 7)" ( (binary_expression "(int)puVar11 + 7" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pMVar12->isa_ext = *(Valtype32 *)(puVar11 + 4);" (assignment_expression "pMVar12->isa_ext = *(Valtype32 *)(puVar11 + 4)" (field_expression "pMVar12->isa_ext" identifier -> field_identifier) = (pointer_expression "*(Valtype32 *)(puVar11 + 4)" * (cast_expression "(Valtype32 *)(puVar11 + 4)" ( (type_descriptor "Valtype32 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 4)" ( (binary_expression "puVar11 + 4" identifier + number_literal) ))))) ;) (expression_statement "pMVar12->ases = *(Valtype32 *)(puVar11 + 6);" (assignment_expression "pMVar12->ases = *(Valtype32 *)(puVar11 + 6)" (field_expression "pMVar12->ases" identifier -> field_identifier) = (pointer_expression "*(Valtype32 *)(puVar11 + 6)" * (cast_expression "(Valtype32 *)(puVar11 + 6)" ( (type_descriptor "Valtype32 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 6)" ( (binary_expression "puVar11 + 6" identifier + number_literal) ))))) ;) (expression_statement "pMVar12->flags1 = *(Valtype32 *)(puVar11 + 8);" (assignment_expression "pMVar12->flags1 = *(Valtype32 *)(puVar11 + 8)" (field_expression "pMVar12->flags1" identifier -> field_identifier) = (pointer_expression "*(Valtype32 *)(puVar11 + 8)" * (cast_expression "(Valtype32 *)(puVar11 + 8)" ( (type_descriptor "Valtype32 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 8)" ( (binary_expression "puVar11 + 8" identifier + number_literal) ))))) ;) (expression_statement "pMVar12->flags2 = *(Valtype32 *)(puVar11 + 10);" (assignment_expression "pMVar12->flags2 = *(Valtype32 *)(puVar11 + 10)" (field_expression "pMVar12->flags2" identifier -> field_identifier) = (pointer_expression "*(Valtype32 *)(puVar11 + 10)" * (cast_expression "(Valtype32 *)(puVar11 + 10)" ( (type_descriptor "Valtype32 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 10)" ( (binary_expression "puVar11 + 10" identifier + number_literal) ))))) ;) (expression_statement "uVar19 = local_24[1];" (assignment_expression "uVar19 = local_24[1]" identifier = (subscript_expression "local_24[1]" identifier [ number_literal ])) ;) })) (if_statement "if (uVar19 == 0x7000000d) {\n          sVar5 = local_24[5];\n          pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_;\n          if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;\n          puVar15 = gold::File_read::get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],sVar5,true,false);\n          puVar10 = puVar15 + sVar5;\n          for (; puVar15 + 8 <= puVar10; puVar15 = puVar15 + bVar1) {\n            bVar1 = puVar15[1];\n            if (bVar1 < 8) {\n              pcVar6 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                       super_Relobj.super_Object.name_._M_dataplus._M_p;\n              pcVar16 = ".MIPS.options";\n              if ((this->field_0x1e4 & 2) == 0) {\n                pcVar16 = ".options";\n              }\n              format = (char *)gettext(\n                                      "%s: Warning: bad `%s\' option size %u smaller than its header"\n                                      );\n              gold::gold_error(format,pcVar6,pcVar16,(uint)bVar1);\n              bVar7 = true;\n              goto LAB_001bba8f;\n            }\n            if (*puVar15 == '\x01') {\n              this->gp_ = *(Mips_address *)(puVar15 + 0x1c);\n            }\n          }\n        }" if (parenthesized_expression "(uVar19 == 0x7000000d)" ( (binary_expression "uVar19 == 0x7000000d" identifier == number_literal) )) (compound_statement "{\n          sVar5 = local_24[5];\n          pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_;\n          if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;\n          puVar15 = gold::File_read::get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],sVar5,true,false);\n          puVar10 = puVar15 + sVar5;\n          for (; puVar15 + 8 <= puVar10; puVar15 = puVar15 + bVar1) {\n            bVar1 = puVar15[1];\n            if (bVar1 < 8) {\n              pcVar6 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                       super_Relobj.super_Object.name_._M_dataplus._M_p;\n              pcVar16 = ".MIPS.options";\n              if ((this->field_0x1e4 & 2) == 0) {\n                pcVar16 = ".options";\n              }\n              format = (char *)gettext(\n                                      "%s: Warning: bad `%s\' option size %u smaller than its header"\n                                      );\n              gold::gold_error(format,pcVar6,pcVar16,(uint)bVar1);\n              bVar7 = true;\n              goto LAB_001bba8f;\n            }\n            if (*puVar15 == '\x01') {\n              this->gp_ = *(Mips_address *)(puVar15 + 0x1c);\n            }\n          }\n        }" { (expression_statement "sVar5 = local_24[5];" (assignment_expression "sVar5 = local_24[5]" identifier = (subscript_expression "local_24[5]" identifier [ number_literal ])) ;) (expression_statement "pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_;" (comma_expression "pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                   super_Relobj.super_Object.input_file_" (assignment_expression "pIVar3 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32" identifier = (binary_expression "(this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32" (field_expression "(this->super_Sized_relobj_file<32,_false>).super_Sized_relobj" (parenthesized_expression "(this->super_Sized_relobj_file<32,_false>)" ( (comma_expression "this->super_Sized_relobj_file<32,_false" (binary_expression "this->super_Sized_relobj_file<32" (field_expression "this->super_Sized_relobj_file" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) < number_literal)) , (field_expression "_false>.\n                   super_Relobj.super_Object.input_file_" (field_expression "_false>.\n                   super_Relobj.super_Object" (field_expression "_false>.\n                   super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier)) ;) (if_statement "if (pIVar3 == (Input_file *)0x0) goto LAB_001bbcba;" if (parenthesized_expression "(pIVar3 == (Input_file *)0x0)" ( (binary_expression "pIVar3 == (Input_file *)0x0" identifier == (cast_expression "(Input_file *)0x0" ( (type_descriptor "Input_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001bbcba;" goto statement_identifier ;)) (ERROR "puVar15 = gold::" (assignment_expression "puVar15 = gold" identifier = identifier) : :) (labeled_statement "File_read::get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],sVar5,true,false);" statement_identifier : (ERROR ":" :) (expression_statement "get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],sVar5,true,false);" (call_expression "get_view\n                              (&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],sVar5,true,false)" identifier (argument_list "(&pIVar3->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (longlong)(int)local_24[4],sVar5,true,false)" ( (pointer_expression "&pIVar3->file_" & (field_expression "pIVar3->file_" identifier -> field_identifier)) , (binary_expression "(this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32" (field_expression "(this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj" (parenthesized_expression "(this->super_Sized_relobj_file<32,_false>)" ( (comma_expression "this->super_Sized_relobj_file<32,_false" (binary_expression "this->super_Sized_relobj_file<32" (field_expression "this->super_Sized_relobj_file" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) < number_literal) , (field_expression "_false>.super_Relobj.super_Object.offset_" (field_expression "_false>.super_Relobj.super_Object" (field_expression "_false>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) , (cast_expression "(longlong)(int)local_24[4]" ( (type_descriptor "longlong" type_identifier) ) (cast_expression "(int)local_24[4]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_24[4]" identifier [ number_literal ]))) , identifier , true , false ))) ;)) (expression_statement "puVar10 = puVar15 + sVar5;" (assignment_expression "puVar10 = puVar15 + sVar5" identifier = (binary_expression "puVar15 + sVar5" identifier + identifier)) ;) (for_statement "for (; puVar15 + 8 <= puVar10; puVar15 = puVar15 + bVar1) {\n            bVar1 = puVar15[1];\n            if (bVar1 < 8) {\n              pcVar6 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                       super_Relobj.super_Object.name_._M_dataplus._M_p;\n              pcVar16 = ".MIPS.options";\n              if ((this->field_0x1e4 & 2) == 0) {\n                pcVar16 = ".options";\n              }\n              format = (char *)gettext(\n                                      "%s: Warning: bad `%s\' option size %u smaller than its header"\n                                      );\n              gold::gold_error(format,pcVar6,pcVar16,(uint)bVar1);\n              bVar7 = true;\n              goto LAB_001bba8f;\n            }\n            if (*puVar15 == '\x01') {\n              this->gp_ = *(Mips_address *)(puVar15 + 0x1c);\n            }\n          }" for ( ; (binary_expression "puVar15 + 8 <= puVar10" (binary_expression "puVar15 + 8" identifier + number_literal) <= identifier) ; (assignment_expression "puVar15 = puVar15 + bVar1" identifier = (binary_expression "puVar15 + bVar1" identifier + identifier)) ) (compound_statement "{\n            bVar1 = puVar15[1];\n            if (bVar1 < 8) {\n              pcVar6 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                       super_Relobj.super_Object.name_._M_dataplus._M_p;\n              pcVar16 = ".MIPS.options";\n              if ((this->field_0x1e4 & 2) == 0) {\n                pcVar16 = ".options";\n              }\n              format = (char *)gettext(\n                                      "%s: Warning: bad `%s\' option size %u smaller than its header"\n                                      );\n              gold::gold_error(format,pcVar6,pcVar16,(uint)bVar1);\n              bVar7 = true;\n              goto LAB_001bba8f;\n            }\n            if (*puVar15 == '\x01') {\n              this->gp_ = *(Mips_address *)(puVar15 + 0x1c);\n            }\n          }" { (expression_statement "bVar1 = puVar15[1];" (assignment_expression "bVar1 = puVar15[1]" identifier = (subscript_expression "puVar15[1]" identifier [ number_literal ])) ;) (if_statement "if (bVar1 < 8) {\n              pcVar6 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                       super_Relobj.super_Object.name_._M_dataplus._M_p;\n              pcVar16 = ".MIPS.options";\n              if ((this->field_0x1e4 & 2) == 0) {\n                pcVar16 = ".options";\n              }\n              format = (char *)gettext(\n                                      "%s: Warning: bad `%s\' option size %u smaller than its header"\n                                      );\n              gold::gold_error(format,pcVar6,pcVar16,(uint)bVar1);\n              bVar7 = true;\n              goto LAB_001bba8f;\n            }" if (parenthesized_expression "(bVar1 < 8)" ( (binary_expression "bVar1 < 8" identifier < number_literal) )) (compound_statement "{\n              pcVar6 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                       super_Relobj.super_Object.name_._M_dataplus._M_p;\n              pcVar16 = ".MIPS.options";\n              if ((this->field_0x1e4 & 2) == 0) {\n                pcVar16 = ".options";\n              }\n              format = (char *)gettext(\n                                      "%s: Warning: bad `%s\' option size %u smaller than its header"\n                                      );\n              gold::gold_error(format,pcVar6,pcVar16,(uint)bVar1);\n              bVar7 = true;\n              goto LAB_001bba8f;\n            }" { (expression_statement "pcVar6 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                       super_Relobj.super_Object.name_._M_dataplus._M_p;" (comma_expression "pcVar6 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                       super_Relobj.super_Object.name_._M_dataplus._M_p" (assignment_expression "pcVar6 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32" identifier = (binary_expression "(this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32" (field_expression "(this->super_Sized_relobj_file<32,_false>).super_Sized_relobj" (parenthesized_expression "(this->super_Sized_relobj_file<32,_false>)" ( (comma_expression "this->super_Sized_relobj_file<32,_false" (binary_expression "this->super_Sized_relobj_file<32" (field_expression "this->super_Sized_relobj_file" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) < number_literal)) , (field_expression "_false>.\n                       super_Relobj.super_Object.name_._M_dataplus._M_p" (field_expression "_false>.\n                       super_Relobj.super_Object.name_._M_dataplus" (field_expression "_false>.\n                       super_Relobj.super_Object.name_" (field_expression "_false>.\n                       super_Relobj.super_Object" (field_expression "_false>.\n                       super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "pcVar16 = ".MIPS.options";" (assignment_expression "pcVar16 = ".MIPS.options"" identifier = (string_literal "".MIPS.options"" " string_content ")) ;) (if_statement "if ((this->field_0x1e4 & 2) == 0) {\n                pcVar16 = ".options";\n              }" if (parenthesized_expression "((this->field_0x1e4 & 2) == 0)" ( (binary_expression "(this->field_0x1e4 & 2) == 0" (parenthesized_expression "(this->field_0x1e4 & 2)" ( (binary_expression "this->field_0x1e4 & 2" (field_expression "this->field_0x1e4" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                pcVar16 = ".options";\n              }" { (expression_statement "pcVar16 = ".options";" (assignment_expression "pcVar16 = ".options"" identifier = (string_literal "".options"" " string_content ")) ;) })) (expression_statement "format = (char *)gettext(\n                                      "%s: Warning: bad `%s\' option size %u smaller than its header"\n                                      );" (assignment_expression "format = (char *)gettext(\n                                      "%s: Warning: bad `%s\' option size %u smaller than its header"\n                                      )" identifier = (cast_expression "(char *)gettext(\n                                      "%s: Warning: bad `%s\' option size %u smaller than its header"\n                                      )" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext(\n                                      "%s: Warning: bad `%s\' option size %u smaller than its header"\n                                      )" identifier (argument_list "(\n                                      "%s: Warning: bad `%s\' option size %u smaller than its header"\n                                      )" ( (string_literal ""%s: Warning: bad `%s\' option size %u smaller than its header"" " string_content escape_sequence string_content ") ))))) ;) (labeled_statement "gold::gold_error(format,pcVar6,pcVar16,(uint)bVar1);" statement_identifier : (ERROR ":" :) (expression_statement "gold_error(format,pcVar6,pcVar16,(uint)bVar1);" (call_expression "gold_error(format,pcVar6,pcVar16,(uint)bVar1)" identifier (argument_list "(format,pcVar6,pcVar16,(uint)bVar1)" ( identifier , identifier , identifier , (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) ))) ;)) (expression_statement "bVar7 = true;" (assignment_expression "bVar7 = true" identifier = true) ;) (goto_statement "goto LAB_001bba8f;" goto statement_identifier ;) })) (if_statement "if (*puVar15 == '\x01') {\n              this->gp_ = *(Mips_address *)(puVar15 + 0x1c);\n            }" if (parenthesized_expression "(*puVar15 == '\x01')" ( (binary_expression "*puVar15 == '\x01'" (pointer_expression "*puVar15" * identifier) == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n              this->gp_ = *(Mips_address *)(puVar15 + 0x1c);\n            }" { (expression_statement "this->gp_ = *(Mips_address *)(puVar15 + 0x1c);" (assignment_expression "this->gp_ = *(Mips_address *)(puVar15 + 0x1c)" (field_expression "this->gp_" identifier -> field_identifier) = (pointer_expression "*(Mips_address *)(puVar15 + 0x1c)" * (cast_expression "(Mips_address *)(puVar15 + 0x1c)" ( (type_descriptor "Mips_address *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x1c)" ( (binary_expression "puVar15 + 0x1c" identifier + number_literal) ))))) ;) })) })) })) (expression_statement "bVar7 = true;" (assignment_expression "bVar7 = true" identifier = true) ;) }))) (goto_statement "goto LAB_001bba8f;" goto statement_identifier ;) })) }) (else_clause "else if (FVar4 != FORMAT_BINARY) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }" else (if_statement "if (FVar4 != FORMAT_BINARY) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }" if (parenthesized_expression "(FVar4 != FORMAT_BINARY)" ( (binary_expression "FVar4 != FORMAT_BINARY" identifier != identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }" { comment (labeled_statement "gold::do_gold_unreachable("../../gold/mips.cc",0x1a9a,"do_read_symbols");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/mips.cc",0x1a9a,"do_read_symbols");" (call_expression "do_gold_unreachable("../../gold/mips.cc",0x1a9a,"do_read_symbols")" identifier (argument_list "("../../gold/mips.cc",0x1a9a,"do_read_symbols")" ( (string_literal ""../../gold/mips.cc"" " string_content ") , number_literal , (string_literal ""do_read_symbols"" " string_content ") ))) ;)) })))) (labeled_statement "LAB_001bb77c:\n  this->field_0x1e4 = this->field_0x1e4 & 0xf7;" statement_identifier : (expression_statement "this->field_0x1e4 = this->field_0x1e4 & 0xf7;" (assignment_expression "this->field_0x1e4 = this->field_0x1e4 & 0xf7" (field_expression "this->field_0x1e4" identifier -> field_identifier) = (binary_expression "this->field_0x1e4 & 0xf7" (field_expression "this->field_0x1e4" identifier -> field_identifier) & number_literal)) ;)) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void FUN_001bb730(char *param_1,int *param_2)\n\n{\n  byte bVar1;\n  short sVar2;\n  uint uVar3;\n  bool bVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  short *psVar8;\n  short *psVar9;\n  undefined4 *puVar10;\n  char *pcVar11;\n  uint uVar12;\n  int iVar13;\n  char cVar14;\n  undefined4 extraout_EDX;\n  undefined4 extraout_EDX_00;\n  uint uVar15;\n  char *pcVar16;\n  uint uVar17;\n  byte *pbVar18;\n  uint *puVar19;\n  byte *pbVar20;\n  byte *pbVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  uint local_28;\n  uint *local_24;\n  \n  bVar25 = 0;\n  FUN_002b3240(param_1,param_2);\n  if (*(int *)(param_1 + 0x1c) == 0) {\nLAB_001bbcba:\n    FUN_00175c50();\nLAB_001bbcbf:\n                    \n    FUN_002446e0("../../gold/mips.cc",0x1b6f,"do_read_symbols");\n  }\n  iVar5 = *(int *)(*(int *)(param_1 + 0x1c) + 0x90);\n  if (iVar5 == 1) {\n    iVar5 = FUN_001cc8a0(param_1,0,0,0x34,1,0);\n    *(undefined4 *)(param_1 + 0x13c) = *(undefined4 *)(iVar5 + 0x24);\n    uVar3 = *(uint *)(param_2[1] + 8);\n    FUN_00104420(param_1 + 0x1ec,*(undefined4 *)(param_1 + 0x28),0);\n    FUN_00104420(param_1 + 0x200,*(undefined4 *)(param_1 + 0x28),0);\n    FUN_00104420(param_1 + 0x214,*(undefined4 *)(param_1 + 0x28),0);\n    bVar4 = false;\n    local_24 = (uint *)(*(int *)(*param_2 + 8) + 0x28);\n    if (1 < *(uint *)(param_1 + 0x28)) {\n      uVar15 = *(uint *)(*(int *)(*param_2 + 8) + 0x2c);\n      local_28 = 1;\n      uVar6 = extraout_EDX;\n      pcVar16 = ".MIPS.options";\n      if (uVar15 != 2) goto LAB_001bb8fa;\n      local_28 = 1;\n      do {\n        if (0x10 < local_24[5]) {\n          bVar4 = true;\n        }\nLAB_001bba8f:\n        iVar5 = 10;\n        bVar22 = CARRY4(uVar3,*local_24);\n        pbVar21 = (byte *)(uVar3 + *local_24);\n        bVar24 = pbVar21 == (byte *)0x0;\n        pbVar18 = (byte *)".mips16.fn";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        iVar5 = (local_28 >> 5) * 4;\n        uVar17 = 1 << ((byte)local_28 & 0x1f);\n        uVar15 = *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        uVar12 = uVar15 & ~uVar17;\n        if (bVar22) {\n          uVar12 = uVar15 | uVar17;\n        }\n        *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5) = uVar12;\n        iVar13 = 0xd;\n        pbVar18 = (byte *)".mips16.call.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        puVar19 = (uint *)(*(int *)(param_1 + 0x200) + iVar5);\n        if ((!bVar23 && !bVar22) == bVar23) {\n          uVar15 = *puVar19 | uVar17;\n        }\n        else {\n          uVar15 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar15 == 0;\n        bVar22 = false;\n        *puVar19 = uVar15;\n        iVar13 = 0x10;\n        pbVar18 = (byte *)".mips16.call.fp.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        cVar14 = (!bVar22 && !bVar24) - bVar22;\n        uVar6 = CONCAT31((int3)(uVar15 >> 8),cVar14);\n        puVar19 = (uint *)(iVar5 + *(int *)(param_1 + 0x214));\n        if (cVar14 == '\0') {\n          uVar17 = uVar17 | *puVar19;\n        }\n        else {\n          uVar17 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar17 == 0;\n        bVar22 = false;\n        *puVar19 = uVar17;\n        iVar5 = 5;\n        pbVar18 = &DAT_0044d56a;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar21 < *pbVar18;\n          bVar24 = *pbVar21 == *pbVar18;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        if ((!bVar22 && !bVar24) == bVar22) {\n          if (*(int *)(param_1 + 0x228) != -1) goto LAB_001bbcbf;\n          *(uint *)(param_1 + 0x228) = local_28;\n        }\n        local_28 = local_28 + 1;\n        puVar19 = local_24 + 10;\n        if (*(uint *)(param_1 + 0x28) <= local_28) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_001bb77c;\n        }\n        uVar15 = local_24[0xb];\n        pcVar16 = param_1;\n        local_24 = puVar19;\n      } while (uVar15 == 2);\nLAB_001bb8fa:\n      if (uVar15 != 3) {\n        if (uVar15 == 0x70000006) {\n          param_1[0x1e4] = param_1[0x1e4] | 4;\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          puVar10 = (undefined4 *)\n                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          *(undefined4 *)(param_1 + 0x1e0) = puVar10[5];\n          *(undefined4 *)(param_1 + 0x234) = *puVar10;\n          *(undefined4 *)(param_1 + 0x238) = puVar10[1];\n          *(undefined4 *)(param_1 + 0x23c) = puVar10[2];\n          uVar6 = puVar10[3];\n          *(undefined4 *)(param_1 + 0x240) = uVar6;\n          *(undefined4 *)(param_1 + 0x244) = puVar10[4];\n          uVar15 = local_24[1];\n          pcVar16 = param_1;\n        }\n        if (uVar15 == 0x6ffffff5) {\n          if (*(int *)(param_1 + 0x22c) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);\n          }\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          uVar6 = FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0);\n          uVar7 = FUN_003ac4d0(8);\n                    \n          FUN_00225ca0(uVar7,uVar6,uVar15);\n          *(undefined4 *)(param_1 + 0x22c) = uVar7;\n          uVar15 = local_24[1];\n          uVar6 = extraout_EDX_00;\n        }\n        if (uVar15 == 0x7000002a) {\n          if (*(int *)(param_1 + 0x230) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);\n          }\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          psVar8 = (short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          psVar9 = (short *)FUN_003ac4d0(0x18);\n          psVar9[0] = 0;\n          psVar9[1] = 0;\n          psVar9[2] = 0;\n          psVar9[3] = 0;\n          sVar2 = *psVar8;\n          psVar9[4] = 0;\n          psVar9[5] = 0;\n          psVar9[6] = 0;\n          psVar9[7] = 0;\n          psVar9[8] = 0;\n          psVar9[9] = 0;\n          psVar9[10] = 0;\n          psVar9[0xb] = 0;\n          *(short **)(param_1 + 0x230) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined4 *)(param_1 + 4);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0023b810(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((int)psVar9 + 3) = *(undefined1 *)((int)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((int)psVar9 + 5) = *(undefined1 *)((int)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((int)psVar9 + 7) = *(undefined1 *)((int)psVar8 + 7);\n          *(undefined4 *)(psVar9 + 4) = *(undefined4 *)(psVar8 + 4);\n          *(undefined4 *)(psVar9 + 6) = *(undefined4 *)(psVar8 + 6);\n          *(undefined4 *)(psVar9 + 8) = *(undefined4 *)(psVar8 + 8);\n          *(undefined4 *)(psVar9 + 10) = *(undefined4 *)(psVar8 + 10);\n          uVar15 = local_24[1];\n        }\n        if (uVar15 == 0x7000000d) {\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          pcVar11 = (char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0);\n          pcVar16 = pcVar11 + uVar15;\n          for (; pcVar11 + 8 <= pcVar16; pcVar11 = pcVar11 + bVar1) {\n            bVar1 = pcVar11[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }\n            if (*pcVar11 == '\x01') {\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }\n      goto LAB_001bba8f;\n    }\n  }\n  else if (iVar5 != 2) {\n                    \n    FUN_002446e0("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }\nLAB_001bb77c:\n  param_1[0x1e4] = param_1[0x1e4] & 0xf7;\n  return;\n}\n\n" (function_definition "void FUN_001bb730(char *param_1,int *param_2)\n\n{\n  byte bVar1;\n  short sVar2;\n  uint uVar3;\n  bool bVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  short *psVar8;\n  short *psVar9;\n  undefined4 *puVar10;\n  char *pcVar11;\n  uint uVar12;\n  int iVar13;\n  char cVar14;\n  undefined4 extraout_EDX;\n  undefined4 extraout_EDX_00;\n  uint uVar15;\n  char *pcVar16;\n  uint uVar17;\n  byte *pbVar18;\n  uint *puVar19;\n  byte *pbVar20;\n  byte *pbVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  uint local_28;\n  uint *local_24;\n  \n  bVar25 = 0;\n  FUN_002b3240(param_1,param_2);\n  if (*(int *)(param_1 + 0x1c) == 0) {\nLAB_001bbcba:\n    FUN_00175c50();\nLAB_001bbcbf:\n                    \n    FUN_002446e0("../../gold/mips.cc",0x1b6f,"do_read_symbols");\n  }\n  iVar5 = *(int *)(*(int *)(param_1 + 0x1c) + 0x90);\n  if (iVar5 == 1) {\n    iVar5 = FUN_001cc8a0(param_1,0,0,0x34,1,0);\n    *(undefined4 *)(param_1 + 0x13c) = *(undefined4 *)(iVar5 + 0x24);\n    uVar3 = *(uint *)(param_2[1] + 8);\n    FUN_00104420(param_1 + 0x1ec,*(undefined4 *)(param_1 + 0x28),0);\n    FUN_00104420(param_1 + 0x200,*(undefined4 *)(param_1 + 0x28),0);\n    FUN_00104420(param_1 + 0x214,*(undefined4 *)(param_1 + 0x28),0);\n    bVar4 = false;\n    local_24 = (uint *)(*(int *)(*param_2 + 8) + 0x28);\n    if (1 < *(uint *)(param_1 + 0x28)) {\n      uVar15 = *(uint *)(*(int *)(*param_2 + 8) + 0x2c);\n      local_28 = 1;\n      uVar6 = extraout_EDX;\n      pcVar16 = ".MIPS.options";\n      if (uVar15 != 2) goto LAB_001bb8fa;\n      local_28 = 1;\n      do {\n        if (0x10 < local_24[5]) {\n          bVar4 = true;\n        }\nLAB_001bba8f:\n        iVar5 = 10;\n        bVar22 = CARRY4(uVar3,*local_24);\n        pbVar21 = (byte *)(uVar3 + *local_24);\n        bVar24 = pbVar21 == (byte *)0x0;\n        pbVar18 = (byte *)".mips16.fn";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        iVar5 = (local_28 >> 5) * 4;\n        uVar17 = 1 << ((byte)local_28 & 0x1f);\n        uVar15 = *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        uVar12 = uVar15 & ~uVar17;\n        if (bVar22) {\n          uVar12 = uVar15 | uVar17;\n        }\n        *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5) = uVar12;\n        iVar13 = 0xd;\n        pbVar18 = (byte *)".mips16.call.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        puVar19 = (uint *)(*(int *)(param_1 + 0x200) + iVar5);\n        if ((!bVar23 && !bVar22) == bVar23) {\n          uVar15 = *puVar19 | uVar17;\n        }\n        else {\n          uVar15 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar15 == 0;\n        bVar22 = false;\n        *puVar19 = uVar15;\n        iVar13 = 0x10;\n        pbVar18 = (byte *)".mips16.call.fp.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        cVar14 = (!bVar22 && !bVar24) - bVar22;\n        uVar6 = CONCAT31((int3)(uVar15 >> 8),cVar14);\n        puVar19 = (uint *)(iVar5 + *(int *)(param_1 + 0x214));\n        if (cVar14 == '\0') {\n          uVar17 = uVar17 | *puVar19;\n        }\n        else {\n          uVar17 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar17 == 0;\n        bVar22 = false;\n        *puVar19 = uVar17;\n        iVar5 = 5;\n        pbVar18 = &DAT_0044d56a;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar21 < *pbVar18;\n          bVar24 = *pbVar21 == *pbVar18;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        if ((!bVar22 && !bVar24) == bVar22) {\n          if (*(int *)(param_1 + 0x228) != -1) goto LAB_001bbcbf;\n          *(uint *)(param_1 + 0x228) = local_28;\n        }\n        local_28 = local_28 + 1;\n        puVar19 = local_24 + 10;\n        if (*(uint *)(param_1 + 0x28) <= local_28) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_001bb77c;\n        }\n        uVar15 = local_24[0xb];\n        pcVar16 = param_1;\n        local_24 = puVar19;\n      } while (uVar15 == 2);\nLAB_001bb8fa:\n      if (uVar15 != 3) {\n        if (uVar15 == 0x70000006) {\n          param_1[0x1e4] = param_1[0x1e4] | 4;\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          puVar10 = (undefined4 *)\n                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          *(undefined4 *)(param_1 + 0x1e0) = puVar10[5];\n          *(undefined4 *)(param_1 + 0x234) = *puVar10;\n          *(undefined4 *)(param_1 + 0x238) = puVar10[1];\n          *(undefined4 *)(param_1 + 0x23c) = puVar10[2];\n          uVar6 = puVar10[3];\n          *(undefined4 *)(param_1 + 0x240) = uVar6;\n          *(undefined4 *)(param_1 + 0x244) = puVar10[4];\n          uVar15 = local_24[1];\n          pcVar16 = param_1;\n        }\n        if (uVar15 == 0x6ffffff5) {\n          if (*(int *)(param_1 + 0x22c) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);\n          }\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          uVar6 = FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0);\n          uVar7 = FUN_003ac4d0(8);\n                    \n          FUN_00225ca0(uVar7,uVar6,uVar15);\n          *(undefined4 *)(param_1 + 0x22c) = uVar7;\n          uVar15 = local_24[1];\n          uVar6 = extraout_EDX_00;\n        }\n        if (uVar15 == 0x7000002a) {\n          if (*(int *)(param_1 + 0x230) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);\n          }\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          psVar8 = (short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          psVar9 = (short *)FUN_003ac4d0(0x18);\n          psVar9[0] = 0;\n          psVar9[1] = 0;\n          psVar9[2] = 0;\n          psVar9[3] = 0;\n          sVar2 = *psVar8;\n          psVar9[4] = 0;\n          psVar9[5] = 0;\n          psVar9[6] = 0;\n          psVar9[7] = 0;\n          psVar9[8] = 0;\n          psVar9[9] = 0;\n          psVar9[10] = 0;\n          psVar9[0xb] = 0;\n          *(short **)(param_1 + 0x230) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined4 *)(param_1 + 4);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0023b810(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((int)psVar9 + 3) = *(undefined1 *)((int)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((int)psVar9 + 5) = *(undefined1 *)((int)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((int)psVar9 + 7) = *(undefined1 *)((int)psVar8 + 7);\n          *(undefined4 *)(psVar9 + 4) = *(undefined4 *)(psVar8 + 4);\n          *(undefined4 *)(psVar9 + 6) = *(undefined4 *)(psVar8 + 6);\n          *(undefined4 *)(psVar9 + 8) = *(undefined4 *)(psVar8 + 8);\n          *(undefined4 *)(psVar9 + 10) = *(undefined4 *)(psVar8 + 10);\n          uVar15 = local_24[1];\n        }\n        if (uVar15 == 0x7000000d) {\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          pcVar11 = (char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0);\n          pcVar16 = pcVar11 + uVar15;\n          for (; pcVar11 + 8 <= pcVar16; pcVar11 = pcVar11 + bVar1) {\n            bVar1 = pcVar11[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }\n            if (*pcVar11 == '\x01') {\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }\n      goto LAB_001bba8f;\n    }\n  }\n  else if (iVar5 != 2) {\n                    \n    FUN_002446e0("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }\nLAB_001bb77c:\n  param_1[0x1e4] = param_1[0x1e4] & 0xf7;\n  return;\n}" primitive_type (function_declarator "FUN_001bb730(char *param_1,int *param_2)" identifier (parameter_list "(char *param_1,int *param_2)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  short sVar2;\n  uint uVar3;\n  bool bVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  short *psVar8;\n  short *psVar9;\n  undefined4 *puVar10;\n  char *pcVar11;\n  uint uVar12;\n  int iVar13;\n  char cVar14;\n  undefined4 extraout_EDX;\n  undefined4 extraout_EDX_00;\n  uint uVar15;\n  char *pcVar16;\n  uint uVar17;\n  byte *pbVar18;\n  uint *puVar19;\n  byte *pbVar20;\n  byte *pbVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  uint local_28;\n  uint *local_24;\n  \n  bVar25 = 0;\n  FUN_002b3240(param_1,param_2);\n  if (*(int *)(param_1 + 0x1c) == 0) {\nLAB_001bbcba:\n    FUN_00175c50();\nLAB_001bbcbf:\n                    \n    FUN_002446e0("../../gold/mips.cc",0x1b6f,"do_read_symbols");\n  }\n  iVar5 = *(int *)(*(int *)(param_1 + 0x1c) + 0x90);\n  if (iVar5 == 1) {\n    iVar5 = FUN_001cc8a0(param_1,0,0,0x34,1,0);\n    *(undefined4 *)(param_1 + 0x13c) = *(undefined4 *)(iVar5 + 0x24);\n    uVar3 = *(uint *)(param_2[1] + 8);\n    FUN_00104420(param_1 + 0x1ec,*(undefined4 *)(param_1 + 0x28),0);\n    FUN_00104420(param_1 + 0x200,*(undefined4 *)(param_1 + 0x28),0);\n    FUN_00104420(param_1 + 0x214,*(undefined4 *)(param_1 + 0x28),0);\n    bVar4 = false;\n    local_24 = (uint *)(*(int *)(*param_2 + 8) + 0x28);\n    if (1 < *(uint *)(param_1 + 0x28)) {\n      uVar15 = *(uint *)(*(int *)(*param_2 + 8) + 0x2c);\n      local_28 = 1;\n      uVar6 = extraout_EDX;\n      pcVar16 = ".MIPS.options";\n      if (uVar15 != 2) goto LAB_001bb8fa;\n      local_28 = 1;\n      do {\n        if (0x10 < local_24[5]) {\n          bVar4 = true;\n        }\nLAB_001bba8f:\n        iVar5 = 10;\n        bVar22 = CARRY4(uVar3,*local_24);\n        pbVar21 = (byte *)(uVar3 + *local_24);\n        bVar24 = pbVar21 == (byte *)0x0;\n        pbVar18 = (byte *)".mips16.fn";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        iVar5 = (local_28 >> 5) * 4;\n        uVar17 = 1 << ((byte)local_28 & 0x1f);\n        uVar15 = *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        uVar12 = uVar15 & ~uVar17;\n        if (bVar22) {\n          uVar12 = uVar15 | uVar17;\n        }\n        *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5) = uVar12;\n        iVar13 = 0xd;\n        pbVar18 = (byte *)".mips16.call.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        puVar19 = (uint *)(*(int *)(param_1 + 0x200) + iVar5);\n        if ((!bVar23 && !bVar22) == bVar23) {\n          uVar15 = *puVar19 | uVar17;\n        }\n        else {\n          uVar15 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar15 == 0;\n        bVar22 = false;\n        *puVar19 = uVar15;\n        iVar13 = 0x10;\n        pbVar18 = (byte *)".mips16.call.fp.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        cVar14 = (!bVar22 && !bVar24) - bVar22;\n        uVar6 = CONCAT31((int3)(uVar15 >> 8),cVar14);\n        puVar19 = (uint *)(iVar5 + *(int *)(param_1 + 0x214));\n        if (cVar14 == '\0') {\n          uVar17 = uVar17 | *puVar19;\n        }\n        else {\n          uVar17 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar17 == 0;\n        bVar22 = false;\n        *puVar19 = uVar17;\n        iVar5 = 5;\n        pbVar18 = &DAT_0044d56a;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar21 < *pbVar18;\n          bVar24 = *pbVar21 == *pbVar18;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        if ((!bVar22 && !bVar24) == bVar22) {\n          if (*(int *)(param_1 + 0x228) != -1) goto LAB_001bbcbf;\n          *(uint *)(param_1 + 0x228) = local_28;\n        }\n        local_28 = local_28 + 1;\n        puVar19 = local_24 + 10;\n        if (*(uint *)(param_1 + 0x28) <= local_28) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_001bb77c;\n        }\n        uVar15 = local_24[0xb];\n        pcVar16 = param_1;\n        local_24 = puVar19;\n      } while (uVar15 == 2);\nLAB_001bb8fa:\n      if (uVar15 != 3) {\n        if (uVar15 == 0x70000006) {\n          param_1[0x1e4] = param_1[0x1e4] | 4;\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          puVar10 = (undefined4 *)\n                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          *(undefined4 *)(param_1 + 0x1e0) = puVar10[5];\n          *(undefined4 *)(param_1 + 0x234) = *puVar10;\n          *(undefined4 *)(param_1 + 0x238) = puVar10[1];\n          *(undefined4 *)(param_1 + 0x23c) = puVar10[2];\n          uVar6 = puVar10[3];\n          *(undefined4 *)(param_1 + 0x240) = uVar6;\n          *(undefined4 *)(param_1 + 0x244) = puVar10[4];\n          uVar15 = local_24[1];\n          pcVar16 = param_1;\n        }\n        if (uVar15 == 0x6ffffff5) {\n          if (*(int *)(param_1 + 0x22c) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);\n          }\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          uVar6 = FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0);\n          uVar7 = FUN_003ac4d0(8);\n                    \n          FUN_00225ca0(uVar7,uVar6,uVar15);\n          *(undefined4 *)(param_1 + 0x22c) = uVar7;\n          uVar15 = local_24[1];\n          uVar6 = extraout_EDX_00;\n        }\n        if (uVar15 == 0x7000002a) {\n          if (*(int *)(param_1 + 0x230) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);\n          }\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          psVar8 = (short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          psVar9 = (short *)FUN_003ac4d0(0x18);\n          psVar9[0] = 0;\n          psVar9[1] = 0;\n          psVar9[2] = 0;\n          psVar9[3] = 0;\n          sVar2 = *psVar8;\n          psVar9[4] = 0;\n          psVar9[5] = 0;\n          psVar9[6] = 0;\n          psVar9[7] = 0;\n          psVar9[8] = 0;\n          psVar9[9] = 0;\n          psVar9[10] = 0;\n          psVar9[0xb] = 0;\n          *(short **)(param_1 + 0x230) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined4 *)(param_1 + 4);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0023b810(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((int)psVar9 + 3) = *(undefined1 *)((int)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((int)psVar9 + 5) = *(undefined1 *)((int)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((int)psVar9 + 7) = *(undefined1 *)((int)psVar8 + 7);\n          *(undefined4 *)(psVar9 + 4) = *(undefined4 *)(psVar8 + 4);\n          *(undefined4 *)(psVar9 + 6) = *(undefined4 *)(psVar8 + 6);\n          *(undefined4 *)(psVar9 + 8) = *(undefined4 *)(psVar8 + 8);\n          *(undefined4 *)(psVar9 + 10) = *(undefined4 *)(psVar8 + 10);\n          uVar15 = local_24[1];\n        }\n        if (uVar15 == 0x7000000d) {\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          pcVar11 = (char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0);\n          pcVar16 = pcVar11 + uVar15;\n          for (; pcVar11 + 8 <= pcVar16; pcVar11 = pcVar11 + bVar1) {\n            bVar1 = pcVar11[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }\n            if (*pcVar11 == '\x01') {\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }\n      goto LAB_001bba8f;\n    }\n  }\n  else if (iVar5 != 2) {\n                    \n    FUN_002446e0("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }\nLAB_001bb77c:\n  param_1[0x1e4] = param_1[0x1e4] & 0xf7;\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "short sVar2;" (sized_type_specifier "short" short) identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "short *psVar8;" (sized_type_specifier "short" short) (pointer_declarator "*psVar8" * identifier) ;) (declaration "short *psVar9;" (sized_type_specifier "short" short) (pointer_declarator "*psVar9" * identifier) ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "char cVar14;" primitive_type identifier ;) (declaration "undefined4 extraout_EDX;" type_identifier identifier ;) (declaration "undefined4 extraout_EDX_00;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "uint *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "byte *pbVar21;" type_identifier (pointer_declarator "*pbVar21" * identifier) ;) (declaration "bool bVar22;" primitive_type identifier ;) (declaration "bool bVar23;" primitive_type identifier ;) (declaration "bool bVar24;" primitive_type identifier ;) (declaration "byte bVar25;" type_identifier identifier ;) (declaration "uint local_28;" type_identifier identifier ;) (declaration "uint *local_24;" type_identifier (pointer_declarator "*local_24" * identifier) ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (expression_statement "FUN_002b3240(param_1,param_2);" (call_expression "FUN_002b3240(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier ))) ;) (if_statement "if (*(int *)(param_1 + 0x1c) == 0) {\nLAB_001bbcba:\n    FUN_00175c50();\nLAB_001bbcbf:\n                    \n    FUN_002446e0("../../gold/mips.cc",0x1b6f,"do_read_symbols");\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x1c) == 0)" ( (binary_expression "*(int *)(param_1 + 0x1c) == 0" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_001bbcba:\n    FUN_00175c50();\nLAB_001bbcbf:\n                    \n    FUN_002446e0("../../gold/mips.cc",0x1b6f,"do_read_symbols");\n  }" { (labeled_statement "LAB_001bbcba:\n    FUN_00175c50();" statement_identifier : (expression_statement "FUN_00175c50();" (call_expression "FUN_00175c50()" identifier (argument_list "()" ( ))) ;)) (labeled_statement "LAB_001bbcbf:\n                    \n    FUN_002446e0("../../gold/mips.cc",0x1b6f,"do_read_symbols");" statement_identifier : (expression_statement "FUN_002446e0("../../gold/mips.cc",0x1b6f,"do_read_symbols");" (call_expression "FUN_002446e0("../../gold/mips.cc",0x1b6f,"do_read_symbols")" identifier (argument_list "("../../gold/mips.cc",0x1b6f,"do_read_symbols")" ( (string_literal ""../../gold/mips.cc"" " string_content ") , number_literal , (string_literal ""do_read_symbols"" " string_content ") ))) ;)) })) (expression_statement "iVar5 = *(int *)(*(int *)(param_1 + 0x1c) + 0x90);" (assignment_expression "iVar5 = *(int *)(*(int *)(param_1 + 0x1c) + 0x90)" identifier = (pointer_expression "*(int *)(*(int *)(param_1 + 0x1c) + 0x90)" * (cast_expression "(int *)(*(int *)(param_1 + 0x1c) + 0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x1c) + 0x90)" ( (binary_expression "*(int *)(param_1 + 0x1c) + 0x90" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (iVar5 == 1) {\n    iVar5 = FUN_001cc8a0(param_1,0,0,0x34,1,0);\n    *(undefined4 *)(param_1 + 0x13c) = *(undefined4 *)(iVar5 + 0x24);\n    uVar3 = *(uint *)(param_2[1] + 8);\n    FUN_00104420(param_1 + 0x1ec,*(undefined4 *)(param_1 + 0x28),0);\n    FUN_00104420(param_1 + 0x200,*(undefined4 *)(param_1 + 0x28),0);\n    FUN_00104420(param_1 + 0x214,*(undefined4 *)(param_1 + 0x28),0);\n    bVar4 = false;\n    local_24 = (uint *)(*(int *)(*param_2 + 8) + 0x28);\n    if (1 < *(uint *)(param_1 + 0x28)) {\n      uVar15 = *(uint *)(*(int *)(*param_2 + 8) + 0x2c);\n      local_28 = 1;\n      uVar6 = extraout_EDX;\n      pcVar16 = ".MIPS.options";\n      if (uVar15 != 2) goto LAB_001bb8fa;\n      local_28 = 1;\n      do {\n        if (0x10 < local_24[5]) {\n          bVar4 = true;\n        }\nLAB_001bba8f:\n        iVar5 = 10;\n        bVar22 = CARRY4(uVar3,*local_24);\n        pbVar21 = (byte *)(uVar3 + *local_24);\n        bVar24 = pbVar21 == (byte *)0x0;\n        pbVar18 = (byte *)".mips16.fn";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        iVar5 = (local_28 >> 5) * 4;\n        uVar17 = 1 << ((byte)local_28 & 0x1f);\n        uVar15 = *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        uVar12 = uVar15 & ~uVar17;\n        if (bVar22) {\n          uVar12 = uVar15 | uVar17;\n        }\n        *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5) = uVar12;\n        iVar13 = 0xd;\n        pbVar18 = (byte *)".mips16.call.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        puVar19 = (uint *)(*(int *)(param_1 + 0x200) + iVar5);\n        if ((!bVar23 && !bVar22) == bVar23) {\n          uVar15 = *puVar19 | uVar17;\n        }\n        else {\n          uVar15 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar15 == 0;\n        bVar22 = false;\n        *puVar19 = uVar15;\n        iVar13 = 0x10;\n        pbVar18 = (byte *)".mips16.call.fp.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        cVar14 = (!bVar22 && !bVar24) - bVar22;\n        uVar6 = CONCAT31((int3)(uVar15 >> 8),cVar14);\n        puVar19 = (uint *)(iVar5 + *(int *)(param_1 + 0x214));\n        if (cVar14 == '\0') {\n          uVar17 = uVar17 | *puVar19;\n        }\n        else {\n          uVar17 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar17 == 0;\n        bVar22 = false;\n        *puVar19 = uVar17;\n        iVar5 = 5;\n        pbVar18 = &DAT_0044d56a;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar21 < *pbVar18;\n          bVar24 = *pbVar21 == *pbVar18;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        if ((!bVar22 && !bVar24) == bVar22) {\n          if (*(int *)(param_1 + 0x228) != -1) goto LAB_001bbcbf;\n          *(uint *)(param_1 + 0x228) = local_28;\n        }\n        local_28 = local_28 + 1;\n        puVar19 = local_24 + 10;\n        if (*(uint *)(param_1 + 0x28) <= local_28) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_001bb77c;\n        }\n        uVar15 = local_24[0xb];\n        pcVar16 = param_1;\n        local_24 = puVar19;\n      } while (uVar15 == 2);\nLAB_001bb8fa:\n      if (uVar15 != 3) {\n        if (uVar15 == 0x70000006) {\n          param_1[0x1e4] = param_1[0x1e4] | 4;\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          puVar10 = (undefined4 *)\n                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          *(undefined4 *)(param_1 + 0x1e0) = puVar10[5];\n          *(undefined4 *)(param_1 + 0x234) = *puVar10;\n          *(undefined4 *)(param_1 + 0x238) = puVar10[1];\n          *(undefined4 *)(param_1 + 0x23c) = puVar10[2];\n          uVar6 = puVar10[3];\n          *(undefined4 *)(param_1 + 0x240) = uVar6;\n          *(undefined4 *)(param_1 + 0x244) = puVar10[4];\n          uVar15 = local_24[1];\n          pcVar16 = param_1;\n        }\n        if (uVar15 == 0x6ffffff5) {\n          if (*(int *)(param_1 + 0x22c) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);\n          }\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          uVar6 = FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0);\n          uVar7 = FUN_003ac4d0(8);\n                    \n          FUN_00225ca0(uVar7,uVar6,uVar15);\n          *(undefined4 *)(param_1 + 0x22c) = uVar7;\n          uVar15 = local_24[1];\n          uVar6 = extraout_EDX_00;\n        }\n        if (uVar15 == 0x7000002a) {\n          if (*(int *)(param_1 + 0x230) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);\n          }\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          psVar8 = (short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          psVar9 = (short *)FUN_003ac4d0(0x18);\n          psVar9[0] = 0;\n          psVar9[1] = 0;\n          psVar9[2] = 0;\n          psVar9[3] = 0;\n          sVar2 = *psVar8;\n          psVar9[4] = 0;\n          psVar9[5] = 0;\n          psVar9[6] = 0;\n          psVar9[7] = 0;\n          psVar9[8] = 0;\n          psVar9[9] = 0;\n          psVar9[10] = 0;\n          psVar9[0xb] = 0;\n          *(short **)(param_1 + 0x230) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined4 *)(param_1 + 4);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0023b810(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((int)psVar9 + 3) = *(undefined1 *)((int)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((int)psVar9 + 5) = *(undefined1 *)((int)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((int)psVar9 + 7) = *(undefined1 *)((int)psVar8 + 7);\n          *(undefined4 *)(psVar9 + 4) = *(undefined4 *)(psVar8 + 4);\n          *(undefined4 *)(psVar9 + 6) = *(undefined4 *)(psVar8 + 6);\n          *(undefined4 *)(psVar9 + 8) = *(undefined4 *)(psVar8 + 8);\n          *(undefined4 *)(psVar9 + 10) = *(undefined4 *)(psVar8 + 10);\n          uVar15 = local_24[1];\n        }\n        if (uVar15 == 0x7000000d) {\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          pcVar11 = (char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0);\n          pcVar16 = pcVar11 + uVar15;\n          for (; pcVar11 + 8 <= pcVar16; pcVar11 = pcVar11 + bVar1) {\n            bVar1 = pcVar11[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }\n            if (*pcVar11 == '\x01') {\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }\n      goto LAB_001bba8f;\n    }\n  }\n  else if (iVar5 != 2) {\n                    \n    FUN_002446e0("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }" if (parenthesized_expression "(iVar5 == 1)" ( (binary_expression "iVar5 == 1" identifier == number_literal) )) (compound_statement "{\n    iVar5 = FUN_001cc8a0(param_1,0,0,0x34,1,0);\n    *(undefined4 *)(param_1 + 0x13c) = *(undefined4 *)(iVar5 + 0x24);\n    uVar3 = *(uint *)(param_2[1] + 8);\n    FUN_00104420(param_1 + 0x1ec,*(undefined4 *)(param_1 + 0x28),0);\n    FUN_00104420(param_1 + 0x200,*(undefined4 *)(param_1 + 0x28),0);\n    FUN_00104420(param_1 + 0x214,*(undefined4 *)(param_1 + 0x28),0);\n    bVar4 = false;\n    local_24 = (uint *)(*(int *)(*param_2 + 8) + 0x28);\n    if (1 < *(uint *)(param_1 + 0x28)) {\n      uVar15 = *(uint *)(*(int *)(*param_2 + 8) + 0x2c);\n      local_28 = 1;\n      uVar6 = extraout_EDX;\n      pcVar16 = ".MIPS.options";\n      if (uVar15 != 2) goto LAB_001bb8fa;\n      local_28 = 1;\n      do {\n        if (0x10 < local_24[5]) {\n          bVar4 = true;\n        }\nLAB_001bba8f:\n        iVar5 = 10;\n        bVar22 = CARRY4(uVar3,*local_24);\n        pbVar21 = (byte *)(uVar3 + *local_24);\n        bVar24 = pbVar21 == (byte *)0x0;\n        pbVar18 = (byte *)".mips16.fn";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        iVar5 = (local_28 >> 5) * 4;\n        uVar17 = 1 << ((byte)local_28 & 0x1f);\n        uVar15 = *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        uVar12 = uVar15 & ~uVar17;\n        if (bVar22) {\n          uVar12 = uVar15 | uVar17;\n        }\n        *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5) = uVar12;\n        iVar13 = 0xd;\n        pbVar18 = (byte *)".mips16.call.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        puVar19 = (uint *)(*(int *)(param_1 + 0x200) + iVar5);\n        if ((!bVar23 && !bVar22) == bVar23) {\n          uVar15 = *puVar19 | uVar17;\n        }\n        else {\n          uVar15 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar15 == 0;\n        bVar22 = false;\n        *puVar19 = uVar15;\n        iVar13 = 0x10;\n        pbVar18 = (byte *)".mips16.call.fp.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        cVar14 = (!bVar22 && !bVar24) - bVar22;\n        uVar6 = CONCAT31((int3)(uVar15 >> 8),cVar14);\n        puVar19 = (uint *)(iVar5 + *(int *)(param_1 + 0x214));\n        if (cVar14 == '\0') {\n          uVar17 = uVar17 | *puVar19;\n        }\n        else {\n          uVar17 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar17 == 0;\n        bVar22 = false;\n        *puVar19 = uVar17;\n        iVar5 = 5;\n        pbVar18 = &DAT_0044d56a;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar21 < *pbVar18;\n          bVar24 = *pbVar21 == *pbVar18;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        if ((!bVar22 && !bVar24) == bVar22) {\n          if (*(int *)(param_1 + 0x228) != -1) goto LAB_001bbcbf;\n          *(uint *)(param_1 + 0x228) = local_28;\n        }\n        local_28 = local_28 + 1;\n        puVar19 = local_24 + 10;\n        if (*(uint *)(param_1 + 0x28) <= local_28) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_001bb77c;\n        }\n        uVar15 = local_24[0xb];\n        pcVar16 = param_1;\n        local_24 = puVar19;\n      } while (uVar15 == 2);\nLAB_001bb8fa:\n      if (uVar15 != 3) {\n        if (uVar15 == 0x70000006) {\n          param_1[0x1e4] = param_1[0x1e4] | 4;\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          puVar10 = (undefined4 *)\n                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          *(undefined4 *)(param_1 + 0x1e0) = puVar10[5];\n          *(undefined4 *)(param_1 + 0x234) = *puVar10;\n          *(undefined4 *)(param_1 + 0x238) = puVar10[1];\n          *(undefined4 *)(param_1 + 0x23c) = puVar10[2];\n          uVar6 = puVar10[3];\n          *(undefined4 *)(param_1 + 0x240) = uVar6;\n          *(undefined4 *)(param_1 + 0x244) = puVar10[4];\n          uVar15 = local_24[1];\n          pcVar16 = param_1;\n        }\n        if (uVar15 == 0x6ffffff5) {\n          if (*(int *)(param_1 + 0x22c) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);\n          }\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          uVar6 = FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0);\n          uVar7 = FUN_003ac4d0(8);\n                    \n          FUN_00225ca0(uVar7,uVar6,uVar15);\n          *(undefined4 *)(param_1 + 0x22c) = uVar7;\n          uVar15 = local_24[1];\n          uVar6 = extraout_EDX_00;\n        }\n        if (uVar15 == 0x7000002a) {\n          if (*(int *)(param_1 + 0x230) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);\n          }\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          psVar8 = (short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          psVar9 = (short *)FUN_003ac4d0(0x18);\n          psVar9[0] = 0;\n          psVar9[1] = 0;\n          psVar9[2] = 0;\n          psVar9[3] = 0;\n          sVar2 = *psVar8;\n          psVar9[4] = 0;\n          psVar9[5] = 0;\n          psVar9[6] = 0;\n          psVar9[7] = 0;\n          psVar9[8] = 0;\n          psVar9[9] = 0;\n          psVar9[10] = 0;\n          psVar9[0xb] = 0;\n          *(short **)(param_1 + 0x230) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined4 *)(param_1 + 4);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0023b810(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((int)psVar9 + 3) = *(undefined1 *)((int)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((int)psVar9 + 5) = *(undefined1 *)((int)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((int)psVar9 + 7) = *(undefined1 *)((int)psVar8 + 7);\n          *(undefined4 *)(psVar9 + 4) = *(undefined4 *)(psVar8 + 4);\n          *(undefined4 *)(psVar9 + 6) = *(undefined4 *)(psVar8 + 6);\n          *(undefined4 *)(psVar9 + 8) = *(undefined4 *)(psVar8 + 8);\n          *(undefined4 *)(psVar9 + 10) = *(undefined4 *)(psVar8 + 10);\n          uVar15 = local_24[1];\n        }\n        if (uVar15 == 0x7000000d) {\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          pcVar11 = (char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0);\n          pcVar16 = pcVar11 + uVar15;\n          for (; pcVar11 + 8 <= pcVar16; pcVar11 = pcVar11 + bVar1) {\n            bVar1 = pcVar11[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }\n            if (*pcVar11 == '\x01') {\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }\n      goto LAB_001bba8f;\n    }\n  }" { (expression_statement "iVar5 = FUN_001cc8a0(param_1,0,0,0x34,1,0);" (assignment_expression "iVar5 = FUN_001cc8a0(param_1,0,0,0x34,1,0)" identifier = (call_expression "FUN_001cc8a0(param_1,0,0,0x34,1,0)" identifier (argument_list "(param_1,0,0,0x34,1,0)" ( identifier , number_literal , number_literal , number_literal , number_literal , number_literal )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x13c) = *(undefined4 *)(iVar5 + 0x24);" (assignment_expression "*(undefined4 *)(param_1 + 0x13c) = *(undefined4 *)(iVar5 + 0x24)" (pointer_expression "*(undefined4 *)(param_1 + 0x13c)" * (cast_expression "(undefined4 *)(param_1 + 0x13c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x13c)" ( (binary_expression "param_1 + 0x13c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar5 + 0x24)" * (cast_expression "(undefined4 *)(iVar5 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x24)" ( (binary_expression "iVar5 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(uint *)(param_2[1] + 8);" (assignment_expression "uVar3 = *(uint *)(param_2[1] + 8)" identifier = (pointer_expression "*(uint *)(param_2[1] + 8)" * (cast_expression "(uint *)(param_2[1] + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + 8)" ( (binary_expression "param_2[1] + 8" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "FUN_00104420(param_1 + 0x1ec,*(undefined4 *)(param_1 + 0x28),0);" (call_expression "FUN_00104420(param_1 + 0x1ec,*(undefined4 *)(param_1 + 0x28),0)" identifier (argument_list "(param_1 + 0x1ec,*(undefined4 *)(param_1 + 0x28),0)" ( (binary_expression "param_1 + 0x1ec" identifier + number_literal) , (pointer_expression "*(undefined4 *)(param_1 + 0x28)" * (cast_expression "(undefined4 *)(param_1 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) , number_literal ))) ;) (expression_statement "FUN_00104420(param_1 + 0x200,*(undefined4 *)(param_1 + 0x28),0);" (call_expression "FUN_00104420(param_1 + 0x200,*(undefined4 *)(param_1 + 0x28),0)" identifier (argument_list "(param_1 + 0x200,*(undefined4 *)(param_1 + 0x28),0)" ( (binary_expression "param_1 + 0x200" identifier + number_literal) , (pointer_expression "*(undefined4 *)(param_1 + 0x28)" * (cast_expression "(undefined4 *)(param_1 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) , number_literal ))) ;) (expression_statement "FUN_00104420(param_1 + 0x214,*(undefined4 *)(param_1 + 0x28),0);" (call_expression "FUN_00104420(param_1 + 0x214,*(undefined4 *)(param_1 + 0x28),0)" identifier (argument_list "(param_1 + 0x214,*(undefined4 *)(param_1 + 0x28),0)" ( (binary_expression "param_1 + 0x214" identifier + number_literal) , (pointer_expression "*(undefined4 *)(param_1 + 0x28)" * (cast_expression "(undefined4 *)(param_1 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) , number_literal ))) ;) (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) (expression_statement "local_24 = (uint *)(*(int *)(*param_2 + 8) + 0x28);" (assignment_expression "local_24 = (uint *)(*(int *)(*param_2 + 8) + 0x28)" identifier = (cast_expression "(uint *)(*(int *)(*param_2 + 8) + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*param_2 + 8) + 0x28)" ( (binary_expression "*(int *)(*param_2 + 8) + 0x28" (pointer_expression "*(int *)(*param_2 + 8)" * (cast_expression "(int *)(*param_2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_2 + 8)" ( (binary_expression "*param_2 + 8" (pointer_expression "*param_2" * identifier) + number_literal) )))) + number_literal) )))) ;) (if_statement "if (1 < *(uint *)(param_1 + 0x28)) {\n      uVar15 = *(uint *)(*(int *)(*param_2 + 8) + 0x2c);\n      local_28 = 1;\n      uVar6 = extraout_EDX;\n      pcVar16 = ".MIPS.options";\n      if (uVar15 != 2) goto LAB_001bb8fa;\n      local_28 = 1;\n      do {\n        if (0x10 < local_24[5]) {\n          bVar4 = true;\n        }\nLAB_001bba8f:\n        iVar5 = 10;\n        bVar22 = CARRY4(uVar3,*local_24);\n        pbVar21 = (byte *)(uVar3 + *local_24);\n        bVar24 = pbVar21 == (byte *)0x0;\n        pbVar18 = (byte *)".mips16.fn";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        iVar5 = (local_28 >> 5) * 4;\n        uVar17 = 1 << ((byte)local_28 & 0x1f);\n        uVar15 = *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        uVar12 = uVar15 & ~uVar17;\n        if (bVar22) {\n          uVar12 = uVar15 | uVar17;\n        }\n        *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5) = uVar12;\n        iVar13 = 0xd;\n        pbVar18 = (byte *)".mips16.call.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        puVar19 = (uint *)(*(int *)(param_1 + 0x200) + iVar5);\n        if ((!bVar23 && !bVar22) == bVar23) {\n          uVar15 = *puVar19 | uVar17;\n        }\n        else {\n          uVar15 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar15 == 0;\n        bVar22 = false;\n        *puVar19 = uVar15;\n        iVar13 = 0x10;\n        pbVar18 = (byte *)".mips16.call.fp.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        cVar14 = (!bVar22 && !bVar24) - bVar22;\n        uVar6 = CONCAT31((int3)(uVar15 >> 8),cVar14);\n        puVar19 = (uint *)(iVar5 + *(int *)(param_1 + 0x214));\n        if (cVar14 == '\0') {\n          uVar17 = uVar17 | *puVar19;\n        }\n        else {\n          uVar17 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar17 == 0;\n        bVar22 = false;\n        *puVar19 = uVar17;\n        iVar5 = 5;\n        pbVar18 = &DAT_0044d56a;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar21 < *pbVar18;\n          bVar24 = *pbVar21 == *pbVar18;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        if ((!bVar22 && !bVar24) == bVar22) {\n          if (*(int *)(param_1 + 0x228) != -1) goto LAB_001bbcbf;\n          *(uint *)(param_1 + 0x228) = local_28;\n        }\n        local_28 = local_28 + 1;\n        puVar19 = local_24 + 10;\n        if (*(uint *)(param_1 + 0x28) <= local_28) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_001bb77c;\n        }\n        uVar15 = local_24[0xb];\n        pcVar16 = param_1;\n        local_24 = puVar19;\n      } while (uVar15 == 2);\nLAB_001bb8fa:\n      if (uVar15 != 3) {\n        if (uVar15 == 0x70000006) {\n          param_1[0x1e4] = param_1[0x1e4] | 4;\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          puVar10 = (undefined4 *)\n                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          *(undefined4 *)(param_1 + 0x1e0) = puVar10[5];\n          *(undefined4 *)(param_1 + 0x234) = *puVar10;\n          *(undefined4 *)(param_1 + 0x238) = puVar10[1];\n          *(undefined4 *)(param_1 + 0x23c) = puVar10[2];\n          uVar6 = puVar10[3];\n          *(undefined4 *)(param_1 + 0x240) = uVar6;\n          *(undefined4 *)(param_1 + 0x244) = puVar10[4];\n          uVar15 = local_24[1];\n          pcVar16 = param_1;\n        }\n        if (uVar15 == 0x6ffffff5) {\n          if (*(int *)(param_1 + 0x22c) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);\n          }\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          uVar6 = FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0);\n          uVar7 = FUN_003ac4d0(8);\n                    \n          FUN_00225ca0(uVar7,uVar6,uVar15);\n          *(undefined4 *)(param_1 + 0x22c) = uVar7;\n          uVar15 = local_24[1];\n          uVar6 = extraout_EDX_00;\n        }\n        if (uVar15 == 0x7000002a) {\n          if (*(int *)(param_1 + 0x230) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);\n          }\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          psVar8 = (short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          psVar9 = (short *)FUN_003ac4d0(0x18);\n          psVar9[0] = 0;\n          psVar9[1] = 0;\n          psVar9[2] = 0;\n          psVar9[3] = 0;\n          sVar2 = *psVar8;\n          psVar9[4] = 0;\n          psVar9[5] = 0;\n          psVar9[6] = 0;\n          psVar9[7] = 0;\n          psVar9[8] = 0;\n          psVar9[9] = 0;\n          psVar9[10] = 0;\n          psVar9[0xb] = 0;\n          *(short **)(param_1 + 0x230) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined4 *)(param_1 + 4);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0023b810(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((int)psVar9 + 3) = *(undefined1 *)((int)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((int)psVar9 + 5) = *(undefined1 *)((int)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((int)psVar9 + 7) = *(undefined1 *)((int)psVar8 + 7);\n          *(undefined4 *)(psVar9 + 4) = *(undefined4 *)(psVar8 + 4);\n          *(undefined4 *)(psVar9 + 6) = *(undefined4 *)(psVar8 + 6);\n          *(undefined4 *)(psVar9 + 8) = *(undefined4 *)(psVar8 + 8);\n          *(undefined4 *)(psVar9 + 10) = *(undefined4 *)(psVar8 + 10);\n          uVar15 = local_24[1];\n        }\n        if (uVar15 == 0x7000000d) {\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          pcVar11 = (char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0);\n          pcVar16 = pcVar11 + uVar15;\n          for (; pcVar11 + 8 <= pcVar16; pcVar11 = pcVar11 + bVar1) {\n            bVar1 = pcVar11[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }\n            if (*pcVar11 == '\x01') {\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }\n      goto LAB_001bba8f;\n    }" if (parenthesized_expression "(1 < *(uint *)(param_1 + 0x28))" ( (binary_expression "1 < *(uint *)(param_1 + 0x28)" number_literal < (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n      uVar15 = *(uint *)(*(int *)(*param_2 + 8) + 0x2c);\n      local_28 = 1;\n      uVar6 = extraout_EDX;\n      pcVar16 = ".MIPS.options";\n      if (uVar15 != 2) goto LAB_001bb8fa;\n      local_28 = 1;\n      do {\n        if (0x10 < local_24[5]) {\n          bVar4 = true;\n        }\nLAB_001bba8f:\n        iVar5 = 10;\n        bVar22 = CARRY4(uVar3,*local_24);\n        pbVar21 = (byte *)(uVar3 + *local_24);\n        bVar24 = pbVar21 == (byte *)0x0;\n        pbVar18 = (byte *)".mips16.fn";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        iVar5 = (local_28 >> 5) * 4;\n        uVar17 = 1 << ((byte)local_28 & 0x1f);\n        uVar15 = *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        uVar12 = uVar15 & ~uVar17;\n        if (bVar22) {\n          uVar12 = uVar15 | uVar17;\n        }\n        *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5) = uVar12;\n        iVar13 = 0xd;\n        pbVar18 = (byte *)".mips16.call.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        puVar19 = (uint *)(*(int *)(param_1 + 0x200) + iVar5);\n        if ((!bVar23 && !bVar22) == bVar23) {\n          uVar15 = *puVar19 | uVar17;\n        }\n        else {\n          uVar15 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar15 == 0;\n        bVar22 = false;\n        *puVar19 = uVar15;\n        iVar13 = 0x10;\n        pbVar18 = (byte *)".mips16.call.fp.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        cVar14 = (!bVar22 && !bVar24) - bVar22;\n        uVar6 = CONCAT31((int3)(uVar15 >> 8),cVar14);\n        puVar19 = (uint *)(iVar5 + *(int *)(param_1 + 0x214));\n        if (cVar14 == '\0') {\n          uVar17 = uVar17 | *puVar19;\n        }\n        else {\n          uVar17 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar17 == 0;\n        bVar22 = false;\n        *puVar19 = uVar17;\n        iVar5 = 5;\n        pbVar18 = &DAT_0044d56a;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar21 < *pbVar18;\n          bVar24 = *pbVar21 == *pbVar18;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        if ((!bVar22 && !bVar24) == bVar22) {\n          if (*(int *)(param_1 + 0x228) != -1) goto LAB_001bbcbf;\n          *(uint *)(param_1 + 0x228) = local_28;\n        }\n        local_28 = local_28 + 1;\n        puVar19 = local_24 + 10;\n        if (*(uint *)(param_1 + 0x28) <= local_28) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_001bb77c;\n        }\n        uVar15 = local_24[0xb];\n        pcVar16 = param_1;\n        local_24 = puVar19;\n      } while (uVar15 == 2);\nLAB_001bb8fa:\n      if (uVar15 != 3) {\n        if (uVar15 == 0x70000006) {\n          param_1[0x1e4] = param_1[0x1e4] | 4;\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          puVar10 = (undefined4 *)\n                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          *(undefined4 *)(param_1 + 0x1e0) = puVar10[5];\n          *(undefined4 *)(param_1 + 0x234) = *puVar10;\n          *(undefined4 *)(param_1 + 0x238) = puVar10[1];\n          *(undefined4 *)(param_1 + 0x23c) = puVar10[2];\n          uVar6 = puVar10[3];\n          *(undefined4 *)(param_1 + 0x240) = uVar6;\n          *(undefined4 *)(param_1 + 0x244) = puVar10[4];\n          uVar15 = local_24[1];\n          pcVar16 = param_1;\n        }\n        if (uVar15 == 0x6ffffff5) {\n          if (*(int *)(param_1 + 0x22c) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);\n          }\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          uVar6 = FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0);\n          uVar7 = FUN_003ac4d0(8);\n                    \n          FUN_00225ca0(uVar7,uVar6,uVar15);\n          *(undefined4 *)(param_1 + 0x22c) = uVar7;\n          uVar15 = local_24[1];\n          uVar6 = extraout_EDX_00;\n        }\n        if (uVar15 == 0x7000002a) {\n          if (*(int *)(param_1 + 0x230) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);\n          }\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          psVar8 = (short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          psVar9 = (short *)FUN_003ac4d0(0x18);\n          psVar9[0] = 0;\n          psVar9[1] = 0;\n          psVar9[2] = 0;\n          psVar9[3] = 0;\n          sVar2 = *psVar8;\n          psVar9[4] = 0;\n          psVar9[5] = 0;\n          psVar9[6] = 0;\n          psVar9[7] = 0;\n          psVar9[8] = 0;\n          psVar9[9] = 0;\n          psVar9[10] = 0;\n          psVar9[0xb] = 0;\n          *(short **)(param_1 + 0x230) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined4 *)(param_1 + 4);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0023b810(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((int)psVar9 + 3) = *(undefined1 *)((int)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((int)psVar9 + 5) = *(undefined1 *)((int)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((int)psVar9 + 7) = *(undefined1 *)((int)psVar8 + 7);\n          *(undefined4 *)(psVar9 + 4) = *(undefined4 *)(psVar8 + 4);\n          *(undefined4 *)(psVar9 + 6) = *(undefined4 *)(psVar8 + 6);\n          *(undefined4 *)(psVar9 + 8) = *(undefined4 *)(psVar8 + 8);\n          *(undefined4 *)(psVar9 + 10) = *(undefined4 *)(psVar8 + 10);\n          uVar15 = local_24[1];\n        }\n        if (uVar15 == 0x7000000d) {\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          pcVar11 = (char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0);\n          pcVar16 = pcVar11 + uVar15;\n          for (; pcVar11 + 8 <= pcVar16; pcVar11 = pcVar11 + bVar1) {\n            bVar1 = pcVar11[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }\n            if (*pcVar11 == '\x01') {\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }\n      goto LAB_001bba8f;\n    }" { (expression_statement "uVar15 = *(uint *)(*(int *)(*param_2 + 8) + 0x2c);" (assignment_expression "uVar15 = *(uint *)(*(int *)(*param_2 + 8) + 0x2c)" identifier = (pointer_expression "*(uint *)(*(int *)(*param_2 + 8) + 0x2c)" * (cast_expression "(uint *)(*(int *)(*param_2 + 8) + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*param_2 + 8) + 0x2c)" ( (binary_expression "*(int *)(*param_2 + 8) + 0x2c" (pointer_expression "*(int *)(*param_2 + 8)" * (cast_expression "(int *)(*param_2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_2 + 8)" ( (binary_expression "*param_2 + 8" (pointer_expression "*param_2" * identifier) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "local_28 = 1;" (assignment_expression "local_28 = 1" identifier = number_literal) ;) (expression_statement "uVar6 = extraout_EDX;" (assignment_expression "uVar6 = extraout_EDX" identifier = identifier) ;) (expression_statement "pcVar16 = ".MIPS.options";" (assignment_expression "pcVar16 = ".MIPS.options"" identifier = (string_literal "".MIPS.options"" " string_content ")) ;) (if_statement "if (uVar15 != 2) goto LAB_001bb8fa;" if (parenthesized_expression "(uVar15 != 2)" ( (binary_expression "uVar15 != 2" identifier != number_literal) )) (goto_statement "goto LAB_001bb8fa;" goto statement_identifier ;)) (expression_statement "local_28 = 1;" (assignment_expression "local_28 = 1" identifier = number_literal) ;) (do_statement "do {\n        if (0x10 < local_24[5]) {\n          bVar4 = true;\n        }\nLAB_001bba8f:\n        iVar5 = 10;\n        bVar22 = CARRY4(uVar3,*local_24);\n        pbVar21 = (byte *)(uVar3 + *local_24);\n        bVar24 = pbVar21 == (byte *)0x0;\n        pbVar18 = (byte *)".mips16.fn";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        iVar5 = (local_28 >> 5) * 4;\n        uVar17 = 1 << ((byte)local_28 & 0x1f);\n        uVar15 = *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        uVar12 = uVar15 & ~uVar17;\n        if (bVar22) {\n          uVar12 = uVar15 | uVar17;\n        }\n        *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5) = uVar12;\n        iVar13 = 0xd;\n        pbVar18 = (byte *)".mips16.call.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        puVar19 = (uint *)(*(int *)(param_1 + 0x200) + iVar5);\n        if ((!bVar23 && !bVar22) == bVar23) {\n          uVar15 = *puVar19 | uVar17;\n        }\n        else {\n          uVar15 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar15 == 0;\n        bVar22 = false;\n        *puVar19 = uVar15;\n        iVar13 = 0x10;\n        pbVar18 = (byte *)".mips16.call.fp.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        cVar14 = (!bVar22 && !bVar24) - bVar22;\n        uVar6 = CONCAT31((int3)(uVar15 >> 8),cVar14);\n        puVar19 = (uint *)(iVar5 + *(int *)(param_1 + 0x214));\n        if (cVar14 == '\0') {\n          uVar17 = uVar17 | *puVar19;\n        }\n        else {\n          uVar17 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar17 == 0;\n        bVar22 = false;\n        *puVar19 = uVar17;\n        iVar5 = 5;\n        pbVar18 = &DAT_0044d56a;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar21 < *pbVar18;\n          bVar24 = *pbVar21 == *pbVar18;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        if ((!bVar22 && !bVar24) == bVar22) {\n          if (*(int *)(param_1 + 0x228) != -1) goto LAB_001bbcbf;\n          *(uint *)(param_1 + 0x228) = local_28;\n        }\n        local_28 = local_28 + 1;\n        puVar19 = local_24 + 10;\n        if (*(uint *)(param_1 + 0x28) <= local_28) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_001bb77c;\n        }\n        uVar15 = local_24[0xb];\n        pcVar16 = param_1;\n        local_24 = puVar19;\n      } while (uVar15 == 2);" do (compound_statement "{\n        if (0x10 < local_24[5]) {\n          bVar4 = true;\n        }\nLAB_001bba8f:\n        iVar5 = 10;\n        bVar22 = CARRY4(uVar3,*local_24);\n        pbVar21 = (byte *)(uVar3 + *local_24);\n        bVar24 = pbVar21 == (byte *)0x0;\n        pbVar18 = (byte *)".mips16.fn";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        iVar5 = (local_28 >> 5) * 4;\n        uVar17 = 1 << ((byte)local_28 & 0x1f);\n        uVar15 = *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        uVar12 = uVar15 & ~uVar17;\n        if (bVar22) {\n          uVar12 = uVar15 | uVar17;\n        }\n        *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5) = uVar12;\n        iVar13 = 0xd;\n        pbVar18 = (byte *)".mips16.call.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        puVar19 = (uint *)(*(int *)(param_1 + 0x200) + iVar5);\n        if ((!bVar23 && !bVar22) == bVar23) {\n          uVar15 = *puVar19 | uVar17;\n        }\n        else {\n          uVar15 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar15 == 0;\n        bVar22 = false;\n        *puVar19 = uVar15;\n        iVar13 = 0x10;\n        pbVar18 = (byte *)".mips16.call.fp.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        cVar14 = (!bVar22 && !bVar24) - bVar22;\n        uVar6 = CONCAT31((int3)(uVar15 >> 8),cVar14);\n        puVar19 = (uint *)(iVar5 + *(int *)(param_1 + 0x214));\n        if (cVar14 == '\0') {\n          uVar17 = uVar17 | *puVar19;\n        }\n        else {\n          uVar17 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar17 == 0;\n        bVar22 = false;\n        *puVar19 = uVar17;\n        iVar5 = 5;\n        pbVar18 = &DAT_0044d56a;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar21 < *pbVar18;\n          bVar24 = *pbVar21 == *pbVar18;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        if ((!bVar22 && !bVar24) == bVar22) {\n          if (*(int *)(param_1 + 0x228) != -1) goto LAB_001bbcbf;\n          *(uint *)(param_1 + 0x228) = local_28;\n        }\n        local_28 = local_28 + 1;\n        puVar19 = local_24 + 10;\n        if (*(uint *)(param_1 + 0x28) <= local_28) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_001bb77c;\n        }\n        uVar15 = local_24[0xb];\n        pcVar16 = param_1;\n        local_24 = puVar19;\n      }" { (if_statement "if (0x10 < local_24[5]) {\n          bVar4 = true;\n        }" if (parenthesized_expression "(0x10 < local_24[5])" ( (binary_expression "0x10 < local_24[5]" number_literal < (subscript_expression "local_24[5]" identifier [ number_literal ])) )) (compound_statement "{\n          bVar4 = true;\n        }" { (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" identifier = true) ;) })) (labeled_statement "LAB_001bba8f:\n        iVar5 = 10;" statement_identifier : (expression_statement "iVar5 = 10;" (assignment_expression "iVar5 = 10" identifier = number_literal) ;)) (expression_statement "bVar22 = CARRY4(uVar3,*local_24);" (assignment_expression "bVar22 = CARRY4(uVar3,*local_24)" identifier = (call_expression "CARRY4(uVar3,*local_24)" identifier (argument_list "(uVar3,*local_24)" ( identifier , (pointer_expression "*local_24" * identifier) )))) ;) (expression_statement "pbVar21 = (byte *)(uVar3 + *local_24);" (assignment_expression "pbVar21 = (byte *)(uVar3 + *local_24)" identifier = (cast_expression "(byte *)(uVar3 + *local_24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar3 + *local_24)" ( (binary_expression "uVar3 + *local_24" identifier + (pointer_expression "*local_24" * identifier)) )))) ;) (expression_statement "bVar24 = pbVar21 == (byte *)0x0;" (assignment_expression "bVar24 = pbVar21 == (byte *)0x0" identifier = (binary_expression "pbVar21 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar18 = (byte *)".mips16.fn";" (assignment_expression "pbVar18 = (byte *)".mips16.fn"" identifier = (cast_expression "(byte *)".mips16.fn"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".mips16.fn"" " string_content "))) ;) (expression_statement "pbVar20 = pbVar21;" (assignment_expression "pbVar20 = pbVar21" identifier = identifier) ;) (do_statement "do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);" do (compound_statement "{\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar18 < *pbVar20;" (assignment_expression "bVar22 = *pbVar18 < *pbVar20" identifier = (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar24 = *pbVar18 == *pbVar20;" (assignment_expression "bVar24 = *pbVar18 == *pbVar20" identifier = (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (expression_statement "iVar5 = (local_28 >> 5) * 4;" (assignment_expression "iVar5 = (local_28 >> 5) * 4" identifier = (binary_expression "(local_28 >> 5) * 4" (parenthesized_expression "(local_28 >> 5)" ( (binary_expression "local_28 >> 5" identifier >> number_literal) )) * number_literal)) ;) (expression_statement "uVar17 = 1 << ((byte)local_28 & 0x1f);" (assignment_expression "uVar17 = 1 << ((byte)local_28 & 0x1f)" identifier = (binary_expression "1 << ((byte)local_28 & 0x1f)" number_literal << (parenthesized_expression "((byte)local_28 & 0x1f)" ( (binary_expression "(byte)local_28 & 0x1f" (cast_expression "(byte)local_28" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "uVar15 = *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5);" (assignment_expression "uVar15 = *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5)" identifier = (pointer_expression "*(uint *)(*(int *)(param_1 + 0x1ec) + iVar5)" * (cast_expression "(uint *)(*(int *)(param_1 + 0x1ec) + iVar5)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x1ec) + iVar5)" ( (binary_expression "*(int *)(param_1 + 0x1ec) + iVar5" (pointer_expression "*(int *)(param_1 + 0x1ec)" * (cast_expression "(int *)(param_1 + 0x1ec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1ec)" ( (binary_expression "param_1 + 0x1ec" identifier + number_literal) )))) + identifier) ))))) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "bVar22 = (!bVar22 && !bVar24) == bVar22;" (assignment_expression "bVar22 = (!bVar22 && !bVar24) == bVar22" identifier = (binary_expression "(!bVar22 && !bVar24) == bVar22" (parenthesized_expression "(!bVar22 && !bVar24)" ( (binary_expression "!bVar22 && !bVar24" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) == identifier)) ;) (expression_statement "uVar12 = uVar15 & ~uVar17;" (assignment_expression "uVar12 = uVar15 & ~uVar17" identifier = (binary_expression "uVar15 & ~uVar17" identifier & (unary_expression "~uVar17" ~ identifier))) ;) (if_statement "if (bVar22) {\n          uVar12 = uVar15 | uVar17;\n        }" if (parenthesized_expression "(bVar22)" ( identifier )) (compound_statement "{\n          uVar12 = uVar15 | uVar17;\n        }" { (expression_statement "uVar12 = uVar15 | uVar17;" (assignment_expression "uVar12 = uVar15 | uVar17" identifier = (binary_expression "uVar15 | uVar17" identifier | identifier)) ;) })) (expression_statement "*(uint *)(*(int *)(param_1 + 0x1ec) + iVar5) = uVar12;" (assignment_expression "*(uint *)(*(int *)(param_1 + 0x1ec) + iVar5) = uVar12" (pointer_expression "*(uint *)(*(int *)(param_1 + 0x1ec) + iVar5)" * (cast_expression "(uint *)(*(int *)(param_1 + 0x1ec) + iVar5)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x1ec) + iVar5)" ( (binary_expression "*(int *)(param_1 + 0x1ec) + iVar5" (pointer_expression "*(int *)(param_1 + 0x1ec)" * (cast_expression "(int *)(param_1 + 0x1ec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1ec)" ( (binary_expression "param_1 + 0x1ec" identifier + number_literal) )))) + identifier) )))) = identifier) ;) (expression_statement "iVar13 = 0xd;" (assignment_expression "iVar13 = 0xd" identifier = number_literal) ;) (expression_statement "pbVar18 = (byte *)".mips16.call.";" (assignment_expression "pbVar18 = (byte *)".mips16.call."" identifier = (cast_expression "(byte *)".mips16.call."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".mips16.call."" " string_content "))) ;) (expression_statement "pbVar20 = pbVar21;" (assignment_expression "pbVar20 = pbVar21" identifier = identifier) ;) (do_statement "do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);" do (compound_statement "{\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        }" { (if_statement "if (iVar13 == 0) break;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" identifier = (binary_expression "iVar13 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar18 < *pbVar20;" (assignment_expression "bVar23 = *pbVar18 < *pbVar20" identifier = (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar22 = *pbVar18 == *pbVar20;" (assignment_expression "bVar22 = *pbVar18 == *pbVar20" identifier = (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (expression_statement "puVar19 = (uint *)(*(int *)(param_1 + 0x200) + iVar5);" (assignment_expression "puVar19 = (uint *)(*(int *)(param_1 + 0x200) + iVar5)" identifier = (cast_expression "(uint *)(*(int *)(param_1 + 0x200) + iVar5)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x200) + iVar5)" ( (binary_expression "*(int *)(param_1 + 0x200) + iVar5" (pointer_expression "*(int *)(param_1 + 0x200)" * (cast_expression "(int *)(param_1 + 0x200)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x200)" ( (binary_expression "param_1 + 0x200" identifier + number_literal) )))) + identifier) )))) ;) (if_statement "if ((!bVar23 && !bVar22) == bVar23) {\n          uVar15 = *puVar19 | uVar17;\n        }\n        else {\n          uVar15 = ~uVar17 & *puVar19;\n        }" if (parenthesized_expression "((!bVar23 && !bVar22) == bVar23)" ( (binary_expression "(!bVar23 && !bVar22) == bVar23" (parenthesized_expression "(!bVar23 && !bVar22)" ( (binary_expression "!bVar23 && !bVar22" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) == identifier) )) (compound_statement "{\n          uVar15 = *puVar19 | uVar17;\n        }" { (expression_statement "uVar15 = *puVar19 | uVar17;" (assignment_expression "uVar15 = *puVar19 | uVar17" identifier = (binary_expression "*puVar19 | uVar17" (pointer_expression "*puVar19" * identifier) | identifier)) ;) }) (else_clause "else {\n          uVar15 = ~uVar17 & *puVar19;\n        }" else (compound_statement "{\n          uVar15 = ~uVar17 & *puVar19;\n        }" { (expression_statement "uVar15 = ~uVar17 & *puVar19;" (assignment_expression "uVar15 = ~uVar17 & *puVar19" identifier = (binary_expression "~uVar17 & *puVar19" (unary_expression "~uVar17" ~ identifier) & (pointer_expression "*puVar19" * identifier))) ;) }))) (expression_statement "bVar24 = uVar15 == 0;" (assignment_expression "bVar24 = uVar15 == 0" identifier = (binary_expression "uVar15 == 0" identifier == number_literal)) ;) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "*puVar19 = uVar15;" (assignment_expression "*puVar19 = uVar15" (pointer_expression "*puVar19" * identifier) = identifier) ;) (expression_statement "iVar13 = 0x10;" (assignment_expression "iVar13 = 0x10" identifier = number_literal) ;) (expression_statement "pbVar18 = (byte *)".mips16.call.fp.";" (assignment_expression "pbVar18 = (byte *)".mips16.call.fp."" identifier = (cast_expression "(byte *)".mips16.call.fp."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".mips16.call.fp."" " string_content "))) ;) (expression_statement "pbVar20 = pbVar21;" (assignment_expression "pbVar20 = pbVar21" identifier = identifier) ;) (do_statement "do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);" do (compound_statement "{\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        }" { (if_statement "if (iVar13 == 0) break;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" identifier = (binary_expression "iVar13 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar18 < *pbVar20;" (assignment_expression "bVar22 = *pbVar18 < *pbVar20" identifier = (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar24 = *pbVar18 == *pbVar20;" (assignment_expression "bVar24 = *pbVar18 == *pbVar20" identifier = (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (expression_statement "cVar14 = (!bVar22 && !bVar24) - bVar22;" (assignment_expression "cVar14 = (!bVar22 && !bVar24) - bVar22" identifier = (binary_expression "(!bVar22 && !bVar24) - bVar22" (parenthesized_expression "(!bVar22 && !bVar24)" ( (binary_expression "!bVar22 && !bVar24" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) - identifier)) ;) (expression_statement "uVar6 = CONCAT31((int3)(uVar15 >> 8),cVar14);" (assignment_expression "uVar6 = CONCAT31((int3)(uVar15 >> 8),cVar14)" identifier = (call_expression "CONCAT31((int3)(uVar15 >> 8),cVar14)" identifier (argument_list "((int3)(uVar15 >> 8),cVar14)" ( (call_expression "(int3)(uVar15 >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "(uVar15 >> 8)" ( (binary_expression "uVar15 >> 8" identifier >> number_literal) ))) , identifier )))) ;) (expression_statement "puVar19 = (uint *)(iVar5 + *(int *)(param_1 + 0x214));" (assignment_expression "puVar19 = (uint *)(iVar5 + *(int *)(param_1 + 0x214))" identifier = (cast_expression "(uint *)(iVar5 + *(int *)(param_1 + 0x214))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + *(int *)(param_1 + 0x214))" ( (binary_expression "iVar5 + *(int *)(param_1 + 0x214)" identifier + (pointer_expression "*(int *)(param_1 + 0x214)" * (cast_expression "(int *)(param_1 + 0x214)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x214)" ( (binary_expression "param_1 + 0x214" identifier + number_literal) ))))) )))) ;) (if_statement "if (cVar14 == '\0') {\n          uVar17 = uVar17 | *puVar19;\n        }\n        else {\n          uVar17 = ~uVar17 & *puVar19;\n        }" if (parenthesized_expression "(cVar14 == '\0')" ( (binary_expression "cVar14 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          uVar17 = uVar17 | *puVar19;\n        }" { (expression_statement "uVar17 = uVar17 | *puVar19;" (assignment_expression "uVar17 = uVar17 | *puVar19" identifier = (binary_expression "uVar17 | *puVar19" identifier | (pointer_expression "*puVar19" * identifier))) ;) }) (else_clause "else {\n          uVar17 = ~uVar17 & *puVar19;\n        }" else (compound_statement "{\n          uVar17 = ~uVar17 & *puVar19;\n        }" { (expression_statement "uVar17 = ~uVar17 & *puVar19;" (assignment_expression "uVar17 = ~uVar17 & *puVar19" identifier = (binary_expression "~uVar17 & *puVar19" (unary_expression "~uVar17" ~ identifier) & (pointer_expression "*puVar19" * identifier))) ;) }))) (expression_statement "bVar24 = uVar17 == 0;" (assignment_expression "bVar24 = uVar17 == 0" identifier = (binary_expression "uVar17 == 0" identifier == number_literal)) ;) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "*puVar19 = uVar17;" (assignment_expression "*puVar19 = uVar17" (pointer_expression "*puVar19" * identifier) = identifier) ;) (expression_statement "iVar5 = 5;" (assignment_expression "iVar5 = 5" identifier = number_literal) ;) (expression_statement "pbVar18 = &DAT_0044d56a;" (assignment_expression "pbVar18 = &DAT_0044d56a" identifier = (pointer_expression "&DAT_0044d56a" & identifier)) ;) (do_statement "do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar21 < *pbVar18;\n          bVar24 = *pbVar21 == *pbVar18;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);" do (compound_statement "{\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar21 < *pbVar18;\n          bVar24 = *pbVar21 == *pbVar18;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar21 < *pbVar18;" (assignment_expression "bVar22 = *pbVar21 < *pbVar18" identifier = (binary_expression "*pbVar21 < *pbVar18" (pointer_expression "*pbVar21" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "bVar24 = *pbVar21 == *pbVar18;" (assignment_expression "bVar24 = *pbVar21 == *pbVar18" identifier = (binary_expression "*pbVar21 == *pbVar18" (pointer_expression "*pbVar21" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (if_statement "if ((!bVar22 && !bVar24) == bVar22) {\n          if (*(int *)(param_1 + 0x228) != -1) goto LAB_001bbcbf;\n          *(uint *)(param_1 + 0x228) = local_28;\n        }" if (parenthesized_expression "((!bVar22 && !bVar24) == bVar22)" ( (binary_expression "(!bVar22 && !bVar24) == bVar22" (parenthesized_expression "(!bVar22 && !bVar24)" ( (binary_expression "!bVar22 && !bVar24" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) == identifier) )) (compound_statement "{\n          if (*(int *)(param_1 + 0x228) != -1) goto LAB_001bbcbf;\n          *(uint *)(param_1 + 0x228) = local_28;\n        }" { (if_statement "if (*(int *)(param_1 + 0x228) != -1) goto LAB_001bbcbf;" if (parenthesized_expression "(*(int *)(param_1 + 0x228) != -1)" ( (binary_expression "*(int *)(param_1 + 0x228) != -1" (pointer_expression "*(int *)(param_1 + 0x228)" * (cast_expression "(int *)(param_1 + 0x228)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x228)" ( (binary_expression "param_1 + 0x228" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_001bbcbf;" goto statement_identifier ;)) (expression_statement "*(uint *)(param_1 + 0x228) = local_28;" (assignment_expression "*(uint *)(param_1 + 0x228) = local_28" (pointer_expression "*(uint *)(param_1 + 0x228)" * (cast_expression "(uint *)(param_1 + 0x228)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x228)" ( (binary_expression "param_1 + 0x228" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "local_28 = local_28 + 1;" (assignment_expression "local_28 = local_28 + 1" identifier = (binary_expression "local_28 + 1" identifier + number_literal)) ;) (expression_statement "puVar19 = local_24 + 10;" (assignment_expression "puVar19 = local_24 + 10" identifier = (binary_expression "local_24 + 10" identifier + number_literal)) ;) (if_statement "if (*(uint *)(param_1 + 0x28) <= local_28) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_001bb77c;\n        }" if (parenthesized_expression "(*(uint *)(param_1 + 0x28) <= local_28)" ( (binary_expression "*(uint *)(param_1 + 0x28) <= local_28" (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n          if (bVar4) {\n            return;\n          }\n          goto LAB_001bb77c;\n        }" { (if_statement "if (bVar4) {\n            return;\n          }" if (parenthesized_expression "(bVar4)" ( identifier )) (compound_statement "{\n            return;\n          }" { (return_statement "return;" return ;) })) (goto_statement "goto LAB_001bb77c;" goto statement_identifier ;) })) (expression_statement "uVar15 = local_24[0xb];" (assignment_expression "uVar15 = local_24[0xb]" identifier = (subscript_expression "local_24[0xb]" identifier [ number_literal ])) ;) (expression_statement "pcVar16 = param_1;" (assignment_expression "pcVar16 = param_1" identifier = identifier) ;) (expression_statement "local_24 = puVar19;" (assignment_expression "local_24 = puVar19" identifier = identifier) ;) }) while (parenthesized_expression "(uVar15 == 2)" ( (binary_expression "uVar15 == 2" identifier == number_literal) )) ;) (labeled_statement "LAB_001bb8fa:\n      if (uVar15 != 3) {\n        if (uVar15 == 0x70000006) {\n          param_1[0x1e4] = param_1[0x1e4] | 4;\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          puVar10 = (undefined4 *)\n                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          *(undefined4 *)(param_1 + 0x1e0) = puVar10[5];\n          *(undefined4 *)(param_1 + 0x234) = *puVar10;\n          *(undefined4 *)(param_1 + 0x238) = puVar10[1];\n          *(undefined4 *)(param_1 + 0x23c) = puVar10[2];\n          uVar6 = puVar10[3];\n          *(undefined4 *)(param_1 + 0x240) = uVar6;\n          *(undefined4 *)(param_1 + 0x244) = puVar10[4];\n          uVar15 = local_24[1];\n          pcVar16 = param_1;\n        }\n        if (uVar15 == 0x6ffffff5) {\n          if (*(int *)(param_1 + 0x22c) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);\n          }\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          uVar6 = FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0);\n          uVar7 = FUN_003ac4d0(8);\n                    \n          FUN_00225ca0(uVar7,uVar6,uVar15);\n          *(undefined4 *)(param_1 + 0x22c) = uVar7;\n          uVar15 = local_24[1];\n          uVar6 = extraout_EDX_00;\n        }\n        if (uVar15 == 0x7000002a) {\n          if (*(int *)(param_1 + 0x230) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);\n          }\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          psVar8 = (short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          psVar9 = (short *)FUN_003ac4d0(0x18);\n          psVar9[0] = 0;\n          psVar9[1] = 0;\n          psVar9[2] = 0;\n          psVar9[3] = 0;\n          sVar2 = *psVar8;\n          psVar9[4] = 0;\n          psVar9[5] = 0;\n          psVar9[6] = 0;\n          psVar9[7] = 0;\n          psVar9[8] = 0;\n          psVar9[9] = 0;\n          psVar9[10] = 0;\n          psVar9[0xb] = 0;\n          *(short **)(param_1 + 0x230) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined4 *)(param_1 + 4);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0023b810(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((int)psVar9 + 3) = *(undefined1 *)((int)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((int)psVar9 + 5) = *(undefined1 *)((int)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((int)psVar9 + 7) = *(undefined1 *)((int)psVar8 + 7);\n          *(undefined4 *)(psVar9 + 4) = *(undefined4 *)(psVar8 + 4);\n          *(undefined4 *)(psVar9 + 6) = *(undefined4 *)(psVar8 + 6);\n          *(undefined4 *)(psVar9 + 8) = *(undefined4 *)(psVar8 + 8);\n          *(undefined4 *)(psVar9 + 10) = *(undefined4 *)(psVar8 + 10);\n          uVar15 = local_24[1];\n        }\n        if (uVar15 == 0x7000000d) {\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          pcVar11 = (char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0);\n          pcVar16 = pcVar11 + uVar15;\n          for (; pcVar11 + 8 <= pcVar16; pcVar11 = pcVar11 + bVar1) {\n            bVar1 = pcVar11[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }\n            if (*pcVar11 == '\x01') {\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }" statement_identifier : (if_statement "if (uVar15 != 3) {\n        if (uVar15 == 0x70000006) {\n          param_1[0x1e4] = param_1[0x1e4] | 4;\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          puVar10 = (undefined4 *)\n                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          *(undefined4 *)(param_1 + 0x1e0) = puVar10[5];\n          *(undefined4 *)(param_1 + 0x234) = *puVar10;\n          *(undefined4 *)(param_1 + 0x238) = puVar10[1];\n          *(undefined4 *)(param_1 + 0x23c) = puVar10[2];\n          uVar6 = puVar10[3];\n          *(undefined4 *)(param_1 + 0x240) = uVar6;\n          *(undefined4 *)(param_1 + 0x244) = puVar10[4];\n          uVar15 = local_24[1];\n          pcVar16 = param_1;\n        }\n        if (uVar15 == 0x6ffffff5) {\n          if (*(int *)(param_1 + 0x22c) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);\n          }\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          uVar6 = FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0);\n          uVar7 = FUN_003ac4d0(8);\n                    \n          FUN_00225ca0(uVar7,uVar6,uVar15);\n          *(undefined4 *)(param_1 + 0x22c) = uVar7;\n          uVar15 = local_24[1];\n          uVar6 = extraout_EDX_00;\n        }\n        if (uVar15 == 0x7000002a) {\n          if (*(int *)(param_1 + 0x230) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);\n          }\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          psVar8 = (short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          psVar9 = (short *)FUN_003ac4d0(0x18);\n          psVar9[0] = 0;\n          psVar9[1] = 0;\n          psVar9[2] = 0;\n          psVar9[3] = 0;\n          sVar2 = *psVar8;\n          psVar9[4] = 0;\n          psVar9[5] = 0;\n          psVar9[6] = 0;\n          psVar9[7] = 0;\n          psVar9[8] = 0;\n          psVar9[9] = 0;\n          psVar9[10] = 0;\n          psVar9[0xb] = 0;\n          *(short **)(param_1 + 0x230) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined4 *)(param_1 + 4);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0023b810(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((int)psVar9 + 3) = *(undefined1 *)((int)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((int)psVar9 + 5) = *(undefined1 *)((int)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((int)psVar9 + 7) = *(undefined1 *)((int)psVar8 + 7);\n          *(undefined4 *)(psVar9 + 4) = *(undefined4 *)(psVar8 + 4);\n          *(undefined4 *)(psVar9 + 6) = *(undefined4 *)(psVar8 + 6);\n          *(undefined4 *)(psVar9 + 8) = *(undefined4 *)(psVar8 + 8);\n          *(undefined4 *)(psVar9 + 10) = *(undefined4 *)(psVar8 + 10);\n          uVar15 = local_24[1];\n        }\n        if (uVar15 == 0x7000000d) {\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          pcVar11 = (char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0);\n          pcVar16 = pcVar11 + uVar15;\n          for (; pcVar11 + 8 <= pcVar16; pcVar11 = pcVar11 + bVar1) {\n            bVar1 = pcVar11[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }\n            if (*pcVar11 == '\x01') {\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }" if (parenthesized_expression "(uVar15 != 3)" ( (binary_expression "uVar15 != 3" identifier != number_literal) )) (compound_statement "{\n        if (uVar15 == 0x70000006) {\n          param_1[0x1e4] = param_1[0x1e4] | 4;\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          puVar10 = (undefined4 *)\n                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          *(undefined4 *)(param_1 + 0x1e0) = puVar10[5];\n          *(undefined4 *)(param_1 + 0x234) = *puVar10;\n          *(undefined4 *)(param_1 + 0x238) = puVar10[1];\n          *(undefined4 *)(param_1 + 0x23c) = puVar10[2];\n          uVar6 = puVar10[3];\n          *(undefined4 *)(param_1 + 0x240) = uVar6;\n          *(undefined4 *)(param_1 + 0x244) = puVar10[4];\n          uVar15 = local_24[1];\n          pcVar16 = param_1;\n        }\n        if (uVar15 == 0x6ffffff5) {\n          if (*(int *)(param_1 + 0x22c) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);\n          }\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          uVar6 = FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0);\n          uVar7 = FUN_003ac4d0(8);\n                    \n          FUN_00225ca0(uVar7,uVar6,uVar15);\n          *(undefined4 *)(param_1 + 0x22c) = uVar7;\n          uVar15 = local_24[1];\n          uVar6 = extraout_EDX_00;\n        }\n        if (uVar15 == 0x7000002a) {\n          if (*(int *)(param_1 + 0x230) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);\n          }\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          psVar8 = (short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          psVar9 = (short *)FUN_003ac4d0(0x18);\n          psVar9[0] = 0;\n          psVar9[1] = 0;\n          psVar9[2] = 0;\n          psVar9[3] = 0;\n          sVar2 = *psVar8;\n          psVar9[4] = 0;\n          psVar9[5] = 0;\n          psVar9[6] = 0;\n          psVar9[7] = 0;\n          psVar9[8] = 0;\n          psVar9[9] = 0;\n          psVar9[10] = 0;\n          psVar9[0xb] = 0;\n          *(short **)(param_1 + 0x230) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined4 *)(param_1 + 4);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0023b810(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((int)psVar9 + 3) = *(undefined1 *)((int)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((int)psVar9 + 5) = *(undefined1 *)((int)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((int)psVar9 + 7) = *(undefined1 *)((int)psVar8 + 7);\n          *(undefined4 *)(psVar9 + 4) = *(undefined4 *)(psVar8 + 4);\n          *(undefined4 *)(psVar9 + 6) = *(undefined4 *)(psVar8 + 6);\n          *(undefined4 *)(psVar9 + 8) = *(undefined4 *)(psVar8 + 8);\n          *(undefined4 *)(psVar9 + 10) = *(undefined4 *)(psVar8 + 10);\n          uVar15 = local_24[1];\n        }\n        if (uVar15 == 0x7000000d) {\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          pcVar11 = (char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0);\n          pcVar16 = pcVar11 + uVar15;\n          for (; pcVar11 + 8 <= pcVar16; pcVar11 = pcVar11 + bVar1) {\n            bVar1 = pcVar11[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }\n            if (*pcVar11 == '\x01') {\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }" { (if_statement "if (uVar15 == 0x70000006) {\n          param_1[0x1e4] = param_1[0x1e4] | 4;\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          puVar10 = (undefined4 *)\n                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          *(undefined4 *)(param_1 + 0x1e0) = puVar10[5];\n          *(undefined4 *)(param_1 + 0x234) = *puVar10;\n          *(undefined4 *)(param_1 + 0x238) = puVar10[1];\n          *(undefined4 *)(param_1 + 0x23c) = puVar10[2];\n          uVar6 = puVar10[3];\n          *(undefined4 *)(param_1 + 0x240) = uVar6;\n          *(undefined4 *)(param_1 + 0x244) = puVar10[4];\n          uVar15 = local_24[1];\n          pcVar16 = param_1;\n        }" if (parenthesized_expression "(uVar15 == 0x70000006)" ( (binary_expression "uVar15 == 0x70000006" identifier == number_literal) )) (compound_statement "{\n          param_1[0x1e4] = param_1[0x1e4] | 4;\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          puVar10 = (undefined4 *)\n                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          *(undefined4 *)(param_1 + 0x1e0) = puVar10[5];\n          *(undefined4 *)(param_1 + 0x234) = *puVar10;\n          *(undefined4 *)(param_1 + 0x238) = puVar10[1];\n          *(undefined4 *)(param_1 + 0x23c) = puVar10[2];\n          uVar6 = puVar10[3];\n          *(undefined4 *)(param_1 + 0x240) = uVar6;\n          *(undefined4 *)(param_1 + 0x244) = puVar10[4];\n          uVar15 = local_24[1];\n          pcVar16 = param_1;\n        }" { (expression_statement "param_1[0x1e4] = param_1[0x1e4] | 4;" (assignment_expression "param_1[0x1e4] = param_1[0x1e4] | 4" (subscript_expression "param_1[0x1e4]" identifier [ number_literal ]) = (binary_expression "param_1[0x1e4] | 4" (subscript_expression "param_1[0x1e4]" identifier [ number_literal ]) | number_literal)) ;) (if_statement "if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;" if (parenthesized_expression "(*(int *)(param_1 + 0x1c) == 0)" ( (binary_expression "*(int *)(param_1 + 0x1c) == 0" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_001bbcba;" goto statement_identifier ;)) (expression_statement "puVar10 = (undefined4 *)\n                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0);" (assignment_expression "puVar10 = (undefined4 *)\n                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0)" identifier = (cast_expression "(undefined4 *)\n                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0)" identifier (argument_list "(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0)" ( (binary_expression "*(int *)(param_1 + 0x1c) + 0x1c" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) + number_literal) , (pointer_expression "*(undefined4 *)(param_1 + 0x20)" * (cast_expression "(undefined4 *)(param_1 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x24)" * (cast_expression "(undefined4 *)(param_1 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) , (subscript_expression "local_24[4]" identifier [ number_literal ]) , (binary_expression "(int)local_24[4] >> 0x1f" (cast_expression "(int)local_24[4]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_24[4]" identifier [ number_literal ])) >> number_literal) , (subscript_expression "local_24[5]" identifier [ number_literal ]) , number_literal , number_literal ))))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x1e0) = puVar10[5];" (assignment_expression "*(undefined4 *)(param_1 + 0x1e0) = puVar10[5]" (pointer_expression "*(undefined4 *)(param_1 + 0x1e0)" * (cast_expression "(undefined4 *)(param_1 + 0x1e0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1e0)" ( (binary_expression "param_1 + 0x1e0" identifier + number_literal) )))) = (subscript_expression "puVar10[5]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(param_1 + 0x234) = *puVar10;" (assignment_expression "*(undefined4 *)(param_1 + 0x234) = *puVar10" (pointer_expression "*(undefined4 *)(param_1 + 0x234)" * (cast_expression "(undefined4 *)(param_1 + 0x234)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x234)" ( (binary_expression "param_1 + 0x234" identifier + number_literal) )))) = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "*(undefined4 *)(param_1 + 0x238) = puVar10[1];" (assignment_expression "*(undefined4 *)(param_1 + 0x238) = puVar10[1]" (pointer_expression "*(undefined4 *)(param_1 + 0x238)" * (cast_expression "(undefined4 *)(param_1 + 0x238)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x238)" ( (binary_expression "param_1 + 0x238" identifier + number_literal) )))) = (subscript_expression "puVar10[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(param_1 + 0x23c) = puVar10[2];" (assignment_expression "*(undefined4 *)(param_1 + 0x23c) = puVar10[2]" (pointer_expression "*(undefined4 *)(param_1 + 0x23c)" * (cast_expression "(undefined4 *)(param_1 + 0x23c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x23c)" ( (binary_expression "param_1 + 0x23c" identifier + number_literal) )))) = (subscript_expression "puVar10[2]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = puVar10[3];" (assignment_expression "uVar6 = puVar10[3]" identifier = (subscript_expression "puVar10[3]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(param_1 + 0x240) = uVar6;" (assignment_expression "*(undefined4 *)(param_1 + 0x240) = uVar6" (pointer_expression "*(undefined4 *)(param_1 + 0x240)" * (cast_expression "(undefined4 *)(param_1 + 0x240)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x240)" ( (binary_expression "param_1 + 0x240" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(param_1 + 0x244) = puVar10[4];" (assignment_expression "*(undefined4 *)(param_1 + 0x244) = puVar10[4]" (pointer_expression "*(undefined4 *)(param_1 + 0x244)" * (cast_expression "(undefined4 *)(param_1 + 0x244)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x244)" ( (binary_expression "param_1 + 0x244" identifier + number_literal) )))) = (subscript_expression "puVar10[4]" identifier [ number_literal ])) ;) (expression_statement "uVar15 = local_24[1];" (assignment_expression "uVar15 = local_24[1]" identifier = (subscript_expression "local_24[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar16 = param_1;" (assignment_expression "pcVar16 = param_1" identifier = identifier) ;) })) (if_statement "if (uVar15 == 0x6ffffff5) {\n          if (*(int *)(param_1 + 0x22c) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);\n          }\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          uVar6 = FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0);\n          uVar7 = FUN_003ac4d0(8);\n                    \n          FUN_00225ca0(uVar7,uVar6,uVar15);\n          *(undefined4 *)(param_1 + 0x22c) = uVar7;\n          uVar15 = local_24[1];\n          uVar6 = extraout_EDX_00;\n        }" if (parenthesized_expression "(uVar15 == 0x6ffffff5)" ( (binary_expression "uVar15 == 0x6ffffff5" identifier == number_literal) )) (compound_statement "{\n          if (*(int *)(param_1 + 0x22c) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);\n          }\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          uVar6 = FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0);\n          uVar7 = FUN_003ac4d0(8);\n                    \n          FUN_00225ca0(uVar7,uVar6,uVar15);\n          *(undefined4 *)(param_1 + 0x22c) = uVar7;\n          uVar15 = local_24[1];\n          uVar6 = extraout_EDX_00;\n        }" { (if_statement "if (*(int *)(param_1 + 0x22c) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);\n          }" if (parenthesized_expression "(*(int *)(param_1 + 0x22c) != 0)" ( (binary_expression "*(int *)(param_1 + 0x22c) != 0" (pointer_expression "*(int *)(param_1 + 0x22c)" * (cast_expression "(int *)(param_1 + 0x22c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x22c)" ( (binary_expression "param_1 + 0x22c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);\n          }" { (expression_statement "FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);" (call_expression "FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16)" identifier (argument_list "("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16)" ( (string_literal ""../../gold/mips.cc"" " string_content ") , number_literal , (string_literal ""do_read_symbols"" " string_content ") , identifier ))) ;) })) (expression_statement "uVar15 = local_24[5];" (assignment_expression "uVar15 = local_24[5]" identifier = (subscript_expression "local_24[5]" identifier [ number_literal ])) ;) (if_statement "if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;" if (parenthesized_expression "(*(int *)(param_1 + 0x1c) == 0)" ( (binary_expression "*(int *)(param_1 + 0x1c) == 0" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_001bbcba;" goto statement_identifier ;)) (expression_statement "uVar6 = FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0);" (assignment_expression "uVar6 = FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0)" identifier = (call_expression "FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0)" identifier (argument_list "(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0)" ( (binary_expression "*(int *)(param_1 + 0x1c) + 0x1c" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) + number_literal) , (pointer_expression "*(undefined4 *)(param_1 + 0x20)" * (cast_expression "(undefined4 *)(param_1 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x24)" * (cast_expression "(undefined4 *)(param_1 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) , (subscript_expression "local_24[4]" identifier [ number_literal ]) , (binary_expression "(int)local_24[4] >> 0x1f" (cast_expression "(int)local_24[4]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_24[4]" identifier [ number_literal ])) >> number_literal) , identifier , number_literal , number_literal )))) ;) (expression_statement "uVar7 = FUN_003ac4d0(8);" (assignment_expression "uVar7 = FUN_003ac4d0(8)" identifier = (call_expression "FUN_003ac4d0(8)" identifier (argument_list "(8)" ( number_literal )))) ;) (expression_statement "FUN_00225ca0(uVar7,uVar6,uVar15);" (call_expression "FUN_00225ca0(uVar7,uVar6,uVar15)" identifier (argument_list "(uVar7,uVar6,uVar15)" ( identifier , identifier , identifier ))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x22c) = uVar7;" (assignment_expression "*(undefined4 *)(param_1 + 0x22c) = uVar7" (pointer_expression "*(undefined4 *)(param_1 + 0x22c)" * (cast_expression "(undefined4 *)(param_1 + 0x22c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x22c)" ( (binary_expression "param_1 + 0x22c" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar15 = local_24[1];" (assignment_expression "uVar15 = local_24[1]" identifier = (subscript_expression "local_24[1]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = extraout_EDX_00;" (assignment_expression "uVar6 = extraout_EDX_00" identifier = identifier) ;) })) (if_statement "if (uVar15 == 0x7000002a) {\n          if (*(int *)(param_1 + 0x230) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);\n          }\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          psVar8 = (short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          psVar9 = (short *)FUN_003ac4d0(0x18);\n          psVar9[0] = 0;\n          psVar9[1] = 0;\n          psVar9[2] = 0;\n          psVar9[3] = 0;\n          sVar2 = *psVar8;\n          psVar9[4] = 0;\n          psVar9[5] = 0;\n          psVar9[6] = 0;\n          psVar9[7] = 0;\n          psVar9[8] = 0;\n          psVar9[9] = 0;\n          psVar9[10] = 0;\n          psVar9[0xb] = 0;\n          *(short **)(param_1 + 0x230) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined4 *)(param_1 + 4);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0023b810(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((int)psVar9 + 3) = *(undefined1 *)((int)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((int)psVar9 + 5) = *(undefined1 *)((int)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((int)psVar9 + 7) = *(undefined1 *)((int)psVar8 + 7);\n          *(undefined4 *)(psVar9 + 4) = *(undefined4 *)(psVar8 + 4);\n          *(undefined4 *)(psVar9 + 6) = *(undefined4 *)(psVar8 + 6);\n          *(undefined4 *)(psVar9 + 8) = *(undefined4 *)(psVar8 + 8);\n          *(undefined4 *)(psVar9 + 10) = *(undefined4 *)(psVar8 + 10);\n          uVar15 = local_24[1];\n        }" if (parenthesized_expression "(uVar15 == 0x7000002a)" ( (binary_expression "uVar15 == 0x7000002a" identifier == number_literal) )) (compound_statement "{\n          if (*(int *)(param_1 + 0x230) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);\n          }\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          psVar8 = (short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          psVar9 = (short *)FUN_003ac4d0(0x18);\n          psVar9[0] = 0;\n          psVar9[1] = 0;\n          psVar9[2] = 0;\n          psVar9[3] = 0;\n          sVar2 = *psVar8;\n          psVar9[4] = 0;\n          psVar9[5] = 0;\n          psVar9[6] = 0;\n          psVar9[7] = 0;\n          psVar9[8] = 0;\n          psVar9[9] = 0;\n          psVar9[10] = 0;\n          psVar9[0xb] = 0;\n          *(short **)(param_1 + 0x230) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined4 *)(param_1 + 4);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0023b810(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((int)psVar9 + 3) = *(undefined1 *)((int)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((int)psVar9 + 5) = *(undefined1 *)((int)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((int)psVar9 + 7) = *(undefined1 *)((int)psVar8 + 7);\n          *(undefined4 *)(psVar9 + 4) = *(undefined4 *)(psVar8 + 4);\n          *(undefined4 *)(psVar9 + 6) = *(undefined4 *)(psVar8 + 6);\n          *(undefined4 *)(psVar9 + 8) = *(undefined4 *)(psVar8 + 8);\n          *(undefined4 *)(psVar9 + 10) = *(undefined4 *)(psVar8 + 10);\n          uVar15 = local_24[1];\n        }" { (if_statement "if (*(int *)(param_1 + 0x230) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);\n          }" if (parenthesized_expression "(*(int *)(param_1 + 0x230) != 0)" ( (binary_expression "*(int *)(param_1 + 0x230) != 0" (pointer_expression "*(int *)(param_1 + 0x230)" * (cast_expression "(int *)(param_1 + 0x230)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x230)" ( (binary_expression "param_1 + 0x230" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);\n          }" { (expression_statement "FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);" (call_expression "FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6)" identifier (argument_list "("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6)" ( (string_literal ""../../gold/mips.cc"" " string_content ") , number_literal , (string_literal ""do_read_symbols"" " string_content ") , identifier ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;" if (parenthesized_expression "(*(int *)(param_1 + 0x1c) == 0)" ( (binary_expression "*(int *)(param_1 + 0x1c) == 0" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_001bbcba;" goto statement_identifier ;)) (expression_statement "psVar8 = (short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0);" (assignment_expression "psVar8 = (short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0)" identifier = (cast_expression "(short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0)" identifier (argument_list "(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0)" ( (binary_expression "*(int *)(param_1 + 0x1c) + 0x1c" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) + number_literal) , (pointer_expression "*(undefined4 *)(param_1 + 0x20)" * (cast_expression "(undefined4 *)(param_1 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x24)" * (cast_expression "(undefined4 *)(param_1 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) , (subscript_expression "local_24[4]" identifier [ number_literal ]) , (binary_expression "(int)local_24[4] >> 0x1f" (cast_expression "(int)local_24[4]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_24[4]" identifier [ number_literal ])) >> number_literal) , (subscript_expression "local_24[5]" identifier [ number_literal ]) , number_literal , number_literal ))))) ;) (expression_statement "psVar9 = (short *)FUN_003ac4d0(0x18);" (assignment_expression "psVar9 = (short *)FUN_003ac4d0(0x18)" identifier = (cast_expression "(short *)FUN_003ac4d0(0x18)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_003ac4d0(0x18)" identifier (argument_list "(0x18)" ( number_literal ))))) ;) (expression_statement "psVar9[0] = 0;" (assignment_expression "psVar9[0] = 0" (subscript_expression "psVar9[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "psVar9[1] = 0;" (assignment_expression "psVar9[1] = 0" (subscript_expression "psVar9[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "psVar9[2] = 0;" (assignment_expression "psVar9[2] = 0" (subscript_expression "psVar9[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "psVar9[3] = 0;" (assignment_expression "psVar9[3] = 0" (subscript_expression "psVar9[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "sVar2 = *psVar8;" (assignment_expression "sVar2 = *psVar8" identifier = (pointer_expression "*psVar8" * identifier)) ;) (expression_statement "psVar9[4] = 0;" (assignment_expression "psVar9[4] = 0" (subscript_expression "psVar9[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "psVar9[5] = 0;" (assignment_expression "psVar9[5] = 0" (subscript_expression "psVar9[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "psVar9[6] = 0;" (assignment_expression "psVar9[6] = 0" (subscript_expression "psVar9[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "psVar9[7] = 0;" (assignment_expression "psVar9[7] = 0" (subscript_expression "psVar9[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "psVar9[8] = 0;" (assignment_expression "psVar9[8] = 0" (subscript_expression "psVar9[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "psVar9[9] = 0;" (assignment_expression "psVar9[9] = 0" (subscript_expression "psVar9[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "psVar9[10] = 0;" (assignment_expression "psVar9[10] = 0" (subscript_expression "psVar9[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "psVar9[0xb] = 0;" (assignment_expression "psVar9[0xb] = 0" (subscript_expression "psVar9[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(short **)(param_1 + 0x230) = psVar9;" (assignment_expression "*(short **)(param_1 + 0x230) = psVar9" (pointer_expression "*(short **)(param_1 + 0x230)" * (cast_expression "(short **)(param_1 + 0x230)" ( (type_descriptor "short **" (sized_type_specifier "short" short) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x230)" ( (binary_expression "param_1 + 0x230" identifier + number_literal) )))) = identifier) ;) (expression_statement "*psVar9 = sVar2;" (assignment_expression "*psVar9 = sVar2" (pointer_expression "*psVar9" * identifier) = identifier) ;) (if_statement "if (sVar2 != 0) {\n            uVar6 = *(undefined4 *)(param_1 + 4);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0023b810(uVar7,uVar6,sVar2);\n            return;\n          }" if (parenthesized_expression "(sVar2 != 0)" ( (binary_expression "sVar2 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar6 = *(undefined4 *)(param_1 + 4);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0023b810(uVar7,uVar6,sVar2);\n            return;\n          }" { (expression_statement "uVar6 = *(undefined4 *)(param_1 + 4);" (assignment_expression "uVar6 = *(undefined4 *)(param_1 + 4)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");" (assignment_expression "uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u")" identifier = (call_expression "gettext("%s: .MIPS.abiflags section has unsupported version %u")" identifier (argument_list "("%s: .MIPS.abiflags section has unsupported version %u")" ( (string_literal ""%s: .MIPS.abiflags section has unsupported version %u"" " string_content ") )))) ;) (expression_statement "FUN_0023b810(uVar7,uVar6,sVar2);" (call_expression "FUN_0023b810(uVar7,uVar6,sVar2)" identifier (argument_list "(uVar7,uVar6,sVar2)" ( identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "*(char *)(psVar9 + 1) = (char)psVar8[1];" (assignment_expression "*(char *)(psVar9 + 1) = (char)psVar8[1]" (pointer_expression "*(char *)(psVar9 + 1)" * (cast_expression "(char *)(psVar9 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psVar9 + 1)" ( (binary_expression "psVar9 + 1" identifier + number_literal) )))) = (cast_expression "(char)psVar8[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "psVar8[1]" identifier [ number_literal ]))) ;) (expression_statement "*(undefined1 *)((int)psVar9 + 3) = *(undefined1 *)((int)psVar8 + 3);" (assignment_expression "*(undefined1 *)((int)psVar9 + 3) = *(undefined1 *)((int)psVar8 + 3)" (pointer_expression "*(undefined1 *)((int)psVar9 + 3)" * (cast_expression "(undefined1 *)((int)psVar9 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar9 + 3)" ( (binary_expression "(int)psVar9 + 3" (cast_expression "(int)psVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((int)psVar8 + 3)" * (cast_expression "(undefined1 *)((int)psVar8 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar8 + 3)" ( (binary_expression "(int)psVar8 + 3" (cast_expression "(int)psVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(char *)(psVar9 + 2) = (char)psVar8[2];" (assignment_expression "*(char *)(psVar9 + 2) = (char)psVar8[2]" (pointer_expression "*(char *)(psVar9 + 2)" * (cast_expression "(char *)(psVar9 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psVar9 + 2)" ( (binary_expression "psVar9 + 2" identifier + number_literal) )))) = (cast_expression "(char)psVar8[2]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "psVar8[2]" identifier [ number_literal ]))) ;) (expression_statement "*(undefined1 *)((int)psVar9 + 5) = *(undefined1 *)((int)psVar8 + 5);" (assignment_expression "*(undefined1 *)((int)psVar9 + 5) = *(undefined1 *)((int)psVar8 + 5)" (pointer_expression "*(undefined1 *)((int)psVar9 + 5)" * (cast_expression "(undefined1 *)((int)psVar9 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar9 + 5)" ( (binary_expression "(int)psVar9 + 5" (cast_expression "(int)psVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((int)psVar8 + 5)" * (cast_expression "(undefined1 *)((int)psVar8 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar8 + 5)" ( (binary_expression "(int)psVar8 + 5" (cast_expression "(int)psVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(char *)(psVar9 + 3) = (char)psVar8[3];" (assignment_expression "*(char *)(psVar9 + 3) = (char)psVar8[3]" (pointer_expression "*(char *)(psVar9 + 3)" * (cast_expression "(char *)(psVar9 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psVar9 + 3)" ( (binary_expression "psVar9 + 3" identifier + number_literal) )))) = (cast_expression "(char)psVar8[3]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "psVar8[3]" identifier [ number_literal ]))) ;) (expression_statement "*(undefined1 *)((int)psVar9 + 7) = *(undefined1 *)((int)psVar8 + 7);" (assignment_expression "*(undefined1 *)((int)psVar9 + 7) = *(undefined1 *)((int)psVar8 + 7)" (pointer_expression "*(undefined1 *)((int)psVar9 + 7)" * (cast_expression "(undefined1 *)((int)psVar9 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar9 + 7)" ( (binary_expression "(int)psVar9 + 7" (cast_expression "(int)psVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((int)psVar8 + 7)" * (cast_expression "(undefined1 *)((int)psVar8 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar8 + 7)" ( (binary_expression "(int)psVar8 + 7" (cast_expression "(int)psVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(psVar9 + 4) = *(undefined4 *)(psVar8 + 4);" (assignment_expression "*(undefined4 *)(psVar9 + 4) = *(undefined4 *)(psVar8 + 4)" (pointer_expression "*(undefined4 *)(psVar9 + 4)" * (cast_expression "(undefined4 *)(psVar9 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psVar9 + 4)" ( (binary_expression "psVar9 + 4" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(psVar8 + 4)" * (cast_expression "(undefined4 *)(psVar8 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psVar8 + 4)" ( (binary_expression "psVar8 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(psVar9 + 6) = *(undefined4 *)(psVar8 + 6);" (assignment_expression "*(undefined4 *)(psVar9 + 6) = *(undefined4 *)(psVar8 + 6)" (pointer_expression "*(undefined4 *)(psVar9 + 6)" * (cast_expression "(undefined4 *)(psVar9 + 6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psVar9 + 6)" ( (binary_expression "psVar9 + 6" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(psVar8 + 6)" * (cast_expression "(undefined4 *)(psVar8 + 6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psVar8 + 6)" ( (binary_expression "psVar8 + 6" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(psVar9 + 8) = *(undefined4 *)(psVar8 + 8);" (assignment_expression "*(undefined4 *)(psVar9 + 8) = *(undefined4 *)(psVar8 + 8)" (pointer_expression "*(undefined4 *)(psVar9 + 8)" * (cast_expression "(undefined4 *)(psVar9 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psVar9 + 8)" ( (binary_expression "psVar9 + 8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(psVar8 + 8)" * (cast_expression "(undefined4 *)(psVar8 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psVar8 + 8)" ( (binary_expression "psVar8 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(psVar9 + 10) = *(undefined4 *)(psVar8 + 10);" (assignment_expression "*(undefined4 *)(psVar9 + 10) = *(undefined4 *)(psVar8 + 10)" (pointer_expression "*(undefined4 *)(psVar9 + 10)" * (cast_expression "(undefined4 *)(psVar9 + 10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psVar9 + 10)" ( (binary_expression "psVar9 + 10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(psVar8 + 10)" * (cast_expression "(undefined4 *)(psVar8 + 10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psVar8 + 10)" ( (binary_expression "psVar8 + 10" identifier + number_literal) ))))) ;) (expression_statement "uVar15 = local_24[1];" (assignment_expression "uVar15 = local_24[1]" identifier = (subscript_expression "local_24[1]" identifier [ number_literal ])) ;) })) (if_statement "if (uVar15 == 0x7000000d) {\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          pcVar11 = (char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0);\n          pcVar16 = pcVar11 + uVar15;\n          for (; pcVar11 + 8 <= pcVar16; pcVar11 = pcVar11 + bVar1) {\n            bVar1 = pcVar11[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }\n            if (*pcVar11 == '\x01') {\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }\n          }\n        }" if (parenthesized_expression "(uVar15 == 0x7000000d)" ( (binary_expression "uVar15 == 0x7000000d" identifier == number_literal) )) (compound_statement "{\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          pcVar11 = (char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0);\n          pcVar16 = pcVar11 + uVar15;\n          for (; pcVar11 + 8 <= pcVar16; pcVar11 = pcVar11 + bVar1) {\n            bVar1 = pcVar11[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }\n            if (*pcVar11 == '\x01') {\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }\n          }\n        }" { (expression_statement "uVar15 = local_24[5];" (assignment_expression "uVar15 = local_24[5]" identifier = (subscript_expression "local_24[5]" identifier [ number_literal ])) ;) (if_statement "if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;" if (parenthesized_expression "(*(int *)(param_1 + 0x1c) == 0)" ( (binary_expression "*(int *)(param_1 + 0x1c) == 0" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_001bbcba;" goto statement_identifier ;)) (expression_statement "pcVar11 = (char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0);" (assignment_expression "pcVar11 = (char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0)" identifier = (cast_expression "(char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0)" identifier (argument_list "(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0)" ( (binary_expression "*(int *)(param_1 + 0x1c) + 0x1c" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) + number_literal) , (pointer_expression "*(undefined4 *)(param_1 + 0x20)" * (cast_expression "(undefined4 *)(param_1 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x24)" * (cast_expression "(undefined4 *)(param_1 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) , (subscript_expression "local_24[4]" identifier [ number_literal ]) , (binary_expression "(int)local_24[4] >> 0x1f" (cast_expression "(int)local_24[4]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_24[4]" identifier [ number_literal ])) >> number_literal) , identifier , number_literal , number_literal ))))) ;) (expression_statement "pcVar16 = pcVar11 + uVar15;" (assignment_expression "pcVar16 = pcVar11 + uVar15" identifier = (binary_expression "pcVar11 + uVar15" identifier + identifier)) ;) (for_statement "for (; pcVar11 + 8 <= pcVar16; pcVar11 = pcVar11 + bVar1) {\n            bVar1 = pcVar11[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }\n            if (*pcVar11 == '\x01') {\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }\n          }" for ( ; (binary_expression "pcVar11 + 8 <= pcVar16" (binary_expression "pcVar11 + 8" identifier + number_literal) <= identifier) ; (assignment_expression "pcVar11 = pcVar11 + bVar1" identifier = (binary_expression "pcVar11 + bVar1" identifier + identifier)) ) (compound_statement "{\n            bVar1 = pcVar11[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }\n            if (*pcVar11 == '\x01') {\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }\n          }" { (expression_statement "bVar1 = pcVar11[1];" (assignment_expression "bVar1 = pcVar11[1]" identifier = (subscript_expression "pcVar11[1]" identifier [ number_literal ])) ;) (if_statement "if (bVar1 < 8) {\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }" if (parenthesized_expression "(bVar1 < 8)" ( (binary_expression "bVar1 < 8" identifier < number_literal) )) (compound_statement "{\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }" { (expression_statement "uVar6 = *(undefined4 *)(param_1 + 4);" (assignment_expression "uVar6 = *(undefined4 *)(param_1 + 4)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "pcVar16 = ".MIPS.options";" (assignment_expression "pcVar16 = ".MIPS.options"" identifier = (string_literal "".MIPS.options"" " string_content ")) ;) (if_statement "if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }" if (parenthesized_expression "((param_1[0x1e4] & 2U) == 0)" ( (binary_expression "(param_1[0x1e4] & 2U) == 0" (parenthesized_expression "(param_1[0x1e4] & 2U)" ( (binary_expression "param_1[0x1e4] & 2U" (subscript_expression "param_1[0x1e4]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n                pcVar16 = ".options";\n              }" { (expression_statement "pcVar16 = ".options";" (assignment_expression "pcVar16 = ".options"" identifier = (string_literal "".options"" " string_content ")) ;) })) (expression_statement "uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");" (assignment_expression "uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header")" identifier = (call_expression "gettext("%s: Warning: bad `%s\' option size %u smaller than its header")" identifier (argument_list "("%s: Warning: bad `%s\' option size %u smaller than its header")" ( (string_literal ""%s: Warning: bad `%s\' option size %u smaller than its header"" " string_content escape_sequence string_content ") )))) ;) (expression_statement "FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);" (call_expression "FUN_0023b810(uVar7,uVar6,pcVar16,bVar1)" identifier (argument_list "(uVar7,uVar6,pcVar16,bVar1)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" identifier = true) ;) (goto_statement "goto LAB_001bba8f;" goto statement_identifier ;) })) (if_statement "if (*pcVar11 == '\x01') {\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }" if (parenthesized_expression "(*pcVar11 == '\x01')" ( (binary_expression "*pcVar11 == '\x01'" (pointer_expression "*pcVar11" * identifier) == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }" { (expression_statement "*(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);" (assignment_expression "*(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c)" (pointer_expression "*(undefined4 *)(param_1 + 0x1e0)" * (cast_expression "(undefined4 *)(param_1 + 0x1e0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1e0)" ( (binary_expression "param_1 + 0x1e0" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(pcVar11 + 0x1c)" * (cast_expression "(undefined4 *)(pcVar11 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x1c)" ( (binary_expression "pcVar11 + 0x1c" identifier + number_literal) ))))) ;) })) })) })) (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" identifier = true) ;) }))) (goto_statement "goto LAB_001bba8f;" goto statement_identifier ;) })) }) (else_clause "else if (iVar5 != 2) {\n                    \n    FUN_002446e0("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }" else (if_statement "if (iVar5 != 2) {\n                    \n    FUN_002446e0("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }" if (parenthesized_expression "(iVar5 != 2)" ( (binary_expression "iVar5 != 2" identifier != number_literal) )) (compound_statement "{\n                    \n    FUN_002446e0("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }" { (expression_statement "FUN_002446e0("../../gold/mips.cc",0x1a9a,"do_read_symbols");" (call_expression "FUN_002446e0("../../gold/mips.cc",0x1a9a,"do_read_symbols")" identifier (argument_list "("../../gold/mips.cc",0x1a9a,"do_read_symbols")" ( (string_literal ""../../gold/mips.cc"" " string_content ") , number_literal , (string_literal ""do_read_symbols"" " string_content ") ))) ;) })))) (labeled_statement "LAB_001bb77c:\n  param_1[0x1e4] = param_1[0x1e4] & 0xf7;" statement_identifier : (expression_statement "param_1[0x1e4] = param_1[0x1e4] & 0xf7;" (assignment_expression "param_1[0x1e4] = param_1[0x1e4] & 0xf7" (subscript_expression "param_1[0x1e4]" identifier [ number_literal ]) = (binary_expression "param_1[0x1e4] & 0xf7" (subscript_expression "param_1[0x1e4]" identifier [ number_literal ]) & number_literal)) ;)) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration (sized_type_specifier short) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier short) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier short) (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , LIT , LIT , LIT )))) ;) (expression_statement (assignment_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 *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT ))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (pointer_expression * IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & (unary_expression ~ IDENT))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | IDENT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) | IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression ~ IDENT) & (pointer_expression * IDENT))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) - IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (pointer_expression * IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression ~ IDENT) & (pointer_expression * IDENT))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (return_statement return ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT == LIT) )) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) | LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (subscript_expression IDENT [ LIT ]) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) >> LIT) , (subscript_expression IDENT [ LIT ]) , LIT , LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (subscript_expression IDENT [ LIT ]) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) >> LIT) , IDENT , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (subscript_expression IDENT [ LIT ]) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) >> LIT) , (subscript_expression IDENT [ LIT ]) , LIT , LIT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (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) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (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) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (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) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_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 (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 (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 (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 = (subscript_expression IDENT [ LIT ])) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (subscript_expression IDENT [ LIT ]) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) >> LIT) , IDENT , LIT , LIT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (for_statement for ( ; (binary_expression (binary_expression IDENT + LIT) <= IDENT) ; (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_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 = BOOL) ;) }))) (goto_statement goto statement_identifier ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) & LIT)) ;)) (return_statement return ;) })))
(function_definition "void FUN_001bb730(char *param_1,int *param_2)\n\n{\n  byte bVar1;\n  short sVar2;\n  uint uVar3;\n  bool bVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  short *psVar8;\n  short *psVar9;\n  undefined4 *puVar10;\n  char *pcVar11;\n  uint uVar12;\n  int iVar13;\n  char cVar14;\n  undefined4 extraout_EDX;\n  undefined4 extraout_EDX_00;\n  uint uVar15;\n  char *pcVar16;\n  uint uVar17;\n  byte *pbVar18;\n  uint *puVar19;\n  byte *pbVar20;\n  byte *pbVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  uint local_28;\n  uint *local_24;\n  \n  bVar25 = 0;\n  FUN_002b3240(param_1,param_2);\n  if (*(int *)(param_1 + 0x1c) == 0) {\nLAB_001bbcba:\n    FUN_00175c50();\nLAB_001bbcbf:\n                    \n    FUN_002446e0("../../gold/mips.cc",0x1b6f,"do_read_symbols");\n  }\n  iVar5 = *(int *)(*(int *)(param_1 + 0x1c) + 0x90);\n  if (iVar5 == 1) {\n    iVar5 = FUN_001cc8a0(param_1,0,0,0x34,1,0);\n    *(undefined4 *)(param_1 + 0x13c) = *(undefined4 *)(iVar5 + 0x24);\n    uVar3 = *(uint *)(param_2[1] + 8);\n    FUN_00104420(param_1 + 0x1ec,*(undefined4 *)(param_1 + 0x28),0);\n    FUN_00104420(param_1 + 0x200,*(undefined4 *)(param_1 + 0x28),0);\n    FUN_00104420(param_1 + 0x214,*(undefined4 *)(param_1 + 0x28),0);\n    bVar4 = false;\n    local_24 = (uint *)(*(int *)(*param_2 + 8) + 0x28);\n    if (1 < *(uint *)(param_1 + 0x28)) {\n      uVar15 = *(uint *)(*(int *)(*param_2 + 8) + 0x2c);\n      local_28 = 1;\n      uVar6 = extraout_EDX;\n      pcVar16 = ".MIPS.options";\n      if (uVar15 != 2) goto LAB_001bb8fa;\n      local_28 = 1;\n      do {\n        if (0x10 < local_24[5]) {\n          bVar4 = true;\n        }\nLAB_001bba8f:\n        iVar5 = 10;\n        bVar22 = CARRY4(uVar3,*local_24);\n        pbVar21 = (byte *)(uVar3 + *local_24);\n        bVar24 = pbVar21 == (byte *)0x0;\n        pbVar18 = (byte *)".mips16.fn";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        iVar5 = (local_28 >> 5) * 4;\n        uVar17 = 1 << ((byte)local_28 & 0x1f);\n        uVar15 = *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        uVar12 = uVar15 & ~uVar17;\n        if (bVar22) {\n          uVar12 = uVar15 | uVar17;\n        }\n        *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5) = uVar12;\n        iVar13 = 0xd;\n        pbVar18 = (byte *)".mips16.call.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        puVar19 = (uint *)(*(int *)(param_1 + 0x200) + iVar5);\n        if ((!bVar23 && !bVar22) == bVar23) {\n          uVar15 = *puVar19 | uVar17;\n        }\n        else {\n          uVar15 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar15 == 0;\n        bVar22 = false;\n        *puVar19 = uVar15;\n        iVar13 = 0x10;\n        pbVar18 = (byte *)".mips16.call.fp.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        cVar14 = (!bVar22 && !bVar24) - bVar22;\n        uVar6 = CONCAT31((int3)(uVar15 >> 8),cVar14);\n        puVar19 = (uint *)(iVar5 + *(int *)(param_1 + 0x214));\n        if (cVar14 == '\0') {\n          uVar17 = uVar17 | *puVar19;\n        }\n        else {\n          uVar17 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar17 == 0;\n        bVar22 = false;\n        *puVar19 = uVar17;\n        iVar5 = 5;\n        pbVar18 = &DAT_0044d56a;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar21 < *pbVar18;\n          bVar24 = *pbVar21 == *pbVar18;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        if ((!bVar22 && !bVar24) == bVar22) {\n          if (*(int *)(param_1 + 0x228) != -1) goto LAB_001bbcbf;\n          *(uint *)(param_1 + 0x228) = local_28;\n        }\n        local_28 = local_28 + 1;\n        puVar19 = local_24 + 10;\n        if (*(uint *)(param_1 + 0x28) <= local_28) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_001bb77c;\n        }\n        uVar15 = local_24[0xb];\n        pcVar16 = param_1;\n        local_24 = puVar19;\n      } while (uVar15 == 2);\nLAB_001bb8fa:\n      if (uVar15 != 3) {\n        if (uVar15 == 0x70000006) {\n          param_1[0x1e4] = param_1[0x1e4] | 4;\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          puVar10 = (undefined4 *)\n                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          *(undefined4 *)(param_1 + 0x1e0) = puVar10[5];\n          *(undefined4 *)(param_1 + 0x234) = *puVar10;\n          *(undefined4 *)(param_1 + 0x238) = puVar10[1];\n          *(undefined4 *)(param_1 + 0x23c) = puVar10[2];\n          uVar6 = puVar10[3];\n          *(undefined4 *)(param_1 + 0x240) = uVar6;\n          *(undefined4 *)(param_1 + 0x244) = puVar10[4];\n          uVar15 = local_24[1];\n          pcVar16 = param_1;\n        }\n        if (uVar15 == 0x6ffffff5) {\n          if (*(int *)(param_1 + 0x22c) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);\n          }\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          uVar6 = FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0);\n          uVar7 = FUN_003ac4d0(8);\n                    \n          FUN_00225ca0(uVar7,uVar6,uVar15);\n          *(undefined4 *)(param_1 + 0x22c) = uVar7;\n          uVar15 = local_24[1];\n          uVar6 = extraout_EDX_00;\n        }\n        if (uVar15 == 0x7000002a) {\n          if (*(int *)(param_1 + 0x230) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);\n          }\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          psVar8 = (short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          psVar9 = (short *)FUN_003ac4d0(0x18);\n          psVar9[0] = 0;\n          psVar9[1] = 0;\n          psVar9[2] = 0;\n          psVar9[3] = 0;\n          sVar2 = *psVar8;\n          psVar9[4] = 0;\n          psVar9[5] = 0;\n          psVar9[6] = 0;\n          psVar9[7] = 0;\n          psVar9[8] = 0;\n          psVar9[9] = 0;\n          psVar9[10] = 0;\n          psVar9[0xb] = 0;\n          *(short **)(param_1 + 0x230) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined4 *)(param_1 + 4);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0023b810(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((int)psVar9 + 3) = *(undefined1 *)((int)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((int)psVar9 + 5) = *(undefined1 *)((int)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((int)psVar9 + 7) = *(undefined1 *)((int)psVar8 + 7);\n          *(undefined4 *)(psVar9 + 4) = *(undefined4 *)(psVar8 + 4);\n          *(undefined4 *)(psVar9 + 6) = *(undefined4 *)(psVar8 + 6);\n          *(undefined4 *)(psVar9 + 8) = *(undefined4 *)(psVar8 + 8);\n          *(undefined4 *)(psVar9 + 10) = *(undefined4 *)(psVar8 + 10);\n          uVar15 = local_24[1];\n        }\n        if (uVar15 == 0x7000000d) {\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          pcVar11 = (char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0);\n          pcVar16 = pcVar11 + uVar15;\n          for (; pcVar11 + 8 <= pcVar16; pcVar11 = pcVar11 + bVar1) {\n            bVar1 = pcVar11[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }\n            if (*pcVar11 == '\x01') {\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }\n      goto LAB_001bba8f;\n    }\n  }\n  else if (iVar5 != 2) {\n                    \n    FUN_002446e0("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }\nLAB_001bb77c:\n  param_1[0x1e4] = param_1[0x1e4] & 0xf7;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_001bb730(char *param_1,int *param_2)" (identifier "FUN_001bb730") (parameter_list "(char *param_1,int *param_2)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  byte bVar1;\n  short sVar2;\n  uint uVar3;\n  bool bVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  short *psVar8;\n  short *psVar9;\n  undefined4 *puVar10;\n  char *pcVar11;\n  uint uVar12;\n  int iVar13;\n  char cVar14;\n  undefined4 extraout_EDX;\n  undefined4 extraout_EDX_00;\n  uint uVar15;\n  char *pcVar16;\n  uint uVar17;\n  byte *pbVar18;\n  uint *puVar19;\n  byte *pbVar20;\n  byte *pbVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  uint local_28;\n  uint *local_24;\n  \n  bVar25 = 0;\n  FUN_002b3240(param_1,param_2);\n  if (*(int *)(param_1 + 0x1c) == 0) {\nLAB_001bbcba:\n    FUN_00175c50();\nLAB_001bbcbf:\n                    \n    FUN_002446e0("../../gold/mips.cc",0x1b6f,"do_read_symbols");\n  }\n  iVar5 = *(int *)(*(int *)(param_1 + 0x1c) + 0x90);\n  if (iVar5 == 1) {\n    iVar5 = FUN_001cc8a0(param_1,0,0,0x34,1,0);\n    *(undefined4 *)(param_1 + 0x13c) = *(undefined4 *)(iVar5 + 0x24);\n    uVar3 = *(uint *)(param_2[1] + 8);\n    FUN_00104420(param_1 + 0x1ec,*(undefined4 *)(param_1 + 0x28),0);\n    FUN_00104420(param_1 + 0x200,*(undefined4 *)(param_1 + 0x28),0);\n    FUN_00104420(param_1 + 0x214,*(undefined4 *)(param_1 + 0x28),0);\n    bVar4 = false;\n    local_24 = (uint *)(*(int *)(*param_2 + 8) + 0x28);\n    if (1 < *(uint *)(param_1 + 0x28)) {\n      uVar15 = *(uint *)(*(int *)(*param_2 + 8) + 0x2c);\n      local_28 = 1;\n      uVar6 = extraout_EDX;\n      pcVar16 = ".MIPS.options";\n      if (uVar15 != 2) goto LAB_001bb8fa;\n      local_28 = 1;\n      do {\n        if (0x10 < local_24[5]) {\n          bVar4 = true;\n        }\nLAB_001bba8f:\n        iVar5 = 10;\n        bVar22 = CARRY4(uVar3,*local_24);\n        pbVar21 = (byte *)(uVar3 + *local_24);\n        bVar24 = pbVar21 == (byte *)0x0;\n        pbVar18 = (byte *)".mips16.fn";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        iVar5 = (local_28 >> 5) * 4;\n        uVar17 = 1 << ((byte)local_28 & 0x1f);\n        uVar15 = *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        uVar12 = uVar15 & ~uVar17;\n        if (bVar22) {\n          uVar12 = uVar15 | uVar17;\n        }\n        *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5) = uVar12;\n        iVar13 = 0xd;\n        pbVar18 = (byte *)".mips16.call.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        puVar19 = (uint *)(*(int *)(param_1 + 0x200) + iVar5);\n        if ((!bVar23 && !bVar22) == bVar23) {\n          uVar15 = *puVar19 | uVar17;\n        }\n        else {\n          uVar15 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar15 == 0;\n        bVar22 = false;\n        *puVar19 = uVar15;\n        iVar13 = 0x10;\n        pbVar18 = (byte *)".mips16.call.fp.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        cVar14 = (!bVar22 && !bVar24) - bVar22;\n        uVar6 = CONCAT31((int3)(uVar15 >> 8),cVar14);\n        puVar19 = (uint *)(iVar5 + *(int *)(param_1 + 0x214));\n        if (cVar14 == '\0') {\n          uVar17 = uVar17 | *puVar19;\n        }\n        else {\n          uVar17 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar17 == 0;\n        bVar22 = false;\n        *puVar19 = uVar17;\n        iVar5 = 5;\n        pbVar18 = &DAT_0044d56a;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar21 < *pbVar18;\n          bVar24 = *pbVar21 == *pbVar18;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        if ((!bVar22 && !bVar24) == bVar22) {\n          if (*(int *)(param_1 + 0x228) != -1) goto LAB_001bbcbf;\n          *(uint *)(param_1 + 0x228) = local_28;\n        }\n        local_28 = local_28 + 1;\n        puVar19 = local_24 + 10;\n        if (*(uint *)(param_1 + 0x28) <= local_28) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_001bb77c;\n        }\n        uVar15 = local_24[0xb];\n        pcVar16 = param_1;\n        local_24 = puVar19;\n      } while (uVar15 == 2);\nLAB_001bb8fa:\n      if (uVar15 != 3) {\n        if (uVar15 == 0x70000006) {\n          param_1[0x1e4] = param_1[0x1e4] | 4;\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          puVar10 = (undefined4 *)\n                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          *(undefined4 *)(param_1 + 0x1e0) = puVar10[5];\n          *(undefined4 *)(param_1 + 0x234) = *puVar10;\n          *(undefined4 *)(param_1 + 0x238) = puVar10[1];\n          *(undefined4 *)(param_1 + 0x23c) = puVar10[2];\n          uVar6 = puVar10[3];\n          *(undefined4 *)(param_1 + 0x240) = uVar6;\n          *(undefined4 *)(param_1 + 0x244) = puVar10[4];\n          uVar15 = local_24[1];\n          pcVar16 = param_1;\n        }\n        if (uVar15 == 0x6ffffff5) {\n          if (*(int *)(param_1 + 0x22c) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);\n          }\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          uVar6 = FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0);\n          uVar7 = FUN_003ac4d0(8);\n                    \n          FUN_00225ca0(uVar7,uVar6,uVar15);\n          *(undefined4 *)(param_1 + 0x22c) = uVar7;\n          uVar15 = local_24[1];\n          uVar6 = extraout_EDX_00;\n        }\n        if (uVar15 == 0x7000002a) {\n          if (*(int *)(param_1 + 0x230) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);\n          }\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          psVar8 = (short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          psVar9 = (short *)FUN_003ac4d0(0x18);\n          psVar9[0] = 0;\n          psVar9[1] = 0;\n          psVar9[2] = 0;\n          psVar9[3] = 0;\n          sVar2 = *psVar8;\n          psVar9[4] = 0;\n          psVar9[5] = 0;\n          psVar9[6] = 0;\n          psVar9[7] = 0;\n          psVar9[8] = 0;\n          psVar9[9] = 0;\n          psVar9[10] = 0;\n          psVar9[0xb] = 0;\n          *(short **)(param_1 + 0x230) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined4 *)(param_1 + 4);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0023b810(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((int)psVar9 + 3) = *(undefined1 *)((int)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((int)psVar9 + 5) = *(undefined1 *)((int)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((int)psVar9 + 7) = *(undefined1 *)((int)psVar8 + 7);\n          *(undefined4 *)(psVar9 + 4) = *(undefined4 *)(psVar8 + 4);\n          *(undefined4 *)(psVar9 + 6) = *(undefined4 *)(psVar8 + 6);\n          *(undefined4 *)(psVar9 + 8) = *(undefined4 *)(psVar8 + 8);\n          *(undefined4 *)(psVar9 + 10) = *(undefined4 *)(psVar8 + 10);\n          uVar15 = local_24[1];\n        }\n        if (uVar15 == 0x7000000d) {\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          pcVar11 = (char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0);\n          pcVar16 = pcVar11 + uVar15;\n          for (; pcVar11 + 8 <= pcVar16; pcVar11 = pcVar11 + bVar1) {\n            bVar1 = pcVar11[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }\n            if (*pcVar11 == '\x01') {\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }\n      goto LAB_001bba8f;\n    }\n  }\n  else if (iVar5 != 2) {\n                    \n    FUN_002446e0("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }\nLAB_001bb77c:\n  param_1[0x1e4] = param_1[0x1e4] & 0xf7;\n  return;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "short sVar2;" (sized_type_specifier "short" (short "short")) (identifier "sVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "bool bVar4;" (primitive_type "bool") (identifier "bVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "short *psVar8;" (sized_type_specifier "short" (short "short")) (pointer_declarator "*psVar8" (* "*") (identifier "psVar8")) (; ";")) (declaration "short *psVar9;" (sized_type_specifier "short" (short "short")) (pointer_declarator "*psVar9" (* "*") (identifier "psVar9")) (; ";")) (declaration "undefined4 *puVar10;" (type_identifier "undefined4") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "char *pcVar11;" (primitive_type "char") (pointer_declarator "*pcVar11" (* "*") (identifier "pcVar11")) (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "char cVar14;" (primitive_type "char") (identifier "cVar14") (; ";")) (declaration "undefined4 extraout_EDX;" (type_identifier "undefined4") (identifier "extraout_EDX") (; ";")) (declaration "undefined4 extraout_EDX_00;" (type_identifier "undefined4") (identifier "extraout_EDX_00") (; ";")) (declaration "uint uVar15;" (type_identifier "uint") (identifier "uVar15") (; ";")) (declaration "char *pcVar16;" (primitive_type "char") (pointer_declarator "*pcVar16" (* "*") (identifier "pcVar16")) (; ";")) (declaration "uint uVar17;" (type_identifier "uint") (identifier "uVar17") (; ";")) (declaration "byte *pbVar18;" (type_identifier "byte") (pointer_declarator "*pbVar18" (* "*") (identifier "pbVar18")) (; ";")) (declaration "uint *puVar19;" (type_identifier "uint") (pointer_declarator "*puVar19" (* "*") (identifier "puVar19")) (; ";")) (declaration "byte *pbVar20;" (type_identifier "byte") (pointer_declarator "*pbVar20" (* "*") (identifier "pbVar20")) (; ";")) (declaration "byte *pbVar21;" (type_identifier "byte") (pointer_declarator "*pbVar21" (* "*") (identifier "pbVar21")) (; ";")) (declaration "bool bVar22;" (primitive_type "bool") (identifier "bVar22") (; ";")) (declaration "bool bVar23;" (primitive_type "bool") (identifier "bVar23") (; ";")) (declaration "bool bVar24;" (primitive_type "bool") (identifier "bVar24") (; ";")) (declaration "byte bVar25;" (type_identifier "byte") (identifier "bVar25") (; ";")) (declaration "uint local_28;" (type_identifier "uint") (identifier "local_28") (; ";")) (declaration "uint *local_24;" (type_identifier "uint") (pointer_declarator "*local_24" (* "*") (identifier "local_24")) (; ";")) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" (identifier "bVar25") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_002b3240(param_1,param_2);" (call_expression "FUN_002b3240(param_1,param_2)" (identifier "FUN_002b3240") (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")"))) (; ";")) (if_statement "if (*(int *)(param_1 + 0x1c) == 0) {\nLAB_001bbcba:\n    FUN_00175c50();\nLAB_001bbcbf:\n                    \n    FUN_002446e0("../../gold/mips.cc",0x1b6f,"do_read_symbols");\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x1c) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x1c) == 0" (pointer_expression "*(int *)(param_1 + 0x1c)" (* "*") (cast_expression "(int *)(param_1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_001bbcba:\n    FUN_00175c50();\nLAB_001bbcbf:\n                    \n    FUN_002446e0("../../gold/mips.cc",0x1b6f,"do_read_symbols");\n  }" ({ "{") (labeled_statement "LAB_001bbcba:\n    FUN_00175c50();" (statement_identifier "LAB_001bbcba") (: ":") (expression_statement "FUN_00175c50();" (call_expression "FUN_00175c50()" (identifier "FUN_00175c50") (argument_list "()" (( "(") () ")"))) (; ";"))) (labeled_statement "LAB_001bbcbf:\n                    \n    FUN_002446e0("../../gold/mips.cc",0x1b6f,"do_read_symbols");" (statement_identifier "LAB_001bbcbf") (: ":") (expression_statement "FUN_002446e0("../../gold/mips.cc",0x1b6f,"do_read_symbols");" (call_expression "FUN_002446e0("../../gold/mips.cc",0x1b6f,"do_read_symbols")" (identifier "FUN_002446e0") (argument_list "("../../gold/mips.cc",0x1b6f,"do_read_symbols")" (( "(") (string_literal ""../../gold/mips.cc"" (" """) (string_content "../../gold/mips.cc") (" """)) (, ",") (number_literal "0x1b6f") (, ",") (string_literal ""do_read_symbols"" (" """) (string_content "do_read_symbols") (" """)) () ")"))) (; ";"))) (} "}"))) (expression_statement "iVar5 = *(int *)(*(int *)(param_1 + 0x1c) + 0x90);" (assignment_expression "iVar5 = *(int *)(*(int *)(param_1 + 0x1c) + 0x90)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(*(int *)(param_1 + 0x1c) + 0x90)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x1c) + 0x90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x1c) + 0x90)" (( "(") (binary_expression "*(int *)(param_1 + 0x1c) + 0x90" (pointer_expression "*(int *)(param_1 + 0x1c)" (* "*") (cast_expression "(int *)(param_1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))) (+ "+") (number_literal "0x90")) () ")"))))) (; ";")) (if_statement "if (iVar5 == 1) {\n    iVar5 = FUN_001cc8a0(param_1,0,0,0x34,1,0);\n    *(undefined4 *)(param_1 + 0x13c) = *(undefined4 *)(iVar5 + 0x24);\n    uVar3 = *(uint *)(param_2[1] + 8);\n    FUN_00104420(param_1 + 0x1ec,*(undefined4 *)(param_1 + 0x28),0);\n    FUN_00104420(param_1 + 0x200,*(undefined4 *)(param_1 + 0x28),0);\n    FUN_00104420(param_1 + 0x214,*(undefined4 *)(param_1 + 0x28),0);\n    bVar4 = false;\n    local_24 = (uint *)(*(int *)(*param_2 + 8) + 0x28);\n    if (1 < *(uint *)(param_1 + 0x28)) {\n      uVar15 = *(uint *)(*(int *)(*param_2 + 8) + 0x2c);\n      local_28 = 1;\n      uVar6 = extraout_EDX;\n      pcVar16 = ".MIPS.options";\n      if (uVar15 != 2) goto LAB_001bb8fa;\n      local_28 = 1;\n      do {\n        if (0x10 < local_24[5]) {\n          bVar4 = true;\n        }\nLAB_001bba8f:\n        iVar5 = 10;\n        bVar22 = CARRY4(uVar3,*local_24);\n        pbVar21 = (byte *)(uVar3 + *local_24);\n        bVar24 = pbVar21 == (byte *)0x0;\n        pbVar18 = (byte *)".mips16.fn";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        iVar5 = (local_28 >> 5) * 4;\n        uVar17 = 1 << ((byte)local_28 & 0x1f);\n        uVar15 = *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        uVar12 = uVar15 & ~uVar17;\n        if (bVar22) {\n          uVar12 = uVar15 | uVar17;\n        }\n        *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5) = uVar12;\n        iVar13 = 0xd;\n        pbVar18 = (byte *)".mips16.call.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        puVar19 = (uint *)(*(int *)(param_1 + 0x200) + iVar5);\n        if ((!bVar23 && !bVar22) == bVar23) {\n          uVar15 = *puVar19 | uVar17;\n        }\n        else {\n          uVar15 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar15 == 0;\n        bVar22 = false;\n        *puVar19 = uVar15;\n        iVar13 = 0x10;\n        pbVar18 = (byte *)".mips16.call.fp.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        cVar14 = (!bVar22 && !bVar24) - bVar22;\n        uVar6 = CONCAT31((int3)(uVar15 >> 8),cVar14);\n        puVar19 = (uint *)(iVar5 + *(int *)(param_1 + 0x214));\n        if (cVar14 == '\0') {\n          uVar17 = uVar17 | *puVar19;\n        }\n        else {\n          uVar17 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar17 == 0;\n        bVar22 = false;\n        *puVar19 = uVar17;\n        iVar5 = 5;\n        pbVar18 = &DAT_0044d56a;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar21 < *pbVar18;\n          bVar24 = *pbVar21 == *pbVar18;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        if ((!bVar22 && !bVar24) == bVar22) {\n          if (*(int *)(param_1 + 0x228) != -1) goto LAB_001bbcbf;\n          *(uint *)(param_1 + 0x228) = local_28;\n        }\n        local_28 = local_28 + 1;\n        puVar19 = local_24 + 10;\n        if (*(uint *)(param_1 + 0x28) <= local_28) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_001bb77c;\n        }\n        uVar15 = local_24[0xb];\n        pcVar16 = param_1;\n        local_24 = puVar19;\n      } while (uVar15 == 2);\nLAB_001bb8fa:\n      if (uVar15 != 3) {\n        if (uVar15 == 0x70000006) {\n          param_1[0x1e4] = param_1[0x1e4] | 4;\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          puVar10 = (undefined4 *)\n                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          *(undefined4 *)(param_1 + 0x1e0) = puVar10[5];\n          *(undefined4 *)(param_1 + 0x234) = *puVar10;\n          *(undefined4 *)(param_1 + 0x238) = puVar10[1];\n          *(undefined4 *)(param_1 + 0x23c) = puVar10[2];\n          uVar6 = puVar10[3];\n          *(undefined4 *)(param_1 + 0x240) = uVar6;\n          *(undefined4 *)(param_1 + 0x244) = puVar10[4];\n          uVar15 = local_24[1];\n          pcVar16 = param_1;\n        }\n        if (uVar15 == 0x6ffffff5) {\n          if (*(int *)(param_1 + 0x22c) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);\n          }\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          uVar6 = FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0);\n          uVar7 = FUN_003ac4d0(8);\n                    \n          FUN_00225ca0(uVar7,uVar6,uVar15);\n          *(undefined4 *)(param_1 + 0x22c) = uVar7;\n          uVar15 = local_24[1];\n          uVar6 = extraout_EDX_00;\n        }\n        if (uVar15 == 0x7000002a) {\n          if (*(int *)(param_1 + 0x230) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);\n          }\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          psVar8 = (short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          psVar9 = (short *)FUN_003ac4d0(0x18);\n          psVar9[0] = 0;\n          psVar9[1] = 0;\n          psVar9[2] = 0;\n          psVar9[3] = 0;\n          sVar2 = *psVar8;\n          psVar9[4] = 0;\n          psVar9[5] = 0;\n          psVar9[6] = 0;\n          psVar9[7] = 0;\n          psVar9[8] = 0;\n          psVar9[9] = 0;\n          psVar9[10] = 0;\n          psVar9[0xb] = 0;\n          *(short **)(param_1 + 0x230) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined4 *)(param_1 + 4);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0023b810(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((int)psVar9 + 3) = *(undefined1 *)((int)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((int)psVar9 + 5) = *(undefined1 *)((int)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((int)psVar9 + 7) = *(undefined1 *)((int)psVar8 + 7);\n          *(undefined4 *)(psVar9 + 4) = *(undefined4 *)(psVar8 + 4);\n          *(undefined4 *)(psVar9 + 6) = *(undefined4 *)(psVar8 + 6);\n          *(undefined4 *)(psVar9 + 8) = *(undefined4 *)(psVar8 + 8);\n          *(undefined4 *)(psVar9 + 10) = *(undefined4 *)(psVar8 + 10);\n          uVar15 = local_24[1];\n        }\n        if (uVar15 == 0x7000000d) {\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          pcVar11 = (char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0);\n          pcVar16 = pcVar11 + uVar15;\n          for (; pcVar11 + 8 <= pcVar16; pcVar11 = pcVar11 + bVar1) {\n            bVar1 = pcVar11[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }\n            if (*pcVar11 == '\x01') {\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }\n      goto LAB_001bba8f;\n    }\n  }\n  else if (iVar5 != 2) {\n                    \n    FUN_002446e0("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }" (if "if") (parenthesized_expression "(iVar5 == 1)" (( "(") (binary_expression "iVar5 == 1" (identifier "iVar5") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n    iVar5 = FUN_001cc8a0(param_1,0,0,0x34,1,0);\n    *(undefined4 *)(param_1 + 0x13c) = *(undefined4 *)(iVar5 + 0x24);\n    uVar3 = *(uint *)(param_2[1] + 8);\n    FUN_00104420(param_1 + 0x1ec,*(undefined4 *)(param_1 + 0x28),0);\n    FUN_00104420(param_1 + 0x200,*(undefined4 *)(param_1 + 0x28),0);\n    FUN_00104420(param_1 + 0x214,*(undefined4 *)(param_1 + 0x28),0);\n    bVar4 = false;\n    local_24 = (uint *)(*(int *)(*param_2 + 8) + 0x28);\n    if (1 < *(uint *)(param_1 + 0x28)) {\n      uVar15 = *(uint *)(*(int *)(*param_2 + 8) + 0x2c);\n      local_28 = 1;\n      uVar6 = extraout_EDX;\n      pcVar16 = ".MIPS.options";\n      if (uVar15 != 2) goto LAB_001bb8fa;\n      local_28 = 1;\n      do {\n        if (0x10 < local_24[5]) {\n          bVar4 = true;\n        }\nLAB_001bba8f:\n        iVar5 = 10;\n        bVar22 = CARRY4(uVar3,*local_24);\n        pbVar21 = (byte *)(uVar3 + *local_24);\n        bVar24 = pbVar21 == (byte *)0x0;\n        pbVar18 = (byte *)".mips16.fn";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        iVar5 = (local_28 >> 5) * 4;\n        uVar17 = 1 << ((byte)local_28 & 0x1f);\n        uVar15 = *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        uVar12 = uVar15 & ~uVar17;\n        if (bVar22) {\n          uVar12 = uVar15 | uVar17;\n        }\n        *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5) = uVar12;\n        iVar13 = 0xd;\n        pbVar18 = (byte *)".mips16.call.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        puVar19 = (uint *)(*(int *)(param_1 + 0x200) + iVar5);\n        if ((!bVar23 && !bVar22) == bVar23) {\n          uVar15 = *puVar19 | uVar17;\n        }\n        else {\n          uVar15 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar15 == 0;\n        bVar22 = false;\n        *puVar19 = uVar15;\n        iVar13 = 0x10;\n        pbVar18 = (byte *)".mips16.call.fp.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        cVar14 = (!bVar22 && !bVar24) - bVar22;\n        uVar6 = CONCAT31((int3)(uVar15 >> 8),cVar14);\n        puVar19 = (uint *)(iVar5 + *(int *)(param_1 + 0x214));\n        if (cVar14 == '\0') {\n          uVar17 = uVar17 | *puVar19;\n        }\n        else {\n          uVar17 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar17 == 0;\n        bVar22 = false;\n        *puVar19 = uVar17;\n        iVar5 = 5;\n        pbVar18 = &DAT_0044d56a;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar21 < *pbVar18;\n          bVar24 = *pbVar21 == *pbVar18;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        if ((!bVar22 && !bVar24) == bVar22) {\n          if (*(int *)(param_1 + 0x228) != -1) goto LAB_001bbcbf;\n          *(uint *)(param_1 + 0x228) = local_28;\n        }\n        local_28 = local_28 + 1;\n        puVar19 = local_24 + 10;\n        if (*(uint *)(param_1 + 0x28) <= local_28) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_001bb77c;\n        }\n        uVar15 = local_24[0xb];\n        pcVar16 = param_1;\n        local_24 = puVar19;\n      } while (uVar15 == 2);\nLAB_001bb8fa:\n      if (uVar15 != 3) {\n        if (uVar15 == 0x70000006) {\n          param_1[0x1e4] = param_1[0x1e4] | 4;\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          puVar10 = (undefined4 *)\n                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          *(undefined4 *)(param_1 + 0x1e0) = puVar10[5];\n          *(undefined4 *)(param_1 + 0x234) = *puVar10;\n          *(undefined4 *)(param_1 + 0x238) = puVar10[1];\n          *(undefined4 *)(param_1 + 0x23c) = puVar10[2];\n          uVar6 = puVar10[3];\n          *(undefined4 *)(param_1 + 0x240) = uVar6;\n          *(undefined4 *)(param_1 + 0x244) = puVar10[4];\n          uVar15 = local_24[1];\n          pcVar16 = param_1;\n        }\n        if (uVar15 == 0x6ffffff5) {\n          if (*(int *)(param_1 + 0x22c) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);\n          }\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          uVar6 = FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0);\n          uVar7 = FUN_003ac4d0(8);\n                    \n          FUN_00225ca0(uVar7,uVar6,uVar15);\n          *(undefined4 *)(param_1 + 0x22c) = uVar7;\n          uVar15 = local_24[1];\n          uVar6 = extraout_EDX_00;\n        }\n        if (uVar15 == 0x7000002a) {\n          if (*(int *)(param_1 + 0x230) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);\n          }\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          psVar8 = (short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          psVar9 = (short *)FUN_003ac4d0(0x18);\n          psVar9[0] = 0;\n          psVar9[1] = 0;\n          psVar9[2] = 0;\n          psVar9[3] = 0;\n          sVar2 = *psVar8;\n          psVar9[4] = 0;\n          psVar9[5] = 0;\n          psVar9[6] = 0;\n          psVar9[7] = 0;\n          psVar9[8] = 0;\n          psVar9[9] = 0;\n          psVar9[10] = 0;\n          psVar9[0xb] = 0;\n          *(short **)(param_1 + 0x230) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined4 *)(param_1 + 4);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0023b810(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((int)psVar9 + 3) = *(undefined1 *)((int)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((int)psVar9 + 5) = *(undefined1 *)((int)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((int)psVar9 + 7) = *(undefined1 *)((int)psVar8 + 7);\n          *(undefined4 *)(psVar9 + 4) = *(undefined4 *)(psVar8 + 4);\n          *(undefined4 *)(psVar9 + 6) = *(undefined4 *)(psVar8 + 6);\n          *(undefined4 *)(psVar9 + 8) = *(undefined4 *)(psVar8 + 8);\n          *(undefined4 *)(psVar9 + 10) = *(undefined4 *)(psVar8 + 10);\n          uVar15 = local_24[1];\n        }\n        if (uVar15 == 0x7000000d) {\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          pcVar11 = (char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0);\n          pcVar16 = pcVar11 + uVar15;\n          for (; pcVar11 + 8 <= pcVar16; pcVar11 = pcVar11 + bVar1) {\n            bVar1 = pcVar11[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }\n            if (*pcVar11 == '\x01') {\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }\n      goto LAB_001bba8f;\n    }\n  }" ({ "{") (expression_statement "iVar5 = FUN_001cc8a0(param_1,0,0,0x34,1,0);" (assignment_expression "iVar5 = FUN_001cc8a0(param_1,0,0,0x34,1,0)" (identifier "iVar5") (= "=") (call_expression "FUN_001cc8a0(param_1,0,0,0x34,1,0)" (identifier "FUN_001cc8a0") (argument_list "(param_1,0,0,0x34,1,0)" (( "(") (identifier "param_1") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0x34") (, ",") (number_literal "1") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x13c) = *(undefined4 *)(iVar5 + 0x24);" (assignment_expression "*(undefined4 *)(param_1 + 0x13c) = *(undefined4 *)(iVar5 + 0x24)" (pointer_expression "*(undefined4 *)(param_1 + 0x13c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x13c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x13c)" (( "(") (binary_expression "param_1 + 0x13c" (identifier "param_1") (+ "+") (number_literal "0x13c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(iVar5 + 0x24)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x24)" (( "(") (binary_expression "iVar5 + 0x24" (identifier "iVar5") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "uVar3 = *(uint *)(param_2[1] + 8);" (assignment_expression "uVar3 = *(uint *)(param_2[1] + 8)" (identifier "uVar3") (= "=") (pointer_expression "*(uint *)(param_2[1] + 8)" (* "*") (cast_expression "(uint *)(param_2[1] + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[1] + 8)" (( "(") (binary_expression "param_2[1] + 8" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "FUN_00104420(param_1 + 0x1ec,*(undefined4 *)(param_1 + 0x28),0);" (call_expression "FUN_00104420(param_1 + 0x1ec,*(undefined4 *)(param_1 + 0x28),0)" (identifier "FUN_00104420") (argument_list "(param_1 + 0x1ec,*(undefined4 *)(param_1 + 0x28),0)" (( "(") (binary_expression "param_1 + 0x1ec" (identifier "param_1") (+ "+") (number_literal "0x1ec")) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x28)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "FUN_00104420(param_1 + 0x200,*(undefined4 *)(param_1 + 0x28),0);" (call_expression "FUN_00104420(param_1 + 0x200,*(undefined4 *)(param_1 + 0x28),0)" (identifier "FUN_00104420") (argument_list "(param_1 + 0x200,*(undefined4 *)(param_1 + 0x28),0)" (( "(") (binary_expression "param_1 + 0x200" (identifier "param_1") (+ "+") (number_literal "0x200")) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x28)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "FUN_00104420(param_1 + 0x214,*(undefined4 *)(param_1 + 0x28),0);" (call_expression "FUN_00104420(param_1 + 0x214,*(undefined4 *)(param_1 + 0x28),0)" (identifier "FUN_00104420") (argument_list "(param_1 + 0x214,*(undefined4 *)(param_1 + 0x28),0)" (( "(") (binary_expression "param_1 + 0x214" (identifier "param_1") (+ "+") (number_literal "0x214")) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x28)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" (identifier "bVar4") (= "=") (false "false")) (; ";")) (expression_statement "local_24 = (uint *)(*(int *)(*param_2 + 8) + 0x28);" (assignment_expression "local_24 = (uint *)(*(int *)(*param_2 + 8) + 0x28)" (identifier "local_24") (= "=") (cast_expression "(uint *)(*(int *)(*param_2 + 8) + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*param_2 + 8) + 0x28)" (( "(") (binary_expression "*(int *)(*param_2 + 8) + 0x28" (pointer_expression "*(int *)(*param_2 + 8)" (* "*") (cast_expression "(int *)(*param_2 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_2 + 8)" (( "(") (binary_expression "*param_2 + 8" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x28")) () ")")))) (; ";")) (if_statement "if (1 < *(uint *)(param_1 + 0x28)) {\n      uVar15 = *(uint *)(*(int *)(*param_2 + 8) + 0x2c);\n      local_28 = 1;\n      uVar6 = extraout_EDX;\n      pcVar16 = ".MIPS.options";\n      if (uVar15 != 2) goto LAB_001bb8fa;\n      local_28 = 1;\n      do {\n        if (0x10 < local_24[5]) {\n          bVar4 = true;\n        }\nLAB_001bba8f:\n        iVar5 = 10;\n        bVar22 = CARRY4(uVar3,*local_24);\n        pbVar21 = (byte *)(uVar3 + *local_24);\n        bVar24 = pbVar21 == (byte *)0x0;\n        pbVar18 = (byte *)".mips16.fn";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        iVar5 = (local_28 >> 5) * 4;\n        uVar17 = 1 << ((byte)local_28 & 0x1f);\n        uVar15 = *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        uVar12 = uVar15 & ~uVar17;\n        if (bVar22) {\n          uVar12 = uVar15 | uVar17;\n        }\n        *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5) = uVar12;\n        iVar13 = 0xd;\n        pbVar18 = (byte *)".mips16.call.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        puVar19 = (uint *)(*(int *)(param_1 + 0x200) + iVar5);\n        if ((!bVar23 && !bVar22) == bVar23) {\n          uVar15 = *puVar19 | uVar17;\n        }\n        else {\n          uVar15 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar15 == 0;\n        bVar22 = false;\n        *puVar19 = uVar15;\n        iVar13 = 0x10;\n        pbVar18 = (byte *)".mips16.call.fp.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        cVar14 = (!bVar22 && !bVar24) - bVar22;\n        uVar6 = CONCAT31((int3)(uVar15 >> 8),cVar14);\n        puVar19 = (uint *)(iVar5 + *(int *)(param_1 + 0x214));\n        if (cVar14 == '\0') {\n          uVar17 = uVar17 | *puVar19;\n        }\n        else {\n          uVar17 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar17 == 0;\n        bVar22 = false;\n        *puVar19 = uVar17;\n        iVar5 = 5;\n        pbVar18 = &DAT_0044d56a;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar21 < *pbVar18;\n          bVar24 = *pbVar21 == *pbVar18;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        if ((!bVar22 && !bVar24) == bVar22) {\n          if (*(int *)(param_1 + 0x228) != -1) goto LAB_001bbcbf;\n          *(uint *)(param_1 + 0x228) = local_28;\n        }\n        local_28 = local_28 + 1;\n        puVar19 = local_24 + 10;\n        if (*(uint *)(param_1 + 0x28) <= local_28) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_001bb77c;\n        }\n        uVar15 = local_24[0xb];\n        pcVar16 = param_1;\n        local_24 = puVar19;\n      } while (uVar15 == 2);\nLAB_001bb8fa:\n      if (uVar15 != 3) {\n        if (uVar15 == 0x70000006) {\n          param_1[0x1e4] = param_1[0x1e4] | 4;\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          puVar10 = (undefined4 *)\n                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          *(undefined4 *)(param_1 + 0x1e0) = puVar10[5];\n          *(undefined4 *)(param_1 + 0x234) = *puVar10;\n          *(undefined4 *)(param_1 + 0x238) = puVar10[1];\n          *(undefined4 *)(param_1 + 0x23c) = puVar10[2];\n          uVar6 = puVar10[3];\n          *(undefined4 *)(param_1 + 0x240) = uVar6;\n          *(undefined4 *)(param_1 + 0x244) = puVar10[4];\n          uVar15 = local_24[1];\n          pcVar16 = param_1;\n        }\n        if (uVar15 == 0x6ffffff5) {\n          if (*(int *)(param_1 + 0x22c) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);\n          }\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          uVar6 = FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0);\n          uVar7 = FUN_003ac4d0(8);\n                    \n          FUN_00225ca0(uVar7,uVar6,uVar15);\n          *(undefined4 *)(param_1 + 0x22c) = uVar7;\n          uVar15 = local_24[1];\n          uVar6 = extraout_EDX_00;\n        }\n        if (uVar15 == 0x7000002a) {\n          if (*(int *)(param_1 + 0x230) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);\n          }\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          psVar8 = (short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          psVar9 = (short *)FUN_003ac4d0(0x18);\n          psVar9[0] = 0;\n          psVar9[1] = 0;\n          psVar9[2] = 0;\n          psVar9[3] = 0;\n          sVar2 = *psVar8;\n          psVar9[4] = 0;\n          psVar9[5] = 0;\n          psVar9[6] = 0;\n          psVar9[7] = 0;\n          psVar9[8] = 0;\n          psVar9[9] = 0;\n          psVar9[10] = 0;\n          psVar9[0xb] = 0;\n          *(short **)(param_1 + 0x230) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined4 *)(param_1 + 4);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0023b810(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((int)psVar9 + 3) = *(undefined1 *)((int)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((int)psVar9 + 5) = *(undefined1 *)((int)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((int)psVar9 + 7) = *(undefined1 *)((int)psVar8 + 7);\n          *(undefined4 *)(psVar9 + 4) = *(undefined4 *)(psVar8 + 4);\n          *(undefined4 *)(psVar9 + 6) = *(undefined4 *)(psVar8 + 6);\n          *(undefined4 *)(psVar9 + 8) = *(undefined4 *)(psVar8 + 8);\n          *(undefined4 *)(psVar9 + 10) = *(undefined4 *)(psVar8 + 10);\n          uVar15 = local_24[1];\n        }\n        if (uVar15 == 0x7000000d) {\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          pcVar11 = (char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0);\n          pcVar16 = pcVar11 + uVar15;\n          for (; pcVar11 + 8 <= pcVar16; pcVar11 = pcVar11 + bVar1) {\n            bVar1 = pcVar11[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }\n            if (*pcVar11 == '\x01') {\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }\n      goto LAB_001bba8f;\n    }" (if "if") (parenthesized_expression "(1 < *(uint *)(param_1 + 0x28))" (( "(") (binary_expression "1 < *(uint *)(param_1 + 0x28)" (number_literal "1") (< "<") (pointer_expression "*(uint *)(param_1 + 0x28)" (* "*") (cast_expression "(uint *)(param_1 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n      uVar15 = *(uint *)(*(int *)(*param_2 + 8) + 0x2c);\n      local_28 = 1;\n      uVar6 = extraout_EDX;\n      pcVar16 = ".MIPS.options";\n      if (uVar15 != 2) goto LAB_001bb8fa;\n      local_28 = 1;\n      do {\n        if (0x10 < local_24[5]) {\n          bVar4 = true;\n        }\nLAB_001bba8f:\n        iVar5 = 10;\n        bVar22 = CARRY4(uVar3,*local_24);\n        pbVar21 = (byte *)(uVar3 + *local_24);\n        bVar24 = pbVar21 == (byte *)0x0;\n        pbVar18 = (byte *)".mips16.fn";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        iVar5 = (local_28 >> 5) * 4;\n        uVar17 = 1 << ((byte)local_28 & 0x1f);\n        uVar15 = *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        uVar12 = uVar15 & ~uVar17;\n        if (bVar22) {\n          uVar12 = uVar15 | uVar17;\n        }\n        *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5) = uVar12;\n        iVar13 = 0xd;\n        pbVar18 = (byte *)".mips16.call.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        puVar19 = (uint *)(*(int *)(param_1 + 0x200) + iVar5);\n        if ((!bVar23 && !bVar22) == bVar23) {\n          uVar15 = *puVar19 | uVar17;\n        }\n        else {\n          uVar15 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar15 == 0;\n        bVar22 = false;\n        *puVar19 = uVar15;\n        iVar13 = 0x10;\n        pbVar18 = (byte *)".mips16.call.fp.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        cVar14 = (!bVar22 && !bVar24) - bVar22;\n        uVar6 = CONCAT31((int3)(uVar15 >> 8),cVar14);\n        puVar19 = (uint *)(iVar5 + *(int *)(param_1 + 0x214));\n        if (cVar14 == '\0') {\n          uVar17 = uVar17 | *puVar19;\n        }\n        else {\n          uVar17 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar17 == 0;\n        bVar22 = false;\n        *puVar19 = uVar17;\n        iVar5 = 5;\n        pbVar18 = &DAT_0044d56a;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar21 < *pbVar18;\n          bVar24 = *pbVar21 == *pbVar18;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        if ((!bVar22 && !bVar24) == bVar22) {\n          if (*(int *)(param_1 + 0x228) != -1) goto LAB_001bbcbf;\n          *(uint *)(param_1 + 0x228) = local_28;\n        }\n        local_28 = local_28 + 1;\n        puVar19 = local_24 + 10;\n        if (*(uint *)(param_1 + 0x28) <= local_28) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_001bb77c;\n        }\n        uVar15 = local_24[0xb];\n        pcVar16 = param_1;\n        local_24 = puVar19;\n      } while (uVar15 == 2);\nLAB_001bb8fa:\n      if (uVar15 != 3) {\n        if (uVar15 == 0x70000006) {\n          param_1[0x1e4] = param_1[0x1e4] | 4;\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          puVar10 = (undefined4 *)\n                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          *(undefined4 *)(param_1 + 0x1e0) = puVar10[5];\n          *(undefined4 *)(param_1 + 0x234) = *puVar10;\n          *(undefined4 *)(param_1 + 0x238) = puVar10[1];\n          *(undefined4 *)(param_1 + 0x23c) = puVar10[2];\n          uVar6 = puVar10[3];\n          *(undefined4 *)(param_1 + 0x240) = uVar6;\n          *(undefined4 *)(param_1 + 0x244) = puVar10[4];\n          uVar15 = local_24[1];\n          pcVar16 = param_1;\n        }\n        if (uVar15 == 0x6ffffff5) {\n          if (*(int *)(param_1 + 0x22c) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);\n          }\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          uVar6 = FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0);\n          uVar7 = FUN_003ac4d0(8);\n                    \n          FUN_00225ca0(uVar7,uVar6,uVar15);\n          *(undefined4 *)(param_1 + 0x22c) = uVar7;\n          uVar15 = local_24[1];\n          uVar6 = extraout_EDX_00;\n        }\n        if (uVar15 == 0x7000002a) {\n          if (*(int *)(param_1 + 0x230) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);\n          }\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          psVar8 = (short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          psVar9 = (short *)FUN_003ac4d0(0x18);\n          psVar9[0] = 0;\n          psVar9[1] = 0;\n          psVar9[2] = 0;\n          psVar9[3] = 0;\n          sVar2 = *psVar8;\n          psVar9[4] = 0;\n          psVar9[5] = 0;\n          psVar9[6] = 0;\n          psVar9[7] = 0;\n          psVar9[8] = 0;\n          psVar9[9] = 0;\n          psVar9[10] = 0;\n          psVar9[0xb] = 0;\n          *(short **)(param_1 + 0x230) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined4 *)(param_1 + 4);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0023b810(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((int)psVar9 + 3) = *(undefined1 *)((int)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((int)psVar9 + 5) = *(undefined1 *)((int)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((int)psVar9 + 7) = *(undefined1 *)((int)psVar8 + 7);\n          *(undefined4 *)(psVar9 + 4) = *(undefined4 *)(psVar8 + 4);\n          *(undefined4 *)(psVar9 + 6) = *(undefined4 *)(psVar8 + 6);\n          *(undefined4 *)(psVar9 + 8) = *(undefined4 *)(psVar8 + 8);\n          *(undefined4 *)(psVar9 + 10) = *(undefined4 *)(psVar8 + 10);\n          uVar15 = local_24[1];\n        }\n        if (uVar15 == 0x7000000d) {\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          pcVar11 = (char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0);\n          pcVar16 = pcVar11 + uVar15;\n          for (; pcVar11 + 8 <= pcVar16; pcVar11 = pcVar11 + bVar1) {\n            bVar1 = pcVar11[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }\n            if (*pcVar11 == '\x01') {\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }\n      goto LAB_001bba8f;\n    }" ({ "{") (expression_statement "uVar15 = *(uint *)(*(int *)(*param_2 + 8) + 0x2c);" (assignment_expression "uVar15 = *(uint *)(*(int *)(*param_2 + 8) + 0x2c)" (identifier "uVar15") (= "=") (pointer_expression "*(uint *)(*(int *)(*param_2 + 8) + 0x2c)" (* "*") (cast_expression "(uint *)(*(int *)(*param_2 + 8) + 0x2c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*param_2 + 8) + 0x2c)" (( "(") (binary_expression "*(int *)(*param_2 + 8) + 0x2c" (pointer_expression "*(int *)(*param_2 + 8)" (* "*") (cast_expression "(int *)(*param_2 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_2 + 8)" (( "(") (binary_expression "*param_2 + 8" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (expression_statement "local_28 = 1;" (assignment_expression "local_28 = 1" (identifier "local_28") (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar6 = extraout_EDX;" (assignment_expression "uVar6 = extraout_EDX" (identifier "uVar6") (= "=") (identifier "extraout_EDX")) (; ";")) (expression_statement "pcVar16 = ".MIPS.options";" (assignment_expression "pcVar16 = ".MIPS.options"" (identifier "pcVar16") (= "=") (string_literal "".MIPS.options"" (" """) (string_content ".MIPS.options") (" """))) (; ";")) (if_statement "if (uVar15 != 2) goto LAB_001bb8fa;" (if "if") (parenthesized_expression "(uVar15 != 2)" (( "(") (binary_expression "uVar15 != 2" (identifier "uVar15") (!= "!=") (number_literal "2")) () ")")) (goto_statement "goto LAB_001bb8fa;" (goto "goto") (statement_identifier "LAB_001bb8fa") (; ";"))) (expression_statement "local_28 = 1;" (assignment_expression "local_28 = 1" (identifier "local_28") (= "=") (number_literal "1")) (; ";")) (do_statement "do {\n        if (0x10 < local_24[5]) {\n          bVar4 = true;\n        }\nLAB_001bba8f:\n        iVar5 = 10;\n        bVar22 = CARRY4(uVar3,*local_24);\n        pbVar21 = (byte *)(uVar3 + *local_24);\n        bVar24 = pbVar21 == (byte *)0x0;\n        pbVar18 = (byte *)".mips16.fn";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        iVar5 = (local_28 >> 5) * 4;\n        uVar17 = 1 << ((byte)local_28 & 0x1f);\n        uVar15 = *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        uVar12 = uVar15 & ~uVar17;\n        if (bVar22) {\n          uVar12 = uVar15 | uVar17;\n        }\n        *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5) = uVar12;\n        iVar13 = 0xd;\n        pbVar18 = (byte *)".mips16.call.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        puVar19 = (uint *)(*(int *)(param_1 + 0x200) + iVar5);\n        if ((!bVar23 && !bVar22) == bVar23) {\n          uVar15 = *puVar19 | uVar17;\n        }\n        else {\n          uVar15 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar15 == 0;\n        bVar22 = false;\n        *puVar19 = uVar15;\n        iVar13 = 0x10;\n        pbVar18 = (byte *)".mips16.call.fp.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        cVar14 = (!bVar22 && !bVar24) - bVar22;\n        uVar6 = CONCAT31((int3)(uVar15 >> 8),cVar14);\n        puVar19 = (uint *)(iVar5 + *(int *)(param_1 + 0x214));\n        if (cVar14 == '\0') {\n          uVar17 = uVar17 | *puVar19;\n        }\n        else {\n          uVar17 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar17 == 0;\n        bVar22 = false;\n        *puVar19 = uVar17;\n        iVar5 = 5;\n        pbVar18 = &DAT_0044d56a;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar21 < *pbVar18;\n          bVar24 = *pbVar21 == *pbVar18;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        if ((!bVar22 && !bVar24) == bVar22) {\n          if (*(int *)(param_1 + 0x228) != -1) goto LAB_001bbcbf;\n          *(uint *)(param_1 + 0x228) = local_28;\n        }\n        local_28 = local_28 + 1;\n        puVar19 = local_24 + 10;\n        if (*(uint *)(param_1 + 0x28) <= local_28) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_001bb77c;\n        }\n        uVar15 = local_24[0xb];\n        pcVar16 = param_1;\n        local_24 = puVar19;\n      } while (uVar15 == 2);" (do "do") (compound_statement "{\n        if (0x10 < local_24[5]) {\n          bVar4 = true;\n        }\nLAB_001bba8f:\n        iVar5 = 10;\n        bVar22 = CARRY4(uVar3,*local_24);\n        pbVar21 = (byte *)(uVar3 + *local_24);\n        bVar24 = pbVar21 == (byte *)0x0;\n        pbVar18 = (byte *)".mips16.fn";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        iVar5 = (local_28 >> 5) * 4;\n        uVar17 = 1 << ((byte)local_28 & 0x1f);\n        uVar15 = *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar24) == bVar22;\n        uVar12 = uVar15 & ~uVar17;\n        if (bVar22) {\n          uVar12 = uVar15 | uVar17;\n        }\n        *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5) = uVar12;\n        iVar13 = 0xd;\n        pbVar18 = (byte *)".mips16.call.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);\n        puVar19 = (uint *)(*(int *)(param_1 + 0x200) + iVar5);\n        if ((!bVar23 && !bVar22) == bVar23) {\n          uVar15 = *puVar19 | uVar17;\n        }\n        else {\n          uVar15 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar15 == 0;\n        bVar22 = false;\n        *puVar19 = uVar15;\n        iVar13 = 0x10;\n        pbVar18 = (byte *)".mips16.call.fp.";\n        pbVar20 = pbVar21;\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        cVar14 = (!bVar22 && !bVar24) - bVar22;\n        uVar6 = CONCAT31((int3)(uVar15 >> 8),cVar14);\n        puVar19 = (uint *)(iVar5 + *(int *)(param_1 + 0x214));\n        if (cVar14 == '\0') {\n          uVar17 = uVar17 | *puVar19;\n        }\n        else {\n          uVar17 = ~uVar17 & *puVar19;\n        }\n        bVar24 = uVar17 == 0;\n        bVar22 = false;\n        *puVar19 = uVar17;\n        iVar5 = 5;\n        pbVar18 = &DAT_0044d56a;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar21 < *pbVar18;\n          bVar24 = *pbVar21 == *pbVar18;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);\n        if ((!bVar22 && !bVar24) == bVar22) {\n          if (*(int *)(param_1 + 0x228) != -1) goto LAB_001bbcbf;\n          *(uint *)(param_1 + 0x228) = local_28;\n        }\n        local_28 = local_28 + 1;\n        puVar19 = local_24 + 10;\n        if (*(uint *)(param_1 + 0x28) <= local_28) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_001bb77c;\n        }\n        uVar15 = local_24[0xb];\n        pcVar16 = param_1;\n        local_24 = puVar19;\n      }" ({ "{") (if_statement "if (0x10 < local_24[5]) {\n          bVar4 = true;\n        }" (if "if") (parenthesized_expression "(0x10 < local_24[5])" (( "(") (binary_expression "0x10 < local_24[5]" (number_literal "0x10") (< "<") (subscript_expression "local_24[5]" (identifier "local_24") ([ "[") (number_literal "5") (] "]"))) () ")")) (compound_statement "{\n          bVar4 = true;\n        }" ({ "{") (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" (identifier "bVar4") (= "=") (true "true")) (; ";")) (} "}"))) (labeled_statement "LAB_001bba8f:\n        iVar5 = 10;" (statement_identifier "LAB_001bba8f") (: ":") (expression_statement "iVar5 = 10;" (assignment_expression "iVar5 = 10" (identifier "iVar5") (= "=") (number_literal "10")) (; ";"))) (expression_statement "bVar22 = CARRY4(uVar3,*local_24);" (assignment_expression "bVar22 = CARRY4(uVar3,*local_24)" (identifier "bVar22") (= "=") (call_expression "CARRY4(uVar3,*local_24)" (identifier "CARRY4") (argument_list "(uVar3,*local_24)" (( "(") (identifier "uVar3") (, ",") (pointer_expression "*local_24" (* "*") (identifier "local_24")) () ")")))) (; ";")) (expression_statement "pbVar21 = (byte *)(uVar3 + *local_24);" (assignment_expression "pbVar21 = (byte *)(uVar3 + *local_24)" (identifier "pbVar21") (= "=") (cast_expression "(byte *)(uVar3 + *local_24)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar3 + *local_24)" (( "(") (binary_expression "uVar3 + *local_24" (identifier "uVar3") (+ "+") (pointer_expression "*local_24" (* "*") (identifier "local_24"))) () ")")))) (; ";")) (expression_statement "bVar24 = pbVar21 == (byte *)0x0;" (assignment_expression "bVar24 = pbVar21 == (byte *)0x0" (identifier "bVar24") (= "=") (binary_expression "pbVar21 == (byte *)0x0" (identifier "pbVar21") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (expression_statement "pbVar18 = (byte *)".mips16.fn";" (assignment_expression "pbVar18 = (byte *)".mips16.fn"" (identifier "pbVar18") (= "=") (cast_expression "(byte *)".mips16.fn"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".mips16.fn"" (" """) (string_content ".mips16.fn") (" """)))) (; ";")) (expression_statement "pbVar20 = pbVar21;" (assignment_expression "pbVar20 = pbVar21" (identifier "pbVar20") (= "=") (identifier "pbVar21")) (; ";")) (do_statement "do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);" (do "do") (compound_statement "{\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar22 = *pbVar18 < *pbVar20;" (assignment_expression "bVar22 = *pbVar18 < *pbVar20" (identifier "bVar22") (= "=") (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (< "<") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "bVar24 = *pbVar18 == *pbVar20;" (assignment_expression "bVar24 = *pbVar18 == *pbVar20" (identifier "bVar24") (= "=") (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (== "==") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" (identifier "pbVar18") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1" (identifier "pbVar20") (= "=") (binary_expression "pbVar20 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar25 * -2" (identifier "pbVar20") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar24)" (( "(") (identifier "bVar24") () ")")) (; ";")) (expression_statement "iVar5 = (local_28 >> 5) * 4;" (assignment_expression "iVar5 = (local_28 >> 5) * 4" (identifier "iVar5") (= "=") (binary_expression "(local_28 >> 5) * 4" (parenthesized_expression "(local_28 >> 5)" (( "(") (binary_expression "local_28 >> 5" (identifier "local_28") (>> ">>") (number_literal "5")) () ")")) (* "*") (number_literal "4"))) (; ";")) (expression_statement "uVar17 = 1 << ((byte)local_28 & 0x1f);" (assignment_expression "uVar17 = 1 << ((byte)local_28 & 0x1f)" (identifier "uVar17") (= "=") (binary_expression "1 << ((byte)local_28 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "((byte)local_28 & 0x1f)" (( "(") (binary_expression "(byte)local_28 & 0x1f" (cast_expression "(byte)local_28" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_28")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "uVar15 = *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5);" (assignment_expression "uVar15 = *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5)" (identifier "uVar15") (= "=") (pointer_expression "*(uint *)(*(int *)(param_1 + 0x1ec) + iVar5)" (* "*") (cast_expression "(uint *)(*(int *)(param_1 + 0x1ec) + iVar5)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x1ec) + iVar5)" (( "(") (binary_expression "*(int *)(param_1 + 0x1ec) + iVar5" (pointer_expression "*(int *)(param_1 + 0x1ec)" (* "*") (cast_expression "(int *)(param_1 + 0x1ec)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1ec)" (( "(") (binary_expression "param_1 + 0x1ec" (identifier "param_1") (+ "+") (number_literal "0x1ec")) () ")")))) (+ "+") (identifier "iVar5")) () ")"))))) (; ";")) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" (identifier "bVar23") (= "=") (false "false")) (; ";")) (expression_statement "bVar22 = (!bVar22 && !bVar24) == bVar22;" (assignment_expression "bVar22 = (!bVar22 && !bVar24) == bVar22" (identifier "bVar22") (= "=") (binary_expression "(!bVar22 && !bVar24) == bVar22" (parenthesized_expression "(!bVar22 && !bVar24)" (( "(") (binary_expression "!bVar22 && !bVar24" (unary_expression "!bVar22" (! "!") (identifier "bVar22")) (&& "&&") (unary_expression "!bVar24" (! "!") (identifier "bVar24"))) () ")")) (== "==") (identifier "bVar22"))) (; ";")) (expression_statement "uVar12 = uVar15 & ~uVar17;" (assignment_expression "uVar12 = uVar15 & ~uVar17" (identifier "uVar12") (= "=") (binary_expression "uVar15 & ~uVar17" (identifier "uVar15") (& "&") (unary_expression "~uVar17" (~ "~") (identifier "uVar17")))) (; ";")) (if_statement "if (bVar22) {\n          uVar12 = uVar15 | uVar17;\n        }" (if "if") (parenthesized_expression "(bVar22)" (( "(") (identifier "bVar22") () ")")) (compound_statement "{\n          uVar12 = uVar15 | uVar17;\n        }" ({ "{") (expression_statement "uVar12 = uVar15 | uVar17;" (assignment_expression "uVar12 = uVar15 | uVar17" (identifier "uVar12") (= "=") (binary_expression "uVar15 | uVar17" (identifier "uVar15") (| "|") (identifier "uVar17"))) (; ";")) (} "}"))) (expression_statement "*(uint *)(*(int *)(param_1 + 0x1ec) + iVar5) = uVar12;" (assignment_expression "*(uint *)(*(int *)(param_1 + 0x1ec) + iVar5) = uVar12" (pointer_expression "*(uint *)(*(int *)(param_1 + 0x1ec) + iVar5)" (* "*") (cast_expression "(uint *)(*(int *)(param_1 + 0x1ec) + iVar5)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x1ec) + iVar5)" (( "(") (binary_expression "*(int *)(param_1 + 0x1ec) + iVar5" (pointer_expression "*(int *)(param_1 + 0x1ec)" (* "*") (cast_expression "(int *)(param_1 + 0x1ec)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1ec)" (( "(") (binary_expression "param_1 + 0x1ec" (identifier "param_1") (+ "+") (number_literal "0x1ec")) () ")")))) (+ "+") (identifier "iVar5")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "iVar13 = 0xd;" (assignment_expression "iVar13 = 0xd" (identifier "iVar13") (= "=") (number_literal "0xd")) (; ";")) (expression_statement "pbVar18 = (byte *)".mips16.call.";" (assignment_expression "pbVar18 = (byte *)".mips16.call."" (identifier "pbVar18") (= "=") (cast_expression "(byte *)".mips16.call."" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".mips16.call."" (" """) (string_content ".mips16.call.") (" """)))) (; ";")) (expression_statement "pbVar20 = pbVar21;" (assignment_expression "pbVar20 = pbVar21" (identifier "pbVar20") (= "=") (identifier "pbVar21")) (; ";")) (do_statement "do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar22);" (do "do") (compound_statement "{\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        }" ({ "{") (if_statement "if (iVar13 == 0) break;" (if "if") (parenthesized_expression "(iVar13 == 0)" (( "(") (binary_expression "iVar13 == 0" (identifier "iVar13") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + -1" (identifier "iVar13") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar23 = *pbVar18 < *pbVar20;" (assignment_expression "bVar23 = *pbVar18 < *pbVar20" (identifier "bVar23") (= "=") (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (< "<") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "bVar22 = *pbVar18 == *pbVar20;" (assignment_expression "bVar22 = *pbVar18 == *pbVar20" (identifier "bVar22") (= "=") (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (== "==") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" (identifier "pbVar18") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1" (identifier "pbVar20") (= "=") (binary_expression "pbVar20 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar25 * -2" (identifier "pbVar20") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar22)" (( "(") (identifier "bVar22") () ")")) (; ";")) (expression_statement "puVar19 = (uint *)(*(int *)(param_1 + 0x200) + iVar5);" (assignment_expression "puVar19 = (uint *)(*(int *)(param_1 + 0x200) + iVar5)" (identifier "puVar19") (= "=") (cast_expression "(uint *)(*(int *)(param_1 + 0x200) + iVar5)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x200) + iVar5)" (( "(") (binary_expression "*(int *)(param_1 + 0x200) + iVar5" (pointer_expression "*(int *)(param_1 + 0x200)" (* "*") (cast_expression "(int *)(param_1 + 0x200)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x200)" (( "(") (binary_expression "param_1 + 0x200" (identifier "param_1") (+ "+") (number_literal "0x200")) () ")")))) (+ "+") (identifier "iVar5")) () ")")))) (; ";")) (if_statement "if ((!bVar23 && !bVar22) == bVar23) {\n          uVar15 = *puVar19 | uVar17;\n        }\n        else {\n          uVar15 = ~uVar17 & *puVar19;\n        }" (if "if") (parenthesized_expression "((!bVar23 && !bVar22) == bVar23)" (( "(") (binary_expression "(!bVar23 && !bVar22) == bVar23" (parenthesized_expression "(!bVar23 && !bVar22)" (( "(") (binary_expression "!bVar23 && !bVar22" (unary_expression "!bVar23" (! "!") (identifier "bVar23")) (&& "&&") (unary_expression "!bVar22" (! "!") (identifier "bVar22"))) () ")")) (== "==") (identifier "bVar23")) () ")")) (compound_statement "{\n          uVar15 = *puVar19 | uVar17;\n        }" ({ "{") (expression_statement "uVar15 = *puVar19 | uVar17;" (assignment_expression "uVar15 = *puVar19 | uVar17" (identifier "uVar15") (= "=") (binary_expression "*puVar19 | uVar17" (pointer_expression "*puVar19" (* "*") (identifier "puVar19")) (| "|") (identifier "uVar17"))) (; ";")) (} "}")) (else_clause "else {\n          uVar15 = ~uVar17 & *puVar19;\n        }" (else "else") (compound_statement "{\n          uVar15 = ~uVar17 & *puVar19;\n        }" ({ "{") (expression_statement "uVar15 = ~uVar17 & *puVar19;" (assignment_expression "uVar15 = ~uVar17 & *puVar19" (identifier "uVar15") (= "=") (binary_expression "~uVar17 & *puVar19" (unary_expression "~uVar17" (~ "~") (identifier "uVar17")) (& "&") (pointer_expression "*puVar19" (* "*") (identifier "puVar19")))) (; ";")) (} "}")))) (expression_statement "bVar24 = uVar15 == 0;" (assignment_expression "bVar24 = uVar15 == 0" (identifier "bVar24") (= "=") (binary_expression "uVar15 == 0" (identifier "uVar15") (== "==") (number_literal "0"))) (; ";")) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" (identifier "bVar22") (= "=") (false "false")) (; ";")) (expression_statement "*puVar19 = uVar15;" (assignment_expression "*puVar19 = uVar15" (pointer_expression "*puVar19" (* "*") (identifier "puVar19")) (= "=") (identifier "uVar15")) (; ";")) (expression_statement "iVar13 = 0x10;" (assignment_expression "iVar13 = 0x10" (identifier "iVar13") (= "=") (number_literal "0x10")) (; ";")) (expression_statement "pbVar18 = (byte *)".mips16.call.fp.";" (assignment_expression "pbVar18 = (byte *)".mips16.call.fp."" (identifier "pbVar18") (= "=") (cast_expression "(byte *)".mips16.call.fp."" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".mips16.call.fp."" (" """) (string_content ".mips16.call.fp.") (" """)))) (; ";")) (expression_statement "pbVar20 = pbVar21;" (assignment_expression "pbVar20 = pbVar21" (identifier "pbVar20") (= "=") (identifier "pbVar21")) (; ";")) (do_statement "do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);" (do "do") (compound_statement "{\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar24 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;\n        }" ({ "{") (if_statement "if (iVar13 == 0) break;" (if "if") (parenthesized_expression "(iVar13 == 0)" (( "(") (binary_expression "iVar13 == 0" (identifier "iVar13") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + -1" (identifier "iVar13") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar22 = *pbVar18 < *pbVar20;" (assignment_expression "bVar22 = *pbVar18 < *pbVar20" (identifier "bVar22") (= "=") (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (< "<") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "bVar24 = *pbVar18 == *pbVar20;" (assignment_expression "bVar24 = *pbVar18 == *pbVar20" (identifier "bVar24") (= "=") (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (== "==") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" (identifier "pbVar18") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1" (identifier "pbVar20") (= "=") (binary_expression "pbVar20 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar25 * -2" (identifier "pbVar20") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar24)" (( "(") (identifier "bVar24") () ")")) (; ";")) (expression_statement "cVar14 = (!bVar22 && !bVar24) - bVar22;" (assignment_expression "cVar14 = (!bVar22 && !bVar24) - bVar22" (identifier "cVar14") (= "=") (binary_expression "(!bVar22 && !bVar24) - bVar22" (parenthesized_expression "(!bVar22 && !bVar24)" (( "(") (binary_expression "!bVar22 && !bVar24" (unary_expression "!bVar22" (! "!") (identifier "bVar22")) (&& "&&") (unary_expression "!bVar24" (! "!") (identifier "bVar24"))) () ")")) (- "-") (identifier "bVar22"))) (; ";")) (expression_statement "uVar6 = CONCAT31((int3)(uVar15 >> 8),cVar14);" (assignment_expression "uVar6 = CONCAT31((int3)(uVar15 >> 8),cVar14)" (identifier "uVar6") (= "=") (call_expression "CONCAT31((int3)(uVar15 >> 8),cVar14)" (identifier "CONCAT31") (argument_list "((int3)(uVar15 >> 8),cVar14)" (( "(") (call_expression "(int3)(uVar15 >> 8)" (parenthesized_expression "(int3)" (( "(") (identifier "int3") () ")")) (argument_list "(uVar15 >> 8)" (( "(") (binary_expression "uVar15 >> 8" (identifier "uVar15") (>> ">>") (number_literal "8")) () ")"))) (, ",") (identifier "cVar14") () ")")))) (; ";")) (expression_statement "puVar19 = (uint *)(iVar5 + *(int *)(param_1 + 0x214));" (assignment_expression "puVar19 = (uint *)(iVar5 + *(int *)(param_1 + 0x214))" (identifier "puVar19") (= "=") (cast_expression "(uint *)(iVar5 + *(int *)(param_1 + 0x214))" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + *(int *)(param_1 + 0x214))" (( "(") (binary_expression "iVar5 + *(int *)(param_1 + 0x214)" (identifier "iVar5") (+ "+") (pointer_expression "*(int *)(param_1 + 0x214)" (* "*") (cast_expression "(int *)(param_1 + 0x214)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x214)" (( "(") (binary_expression "param_1 + 0x214" (identifier "param_1") (+ "+") (number_literal "0x214")) () ")"))))) () ")")))) (; ";")) (if_statement "if (cVar14 == '\0') {\n          uVar17 = uVar17 | *puVar19;\n        }\n        else {\n          uVar17 = ~uVar17 & *puVar19;\n        }" (if "if") (parenthesized_expression "(cVar14 == '\0')" (( "(") (binary_expression "cVar14 == '\0'" (identifier "cVar14") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          uVar17 = uVar17 | *puVar19;\n        }" ({ "{") (expression_statement "uVar17 = uVar17 | *puVar19;" (assignment_expression "uVar17 = uVar17 | *puVar19" (identifier "uVar17") (= "=") (binary_expression "uVar17 | *puVar19" (identifier "uVar17") (| "|") (pointer_expression "*puVar19" (* "*") (identifier "puVar19")))) (; ";")) (} "}")) (else_clause "else {\n          uVar17 = ~uVar17 & *puVar19;\n        }" (else "else") (compound_statement "{\n          uVar17 = ~uVar17 & *puVar19;\n        }" ({ "{") (expression_statement "uVar17 = ~uVar17 & *puVar19;" (assignment_expression "uVar17 = ~uVar17 & *puVar19" (identifier "uVar17") (= "=") (binary_expression "~uVar17 & *puVar19" (unary_expression "~uVar17" (~ "~") (identifier "uVar17")) (& "&") (pointer_expression "*puVar19" (* "*") (identifier "puVar19")))) (; ";")) (} "}")))) (expression_statement "bVar24 = uVar17 == 0;" (assignment_expression "bVar24 = uVar17 == 0" (identifier "bVar24") (= "=") (binary_expression "uVar17 == 0" (identifier "uVar17") (== "==") (number_literal "0"))) (; ";")) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" (identifier "bVar22") (= "=") (false "false")) (; ";")) (expression_statement "*puVar19 = uVar17;" (assignment_expression "*puVar19 = uVar17" (pointer_expression "*puVar19" (* "*") (identifier "puVar19")) (= "=") (identifier "uVar17")) (; ";")) (expression_statement "iVar5 = 5;" (assignment_expression "iVar5 = 5" (identifier "iVar5") (= "=") (number_literal "5")) (; ";")) (expression_statement "pbVar18 = &DAT_0044d56a;" (assignment_expression "pbVar18 = &DAT_0044d56a" (identifier "pbVar18") (= "=") (pointer_expression "&DAT_0044d56a" (& "&") (identifier "DAT_0044d56a"))) (; ";")) (do_statement "do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar21 < *pbVar18;\n          bVar24 = *pbVar21 == *pbVar18;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar24);" (do "do") (compound_statement "{\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar22 = *pbVar21 < *pbVar18;\n          bVar24 = *pbVar21 == *pbVar18;\n          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar22 = *pbVar21 < *pbVar18;" (assignment_expression "bVar22 = *pbVar21 < *pbVar18" (identifier "bVar22") (= "=") (binary_expression "*pbVar21 < *pbVar18" (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")) (< "<") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")))) (; ";")) (expression_statement "bVar24 = *pbVar21 == *pbVar18;" (assignment_expression "bVar24 = *pbVar21 == *pbVar18" (identifier "bVar24") (= "=") (binary_expression "*pbVar21 == *pbVar18" (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")) (== "==") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")))) (; ";")) (expression_statement "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1" (identifier "pbVar21") (= "=") (binary_expression "pbVar21 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar25 * -2" (identifier "pbVar21") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" (identifier "pbVar18") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar24)" (( "(") (identifier "bVar24") () ")")) (; ";")) (if_statement "if ((!bVar22 && !bVar24) == bVar22) {\n          if (*(int *)(param_1 + 0x228) != -1) goto LAB_001bbcbf;\n          *(uint *)(param_1 + 0x228) = local_28;\n        }" (if "if") (parenthesized_expression "((!bVar22 && !bVar24) == bVar22)" (( "(") (binary_expression "(!bVar22 && !bVar24) == bVar22" (parenthesized_expression "(!bVar22 && !bVar24)" (( "(") (binary_expression "!bVar22 && !bVar24" (unary_expression "!bVar22" (! "!") (identifier "bVar22")) (&& "&&") (unary_expression "!bVar24" (! "!") (identifier "bVar24"))) () ")")) (== "==") (identifier "bVar22")) () ")")) (compound_statement "{\n          if (*(int *)(param_1 + 0x228) != -1) goto LAB_001bbcbf;\n          *(uint *)(param_1 + 0x228) = local_28;\n        }" ({ "{") (if_statement "if (*(int *)(param_1 + 0x228) != -1) goto LAB_001bbcbf;" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x228) != -1)" (( "(") (binary_expression "*(int *)(param_1 + 0x228) != -1" (pointer_expression "*(int *)(param_1 + 0x228)" (* "*") (cast_expression "(int *)(param_1 + 0x228)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x228)" (( "(") (binary_expression "param_1 + 0x228" (identifier "param_1") (+ "+") (number_literal "0x228")) () ")")))) (!= "!=") (number_literal "-1")) () ")")) (goto_statement "goto LAB_001bbcbf;" (goto "goto") (statement_identifier "LAB_001bbcbf") (; ";"))) (expression_statement "*(uint *)(param_1 + 0x228) = local_28;" (assignment_expression "*(uint *)(param_1 + 0x228) = local_28" (pointer_expression "*(uint *)(param_1 + 0x228)" (* "*") (cast_expression "(uint *)(param_1 + 0x228)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x228)" (( "(") (binary_expression "param_1 + 0x228" (identifier "param_1") (+ "+") (number_literal "0x228")) () ")")))) (= "=") (identifier "local_28")) (; ";")) (} "}"))) (expression_statement "local_28 = local_28 + 1;" (assignment_expression "local_28 = local_28 + 1" (identifier "local_28") (= "=") (binary_expression "local_28 + 1" (identifier "local_28") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar19 = local_24 + 10;" (assignment_expression "puVar19 = local_24 + 10" (identifier "puVar19") (= "=") (binary_expression "local_24 + 10" (identifier "local_24") (+ "+") (number_literal "10"))) (; ";")) (if_statement "if (*(uint *)(param_1 + 0x28) <= local_28) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_001bb77c;\n        }" (if "if") (parenthesized_expression "(*(uint *)(param_1 + 0x28) <= local_28)" (( "(") (binary_expression "*(uint *)(param_1 + 0x28) <= local_28" (pointer_expression "*(uint *)(param_1 + 0x28)" (* "*") (cast_expression "(uint *)(param_1 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (<= "<=") (identifier "local_28")) () ")")) (compound_statement "{\n          if (bVar4) {\n            return;\n          }\n          goto LAB_001bb77c;\n        }" ({ "{") (if_statement "if (bVar4) {\n            return;\n          }" (if "if") (parenthesized_expression "(bVar4)" (( "(") (identifier "bVar4") () ")")) (compound_statement "{\n            return;\n          }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (goto_statement "goto LAB_001bb77c;" (goto "goto") (statement_identifier "LAB_001bb77c") (; ";")) (} "}"))) (expression_statement "uVar15 = local_24[0xb];" (assignment_expression "uVar15 = local_24[0xb]" (identifier "uVar15") (= "=") (subscript_expression "local_24[0xb]" (identifier "local_24") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (expression_statement "pcVar16 = param_1;" (assignment_expression "pcVar16 = param_1" (identifier "pcVar16") (= "=") (identifier "param_1")) (; ";")) (expression_statement "local_24 = puVar19;" (assignment_expression "local_24 = puVar19" (identifier "local_24") (= "=") (identifier "puVar19")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar15 == 2)" (( "(") (binary_expression "uVar15 == 2" (identifier "uVar15") (== "==") (number_literal "2")) () ")")) (; ";")) (labeled_statement "LAB_001bb8fa:\n      if (uVar15 != 3) {\n        if (uVar15 == 0x70000006) {\n          param_1[0x1e4] = param_1[0x1e4] | 4;\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          puVar10 = (undefined4 *)\n                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          *(undefined4 *)(param_1 + 0x1e0) = puVar10[5];\n          *(undefined4 *)(param_1 + 0x234) = *puVar10;\n          *(undefined4 *)(param_1 + 0x238) = puVar10[1];\n          *(undefined4 *)(param_1 + 0x23c) = puVar10[2];\n          uVar6 = puVar10[3];\n          *(undefined4 *)(param_1 + 0x240) = uVar6;\n          *(undefined4 *)(param_1 + 0x244) = puVar10[4];\n          uVar15 = local_24[1];\n          pcVar16 = param_1;\n        }\n        if (uVar15 == 0x6ffffff5) {\n          if (*(int *)(param_1 + 0x22c) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);\n          }\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          uVar6 = FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0);\n          uVar7 = FUN_003ac4d0(8);\n                    \n          FUN_00225ca0(uVar7,uVar6,uVar15);\n          *(undefined4 *)(param_1 + 0x22c) = uVar7;\n          uVar15 = local_24[1];\n          uVar6 = extraout_EDX_00;\n        }\n        if (uVar15 == 0x7000002a) {\n          if (*(int *)(param_1 + 0x230) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);\n          }\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          psVar8 = (short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          psVar9 = (short *)FUN_003ac4d0(0x18);\n          psVar9[0] = 0;\n          psVar9[1] = 0;\n          psVar9[2] = 0;\n          psVar9[3] = 0;\n          sVar2 = *psVar8;\n          psVar9[4] = 0;\n          psVar9[5] = 0;\n          psVar9[6] = 0;\n          psVar9[7] = 0;\n          psVar9[8] = 0;\n          psVar9[9] = 0;\n          psVar9[10] = 0;\n          psVar9[0xb] = 0;\n          *(short **)(param_1 + 0x230) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined4 *)(param_1 + 4);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0023b810(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((int)psVar9 + 3) = *(undefined1 *)((int)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((int)psVar9 + 5) = *(undefined1 *)((int)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((int)psVar9 + 7) = *(undefined1 *)((int)psVar8 + 7);\n          *(undefined4 *)(psVar9 + 4) = *(undefined4 *)(psVar8 + 4);\n          *(undefined4 *)(psVar9 + 6) = *(undefined4 *)(psVar8 + 6);\n          *(undefined4 *)(psVar9 + 8) = *(undefined4 *)(psVar8 + 8);\n          *(undefined4 *)(psVar9 + 10) = *(undefined4 *)(psVar8 + 10);\n          uVar15 = local_24[1];\n        }\n        if (uVar15 == 0x7000000d) {\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          pcVar11 = (char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0);\n          pcVar16 = pcVar11 + uVar15;\n          for (; pcVar11 + 8 <= pcVar16; pcVar11 = pcVar11 + bVar1) {\n            bVar1 = pcVar11[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }\n            if (*pcVar11 == '\x01') {\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }" (statement_identifier "LAB_001bb8fa") (: ":") (if_statement "if (uVar15 != 3) {\n        if (uVar15 == 0x70000006) {\n          param_1[0x1e4] = param_1[0x1e4] | 4;\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          puVar10 = (undefined4 *)\n                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          *(undefined4 *)(param_1 + 0x1e0) = puVar10[5];\n          *(undefined4 *)(param_1 + 0x234) = *puVar10;\n          *(undefined4 *)(param_1 + 0x238) = puVar10[1];\n          *(undefined4 *)(param_1 + 0x23c) = puVar10[2];\n          uVar6 = puVar10[3];\n          *(undefined4 *)(param_1 + 0x240) = uVar6;\n          *(undefined4 *)(param_1 + 0x244) = puVar10[4];\n          uVar15 = local_24[1];\n          pcVar16 = param_1;\n        }\n        if (uVar15 == 0x6ffffff5) {\n          if (*(int *)(param_1 + 0x22c) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);\n          }\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          uVar6 = FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0);\n          uVar7 = FUN_003ac4d0(8);\n                    \n          FUN_00225ca0(uVar7,uVar6,uVar15);\n          *(undefined4 *)(param_1 + 0x22c) = uVar7;\n          uVar15 = local_24[1];\n          uVar6 = extraout_EDX_00;\n        }\n        if (uVar15 == 0x7000002a) {\n          if (*(int *)(param_1 + 0x230) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);\n          }\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          psVar8 = (short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          psVar9 = (short *)FUN_003ac4d0(0x18);\n          psVar9[0] = 0;\n          psVar9[1] = 0;\n          psVar9[2] = 0;\n          psVar9[3] = 0;\n          sVar2 = *psVar8;\n          psVar9[4] = 0;\n          psVar9[5] = 0;\n          psVar9[6] = 0;\n          psVar9[7] = 0;\n          psVar9[8] = 0;\n          psVar9[9] = 0;\n          psVar9[10] = 0;\n          psVar9[0xb] = 0;\n          *(short **)(param_1 + 0x230) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined4 *)(param_1 + 4);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0023b810(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((int)psVar9 + 3) = *(undefined1 *)((int)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((int)psVar9 + 5) = *(undefined1 *)((int)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((int)psVar9 + 7) = *(undefined1 *)((int)psVar8 + 7);\n          *(undefined4 *)(psVar9 + 4) = *(undefined4 *)(psVar8 + 4);\n          *(undefined4 *)(psVar9 + 6) = *(undefined4 *)(psVar8 + 6);\n          *(undefined4 *)(psVar9 + 8) = *(undefined4 *)(psVar8 + 8);\n          *(undefined4 *)(psVar9 + 10) = *(undefined4 *)(psVar8 + 10);\n          uVar15 = local_24[1];\n        }\n        if (uVar15 == 0x7000000d) {\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          pcVar11 = (char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0);\n          pcVar16 = pcVar11 + uVar15;\n          for (; pcVar11 + 8 <= pcVar16; pcVar11 = pcVar11 + bVar1) {\n            bVar1 = pcVar11[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }\n            if (*pcVar11 == '\x01') {\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }" (if "if") (parenthesized_expression "(uVar15 != 3)" (( "(") (binary_expression "uVar15 != 3" (identifier "uVar15") (!= "!=") (number_literal "3")) () ")")) (compound_statement "{\n        if (uVar15 == 0x70000006) {\n          param_1[0x1e4] = param_1[0x1e4] | 4;\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          puVar10 = (undefined4 *)\n                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          *(undefined4 *)(param_1 + 0x1e0) = puVar10[5];\n          *(undefined4 *)(param_1 + 0x234) = *puVar10;\n          *(undefined4 *)(param_1 + 0x238) = puVar10[1];\n          *(undefined4 *)(param_1 + 0x23c) = puVar10[2];\n          uVar6 = puVar10[3];\n          *(undefined4 *)(param_1 + 0x240) = uVar6;\n          *(undefined4 *)(param_1 + 0x244) = puVar10[4];\n          uVar15 = local_24[1];\n          pcVar16 = param_1;\n        }\n        if (uVar15 == 0x6ffffff5) {\n          if (*(int *)(param_1 + 0x22c) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);\n          }\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          uVar6 = FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0);\n          uVar7 = FUN_003ac4d0(8);\n                    \n          FUN_00225ca0(uVar7,uVar6,uVar15);\n          *(undefined4 *)(param_1 + 0x22c) = uVar7;\n          uVar15 = local_24[1];\n          uVar6 = extraout_EDX_00;\n        }\n        if (uVar15 == 0x7000002a) {\n          if (*(int *)(param_1 + 0x230) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);\n          }\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          psVar8 = (short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          psVar9 = (short *)FUN_003ac4d0(0x18);\n          psVar9[0] = 0;\n          psVar9[1] = 0;\n          psVar9[2] = 0;\n          psVar9[3] = 0;\n          sVar2 = *psVar8;\n          psVar9[4] = 0;\n          psVar9[5] = 0;\n          psVar9[6] = 0;\n          psVar9[7] = 0;\n          psVar9[8] = 0;\n          psVar9[9] = 0;\n          psVar9[10] = 0;\n          psVar9[0xb] = 0;\n          *(short **)(param_1 + 0x230) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined4 *)(param_1 + 4);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0023b810(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((int)psVar9 + 3) = *(undefined1 *)((int)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((int)psVar9 + 5) = *(undefined1 *)((int)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((int)psVar9 + 7) = *(undefined1 *)((int)psVar8 + 7);\n          *(undefined4 *)(psVar9 + 4) = *(undefined4 *)(psVar8 + 4);\n          *(undefined4 *)(psVar9 + 6) = *(undefined4 *)(psVar8 + 6);\n          *(undefined4 *)(psVar9 + 8) = *(undefined4 *)(psVar8 + 8);\n          *(undefined4 *)(psVar9 + 10) = *(undefined4 *)(psVar8 + 10);\n          uVar15 = local_24[1];\n        }\n        if (uVar15 == 0x7000000d) {\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          pcVar11 = (char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0);\n          pcVar16 = pcVar11 + uVar15;\n          for (; pcVar11 + 8 <= pcVar16; pcVar11 = pcVar11 + bVar1) {\n            bVar1 = pcVar11[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }\n            if (*pcVar11 == '\x01') {\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }" ({ "{") (if_statement "if (uVar15 == 0x70000006) {\n          param_1[0x1e4] = param_1[0x1e4] | 4;\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          puVar10 = (undefined4 *)\n                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          *(undefined4 *)(param_1 + 0x1e0) = puVar10[5];\n          *(undefined4 *)(param_1 + 0x234) = *puVar10;\n          *(undefined4 *)(param_1 + 0x238) = puVar10[1];\n          *(undefined4 *)(param_1 + 0x23c) = puVar10[2];\n          uVar6 = puVar10[3];\n          *(undefined4 *)(param_1 + 0x240) = uVar6;\n          *(undefined4 *)(param_1 + 0x244) = puVar10[4];\n          uVar15 = local_24[1];\n          pcVar16 = param_1;\n        }" (if "if") (parenthesized_expression "(uVar15 == 0x70000006)" (( "(") (binary_expression "uVar15 == 0x70000006" (identifier "uVar15") (== "==") (number_literal "0x70000006")) () ")")) (compound_statement "{\n          param_1[0x1e4] = param_1[0x1e4] | 4;\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          puVar10 = (undefined4 *)\n                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          *(undefined4 *)(param_1 + 0x1e0) = puVar10[5];\n          *(undefined4 *)(param_1 + 0x234) = *puVar10;\n          *(undefined4 *)(param_1 + 0x238) = puVar10[1];\n          *(undefined4 *)(param_1 + 0x23c) = puVar10[2];\n          uVar6 = puVar10[3];\n          *(undefined4 *)(param_1 + 0x240) = uVar6;\n          *(undefined4 *)(param_1 + 0x244) = puVar10[4];\n          uVar15 = local_24[1];\n          pcVar16 = param_1;\n        }" ({ "{") (expression_statement "param_1[0x1e4] = param_1[0x1e4] | 4;" (assignment_expression "param_1[0x1e4] = param_1[0x1e4] | 4" (subscript_expression "param_1[0x1e4]" (identifier "param_1") ([ "[") (number_literal "0x1e4") (] "]")) (= "=") (binary_expression "param_1[0x1e4] | 4" (subscript_expression "param_1[0x1e4]" (identifier "param_1") ([ "[") (number_literal "0x1e4") (] "]")) (| "|") (number_literal "4"))) (; ";")) (if_statement "if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x1c) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x1c) == 0" (pointer_expression "*(int *)(param_1 + 0x1c)" (* "*") (cast_expression "(int *)(param_1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001bbcba;" (goto "goto") (statement_identifier "LAB_001bbcba") (; ";"))) (expression_statement "puVar10 = (undefined4 *)\n                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0);" (assignment_expression "puVar10 = (undefined4 *)\n                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0)" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)\n                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0)" (identifier "FUN_0023eb50") (argument_list "(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                                 *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                 (int)local_24[4] >> 0x1f,local_24[5],1,0)" (( "(") (binary_expression "*(int *)(param_1 + 0x1c) + 0x1c" (pointer_expression "*(int *)(param_1 + 0x1c)" (* "*") (cast_expression "(int *)(param_1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))) (+ "+") (number_literal "0x1c")) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x20)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x24)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")")))) (, ",") (subscript_expression "local_24[4]" (identifier "local_24") ([ "[") (number_literal "4") (] "]")) (, ",") (binary_expression "(int)local_24[4] >> 0x1f" (cast_expression "(int)local_24[4]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "local_24[4]" (identifier "local_24") ([ "[") (number_literal "4") (] "]"))) (>> ">>") (number_literal "0x1f")) (, ",") (subscript_expression "local_24[5]" (identifier "local_24") ([ "[") (number_literal "5") (] "]")) (, ",") (number_literal "1") (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x1e0) = puVar10[5];" (assignment_expression "*(undefined4 *)(param_1 + 0x1e0) = puVar10[5]" (pointer_expression "*(undefined4 *)(param_1 + 0x1e0)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x1e0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1e0)" (( "(") (binary_expression "param_1 + 0x1e0" (identifier "param_1") (+ "+") (number_literal "0x1e0")) () ")")))) (= "=") (subscript_expression "puVar10[5]" (identifier "puVar10") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x234) = *puVar10;" (assignment_expression "*(undefined4 *)(param_1 + 0x234) = *puVar10" (pointer_expression "*(undefined4 *)(param_1 + 0x234)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x234)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x234)" (( "(") (binary_expression "param_1 + 0x234" (identifier "param_1") (+ "+") (number_literal "0x234")) () ")")))) (= "=") (pointer_expression "*puVar10" (* "*") (identifier "puVar10"))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x238) = puVar10[1];" (assignment_expression "*(undefined4 *)(param_1 + 0x238) = puVar10[1]" (pointer_expression "*(undefined4 *)(param_1 + 0x238)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x238)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x238)" (( "(") (binary_expression "param_1 + 0x238" (identifier "param_1") (+ "+") (number_literal "0x238")) () ")")))) (= "=") (subscript_expression "puVar10[1]" (identifier "puVar10") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x23c) = puVar10[2];" (assignment_expression "*(undefined4 *)(param_1 + 0x23c) = puVar10[2]" (pointer_expression "*(undefined4 *)(param_1 + 0x23c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x23c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x23c)" (( "(") (binary_expression "param_1 + 0x23c" (identifier "param_1") (+ "+") (number_literal "0x23c")) () ")")))) (= "=") (subscript_expression "puVar10[2]" (identifier "puVar10") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar6 = puVar10[3];" (assignment_expression "uVar6 = puVar10[3]" (identifier "uVar6") (= "=") (subscript_expression "puVar10[3]" (identifier "puVar10") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x240) = uVar6;" (assignment_expression "*(undefined4 *)(param_1 + 0x240) = uVar6" (pointer_expression "*(undefined4 *)(param_1 + 0x240)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x240)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x240)" (( "(") (binary_expression "param_1 + 0x240" (identifier "param_1") (+ "+") (number_literal "0x240")) () ")")))) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x244) = puVar10[4];" (assignment_expression "*(undefined4 *)(param_1 + 0x244) = puVar10[4]" (pointer_expression "*(undefined4 *)(param_1 + 0x244)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x244)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x244)" (( "(") (binary_expression "param_1 + 0x244" (identifier "param_1") (+ "+") (number_literal "0x244")) () ")")))) (= "=") (subscript_expression "puVar10[4]" (identifier "puVar10") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "uVar15 = local_24[1];" (assignment_expression "uVar15 = local_24[1]" (identifier "uVar15") (= "=") (subscript_expression "local_24[1]" (identifier "local_24") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pcVar16 = param_1;" (assignment_expression "pcVar16 = param_1" (identifier "pcVar16") (= "=") (identifier "param_1")) (; ";")) (} "}"))) (if_statement "if (uVar15 == 0x6ffffff5) {\n          if (*(int *)(param_1 + 0x22c) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);\n          }\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          uVar6 = FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0);\n          uVar7 = FUN_003ac4d0(8);\n                    \n          FUN_00225ca0(uVar7,uVar6,uVar15);\n          *(undefined4 *)(param_1 + 0x22c) = uVar7;\n          uVar15 = local_24[1];\n          uVar6 = extraout_EDX_00;\n        }" (if "if") (parenthesized_expression "(uVar15 == 0x6ffffff5)" (( "(") (binary_expression "uVar15 == 0x6ffffff5" (identifier "uVar15") (== "==") (number_literal "0x6ffffff5")) () ")")) (compound_statement "{\n          if (*(int *)(param_1 + 0x22c) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);\n          }\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          uVar6 = FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0);\n          uVar7 = FUN_003ac4d0(8);\n                    \n          FUN_00225ca0(uVar7,uVar6,uVar15);\n          *(undefined4 *)(param_1 + 0x22c) = uVar7;\n          uVar15 = local_24[1];\n          uVar6 = extraout_EDX_00;\n        }" ({ "{") (if_statement "if (*(int *)(param_1 + 0x22c) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);\n          }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x22c) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x22c) != 0" (pointer_expression "*(int *)(param_1 + 0x22c)" (* "*") (cast_expression "(int *)(param_1 + 0x22c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x22c)" (( "(") (binary_expression "param_1 + 0x22c" (identifier "param_1") (+ "+") (number_literal "0x22c")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);\n          }" ({ "{") (expression_statement "FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);" (call_expression "FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16)" (identifier "FUN_002446e0") (argument_list "("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16)" (( "(") (string_literal ""../../gold/mips.cc"" (" """) (string_content "../../gold/mips.cc") (" """)) (, ",") (number_literal "0x1adf") (, ",") (string_literal ""do_read_symbols"" (" """) (string_content "do_read_symbols") (" """)) (, ",") (identifier "pcVar16") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar15 = local_24[5];" (assignment_expression "uVar15 = local_24[5]" (identifier "uVar15") (= "=") (subscript_expression "local_24[5]" (identifier "local_24") ([ "[") (number_literal "5") (] "]"))) (; ";")) (if_statement "if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x1c) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x1c) == 0" (pointer_expression "*(int *)(param_1 + 0x1c)" (* "*") (cast_expression "(int *)(param_1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001bbcba;" (goto "goto") (statement_identifier "LAB_001bbcba") (; ";"))) (expression_statement "uVar6 = FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0);" (assignment_expression "uVar6 = FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0)" (identifier "uVar6") (= "=") (call_expression "FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0)" (identifier "FUN_0023eb50") (argument_list "(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),\n                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,\n                               uVar15,1,0)" (( "(") (binary_expression "*(int *)(param_1 + 0x1c) + 0x1c" (pointer_expression "*(int *)(param_1 + 0x1c)" (* "*") (cast_expression "(int *)(param_1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))) (+ "+") (number_literal "0x1c")) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x20)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x24)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")")))) (, ",") (subscript_expression "local_24[4]" (identifier "local_24") ([ "[") (number_literal "4") (] "]")) (, ",") (binary_expression "(int)local_24[4] >> 0x1f" (cast_expression "(int)local_24[4]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "local_24[4]" (identifier "local_24") ([ "[") (number_literal "4") (] "]"))) (>> ">>") (number_literal "0x1f")) (, ",") (identifier "uVar15") (, ",") (number_literal "1") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "uVar7 = FUN_003ac4d0(8);" (assignment_expression "uVar7 = FUN_003ac4d0(8)" (identifier "uVar7") (= "=") (call_expression "FUN_003ac4d0(8)" (identifier "FUN_003ac4d0") (argument_list "(8)" (( "(") (number_literal "8") () ")")))) (; ";")) (expression_statement "FUN_00225ca0(uVar7,uVar6,uVar15);" (call_expression "FUN_00225ca0(uVar7,uVar6,uVar15)" (identifier "FUN_00225ca0") (argument_list "(uVar7,uVar6,uVar15)" (( "(") (identifier "uVar7") (, ",") (identifier "uVar6") (, ",") (identifier "uVar15") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x22c) = uVar7;" (assignment_expression "*(undefined4 *)(param_1 + 0x22c) = uVar7" (pointer_expression "*(undefined4 *)(param_1 + 0x22c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x22c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x22c)" (( "(") (binary_expression "param_1 + 0x22c" (identifier "param_1") (+ "+") (number_literal "0x22c")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "uVar15 = local_24[1];" (assignment_expression "uVar15 = local_24[1]" (identifier "uVar15") (= "=") (subscript_expression "local_24[1]" (identifier "local_24") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar6 = extraout_EDX_00;" (assignment_expression "uVar6 = extraout_EDX_00" (identifier "uVar6") (= "=") (identifier "extraout_EDX_00")) (; ";")) (} "}"))) (if_statement "if (uVar15 == 0x7000002a) {\n          if (*(int *)(param_1 + 0x230) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);\n          }\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          psVar8 = (short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          psVar9 = (short *)FUN_003ac4d0(0x18);\n          psVar9[0] = 0;\n          psVar9[1] = 0;\n          psVar9[2] = 0;\n          psVar9[3] = 0;\n          sVar2 = *psVar8;\n          psVar9[4] = 0;\n          psVar9[5] = 0;\n          psVar9[6] = 0;\n          psVar9[7] = 0;\n          psVar9[8] = 0;\n          psVar9[9] = 0;\n          psVar9[10] = 0;\n          psVar9[0xb] = 0;\n          *(short **)(param_1 + 0x230) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined4 *)(param_1 + 4);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0023b810(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((int)psVar9 + 3) = *(undefined1 *)((int)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((int)psVar9 + 5) = *(undefined1 *)((int)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((int)psVar9 + 7) = *(undefined1 *)((int)psVar8 + 7);\n          *(undefined4 *)(psVar9 + 4) = *(undefined4 *)(psVar8 + 4);\n          *(undefined4 *)(psVar9 + 6) = *(undefined4 *)(psVar8 + 6);\n          *(undefined4 *)(psVar9 + 8) = *(undefined4 *)(psVar8 + 8);\n          *(undefined4 *)(psVar9 + 10) = *(undefined4 *)(psVar8 + 10);\n          uVar15 = local_24[1];\n        }" (if "if") (parenthesized_expression "(uVar15 == 0x7000002a)" (( "(") (binary_expression "uVar15 == 0x7000002a" (identifier "uVar15") (== "==") (number_literal "0x7000002a")) () ")")) (compound_statement "{\n          if (*(int *)(param_1 + 0x230) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);\n          }\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          psVar8 = (short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0);\n          psVar9 = (short *)FUN_003ac4d0(0x18);\n          psVar9[0] = 0;\n          psVar9[1] = 0;\n          psVar9[2] = 0;\n          psVar9[3] = 0;\n          sVar2 = *psVar8;\n          psVar9[4] = 0;\n          psVar9[5] = 0;\n          psVar9[6] = 0;\n          psVar9[7] = 0;\n          psVar9[8] = 0;\n          psVar9[9] = 0;\n          psVar9[10] = 0;\n          psVar9[0xb] = 0;\n          *(short **)(param_1 + 0x230) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined4 *)(param_1 + 4);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0023b810(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((int)psVar9 + 3) = *(undefined1 *)((int)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((int)psVar9 + 5) = *(undefined1 *)((int)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((int)psVar9 + 7) = *(undefined1 *)((int)psVar8 + 7);\n          *(undefined4 *)(psVar9 + 4) = *(undefined4 *)(psVar8 + 4);\n          *(undefined4 *)(psVar9 + 6) = *(undefined4 *)(psVar8 + 6);\n          *(undefined4 *)(psVar9 + 8) = *(undefined4 *)(psVar8 + 8);\n          *(undefined4 *)(psVar9 + 10) = *(undefined4 *)(psVar8 + 10);\n          uVar15 = local_24[1];\n        }" ({ "{") (if_statement "if (*(int *)(param_1 + 0x230) != 0) {\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);\n          }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x230) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x230) != 0" (pointer_expression "*(int *)(param_1 + 0x230)" (* "*") (cast_expression "(int *)(param_1 + 0x230)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x230)" (( "(") (binary_expression "param_1 + 0x230" (identifier "param_1") (+ "+") (number_literal "0x230")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n            FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);\n          }" ({ "{") (expression_statement "FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);" (call_expression "FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6)" (identifier "FUN_002446e0") (argument_list "("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6)" (( "(") (string_literal ""../../gold/mips.cc"" (" """) (string_content "../../gold/mips.cc") (" """)) (, ",") (number_literal "0x1aeb") (, ",") (string_literal ""do_read_symbols"" (" """) (string_content "do_read_symbols") (" """)) (, ",") (identifier "uVar6") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x1c) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x1c) == 0" (pointer_expression "*(int *)(param_1 + 0x1c)" (* "*") (cast_expression "(int *)(param_1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001bbcba;" (goto "goto") (statement_identifier "LAB_001bbcba") (; ";"))) (expression_statement "psVar8 = (short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0);" (assignment_expression "psVar8 = (short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0)" (identifier "psVar8") (= "=") (cast_expression "(short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0)" (identifier "FUN_0023eb50") (argument_list "(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,local_24[5],1,0)" (( "(") (binary_expression "*(int *)(param_1 + 0x1c) + 0x1c" (pointer_expression "*(int *)(param_1 + 0x1c)" (* "*") (cast_expression "(int *)(param_1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))) (+ "+") (number_literal "0x1c")) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x20)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x24)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")")))) (, ",") (subscript_expression "local_24[4]" (identifier "local_24") ([ "[") (number_literal "4") (] "]")) (, ",") (binary_expression "(int)local_24[4] >> 0x1f" (cast_expression "(int)local_24[4]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "local_24[4]" (identifier "local_24") ([ "[") (number_literal "4") (] "]"))) (>> ">>") (number_literal "0x1f")) (, ",") (subscript_expression "local_24[5]" (identifier "local_24") ([ "[") (number_literal "5") (] "]")) (, ",") (number_literal "1") (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "psVar9 = (short *)FUN_003ac4d0(0x18);" (assignment_expression "psVar9 = (short *)FUN_003ac4d0(0x18)" (identifier "psVar9") (= "=") (cast_expression "(short *)FUN_003ac4d0(0x18)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_003ac4d0(0x18)" (identifier "FUN_003ac4d0") (argument_list "(0x18)" (( "(") (number_literal "0x18") () ")"))))) (; ";")) (expression_statement "psVar9[0] = 0;" (assignment_expression "psVar9[0] = 0" (subscript_expression "psVar9[0]" (identifier "psVar9") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "psVar9[1] = 0;" (assignment_expression "psVar9[1] = 0" (subscript_expression "psVar9[1]" (identifier "psVar9") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "psVar9[2] = 0;" (assignment_expression "psVar9[2] = 0" (subscript_expression "psVar9[2]" (identifier "psVar9") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "psVar9[3] = 0;" (assignment_expression "psVar9[3] = 0" (subscript_expression "psVar9[3]" (identifier "psVar9") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "sVar2 = *psVar8;" (assignment_expression "sVar2 = *psVar8" (identifier "sVar2") (= "=") (pointer_expression "*psVar8" (* "*") (identifier "psVar8"))) (; ";")) (expression_statement "psVar9[4] = 0;" (assignment_expression "psVar9[4] = 0" (subscript_expression "psVar9[4]" (identifier "psVar9") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "psVar9[5] = 0;" (assignment_expression "psVar9[5] = 0" (subscript_expression "psVar9[5]" (identifier "psVar9") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "psVar9[6] = 0;" (assignment_expression "psVar9[6] = 0" (subscript_expression "psVar9[6]" (identifier "psVar9") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "psVar9[7] = 0;" (assignment_expression "psVar9[7] = 0" (subscript_expression "psVar9[7]" (identifier "psVar9") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "psVar9[8] = 0;" (assignment_expression "psVar9[8] = 0" (subscript_expression "psVar9[8]" (identifier "psVar9") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "psVar9[9] = 0;" (assignment_expression "psVar9[9] = 0" (subscript_expression "psVar9[9]" (identifier "psVar9") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "psVar9[10] = 0;" (assignment_expression "psVar9[10] = 0" (subscript_expression "psVar9[10]" (identifier "psVar9") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "psVar9[0xb] = 0;" (assignment_expression "psVar9[0xb] = 0" (subscript_expression "psVar9[0xb]" (identifier "psVar9") ([ "[") (number_literal "0xb") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(short **)(param_1 + 0x230) = psVar9;" (assignment_expression "*(short **)(param_1 + 0x230) = psVar9" (pointer_expression "*(short **)(param_1 + 0x230)" (* "*") (cast_expression "(short **)(param_1 + 0x230)" (( "(") (type_descriptor "short **" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x230)" (( "(") (binary_expression "param_1 + 0x230" (identifier "param_1") (+ "+") (number_literal "0x230")) () ")")))) (= "=") (identifier "psVar9")) (; ";")) (expression_statement "*psVar9 = sVar2;" (assignment_expression "*psVar9 = sVar2" (pointer_expression "*psVar9" (* "*") (identifier "psVar9")) (= "=") (identifier "sVar2")) (; ";")) (if_statement "if (sVar2 != 0) {\n            uVar6 = *(undefined4 *)(param_1 + 4);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0023b810(uVar7,uVar6,sVar2);\n            return;\n          }" (if "if") (parenthesized_expression "(sVar2 != 0)" (( "(") (binary_expression "sVar2 != 0" (identifier "sVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            uVar6 = *(undefined4 *)(param_1 + 4);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0023b810(uVar7,uVar6,sVar2);\n            return;\n          }" ({ "{") (expression_statement "uVar6 = *(undefined4 *)(param_1 + 4);" (assignment_expression "uVar6 = *(undefined4 *)(param_1 + 4)" (identifier "uVar6") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 4)" (* "*") (cast_expression "(undefined4 *)(param_1 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");" (assignment_expression "uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u")" (identifier "uVar7") (= "=") (call_expression "gettext("%s: .MIPS.abiflags section has unsupported version %u")" (identifier "gettext") (argument_list "("%s: .MIPS.abiflags section has unsupported version %u")" (( "(") (string_literal ""%s: .MIPS.abiflags section has unsupported version %u"" (" """) (string_content "%s: .MIPS.abiflags section has unsupported version %u") (" """)) () ")")))) (; ";")) (expression_statement "FUN_0023b810(uVar7,uVar6,sVar2);" (call_expression "FUN_0023b810(uVar7,uVar6,sVar2)" (identifier "FUN_0023b810") (argument_list "(uVar7,uVar6,sVar2)" (( "(") (identifier "uVar7") (, ",") (identifier "uVar6") (, ",") (identifier "sVar2") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "*(char *)(psVar9 + 1) = (char)psVar8[1];" (assignment_expression "*(char *)(psVar9 + 1) = (char)psVar8[1]" (pointer_expression "*(char *)(psVar9 + 1)" (* "*") (cast_expression "(char *)(psVar9 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(psVar9 + 1)" (( "(") (binary_expression "psVar9 + 1" (identifier "psVar9") (+ "+") (number_literal "1")) () ")")))) (= "=") (cast_expression "(char)psVar8[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "psVar8[1]" (identifier "psVar8") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "*(undefined1 *)((int)psVar9 + 3) = *(undefined1 *)((int)psVar8 + 3);" (assignment_expression "*(undefined1 *)((int)psVar9 + 3) = *(undefined1 *)((int)psVar8 + 3)" (pointer_expression "*(undefined1 *)((int)psVar9 + 3)" (* "*") (cast_expression "(undefined1 *)((int)psVar9 + 3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)psVar9 + 3)" (( "(") (binary_expression "(int)psVar9 + 3" (cast_expression "(int)psVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "psVar9")) (+ "+") (number_literal "3")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)((int)psVar8 + 3)" (* "*") (cast_expression "(undefined1 *)((int)psVar8 + 3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)psVar8 + 3)" (( "(") (binary_expression "(int)psVar8 + 3" (cast_expression "(int)psVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "psVar8")) (+ "+") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "*(char *)(psVar9 + 2) = (char)psVar8[2];" (assignment_expression "*(char *)(psVar9 + 2) = (char)psVar8[2]" (pointer_expression "*(char *)(psVar9 + 2)" (* "*") (cast_expression "(char *)(psVar9 + 2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(psVar9 + 2)" (( "(") (binary_expression "psVar9 + 2" (identifier "psVar9") (+ "+") (number_literal "2")) () ")")))) (= "=") (cast_expression "(char)psVar8[2]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "psVar8[2]" (identifier "psVar8") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "*(undefined1 *)((int)psVar9 + 5) = *(undefined1 *)((int)psVar8 + 5);" (assignment_expression "*(undefined1 *)((int)psVar9 + 5) = *(undefined1 *)((int)psVar8 + 5)" (pointer_expression "*(undefined1 *)((int)psVar9 + 5)" (* "*") (cast_expression "(undefined1 *)((int)psVar9 + 5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)psVar9 + 5)" (( "(") (binary_expression "(int)psVar9 + 5" (cast_expression "(int)psVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "psVar9")) (+ "+") (number_literal "5")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)((int)psVar8 + 5)" (* "*") (cast_expression "(undefined1 *)((int)psVar8 + 5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)psVar8 + 5)" (( "(") (binary_expression "(int)psVar8 + 5" (cast_expression "(int)psVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "psVar8")) (+ "+") (number_literal "5")) () ")"))))) (; ";")) (expression_statement "*(char *)(psVar9 + 3) = (char)psVar8[3];" (assignment_expression "*(char *)(psVar9 + 3) = (char)psVar8[3]" (pointer_expression "*(char *)(psVar9 + 3)" (* "*") (cast_expression "(char *)(psVar9 + 3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(psVar9 + 3)" (( "(") (binary_expression "psVar9 + 3" (identifier "psVar9") (+ "+") (number_literal "3")) () ")")))) (= "=") (cast_expression "(char)psVar8[3]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "psVar8[3]" (identifier "psVar8") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "*(undefined1 *)((int)psVar9 + 7) = *(undefined1 *)((int)psVar8 + 7);" (assignment_expression "*(undefined1 *)((int)psVar9 + 7) = *(undefined1 *)((int)psVar8 + 7)" (pointer_expression "*(undefined1 *)((int)psVar9 + 7)" (* "*") (cast_expression "(undefined1 *)((int)psVar9 + 7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)psVar9 + 7)" (( "(") (binary_expression "(int)psVar9 + 7" (cast_expression "(int)psVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "psVar9")) (+ "+") (number_literal "7")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)((int)psVar8 + 7)" (* "*") (cast_expression "(undefined1 *)((int)psVar8 + 7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)psVar8 + 7)" (( "(") (binary_expression "(int)psVar8 + 7" (cast_expression "(int)psVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "psVar8")) (+ "+") (number_literal "7")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(psVar9 + 4) = *(undefined4 *)(psVar8 + 4);" (assignment_expression "*(undefined4 *)(psVar9 + 4) = *(undefined4 *)(psVar8 + 4)" (pointer_expression "*(undefined4 *)(psVar9 + 4)" (* "*") (cast_expression "(undefined4 *)(psVar9 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(psVar9 + 4)" (( "(") (binary_expression "psVar9 + 4" (identifier "psVar9") (+ "+") (number_literal "4")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(psVar8 + 4)" (* "*") (cast_expression "(undefined4 *)(psVar8 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(psVar8 + 4)" (( "(") (binary_expression "psVar8 + 4" (identifier "psVar8") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(psVar9 + 6) = *(undefined4 *)(psVar8 + 6);" (assignment_expression "*(undefined4 *)(psVar9 + 6) = *(undefined4 *)(psVar8 + 6)" (pointer_expression "*(undefined4 *)(psVar9 + 6)" (* "*") (cast_expression "(undefined4 *)(psVar9 + 6)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(psVar9 + 6)" (( "(") (binary_expression "psVar9 + 6" (identifier "psVar9") (+ "+") (number_literal "6")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(psVar8 + 6)" (* "*") (cast_expression "(undefined4 *)(psVar8 + 6)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(psVar8 + 6)" (( "(") (binary_expression "psVar8 + 6" (identifier "psVar8") (+ "+") (number_literal "6")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(psVar9 + 8) = *(undefined4 *)(psVar8 + 8);" (assignment_expression "*(undefined4 *)(psVar9 + 8) = *(undefined4 *)(psVar8 + 8)" (pointer_expression "*(undefined4 *)(psVar9 + 8)" (* "*") (cast_expression "(undefined4 *)(psVar9 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(psVar9 + 8)" (( "(") (binary_expression "psVar9 + 8" (identifier "psVar9") (+ "+") (number_literal "8")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(psVar8 + 8)" (* "*") (cast_expression "(undefined4 *)(psVar8 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(psVar8 + 8)" (( "(") (binary_expression "psVar8 + 8" (identifier "psVar8") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(psVar9 + 10) = *(undefined4 *)(psVar8 + 10);" (assignment_expression "*(undefined4 *)(psVar9 + 10) = *(undefined4 *)(psVar8 + 10)" (pointer_expression "*(undefined4 *)(psVar9 + 10)" (* "*") (cast_expression "(undefined4 *)(psVar9 + 10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(psVar9 + 10)" (( "(") (binary_expression "psVar9 + 10" (identifier "psVar9") (+ "+") (number_literal "10")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(psVar8 + 10)" (* "*") (cast_expression "(undefined4 *)(psVar8 + 10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(psVar8 + 10)" (( "(") (binary_expression "psVar8 + 10" (identifier "psVar8") (+ "+") (number_literal "10")) () ")"))))) (; ";")) (expression_statement "uVar15 = local_24[1];" (assignment_expression "uVar15 = local_24[1]" (identifier "uVar15") (= "=") (subscript_expression "local_24[1]" (identifier "local_24") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}"))) (if_statement "if (uVar15 == 0x7000000d) {\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          pcVar11 = (char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0);\n          pcVar16 = pcVar11 + uVar15;\n          for (; pcVar11 + 8 <= pcVar16; pcVar11 = pcVar11 + bVar1) {\n            bVar1 = pcVar11[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }\n            if (*pcVar11 == '\x01') {\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }\n          }\n        }" (if "if") (parenthesized_expression "(uVar15 == 0x7000000d)" (( "(") (binary_expression "uVar15 == 0x7000000d" (identifier "uVar15") (== "==") (number_literal "0x7000000d")) () ")")) (compound_statement "{\n          uVar15 = local_24[5];\n          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;\n          pcVar11 = (char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0);\n          pcVar16 = pcVar11 + uVar15;\n          for (; pcVar11 + 8 <= pcVar16; pcVar11 = pcVar11 + bVar1) {\n            bVar1 = pcVar11[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }\n            if (*pcVar11 == '\x01') {\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }\n          }\n        }" ({ "{") (expression_statement "uVar15 = local_24[5];" (assignment_expression "uVar15 = local_24[5]" (identifier "uVar15") (= "=") (subscript_expression "local_24[5]" (identifier "local_24") ([ "[") (number_literal "5") (] "]"))) (; ";")) (if_statement "if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x1c) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x1c) == 0" (pointer_expression "*(int *)(param_1 + 0x1c)" (* "*") (cast_expression "(int *)(param_1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001bbcba;" (goto "goto") (statement_identifier "LAB_001bbcba") (; ";"))) (expression_statement "pcVar11 = (char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0);" (assignment_expression "pcVar11 = (char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0)" (identifier "pcVar11") (= "=") (cast_expression "(char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0)" (identifier "FUN_0023eb50") (argument_list "(*(int *)(param_1 + 0x1c) + 0x1c,\n                                         *(undefined4 *)(param_1 + 0x20),\n                                         *(undefined4 *)(param_1 + 0x24),local_24[4],\n                                         (int)local_24[4] >> 0x1f,uVar15,1,0)" (( "(") (binary_expression "*(int *)(param_1 + 0x1c) + 0x1c" (pointer_expression "*(int *)(param_1 + 0x1c)" (* "*") (cast_expression "(int *)(param_1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))) (+ "+") (number_literal "0x1c")) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x20)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x24)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")")))) (, ",") (subscript_expression "local_24[4]" (identifier "local_24") ([ "[") (number_literal "4") (] "]")) (, ",") (binary_expression "(int)local_24[4] >> 0x1f" (cast_expression "(int)local_24[4]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "local_24[4]" (identifier "local_24") ([ "[") (number_literal "4") (] "]"))) (>> ">>") (number_literal "0x1f")) (, ",") (identifier "uVar15") (, ",") (number_literal "1") (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "pcVar16 = pcVar11 + uVar15;" (assignment_expression "pcVar16 = pcVar11 + uVar15" (identifier "pcVar16") (= "=") (binary_expression "pcVar11 + uVar15" (identifier "pcVar11") (+ "+") (identifier "uVar15"))) (; ";")) (for_statement "for (; pcVar11 + 8 <= pcVar16; pcVar11 = pcVar11 + bVar1) {\n            bVar1 = pcVar11[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }\n            if (*pcVar11 == '\x01') {\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }\n          }" (for "for") (( "(") (; ";") (binary_expression "pcVar11 + 8 <= pcVar16" (binary_expression "pcVar11 + 8" (identifier "pcVar11") (+ "+") (number_literal "8")) (<= "<=") (identifier "pcVar16")) (; ";") (assignment_expression "pcVar11 = pcVar11 + bVar1" (identifier "pcVar11") (= "=") (binary_expression "pcVar11 + bVar1" (identifier "pcVar11") (+ "+") (identifier "bVar1"))) () ")") (compound_statement "{\n            bVar1 = pcVar11[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }\n            if (*pcVar11 == '\x01') {\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }\n          }" ({ "{") (expression_statement "bVar1 = pcVar11[1];" (assignment_expression "bVar1 = pcVar11[1]" (identifier "bVar1") (= "=") (subscript_expression "pcVar11[1]" (identifier "pcVar11") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (bVar1 < 8) {\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }" (if "if") (parenthesized_expression "(bVar1 < 8)" (( "(") (binary_expression "bVar1 < 8" (identifier "bVar1") (< "<") (number_literal "8")) () ")")) (compound_statement "{\n              uVar6 = *(undefined4 *)(param_1 + 4);\n              pcVar16 = ".MIPS.options";\n              if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);\n              bVar4 = true;\n              goto LAB_001bba8f;\n            }" ({ "{") (expression_statement "uVar6 = *(undefined4 *)(param_1 + 4);" (assignment_expression "uVar6 = *(undefined4 *)(param_1 + 4)" (identifier "uVar6") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 4)" (* "*") (cast_expression "(undefined4 *)(param_1 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "pcVar16 = ".MIPS.options";" (assignment_expression "pcVar16 = ".MIPS.options"" (identifier "pcVar16") (= "=") (string_literal "".MIPS.options"" (" """) (string_content ".MIPS.options") (" """))) (; ";")) (if_statement "if ((param_1[0x1e4] & 2U) == 0) {\n                pcVar16 = ".options";\n              }" (if "if") (parenthesized_expression "((param_1[0x1e4] & 2U) == 0)" (( "(") (binary_expression "(param_1[0x1e4] & 2U) == 0" (parenthesized_expression "(param_1[0x1e4] & 2U)" (( "(") (binary_expression "param_1[0x1e4] & 2U" (subscript_expression "param_1[0x1e4]" (identifier "param_1") ([ "[") (number_literal "0x1e4") (] "]")) (& "&") (number_literal "2U")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                pcVar16 = ".options";\n              }" ({ "{") (expression_statement "pcVar16 = ".options";" (assignment_expression "pcVar16 = ".options"" (identifier "pcVar16") (= "=") (string_literal "".options"" (" """) (string_content ".options") (" """))) (; ";")) (} "}"))) (expression_statement "uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");" (assignment_expression "uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header")" (identifier "uVar7") (= "=") (call_expression "gettext("%s: Warning: bad `%s\' option size %u smaller than its header")" (identifier "gettext") (argument_list "("%s: Warning: bad `%s\' option size %u smaller than its header")" (( "(") (string_literal ""%s: Warning: bad `%s\' option size %u smaller than its header"" (" """) (string_content "%s: Warning: bad `%s") (escape_sequence "\'") (string_content " option size %u smaller than its header") (" """)) () ")")))) (; ";")) (expression_statement "FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);" (call_expression "FUN_0023b810(uVar7,uVar6,pcVar16,bVar1)" (identifier "FUN_0023b810") (argument_list "(uVar7,uVar6,pcVar16,bVar1)" (( "(") (identifier "uVar7") (, ",") (identifier "uVar6") (, ",") (identifier "pcVar16") (, ",") (identifier "bVar1") () ")"))) (; ";")) (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" (identifier "bVar4") (= "=") (true "true")) (; ";")) (goto_statement "goto LAB_001bba8f;" (goto "goto") (statement_identifier "LAB_001bba8f") (; ";")) (} "}"))) (if_statement "if (*pcVar11 == '\x01') {\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }" (if "if") (parenthesized_expression "(*pcVar11 == '\x01')" (( "(") (binary_expression "*pcVar11 == '\x01'" (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")) (compound_statement "{\n              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);\n            }" ({ "{") (expression_statement "*(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);" (assignment_expression "*(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c)" (pointer_expression "*(undefined4 *)(param_1 + 0x1e0)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x1e0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1e0)" (( "(") (binary_expression "param_1 + 0x1e0" (identifier "param_1") (+ "+") (number_literal "0x1e0")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(pcVar11 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(pcVar11 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x1c)" (( "(") (binary_expression "pcVar11 + 0x1c" (identifier "pcVar11") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" (identifier "bVar4") (= "=") (true "true")) (; ";")) (} "}")))) (goto_statement "goto LAB_001bba8f;" (goto "goto") (statement_identifier "LAB_001bba8f") (; ";")) (} "}"))) (} "}")) (else_clause "else if (iVar5 != 2) {\n                    \n    FUN_002446e0("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }" (else "else") (if_statement "if (iVar5 != 2) {\n                    \n    FUN_002446e0("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }" (if "if") (parenthesized_expression "(iVar5 != 2)" (( "(") (binary_expression "iVar5 != 2" (identifier "iVar5") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n                    \n    FUN_002446e0("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }" ({ "{") (expression_statement "FUN_002446e0("../../gold/mips.cc",0x1a9a,"do_read_symbols");" (call_expression "FUN_002446e0("../../gold/mips.cc",0x1a9a,"do_read_symbols")" (identifier "FUN_002446e0") (argument_list "("../../gold/mips.cc",0x1a9a,"do_read_symbols")" (( "(") (string_literal ""../../gold/mips.cc"" (" """) (string_content "../../gold/mips.cc") (" """)) (, ",") (number_literal "0x1a9a") (, ",") (string_literal ""do_read_symbols"" (" """) (string_content "do_read_symbols") (" """)) () ")"))) (; ";")) (} "}"))))) (labeled_statement "LAB_001bb77c:\n  param_1[0x1e4] = param_1[0x1e4] & 0xf7;" (statement_identifier "LAB_001bb77c") (: ":") (expression_statement "param_1[0x1e4] = param_1[0x1e4] & 0xf7;" (assignment_expression "param_1[0x1e4] = param_1[0x1e4] & 0xf7" (subscript_expression "param_1[0x1e4]" (identifier "param_1") ([ "[") (number_literal "0x1e4") (] "]")) (= "=") (binary_expression "param_1[0x1e4] & 0xf7" (subscript_expression "param_1[0x1e4]" (identifier "param_1") ([ "[") (number_literal "0x1e4") (] "]")) (& "&") (number_literal "0xf7"))) (; ";"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Type propagation algorithm not settling */
/* DWARF original prototype: void do_read_symbols(Mips_relobj<32,_false> * this, Read_symbols_data *
   sd) */

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

{
  type_10 var_36;
  type_1 var_30;
  type_2 *var_5;
  type_3 var_7;
  type_4 var_35;
  type_5 pcVar6;
  bool bVar7;
  type_6 *var_10;
  type_7 *puVar9;
  type_6 *var_12;
  type_8 *this_00;
  type_1 *var_33;
  var_1<false> *pMVar12;
  type_7 var_23;
  type_9 *pVVar14;
  type_6 *var_34;
  char *format;
  char *pcVar16;
  int var_16;
  type_7 uVar18;
  type_7 var_13;
  type_7 var_25;
  type_10 *var_17;
  type_10 *var_18;
  type_10 *var_15;
  bool var_24;
  bool var_26;
  bool bVar26;
  type_10 bVar27;
  type_11 *in_stack_ffffffb4;
  type_7 var_19;
  type_7 *var_28;
  
  bVar27 = 0;
  gold::var_2<32,var_3>::var_4
            (&this->super_Sized_relobj_file<32,var_3>,sd);
  var_5 = (this->super_Sized_relobj_file<32,var_3>).super_Sized_relobj<32,var_3>.super_Relobj.
           super_Object.input_file_;
  if (var_5 == (type_2 *)0x0) {
LAB_001bbcba:
                    /* WARNING: Subroutine does not return */
    gold::Object::var_6(in_stack_ffffffb4);
  }
  var_7 = var_5->format_;
  if (var_7 == var_8) {
    var_10 = gold::Object::var_9((type_11 *)this,0,0x34,true,false);
    this->processor_specific_flags_ = *(type_12 *)(var_10 + 0x24);
    var_10 = sd->section_names->data_;
    std::vector<var_21,_std::allocator<var_21>var_22>::var_11
              (&this->section_is_mips16_fn_stub_,
               (this->super_Sized_relobj_file<32,var_3>).super_Sized_relobj<32,var_3>.super_Relobj
               .super_Object.shnum_,false);
    std::vector<var_21,_std::allocator<var_21>var_22>::var_11
              (&this->section_is_mips16_call_stub_,
               (this->super_Sized_relobj_file<32,var_3>).super_Sized_relobj<32,var_3>.super_Relobj
               .super_Object.shnum_,false);
    std::vector<var_21,_std::allocator<var_21>var_22>::var_11
              (&this->section_is_mips16_call_fp_stub_,
               (this->super_Sized_relobj_file<32,var_3>).super_Sized_relobj<32,var_3>.super_Relobj
               .super_Object.shnum_,false);
    bVar7 = false;
    var_12 = sd->section_headers->data_;
    var_28 = (type_7 *)(var_12 + 0x28);
    if (1 < (this->super_Sized_relobj_file<32,var_3>).super_Sized_relobj<32,var_3>.super_Relobj.
            super_Object.shnum_) {
      var_13 = *(type_7 *)(var_12 + 0x2c);
      var_19 = 1;
      if (var_13 != 2) goto LAB_001bb8fa;
      var_19 = 1;
      do {
        if (0x10 < var_28[5]) {
          bVar7 = true;
        }
LAB_001bba8f:
        var_16 = 10;
        var_24 = var_14((type_7)var_10,*var_28);
        var_15 = var_10 + *var_28;
        bVar26 = var_15 == (type_10 *)0x0;
        var_17 = (type_10 *)".mips16.fn";
        var_18 = var_15;
        do {
          if (var_16 == 0) break;
          var_16 = var_16 + -1;
          var_24 = *var_17 < *var_18;
          bVar26 = *var_17 == *var_18;
          var_17 = var_17 + (type_7)bVar27 * -2 + 1;
          var_18 = var_18 + (type_7)bVar27 * -2 + 1;
        } while (bVar26);
        var_23 = var_19 >> 5;
        puVar9 = (this->section_is_mips16_fn_stub_).super__Bvector_base<var_20::allocator<var_21>var_22>.
                 _M_impl.super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p + var_23;
        var_25 = 1 << ((type_10)var_19 & 0x1f);
        var_13 = *puVar9;
        var_26 = false;
        var_24 = (!var_24 && !bVar26) == var_24;
        uVar18 = var_13 & ~var_25;
        if (var_24) {
          uVar18 = var_13 | var_25;
        }
        *puVar9 = uVar18;
        var_16 = 0xd;
        var_17 = (type_10 *)".mips16.call.";
        var_18 = var_15;
        do {
          if (var_16 == 0) break;
          var_16 = var_16 + -1;
          var_26 = *var_17 < *var_18;
          var_24 = *var_17 == *var_18;
          var_17 = var_17 + (type_7)bVar27 * -2 + 1;
          var_18 = var_18 + (type_7)bVar27 * -2 + 1;
        } while (var_24);
        puVar9 = (this->section_is_mips16_call_stub_).super__Bvector_base<var_20::allocator<var_21>var_22>.
                 _M_impl.super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p + var_23;
        if ((!var_26 && !var_24) == var_26) {
          var_13 = *puVar9 | var_25;
        }
        else {
          var_13 = ~var_25 & *puVar9;
        }
        bVar26 = var_13 == 0;
        var_24 = false;
        *puVar9 = var_13;
        var_16 = 0x10;
        var_17 = (type_10 *)".mips16.call.fp.";
        var_18 = var_15;
        do {
          if (var_16 == 0) break;
          var_16 = var_16 + -1;
          var_24 = *var_17 < *var_18;
          bVar26 = *var_17 == *var_18;
          var_17 = var_17 + (type_7)bVar27 * -2 + 1;
          var_18 = var_18 + (type_7)bVar27 * -2 + 1;
        } while (bVar26);
        puVar9 = (this->section_is_mips16_call_fp_stub_).super__Bvector_base<var_20::allocator<var_21>var_22>.
                 _M_impl.super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p + var_23;
        if ((!var_24 && !bVar26) == var_24) {
          var_25 = var_25 | *puVar9;
        }
        else {
          var_25 = ~var_25 & *puVar9;
        }
        bVar26 = var_25 == 0;
        var_24 = false;
        *puVar9 = var_25;
        var_16 = 5;
        var_17 = &DAT_0044d56a;
        do {
          if (var_16 == 0) break;
          var_16 = var_16 + -1;
          var_24 = *var_15 < *var_17;
          bVar26 = *var_15 == *var_17;
          var_15 = var_15 + (type_7)bVar27 * -2 + 1;
          var_17 = var_17 + (type_7)bVar27 * -2 + 1;
        } while (bVar26);
        if ((!var_24 && !bVar26) == var_24) {
          if (this->pdr_shndx_ != 0xffffffff) {
                    /* WARNING: Subroutine does not return */
            gold::var_27("../../gold/mips.cc",0x1b6f,"do_read_symbols");
          }
          this->pdr_shndx_ = var_19;
        }
        var_19 = var_19 + 1;
        puVar9 = var_28 + 10;
        if ((this->super_Sized_relobj_file<32,var_3>).super_Sized_relobj<32,var_3>.super_Relobj.
            super_Object.shnum_ <= var_19) {
          if (bVar7) {
            return;
          }
          goto LAB_001bb77c;
        }
        var_13 = var_28[0xb];
        var_28 = puVar9;
      } while (var_13 == 2);
LAB_001bb8fa:
      if (var_13 != 3) {
        if (var_13 == 0x70000006) {
          this->field_0x1e4 = this->field_0x1e4 | 4;
          var_5 = (this->super_Sized_relobj_file<32,var_3>).super_Sized_relobj<32,var_3>.
                   super_Relobj.super_Object.input_file_;
          if (var_5 == (type_2 *)0x0) goto LAB_001bbcba;
          pVVar14 = (type_9 *)
                    gold::File_read::var_9
                              (&var_5->file_,
                               (this->super_Sized_relobj_file<32,var_3>).
                               super_Sized_relobj<32,var_3>.super_Relobj.super_Object.offset_,
                               (type_13)(int)var_28[4],var_28[5],true,false);
          this->gp_ = pVVar14[5];
          this->gprmask_ = *pVVar14;
          this->cprmask1_ = pVVar14[1];
          this->cprmask2_ = pVVar14[2];
          this->cprmask3_ = pVVar14[3];
          this->cprmask4_ = pVVar14[4];
          var_13 = var_28[1];
        }
        if (var_13 == 0x6ffffff5) {
          if (this->attributes_section_data_ != (type_8 *)0x0) {
                    /* WARNING: Subroutine does not return */
            gold::var_27("../../gold/mips.cc",0x1adf,"do_read_symbols");
          }
          var_35 = var_28[5];
          var_5 = (this->super_Sized_relobj_file<32,var_3>).super_Sized_relobj<32,var_3>.
                   super_Relobj.super_Object.input_file_;
          if (var_5 == (type_2 *)0x0) goto LAB_001bbcba;
          var_12 = gold::File_read::var_9
                              (&var_5->file_,
                               (this->super_Sized_relobj_file<32,var_3>).
                               super_Sized_relobj<32,var_3>.super_Relobj.super_Object.offset_,
                               (type_13)(int)var_28[4],var_35,true,false);
          this_00 = (type_8 *)var_29(8);
                    /* try { // try from 001bb97b to 001bb97f has its CatchHandler @ 001bbd31 */
          gold::Attributes_section_data::type_8(this_00,var_12,var_35);
          this->attributes_section_data_ = this_00;
          var_13 = var_28[1];
        }
        if (var_13 == 0x7000002a) {
          if (this->abiflags_ != (var_1<false> *)0x0) {
                    /* WARNING: Subroutine does not return */
            gold::var_27("../../gold/mips.cc",0x1aeb,"do_read_symbols");
          }
          var_5 = (this->super_Sized_relobj_file<32,var_3>).super_Sized_relobj<32,var_3>.
                   super_Relobj.super_Object.input_file_;
          if (var_5 == (type_2 *)0x0) goto LAB_001bbcba;
          var_33 = (type_1 *)
                    gold::File_read::var_9
                              (&var_5->file_,
                               (this->super_Sized_relobj_file<32,var_3>).
                               super_Sized_relobj<32,var_3>.super_Relobj.super_Object.offset_,
                               (type_13)(int)var_28[4],var_28[5],true,false);
          pMVar12 = (var_1<false> *)var_29(0x18);
          pMVar12->version = 0;
          pMVar12->isa_level = '\0';
          pMVar12->isa_rev = '\0';
          pMVar12->gpr_size = '\0';
          pMVar12->cpr1_size = '\0';
          pMVar12->cpr2_size = '\0';
          pMVar12->fp_abi = '\0';
          var_30 = *var_33;
          pMVar12->isa_ext = 0;
          pMVar12->ases = 0;
          pMVar12->flags1 = 0;
          pMVar12->flags2 = 0;
          this->abiflags_ = pMVar12;
          pMVar12->version = var_30;
          if (var_30 != 0) {
            pcVar6 = (this->super_Sized_relobj_file<32,var_3>).super_Sized_relobj<32,var_3>.
                     super_Relobj.super_Object.name_._M_dataplus._M_p;
            pcVar16 = (char *)var_31("%s: .MIPS.abiflags section has unsupported version %u");
            gold::var_32(pcVar16,pcVar6,(type_7)var_30);
            return;
          }
          pMVar12->isa_level = (type_14)var_33[1];
          pMVar12->isa_rev = *(type_14 *)((int)var_33 + 3);
          pMVar12->gpr_size = (type_14)var_33[2];
          pMVar12->cpr1_size = *(type_14 *)((int)var_33 + 5);
          pMVar12->cpr2_size = (type_14)var_33[3];
          pMVar12->fp_abi = *(type_14 *)((int)var_33 + 7);
          pMVar12->isa_ext = *(type_15 *)(var_33 + 4);
          pMVar12->ases = *(type_15 *)(var_33 + 6);
          pMVar12->flags1 = *(type_15 *)(var_33 + 8);
          pMVar12->flags2 = *(type_15 *)(var_33 + 10);
          var_13 = var_28[1];
        }
        if (var_13 == 0x7000000d) {
          var_35 = var_28[5];
          var_5 = (this->super_Sized_relobj_file<32,var_3>).super_Sized_relobj<32,var_3>.
                   super_Relobj.super_Object.input_file_;
          if (var_5 == (type_2 *)0x0) goto LAB_001bbcba;
          var_34 = gold::File_read::var_9
                              (&var_5->file_,
                               (this->super_Sized_relobj_file<32,var_3>).
                               super_Sized_relobj<32,var_3>.super_Relobj.super_Object.offset_,
                               (type_13)(int)var_28[4],var_35,true,false);
          var_12 = var_34 + var_35;
          for (; var_34 + 8 <= var_12; var_34 = var_34 + var_36) {
            var_36 = var_34[1];
            if (var_36 < 8) {
              pcVar6 = (this->super_Sized_relobj_file<32,var_3>).super_Sized_relobj<32,var_3>.
                       super_Relobj.super_Object.name_._M_dataplus._M_p;
              pcVar16 = ".MIPS.options";
              if ((this->field_0x1e4 & 2) == 0) {
                pcVar16 = ".options";
              }
              format = (char *)var_31(
                                      "%s: Warning: bad `%s\' option size %u smaller than its header"
                                      );
              gold::var_32(format,pcVar6,pcVar16,(type_7)var_36);
              bVar7 = true;
              goto LAB_001bba8f;
            }
            if (*var_34 == '\x01') {
              this->gp_ = *(type_16 *)(var_34 + 0x1c);
            }
          }
        }
        bVar7 = true;
      }
      goto LAB_001bba8f;
    }
  }
  else if (var_7 != var_37) {
                    /* WARNING: Subroutine does not return */
    gold::var_27("../../gold/mips.cc",0x1a9a,"do_read_symbols");
  }
LAB_001bb77c:
  this->field_0x1e4 = this->field_0x1e4 & 0xf7;
  return;
}


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

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

void MASKED(char *param_1,int *param_2)

{
  byte bVar1;
  short sVar2;
  uint uVar3;
  bool bVar4;
  int iVar5;
  undefined4 uVar6;
  undefined4 uVar7;
  short *psVar8;
  short *psVar9;
  undefined4 *puVar10;
  char *pcVar11;
  uint uVar12;
  int iVar13;
  char cVar14;
  undefined4 extraout_EDX;
  undefined4 extraout_EDX_00;
  uint uVar15;
  char *pcVar16;
  uint uVar17;
  byte *pbVar18;
  uint *puVar19;
  byte *pbVar20;
  byte *pbVar21;
  bool bVar22;
  bool bVar23;
  bool bVar24;
  byte bVar25;
  uint local_28;
  uint *local_24;
  
  bVar25 = 0;
  FUN_002b3240(param_1,param_2);
  if (*(int *)(param_1 + 0x1c) == 0) {
LAB_001bbcba:
    FUN_00175c50();
LAB_001bbcbf:
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/mips.cc",0x1b6f,"do_read_symbols");
  }
  iVar5 = *(int *)(*(int *)(param_1 + 0x1c) + 0x90);
  if (iVar5 == 1) {
    iVar5 = FUN_001cc8a0(param_1,0,0,0x34,1,0);
    *(undefined4 *)(param_1 + 0x13c) = *(undefined4 *)(iVar5 + 0x24);
    uVar3 = *(uint *)(param_2[1] + 8);
    FUN_00104420(param_1 + 0x1ec,*(undefined4 *)(param_1 + 0x28),0);
    FUN_00104420(param_1 + 0x200,*(undefined4 *)(param_1 + 0x28),0);
    FUN_00104420(param_1 + 0x214,*(undefined4 *)(param_1 + 0x28),0);
    bVar4 = false;
    local_24 = (uint *)(*(int *)(*param_2 + 8) + 0x28);
    if (1 < *(uint *)(param_1 + 0x28)) {
      uVar15 = *(uint *)(*(int *)(*param_2 + 8) + 0x2c);
      local_28 = 1;
      uVar6 = extraout_EDX;
      pcVar16 = ".MIPS.options";
      if (uVar15 != 2) goto LAB_001bb8fa;
      local_28 = 1;
      do {
        if (0x10 < local_24[5]) {
          bVar4 = true;
        }
LAB_001bba8f:
        iVar5 = 10;
        bVar22 = CARRY4(uVar3,*local_24);
        pbVar21 = (byte *)(uVar3 + *local_24);
        bVar24 = pbVar21 == (byte *)0x0;
        pbVar18 = (byte *)".mips16.fn";
        pbVar20 = pbVar21;
        do {
          if (iVar5 == 0) break;
          iVar5 = iVar5 + -1;
          bVar22 = *pbVar18 < *pbVar20;
          bVar24 = *pbVar18 == *pbVar20;
          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;
          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;
        } while (bVar24);
        iVar5 = (local_28 >> 5) * 4;
        uVar17 = 1 << ((byte)local_28 & 0x1f);
        uVar15 = *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5);
        bVar23 = false;
        bVar22 = (!bVar22 && !bVar24) == bVar22;
        uVar12 = uVar15 & ~uVar17;
        if (bVar22) {
          uVar12 = uVar15 | uVar17;
        }
        *(uint *)(*(int *)(param_1 + 0x1ec) + iVar5) = uVar12;
        iVar13 = 0xd;
        pbVar18 = (byte *)".mips16.call.";
        pbVar20 = pbVar21;
        do {
          if (iVar13 == 0) break;
          iVar13 = iVar13 + -1;
          bVar23 = *pbVar18 < *pbVar20;
          bVar22 = *pbVar18 == *pbVar20;
          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;
          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;
        } while (bVar22);
        puVar19 = (uint *)(*(int *)(param_1 + 0x200) + iVar5);
        if ((!bVar23 && !bVar22) == bVar23) {
          uVar15 = *puVar19 | uVar17;
        }
        else {
          uVar15 = ~uVar17 & *puVar19;
        }
        bVar24 = uVar15 == 0;
        bVar22 = false;
        *puVar19 = uVar15;
        iVar13 = 0x10;
        pbVar18 = (byte *)".mips16.call.fp.";
        pbVar20 = pbVar21;
        do {
          if (iVar13 == 0) break;
          iVar13 = iVar13 + -1;
          bVar22 = *pbVar18 < *pbVar20;
          bVar24 = *pbVar18 == *pbVar20;
          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;
          pbVar20 = pbVar20 + (uint)bVar25 * -2 + 1;
        } while (bVar24);
        cVar14 = (!bVar22 && !bVar24) - bVar22;
        uVar6 = CONCAT31((int3)(uVar15 >> 8),cVar14);
        puVar19 = (uint *)(iVar5 + *(int *)(param_1 + 0x214));
        if (cVar14 == '\0') {
          uVar17 = uVar17 | *puVar19;
        }
        else {
          uVar17 = ~uVar17 & *puVar19;
        }
        bVar24 = uVar17 == 0;
        bVar22 = false;
        *puVar19 = uVar17;
        iVar5 = 5;
        pbVar18 = &DAT_0044d56a;
        do {
          if (iVar5 == 0) break;
          iVar5 = iVar5 + -1;
          bVar22 = *pbVar21 < *pbVar18;
          bVar24 = *pbVar21 == *pbVar18;
          pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;
          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;
        } while (bVar24);
        if ((!bVar22 && !bVar24) == bVar22) {
          if (*(int *)(param_1 + 0x228) != -1) goto LAB_001bbcbf;
          *(uint *)(param_1 + 0x228) = local_28;
        }
        local_28 = local_28 + 1;
        puVar19 = local_24 + 10;
        if (*(uint *)(param_1 + 0x28) <= local_28) {
          if (bVar4) {
            return;
          }
          goto LAB_001bb77c;
        }
        uVar15 = local_24[0xb];
        pcVar16 = param_1;
        local_24 = puVar19;
      } while (uVar15 == 2);
LAB_001bb8fa:
      if (uVar15 != 3) {
        if (uVar15 == 0x70000006) {
          param_1[0x1e4] = param_1[0x1e4] | 4;
          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;
          puVar10 = (undefined4 *)
                    FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),
                                 *(undefined4 *)(param_1 + 0x24),local_24[4],
                                 (int)local_24[4] >> 0x1f,local_24[5],1,0);
          *(undefined4 *)(param_1 + 0x1e0) = puVar10[5];
          *(undefined4 *)(param_1 + 0x234) = *puVar10;
          *(undefined4 *)(param_1 + 0x238) = puVar10[1];
          *(undefined4 *)(param_1 + 0x23c) = puVar10[2];
          uVar6 = puVar10[3];
          *(undefined4 *)(param_1 + 0x240) = uVar6;
          *(undefined4 *)(param_1 + 0x244) = puVar10[4];
          uVar15 = local_24[1];
          pcVar16 = param_1;
        }
        if (uVar15 == 0x6ffffff5) {
          if (*(int *)(param_1 + 0x22c) != 0) {
                    /* WARNING: Subroutine does not return */
            FUN_002446e0("../../gold/mips.cc",0x1adf,"do_read_symbols",pcVar16);
          }
          uVar15 = local_24[5];
          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;
          uVar6 = FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,*(undefined4 *)(param_1 + 0x20),
                               *(undefined4 *)(param_1 + 0x24),local_24[4],(int)local_24[4] >> 0x1f,
                               uVar15,1,0);
          uVar7 = FUN_003ac4d0(8);
                    /* try { // try from 001bb97b to 001bb97f has its CatchHandler @ 001bbd31 */
          FUN_00225ca0(uVar7,uVar6,uVar15);
          *(undefined4 *)(param_1 + 0x22c) = uVar7;
          uVar15 = local_24[1];
          uVar6 = extraout_EDX_00;
        }
        if (uVar15 == 0x7000002a) {
          if (*(int *)(param_1 + 0x230) != 0) {
                    /* WARNING: Subroutine does not return */
            FUN_002446e0("../../gold/mips.cc",0x1aeb,"do_read_symbols",uVar6);
          }
          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;
          psVar8 = (short *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,
                                         *(undefined4 *)(param_1 + 0x20),
                                         *(undefined4 *)(param_1 + 0x24),local_24[4],
                                         (int)local_24[4] >> 0x1f,local_24[5],1,0);
          psVar9 = (short *)FUN_003ac4d0(0x18);
          psVar9[0] = 0;
          psVar9[1] = 0;
          psVar9[2] = 0;
          psVar9[3] = 0;
          sVar2 = *psVar8;
          psVar9[4] = 0;
          psVar9[5] = 0;
          psVar9[6] = 0;
          psVar9[7] = 0;
          psVar9[8] = 0;
          psVar9[9] = 0;
          psVar9[10] = 0;
          psVar9[0xb] = 0;
          *(short **)(param_1 + 0x230) = psVar9;
          *psVar9 = sVar2;
          if (sVar2 != 0) {
            uVar6 = *(undefined4 *)(param_1 + 4);
            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");
            FUN_0023b810(uVar7,uVar6,sVar2);
            return;
          }
          *(char *)(psVar9 + 1) = (char)psVar8[1];
          *(undefined1 *)((int)psVar9 + 3) = *(undefined1 *)((int)psVar8 + 3);
          *(char *)(psVar9 + 2) = (char)psVar8[2];
          *(undefined1 *)((int)psVar9 + 5) = *(undefined1 *)((int)psVar8 + 5);
          *(char *)(psVar9 + 3) = (char)psVar8[3];
          *(undefined1 *)((int)psVar9 + 7) = *(undefined1 *)((int)psVar8 + 7);
          *(undefined4 *)(psVar9 + 4) = *(undefined4 *)(psVar8 + 4);
          *(undefined4 *)(psVar9 + 6) = *(undefined4 *)(psVar8 + 6);
          *(undefined4 *)(psVar9 + 8) = *(undefined4 *)(psVar8 + 8);
          *(undefined4 *)(psVar9 + 10) = *(undefined4 *)(psVar8 + 10);
          uVar15 = local_24[1];
        }
        if (uVar15 == 0x7000000d) {
          uVar15 = local_24[5];
          if (*(int *)(param_1 + 0x1c) == 0) goto LAB_001bbcba;
          pcVar11 = (char *)FUN_0023eb50(*(int *)(param_1 + 0x1c) + 0x1c,
                                         *(undefined4 *)(param_1 + 0x20),
                                         *(undefined4 *)(param_1 + 0x24),local_24[4],
                                         (int)local_24[4] >> 0x1f,uVar15,1,0);
          pcVar16 = pcVar11 + uVar15;
          for (; pcVar11 + 8 <= pcVar16; pcVar11 = pcVar11 + bVar1) {
            bVar1 = pcVar11[1];
            if (bVar1 < 8) {
              uVar6 = *(undefined4 *)(param_1 + 4);
              pcVar16 = ".MIPS.options";
              if ((param_1[0x1e4] & 2U) == 0) {
                pcVar16 = ".options";
              }
              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");
              FUN_0023b810(uVar7,uVar6,pcVar16,bVar1);
              bVar4 = true;
              goto LAB_001bba8f;
            }
            if (*pcVar11 == '\x01') {
              *(undefined4 *)(param_1 + 0x1e0) = *(undefined4 *)(pcVar11 + 0x1c);
            }
          }
        }
        bVar4 = true;
      }
      goto LAB_001bba8f;
    }
  }
  else if (iVar5 != 2) {
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/mips.cc",0x1a9a,"do_read_symbols");
  }
LAB_001bb77c:
  param_1[0x1e4] = param_1[0x1e4] & 0xf7;
  return;
}

