
/* 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_ead2ad::Mips_relobj<32,_false>::do_read_symbols
          (Mips_relobj<32,_false> *this,Read_symbols_data *sd)

{
  byte bVar1;
  ushort uVar2;
  Format FVar3;
  pointer pcVar4;
  bool bVar5;
  uchar *puVar6;
  uchar *puVar7;
  Attributes_section_data *this_00;
  ushort *puVar8;
  Mips_abiflags<false> *pMVar9;
  ulong uVar10;
  Valtype *pVVar11;
  uchar *puVar12;
  char *format;
  ulong to;
  long lVar13;
  ulong uVar14;
  ulong uVar15;
  uint *puVar16;
  uint *puVar17;
  byte *pbVar18;
  ulong *puVar19;
  byte *pbVar20;
  Input_file *this_01;
  byte *pbVar21;
  ulong uVar22;
  ulong to_1;
  uint uVar23;
  ulong uVar24;
  ulong to_3;
  char *pcVar25;
  bool bVar26;
  bool bVar27;
  bool bVar28;
  byte bVar29;
  
  bVar29 = 0;
  gold::Sized_relobj_file<32,_false>::base_read_symbols
            (&this->super_Sized_relobj_file<32,_false>,sd);
  this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.
            super_Object.input_file_;
  if (this_01 == (Input_file *)0x0) {
LAB_002d68fa:
    gold::Object::input_file((Object *)this_01);
LAB_002d68ff:
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/mips.cc",0x1b6f,"do_read_symbols");
  }
  FVar3 = this_01->format_;
  uVar24 = (ulong)FVar3;
  if (FVar3 == FORMAT_ELF) {
    puVar6 = gold::File_read::get_view
                       (&this_01->file_,
                        (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.
                        super_Relobj.super_Object.offset_,0,0x34,true,false);
    uVar23 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.
             super_Object.shnum_;
    this->processor_specific_flags_ = *(Elf_Word *)(puVar6 + 0x24);
    puVar6 = sd->section_names->data_;
    std::vector<bool,_std::allocator<bool>_>::resize
              (&this->section_is_mips16_fn_stub_,(ulong)uVar23,false);
    std::vector<bool,_std::allocator<bool>_>::resize
              (&this->section_is_mips16_call_stub_,
               (ulong)(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_,
               (ulong)(this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.
                      super_Relobj.super_Object.shnum_,false);
    bVar5 = false;
    puVar7 = sd->section_headers->data_;
    puVar16 = (uint *)(puVar7 + 0x28);
    if (1 < (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.
            super_Object.shnum_) {
      uVar23 = *(uint *)(puVar7 + 0x2c);
      if (uVar23 != 2) goto LAB_002d6581;
      do {
        puVar17 = puVar16;
        if (0x10 < puVar16[5]) {
          bVar5 = true;
        }
LAB_002d66e8:
        lVar13 = 10;
        bVar26 = CARRY8((ulong)*puVar17,(ulong)puVar6);
        pbVar21 = puVar6 + *puVar17;
        bVar28 = pbVar21 == (byte *)0x0;
        pbVar18 = (byte *)".mips16.fn";
        pbVar20 = pbVar21;
        do {
          if (lVar13 == 0) break;
          lVar13 = lVar13 + -1;
          bVar26 = *pbVar18 < *pbVar20;
          bVar28 = *pbVar18 == *pbVar20;
          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;
          pbVar20 = pbVar20 + (ulong)bVar29 * -2 + 1;
        } while (bVar28);
        uVar15 = (ulong)((uint)(uVar24 >> 3) & 0x1ffffff8);
        uVar10 = 1L << ((byte)uVar24 & 0x3f);
        puVar19 = (ulong *)((long)(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 +
                           uVar15);
        uVar22 = *puVar19;
        bVar27 = false;
        bVar26 = (!bVar26 && !bVar28) == bVar26;
        uVar14 = uVar22 & ~uVar10;
        if (bVar26) {
          uVar14 = uVar22 | uVar10;
        }
        *puVar19 = uVar14;
        lVar13 = 0xd;
        pbVar18 = (byte *)".mips16.call.";
        pbVar20 = pbVar21;
        do {
          if (lVar13 == 0) break;
          lVar13 = lVar13 + -1;
          bVar27 = *pbVar18 < *pbVar20;
          bVar26 = *pbVar18 == *pbVar20;
          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;
          pbVar20 = pbVar20 + (ulong)bVar29 * -2 + 1;
        } while (bVar26);
        puVar19 = (ulong *)((long)(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 +
                           uVar15);
        if ((!bVar27 && !bVar26) == bVar27) {
          uVar22 = *puVar19 | uVar10;
        }
        else {
          uVar22 = ~uVar10 & *puVar19;
        }
        bVar28 = uVar22 == 0;
        bVar26 = false;
        *puVar19 = uVar22;
        lVar13 = 0x10;
        pbVar18 = (byte *)".mips16.call.fp.";
        pbVar20 = pbVar21;
        do {
          if (lVar13 == 0) break;
          lVar13 = lVar13 + -1;
          bVar26 = *pbVar18 < *pbVar20;
          bVar28 = *pbVar18 == *pbVar20;
          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;
          pbVar20 = pbVar20 + (ulong)bVar29 * -2 + 1;
        } while (bVar28);
        puVar19 = (ulong *)(uVar15 + (long)(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);
        if ((!bVar26 && !bVar28) == bVar26) {
          uVar10 = uVar10 | *puVar19;
        }
        else {
          uVar10 = ~uVar10 & *puVar19;
        }
        bVar28 = uVar10 == 0;
        bVar26 = false;
        *puVar19 = uVar10;
        lVar13 = 5;
        pbVar18 = &DAT_0053357f;
        do {
          if (lVar13 == 0) break;
          lVar13 = lVar13 + -1;
          bVar26 = *pbVar21 < *pbVar18;
          bVar28 = *pbVar21 == *pbVar18;
          pbVar21 = pbVar21 + (ulong)bVar29 * -2 + 1;
          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;
        } while (bVar28);
        if ((!bVar26 && !bVar28) == bVar26) {
          if (this->pdr_shndx_ != 0xffffffff) goto LAB_002d68ff;
          this->pdr_shndx_ = (uint)uVar24;
        }
        uVar23 = (uint)uVar24 + 1;
        uVar24 = (ulong)uVar23;
        puVar16 = puVar17 + 10;
        if ((this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.
            super_Object.shnum_ <= uVar23) {
          if (bVar5) {
            return;
          }
          goto LAB_002d643d;
        }
        uVar23 = puVar17[0xb];
      } while (uVar23 == 2);
LAB_002d6581:
      puVar17 = puVar16;
      if (uVar23 != 3) {
        if (uVar23 == 0x70000006) {
          this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.
                    super_Relobj.super_Object.input_file_;
          this->field_0x36c = this->field_0x36c | 4;
          if (this_01 == (Input_file *)0x0) goto LAB_002d68fa;
          pVVar11 = (Valtype *)
                    gold::File_read::get_view
                              (&this_01->file_,
                               (this->super_Sized_relobj_file<32,_false>).
                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,
                               (ulong)puVar16[4],(ulong)puVar16[5],true,false);
          this->gp_ = pVVar11[5];
          this->gprmask_ = *pVVar11;
          this->cprmask1_ = pVVar11[1];
          this->cprmask2_ = pVVar11[2];
          this->cprmask3_ = pVVar11[3];
          this->cprmask4_ = pVVar11[4];
          uVar23 = puVar16[1];
        }
        if (uVar23 == 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");
          }
          this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.
                    super_Relobj.super_Object.input_file_;
          uVar23 = puVar16[5];
          if (this_01 == (Input_file *)0x0) goto LAB_002d68fa;
          puVar7 = gold::File_read::get_view
                             (&this_01->file_,
                              (this->super_Sized_relobj_file<32,_false>).
                              super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,
                              (ulong)puVar16[4],(ulong)uVar23,true,false);
          this_00 = (Attributes_section_data *)operator_new(0x10);
                    /* try { // try from 002d65fc to 002d6600 has its CatchHandler @ 002d695f */
          gold::Attributes_section_data::Attributes_section_data(this_00,puVar7,(ulong)uVar23);
          this->attributes_section_data_ = this_00;
          uVar23 = puVar16[1];
        }
        if (uVar23 == 0x7000002a) {
          if (this->abiflags_ != (Mips_abiflags<false> *)0x0) {
                    /* WARNING: Subroutine does not return */
            gold::do_gold_unreachable("../../gold/mips.cc",0x1aeb,"do_read_symbols");
          }
          this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.
                    super_Relobj.super_Object.input_file_;
          if (this_01 == (Input_file *)0x0) goto LAB_002d68fa;
          puVar8 = (ushort *)
                   gold::File_read::get_view
                             (&this_01->file_,
                              (this->super_Sized_relobj_file<32,_false>).
                              super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,
                              (ulong)puVar16[4],(ulong)puVar16[5],true,false);
          pMVar9 = (Mips_abiflags<false> *)operator_new(0x18);
          pMVar9->version = 0;
          pMVar9->isa_level = '\0';
          pMVar9->isa_rev = '\0';
          pMVar9->gpr_size = '\0';
          pMVar9->cpr1_size = '\0';
          pMVar9->cpr2_size = '\0';
          pMVar9->fp_abi = '\0';
          uVar2 = *puVar8;
          pMVar9->isa_ext = 0;
          pMVar9->ases = 0;
          pMVar9->flags1 = 0;
          pMVar9->flags2 = 0;
          this->abiflags_ = pMVar9;
          pMVar9->version = uVar2;
          if (uVar2 != 0) {
            pcVar4 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.
                     super_Relobj.super_Object.name_._M_dataplus._M_p;
            pcVar25 = (char *)gettext("%s: .MIPS.abiflags section has unsupported version %u");
            gold::gold_error(pcVar25,pcVar4,(ulong)uVar2);
            return;
          }
          pMVar9->isa_level = (Valtype8)puVar8[1];
          pMVar9->isa_rev = *(Valtype8 *)((long)puVar8 + 3);
          pMVar9->gpr_size = (Valtype8)puVar8[2];
          pMVar9->cpr1_size = *(Valtype8 *)((long)puVar8 + 5);
          pMVar9->cpr2_size = (Valtype8)puVar8[3];
          pMVar9->fp_abi = *(Valtype8 *)((long)puVar8 + 7);
          pMVar9->isa_ext = *(Valtype32 *)(puVar8 + 4);
          pMVar9->ases = *(Valtype32 *)(puVar8 + 6);
          pMVar9->flags1 = *(Valtype32 *)(puVar8 + 8);
          pMVar9->flags2 = *(Valtype32 *)(puVar8 + 10);
          uVar23 = puVar16[1];
        }
        if (uVar23 == 0x7000000d) {
          this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.
                    super_Relobj.super_Object.input_file_;
          uVar23 = puVar16[5];
          if (this_01 == (Input_file *)0x0) goto LAB_002d68fa;
          puVar12 = gold::File_read::get_view
                              (&this_01->file_,
                               (this->super_Sized_relobj_file<32,_false>).
                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,
                               (ulong)puVar16[4],(ulong)uVar23,true,false);
          puVar7 = puVar12 + uVar23;
          for (; puVar12 + 8 <= puVar7; puVar12 = puVar12 + bVar1) {
            bVar1 = puVar12[1];
            if (bVar1 < 8) {
              pcVar4 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.
                       super_Relobj.super_Object.name_._M_dataplus._M_p;
              pcVar25 = ".MIPS.options";
              if ((this->field_0x36c & 2) == 0) {
                pcVar25 = ".options";
              }
              format = (char *)gettext(
                                      "%s: Warning: bad `%s\' option size %u smaller than its header"
                                      );
              gold::gold_error(format,pcVar4,pcVar25,(ulong)bVar1);
              break;
            }
            if (*puVar12 == '\x01') {
              this->gp_ = *(Mips_address *)(puVar12 + 0x1c);
            }
          }
        }
        bVar5 = true;
      }
      goto LAB_002d66e8;
    }
  }
  else if (FVar3 != FORMAT_BINARY) {
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/mips.cc",0x1a9a,"do_read_symbols");
  }
LAB_002d643d:
  this->field_0x36c = this->field_0x36c & 0xf7;
  return;
}



void FUN_002d6400(long param_1,long *param_2)

{
  byte bVar1;
  short sVar2;
  ulong uVar3;
  bool bVar4;
  long lVar5;
  undefined8 uVar6;
  undefined8 uVar7;
  short *psVar8;
  short *psVar9;
  ulong uVar10;
  undefined4 *puVar11;
  char *pcVar12;
  ulong uVar13;
  ulong uVar14;
  uint *puVar15;
  uint *puVar16;
  byte *pbVar17;
  ulong *puVar18;
  byte *pbVar19;
  byte *pbVar20;
  ulong uVar21;
  uint uVar22;
  ulong uVar23;
  char *pcVar24;
  bool bVar25;
  bool bVar26;
  bool bVar27;
  byte bVar28;
  
  bVar28 = 0;
  FUN_003b79e0();
  lVar5 = *(long *)(param_1 + 0x28);
  if (lVar5 == 0) {
LAB_002d68fa:
    FUN_00290dc0();
LAB_002d68ff:
                    /* WARNING: Subroutine does not return */
    FUN_00352af0("../../gold/mips.cc",0x1b6f,"do_read_symbols");
  }
  uVar22 = *(uint *)(lVar5 + 0xe4);
  uVar23 = (ulong)uVar22;
  if (uVar22 == 1) {
    lVar5 = FUN_0034d600(lVar5 + 0x28,*(undefined8 *)(param_1 + 0x30),0,0x34,1,0);
    *(undefined4 *)(param_1 + 0x220) = *(undefined4 *)(lVar5 + 0x24);
    uVar3 = *(ulong *)(param_2[1] + 0x10);
    FUN_0022a2b0(param_1 + 0x378,*(undefined4 *)(param_1 + 0x38),0);
    FUN_0022a2b0(param_1 + 0x3a0,*(undefined4 *)(param_1 + 0x38),0);
    FUN_0022a2b0(param_1 + 0x3c8,*(undefined4 *)(param_1 + 0x38),0);
    bVar4 = false;
    puVar15 = (uint *)(*(long *)(*param_2 + 0x10) + 0x28);
    if (1 < *(uint *)(param_1 + 0x38)) {
      uVar22 = *(uint *)(*(long *)(*param_2 + 0x10) + 0x2c);
      if (uVar22 != 2) goto LAB_002d6581;
      do {
        puVar16 = puVar15;
        if (0x10 < puVar15[5]) {
          bVar4 = true;
        }
LAB_002d66e8:
        lVar5 = 10;
        bVar25 = CARRY8((ulong)*puVar16,uVar3);
        pbVar20 = (byte *)(*puVar16 + uVar3);
        bVar27 = pbVar20 == (byte *)0x0;
        pbVar17 = (byte *)".mips16.fn";
        pbVar19 = pbVar20;
        do {
          if (lVar5 == 0) break;
          lVar5 = lVar5 + -1;
          bVar25 = *pbVar17 < *pbVar19;
          bVar27 = *pbVar17 == *pbVar19;
          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;
          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;
        } while (bVar27);
        uVar14 = (ulong)((uint)(uVar23 >> 3) & 0x1ffffff8);
        uVar10 = 1L << ((byte)uVar23 & 0x3f);
        puVar18 = (ulong *)(*(long *)(param_1 + 0x378) + uVar14);
        uVar21 = *puVar18;
        bVar26 = false;
        bVar25 = (!bVar25 && !bVar27) == bVar25;
        uVar13 = uVar21 & ~uVar10;
        if (bVar25) {
          uVar13 = uVar21 | uVar10;
        }
        *puVar18 = uVar13;
        lVar5 = 0xd;
        pbVar17 = (byte *)".mips16.call.";
        pbVar19 = pbVar20;
        do {
          if (lVar5 == 0) break;
          lVar5 = lVar5 + -1;
          bVar26 = *pbVar17 < *pbVar19;
          bVar25 = *pbVar17 == *pbVar19;
          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;
          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;
        } while (bVar25);
        puVar18 = (ulong *)(*(long *)(param_1 + 0x3a0) + uVar14);
        if ((!bVar26 && !bVar25) == bVar26) {
          uVar21 = *puVar18 | uVar10;
        }
        else {
          uVar21 = ~uVar10 & *puVar18;
        }
        bVar27 = uVar21 == 0;
        bVar25 = false;
        *puVar18 = uVar21;
        lVar5 = 0x10;
        pbVar17 = (byte *)".mips16.call.fp.";
        pbVar19 = pbVar20;
        do {
          if (lVar5 == 0) break;
          lVar5 = lVar5 + -1;
          bVar25 = *pbVar17 < *pbVar19;
          bVar27 = *pbVar17 == *pbVar19;
          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;
          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;
        } while (bVar27);
        puVar18 = (ulong *)(uVar14 + *(long *)(param_1 + 0x3c8));
        if ((!bVar25 && !bVar27) == bVar25) {
          uVar10 = uVar10 | *puVar18;
        }
        else {
          uVar10 = ~uVar10 & *puVar18;
        }
        bVar27 = uVar10 == 0;
        bVar25 = false;
        *puVar18 = uVar10;
        lVar5 = 5;
        pbVar17 = &DAT_0053357f;
        do {
          if (lVar5 == 0) break;
          lVar5 = lVar5 + -1;
          bVar25 = *pbVar20 < *pbVar17;
          bVar27 = *pbVar20 == *pbVar17;
          pbVar20 = pbVar20 + (ulong)bVar28 * -2 + 1;
          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;
        } while (bVar27);
        if ((!bVar25 && !bVar27) == bVar25) {
          if (*(int *)(param_1 + 0x3f0) != -1) goto LAB_002d68ff;
          *(int *)(param_1 + 0x3f0) = (int)uVar23;
        }
        uVar22 = (int)uVar23 + 1;
        uVar23 = (ulong)uVar22;
        puVar15 = puVar16 + 10;
        if (*(uint *)(param_1 + 0x38) <= uVar22) {
          if (bVar4) {
            return;
          }
          goto LAB_002d643d;
        }
        uVar22 = puVar16[0xb];
      } while (uVar22 == 2);
LAB_002d6581:
      puVar16 = puVar15;
      if (uVar22 != 3) {
        if (uVar22 == 0x70000006) {
          *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) | 4;
          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;
          puVar11 = (undefined4 *)
                    FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),
                                 puVar15[4],puVar15[5],1,0);
          *(undefined4 *)(param_1 + 0x368) = puVar11[5];
          *(undefined4 *)(param_1 + 0x408) = *puVar11;
          *(undefined4 *)(param_1 + 0x40c) = puVar11[1];
          *(undefined4 *)(param_1 + 0x410) = puVar11[2];
          *(undefined4 *)(param_1 + 0x414) = puVar11[3];
          *(undefined4 *)(param_1 + 0x418) = puVar11[4];
          uVar22 = puVar15[1];
        }
        if (uVar22 == 0x6ffffff5) {
          if (*(long *)(param_1 + 0x3f8) != 0) {
                    /* WARNING: Subroutine does not return */
            FUN_00352af0("../../gold/mips.cc",0x1adf,"do_read_symbols");
          }
          uVar22 = puVar15[5];
          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;
          uVar6 = FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),
                               puVar15[4],uVar22,1,0);
          uVar7 = FUN_0049cb70(0x10);
                    /* try { // try from 002d65fc to 002d6600 has its CatchHandler @ 002d695f */
          FUN_003362a0(uVar7,uVar6,uVar22);
          *(undefined8 *)(param_1 + 0x3f8) = uVar7;
          uVar22 = puVar15[1];
        }
        if (uVar22 == 0x7000002a) {
          if (*(long *)(param_1 + 0x400) != 0) {
                    /* WARNING: Subroutine does not return */
            FUN_00352af0("../../gold/mips.cc",0x1aeb,"do_read_symbols");
          }
          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;
          psVar8 = (short *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,
                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0);
          psVar9 = (short *)FUN_0049cb70(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 + 0x400) = psVar9;
          *psVar9 = sVar2;
          if (sVar2 != 0) {
            uVar6 = *(undefined8 *)(param_1 + 8);
            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");
            FUN_0034a750(uVar7,uVar6,sVar2);
            return;
          }
          *(char *)(psVar9 + 1) = (char)psVar8[1];
          *(undefined1 *)((long)psVar9 + 3) = *(undefined1 *)((long)psVar8 + 3);
          *(char *)(psVar9 + 2) = (char)psVar8[2];
          *(undefined1 *)((long)psVar9 + 5) = *(undefined1 *)((long)psVar8 + 5);
          *(char *)(psVar9 + 3) = (char)psVar8[3];
          *(undefined1 *)((long)psVar9 + 7) = *(undefined1 *)((long)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);
          uVar22 = puVar15[1];
        }
        if (uVar22 == 0x7000000d) {
          uVar22 = puVar15[5];
          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;
          pcVar12 = (char *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,
                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,
                                         0);
          pcVar24 = pcVar12 + uVar22;
          for (; pcVar12 + 8 <= pcVar24; pcVar12 = pcVar12 + bVar1) {
            bVar1 = pcVar12[1];
            if (bVar1 < 8) {
              uVar6 = *(undefined8 *)(param_1 + 8);
              pcVar24 = ".MIPS.options";
              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {
                pcVar24 = ".options";
              }
              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");
              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);
              break;
            }
            if (*pcVar12 == '\x01') {
              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);
            }
          }
        }
        bVar4 = true;
      }
      goto LAB_002d66e8;
    }
  }
  else if (uVar22 != 2) {
                    /* WARNING: Subroutine does not return */
    FUN_00352af0("../../gold/mips.cc",0x1a9a,"do_read_symbols");
  }
LAB_002d643d:
  *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) & 0xf7;
  return;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
MOV RBP,RSI
PUSH RBX
MOV RBX,RDI
SUB RSP,0x18
CALL 0x003b79e0
MOV RDI,qword ptr [RBX + 0x28]
TEST RDI,RDI
JZ 0x002d68fa
MOV R12D,dword ptr [RDI + 0xe4]
CMP R12D,0x1
JZ 0x002d6458
CMP R12D,0x2
JNZ 0x002d6947
AND byte ptr [RBX + 0x36c],0xf7
ADD RSP,0x18
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV RSI,qword ptr [RBX + 0x30]
XOR R9D,R9D
MOV R8D,0x1
XOR EDX,EDX
MOV ECX,0x34
ADD RDI,0x28
LEA R13,[0x558675]
CALL 0x0034d600
MOV ESI,dword ptr [RBX + 0x38]
XOR EDX,EDX
LEA RDI,[RBX + 0x378]
MOV EAX,dword ptr [RAX + 0x24]
MOV dword ptr [RBX + 0x220],EAX
MOV RAX,qword ptr [RBP + 0x8]
MOV R14,qword ptr [RAX + 0x10]
CALL 0x0022a2b0
MOV ESI,dword ptr [RBX + 0x38]
XOR EDX,EDX
LEA RDI,[RBX + 0x3a0]
CALL 0x0022a2b0
MOV ESI,dword ptr [RBX + 0x38]
XOR EDX,EDX
LEA RDI,[RBX + 0x3c8]
CALL 0x0022a2b0
MOV RAX,qword ptr [RBP]
XOR R10D,R10D
MOV RBP,qword ptr [RAX + 0x10]
ADD RBP,0x28
CMP dword ptr [RBX + 0x38],0x1
JBE 0x002d643d
MOV EAX,dword ptr [RBP + 0x4]
CMP EAX,0x2
JNZ 0x002d6581
NOP dword ptr [RAX]
CMP dword ptr [RBP + 0x14],0x11
MOV EAX,0x1
CMOVNC R10D,EAX
JMP 0x002d66e8
MOV R9,qword ptr [RSI]
OR R9,RAX
MOV qword ptr [RSI],R9
MOV ECX,0x10
MOV RDI,R8
LEA RSI,[0x55868e]
CMPSB.REPE RDI,RSI
SETA CL
SBB CL,0x0
ADD RDX,qword ptr [RBX + 0x3c8]
TEST CL,CL
JNZ 0x002d6778
OR RAX,qword ptr [RDX]
MOV qword ptr [RDX],RAX
MOV ECX,0x5
LEA RDI,[0x53357f]
MOV RSI,R8
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x002d6563
CMP dword ptr [RBX + 0x3f0],-0x1
JNZ 0x002d68ff
MOV dword ptr [RBX + 0x3f0],R12D
ADD R12D,0x1
ADD RBP,0x28
CMP R12D,dword ptr [RBX + 0x38]
JNC 0x002d68b8
MOV EAX,dword ptr [RBP + 0x4]
CMP EAX,0x2
JZ 0x002d64e8
CMP EAX,0x3
JZ 0x002d66e8
CMP EAX,0x70000006
JZ 0x002d6788
CMP EAX,0x6ffffff5
JNZ 0x002d660b
CMP qword ptr [RBX + 0x3f8],0x0
JNZ 0x002d6917
MOV RDI,qword ptr [RBX + 0x28]
MOV EDX,dword ptr [RBP + 0x10]
MOV R10D,dword ptr [RBP + 0x14]
TEST RDI,RDI
JZ 0x002d68fa
MOV RSI,qword ptr [RBX + 0x30]
MOV RCX,R10
ADD RDI,0x28
XOR R9D,R9D
MOV R8D,0x1
MOV qword ptr [RSP + 0x8],R10
CALL 0x0034d600
MOV EDI,0x10
MOV qword ptr [RSP],RAX
CALL 0x0049cb70
MOV R10,qword ptr [RSP + 0x8]
MOV RSI,qword ptr [RSP]
MOV RDI,RAX
MOV R15,RAX
MOV RDX,R10
CALL 0x003362a0
MOV qword ptr [RBX + 0x3f8],R15
MOV EAX,dword ptr [RBP + 0x4]
CMP EAX,0x7000002a
JNZ 0x002d66d7
CMP qword ptr [RBX + 0x400],0x0
JNZ 0x002d692f
MOV RDI,qword ptr [RBX + 0x28]
MOV EDX,dword ptr [RBP + 0x10]
MOV ECX,dword ptr [RBP + 0x14]
TEST RDI,RDI
JZ 0x002d68fa
MOV RSI,qword ptr [RBX + 0x30]
ADD RDI,0x28
XOR R9D,R9D
MOV R8D,0x1
CALL 0x0034d600
MOV EDI,0x18
MOV R15,RAX
CALL 0x0049cb70
MOV qword ptr [RAX],0x0
MOVZX EDX,word ptr [R15]
MOV qword ptr [RAX + 0x8],0x0
MOV qword ptr [RAX + 0x10],0x0
MOV qword ptr [RBX + 0x400],RAX
MOV word ptr [RAX],DX
TEST DX,DX
JNZ 0x002d68c6
MOVZX EDX,byte ptr [R15 + 0x2]
MOV byte ptr [RAX + 0x2],DL
MOVZX EDX,byte ptr [R15 + 0x3]
MOV byte ptr [RAX + 0x3],DL
MOVZX EDX,byte ptr [R15 + 0x4]
MOV byte ptr [RAX + 0x4],DL
MOVZX EDX,byte ptr [R15 + 0x5]
MOV byte ptr [RAX + 0x5],DL
MOVZX EDX,byte ptr [R15 + 0x6]
MOV byte ptr [RAX + 0x6],DL
MOVZX EDX,byte ptr [R15 + 0x7]
MOV byte ptr [RAX + 0x7],DL
MOV EDX,dword ptr [R15 + 0x8]
MOV dword ptr [RAX + 0x8],EDX
MOV EDX,dword ptr [R15 + 0xc]
MOV dword ptr [RAX + 0xc],EDX
MOV EDX,dword ptr [R15 + 0x10]
MOV dword ptr [RAX + 0x10],EDX
MOV EDX,dword ptr [R15 + 0x14]
MOV dword ptr [RAX + 0x14],EDX
MOV EAX,dword ptr [RBP + 0x4]
CMP EAX,0x7000000d
JZ 0x002d67f8
MOV R10D,0x1
MOV R8D,dword ptr [RBP]
MOV ECX,0xa
MOV RSI,R13
MOV RDX,R12
MOV EAX,0x1
ADD R8,R14
MOV RDI,R8
CMPSB.REPE RDI,RSI
MOV RSI,qword ptr [RBX + 0x378]
MOV ECX,R12D
SETA DIL
SBB DIL,0x0
SHR RDX,0x3
AND EDX,0x1ffffff8
SHL RAX,CL
ADD RSI,RDX
MOV R9,RAX
MOV RCX,qword ptr [RSI]
NOT R9
MOV R11,RCX
AND RCX,R9
OR R11,RAX
TEST DIL,DIL
MOV RDI,R8
CMOVZ RCX,R11
MOV qword ptr [RSI],RCX
MOV ECX,0xd
LEA RSI,[0x558680]
CMPSB.REPE RDI,RSI
MOV RSI,qword ptr [RBX + 0x3a0]
SETA CL
SBB CL,0x0
ADD RSI,RDX
TEST CL,CL
JZ 0x002d6500
AND R9,qword ptr [RSI]
JMP 0x002d6506
NOT RAX
AND RAX,qword ptr [RDX]
JMP 0x002d6532
MOV RDI,qword ptr [RBX + 0x28]
OR byte ptr [RBX + 0x36c],0x4
MOV EDX,dword ptr [RBP + 0x10]
MOV ECX,dword ptr [RBP + 0x14]
TEST RDI,RDI
JZ 0x002d68fa
MOV RSI,qword ptr [RBX + 0x30]
ADD RDI,0x28
XOR R9D,R9D
MOV R8D,0x1
CALL 0x0034d600
MOV EDX,dword ptr [RAX + 0x14]
MOV dword ptr [RBX + 0x368],EDX
MOV EDX,dword ptr [RAX]
MOV dword ptr [RBX + 0x408],EDX
MOV EDX,dword ptr [RAX + 0x4]
MOV dword ptr [RBX + 0x40c],EDX
MOV EDX,dword ptr [RAX + 0x8]
MOV dword ptr [RBX + 0x410],EDX
MOV EDX,dword ptr [RAX + 0xc]
MOV dword ptr [RBX + 0x414],EDX
MOV EAX,dword ptr [RAX + 0x10]
MOV dword ptr [RBX + 0x418],EAX
MOV EAX,dword ptr [RBP + 0x4]
JMP 0x002d6595
MOV RDI,qword ptr [RBX + 0x28]
MOV EDX,dword ptr [RBP + 0x10]
MOV R15D,dword ptr [RBP + 0x14]
TEST RDI,RDI
JZ 0x002d68fa
MOV RSI,qword ptr [RBX + 0x30]
ADD RDI,0x28
XOR R9D,R9D
MOV RCX,R15
MOV R8D,0x1
CALL 0x0034d600
LEA RSI,[RAX + R15*0x1]
LEA RDX,[RAX + 0x8]
CMP RSI,RDX
JNC 0x002d685e
JMP 0x002d66e2
CMP DL,0x1
JNZ 0x002d684e
MOV EDX,dword ptr [RAX + 0x1c]
MOV dword ptr [RBX + 0x368],EDX
ADD RAX,RCX
LEA RDX,[RAX + 0x8]
CMP RSI,RDX
JC 0x002d66e2
MOVZX ECX,byte ptr [RAX + 0x1]
MOVZX EDX,byte ptr [RAX]
CMP CL,0x7
JA 0x002d6840
TEST byte ptr [RBX + 0x36c],0x2
MOV RSI,qword ptr [RBX + 0x8]
LEA RAX,[0x55866c]
LEA R15,[0x558667]
CMOVZ R15,RAX
LEA RDI,[0x558c10]
MOV dword ptr [RSP + 0x8],ECX
MOV qword ptr [RSP],RSI
CALL 0x00177320
MOV ECX,dword ptr [RSP + 0x8]
MOV RSI,qword ptr [RSP]
MOV RDX,R15
MOV RDI,RAX
XOR EAX,EAX
CALL 0x0034a750
JMP 0x002d66e2
TEST R10B,R10B
JZ 0x002d643d
JMP 0x002d6444
LEA RDI,[0x558bd8]
MOV dword ptr [RSP],EDX
MOV RBX,qword ptr [RBX + 0x8]
CALL 0x00177320
MOV EDX,dword ptr [RSP]
ADD RSP,0x18
MOV RSI,RBX
MOV RDI,RAX
POP RBX
XOR EAX,EAX
POP RBP
MOVZX EDX,DX
POP R12
POP R13
POP R14
POP R15
JMP 0x0034a750
CALL 0x00290dc0
LEA RDX,[0x55f000]
MOV ESI,0x1b6f
LEA RDI,[0x55840b]
CALL 0x00352af0
LEA RDX,[0x55f000]
MOV ESI,0x1adf
LEA RDI,[0x55840b]
CALL 0x00352af0
LEA RDX,[0x55f000]
MOV ESI,0x1aeb
LEA RDI,[0x55840b]
CALL 0x00352af0
LEA RDX,[0x55f000]
MOV ESI,0x1a9a
LEA RDI,[0x55840b]
CALL 0x00352af0
(translation_unit "void FUN_002d6400(long param_1,long *param_2)\n\n{\n  byte bVar1;\n  short sVar2;\n  ulong uVar3;\n  bool bVar4;\n  long lVar5;\n  undefined8 uVar6;\n  undefined8 uVar7;\n  short *psVar8;\n  short *psVar9;\n  ulong uVar10;\n  undefined4 *puVar11;\n  char *pcVar12;\n  ulong uVar13;\n  ulong uVar14;\n  uint *puVar15;\n  uint *puVar16;\n  byte *pbVar17;\n  ulong *puVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  ulong uVar21;\n  uint uVar22;\n  ulong uVar23;\n  char *pcVar24;\n  bool bVar25;\n  bool bVar26;\n  bool bVar27;\n  byte bVar28;\n  \n  bVar28 = 0;\n  FUN_003b79e0();\n  lVar5 = *(long *)(param_1 + 0x28);\n  if (lVar5 == 0) {\nLAB_002d68fa:\n    FUN_00290dc0();\nLAB_002d68ff:\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/mips.cc",0x1b6f,"do_read_symbols");\n  }\n  uVar22 = *(uint *)(lVar5 + 0xe4);\n  uVar23 = (ulong)uVar22;\n  if (uVar22 == 1) {\n    lVar5 = FUN_0034d600(lVar5 + 0x28,*(undefined8 *)(param_1 + 0x30),0,0x34,1,0);\n    *(undefined4 *)(param_1 + 0x220) = *(undefined4 *)(lVar5 + 0x24);\n    uVar3 = *(ulong *)(param_2[1] + 0x10);\n    FUN_0022a2b0(param_1 + 0x378,*(undefined4 *)(param_1 + 0x38),0);\n    FUN_0022a2b0(param_1 + 0x3a0,*(undefined4 *)(param_1 + 0x38),0);\n    FUN_0022a2b0(param_1 + 0x3c8,*(undefined4 *)(param_1 + 0x38),0);\n    bVar4 = false;\n    puVar15 = (uint *)(*(long *)(*param_2 + 0x10) + 0x28);\n    if (1 < *(uint *)(param_1 + 0x38)) {\n      uVar22 = *(uint *)(*(long *)(*param_2 + 0x10) + 0x2c);\n      if (uVar22 != 2) goto LAB_002d6581;\n      do {\n        puVar16 = puVar15;\n        if (0x10 < puVar15[5]) {\n          bVar4 = true;\n        }\nLAB_002d66e8:\n        lVar5 = 10;\n        bVar25 = CARRY8((ulong)*puVar16,uVar3);\n        pbVar20 = (byte *)(*puVar16 + uVar3);\n        bVar27 = pbVar20 == (byte *)0x0;\n        pbVar17 = (byte *)".mips16.fn";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        uVar14 = (ulong)((uint)(uVar23 >> 3) & 0x1ffffff8);\n        uVar10 = 1L << ((byte)uVar23 & 0x3f);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x378) + uVar14);\n        uVar21 = *puVar18;\n        bVar26 = false;\n        bVar25 = (!bVar25 && !bVar27) == bVar25;\n        uVar13 = uVar21 & ~uVar10;\n        if (bVar25) {\n          uVar13 = uVar21 | uVar10;\n        }\n        *puVar18 = uVar13;\n        lVar5 = 0xd;\n        pbVar17 = (byte *)".mips16.call.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar26 = *pbVar17 < *pbVar19;\n          bVar25 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar25);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x3a0) + uVar14);\n        if ((!bVar26 && !bVar25) == bVar26) {\n          uVar21 = *puVar18 | uVar10;\n        }\n        else {\n          uVar21 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar21 == 0;\n        bVar25 = false;\n        *puVar18 = uVar21;\n        lVar5 = 0x10;\n        pbVar17 = (byte *)".mips16.call.fp.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        puVar18 = (ulong *)(uVar14 + *(long *)(param_1 + 0x3c8));\n        if ((!bVar25 && !bVar27) == bVar25) {\n          uVar10 = uVar10 | *puVar18;\n        }\n        else {\n          uVar10 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar10 == 0;\n        bVar25 = false;\n        *puVar18 = uVar10;\n        lVar5 = 5;\n        pbVar17 = &DAT_0053357f;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar20 < *pbVar17;\n          bVar27 = *pbVar20 == *pbVar17;\n          pbVar20 = pbVar20 + (ulong)bVar28 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        if ((!bVar25 && !bVar27) == bVar25) {\n          if (*(int *)(param_1 + 0x3f0) != -1) goto LAB_002d68ff;\n          *(int *)(param_1 + 0x3f0) = (int)uVar23;\n        }\n        uVar22 = (int)uVar23 + 1;\n        uVar23 = (ulong)uVar22;\n        puVar15 = puVar16 + 10;\n        if (*(uint *)(param_1 + 0x38) <= uVar22) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_002d643d;\n        }\n        uVar22 = puVar16[0xb];\n      } while (uVar22 == 2);\nLAB_002d6581:\n      puVar16 = puVar15;\n      if (uVar22 != 3) {\n        if (uVar22 == 0x70000006) {\n          *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) | 4;\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          puVar11 = (undefined4 *)\n                    FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0);\n          *(undefined4 *)(param_1 + 0x368) = puVar11[5];\n          *(undefined4 *)(param_1 + 0x408) = *puVar11;\n          *(undefined4 *)(param_1 + 0x40c) = puVar11[1];\n          *(undefined4 *)(param_1 + 0x410) = puVar11[2];\n          *(undefined4 *)(param_1 + 0x414) = puVar11[3];\n          *(undefined4 *)(param_1 + 0x418) = puVar11[4];\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x6ffffff5) {\n          if (*(long *)(param_1 + 0x3f8) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          uVar6 = FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                               puVar15[4],uVar22,1,0);\n          uVar7 = FUN_0049cb70(0x10);\n                    /* try { // try from 002d65fc to 002d6600 has its CatchHandler @ 002d695f */\n          FUN_003362a0(uVar7,uVar6,uVar22);\n          *(undefined8 *)(param_1 + 0x3f8) = uVar7;\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000002a) {\n          if (*(long *)(param_1 + 0x400) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          psVar8 = (short *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0);\n          psVar9 = (short *)FUN_0049cb70(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 + 0x400) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined8 *)(param_1 + 8);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0034a750(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((long)psVar9 + 3) = *(undefined1 *)((long)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((long)psVar9 + 5) = *(undefined1 *)((long)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((long)psVar9 + 7) = *(undefined1 *)((long)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          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000000d) {\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          pcVar12 = (char *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0);\n          pcVar24 = pcVar12 + uVar22;\n          for (; pcVar12 + 8 <= pcVar24; pcVar12 = pcVar12 + bVar1) {\n            bVar1 = pcVar12[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined8 *)(param_1 + 8);\n              pcVar24 = ".MIPS.options";\n              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);\n              break;\n            }\n            if (*pcVar12 == '\x01') {\n              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }\n      goto LAB_002d66e8;\n    }\n  }\n  else if (uVar22 != 2) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }\nLAB_002d643d:\n  *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) & 0xf7;\n  return;\n}\n\n" (function_definition "void FUN_002d6400(long param_1,long *param_2)\n\n{\n  byte bVar1;\n  short sVar2;\n  ulong uVar3;\n  bool bVar4;\n  long lVar5;\n  undefined8 uVar6;\n  undefined8 uVar7;\n  short *psVar8;\n  short *psVar9;\n  ulong uVar10;\n  undefined4 *puVar11;\n  char *pcVar12;\n  ulong uVar13;\n  ulong uVar14;\n  uint *puVar15;\n  uint *puVar16;\n  byte *pbVar17;\n  ulong *puVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  ulong uVar21;\n  uint uVar22;\n  ulong uVar23;\n  char *pcVar24;\n  bool bVar25;\n  bool bVar26;\n  bool bVar27;\n  byte bVar28;\n  \n  bVar28 = 0;\n  FUN_003b79e0();\n  lVar5 = *(long *)(param_1 + 0x28);\n  if (lVar5 == 0) {\nLAB_002d68fa:\n    FUN_00290dc0();\nLAB_002d68ff:\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/mips.cc",0x1b6f,"do_read_symbols");\n  }\n  uVar22 = *(uint *)(lVar5 + 0xe4);\n  uVar23 = (ulong)uVar22;\n  if (uVar22 == 1) {\n    lVar5 = FUN_0034d600(lVar5 + 0x28,*(undefined8 *)(param_1 + 0x30),0,0x34,1,0);\n    *(undefined4 *)(param_1 + 0x220) = *(undefined4 *)(lVar5 + 0x24);\n    uVar3 = *(ulong *)(param_2[1] + 0x10);\n    FUN_0022a2b0(param_1 + 0x378,*(undefined4 *)(param_1 + 0x38),0);\n    FUN_0022a2b0(param_1 + 0x3a0,*(undefined4 *)(param_1 + 0x38),0);\n    FUN_0022a2b0(param_1 + 0x3c8,*(undefined4 *)(param_1 + 0x38),0);\n    bVar4 = false;\n    puVar15 = (uint *)(*(long *)(*param_2 + 0x10) + 0x28);\n    if (1 < *(uint *)(param_1 + 0x38)) {\n      uVar22 = *(uint *)(*(long *)(*param_2 + 0x10) + 0x2c);\n      if (uVar22 != 2) goto LAB_002d6581;\n      do {\n        puVar16 = puVar15;\n        if (0x10 < puVar15[5]) {\n          bVar4 = true;\n        }\nLAB_002d66e8:\n        lVar5 = 10;\n        bVar25 = CARRY8((ulong)*puVar16,uVar3);\n        pbVar20 = (byte *)(*puVar16 + uVar3);\n        bVar27 = pbVar20 == (byte *)0x0;\n        pbVar17 = (byte *)".mips16.fn";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        uVar14 = (ulong)((uint)(uVar23 >> 3) & 0x1ffffff8);\n        uVar10 = 1L << ((byte)uVar23 & 0x3f);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x378) + uVar14);\n        uVar21 = *puVar18;\n        bVar26 = false;\n        bVar25 = (!bVar25 && !bVar27) == bVar25;\n        uVar13 = uVar21 & ~uVar10;\n        if (bVar25) {\n          uVar13 = uVar21 | uVar10;\n        }\n        *puVar18 = uVar13;\n        lVar5 = 0xd;\n        pbVar17 = (byte *)".mips16.call.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar26 = *pbVar17 < *pbVar19;\n          bVar25 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar25);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x3a0) + uVar14);\n        if ((!bVar26 && !bVar25) == bVar26) {\n          uVar21 = *puVar18 | uVar10;\n        }\n        else {\n          uVar21 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar21 == 0;\n        bVar25 = false;\n        *puVar18 = uVar21;\n        lVar5 = 0x10;\n        pbVar17 = (byte *)".mips16.call.fp.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        puVar18 = (ulong *)(uVar14 + *(long *)(param_1 + 0x3c8));\n        if ((!bVar25 && !bVar27) == bVar25) {\n          uVar10 = uVar10 | *puVar18;\n        }\n        else {\n          uVar10 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar10 == 0;\n        bVar25 = false;\n        *puVar18 = uVar10;\n        lVar5 = 5;\n        pbVar17 = &DAT_0053357f;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar20 < *pbVar17;\n          bVar27 = *pbVar20 == *pbVar17;\n          pbVar20 = pbVar20 + (ulong)bVar28 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        if ((!bVar25 && !bVar27) == bVar25) {\n          if (*(int *)(param_1 + 0x3f0) != -1) goto LAB_002d68ff;\n          *(int *)(param_1 + 0x3f0) = (int)uVar23;\n        }\n        uVar22 = (int)uVar23 + 1;\n        uVar23 = (ulong)uVar22;\n        puVar15 = puVar16 + 10;\n        if (*(uint *)(param_1 + 0x38) <= uVar22) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_002d643d;\n        }\n        uVar22 = puVar16[0xb];\n      } while (uVar22 == 2);\nLAB_002d6581:\n      puVar16 = puVar15;\n      if (uVar22 != 3) {\n        if (uVar22 == 0x70000006) {\n          *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) | 4;\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          puVar11 = (undefined4 *)\n                    FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0);\n          *(undefined4 *)(param_1 + 0x368) = puVar11[5];\n          *(undefined4 *)(param_1 + 0x408) = *puVar11;\n          *(undefined4 *)(param_1 + 0x40c) = puVar11[1];\n          *(undefined4 *)(param_1 + 0x410) = puVar11[2];\n          *(undefined4 *)(param_1 + 0x414) = puVar11[3];\n          *(undefined4 *)(param_1 + 0x418) = puVar11[4];\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x6ffffff5) {\n          if (*(long *)(param_1 + 0x3f8) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          uVar6 = FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                               puVar15[4],uVar22,1,0);\n          uVar7 = FUN_0049cb70(0x10);\n                    /* try { // try from 002d65fc to 002d6600 has its CatchHandler @ 002d695f */\n          FUN_003362a0(uVar7,uVar6,uVar22);\n          *(undefined8 *)(param_1 + 0x3f8) = uVar7;\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000002a) {\n          if (*(long *)(param_1 + 0x400) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          psVar8 = (short *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0);\n          psVar9 = (short *)FUN_0049cb70(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 + 0x400) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined8 *)(param_1 + 8);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0034a750(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((long)psVar9 + 3) = *(undefined1 *)((long)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((long)psVar9 + 5) = *(undefined1 *)((long)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((long)psVar9 + 7) = *(undefined1 *)((long)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          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000000d) {\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          pcVar12 = (char *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0);\n          pcVar24 = pcVar12 + uVar22;\n          for (; pcVar12 + 8 <= pcVar24; pcVar12 = pcVar12 + bVar1) {\n            bVar1 = pcVar12[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined8 *)(param_1 + 8);\n              pcVar24 = ".MIPS.options";\n              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);\n              break;\n            }\n            if (*pcVar12 == '\x01') {\n              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }\n      goto LAB_002d66e8;\n    }\n  }\n  else if (uVar22 != 2) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }\nLAB_002d643d:\n  *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) & 0xf7;\n  return;\n}" primitive_type (function_declarator "FUN_002d6400(long param_1,long *param_2)" identifier (parameter_list "(long param_1,long *param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long *param_2" (sized_type_specifier "long" long) (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  short sVar2;\n  ulong uVar3;\n  bool bVar4;\n  long lVar5;\n  undefined8 uVar6;\n  undefined8 uVar7;\n  short *psVar8;\n  short *psVar9;\n  ulong uVar10;\n  undefined4 *puVar11;\n  char *pcVar12;\n  ulong uVar13;\n  ulong uVar14;\n  uint *puVar15;\n  uint *puVar16;\n  byte *pbVar17;\n  ulong *puVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  ulong uVar21;\n  uint uVar22;\n  ulong uVar23;\n  char *pcVar24;\n  bool bVar25;\n  bool bVar26;\n  bool bVar27;\n  byte bVar28;\n  \n  bVar28 = 0;\n  FUN_003b79e0();\n  lVar5 = *(long *)(param_1 + 0x28);\n  if (lVar5 == 0) {\nLAB_002d68fa:\n    FUN_00290dc0();\nLAB_002d68ff:\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/mips.cc",0x1b6f,"do_read_symbols");\n  }\n  uVar22 = *(uint *)(lVar5 + 0xe4);\n  uVar23 = (ulong)uVar22;\n  if (uVar22 == 1) {\n    lVar5 = FUN_0034d600(lVar5 + 0x28,*(undefined8 *)(param_1 + 0x30),0,0x34,1,0);\n    *(undefined4 *)(param_1 + 0x220) = *(undefined4 *)(lVar5 + 0x24);\n    uVar3 = *(ulong *)(param_2[1] + 0x10);\n    FUN_0022a2b0(param_1 + 0x378,*(undefined4 *)(param_1 + 0x38),0);\n    FUN_0022a2b0(param_1 + 0x3a0,*(undefined4 *)(param_1 + 0x38),0);\n    FUN_0022a2b0(param_1 + 0x3c8,*(undefined4 *)(param_1 + 0x38),0);\n    bVar4 = false;\n    puVar15 = (uint *)(*(long *)(*param_2 + 0x10) + 0x28);\n    if (1 < *(uint *)(param_1 + 0x38)) {\n      uVar22 = *(uint *)(*(long *)(*param_2 + 0x10) + 0x2c);\n      if (uVar22 != 2) goto LAB_002d6581;\n      do {\n        puVar16 = puVar15;\n        if (0x10 < puVar15[5]) {\n          bVar4 = true;\n        }\nLAB_002d66e8:\n        lVar5 = 10;\n        bVar25 = CARRY8((ulong)*puVar16,uVar3);\n        pbVar20 = (byte *)(*puVar16 + uVar3);\n        bVar27 = pbVar20 == (byte *)0x0;\n        pbVar17 = (byte *)".mips16.fn";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        uVar14 = (ulong)((uint)(uVar23 >> 3) & 0x1ffffff8);\n        uVar10 = 1L << ((byte)uVar23 & 0x3f);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x378) + uVar14);\n        uVar21 = *puVar18;\n        bVar26 = false;\n        bVar25 = (!bVar25 && !bVar27) == bVar25;\n        uVar13 = uVar21 & ~uVar10;\n        if (bVar25) {\n          uVar13 = uVar21 | uVar10;\n        }\n        *puVar18 = uVar13;\n        lVar5 = 0xd;\n        pbVar17 = (byte *)".mips16.call.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar26 = *pbVar17 < *pbVar19;\n          bVar25 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar25);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x3a0) + uVar14);\n        if ((!bVar26 && !bVar25) == bVar26) {\n          uVar21 = *puVar18 | uVar10;\n        }\n        else {\n          uVar21 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar21 == 0;\n        bVar25 = false;\n        *puVar18 = uVar21;\n        lVar5 = 0x10;\n        pbVar17 = (byte *)".mips16.call.fp.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        puVar18 = (ulong *)(uVar14 + *(long *)(param_1 + 0x3c8));\n        if ((!bVar25 && !bVar27) == bVar25) {\n          uVar10 = uVar10 | *puVar18;\n        }\n        else {\n          uVar10 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar10 == 0;\n        bVar25 = false;\n        *puVar18 = uVar10;\n        lVar5 = 5;\n        pbVar17 = &DAT_0053357f;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar20 < *pbVar17;\n          bVar27 = *pbVar20 == *pbVar17;\n          pbVar20 = pbVar20 + (ulong)bVar28 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        if ((!bVar25 && !bVar27) == bVar25) {\n          if (*(int *)(param_1 + 0x3f0) != -1) goto LAB_002d68ff;\n          *(int *)(param_1 + 0x3f0) = (int)uVar23;\n        }\n        uVar22 = (int)uVar23 + 1;\n        uVar23 = (ulong)uVar22;\n        puVar15 = puVar16 + 10;\n        if (*(uint *)(param_1 + 0x38) <= uVar22) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_002d643d;\n        }\n        uVar22 = puVar16[0xb];\n      } while (uVar22 == 2);\nLAB_002d6581:\n      puVar16 = puVar15;\n      if (uVar22 != 3) {\n        if (uVar22 == 0x70000006) {\n          *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) | 4;\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          puVar11 = (undefined4 *)\n                    FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0);\n          *(undefined4 *)(param_1 + 0x368) = puVar11[5];\n          *(undefined4 *)(param_1 + 0x408) = *puVar11;\n          *(undefined4 *)(param_1 + 0x40c) = puVar11[1];\n          *(undefined4 *)(param_1 + 0x410) = puVar11[2];\n          *(undefined4 *)(param_1 + 0x414) = puVar11[3];\n          *(undefined4 *)(param_1 + 0x418) = puVar11[4];\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x6ffffff5) {\n          if (*(long *)(param_1 + 0x3f8) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          uVar6 = FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                               puVar15[4],uVar22,1,0);\n          uVar7 = FUN_0049cb70(0x10);\n                    /* try { // try from 002d65fc to 002d6600 has its CatchHandler @ 002d695f */\n          FUN_003362a0(uVar7,uVar6,uVar22);\n          *(undefined8 *)(param_1 + 0x3f8) = uVar7;\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000002a) {\n          if (*(long *)(param_1 + 0x400) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          psVar8 = (short *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0);\n          psVar9 = (short *)FUN_0049cb70(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 + 0x400) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined8 *)(param_1 + 8);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0034a750(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((long)psVar9 + 3) = *(undefined1 *)((long)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((long)psVar9 + 5) = *(undefined1 *)((long)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((long)psVar9 + 7) = *(undefined1 *)((long)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          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000000d) {\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          pcVar12 = (char *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0);\n          pcVar24 = pcVar12 + uVar22;\n          for (; pcVar12 + 8 <= pcVar24; pcVar12 = pcVar12 + bVar1) {\n            bVar1 = pcVar12[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined8 *)(param_1 + 8);\n              pcVar24 = ".MIPS.options";\n              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);\n              break;\n            }\n            if (*pcVar12 == '\x01') {\n              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }\n      goto LAB_002d66e8;\n    }\n  }\n  else if (uVar22 != 2) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }\nLAB_002d643d:\n  *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) & 0xf7;\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "short sVar2;" (sized_type_specifier "short" short) identifier ;) (declaration "ulong uVar3;" type_identifier identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar6;" type_identifier identifier ;) (declaration "undefined8 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 "ulong uVar10;" type_identifier identifier ;) (declaration "undefined4 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "ulong uVar14;" type_identifier identifier ;) (declaration "uint *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "uint *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "ulong *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "ulong uVar21;" type_identifier identifier ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "ulong uVar23;" type_identifier identifier ;) (declaration "char *pcVar24;" primitive_type (pointer_declarator "*pcVar24" * identifier) ;) (declaration "bool bVar25;" primitive_type identifier ;) (declaration "bool bVar26;" primitive_type identifier ;) (declaration "bool bVar27;" primitive_type identifier ;) (declaration "byte bVar28;" type_identifier identifier ;) (expression_statement "bVar28 = 0;" (assignment_expression "bVar28 = 0" identifier = number_literal) ;) (expression_statement "FUN_003b79e0();" (call_expression "FUN_003b79e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "lVar5 = *(long *)(param_1 + 0x28);" (assignment_expression "lVar5 = *(long *)(param_1 + 0x28)" identifier = (pointer_expression "*(long *)(param_1 + 0x28)" * (cast_expression "(long *)(param_1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (lVar5 == 0) {\nLAB_002d68fa:\n    FUN_00290dc0();\nLAB_002d68ff:\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/mips.cc",0x1b6f,"do_read_symbols");\n  }" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_002d68fa:\n    FUN_00290dc0();\nLAB_002d68ff:\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/mips.cc",0x1b6f,"do_read_symbols");\n  }" { (labeled_statement "LAB_002d68fa:\n    FUN_00290dc0();" statement_identifier : (expression_statement "FUN_00290dc0();" (call_expression "FUN_00290dc0()" identifier (argument_list "()" ( ))) ;)) (labeled_statement "LAB_002d68ff:\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/mips.cc",0x1b6f,"do_read_symbols");" statement_identifier : comment (expression_statement "FUN_00352af0("../../gold/mips.cc",0x1b6f,"do_read_symbols");" (call_expression "FUN_00352af0("../../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 "uVar22 = *(uint *)(lVar5 + 0xe4);" (assignment_expression "uVar22 = *(uint *)(lVar5 + 0xe4)" identifier = (pointer_expression "*(uint *)(lVar5 + 0xe4)" * (cast_expression "(uint *)(lVar5 + 0xe4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0xe4)" ( (binary_expression "lVar5 + 0xe4" identifier + number_literal) ))))) ;) (expression_statement "uVar23 = (ulong)uVar22;" (assignment_expression "uVar23 = (ulong)uVar22" identifier = (cast_expression "(ulong)uVar22" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (uVar22 == 1) {\n    lVar5 = FUN_0034d600(lVar5 + 0x28,*(undefined8 *)(param_1 + 0x30),0,0x34,1,0);\n    *(undefined4 *)(param_1 + 0x220) = *(undefined4 *)(lVar5 + 0x24);\n    uVar3 = *(ulong *)(param_2[1] + 0x10);\n    FUN_0022a2b0(param_1 + 0x378,*(undefined4 *)(param_1 + 0x38),0);\n    FUN_0022a2b0(param_1 + 0x3a0,*(undefined4 *)(param_1 + 0x38),0);\n    FUN_0022a2b0(param_1 + 0x3c8,*(undefined4 *)(param_1 + 0x38),0);\n    bVar4 = false;\n    puVar15 = (uint *)(*(long *)(*param_2 + 0x10) + 0x28);\n    if (1 < *(uint *)(param_1 + 0x38)) {\n      uVar22 = *(uint *)(*(long *)(*param_2 + 0x10) + 0x2c);\n      if (uVar22 != 2) goto LAB_002d6581;\n      do {\n        puVar16 = puVar15;\n        if (0x10 < puVar15[5]) {\n          bVar4 = true;\n        }\nLAB_002d66e8:\n        lVar5 = 10;\n        bVar25 = CARRY8((ulong)*puVar16,uVar3);\n        pbVar20 = (byte *)(*puVar16 + uVar3);\n        bVar27 = pbVar20 == (byte *)0x0;\n        pbVar17 = (byte *)".mips16.fn";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        uVar14 = (ulong)((uint)(uVar23 >> 3) & 0x1ffffff8);\n        uVar10 = 1L << ((byte)uVar23 & 0x3f);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x378) + uVar14);\n        uVar21 = *puVar18;\n        bVar26 = false;\n        bVar25 = (!bVar25 && !bVar27) == bVar25;\n        uVar13 = uVar21 & ~uVar10;\n        if (bVar25) {\n          uVar13 = uVar21 | uVar10;\n        }\n        *puVar18 = uVar13;\n        lVar5 = 0xd;\n        pbVar17 = (byte *)".mips16.call.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar26 = *pbVar17 < *pbVar19;\n          bVar25 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar25);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x3a0) + uVar14);\n        if ((!bVar26 && !bVar25) == bVar26) {\n          uVar21 = *puVar18 | uVar10;\n        }\n        else {\n          uVar21 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar21 == 0;\n        bVar25 = false;\n        *puVar18 = uVar21;\n        lVar5 = 0x10;\n        pbVar17 = (byte *)".mips16.call.fp.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        puVar18 = (ulong *)(uVar14 + *(long *)(param_1 + 0x3c8));\n        if ((!bVar25 && !bVar27) == bVar25) {\n          uVar10 = uVar10 | *puVar18;\n        }\n        else {\n          uVar10 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar10 == 0;\n        bVar25 = false;\n        *puVar18 = uVar10;\n        lVar5 = 5;\n        pbVar17 = &DAT_0053357f;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar20 < *pbVar17;\n          bVar27 = *pbVar20 == *pbVar17;\n          pbVar20 = pbVar20 + (ulong)bVar28 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        if ((!bVar25 && !bVar27) == bVar25) {\n          if (*(int *)(param_1 + 0x3f0) != -1) goto LAB_002d68ff;\n          *(int *)(param_1 + 0x3f0) = (int)uVar23;\n        }\n        uVar22 = (int)uVar23 + 1;\n        uVar23 = (ulong)uVar22;\n        puVar15 = puVar16 + 10;\n        if (*(uint *)(param_1 + 0x38) <= uVar22) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_002d643d;\n        }\n        uVar22 = puVar16[0xb];\n      } while (uVar22 == 2);\nLAB_002d6581:\n      puVar16 = puVar15;\n      if (uVar22 != 3) {\n        if (uVar22 == 0x70000006) {\n          *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) | 4;\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          puVar11 = (undefined4 *)\n                    FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0);\n          *(undefined4 *)(param_1 + 0x368) = puVar11[5];\n          *(undefined4 *)(param_1 + 0x408) = *puVar11;\n          *(undefined4 *)(param_1 + 0x40c) = puVar11[1];\n          *(undefined4 *)(param_1 + 0x410) = puVar11[2];\n          *(undefined4 *)(param_1 + 0x414) = puVar11[3];\n          *(undefined4 *)(param_1 + 0x418) = puVar11[4];\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x6ffffff5) {\n          if (*(long *)(param_1 + 0x3f8) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          uVar6 = FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                               puVar15[4],uVar22,1,0);\n          uVar7 = FUN_0049cb70(0x10);\n                    /* try { // try from 002d65fc to 002d6600 has its CatchHandler @ 002d695f */\n          FUN_003362a0(uVar7,uVar6,uVar22);\n          *(undefined8 *)(param_1 + 0x3f8) = uVar7;\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000002a) {\n          if (*(long *)(param_1 + 0x400) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          psVar8 = (short *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0);\n          psVar9 = (short *)FUN_0049cb70(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 + 0x400) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined8 *)(param_1 + 8);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0034a750(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((long)psVar9 + 3) = *(undefined1 *)((long)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((long)psVar9 + 5) = *(undefined1 *)((long)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((long)psVar9 + 7) = *(undefined1 *)((long)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          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000000d) {\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          pcVar12 = (char *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0);\n          pcVar24 = pcVar12 + uVar22;\n          for (; pcVar12 + 8 <= pcVar24; pcVar12 = pcVar12 + bVar1) {\n            bVar1 = pcVar12[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined8 *)(param_1 + 8);\n              pcVar24 = ".MIPS.options";\n              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);\n              break;\n            }\n            if (*pcVar12 == '\x01') {\n              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }\n      goto LAB_002d66e8;\n    }\n  }\n  else if (uVar22 != 2) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }" if (parenthesized_expression "(uVar22 == 1)" ( (binary_expression "uVar22 == 1" identifier == number_literal) )) (compound_statement "{\n    lVar5 = FUN_0034d600(lVar5 + 0x28,*(undefined8 *)(param_1 + 0x30),0,0x34,1,0);\n    *(undefined4 *)(param_1 + 0x220) = *(undefined4 *)(lVar5 + 0x24);\n    uVar3 = *(ulong *)(param_2[1] + 0x10);\n    FUN_0022a2b0(param_1 + 0x378,*(undefined4 *)(param_1 + 0x38),0);\n    FUN_0022a2b0(param_1 + 0x3a0,*(undefined4 *)(param_1 + 0x38),0);\n    FUN_0022a2b0(param_1 + 0x3c8,*(undefined4 *)(param_1 + 0x38),0);\n    bVar4 = false;\n    puVar15 = (uint *)(*(long *)(*param_2 + 0x10) + 0x28);\n    if (1 < *(uint *)(param_1 + 0x38)) {\n      uVar22 = *(uint *)(*(long *)(*param_2 + 0x10) + 0x2c);\n      if (uVar22 != 2) goto LAB_002d6581;\n      do {\n        puVar16 = puVar15;\n        if (0x10 < puVar15[5]) {\n          bVar4 = true;\n        }\nLAB_002d66e8:\n        lVar5 = 10;\n        bVar25 = CARRY8((ulong)*puVar16,uVar3);\n        pbVar20 = (byte *)(*puVar16 + uVar3);\n        bVar27 = pbVar20 == (byte *)0x0;\n        pbVar17 = (byte *)".mips16.fn";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        uVar14 = (ulong)((uint)(uVar23 >> 3) & 0x1ffffff8);\n        uVar10 = 1L << ((byte)uVar23 & 0x3f);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x378) + uVar14);\n        uVar21 = *puVar18;\n        bVar26 = false;\n        bVar25 = (!bVar25 && !bVar27) == bVar25;\n        uVar13 = uVar21 & ~uVar10;\n        if (bVar25) {\n          uVar13 = uVar21 | uVar10;\n        }\n        *puVar18 = uVar13;\n        lVar5 = 0xd;\n        pbVar17 = (byte *)".mips16.call.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar26 = *pbVar17 < *pbVar19;\n          bVar25 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar25);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x3a0) + uVar14);\n        if ((!bVar26 && !bVar25) == bVar26) {\n          uVar21 = *puVar18 | uVar10;\n        }\n        else {\n          uVar21 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar21 == 0;\n        bVar25 = false;\n        *puVar18 = uVar21;\n        lVar5 = 0x10;\n        pbVar17 = (byte *)".mips16.call.fp.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        puVar18 = (ulong *)(uVar14 + *(long *)(param_1 + 0x3c8));\n        if ((!bVar25 && !bVar27) == bVar25) {\n          uVar10 = uVar10 | *puVar18;\n        }\n        else {\n          uVar10 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar10 == 0;\n        bVar25 = false;\n        *puVar18 = uVar10;\n        lVar5 = 5;\n        pbVar17 = &DAT_0053357f;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar20 < *pbVar17;\n          bVar27 = *pbVar20 == *pbVar17;\n          pbVar20 = pbVar20 + (ulong)bVar28 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        if ((!bVar25 && !bVar27) == bVar25) {\n          if (*(int *)(param_1 + 0x3f0) != -1) goto LAB_002d68ff;\n          *(int *)(param_1 + 0x3f0) = (int)uVar23;\n        }\n        uVar22 = (int)uVar23 + 1;\n        uVar23 = (ulong)uVar22;\n        puVar15 = puVar16 + 10;\n        if (*(uint *)(param_1 + 0x38) <= uVar22) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_002d643d;\n        }\n        uVar22 = puVar16[0xb];\n      } while (uVar22 == 2);\nLAB_002d6581:\n      puVar16 = puVar15;\n      if (uVar22 != 3) {\n        if (uVar22 == 0x70000006) {\n          *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) | 4;\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          puVar11 = (undefined4 *)\n                    FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0);\n          *(undefined4 *)(param_1 + 0x368) = puVar11[5];\n          *(undefined4 *)(param_1 + 0x408) = *puVar11;\n          *(undefined4 *)(param_1 + 0x40c) = puVar11[1];\n          *(undefined4 *)(param_1 + 0x410) = puVar11[2];\n          *(undefined4 *)(param_1 + 0x414) = puVar11[3];\n          *(undefined4 *)(param_1 + 0x418) = puVar11[4];\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x6ffffff5) {\n          if (*(long *)(param_1 + 0x3f8) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          uVar6 = FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                               puVar15[4],uVar22,1,0);\n          uVar7 = FUN_0049cb70(0x10);\n                    /* try { // try from 002d65fc to 002d6600 has its CatchHandler @ 002d695f */\n          FUN_003362a0(uVar7,uVar6,uVar22);\n          *(undefined8 *)(param_1 + 0x3f8) = uVar7;\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000002a) {\n          if (*(long *)(param_1 + 0x400) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          psVar8 = (short *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0);\n          psVar9 = (short *)FUN_0049cb70(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 + 0x400) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined8 *)(param_1 + 8);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0034a750(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((long)psVar9 + 3) = *(undefined1 *)((long)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((long)psVar9 + 5) = *(undefined1 *)((long)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((long)psVar9 + 7) = *(undefined1 *)((long)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          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000000d) {\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          pcVar12 = (char *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0);\n          pcVar24 = pcVar12 + uVar22;\n          for (; pcVar12 + 8 <= pcVar24; pcVar12 = pcVar12 + bVar1) {\n            bVar1 = pcVar12[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined8 *)(param_1 + 8);\n              pcVar24 = ".MIPS.options";\n              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);\n              break;\n            }\n            if (*pcVar12 == '\x01') {\n              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }\n      goto LAB_002d66e8;\n    }\n  }" { (expression_statement "lVar5 = FUN_0034d600(lVar5 + 0x28,*(undefined8 *)(param_1 + 0x30),0,0x34,1,0);" (assignment_expression "lVar5 = FUN_0034d600(lVar5 + 0x28,*(undefined8 *)(param_1 + 0x30),0,0x34,1,0)" identifier = (call_expression "FUN_0034d600(lVar5 + 0x28,*(undefined8 *)(param_1 + 0x30),0,0x34,1,0)" identifier (argument_list "(lVar5 + 0x28,*(undefined8 *)(param_1 + 0x30),0,0x34,1,0)" ( (binary_expression "lVar5 + 0x28" identifier + number_literal) , (pointer_expression "*(undefined8 *)(param_1 + 0x30)" * (cast_expression "(undefined8 *)(param_1 + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) , number_literal , number_literal , number_literal , number_literal )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x220) = *(undefined4 *)(lVar5 + 0x24);" (assignment_expression "*(undefined4 *)(param_1 + 0x220) = *(undefined4 *)(lVar5 + 0x24)" (pointer_expression "*(undefined4 *)(param_1 + 0x220)" * (cast_expression "(undefined4 *)(param_1 + 0x220)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x220)" ( (binary_expression "param_1 + 0x220" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(lVar5 + 0x24)" * (cast_expression "(undefined4 *)(lVar5 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x24)" ( (binary_expression "lVar5 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(ulong *)(param_2[1] + 0x10);" (assignment_expression "uVar3 = *(ulong *)(param_2[1] + 0x10)" identifier = (pointer_expression "*(ulong *)(param_2[1] + 0x10)" * (cast_expression "(ulong *)(param_2[1] + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + 0x10)" ( (binary_expression "param_2[1] + 0x10" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "FUN_0022a2b0(param_1 + 0x378,*(undefined4 *)(param_1 + 0x38),0);" (call_expression "FUN_0022a2b0(param_1 + 0x378,*(undefined4 *)(param_1 + 0x38),0)" identifier (argument_list "(param_1 + 0x378,*(undefined4 *)(param_1 + 0x38),0)" ( (binary_expression "param_1 + 0x378" identifier + number_literal) , (pointer_expression "*(undefined4 *)(param_1 + 0x38)" * (cast_expression "(undefined4 *)(param_1 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) , number_literal ))) ;) (expression_statement "FUN_0022a2b0(param_1 + 0x3a0,*(undefined4 *)(param_1 + 0x38),0);" (call_expression "FUN_0022a2b0(param_1 + 0x3a0,*(undefined4 *)(param_1 + 0x38),0)" identifier (argument_list "(param_1 + 0x3a0,*(undefined4 *)(param_1 + 0x38),0)" ( (binary_expression "param_1 + 0x3a0" identifier + number_literal) , (pointer_expression "*(undefined4 *)(param_1 + 0x38)" * (cast_expression "(undefined4 *)(param_1 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) , number_literal ))) ;) (expression_statement "FUN_0022a2b0(param_1 + 0x3c8,*(undefined4 *)(param_1 + 0x38),0);" (call_expression "FUN_0022a2b0(param_1 + 0x3c8,*(undefined4 *)(param_1 + 0x38),0)" identifier (argument_list "(param_1 + 0x3c8,*(undefined4 *)(param_1 + 0x38),0)" ( (binary_expression "param_1 + 0x3c8" identifier + number_literal) , (pointer_expression "*(undefined4 *)(param_1 + 0x38)" * (cast_expression "(undefined4 *)(param_1 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) , number_literal ))) ;) (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) (expression_statement "puVar15 = (uint *)(*(long *)(*param_2 + 0x10) + 0x28);" (assignment_expression "puVar15 = (uint *)(*(long *)(*param_2 + 0x10) + 0x28)" identifier = (cast_expression "(uint *)(*(long *)(*param_2 + 0x10) + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(*param_2 + 0x10) + 0x28)" ( (binary_expression "*(long *)(*param_2 + 0x10) + 0x28" (pointer_expression "*(long *)(*param_2 + 0x10)" * (cast_expression "(long *)(*param_2 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_2 + 0x10)" ( (binary_expression "*param_2 + 0x10" (pointer_expression "*param_2" * identifier) + number_literal) )))) + number_literal) )))) ;) (if_statement "if (1 < *(uint *)(param_1 + 0x38)) {\n      uVar22 = *(uint *)(*(long *)(*param_2 + 0x10) + 0x2c);\n      if (uVar22 != 2) goto LAB_002d6581;\n      do {\n        puVar16 = puVar15;\n        if (0x10 < puVar15[5]) {\n          bVar4 = true;\n        }\nLAB_002d66e8:\n        lVar5 = 10;\n        bVar25 = CARRY8((ulong)*puVar16,uVar3);\n        pbVar20 = (byte *)(*puVar16 + uVar3);\n        bVar27 = pbVar20 == (byte *)0x0;\n        pbVar17 = (byte *)".mips16.fn";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        uVar14 = (ulong)((uint)(uVar23 >> 3) & 0x1ffffff8);\n        uVar10 = 1L << ((byte)uVar23 & 0x3f);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x378) + uVar14);\n        uVar21 = *puVar18;\n        bVar26 = false;\n        bVar25 = (!bVar25 && !bVar27) == bVar25;\n        uVar13 = uVar21 & ~uVar10;\n        if (bVar25) {\n          uVar13 = uVar21 | uVar10;\n        }\n        *puVar18 = uVar13;\n        lVar5 = 0xd;\n        pbVar17 = (byte *)".mips16.call.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar26 = *pbVar17 < *pbVar19;\n          bVar25 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar25);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x3a0) + uVar14);\n        if ((!bVar26 && !bVar25) == bVar26) {\n          uVar21 = *puVar18 | uVar10;\n        }\n        else {\n          uVar21 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar21 == 0;\n        bVar25 = false;\n        *puVar18 = uVar21;\n        lVar5 = 0x10;\n        pbVar17 = (byte *)".mips16.call.fp.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        puVar18 = (ulong *)(uVar14 + *(long *)(param_1 + 0x3c8));\n        if ((!bVar25 && !bVar27) == bVar25) {\n          uVar10 = uVar10 | *puVar18;\n        }\n        else {\n          uVar10 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar10 == 0;\n        bVar25 = false;\n        *puVar18 = uVar10;\n        lVar5 = 5;\n        pbVar17 = &DAT_0053357f;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar20 < *pbVar17;\n          bVar27 = *pbVar20 == *pbVar17;\n          pbVar20 = pbVar20 + (ulong)bVar28 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        if ((!bVar25 && !bVar27) == bVar25) {\n          if (*(int *)(param_1 + 0x3f0) != -1) goto LAB_002d68ff;\n          *(int *)(param_1 + 0x3f0) = (int)uVar23;\n        }\n        uVar22 = (int)uVar23 + 1;\n        uVar23 = (ulong)uVar22;\n        puVar15 = puVar16 + 10;\n        if (*(uint *)(param_1 + 0x38) <= uVar22) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_002d643d;\n        }\n        uVar22 = puVar16[0xb];\n      } while (uVar22 == 2);\nLAB_002d6581:\n      puVar16 = puVar15;\n      if (uVar22 != 3) {\n        if (uVar22 == 0x70000006) {\n          *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) | 4;\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          puVar11 = (undefined4 *)\n                    FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0);\n          *(undefined4 *)(param_1 + 0x368) = puVar11[5];\n          *(undefined4 *)(param_1 + 0x408) = *puVar11;\n          *(undefined4 *)(param_1 + 0x40c) = puVar11[1];\n          *(undefined4 *)(param_1 + 0x410) = puVar11[2];\n          *(undefined4 *)(param_1 + 0x414) = puVar11[3];\n          *(undefined4 *)(param_1 + 0x418) = puVar11[4];\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x6ffffff5) {\n          if (*(long *)(param_1 + 0x3f8) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          uVar6 = FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                               puVar15[4],uVar22,1,0);\n          uVar7 = FUN_0049cb70(0x10);\n                    /* try { // try from 002d65fc to 002d6600 has its CatchHandler @ 002d695f */\n          FUN_003362a0(uVar7,uVar6,uVar22);\n          *(undefined8 *)(param_1 + 0x3f8) = uVar7;\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000002a) {\n          if (*(long *)(param_1 + 0x400) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          psVar8 = (short *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0);\n          psVar9 = (short *)FUN_0049cb70(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 + 0x400) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined8 *)(param_1 + 8);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0034a750(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((long)psVar9 + 3) = *(undefined1 *)((long)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((long)psVar9 + 5) = *(undefined1 *)((long)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((long)psVar9 + 7) = *(undefined1 *)((long)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          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000000d) {\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          pcVar12 = (char *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0);\n          pcVar24 = pcVar12 + uVar22;\n          for (; pcVar12 + 8 <= pcVar24; pcVar12 = pcVar12 + bVar1) {\n            bVar1 = pcVar12[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined8 *)(param_1 + 8);\n              pcVar24 = ".MIPS.options";\n              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);\n              break;\n            }\n            if (*pcVar12 == '\x01') {\n              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }\n      goto LAB_002d66e8;\n    }" if (parenthesized_expression "(1 < *(uint *)(param_1 + 0x38))" ( (binary_expression "1 < *(uint *)(param_1 + 0x38)" number_literal < (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) )) (compound_statement "{\n      uVar22 = *(uint *)(*(long *)(*param_2 + 0x10) + 0x2c);\n      if (uVar22 != 2) goto LAB_002d6581;\n      do {\n        puVar16 = puVar15;\n        if (0x10 < puVar15[5]) {\n          bVar4 = true;\n        }\nLAB_002d66e8:\n        lVar5 = 10;\n        bVar25 = CARRY8((ulong)*puVar16,uVar3);\n        pbVar20 = (byte *)(*puVar16 + uVar3);\n        bVar27 = pbVar20 == (byte *)0x0;\n        pbVar17 = (byte *)".mips16.fn";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        uVar14 = (ulong)((uint)(uVar23 >> 3) & 0x1ffffff8);\n        uVar10 = 1L << ((byte)uVar23 & 0x3f);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x378) + uVar14);\n        uVar21 = *puVar18;\n        bVar26 = false;\n        bVar25 = (!bVar25 && !bVar27) == bVar25;\n        uVar13 = uVar21 & ~uVar10;\n        if (bVar25) {\n          uVar13 = uVar21 | uVar10;\n        }\n        *puVar18 = uVar13;\n        lVar5 = 0xd;\n        pbVar17 = (byte *)".mips16.call.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar26 = *pbVar17 < *pbVar19;\n          bVar25 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar25);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x3a0) + uVar14);\n        if ((!bVar26 && !bVar25) == bVar26) {\n          uVar21 = *puVar18 | uVar10;\n        }\n        else {\n          uVar21 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar21 == 0;\n        bVar25 = false;\n        *puVar18 = uVar21;\n        lVar5 = 0x10;\n        pbVar17 = (byte *)".mips16.call.fp.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        puVar18 = (ulong *)(uVar14 + *(long *)(param_1 + 0x3c8));\n        if ((!bVar25 && !bVar27) == bVar25) {\n          uVar10 = uVar10 | *puVar18;\n        }\n        else {\n          uVar10 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar10 == 0;\n        bVar25 = false;\n        *puVar18 = uVar10;\n        lVar5 = 5;\n        pbVar17 = &DAT_0053357f;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar20 < *pbVar17;\n          bVar27 = *pbVar20 == *pbVar17;\n          pbVar20 = pbVar20 + (ulong)bVar28 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        if ((!bVar25 && !bVar27) == bVar25) {\n          if (*(int *)(param_1 + 0x3f0) != -1) goto LAB_002d68ff;\n          *(int *)(param_1 + 0x3f0) = (int)uVar23;\n        }\n        uVar22 = (int)uVar23 + 1;\n        uVar23 = (ulong)uVar22;\n        puVar15 = puVar16 + 10;\n        if (*(uint *)(param_1 + 0x38) <= uVar22) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_002d643d;\n        }\n        uVar22 = puVar16[0xb];\n      } while (uVar22 == 2);\nLAB_002d6581:\n      puVar16 = puVar15;\n      if (uVar22 != 3) {\n        if (uVar22 == 0x70000006) {\n          *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) | 4;\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          puVar11 = (undefined4 *)\n                    FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0);\n          *(undefined4 *)(param_1 + 0x368) = puVar11[5];\n          *(undefined4 *)(param_1 + 0x408) = *puVar11;\n          *(undefined4 *)(param_1 + 0x40c) = puVar11[1];\n          *(undefined4 *)(param_1 + 0x410) = puVar11[2];\n          *(undefined4 *)(param_1 + 0x414) = puVar11[3];\n          *(undefined4 *)(param_1 + 0x418) = puVar11[4];\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x6ffffff5) {\n          if (*(long *)(param_1 + 0x3f8) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          uVar6 = FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                               puVar15[4],uVar22,1,0);\n          uVar7 = FUN_0049cb70(0x10);\n                    /* try { // try from 002d65fc to 002d6600 has its CatchHandler @ 002d695f */\n          FUN_003362a0(uVar7,uVar6,uVar22);\n          *(undefined8 *)(param_1 + 0x3f8) = uVar7;\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000002a) {\n          if (*(long *)(param_1 + 0x400) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          psVar8 = (short *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0);\n          psVar9 = (short *)FUN_0049cb70(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 + 0x400) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined8 *)(param_1 + 8);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0034a750(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((long)psVar9 + 3) = *(undefined1 *)((long)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((long)psVar9 + 5) = *(undefined1 *)((long)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((long)psVar9 + 7) = *(undefined1 *)((long)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          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000000d) {\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          pcVar12 = (char *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0);\n          pcVar24 = pcVar12 + uVar22;\n          for (; pcVar12 + 8 <= pcVar24; pcVar12 = pcVar12 + bVar1) {\n            bVar1 = pcVar12[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined8 *)(param_1 + 8);\n              pcVar24 = ".MIPS.options";\n              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);\n              break;\n            }\n            if (*pcVar12 == '\x01') {\n              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }\n      goto LAB_002d66e8;\n    }" { (expression_statement "uVar22 = *(uint *)(*(long *)(*param_2 + 0x10) + 0x2c);" (assignment_expression "uVar22 = *(uint *)(*(long *)(*param_2 + 0x10) + 0x2c)" identifier = (pointer_expression "*(uint *)(*(long *)(*param_2 + 0x10) + 0x2c)" * (cast_expression "(uint *)(*(long *)(*param_2 + 0x10) + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(*param_2 + 0x10) + 0x2c)" ( (binary_expression "*(long *)(*param_2 + 0x10) + 0x2c" (pointer_expression "*(long *)(*param_2 + 0x10)" * (cast_expression "(long *)(*param_2 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_2 + 0x10)" ( (binary_expression "*param_2 + 0x10" (pointer_expression "*param_2" * identifier) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (uVar22 != 2) goto LAB_002d6581;" if (parenthesized_expression "(uVar22 != 2)" ( (binary_expression "uVar22 != 2" identifier != number_literal) )) (goto_statement "goto LAB_002d6581;" goto statement_identifier ;)) (do_statement "do {\n        puVar16 = puVar15;\n        if (0x10 < puVar15[5]) {\n          bVar4 = true;\n        }\nLAB_002d66e8:\n        lVar5 = 10;\n        bVar25 = CARRY8((ulong)*puVar16,uVar3);\n        pbVar20 = (byte *)(*puVar16 + uVar3);\n        bVar27 = pbVar20 == (byte *)0x0;\n        pbVar17 = (byte *)".mips16.fn";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        uVar14 = (ulong)((uint)(uVar23 >> 3) & 0x1ffffff8);\n        uVar10 = 1L << ((byte)uVar23 & 0x3f);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x378) + uVar14);\n        uVar21 = *puVar18;\n        bVar26 = false;\n        bVar25 = (!bVar25 && !bVar27) == bVar25;\n        uVar13 = uVar21 & ~uVar10;\n        if (bVar25) {\n          uVar13 = uVar21 | uVar10;\n        }\n        *puVar18 = uVar13;\n        lVar5 = 0xd;\n        pbVar17 = (byte *)".mips16.call.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar26 = *pbVar17 < *pbVar19;\n          bVar25 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar25);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x3a0) + uVar14);\n        if ((!bVar26 && !bVar25) == bVar26) {\n          uVar21 = *puVar18 | uVar10;\n        }\n        else {\n          uVar21 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar21 == 0;\n        bVar25 = false;\n        *puVar18 = uVar21;\n        lVar5 = 0x10;\n        pbVar17 = (byte *)".mips16.call.fp.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        puVar18 = (ulong *)(uVar14 + *(long *)(param_1 + 0x3c8));\n        if ((!bVar25 && !bVar27) == bVar25) {\n          uVar10 = uVar10 | *puVar18;\n        }\n        else {\n          uVar10 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar10 == 0;\n        bVar25 = false;\n        *puVar18 = uVar10;\n        lVar5 = 5;\n        pbVar17 = &DAT_0053357f;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar20 < *pbVar17;\n          bVar27 = *pbVar20 == *pbVar17;\n          pbVar20 = pbVar20 + (ulong)bVar28 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        if ((!bVar25 && !bVar27) == bVar25) {\n          if (*(int *)(param_1 + 0x3f0) != -1) goto LAB_002d68ff;\n          *(int *)(param_1 + 0x3f0) = (int)uVar23;\n        }\n        uVar22 = (int)uVar23 + 1;\n        uVar23 = (ulong)uVar22;\n        puVar15 = puVar16 + 10;\n        if (*(uint *)(param_1 + 0x38) <= uVar22) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_002d643d;\n        }\n        uVar22 = puVar16[0xb];\n      } while (uVar22 == 2);" do (compound_statement "{\n        puVar16 = puVar15;\n        if (0x10 < puVar15[5]) {\n          bVar4 = true;\n        }\nLAB_002d66e8:\n        lVar5 = 10;\n        bVar25 = CARRY8((ulong)*puVar16,uVar3);\n        pbVar20 = (byte *)(*puVar16 + uVar3);\n        bVar27 = pbVar20 == (byte *)0x0;\n        pbVar17 = (byte *)".mips16.fn";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        uVar14 = (ulong)((uint)(uVar23 >> 3) & 0x1ffffff8);\n        uVar10 = 1L << ((byte)uVar23 & 0x3f);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x378) + uVar14);\n        uVar21 = *puVar18;\n        bVar26 = false;\n        bVar25 = (!bVar25 && !bVar27) == bVar25;\n        uVar13 = uVar21 & ~uVar10;\n        if (bVar25) {\n          uVar13 = uVar21 | uVar10;\n        }\n        *puVar18 = uVar13;\n        lVar5 = 0xd;\n        pbVar17 = (byte *)".mips16.call.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar26 = *pbVar17 < *pbVar19;\n          bVar25 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar25);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x3a0) + uVar14);\n        if ((!bVar26 && !bVar25) == bVar26) {\n          uVar21 = *puVar18 | uVar10;\n        }\n        else {\n          uVar21 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar21 == 0;\n        bVar25 = false;\n        *puVar18 = uVar21;\n        lVar5 = 0x10;\n        pbVar17 = (byte *)".mips16.call.fp.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        puVar18 = (ulong *)(uVar14 + *(long *)(param_1 + 0x3c8));\n        if ((!bVar25 && !bVar27) == bVar25) {\n          uVar10 = uVar10 | *puVar18;\n        }\n        else {\n          uVar10 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar10 == 0;\n        bVar25 = false;\n        *puVar18 = uVar10;\n        lVar5 = 5;\n        pbVar17 = &DAT_0053357f;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar20 < *pbVar17;\n          bVar27 = *pbVar20 == *pbVar17;\n          pbVar20 = pbVar20 + (ulong)bVar28 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        if ((!bVar25 && !bVar27) == bVar25) {\n          if (*(int *)(param_1 + 0x3f0) != -1) goto LAB_002d68ff;\n          *(int *)(param_1 + 0x3f0) = (int)uVar23;\n        }\n        uVar22 = (int)uVar23 + 1;\n        uVar23 = (ulong)uVar22;\n        puVar15 = puVar16 + 10;\n        if (*(uint *)(param_1 + 0x38) <= uVar22) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_002d643d;\n        }\n        uVar22 = puVar16[0xb];\n      }" { (expression_statement "puVar16 = puVar15;" (assignment_expression "puVar16 = puVar15" identifier = identifier) ;) (if_statement "if (0x10 < puVar15[5]) {\n          bVar4 = true;\n        }" if (parenthesized_expression "(0x10 < puVar15[5])" ( (binary_expression "0x10 < puVar15[5]" number_literal < (subscript_expression "puVar15[5]" identifier [ number_literal ])) )) (compound_statement "{\n          bVar4 = true;\n        }" { (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" identifier = true) ;) })) (labeled_statement "LAB_002d66e8:\n        lVar5 = 10;" statement_identifier : (expression_statement "lVar5 = 10;" (assignment_expression "lVar5 = 10" identifier = number_literal) ;)) (expression_statement "bVar25 = CARRY8((ulong)*puVar16,uVar3);" (assignment_expression "bVar25 = CARRY8((ulong)*puVar16,uVar3)" identifier = (call_expression "CARRY8((ulong)*puVar16,uVar3)" identifier (argument_list "((ulong)*puVar16,uVar3)" ( (binary_expression "(ulong)*puVar16" (parenthesized_expression "(ulong)" ( identifier )) * identifier) , identifier )))) ;) (expression_statement "pbVar20 = (byte *)(*puVar16 + uVar3);" (assignment_expression "pbVar20 = (byte *)(*puVar16 + uVar3)" identifier = (cast_expression "(byte *)(*puVar16 + uVar3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*puVar16 + uVar3)" ( (binary_expression "*puVar16 + uVar3" (pointer_expression "*puVar16" * identifier) + identifier) )))) ;) (expression_statement "bVar27 = pbVar20 == (byte *)0x0;" (assignment_expression "bVar27 = pbVar20 == (byte *)0x0" identifier = (binary_expression "pbVar20 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar17 = (byte *)".mips16.fn";" (assignment_expression "pbVar17 = (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 "pbVar19 = pbVar20;" (assignment_expression "pbVar19 = pbVar20" identifier = identifier) ;) (do_statement "do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);" do (compound_statement "{\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        }" { (if_statement "if (lVar5 == 0) break;" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar5 = lVar5 + -1;" (assignment_expression "lVar5 = lVar5 + -1" identifier = (binary_expression "lVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar17 < *pbVar19;" (assignment_expression "bVar25 = *pbVar17 < *pbVar19" identifier = (binary_expression "*pbVar17 < *pbVar19" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar27 = *pbVar17 == *pbVar19;" (assignment_expression "bVar27 = *pbVar17 == *pbVar19" identifier = (binary_expression "*pbVar17 == *pbVar19" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar28 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar28 * -2" identifier + (binary_expression "(ulong)bVar28 * -2" (cast_expression "(ulong)bVar28" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1" identifier = (binary_expression "pbVar19 + (ulong)bVar28 * -2 + 1" (binary_expression "pbVar19 + (ulong)bVar28 * -2" identifier + (binary_expression "(ulong)bVar28 * -2" (cast_expression "(ulong)bVar28" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar27)" ( identifier )) ;) (expression_statement "uVar14 = (ulong)((uint)(uVar23 >> 3) & 0x1ffffff8);" (assignment_expression "uVar14 = (ulong)((uint)(uVar23 >> 3) & 0x1ffffff8)" identifier = (call_expression "(ulong)((uint)(uVar23 >> 3) & 0x1ffffff8)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((uint)(uVar23 >> 3) & 0x1ffffff8)" ( (binary_expression "(uint)(uVar23 >> 3) & 0x1ffffff8" (call_expression "(uint)(uVar23 >> 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar23 >> 3)" ( (binary_expression "uVar23 >> 3" identifier >> number_literal) ))) & number_literal) )))) ;) (expression_statement "uVar10 = 1L << ((byte)uVar23 & 0x3f);" (assignment_expression "uVar10 = 1L << ((byte)uVar23 & 0x3f)" identifier = (binary_expression "1L << ((byte)uVar23 & 0x3f)" number_literal << (parenthesized_expression "((byte)uVar23 & 0x3f)" ( (binary_expression "(byte)uVar23 & 0x3f" (cast_expression "(byte)uVar23" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "puVar18 = (ulong *)(*(long *)(param_1 + 0x378) + uVar14);" (assignment_expression "puVar18 = (ulong *)(*(long *)(param_1 + 0x378) + uVar14)" identifier = (cast_expression "(ulong *)(*(long *)(param_1 + 0x378) + uVar14)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0x378) + uVar14)" ( (binary_expression "*(long *)(param_1 + 0x378) + uVar14" (pointer_expression "*(long *)(param_1 + 0x378)" * (cast_expression "(long *)(param_1 + 0x378)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x378)" ( (binary_expression "param_1 + 0x378" identifier + number_literal) )))) + identifier) )))) ;) (expression_statement "uVar21 = *puVar18;" (assignment_expression "uVar21 = *puVar18" identifier = (pointer_expression "*puVar18" * identifier)) ;) (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" identifier = false) ;) (expression_statement "bVar25 = (!bVar25 && !bVar27) == bVar25;" (assignment_expression "bVar25 = (!bVar25 && !bVar27) == bVar25" identifier = (binary_expression "(!bVar25 && !bVar27) == bVar25" (parenthesized_expression "(!bVar25 && !bVar27)" ( (binary_expression "!bVar25 && !bVar27" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar27" ! identifier)) )) == identifier)) ;) (expression_statement "uVar13 = uVar21 & ~uVar10;" (assignment_expression "uVar13 = uVar21 & ~uVar10" identifier = (binary_expression "uVar21 & ~uVar10" identifier & (unary_expression "~uVar10" ~ identifier))) ;) (if_statement "if (bVar25) {\n          uVar13 = uVar21 | uVar10;\n        }" if (parenthesized_expression "(bVar25)" ( identifier )) (compound_statement "{\n          uVar13 = uVar21 | uVar10;\n        }" { (expression_statement "uVar13 = uVar21 | uVar10;" (assignment_expression "uVar13 = uVar21 | uVar10" identifier = (binary_expression "uVar21 | uVar10" identifier | identifier)) ;) })) (expression_statement "*puVar18 = uVar13;" (assignment_expression "*puVar18 = uVar13" (pointer_expression "*puVar18" * identifier) = identifier) ;) (expression_statement "lVar5 = 0xd;" (assignment_expression "lVar5 = 0xd" identifier = number_literal) ;) (expression_statement "pbVar17 = (byte *)".mips16.call.";" (assignment_expression "pbVar17 = (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 "pbVar19 = pbVar20;" (assignment_expression "pbVar19 = pbVar20" identifier = identifier) ;) (do_statement "do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar26 = *pbVar17 < *pbVar19;\n          bVar25 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar25);" do (compound_statement "{\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar26 = *pbVar17 < *pbVar19;\n          bVar25 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        }" { (if_statement "if (lVar5 == 0) break;" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar5 = lVar5 + -1;" (assignment_expression "lVar5 = lVar5 + -1" identifier = (binary_expression "lVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar26 = *pbVar17 < *pbVar19;" (assignment_expression "bVar26 = *pbVar17 < *pbVar19" identifier = (binary_expression "*pbVar17 < *pbVar19" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar25 = *pbVar17 == *pbVar19;" (assignment_expression "bVar25 = *pbVar17 == *pbVar19" identifier = (binary_expression "*pbVar17 == *pbVar19" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar28 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar28 * -2" identifier + (binary_expression "(ulong)bVar28 * -2" (cast_expression "(ulong)bVar28" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1" identifier = (binary_expression "pbVar19 + (ulong)bVar28 * -2 + 1" (binary_expression "pbVar19 + (ulong)bVar28 * -2" identifier + (binary_expression "(ulong)bVar28 * -2" (cast_expression "(ulong)bVar28" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar25)" ( identifier )) ;) (expression_statement "puVar18 = (ulong *)(*(long *)(param_1 + 0x3a0) + uVar14);" (assignment_expression "puVar18 = (ulong *)(*(long *)(param_1 + 0x3a0) + uVar14)" identifier = (cast_expression "(ulong *)(*(long *)(param_1 + 0x3a0) + uVar14)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0x3a0) + uVar14)" ( (binary_expression "*(long *)(param_1 + 0x3a0) + uVar14" (pointer_expression "*(long *)(param_1 + 0x3a0)" * (cast_expression "(long *)(param_1 + 0x3a0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3a0)" ( (binary_expression "param_1 + 0x3a0" identifier + number_literal) )))) + identifier) )))) ;) (if_statement "if ((!bVar26 && !bVar25) == bVar26) {\n          uVar21 = *puVar18 | uVar10;\n        }\n        else {\n          uVar21 = ~uVar10 & *puVar18;\n        }" if (parenthesized_expression "((!bVar26 && !bVar25) == bVar26)" ( (binary_expression "(!bVar26 && !bVar25) == bVar26" (parenthesized_expression "(!bVar26 && !bVar25)" ( (binary_expression "!bVar26 && !bVar25" (unary_expression "!bVar26" ! identifier) && (unary_expression "!bVar25" ! identifier)) )) == identifier) )) (compound_statement "{\n          uVar21 = *puVar18 | uVar10;\n        }" { (expression_statement "uVar21 = *puVar18 | uVar10;" (assignment_expression "uVar21 = *puVar18 | uVar10" identifier = (binary_expression "*puVar18 | uVar10" (pointer_expression "*puVar18" * identifier) | identifier)) ;) }) (else_clause "else {\n          uVar21 = ~uVar10 & *puVar18;\n        }" else (compound_statement "{\n          uVar21 = ~uVar10 & *puVar18;\n        }" { (expression_statement "uVar21 = ~uVar10 & *puVar18;" (assignment_expression "uVar21 = ~uVar10 & *puVar18" identifier = (binary_expression "~uVar10 & *puVar18" (unary_expression "~uVar10" ~ identifier) & (pointer_expression "*puVar18" * identifier))) ;) }))) (expression_statement "bVar27 = uVar21 == 0;" (assignment_expression "bVar27 = uVar21 == 0" identifier = (binary_expression "uVar21 == 0" identifier == number_literal)) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "*puVar18 = uVar21;" (assignment_expression "*puVar18 = uVar21" (pointer_expression "*puVar18" * identifier) = identifier) ;) (expression_statement "lVar5 = 0x10;" (assignment_expression "lVar5 = 0x10" identifier = number_literal) ;) (expression_statement "pbVar17 = (byte *)".mips16.call.fp.";" (assignment_expression "pbVar17 = (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 "pbVar19 = pbVar20;" (assignment_expression "pbVar19 = pbVar20" identifier = identifier) ;) (do_statement "do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);" do (compound_statement "{\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        }" { (if_statement "if (lVar5 == 0) break;" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar5 = lVar5 + -1;" (assignment_expression "lVar5 = lVar5 + -1" identifier = (binary_expression "lVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar17 < *pbVar19;" (assignment_expression "bVar25 = *pbVar17 < *pbVar19" identifier = (binary_expression "*pbVar17 < *pbVar19" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar27 = *pbVar17 == *pbVar19;" (assignment_expression "bVar27 = *pbVar17 == *pbVar19" identifier = (binary_expression "*pbVar17 == *pbVar19" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar28 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar28 * -2" identifier + (binary_expression "(ulong)bVar28 * -2" (cast_expression "(ulong)bVar28" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1" identifier = (binary_expression "pbVar19 + (ulong)bVar28 * -2 + 1" (binary_expression "pbVar19 + (ulong)bVar28 * -2" identifier + (binary_expression "(ulong)bVar28 * -2" (cast_expression "(ulong)bVar28" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar27)" ( identifier )) ;) (expression_statement "puVar18 = (ulong *)(uVar14 + *(long *)(param_1 + 0x3c8));" (assignment_expression "puVar18 = (ulong *)(uVar14 + *(long *)(param_1 + 0x3c8))" identifier = (cast_expression "(ulong *)(uVar14 + *(long *)(param_1 + 0x3c8))" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar14 + *(long *)(param_1 + 0x3c8))" ( (binary_expression "uVar14 + *(long *)(param_1 + 0x3c8)" identifier + (pointer_expression "*(long *)(param_1 + 0x3c8)" * (cast_expression "(long *)(param_1 + 0x3c8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3c8)" ( (binary_expression "param_1 + 0x3c8" identifier + number_literal) ))))) )))) ;) (if_statement "if ((!bVar25 && !bVar27) == bVar25) {\n          uVar10 = uVar10 | *puVar18;\n        }\n        else {\n          uVar10 = ~uVar10 & *puVar18;\n        }" if (parenthesized_expression "((!bVar25 && !bVar27) == bVar25)" ( (binary_expression "(!bVar25 && !bVar27) == bVar25" (parenthesized_expression "(!bVar25 && !bVar27)" ( (binary_expression "!bVar25 && !bVar27" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar27" ! identifier)) )) == identifier) )) (compound_statement "{\n          uVar10 = uVar10 | *puVar18;\n        }" { (expression_statement "uVar10 = uVar10 | *puVar18;" (assignment_expression "uVar10 = uVar10 | *puVar18" identifier = (binary_expression "uVar10 | *puVar18" identifier | (pointer_expression "*puVar18" * identifier))) ;) }) (else_clause "else {\n          uVar10 = ~uVar10 & *puVar18;\n        }" else (compound_statement "{\n          uVar10 = ~uVar10 & *puVar18;\n        }" { (expression_statement "uVar10 = ~uVar10 & *puVar18;" (assignment_expression "uVar10 = ~uVar10 & *puVar18" identifier = (binary_expression "~uVar10 & *puVar18" (unary_expression "~uVar10" ~ identifier) & (pointer_expression "*puVar18" * identifier))) ;) }))) (expression_statement "bVar27 = uVar10 == 0;" (assignment_expression "bVar27 = uVar10 == 0" identifier = (binary_expression "uVar10 == 0" identifier == number_literal)) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "*puVar18 = uVar10;" (assignment_expression "*puVar18 = uVar10" (pointer_expression "*puVar18" * identifier) = identifier) ;) (expression_statement "lVar5 = 5;" (assignment_expression "lVar5 = 5" identifier = number_literal) ;) (expression_statement "pbVar17 = &DAT_0053357f;" (assignment_expression "pbVar17 = &DAT_0053357f" identifier = (pointer_expression "&DAT_0053357f" & identifier)) ;) (do_statement "do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar20 < *pbVar17;\n          bVar27 = *pbVar20 == *pbVar17;\n          pbVar20 = pbVar20 + (ulong)bVar28 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);" do (compound_statement "{\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar20 < *pbVar17;\n          bVar27 = *pbVar20 == *pbVar17;\n          pbVar20 = pbVar20 + (ulong)bVar28 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n        }" { (if_statement "if (lVar5 == 0) break;" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar5 = lVar5 + -1;" (assignment_expression "lVar5 = lVar5 + -1" identifier = (binary_expression "lVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar20 < *pbVar17;" (assignment_expression "bVar25 = *pbVar20 < *pbVar17" identifier = (binary_expression "*pbVar20 < *pbVar17" (pointer_expression "*pbVar20" * identifier) < (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "bVar27 = *pbVar20 == *pbVar17;" (assignment_expression "bVar27 = *pbVar20 == *pbVar17" identifier = (binary_expression "*pbVar20 == *pbVar17" (pointer_expression "*pbVar20" * identifier) == (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "pbVar20 = pbVar20 + (ulong)bVar28 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (ulong)bVar28 * -2 + 1" identifier = (binary_expression "pbVar20 + (ulong)bVar28 * -2 + 1" (binary_expression "pbVar20 + (ulong)bVar28 * -2" identifier + (binary_expression "(ulong)bVar28 * -2" (cast_expression "(ulong)bVar28" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar28 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar28 * -2" identifier + (binary_expression "(ulong)bVar28 * -2" (cast_expression "(ulong)bVar28" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar27)" ( identifier )) ;) (if_statement "if ((!bVar25 && !bVar27) == bVar25) {\n          if (*(int *)(param_1 + 0x3f0) != -1) goto LAB_002d68ff;\n          *(int *)(param_1 + 0x3f0) = (int)uVar23;\n        }" if (parenthesized_expression "((!bVar25 && !bVar27) == bVar25)" ( (binary_expression "(!bVar25 && !bVar27) == bVar25" (parenthesized_expression "(!bVar25 && !bVar27)" ( (binary_expression "!bVar25 && !bVar27" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar27" ! identifier)) )) == identifier) )) (compound_statement "{\n          if (*(int *)(param_1 + 0x3f0) != -1) goto LAB_002d68ff;\n          *(int *)(param_1 + 0x3f0) = (int)uVar23;\n        }" { (if_statement "if (*(int *)(param_1 + 0x3f0) != -1) goto LAB_002d68ff;" if (parenthesized_expression "(*(int *)(param_1 + 0x3f0) != -1)" ( (binary_expression "*(int *)(param_1 + 0x3f0) != -1" (pointer_expression "*(int *)(param_1 + 0x3f0)" * (cast_expression "(int *)(param_1 + 0x3f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3f0)" ( (binary_expression "param_1 + 0x3f0" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_002d68ff;" goto statement_identifier ;)) (expression_statement "*(int *)(param_1 + 0x3f0) = (int)uVar23;" (assignment_expression "*(int *)(param_1 + 0x3f0) = (int)uVar23" (pointer_expression "*(int *)(param_1 + 0x3f0)" * (cast_expression "(int *)(param_1 + 0x3f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3f0)" ( (binary_expression "param_1 + 0x3f0" identifier + number_literal) )))) = (cast_expression "(int)uVar23" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (expression_statement "uVar22 = (int)uVar23 + 1;" (assignment_expression "uVar22 = (int)uVar23 + 1" identifier = (binary_expression "(int)uVar23 + 1" (cast_expression "(int)uVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "uVar23 = (ulong)uVar22;" (assignment_expression "uVar23 = (ulong)uVar22" identifier = (cast_expression "(ulong)uVar22" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "puVar15 = puVar16 + 10;" (assignment_expression "puVar15 = puVar16 + 10" identifier = (binary_expression "puVar16 + 10" identifier + number_literal)) ;) (if_statement "if (*(uint *)(param_1 + 0x38) <= uVar22) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_002d643d;\n        }" if (parenthesized_expression "(*(uint *)(param_1 + 0x38) <= uVar22)" ( (binary_expression "*(uint *)(param_1 + 0x38) <= uVar22" (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n          if (bVar4) {\n            return;\n          }\n          goto LAB_002d643d;\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_002d643d;" goto statement_identifier ;) })) (expression_statement "uVar22 = puVar16[0xb];" (assignment_expression "uVar22 = puVar16[0xb]" identifier = (subscript_expression "puVar16[0xb]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(uVar22 == 2)" ( (binary_expression "uVar22 == 2" identifier == number_literal) )) ;) (labeled_statement "LAB_002d6581:\n      puVar16 = puVar15;" statement_identifier : (expression_statement "puVar16 = puVar15;" (assignment_expression "puVar16 = puVar15" identifier = identifier) ;)) (if_statement "if (uVar22 != 3) {\n        if (uVar22 == 0x70000006) {\n          *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) | 4;\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          puVar11 = (undefined4 *)\n                    FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0);\n          *(undefined4 *)(param_1 + 0x368) = puVar11[5];\n          *(undefined4 *)(param_1 + 0x408) = *puVar11;\n          *(undefined4 *)(param_1 + 0x40c) = puVar11[1];\n          *(undefined4 *)(param_1 + 0x410) = puVar11[2];\n          *(undefined4 *)(param_1 + 0x414) = puVar11[3];\n          *(undefined4 *)(param_1 + 0x418) = puVar11[4];\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x6ffffff5) {\n          if (*(long *)(param_1 + 0x3f8) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          uVar6 = FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                               puVar15[4],uVar22,1,0);\n          uVar7 = FUN_0049cb70(0x10);\n                    /* try { // try from 002d65fc to 002d6600 has its CatchHandler @ 002d695f */\n          FUN_003362a0(uVar7,uVar6,uVar22);\n          *(undefined8 *)(param_1 + 0x3f8) = uVar7;\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000002a) {\n          if (*(long *)(param_1 + 0x400) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          psVar8 = (short *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0);\n          psVar9 = (short *)FUN_0049cb70(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 + 0x400) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined8 *)(param_1 + 8);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0034a750(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((long)psVar9 + 3) = *(undefined1 *)((long)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((long)psVar9 + 5) = *(undefined1 *)((long)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((long)psVar9 + 7) = *(undefined1 *)((long)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          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000000d) {\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          pcVar12 = (char *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0);\n          pcVar24 = pcVar12 + uVar22;\n          for (; pcVar12 + 8 <= pcVar24; pcVar12 = pcVar12 + bVar1) {\n            bVar1 = pcVar12[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined8 *)(param_1 + 8);\n              pcVar24 = ".MIPS.options";\n              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);\n              break;\n            }\n            if (*pcVar12 == '\x01') {\n              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }" if (parenthesized_expression "(uVar22 != 3)" ( (binary_expression "uVar22 != 3" identifier != number_literal) )) (compound_statement "{\n        if (uVar22 == 0x70000006) {\n          *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) | 4;\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          puVar11 = (undefined4 *)\n                    FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0);\n          *(undefined4 *)(param_1 + 0x368) = puVar11[5];\n          *(undefined4 *)(param_1 + 0x408) = *puVar11;\n          *(undefined4 *)(param_1 + 0x40c) = puVar11[1];\n          *(undefined4 *)(param_1 + 0x410) = puVar11[2];\n          *(undefined4 *)(param_1 + 0x414) = puVar11[3];\n          *(undefined4 *)(param_1 + 0x418) = puVar11[4];\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x6ffffff5) {\n          if (*(long *)(param_1 + 0x3f8) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          uVar6 = FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                               puVar15[4],uVar22,1,0);\n          uVar7 = FUN_0049cb70(0x10);\n                    /* try { // try from 002d65fc to 002d6600 has its CatchHandler @ 002d695f */\n          FUN_003362a0(uVar7,uVar6,uVar22);\n          *(undefined8 *)(param_1 + 0x3f8) = uVar7;\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000002a) {\n          if (*(long *)(param_1 + 0x400) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          psVar8 = (short *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0);\n          psVar9 = (short *)FUN_0049cb70(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 + 0x400) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined8 *)(param_1 + 8);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0034a750(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((long)psVar9 + 3) = *(undefined1 *)((long)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((long)psVar9 + 5) = *(undefined1 *)((long)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((long)psVar9 + 7) = *(undefined1 *)((long)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          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000000d) {\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          pcVar12 = (char *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0);\n          pcVar24 = pcVar12 + uVar22;\n          for (; pcVar12 + 8 <= pcVar24; pcVar12 = pcVar12 + bVar1) {\n            bVar1 = pcVar12[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined8 *)(param_1 + 8);\n              pcVar24 = ".MIPS.options";\n              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);\n              break;\n            }\n            if (*pcVar12 == '\x01') {\n              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }" { (if_statement "if (uVar22 == 0x70000006) {\n          *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) | 4;\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          puVar11 = (undefined4 *)\n                    FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0);\n          *(undefined4 *)(param_1 + 0x368) = puVar11[5];\n          *(undefined4 *)(param_1 + 0x408) = *puVar11;\n          *(undefined4 *)(param_1 + 0x40c) = puVar11[1];\n          *(undefined4 *)(param_1 + 0x410) = puVar11[2];\n          *(undefined4 *)(param_1 + 0x414) = puVar11[3];\n          *(undefined4 *)(param_1 + 0x418) = puVar11[4];\n          uVar22 = puVar15[1];\n        }" if (parenthesized_expression "(uVar22 == 0x70000006)" ( (binary_expression "uVar22 == 0x70000006" identifier == number_literal) )) (compound_statement "{\n          *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) | 4;\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          puVar11 = (undefined4 *)\n                    FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0);\n          *(undefined4 *)(param_1 + 0x368) = puVar11[5];\n          *(undefined4 *)(param_1 + 0x408) = *puVar11;\n          *(undefined4 *)(param_1 + 0x40c) = puVar11[1];\n          *(undefined4 *)(param_1 + 0x410) = puVar11[2];\n          *(undefined4 *)(param_1 + 0x414) = puVar11[3];\n          *(undefined4 *)(param_1 + 0x418) = puVar11[4];\n          uVar22 = puVar15[1];\n        }" { (expression_statement "*(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) | 4;" (assignment_expression "*(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) | 4" (pointer_expression "*(byte *)(param_1 + 0x36c)" * (cast_expression "(byte *)(param_1 + 0x36c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x36c)" ( (binary_expression "param_1 + 0x36c" identifier + number_literal) )))) = (binary_expression "*(byte *)(param_1 + 0x36c) | 4" (pointer_expression "*(byte *)(param_1 + 0x36c)" * (cast_expression "(byte *)(param_1 + 0x36c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x36c)" ( (binary_expression "param_1 + 0x36c" identifier + number_literal) )))) | number_literal)) ;) (if_statement "if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;" if (parenthesized_expression "(*(long *)(param_1 + 0x28) == 0)" ( (binary_expression "*(long *)(param_1 + 0x28) == 0" (pointer_expression "*(long *)(param_1 + 0x28)" * (cast_expression "(long *)(param_1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_002d68fa;" goto statement_identifier ;)) (expression_statement "puVar11 = (undefined4 *)\n                    FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0);" (assignment_expression "puVar11 = (undefined4 *)\n                    FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0)" identifier = (cast_expression "(undefined4 *)\n                    FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0)" identifier (argument_list "(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0)" ( (binary_expression "*(long *)(param_1 + 0x28) + 0x28" (pointer_expression "*(long *)(param_1 + 0x28)" * (cast_expression "(long *)(param_1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) + number_literal) , (pointer_expression "*(undefined8 *)(param_1 + 0x30)" * (cast_expression "(undefined8 *)(param_1 + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) , (subscript_expression "puVar15[4]" identifier [ number_literal ]) , (subscript_expression "puVar15[5]" identifier [ number_literal ]) , number_literal , number_literal ))))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x368) = puVar11[5];" (assignment_expression "*(undefined4 *)(param_1 + 0x368) = puVar11[5]" (pointer_expression "*(undefined4 *)(param_1 + 0x368)" * (cast_expression "(undefined4 *)(param_1 + 0x368)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x368)" ( (binary_expression "param_1 + 0x368" identifier + number_literal) )))) = (subscript_expression "puVar11[5]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(param_1 + 0x408) = *puVar11;" (assignment_expression "*(undefined4 *)(param_1 + 0x408) = *puVar11" (pointer_expression "*(undefined4 *)(param_1 + 0x408)" * (cast_expression "(undefined4 *)(param_1 + 0x408)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x408)" ( (binary_expression "param_1 + 0x408" identifier + number_literal) )))) = (pointer_expression "*puVar11" * identifier)) ;) (expression_statement "*(undefined4 *)(param_1 + 0x40c) = puVar11[1];" (assignment_expression "*(undefined4 *)(param_1 + 0x40c) = puVar11[1]" (pointer_expression "*(undefined4 *)(param_1 + 0x40c)" * (cast_expression "(undefined4 *)(param_1 + 0x40c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40c)" ( (binary_expression "param_1 + 0x40c" identifier + number_literal) )))) = (subscript_expression "puVar11[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(param_1 + 0x410) = puVar11[2];" (assignment_expression "*(undefined4 *)(param_1 + 0x410) = puVar11[2]" (pointer_expression "*(undefined4 *)(param_1 + 0x410)" * (cast_expression "(undefined4 *)(param_1 + 0x410)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x410)" ( (binary_expression "param_1 + 0x410" identifier + number_literal) )))) = (subscript_expression "puVar11[2]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(param_1 + 0x414) = puVar11[3];" (assignment_expression "*(undefined4 *)(param_1 + 0x414) = puVar11[3]" (pointer_expression "*(undefined4 *)(param_1 + 0x414)" * (cast_expression "(undefined4 *)(param_1 + 0x414)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x414)" ( (binary_expression "param_1 + 0x414" identifier + number_literal) )))) = (subscript_expression "puVar11[3]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(param_1 + 0x418) = puVar11[4];" (assignment_expression "*(undefined4 *)(param_1 + 0x418) = puVar11[4]" (pointer_expression "*(undefined4 *)(param_1 + 0x418)" * (cast_expression "(undefined4 *)(param_1 + 0x418)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x418)" ( (binary_expression "param_1 + 0x418" identifier + number_literal) )))) = (subscript_expression "puVar11[4]" identifier [ number_literal ])) ;) (expression_statement "uVar22 = puVar15[1];" (assignment_expression "uVar22 = puVar15[1]" identifier = (subscript_expression "puVar15[1]" identifier [ number_literal ])) ;) })) (if_statement "if (uVar22 == 0x6ffffff5) {\n          if (*(long *)(param_1 + 0x3f8) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          uVar6 = FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                               puVar15[4],uVar22,1,0);\n          uVar7 = FUN_0049cb70(0x10);\n                    /* try { // try from 002d65fc to 002d6600 has its CatchHandler @ 002d695f */\n          FUN_003362a0(uVar7,uVar6,uVar22);\n          *(undefined8 *)(param_1 + 0x3f8) = uVar7;\n          uVar22 = puVar15[1];\n        }" if (parenthesized_expression "(uVar22 == 0x6ffffff5)" ( (binary_expression "uVar22 == 0x6ffffff5" identifier == number_literal) )) (compound_statement "{\n          if (*(long *)(param_1 + 0x3f8) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          uVar6 = FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                               puVar15[4],uVar22,1,0);\n          uVar7 = FUN_0049cb70(0x10);\n                    /* try { // try from 002d65fc to 002d6600 has its CatchHandler @ 002d695f */\n          FUN_003362a0(uVar7,uVar6,uVar22);\n          *(undefined8 *)(param_1 + 0x3f8) = uVar7;\n          uVar22 = puVar15[1];\n        }" { (if_statement "if (*(long *)(param_1 + 0x3f8) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }" if (parenthesized_expression "(*(long *)(param_1 + 0x3f8) != 0)" ( (binary_expression "*(long *)(param_1 + 0x3f8) != 0" (pointer_expression "*(long *)(param_1 + 0x3f8)" * (cast_expression "(long *)(param_1 + 0x3f8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3f8)" ( (binary_expression "param_1 + 0x3f8" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }" { comment (expression_statement "FUN_00352af0("../../gold/mips.cc",0x1adf,"do_read_symbols");" (call_expression "FUN_00352af0("../../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 "uVar22 = puVar15[5];" (assignment_expression "uVar22 = puVar15[5]" identifier = (subscript_expression "puVar15[5]" identifier [ number_literal ])) ;) (if_statement "if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;" if (parenthesized_expression "(*(long *)(param_1 + 0x28) == 0)" ( (binary_expression "*(long *)(param_1 + 0x28) == 0" (pointer_expression "*(long *)(param_1 + 0x28)" * (cast_expression "(long *)(param_1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_002d68fa;" goto statement_identifier ;)) (expression_statement "uVar6 = FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                               puVar15[4],uVar22,1,0);" (assignment_expression "uVar6 = FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                               puVar15[4],uVar22,1,0)" identifier = (call_expression "FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                               puVar15[4],uVar22,1,0)" identifier (argument_list "(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                               puVar15[4],uVar22,1,0)" ( (binary_expression "*(long *)(param_1 + 0x28) + 0x28" (pointer_expression "*(long *)(param_1 + 0x28)" * (cast_expression "(long *)(param_1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) + number_literal) , (pointer_expression "*(undefined8 *)(param_1 + 0x30)" * (cast_expression "(undefined8 *)(param_1 + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) , (subscript_expression "puVar15[4]" identifier [ number_literal ]) , identifier , number_literal , number_literal )))) ;) (expression_statement "uVar7 = FUN_0049cb70(0x10);" (assignment_expression "uVar7 = FUN_0049cb70(0x10)" identifier = (call_expression "FUN_0049cb70(0x10)" identifier (argument_list "(0x10)" ( number_literal )))) ;) comment (expression_statement "FUN_003362a0(uVar7,uVar6,uVar22);" (call_expression "FUN_003362a0(uVar7,uVar6,uVar22)" identifier (argument_list "(uVar7,uVar6,uVar22)" ( identifier , identifier , identifier ))) ;) (expression_statement "*(undefined8 *)(param_1 + 0x3f8) = uVar7;" (assignment_expression "*(undefined8 *)(param_1 + 0x3f8) = uVar7" (pointer_expression "*(undefined8 *)(param_1 + 0x3f8)" * (cast_expression "(undefined8 *)(param_1 + 0x3f8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3f8)" ( (binary_expression "param_1 + 0x3f8" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar22 = puVar15[1];" (assignment_expression "uVar22 = puVar15[1]" identifier = (subscript_expression "puVar15[1]" identifier [ number_literal ])) ;) })) (if_statement "if (uVar22 == 0x7000002a) {\n          if (*(long *)(param_1 + 0x400) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          psVar8 = (short *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0);\n          psVar9 = (short *)FUN_0049cb70(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 + 0x400) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined8 *)(param_1 + 8);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0034a750(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((long)psVar9 + 3) = *(undefined1 *)((long)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((long)psVar9 + 5) = *(undefined1 *)((long)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((long)psVar9 + 7) = *(undefined1 *)((long)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          uVar22 = puVar15[1];\n        }" if (parenthesized_expression "(uVar22 == 0x7000002a)" ( (binary_expression "uVar22 == 0x7000002a" identifier == number_literal) )) (compound_statement "{\n          if (*(long *)(param_1 + 0x400) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          psVar8 = (short *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0);\n          psVar9 = (short *)FUN_0049cb70(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 + 0x400) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined8 *)(param_1 + 8);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0034a750(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((long)psVar9 + 3) = *(undefined1 *)((long)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((long)psVar9 + 5) = *(undefined1 *)((long)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((long)psVar9 + 7) = *(undefined1 *)((long)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          uVar22 = puVar15[1];\n        }" { (if_statement "if (*(long *)(param_1 + 0x400) != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }" if (parenthesized_expression "(*(long *)(param_1 + 0x400) != 0)" ( (binary_expression "*(long *)(param_1 + 0x400) != 0" (pointer_expression "*(long *)(param_1 + 0x400)" * (cast_expression "(long *)(param_1 + 0x400)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x400)" ( (binary_expression "param_1 + 0x400" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            FUN_00352af0("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }" { comment (expression_statement "FUN_00352af0("../../gold/mips.cc",0x1aeb,"do_read_symbols");" (call_expression "FUN_00352af0("../../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 ") ))) ;) })) (if_statement "if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;" if (parenthesized_expression "(*(long *)(param_1 + 0x28) == 0)" ( (binary_expression "*(long *)(param_1 + 0x28) == 0" (pointer_expression "*(long *)(param_1 + 0x28)" * (cast_expression "(long *)(param_1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_002d68fa;" goto statement_identifier ;)) (expression_statement "psVar8 = (short *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0);" (assignment_expression "psVar8 = (short *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0)" identifier = (cast_expression "(short *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0)" identifier (argument_list "(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0)" ( (binary_expression "*(long *)(param_1 + 0x28) + 0x28" (pointer_expression "*(long *)(param_1 + 0x28)" * (cast_expression "(long *)(param_1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) + number_literal) , (pointer_expression "*(undefined8 *)(param_1 + 0x30)" * (cast_expression "(undefined8 *)(param_1 + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) , (subscript_expression "puVar15[4]" identifier [ number_literal ]) , (subscript_expression "puVar15[5]" identifier [ number_literal ]) , number_literal , number_literal ))))) ;) (expression_statement "psVar9 = (short *)FUN_0049cb70(0x18);" (assignment_expression "psVar9 = (short *)FUN_0049cb70(0x18)" identifier = (cast_expression "(short *)FUN_0049cb70(0x18)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0049cb70(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 + 0x400) = psVar9;" (assignment_expression "*(short **)(param_1 + 0x400) = psVar9" (pointer_expression "*(short **)(param_1 + 0x400)" * (cast_expression "(short **)(param_1 + 0x400)" ( (type_descriptor "short **" (sized_type_specifier "short" short) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x400)" ( (binary_expression "param_1 + 0x400" identifier + number_literal) )))) = identifier) ;) (expression_statement "*psVar9 = sVar2;" (assignment_expression "*psVar9 = sVar2" (pointer_expression "*psVar9" * identifier) = identifier) ;) (if_statement "if (sVar2 != 0) {\n            uVar6 = *(undefined8 *)(param_1 + 8);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0034a750(uVar7,uVar6,sVar2);\n            return;\n          }" if (parenthesized_expression "(sVar2 != 0)" ( (binary_expression "sVar2 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar6 = *(undefined8 *)(param_1 + 8);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0034a750(uVar7,uVar6,sVar2);\n            return;\n          }" { (expression_statement "uVar6 = *(undefined8 *)(param_1 + 8);" (assignment_expression "uVar6 = *(undefined8 *)(param_1 + 8)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 8)" * (cast_expression "(undefined8 *)(param_1 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" 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_0034a750(uVar7,uVar6,sVar2);" (call_expression "FUN_0034a750(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 *)((long)psVar9 + 3) = *(undefined1 *)((long)psVar8 + 3);" (assignment_expression "*(undefined1 *)((long)psVar9 + 3) = *(undefined1 *)((long)psVar8 + 3)" (pointer_expression "*(undefined1 *)((long)psVar9 + 3)" * (cast_expression "(undefined1 *)((long)psVar9 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)psVar9 + 3)" ( (binary_expression "(long)psVar9 + 3" (cast_expression "(long)psVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((long)psVar8 + 3)" * (cast_expression "(undefined1 *)((long)psVar8 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)psVar8 + 3)" ( (binary_expression "(long)psVar8 + 3" (cast_expression "(long)psVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) 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 *)((long)psVar9 + 5) = *(undefined1 *)((long)psVar8 + 5);" (assignment_expression "*(undefined1 *)((long)psVar9 + 5) = *(undefined1 *)((long)psVar8 + 5)" (pointer_expression "*(undefined1 *)((long)psVar9 + 5)" * (cast_expression "(undefined1 *)((long)psVar9 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)psVar9 + 5)" ( (binary_expression "(long)psVar9 + 5" (cast_expression "(long)psVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((long)psVar8 + 5)" * (cast_expression "(undefined1 *)((long)psVar8 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)psVar8 + 5)" ( (binary_expression "(long)psVar8 + 5" (cast_expression "(long)psVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) 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 *)((long)psVar9 + 7) = *(undefined1 *)((long)psVar8 + 7);" (assignment_expression "*(undefined1 *)((long)psVar9 + 7) = *(undefined1 *)((long)psVar8 + 7)" (pointer_expression "*(undefined1 *)((long)psVar9 + 7)" * (cast_expression "(undefined1 *)((long)psVar9 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)psVar9 + 7)" ( (binary_expression "(long)psVar9 + 7" (cast_expression "(long)psVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((long)psVar8 + 7)" * (cast_expression "(undefined1 *)((long)psVar8 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)psVar8 + 7)" ( (binary_expression "(long)psVar8 + 7" (cast_expression "(long)psVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) 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 "uVar22 = puVar15[1];" (assignment_expression "uVar22 = puVar15[1]" identifier = (subscript_expression "puVar15[1]" identifier [ number_literal ])) ;) })) (if_statement "if (uVar22 == 0x7000000d) {\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          pcVar12 = (char *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0);\n          pcVar24 = pcVar12 + uVar22;\n          for (; pcVar12 + 8 <= pcVar24; pcVar12 = pcVar12 + bVar1) {\n            bVar1 = pcVar12[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined8 *)(param_1 + 8);\n              pcVar24 = ".MIPS.options";\n              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);\n              break;\n            }\n            if (*pcVar12 == '\x01') {\n              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);\n            }\n          }\n        }" if (parenthesized_expression "(uVar22 == 0x7000000d)" ( (binary_expression "uVar22 == 0x7000000d" identifier == number_literal) )) (compound_statement "{\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          pcVar12 = (char *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0);\n          pcVar24 = pcVar12 + uVar22;\n          for (; pcVar12 + 8 <= pcVar24; pcVar12 = pcVar12 + bVar1) {\n            bVar1 = pcVar12[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined8 *)(param_1 + 8);\n              pcVar24 = ".MIPS.options";\n              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);\n              break;\n            }\n            if (*pcVar12 == '\x01') {\n              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);\n            }\n          }\n        }" { (expression_statement "uVar22 = puVar15[5];" (assignment_expression "uVar22 = puVar15[5]" identifier = (subscript_expression "puVar15[5]" identifier [ number_literal ])) ;) (if_statement "if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;" if (parenthesized_expression "(*(long *)(param_1 + 0x28) == 0)" ( (binary_expression "*(long *)(param_1 + 0x28) == 0" (pointer_expression "*(long *)(param_1 + 0x28)" * (cast_expression "(long *)(param_1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_002d68fa;" goto statement_identifier ;)) (expression_statement "pcVar12 = (char *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0);" (assignment_expression "pcVar12 = (char *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0)" identifier = (cast_expression "(char *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0)" identifier (argument_list "(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0)" ( (binary_expression "*(long *)(param_1 + 0x28) + 0x28" (pointer_expression "*(long *)(param_1 + 0x28)" * (cast_expression "(long *)(param_1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) + number_literal) , (pointer_expression "*(undefined8 *)(param_1 + 0x30)" * (cast_expression "(undefined8 *)(param_1 + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) , (subscript_expression "puVar15[4]" identifier [ number_literal ]) , (cast_expression "(ulong)uVar22" ( (type_descriptor "ulong" type_identifier) ) identifier) , number_literal , number_literal ))))) ;) (expression_statement "pcVar24 = pcVar12 + uVar22;" (assignment_expression "pcVar24 = pcVar12 + uVar22" identifier = (binary_expression "pcVar12 + uVar22" identifier + identifier)) ;) (for_statement "for (; pcVar12 + 8 <= pcVar24; pcVar12 = pcVar12 + bVar1) {\n            bVar1 = pcVar12[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined8 *)(param_1 + 8);\n              pcVar24 = ".MIPS.options";\n              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);\n              break;\n            }\n            if (*pcVar12 == '\x01') {\n              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);\n            }\n          }" for ( ; (binary_expression "pcVar12 + 8 <= pcVar24" (binary_expression "pcVar12 + 8" identifier + number_literal) <= identifier) ; (assignment_expression "pcVar12 = pcVar12 + bVar1" identifier = (binary_expression "pcVar12 + bVar1" identifier + identifier)) ) (compound_statement "{\n            bVar1 = pcVar12[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined8 *)(param_1 + 8);\n              pcVar24 = ".MIPS.options";\n              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);\n              break;\n            }\n            if (*pcVar12 == '\x01') {\n              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);\n            }\n          }" { (expression_statement "bVar1 = pcVar12[1];" (assignment_expression "bVar1 = pcVar12[1]" identifier = (subscript_expression "pcVar12[1]" identifier [ number_literal ])) ;) (if_statement "if (bVar1 < 8) {\n              uVar6 = *(undefined8 *)(param_1 + 8);\n              pcVar24 = ".MIPS.options";\n              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);\n              break;\n            }" if (parenthesized_expression "(bVar1 < 8)" ( (binary_expression "bVar1 < 8" identifier < number_literal) )) (compound_statement "{\n              uVar6 = *(undefined8 *)(param_1 + 8);\n              pcVar24 = ".MIPS.options";\n              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);\n              break;\n            }" { (expression_statement "uVar6 = *(undefined8 *)(param_1 + 8);" (assignment_expression "uVar6 = *(undefined8 *)(param_1 + 8)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 8)" * (cast_expression "(undefined8 *)(param_1 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "pcVar24 = ".MIPS.options";" (assignment_expression "pcVar24 = ".MIPS.options"" identifier = (string_literal "".MIPS.options"" " string_content ")) ;) (if_statement "if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }" if (parenthesized_expression "((*(byte *)(param_1 + 0x36c) & 2) == 0)" ( (binary_expression "(*(byte *)(param_1 + 0x36c) & 2) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x36c) & 2)" ( (binary_expression "*(byte *)(param_1 + 0x36c) & 2" (pointer_expression "*(byte *)(param_1 + 0x36c)" * (cast_expression "(byte *)(param_1 + 0x36c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x36c)" ( (binary_expression "param_1 + 0x36c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                pcVar24 = ".options";\n              }" { (expression_statement "pcVar24 = ".options";" (assignment_expression "pcVar24 = ".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_0034a750(uVar7,uVar6,pcVar24,bVar1);" (call_expression "FUN_0034a750(uVar7,uVar6,pcVar24,bVar1)" identifier (argument_list "(uVar7,uVar6,pcVar24,bVar1)" ( identifier , identifier , identifier , identifier ))) ;) (break_statement "break;" break ;) })) (if_statement "if (*pcVar12 == '\x01') {\n              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);\n            }" if (parenthesized_expression "(*pcVar12 == '\x01')" ( (binary_expression "*pcVar12 == '\x01'" (pointer_expression "*pcVar12" * identifier) == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);\n            }" { (expression_statement "*(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);" (assignment_expression "*(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c)" (pointer_expression "*(undefined4 *)(param_1 + 0x368)" * (cast_expression "(undefined4 *)(param_1 + 0x368)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x368)" ( (binary_expression "param_1 + 0x368" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(pcVar12 + 0x1c)" * (cast_expression "(undefined4 *)(pcVar12 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x1c)" ( (binary_expression "pcVar12 + 0x1c" identifier + number_literal) ))))) ;) })) })) })) (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" identifier = true) ;) })) (goto_statement "goto LAB_002d66e8;" goto statement_identifier ;) })) }) (else_clause "else if (uVar22 != 2) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }" else (if_statement "if (uVar22 != 2) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }" if (parenthesized_expression "(uVar22 != 2)" ( (binary_expression "uVar22 != 2" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }" { comment (expression_statement "FUN_00352af0("../../gold/mips.cc",0x1a9a,"do_read_symbols");" (call_expression "FUN_00352af0("../../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_002d643d:\n  *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) & 0xf7;" statement_identifier : (expression_statement "*(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) & 0xf7;" (assignment_expression "*(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) & 0xf7" (pointer_expression "*(byte *)(param_1 + 0x36c)" * (cast_expression "(byte *)(param_1 + 0x36c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x36c)" ( (binary_expression "param_1 + 0x36c" identifier + number_literal) )))) = (binary_expression "*(byte *)(param_1 + 0x36c) & 0xf7" (pointer_expression "*(byte *)(param_1 + 0x36c)" * (cast_expression "(byte *)(param_1 + 0x36c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x36c)" ( (binary_expression "param_1 + 0x36c" identifier + number_literal) )))) & number_literal)) ;)) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n/* DWARF original prototype: void do_read_symbols(Mips_relobj<32,_false> * this, Read_symbols_data *\n   sd) */\n\nvoid __thiscall\nanon_unknown.dwarf_ead2ad::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  Format FVar3;\n  pointer pcVar4;\n  bool bVar5;\n  uchar *puVar6;\n  uchar *puVar7;\n  Attributes_section_data *this_00;\n  ushort *puVar8;\n  Mips_abiflags<false> *pMVar9;\n  ulong uVar10;\n  Valtype *pVVar11;\n  uchar *puVar12;\n  char *format;\n  ulong to;\n  long lVar13;\n  ulong uVar14;\n  ulong uVar15;\n  uint *puVar16;\n  uint *puVar17;\n  byte *pbVar18;\n  ulong *puVar19;\n  byte *pbVar20;\n  Input_file *this_01;\n  byte *pbVar21;\n  ulong uVar22;\n  ulong to_1;\n  uint uVar23;\n  ulong uVar24;\n  ulong to_3;\n  char *pcVar25;\n  bool bVar26;\n  bool bVar27;\n  bool bVar28;\n  byte bVar29;\n  \n  bVar29 = 0;\n  gold::Sized_relobj_file<32,_false>::base_read_symbols\n            (&this->super_Sized_relobj_file<32,_false>,sd);\n  this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.\n            super_Object.input_file_;\n  if (this_01 == (Input_file *)0x0) {\nLAB_002d68fa:\n    gold::Object::input_file((Object *)this_01);\nLAB_002d68ff:\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/mips.cc",0x1b6f,"do_read_symbols");\n  }\n  FVar3 = this_01->format_;\n  uVar24 = (ulong)FVar3;\n  if (FVar3 == FORMAT_ELF) {\n    puVar6 = gold::File_read::get_view\n                       (&this_01->file_,\n                        (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                        super_Relobj.super_Object.offset_,0,0x34,true,false);\n    uVar23 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.\n             super_Object.shnum_;\n    this->processor_specific_flags_ = *(Elf_Word *)(puVar6 + 0x24);\n    puVar6 = sd->section_names->data_;\n    std::vector<bool,_std::allocator<bool>_>::resize\n              (&this->section_is_mips16_fn_stub_,(ulong)uVar23,false);\n    std::vector<bool,_std::allocator<bool>_>::resize\n              (&this->section_is_mips16_call_stub_,\n               (ulong)(this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                      super_Relobj.super_Object.shnum_,false);\n    std::vector<bool,_std::allocator<bool>_>::resize\n              (&this->section_is_mips16_call_fp_stub_,\n               (ulong)(this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                      super_Relobj.super_Object.shnum_,false);\n    bVar5 = false;\n    puVar7 = sd->section_headers->data_;\n    puVar16 = (uint *)(puVar7 + 0x28);\n    if (1 < (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.\n            super_Object.shnum_) {\n      uVar23 = *(uint *)(puVar7 + 0x2c);\n      if (uVar23 != 2) goto LAB_002d6581;\n      do {\n        puVar17 = puVar16;\n        if (0x10 < puVar16[5]) {\n          bVar5 = true;\n        }\nLAB_002d66e8:\n        lVar13 = 10;\n        bVar26 = CARRY8((ulong)*puVar17,(ulong)puVar6);\n        pbVar21 = puVar6 + *puVar17;\n        bVar28 = pbVar21 == (byte *)0x0;\n        pbVar18 = (byte *)".mips16.fn";\n        pbVar20 = pbVar21;\n        do {\n          if (lVar13 == 0) break;\n          lVar13 = lVar13 + -1;\n          bVar26 = *pbVar18 < *pbVar20;\n          bVar28 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          pbVar20 = pbVar20 + (ulong)bVar29 * -2 + 1;\n        } while (bVar28);\n        uVar15 = (ulong)((uint)(uVar24 >> 3) & 0x1ffffff8);\n        uVar10 = 1L << ((byte)uVar24 & 0x3f);\n        puVar19 = (ulong *)((long)(this->section_is_mips16_fn_stub_).\n                                  super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                  super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p +\n                           uVar15);\n        uVar22 = *puVar19;\n        bVar27 = false;\n        bVar26 = (!bVar26 && !bVar28) == bVar26;\n        uVar14 = uVar22 & ~uVar10;\n        if (bVar26) {\n          uVar14 = uVar22 | uVar10;\n        }\n        *puVar19 = uVar14;\n        lVar13 = 0xd;\n        pbVar18 = (byte *)".mips16.call.";\n        pbVar20 = pbVar21;\n        do {\n          if (lVar13 == 0) break;\n          lVar13 = lVar13 + -1;\n          bVar27 = *pbVar18 < *pbVar20;\n          bVar26 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          pbVar20 = pbVar20 + (ulong)bVar29 * -2 + 1;\n        } while (bVar26);\n        puVar19 = (ulong *)((long)(this->section_is_mips16_call_stub_).\n                                  super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                  super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p +\n                           uVar15);\n        if ((!bVar27 && !bVar26) == bVar27) {\n          uVar22 = *puVar19 | uVar10;\n        }\n        else {\n          uVar22 = ~uVar10 & *puVar19;\n        }\n        bVar28 = uVar22 == 0;\n        bVar26 = false;\n        *puVar19 = uVar22;\n        lVar13 = 0x10;\n        pbVar18 = (byte *)".mips16.call.fp.";\n        pbVar20 = pbVar21;\n        do {\n          if (lVar13 == 0) break;\n          lVar13 = lVar13 + -1;\n          bVar26 = *pbVar18 < *pbVar20;\n          bVar28 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          pbVar20 = pbVar20 + (ulong)bVar29 * -2 + 1;\n        } while (bVar28);\n        puVar19 = (ulong *)(uVar15 + (long)(this->section_is_mips16_call_fp_stub_).\n                                           super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                           super__Bvector_impl_data._M_start.\n                                           super__Bit_iterator_base._M_p);\n        if ((!bVar26 && !bVar28) == bVar26) {\n          uVar10 = uVar10 | *puVar19;\n        }\n        else {\n          uVar10 = ~uVar10 & *puVar19;\n        }\n        bVar28 = uVar10 == 0;\n        bVar26 = false;\n        *puVar19 = uVar10;\n        lVar13 = 5;\n        pbVar18 = &DAT_0053357f;\n        do {\n          if (lVar13 == 0) break;\n          lVar13 = lVar13 + -1;\n          bVar26 = *pbVar21 < *pbVar18;\n          bVar28 = *pbVar21 == *pbVar18;\n          pbVar21 = pbVar21 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        } while (bVar28);\n        if ((!bVar26 && !bVar28) == bVar26) {\n          if (this->pdr_shndx_ != 0xffffffff) goto LAB_002d68ff;\n          this->pdr_shndx_ = (uint)uVar24;\n        }\n        uVar23 = (uint)uVar24 + 1;\n        uVar24 = (ulong)uVar23;\n        puVar16 = puVar17 + 10;\n        if ((this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.\n            super_Object.shnum_ <= uVar23) {\n          if (bVar5) {\n            return;\n          }\n          goto LAB_002d643d;\n        }\n        uVar23 = puVar17[0xb];\n      } while (uVar23 == 2);\nLAB_002d6581:\n      puVar17 = puVar16;\n      if (uVar23 != 3) {\n        if (uVar23 == 0x70000006) {\n          this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                    super_Relobj.super_Object.input_file_;\n          this->field_0x36c = this->field_0x36c | 4;\n          if (this_01 == (Input_file *)0x0) goto LAB_002d68fa;\n          pVVar11 = (Valtype *)\n                    gold::File_read::get_view\n                              (&this_01->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (ulong)puVar16[4],(ulong)puVar16[5],true,false);\n          this->gp_ = pVVar11[5];\n          this->gprmask_ = *pVVar11;\n          this->cprmask1_ = pVVar11[1];\n          this->cprmask2_ = pVVar11[2];\n          this->cprmask3_ = pVVar11[3];\n          this->cprmask4_ = pVVar11[4];\n          uVar23 = puVar16[1];\n        }\n        if (uVar23 == 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          this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                    super_Relobj.super_Object.input_file_;\n          uVar23 = puVar16[5];\n          if (this_01 == (Input_file *)0x0) goto LAB_002d68fa;\n          puVar7 = gold::File_read::get_view\n                             (&this_01->file_,\n                              (this->super_Sized_relobj_file<32,_false>).\n                              super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                              (ulong)puVar16[4],(ulong)uVar23,true,false);\n          this_00 = (Attributes_section_data *)operator_new(0x10);\n                    /* try { // try from 002d65fc to 002d6600 has its CatchHandler @ 002d695f */\n          gold::Attributes_section_data::Attributes_section_data(this_00,puVar7,(ulong)uVar23);\n          this->attributes_section_data_ = this_00;\n          uVar23 = puVar16[1];\n        }\n        if (uVar23 == 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          this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                    super_Relobj.super_Object.input_file_;\n          if (this_01 == (Input_file *)0x0) goto LAB_002d68fa;\n          puVar8 = (ushort *)\n                   gold::File_read::get_view\n                             (&this_01->file_,\n                              (this->super_Sized_relobj_file<32,_false>).\n                              super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                              (ulong)puVar16[4],(ulong)puVar16[5],true,false);\n          pMVar9 = (Mips_abiflags<false> *)operator_new(0x18);\n          pMVar9->version = 0;\n          pMVar9->isa_level = '\0';\n          pMVar9->isa_rev = '\0';\n          pMVar9->gpr_size = '\0';\n          pMVar9->cpr1_size = '\0';\n          pMVar9->cpr2_size = '\0';\n          pMVar9->fp_abi = '\0';\n          uVar2 = *puVar8;\n          pMVar9->isa_ext = 0;\n          pMVar9->ases = 0;\n          pMVar9->flags1 = 0;\n          pMVar9->flags2 = 0;\n          this->abiflags_ = pMVar9;\n          pMVar9->version = uVar2;\n          if (uVar2 != 0) {\n            pcVar4 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                     super_Relobj.super_Object.name_._M_dataplus._M_p;\n            pcVar25 = (char *)gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            gold::gold_error(pcVar25,pcVar4,(ulong)uVar2);\n            return;\n          }\n          pMVar9->isa_level = (Valtype8)puVar8[1];\n          pMVar9->isa_rev = *(Valtype8 *)((long)puVar8 + 3);\n          pMVar9->gpr_size = (Valtype8)puVar8[2];\n          pMVar9->cpr1_size = *(Valtype8 *)((long)puVar8 + 5);\n          pMVar9->cpr2_size = (Valtype8)puVar8[3];\n          pMVar9->fp_abi = *(Valtype8 *)((long)puVar8 + 7);\n          pMVar9->isa_ext = *(Valtype32 *)(puVar8 + 4);\n          pMVar9->ases = *(Valtype32 *)(puVar8 + 6);\n          pMVar9->flags1 = *(Valtype32 *)(puVar8 + 8);\n          pMVar9->flags2 = *(Valtype32 *)(puVar8 + 10);\n          uVar23 = puVar16[1];\n        }\n        if (uVar23 == 0x7000000d) {\n          this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                    super_Relobj.super_Object.input_file_;\n          uVar23 = puVar16[5];\n          if (this_01 == (Input_file *)0x0) goto LAB_002d68fa;\n          puVar12 = gold::File_read::get_view\n                              (&this_01->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (ulong)puVar16[4],(ulong)uVar23,true,false);\n          puVar7 = puVar12 + uVar23;\n          for (; puVar12 + 8 <= puVar7; puVar12 = puVar12 + bVar1) {\n            bVar1 = puVar12[1];\n            if (bVar1 < 8) {\n              pcVar4 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                       super_Relobj.super_Object.name_._M_dataplus._M_p;\n              pcVar25 = ".MIPS.options";\n              if ((this->field_0x36c & 2) == 0) {\n                pcVar25 = ".options";\n              }\n              format = (char *)gettext(\n                                      "%s: Warning: bad `%s\' option size %u smaller than its header"\n                                      );\n              gold::gold_error(format,pcVar4,pcVar25,(ulong)bVar1);\n              break;\n            }\n            if (*puVar12 == '\x01') {\n              this->gp_ = *(Mips_address *)(puVar12 + 0x1c);\n            }\n          }\n        }\n        bVar5 = true;\n      }\n      goto LAB_002d66e8;\n    }\n  }\n  else if (FVar3 != FORMAT_BINARY) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }\nLAB_002d643d:\n  this->field_0x36c = this->field_0x36c & 0xf7;\n  return;\n}\n\n" comment comment (declaration "void __thiscall\nanon_unknown.dwarf_ead2ad::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_ead2ad::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 "Format FVar3;" type_identifier identifier ;) (declaration "pointer pcVar4;" type_identifier identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "uchar *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uchar *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "Attributes_section_data *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "ushort *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (expression_statement "Mips_abiflags<false> *pMVar9;" (update_expression "Mips_abiflags<false> *pMVar9" (binary_expression "Mips_abiflags<false> *pMVar9" (binary_expression "Mips_abiflags<false" identifier < false) > (pointer_expression "*pMVar9" * identifier)) --) ;) (declaration "ulong uVar10;" type_identifier identifier ;) (declaration "Valtype *pVVar11;" type_identifier (pointer_declarator "*pVVar11" * identifier) ;) (declaration "uchar *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "char *format;" primitive_type (pointer_declarator "*format" * identifier) ;) (declaration "ulong to;" type_identifier identifier ;) (declaration "long lVar13;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar14;" type_identifier identifier ;) (declaration "ulong uVar15;" type_identifier identifier ;) (declaration "uint *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "uint *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "ulong *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "Input_file *this_01;" type_identifier (pointer_declarator "*this_01" * identifier) ;) (declaration "byte *pbVar21;" type_identifier (pointer_declarator "*pbVar21" * identifier) ;) (declaration "ulong uVar22;" type_identifier identifier ;) (declaration "ulong to_1;" type_identifier identifier ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "ulong uVar24;" type_identifier identifier ;) (declaration "ulong to_3;" type_identifier identifier ;) (declaration "char *pcVar25;" primitive_type (pointer_declarator "*pcVar25" * identifier) ;) (declaration "bool bVar26;" primitive_type identifier ;) (declaration "bool bVar27;" primitive_type identifier ;) (declaration "bool bVar28;" primitive_type identifier ;) (declaration "byte bVar29;" type_identifier identifier ;) (expression_statement "bVar29 = 0;" (assignment_expression "bVar29 = 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 "this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.\n            super_Object.input_file_;" (assignment_expression "this_01 = (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 (this_01 == (Input_file *)0x0) {\nLAB_002d68fa:\n    gold::Object::input_file((Object *)this_01);\nLAB_002d68ff:\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/mips.cc",0x1b6f,"do_read_symbols");\n  }" if (parenthesized_expression "(this_01 == (Input_file *)0x0)" ( (binary_expression "this_01 == (Input_file *)0x0" identifier == (cast_expression "(Input_file *)0x0" ( (type_descriptor "Input_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_002d68fa:\n    gold::Object::input_file((Object *)this_01);\nLAB_002d68ff:\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/mips.cc",0x1b6f,"do_read_symbols");\n  }" { (labeled_statement "LAB_002d68fa:\n    gold::Object::input_file((Object *)this_01);" statement_identifier : (labeled_statement "gold::Object::input_file((Object *)this_01);" statement_identifier : (ERROR ":" :) (labeled_statement "Object::input_file((Object *)this_01);" statement_identifier : (ERROR ":" :) (expression_statement "input_file((Object *)this_01);" (call_expression "input_file((Object *)this_01)" identifier (argument_list "((Object *)this_01)" ( (cast_expression "(Object *)this_01" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)))) (labeled_statement "LAB_002d68ff:\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/mips.cc",0x1b6f,"do_read_symbols");" statement_identifier : 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 "FVar3 = this_01->format_;" (assignment_expression "FVar3 = this_01->format_" identifier = (field_expression "this_01->format_" identifier -> field_identifier)) ;) (expression_statement "uVar24 = (ulong)FVar3;" (assignment_expression "uVar24 = (ulong)FVar3" identifier = (cast_expression "(ulong)FVar3" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (FVar3 == FORMAT_ELF) {\n    puVar6 = gold::File_read::get_view\n                       (&this_01->file_,\n                        (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                        super_Relobj.super_Object.offset_,0,0x34,true,false);\n    uVar23 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.\n             super_Object.shnum_;\n    this->processor_specific_flags_ = *(Elf_Word *)(puVar6 + 0x24);\n    puVar6 = sd->section_names->data_;\n    std::vector<bool,_std::allocator<bool>_>::resize\n              (&this->section_is_mips16_fn_stub_,(ulong)uVar23,false);\n    std::vector<bool,_std::allocator<bool>_>::resize\n              (&this->section_is_mips16_call_stub_,\n               (ulong)(this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                      super_Relobj.super_Object.shnum_,false);\n    std::vector<bool,_std::allocator<bool>_>::resize\n              (&this->section_is_mips16_call_fp_stub_,\n               (ulong)(this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                      super_Relobj.super_Object.shnum_,false);\n    bVar5 = false;\n    puVar7 = sd->section_headers->data_;\n    puVar16 = (uint *)(puVar7 + 0x28);\n    if (1 < (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.\n            super_Object.shnum_) {\n      uVar23 = *(uint *)(puVar7 + 0x2c);\n      if (uVar23 != 2) goto LAB_002d6581;\n      do {\n        puVar17 = puVar16;\n        if (0x10 < puVar16[5]) {\n          bVar5 = true;\n        }\nLAB_002d66e8:\n        lVar13 = 10;\n        bVar26 = CARRY8((ulong)*puVar17,(ulong)puVar6);\n        pbVar21 = puVar6 + *puVar17;\n        bVar28 = pbVar21 == (byte *)0x0;\n        pbVar18 = (byte *)".mips16.fn";\n        pbVar20 = pbVar21;\n        do {\n          if (lVar13 == 0) break;\n          lVar13 = lVar13 + -1;\n          bVar26 = *pbVar18 < *pbVar20;\n          bVar28 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          pbVar20 = pbVar20 + (ulong)bVar29 * -2 + 1;\n        } while (bVar28);\n        uVar15 = (ulong)((uint)(uVar24 >> 3) & 0x1ffffff8);\n        uVar10 = 1L << ((byte)uVar24 & 0x3f);\n        puVar19 = (ulong *)((long)(this->section_is_mips16_fn_stub_).\n                                  super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                  super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p +\n                           uVar15);\n        uVar22 = *puVar19;\n        bVar27 = false;\n        bVar26 = (!bVar26 && !bVar28) == bVar26;\n        uVar14 = uVar22 & ~uVar10;\n        if (bVar26) {\n          uVar14 = uVar22 | uVar10;\n        }\n        *puVar19 = uVar14;\n        lVar13 = 0xd;\n        pbVar18 = (byte *)".mips16.call.";\n        pbVar20 = pbVar21;\n        do {\n          if (lVar13 == 0) break;\n          lVar13 = lVar13 + -1;\n          bVar27 = *pbVar18 < *pbVar20;\n          bVar26 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          pbVar20 = pbVar20 + (ulong)bVar29 * -2 + 1;\n        } while (bVar26);\n        puVar19 = (ulong *)((long)(this->section_is_mips16_call_stub_).\n                                  super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                  super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p +\n                           uVar15);\n        if ((!bVar27 && !bVar26) == bVar27) {\n          uVar22 = *puVar19 | uVar10;\n        }\n        else {\n          uVar22 = ~uVar10 & *puVar19;\n        }\n        bVar28 = uVar22 == 0;\n        bVar26 = false;\n        *puVar19 = uVar22;\n        lVar13 = 0x10;\n        pbVar18 = (byte *)".mips16.call.fp.";\n        pbVar20 = pbVar21;\n        do {\n          if (lVar13 == 0) break;\n          lVar13 = lVar13 + -1;\n          bVar26 = *pbVar18 < *pbVar20;\n          bVar28 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          pbVar20 = pbVar20 + (ulong)bVar29 * -2 + 1;\n        } while (bVar28);\n        puVar19 = (ulong *)(uVar15 + (long)(this->section_is_mips16_call_fp_stub_).\n                                           super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                           super__Bvector_impl_data._M_start.\n                                           super__Bit_iterator_base._M_p);\n        if ((!bVar26 && !bVar28) == bVar26) {\n          uVar10 = uVar10 | *puVar19;\n        }\n        else {\n          uVar10 = ~uVar10 & *puVar19;\n        }\n        bVar28 = uVar10 == 0;\n        bVar26 = false;\n        *puVar19 = uVar10;\n        lVar13 = 5;\n        pbVar18 = &DAT_0053357f;\n        do {\n          if (lVar13 == 0) break;\n          lVar13 = lVar13 + -1;\n          bVar26 = *pbVar21 < *pbVar18;\n          bVar28 = *pbVar21 == *pbVar18;\n          pbVar21 = pbVar21 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        } while (bVar28);\n        if ((!bVar26 && !bVar28) == bVar26) {\n          if (this->pdr_shndx_ != 0xffffffff) goto LAB_002d68ff;\n          this->pdr_shndx_ = (uint)uVar24;\n        }\n        uVar23 = (uint)uVar24 + 1;\n        uVar24 = (ulong)uVar23;\n        puVar16 = puVar17 + 10;\n        if ((this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.\n            super_Object.shnum_ <= uVar23) {\n          if (bVar5) {\n            return;\n          }\n          goto LAB_002d643d;\n        }\n        uVar23 = puVar17[0xb];\n      } while (uVar23 == 2);\nLAB_002d6581:\n      puVar17 = puVar16;\n      if (uVar23 != 3) {\n        if (uVar23 == 0x70000006) {\n          this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                    super_Relobj.super_Object.input_file_;\n          this->field_0x36c = this->field_0x36c | 4;\n          if (this_01 == (Input_file *)0x0) goto LAB_002d68fa;\n          pVVar11 = (Valtype *)\n                    gold::File_read::get_view\n                              (&this_01->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (ulong)puVar16[4],(ulong)puVar16[5],true,false);\n          this->gp_ = pVVar11[5];\n          this->gprmask_ = *pVVar11;\n          this->cprmask1_ = pVVar11[1];\n          this->cprmask2_ = pVVar11[2];\n          this->cprmask3_ = pVVar11[3];\n          this->cprmask4_ = pVVar11[4];\n          uVar23 = puVar16[1];\n        }\n        if (uVar23 == 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          this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                    super_Relobj.super_Object.input_file_;\n          uVar23 = puVar16[5];\n          if (this_01 == (Input_file *)0x0) goto LAB_002d68fa;\n          puVar7 = gold::File_read::get_view\n                             (&this_01->file_,\n                              (this->super_Sized_relobj_file<32,_false>).\n                              super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                              (ulong)puVar16[4],(ulong)uVar23,true,false);\n          this_00 = (Attributes_section_data *)operator_new(0x10);\n                    /* try { // try from 002d65fc to 002d6600 has its CatchHandler @ 002d695f */\n          gold::Attributes_section_data::Attributes_section_data(this_00,puVar7,(ulong)uVar23);\n          this->attributes_section_data_ = this_00;\n          uVar23 = puVar16[1];\n        }\n        if (uVar23 == 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          this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                    super_Relobj.super_Object.input_file_;\n          if (this_01 == (Input_file *)0x0) goto LAB_002d68fa;\n          puVar8 = (ushort *)\n                   gold::File_read::get_view\n                             (&this_01->file_,\n                              (this->super_Sized_relobj_file<32,_false>).\n                              super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                              (ulong)puVar16[4],(ulong)puVar16[5],true,false);\n          pMVar9 = (Mips_abiflags<false> *)operator_new(0x18);\n          pMVar9->version = 0;\n          pMVar9->isa_level = '\0';\n          pMVar9->isa_rev = '\0';\n          pMVar9->gpr_size = '\0';\n          pMVar9->cpr1_size = '\0';\n          pMVar9->cpr2_size = '\0';\n          pMVar9->fp_abi = '\0';\n          uVar2 = *puVar8;\n          pMVar9->isa_ext = 0;\n          pMVar9->ases = 0;\n          pMVar9->flags1 = 0;\n          pMVar9->flags2 = 0;\n          this->abiflags_ = pMVar9;\n          pMVar9->version = uVar2;\n          if (uVar2 != 0) {\n            pcVar4 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                     super_Relobj.super_Object.name_._M_dataplus._M_p;\n            pcVar25 = (char *)gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            gold::gold_error(pcVar25,pcVar4,(ulong)uVar2);\n            return;\n          }\n          pMVar9->isa_level = (Valtype8)puVar8[1];\n          pMVar9->isa_rev = *(Valtype8 *)((long)puVar8 + 3);\n          pMVar9->gpr_size = (Valtype8)puVar8[2];\n          pMVar9->cpr1_size = *(Valtype8 *)((long)puVar8 + 5);\n          pMVar9->cpr2_size = (Valtype8)puVar8[3];\n          pMVar9->fp_abi = *(Valtype8 *)((long)puVar8 + 7);\n          pMVar9->isa_ext = *(Valtype32 *)(puVar8 + 4);\n          pMVar9->ases = *(Valtype32 *)(puVar8 + 6);\n          pMVar9->flags1 = *(Valtype32 *)(puVar8 + 8);\n          pMVar9->flags2 = *(Valtype32 *)(puVar8 + 10);\n          uVar23 = puVar16[1];\n        }\n        if (uVar23 == 0x7000000d) {\n          this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                    super_Relobj.super_Object.input_file_;\n          uVar23 = puVar16[5];\n          if (this_01 == (Input_file *)0x0) goto LAB_002d68fa;\n          puVar12 = gold::File_read::get_view\n                              (&this_01->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (ulong)puVar16[4],(ulong)uVar23,true,false);\n          puVar7 = puVar12 + uVar23;\n          for (; puVar12 + 8 <= puVar7; puVar12 = puVar12 + bVar1) {\n            bVar1 = puVar12[1];\n            if (bVar1 < 8) {\n              pcVar4 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                       super_Relobj.super_Object.name_._M_dataplus._M_p;\n              pcVar25 = ".MIPS.options";\n              if ((this->field_0x36c & 2) == 0) {\n                pcVar25 = ".options";\n              }\n              format = (char *)gettext(\n                                      "%s: Warning: bad `%s\' option size %u smaller than its header"\n                                      );\n              gold::gold_error(format,pcVar4,pcVar25,(ulong)bVar1);\n              break;\n            }\n            if (*puVar12 == '\x01') {\n              this->gp_ = *(Mips_address *)(puVar12 + 0x1c);\n            }\n          }\n        }\n        bVar5 = true;\n      }\n      goto LAB_002d66e8;\n    }\n  }\n  else if (FVar3 != FORMAT_BINARY) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }" if (parenthesized_expression "(FVar3 == FORMAT_ELF)" ( (binary_expression "FVar3 == FORMAT_ELF" identifier == identifier) )) (compound_statement "{\n    puVar6 = gold::File_read::get_view\n                       (&this_01->file_,\n                        (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                        super_Relobj.super_Object.offset_,0,0x34,true,false);\n    uVar23 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.\n             super_Object.shnum_;\n    this->processor_specific_flags_ = *(Elf_Word *)(puVar6 + 0x24);\n    puVar6 = sd->section_names->data_;\n    std::vector<bool,_std::allocator<bool>_>::resize\n              (&this->section_is_mips16_fn_stub_,(ulong)uVar23,false);\n    std::vector<bool,_std::allocator<bool>_>::resize\n              (&this->section_is_mips16_call_stub_,\n               (ulong)(this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                      super_Relobj.super_Object.shnum_,false);\n    std::vector<bool,_std::allocator<bool>_>::resize\n              (&this->section_is_mips16_call_fp_stub_,\n               (ulong)(this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                      super_Relobj.super_Object.shnum_,false);\n    bVar5 = false;\n    puVar7 = sd->section_headers->data_;\n    puVar16 = (uint *)(puVar7 + 0x28);\n    if (1 < (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.\n            super_Object.shnum_) {\n      uVar23 = *(uint *)(puVar7 + 0x2c);\n      if (uVar23 != 2) goto LAB_002d6581;\n      do {\n        puVar17 = puVar16;\n        if (0x10 < puVar16[5]) {\n          bVar5 = true;\n        }\nLAB_002d66e8:\n        lVar13 = 10;\n        bVar26 = CARRY8((ulong)*puVar17,(ulong)puVar6);\n        pbVar21 = puVar6 + *puVar17;\n        bVar28 = pbVar21 == (byte *)0x0;\n        pbVar18 = (byte *)".mips16.fn";\n        pbVar20 = pbVar21;\n        do {\n          if (lVar13 == 0) break;\n          lVar13 = lVar13 + -1;\n          bVar26 = *pbVar18 < *pbVar20;\n          bVar28 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          pbVar20 = pbVar20 + (ulong)bVar29 * -2 + 1;\n        } while (bVar28);\n        uVar15 = (ulong)((uint)(uVar24 >> 3) & 0x1ffffff8);\n        uVar10 = 1L << ((byte)uVar24 & 0x3f);\n        puVar19 = (ulong *)((long)(this->section_is_mips16_fn_stub_).\n                                  super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                  super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p +\n                           uVar15);\n        uVar22 = *puVar19;\n        bVar27 = false;\n        bVar26 = (!bVar26 && !bVar28) == bVar26;\n        uVar14 = uVar22 & ~uVar10;\n        if (bVar26) {\n          uVar14 = uVar22 | uVar10;\n        }\n        *puVar19 = uVar14;\n        lVar13 = 0xd;\n        pbVar18 = (byte *)".mips16.call.";\n        pbVar20 = pbVar21;\n        do {\n          if (lVar13 == 0) break;\n          lVar13 = lVar13 + -1;\n          bVar27 = *pbVar18 < *pbVar20;\n          bVar26 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          pbVar20 = pbVar20 + (ulong)bVar29 * -2 + 1;\n        } while (bVar26);\n        puVar19 = (ulong *)((long)(this->section_is_mips16_call_stub_).\n                                  super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                  super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p +\n                           uVar15);\n        if ((!bVar27 && !bVar26) == bVar27) {\n          uVar22 = *puVar19 | uVar10;\n        }\n        else {\n          uVar22 = ~uVar10 & *puVar19;\n        }\n        bVar28 = uVar22 == 0;\n        bVar26 = false;\n        *puVar19 = uVar22;\n        lVar13 = 0x10;\n        pbVar18 = (byte *)".mips16.call.fp.";\n        pbVar20 = pbVar21;\n        do {\n          if (lVar13 == 0) break;\n          lVar13 = lVar13 + -1;\n          bVar26 = *pbVar18 < *pbVar20;\n          bVar28 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          pbVar20 = pbVar20 + (ulong)bVar29 * -2 + 1;\n        } while (bVar28);\n        puVar19 = (ulong *)(uVar15 + (long)(this->section_is_mips16_call_fp_stub_).\n                                           super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                           super__Bvector_impl_data._M_start.\n                                           super__Bit_iterator_base._M_p);\n        if ((!bVar26 && !bVar28) == bVar26) {\n          uVar10 = uVar10 | *puVar19;\n        }\n        else {\n          uVar10 = ~uVar10 & *puVar19;\n        }\n        bVar28 = uVar10 == 0;\n        bVar26 = false;\n        *puVar19 = uVar10;\n        lVar13 = 5;\n        pbVar18 = &DAT_0053357f;\n        do {\n          if (lVar13 == 0) break;\n          lVar13 = lVar13 + -1;\n          bVar26 = *pbVar21 < *pbVar18;\n          bVar28 = *pbVar21 == *pbVar18;\n          pbVar21 = pbVar21 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        } while (bVar28);\n        if ((!bVar26 && !bVar28) == bVar26) {\n          if (this->pdr_shndx_ != 0xffffffff) goto LAB_002d68ff;\n          this->pdr_shndx_ = (uint)uVar24;\n        }\n        uVar23 = (uint)uVar24 + 1;\n        uVar24 = (ulong)uVar23;\n        puVar16 = puVar17 + 10;\n        if ((this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.\n            super_Object.shnum_ <= uVar23) {\n          if (bVar5) {\n            return;\n          }\n          goto LAB_002d643d;\n        }\n        uVar23 = puVar17[0xb];\n      } while (uVar23 == 2);\nLAB_002d6581:\n      puVar17 = puVar16;\n      if (uVar23 != 3) {\n        if (uVar23 == 0x70000006) {\n          this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                    super_Relobj.super_Object.input_file_;\n          this->field_0x36c = this->field_0x36c | 4;\n          if (this_01 == (Input_file *)0x0) goto LAB_002d68fa;\n          pVVar11 = (Valtype *)\n                    gold::File_read::get_view\n                              (&this_01->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (ulong)puVar16[4],(ulong)puVar16[5],true,false);\n          this->gp_ = pVVar11[5];\n          this->gprmask_ = *pVVar11;\n          this->cprmask1_ = pVVar11[1];\n          this->cprmask2_ = pVVar11[2];\n          this->cprmask3_ = pVVar11[3];\n          this->cprmask4_ = pVVar11[4];\n          uVar23 = puVar16[1];\n        }\n        if (uVar23 == 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          this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                    super_Relobj.super_Object.input_file_;\n          uVar23 = puVar16[5];\n          if (this_01 == (Input_file *)0x0) goto LAB_002d68fa;\n          puVar7 = gold::File_read::get_view\n                             (&this_01->file_,\n                              (this->super_Sized_relobj_file<32,_false>).\n                              super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                              (ulong)puVar16[4],(ulong)uVar23,true,false);\n          this_00 = (Attributes_section_data *)operator_new(0x10);\n                    /* try { // try from 002d65fc to 002d6600 has its CatchHandler @ 002d695f */\n          gold::Attributes_section_data::Attributes_section_data(this_00,puVar7,(ulong)uVar23);\n          this->attributes_section_data_ = this_00;\n          uVar23 = puVar16[1];\n        }\n        if (uVar23 == 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          this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                    super_Relobj.super_Object.input_file_;\n          if (this_01 == (Input_file *)0x0) goto LAB_002d68fa;\n          puVar8 = (ushort *)\n                   gold::File_read::get_view\n                             (&this_01->file_,\n                              (this->super_Sized_relobj_file<32,_false>).\n                              super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                              (ulong)puVar16[4],(ulong)puVar16[5],true,false);\n          pMVar9 = (Mips_abiflags<false> *)operator_new(0x18);\n          pMVar9->version = 0;\n          pMVar9->isa_level = '\0';\n          pMVar9->isa_rev = '\0';\n          pMVar9->gpr_size = '\0';\n          pMVar9->cpr1_size = '\0';\n          pMVar9->cpr2_size = '\0';\n          pMVar9->fp_abi = '\0';\n          uVar2 = *puVar8;\n          pMVar9->isa_ext = 0;\n          pMVar9->ases = 0;\n          pMVar9->flags1 = 0;\n          pMVar9->flags2 = 0;\n          this->abiflags_ = pMVar9;\n          pMVar9->version = uVar2;\n          if (uVar2 != 0) {\n            pcVar4 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                     super_Relobj.super_Object.name_._M_dataplus._M_p;\n            pcVar25 = (char *)gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            gold::gold_error(pcVar25,pcVar4,(ulong)uVar2);\n            return;\n          }\n          pMVar9->isa_level = (Valtype8)puVar8[1];\n          pMVar9->isa_rev = *(Valtype8 *)((long)puVar8 + 3);\n          pMVar9->gpr_size = (Valtype8)puVar8[2];\n          pMVar9->cpr1_size = *(Valtype8 *)((long)puVar8 + 5);\n          pMVar9->cpr2_size = (Valtype8)puVar8[3];\n          pMVar9->fp_abi = *(Valtype8 *)((long)puVar8 + 7);\n          pMVar9->isa_ext = *(Valtype32 *)(puVar8 + 4);\n          pMVar9->ases = *(Valtype32 *)(puVar8 + 6);\n          pMVar9->flags1 = *(Valtype32 *)(puVar8 + 8);\n          pMVar9->flags2 = *(Valtype32 *)(puVar8 + 10);\n          uVar23 = puVar16[1];\n        }\n        if (uVar23 == 0x7000000d) {\n          this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                    super_Relobj.super_Object.input_file_;\n          uVar23 = puVar16[5];\n          if (this_01 == (Input_file *)0x0) goto LAB_002d68fa;\n          puVar12 = gold::File_read::get_view\n                              (&this_01->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (ulong)puVar16[4],(ulong)uVar23,true,false);\n          puVar7 = puVar12 + uVar23;\n          for (; puVar12 + 8 <= puVar7; puVar12 = puVar12 + bVar1) {\n            bVar1 = puVar12[1];\n            if (bVar1 < 8) {\n              pcVar4 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                       super_Relobj.super_Object.name_._M_dataplus._M_p;\n              pcVar25 = ".MIPS.options";\n              if ((this->field_0x36c & 2) == 0) {\n                pcVar25 = ".options";\n              }\n              format = (char *)gettext(\n                                      "%s: Warning: bad `%s\' option size %u smaller than its header"\n                                      );\n              gold::gold_error(format,pcVar4,pcVar25,(ulong)bVar1);\n              break;\n            }\n            if (*puVar12 == '\x01') {\n              this->gp_ = *(Mips_address *)(puVar12 + 0x1c);\n            }\n          }\n        }\n        bVar5 = true;\n      }\n      goto LAB_002d66e8;\n    }\n  }" { (ERROR "puVar6 = gold::" (assignment_expression "puVar6 = gold" identifier = identifier) : :) (labeled_statement "File_read::get_view\n                       (&this_01->file_,\n                        (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                        super_Relobj.super_Object.offset_,0,0x34,true,false);" statement_identifier : (ERROR ":" :) (expression_statement "get_view\n                       (&this_01->file_,\n                        (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                        super_Relobj.super_Object.offset_,0,0x34,true,false);" (call_expression "get_view\n                       (&this_01->file_,\n                        (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                        super_Relobj.super_Object.offset_,0,0x34,true,false)" identifier (argument_list "(&this_01->file_,\n                        (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                        super_Relobj.super_Object.offset_,0,0x34,true,false)" ( (pointer_expression "&this_01->file_" & (field_expression "this_01->file_" 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>.\n                        super_Relobj.super_Object.offset_" (field_expression "_false>.\n                        super_Relobj.super_Object" (field_expression "_false>.\n                        super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) , number_literal , number_literal , true , false ))) ;)) (expression_statement "uVar23 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.\n             super_Object.shnum_;" (comma_expression "uVar23 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.\n             super_Object.shnum_" (assignment_expression "uVar23 = (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>.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)) ;) (expression_statement "this->processor_specific_flags_ = *(Elf_Word *)(puVar6 + 0x24);" (assignment_expression "this->processor_specific_flags_ = *(Elf_Word *)(puVar6 + 0x24)" (field_expression "this->processor_specific_flags_" identifier -> field_identifier) = (pointer_expression "*(Elf_Word *)(puVar6 + 0x24)" * (cast_expression "(Elf_Word *)(puVar6 + 0x24)" ( (type_descriptor "Elf_Word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0x24)" ( (binary_expression "puVar6 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "puVar6 = sd->section_names->data_;" (assignment_expression "puVar6 = 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_,(ulong)uVar23,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_,(ulong)uVar23,false);" (call_expression "resize\n              (&this->section_is_mips16_fn_stub_,(ulong)uVar23,false)" identifier (argument_list "(&this->section_is_mips16_fn_stub_,(ulong)uVar23,false)" ( (pointer_expression "&this->section_is_mips16_fn_stub_" & (field_expression "this->section_is_mips16_fn_stub_" identifier -> field_identifier)) , (cast_expression "(ulong)uVar23" ( (type_descriptor "ulong" type_identifier) ) identifier) , false ))) ;)) (labeled_statement "std::vector<bool,_std::allocator<bool>_>::resize\n              (&this->section_is_mips16_call_stub_,\n               (ulong)(this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                      super_Relobj.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               (ulong)(this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                      super_Relobj.super_Object.shnum_,false);" (call_expression "resize\n              (&this->section_is_mips16_call_stub_,\n               (ulong)(this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                      super_Relobj.super_Object.shnum_,false)" identifier (argument_list "(&this->section_is_mips16_call_stub_,\n               (ulong)(this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                      super_Relobj.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 "(ulong)(this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32" (field_expression "(ulong)(this->super_Sized_relobj_file<32,_false>).super_Sized_relobj" (call_expression "(ulong)(this->super_Sized_relobj_file<32,_false>)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(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.shnum_" (field_expression "_false>.\n                      super_Relobj.super_Object" (field_expression "_false>.\n                      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               (ulong)(this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                      super_Relobj.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               (ulong)(this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                      super_Relobj.super_Object.shnum_,false);" (call_expression "resize\n              (&this->section_is_mips16_call_fp_stub_,\n               (ulong)(this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                      super_Relobj.super_Object.shnum_,false)" identifier (argument_list "(&this->section_is_mips16_call_fp_stub_,\n               (ulong)(this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                      super_Relobj.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 "(ulong)(this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32" (field_expression "(ulong)(this->super_Sized_relobj_file<32,_false>).super_Sized_relobj" (call_expression "(ulong)(this->super_Sized_relobj_file<32,_false>)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(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.shnum_" (field_expression "_false>.\n                      super_Relobj.super_Object" (field_expression "_false>.\n                      super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) , false ))) ;)) (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" identifier = false) ;) (expression_statement "puVar7 = sd->section_headers->data_;" (assignment_expression "puVar7 = sd->section_headers->data_" identifier = (field_expression "sd->section_headers->data_" (field_expression "sd->section_headers" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "puVar16 = (uint *)(puVar7 + 0x28);" (assignment_expression "puVar16 = (uint *)(puVar7 + 0x28)" identifier = (cast_expression "(uint *)(puVar7 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x28)" ( (binary_expression "puVar7 + 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      uVar23 = *(uint *)(puVar7 + 0x2c);\n      if (uVar23 != 2) goto LAB_002d6581;\n      do {\n        puVar17 = puVar16;\n        if (0x10 < puVar16[5]) {\n          bVar5 = true;\n        }\nLAB_002d66e8:\n        lVar13 = 10;\n        bVar26 = CARRY8((ulong)*puVar17,(ulong)puVar6);\n        pbVar21 = puVar6 + *puVar17;\n        bVar28 = pbVar21 == (byte *)0x0;\n        pbVar18 = (byte *)".mips16.fn";\n        pbVar20 = pbVar21;\n        do {\n          if (lVar13 == 0) break;\n          lVar13 = lVar13 + -1;\n          bVar26 = *pbVar18 < *pbVar20;\n          bVar28 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          pbVar20 = pbVar20 + (ulong)bVar29 * -2 + 1;\n        } while (bVar28);\n        uVar15 = (ulong)((uint)(uVar24 >> 3) & 0x1ffffff8);\n        uVar10 = 1L << ((byte)uVar24 & 0x3f);\n        puVar19 = (ulong *)((long)(this->section_is_mips16_fn_stub_).\n                                  super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                  super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p +\n                           uVar15);\n        uVar22 = *puVar19;\n        bVar27 = false;\n        bVar26 = (!bVar26 && !bVar28) == bVar26;\n        uVar14 = uVar22 & ~uVar10;\n        if (bVar26) {\n          uVar14 = uVar22 | uVar10;\n        }\n        *puVar19 = uVar14;\n        lVar13 = 0xd;\n        pbVar18 = (byte *)".mips16.call.";\n        pbVar20 = pbVar21;\n        do {\n          if (lVar13 == 0) break;\n          lVar13 = lVar13 + -1;\n          bVar27 = *pbVar18 < *pbVar20;\n          bVar26 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          pbVar20 = pbVar20 + (ulong)bVar29 * -2 + 1;\n        } while (bVar26);\n        puVar19 = (ulong *)((long)(this->section_is_mips16_call_stub_).\n                                  super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                  super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p +\n                           uVar15);\n        if ((!bVar27 && !bVar26) == bVar27) {\n          uVar22 = *puVar19 | uVar10;\n        }\n        else {\n          uVar22 = ~uVar10 & *puVar19;\n        }\n        bVar28 = uVar22 == 0;\n        bVar26 = false;\n        *puVar19 = uVar22;\n        lVar13 = 0x10;\n        pbVar18 = (byte *)".mips16.call.fp.";\n        pbVar20 = pbVar21;\n        do {\n          if (lVar13 == 0) break;\n          lVar13 = lVar13 + -1;\n          bVar26 = *pbVar18 < *pbVar20;\n          bVar28 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          pbVar20 = pbVar20 + (ulong)bVar29 * -2 + 1;\n        } while (bVar28);\n        puVar19 = (ulong *)(uVar15 + (long)(this->section_is_mips16_call_fp_stub_).\n                                           super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                           super__Bvector_impl_data._M_start.\n                                           super__Bit_iterator_base._M_p);\n        if ((!bVar26 && !bVar28) == bVar26) {\n          uVar10 = uVar10 | *puVar19;\n        }\n        else {\n          uVar10 = ~uVar10 & *puVar19;\n        }\n        bVar28 = uVar10 == 0;\n        bVar26 = false;\n        *puVar19 = uVar10;\n        lVar13 = 5;\n        pbVar18 = &DAT_0053357f;\n        do {\n          if (lVar13 == 0) break;\n          lVar13 = lVar13 + -1;\n          bVar26 = *pbVar21 < *pbVar18;\n          bVar28 = *pbVar21 == *pbVar18;\n          pbVar21 = pbVar21 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        } while (bVar28);\n        if ((!bVar26 && !bVar28) == bVar26) {\n          if (this->pdr_shndx_ != 0xffffffff) goto LAB_002d68ff;\n          this->pdr_shndx_ = (uint)uVar24;\n        }\n        uVar23 = (uint)uVar24 + 1;\n        uVar24 = (ulong)uVar23;\n        puVar16 = puVar17 + 10;\n        if ((this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.\n            super_Object.shnum_ <= uVar23) {\n          if (bVar5) {\n            return;\n          }\n          goto LAB_002d643d;\n        }\n        uVar23 = puVar17[0xb];\n      } while (uVar23 == 2);\nLAB_002d6581:\n      puVar17 = puVar16;\n      if (uVar23 != 3) {\n        if (uVar23 == 0x70000006) {\n          this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                    super_Relobj.super_Object.input_file_;\n          this->field_0x36c = this->field_0x36c | 4;\n          if (this_01 == (Input_file *)0x0) goto LAB_002d68fa;\n          pVVar11 = (Valtype *)\n                    gold::File_read::get_view\n                              (&this_01->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (ulong)puVar16[4],(ulong)puVar16[5],true,false);\n          this->gp_ = pVVar11[5];\n          this->gprmask_ = *pVVar11;\n          this->cprmask1_ = pVVar11[1];\n          this->cprmask2_ = pVVar11[2];\n          this->cprmask3_ = pVVar11[3];\n          this->cprmask4_ = pVVar11[4];\n          uVar23 = puVar16[1];\n        }\n        if (uVar23 == 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          this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                    super_Relobj.super_Object.input_file_;\n          uVar23 = puVar16[5];\n          if (this_01 == (Input_file *)0x0) goto LAB_002d68fa;\n          puVar7 = gold::File_read::get_view\n                             (&this_01->file_,\n                              (this->super_Sized_relobj_file<32,_false>).\n                              super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                              (ulong)puVar16[4],(ulong)uVar23,true,false);\n          this_00 = (Attributes_section_data *)operator_new(0x10);\n                    /* try { // try from 002d65fc to 002d6600 has its CatchHandler @ 002d695f */\n          gold::Attributes_section_data::Attributes_section_data(this_00,puVar7,(ulong)uVar23);\n          this->attributes_section_data_ = this_00;\n          uVar23 = puVar16[1];\n        }\n        if (uVar23 == 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          this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                    super_Relobj.super_Object.input_file_;\n          if (this_01 == (Input_file *)0x0) goto LAB_002d68fa;\n          puVar8 = (ushort *)\n                   gold::File_read::get_view\n                             (&this_01->file_,\n                              (this->super_Sized_relobj_file<32,_false>).\n                              super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                              (ulong)puVar16[4],(ulong)puVar16[5],true,false);\n          pMVar9 = (Mips_abiflags<false> *)operator_new(0x18);\n          pMVar9->version = 0;\n          pMVar9->isa_level = '\0';\n          pMVar9->isa_rev = '\0';\n          pMVar9->gpr_size = '\0';\n          pMVar9->cpr1_size = '\0';\n          pMVar9->cpr2_size = '\0';\n          pMVar9->fp_abi = '\0';\n          uVar2 = *puVar8;\n          pMVar9->isa_ext = 0;\n          pMVar9->ases = 0;\n          pMVar9->flags1 = 0;\n          pMVar9->flags2 = 0;\n          this->abiflags_ = pMVar9;\n          pMVar9->version = uVar2;\n          if (uVar2 != 0) {\n            pcVar4 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                     super_Relobj.super_Object.name_._M_dataplus._M_p;\n            pcVar25 = (char *)gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            gold::gold_error(pcVar25,pcVar4,(ulong)uVar2);\n            return;\n          }\n          pMVar9->isa_level = (Valtype8)puVar8[1];\n          pMVar9->isa_rev = *(Valtype8 *)((long)puVar8 + 3);\n          pMVar9->gpr_size = (Valtype8)puVar8[2];\n          pMVar9->cpr1_size = *(Valtype8 *)((long)puVar8 + 5);\n          pMVar9->cpr2_size = (Valtype8)puVar8[3];\n          pMVar9->fp_abi = *(Valtype8 *)((long)puVar8 + 7);\n          pMVar9->isa_ext = *(Valtype32 *)(puVar8 + 4);\n          pMVar9->ases = *(Valtype32 *)(puVar8 + 6);\n          pMVar9->flags1 = *(Valtype32 *)(puVar8 + 8);\n          pMVar9->flags2 = *(Valtype32 *)(puVar8 + 10);\n          uVar23 = puVar16[1];\n        }\n        if (uVar23 == 0x7000000d) {\n          this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                    super_Relobj.super_Object.input_file_;\n          uVar23 = puVar16[5];\n          if (this_01 == (Input_file *)0x0) goto LAB_002d68fa;\n          puVar12 = gold::File_read::get_view\n                              (&this_01->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (ulong)puVar16[4],(ulong)uVar23,true,false);\n          puVar7 = puVar12 + uVar23;\n          for (; puVar12 + 8 <= puVar7; puVar12 = puVar12 + bVar1) {\n            bVar1 = puVar12[1];\n            if (bVar1 < 8) {\n              pcVar4 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                       super_Relobj.super_Object.name_._M_dataplus._M_p;\n              pcVar25 = ".MIPS.options";\n              if ((this->field_0x36c & 2) == 0) {\n                pcVar25 = ".options";\n              }\n              format = (char *)gettext(\n                                      "%s: Warning: bad `%s\' option size %u smaller than its header"\n                                      );\n              gold::gold_error(format,pcVar4,pcVar25,(ulong)bVar1);\n              break;\n            }\n            if (*puVar12 == '\x01') {\n              this->gp_ = *(Mips_address *)(puVar12 + 0x1c);\n            }\n          }\n        }\n        bVar5 = true;\n      }\n      goto LAB_002d66e8;\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      uVar23 = *(uint *)(puVar7 + 0x2c);\n      if (uVar23 != 2) goto LAB_002d6581;\n      do {\n        puVar17 = puVar16;\n        if (0x10 < puVar16[5]) {\n          bVar5 = true;\n        }\nLAB_002d66e8:\n        lVar13 = 10;\n        bVar26 = CARRY8((ulong)*puVar17,(ulong)puVar6);\n        pbVar21 = puVar6 + *puVar17;\n        bVar28 = pbVar21 == (byte *)0x0;\n        pbVar18 = (byte *)".mips16.fn";\n        pbVar20 = pbVar21;\n        do {\n          if (lVar13 == 0) break;\n          lVar13 = lVar13 + -1;\n          bVar26 = *pbVar18 < *pbVar20;\n          bVar28 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          pbVar20 = pbVar20 + (ulong)bVar29 * -2 + 1;\n        } while (bVar28);\n        uVar15 = (ulong)((uint)(uVar24 >> 3) & 0x1ffffff8);\n        uVar10 = 1L << ((byte)uVar24 & 0x3f);\n        puVar19 = (ulong *)((long)(this->section_is_mips16_fn_stub_).\n                                  super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                  super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p +\n                           uVar15);\n        uVar22 = *puVar19;\n        bVar27 = false;\n        bVar26 = (!bVar26 && !bVar28) == bVar26;\n        uVar14 = uVar22 & ~uVar10;\n        if (bVar26) {\n          uVar14 = uVar22 | uVar10;\n        }\n        *puVar19 = uVar14;\n        lVar13 = 0xd;\n        pbVar18 = (byte *)".mips16.call.";\n        pbVar20 = pbVar21;\n        do {\n          if (lVar13 == 0) break;\n          lVar13 = lVar13 + -1;\n          bVar27 = *pbVar18 < *pbVar20;\n          bVar26 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          pbVar20 = pbVar20 + (ulong)bVar29 * -2 + 1;\n        } while (bVar26);\n        puVar19 = (ulong *)((long)(this->section_is_mips16_call_stub_).\n                                  super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                  super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p +\n                           uVar15);\n        if ((!bVar27 && !bVar26) == bVar27) {\n          uVar22 = *puVar19 | uVar10;\n        }\n        else {\n          uVar22 = ~uVar10 & *puVar19;\n        }\n        bVar28 = uVar22 == 0;\n        bVar26 = false;\n        *puVar19 = uVar22;\n        lVar13 = 0x10;\n        pbVar18 = (byte *)".mips16.call.fp.";\n        pbVar20 = pbVar21;\n        do {\n          if (lVar13 == 0) break;\n          lVar13 = lVar13 + -1;\n          bVar26 = *pbVar18 < *pbVar20;\n          bVar28 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          pbVar20 = pbVar20 + (ulong)bVar29 * -2 + 1;\n        } while (bVar28);\n        puVar19 = (ulong *)(uVar15 + (long)(this->section_is_mips16_call_fp_stub_).\n                                           super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                           super__Bvector_impl_data._M_start.\n                                           super__Bit_iterator_base._M_p);\n        if ((!bVar26 && !bVar28) == bVar26) {\n          uVar10 = uVar10 | *puVar19;\n        }\n        else {\n          uVar10 = ~uVar10 & *puVar19;\n        }\n        bVar28 = uVar10 == 0;\n        bVar26 = false;\n        *puVar19 = uVar10;\n        lVar13 = 5;\n        pbVar18 = &DAT_0053357f;\n        do {\n          if (lVar13 == 0) break;\n          lVar13 = lVar13 + -1;\n          bVar26 = *pbVar21 < *pbVar18;\n          bVar28 = *pbVar21 == *pbVar18;\n          pbVar21 = pbVar21 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        } while (bVar28);\n        if ((!bVar26 && !bVar28) == bVar26) {\n          if (this->pdr_shndx_ != 0xffffffff) goto LAB_002d68ff;\n          this->pdr_shndx_ = (uint)uVar24;\n        }\n        uVar23 = (uint)uVar24 + 1;\n        uVar24 = (ulong)uVar23;\n        puVar16 = puVar17 + 10;\n        if ((this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.\n            super_Object.shnum_ <= uVar23) {\n          if (bVar5) {\n            return;\n          }\n          goto LAB_002d643d;\n        }\n        uVar23 = puVar17[0xb];\n      } while (uVar23 == 2);\nLAB_002d6581:\n      puVar17 = puVar16;\n      if (uVar23 != 3) {\n        if (uVar23 == 0x70000006) {\n          this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                    super_Relobj.super_Object.input_file_;\n          this->field_0x36c = this->field_0x36c | 4;\n          if (this_01 == (Input_file *)0x0) goto LAB_002d68fa;\n          pVVar11 = (Valtype *)\n                    gold::File_read::get_view\n                              (&this_01->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (ulong)puVar16[4],(ulong)puVar16[5],true,false);\n          this->gp_ = pVVar11[5];\n          this->gprmask_ = *pVVar11;\n          this->cprmask1_ = pVVar11[1];\n          this->cprmask2_ = pVVar11[2];\n          this->cprmask3_ = pVVar11[3];\n          this->cprmask4_ = pVVar11[4];\n          uVar23 = puVar16[1];\n        }\n        if (uVar23 == 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          this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                    super_Relobj.super_Object.input_file_;\n          uVar23 = puVar16[5];\n          if (this_01 == (Input_file *)0x0) goto LAB_002d68fa;\n          puVar7 = gold::File_read::get_view\n                             (&this_01->file_,\n                              (this->super_Sized_relobj_file<32,_false>).\n                              super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                              (ulong)puVar16[4],(ulong)uVar23,true,false);\n          this_00 = (Attributes_section_data *)operator_new(0x10);\n                    /* try { // try from 002d65fc to 002d6600 has its CatchHandler @ 002d695f */\n          gold::Attributes_section_data::Attributes_section_data(this_00,puVar7,(ulong)uVar23);\n          this->attributes_section_data_ = this_00;\n          uVar23 = puVar16[1];\n        }\n        if (uVar23 == 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          this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                    super_Relobj.super_Object.input_file_;\n          if (this_01 == (Input_file *)0x0) goto LAB_002d68fa;\n          puVar8 = (ushort *)\n                   gold::File_read::get_view\n                             (&this_01->file_,\n                              (this->super_Sized_relobj_file<32,_false>).\n                              super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                              (ulong)puVar16[4],(ulong)puVar16[5],true,false);\n          pMVar9 = (Mips_abiflags<false> *)operator_new(0x18);\n          pMVar9->version = 0;\n          pMVar9->isa_level = '\0';\n          pMVar9->isa_rev = '\0';\n          pMVar9->gpr_size = '\0';\n          pMVar9->cpr1_size = '\0';\n          pMVar9->cpr2_size = '\0';\n          pMVar9->fp_abi = '\0';\n          uVar2 = *puVar8;\n          pMVar9->isa_ext = 0;\n          pMVar9->ases = 0;\n          pMVar9->flags1 = 0;\n          pMVar9->flags2 = 0;\n          this->abiflags_ = pMVar9;\n          pMVar9->version = uVar2;\n          if (uVar2 != 0) {\n            pcVar4 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                     super_Relobj.super_Object.name_._M_dataplus._M_p;\n            pcVar25 = (char *)gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            gold::gold_error(pcVar25,pcVar4,(ulong)uVar2);\n            return;\n          }\n          pMVar9->isa_level = (Valtype8)puVar8[1];\n          pMVar9->isa_rev = *(Valtype8 *)((long)puVar8 + 3);\n          pMVar9->gpr_size = (Valtype8)puVar8[2];\n          pMVar9->cpr1_size = *(Valtype8 *)((long)puVar8 + 5);\n          pMVar9->cpr2_size = (Valtype8)puVar8[3];\n          pMVar9->fp_abi = *(Valtype8 *)((long)puVar8 + 7);\n          pMVar9->isa_ext = *(Valtype32 *)(puVar8 + 4);\n          pMVar9->ases = *(Valtype32 *)(puVar8 + 6);\n          pMVar9->flags1 = *(Valtype32 *)(puVar8 + 8);\n          pMVar9->flags2 = *(Valtype32 *)(puVar8 + 10);\n          uVar23 = puVar16[1];\n        }\n        if (uVar23 == 0x7000000d) {\n          this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                    super_Relobj.super_Object.input_file_;\n          uVar23 = puVar16[5];\n          if (this_01 == (Input_file *)0x0) goto LAB_002d68fa;\n          puVar12 = gold::File_read::get_view\n                              (&this_01->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (ulong)puVar16[4],(ulong)uVar23,true,false);\n          puVar7 = puVar12 + uVar23;\n          for (; puVar12 + 8 <= puVar7; puVar12 = puVar12 + bVar1) {\n            bVar1 = puVar12[1];\n            if (bVar1 < 8) {\n              pcVar4 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                       super_Relobj.super_Object.name_._M_dataplus._M_p;\n              pcVar25 = ".MIPS.options";\n              if ((this->field_0x36c & 2) == 0) {\n                pcVar25 = ".options";\n              }\n              format = (char *)gettext(\n                                      "%s: Warning: bad `%s\' option size %u smaller than its header"\n                                      );\n              gold::gold_error(format,pcVar4,pcVar25,(ulong)bVar1);\n              break;\n            }\n            if (*puVar12 == '\x01') {\n              this->gp_ = *(Mips_address *)(puVar12 + 0x1c);\n            }\n          }\n        }\n        bVar5 = true;\n      }\n      goto LAB_002d66e8;\n    }" { (expression_statement "uVar23 = *(uint *)(puVar7 + 0x2c);" (assignment_expression "uVar23 = *(uint *)(puVar7 + 0x2c)" identifier = (pointer_expression "*(uint *)(puVar7 + 0x2c)" * (cast_expression "(uint *)(puVar7 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x2c)" ( (binary_expression "puVar7 + 0x2c" identifier + number_literal) ))))) ;) (if_statement "if (uVar23 != 2) goto LAB_002d6581;" if (parenthesized_expression "(uVar23 != 2)" ( (binary_expression "uVar23 != 2" identifier != number_literal) )) (goto_statement "goto LAB_002d6581;" goto statement_identifier ;)) (do_statement "do {\n        puVar17 = puVar16;\n        if (0x10 < puVar16[5]) {\n          bVar5 = true;\n        }\nLAB_002d66e8:\n        lVar13 = 10;\n        bVar26 = CARRY8((ulong)*puVar17,(ulong)puVar6);\n        pbVar21 = puVar6 + *puVar17;\n        bVar28 = pbVar21 == (byte *)0x0;\n        pbVar18 = (byte *)".mips16.fn";\n        pbVar20 = pbVar21;\n        do {\n          if (lVar13 == 0) break;\n          lVar13 = lVar13 + -1;\n          bVar26 = *pbVar18 < *pbVar20;\n          bVar28 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          pbVar20 = pbVar20 + (ulong)bVar29 * -2 + 1;\n        } while (bVar28);\n        uVar15 = (ulong)((uint)(uVar24 >> 3) & 0x1ffffff8);\n        uVar10 = 1L << ((byte)uVar24 & 0x3f);\n        puVar19 = (ulong *)((long)(this->section_is_mips16_fn_stub_).\n                                  super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                  super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p +\n                           uVar15);\n        uVar22 = *puVar19;\n        bVar27 = false;\n        bVar26 = (!bVar26 && !bVar28) == bVar26;\n        uVar14 = uVar22 & ~uVar10;\n        if (bVar26) {\n          uVar14 = uVar22 | uVar10;\n        }\n        *puVar19 = uVar14;\n        lVar13 = 0xd;\n        pbVar18 = (byte *)".mips16.call.";\n        pbVar20 = pbVar21;\n        do {\n          if (lVar13 == 0) break;\n          lVar13 = lVar13 + -1;\n          bVar27 = *pbVar18 < *pbVar20;\n          bVar26 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          pbVar20 = pbVar20 + (ulong)bVar29 * -2 + 1;\n        } while (bVar26);\n        puVar19 = (ulong *)((long)(this->section_is_mips16_call_stub_).\n                                  super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                  super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p +\n                           uVar15);\n        if ((!bVar27 && !bVar26) == bVar27) {\n          uVar22 = *puVar19 | uVar10;\n        }\n        else {\n          uVar22 = ~uVar10 & *puVar19;\n        }\n        bVar28 = uVar22 == 0;\n        bVar26 = false;\n        *puVar19 = uVar22;\n        lVar13 = 0x10;\n        pbVar18 = (byte *)".mips16.call.fp.";\n        pbVar20 = pbVar21;\n        do {\n          if (lVar13 == 0) break;\n          lVar13 = lVar13 + -1;\n          bVar26 = *pbVar18 < *pbVar20;\n          bVar28 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          pbVar20 = pbVar20 + (ulong)bVar29 * -2 + 1;\n        } while (bVar28);\n        puVar19 = (ulong *)(uVar15 + (long)(this->section_is_mips16_call_fp_stub_).\n                                           super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                           super__Bvector_impl_data._M_start.\n                                           super__Bit_iterator_base._M_p);\n        if ((!bVar26 && !bVar28) == bVar26) {\n          uVar10 = uVar10 | *puVar19;\n        }\n        else {\n          uVar10 = ~uVar10 & *puVar19;\n        }\n        bVar28 = uVar10 == 0;\n        bVar26 = false;\n        *puVar19 = uVar10;\n        lVar13 = 5;\n        pbVar18 = &DAT_0053357f;\n        do {\n          if (lVar13 == 0) break;\n          lVar13 = lVar13 + -1;\n          bVar26 = *pbVar21 < *pbVar18;\n          bVar28 = *pbVar21 == *pbVar18;\n          pbVar21 = pbVar21 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        } while (bVar28);\n        if ((!bVar26 && !bVar28) == bVar26) {\n          if (this->pdr_shndx_ != 0xffffffff) goto LAB_002d68ff;\n          this->pdr_shndx_ = (uint)uVar24;\n        }\n        uVar23 = (uint)uVar24 + 1;\n        uVar24 = (ulong)uVar23;\n        puVar16 = puVar17 + 10;\n        if ((this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.\n            super_Object.shnum_ <= uVar23) {\n          if (bVar5) {\n            return;\n          }\n          goto LAB_002d643d;\n        }\n        uVar23 = puVar17[0xb];\n      } while (uVar23 == 2);" do (compound_statement "{\n        puVar17 = puVar16;\n        if (0x10 < puVar16[5]) {\n          bVar5 = true;\n        }\nLAB_002d66e8:\n        lVar13 = 10;\n        bVar26 = CARRY8((ulong)*puVar17,(ulong)puVar6);\n        pbVar21 = puVar6 + *puVar17;\n        bVar28 = pbVar21 == (byte *)0x0;\n        pbVar18 = (byte *)".mips16.fn";\n        pbVar20 = pbVar21;\n        do {\n          if (lVar13 == 0) break;\n          lVar13 = lVar13 + -1;\n          bVar26 = *pbVar18 < *pbVar20;\n          bVar28 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          pbVar20 = pbVar20 + (ulong)bVar29 * -2 + 1;\n        } while (bVar28);\n        uVar15 = (ulong)((uint)(uVar24 >> 3) & 0x1ffffff8);\n        uVar10 = 1L << ((byte)uVar24 & 0x3f);\n        puVar19 = (ulong *)((long)(this->section_is_mips16_fn_stub_).\n                                  super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                  super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p +\n                           uVar15);\n        uVar22 = *puVar19;\n        bVar27 = false;\n        bVar26 = (!bVar26 && !bVar28) == bVar26;\n        uVar14 = uVar22 & ~uVar10;\n        if (bVar26) {\n          uVar14 = uVar22 | uVar10;\n        }\n        *puVar19 = uVar14;\n        lVar13 = 0xd;\n        pbVar18 = (byte *)".mips16.call.";\n        pbVar20 = pbVar21;\n        do {\n          if (lVar13 == 0) break;\n          lVar13 = lVar13 + -1;\n          bVar27 = *pbVar18 < *pbVar20;\n          bVar26 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          pbVar20 = pbVar20 + (ulong)bVar29 * -2 + 1;\n        } while (bVar26);\n        puVar19 = (ulong *)((long)(this->section_is_mips16_call_stub_).\n                                  super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                  super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p +\n                           uVar15);\n        if ((!bVar27 && !bVar26) == bVar27) {\n          uVar22 = *puVar19 | uVar10;\n        }\n        else {\n          uVar22 = ~uVar10 & *puVar19;\n        }\n        bVar28 = uVar22 == 0;\n        bVar26 = false;\n        *puVar19 = uVar22;\n        lVar13 = 0x10;\n        pbVar18 = (byte *)".mips16.call.fp.";\n        pbVar20 = pbVar21;\n        do {\n          if (lVar13 == 0) break;\n          lVar13 = lVar13 + -1;\n          bVar26 = *pbVar18 < *pbVar20;\n          bVar28 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          pbVar20 = pbVar20 + (ulong)bVar29 * -2 + 1;\n        } while (bVar28);\n        puVar19 = (ulong *)(uVar15 + (long)(this->section_is_mips16_call_fp_stub_).\n                                           super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                           super__Bvector_impl_data._M_start.\n                                           super__Bit_iterator_base._M_p);\n        if ((!bVar26 && !bVar28) == bVar26) {\n          uVar10 = uVar10 | *puVar19;\n        }\n        else {\n          uVar10 = ~uVar10 & *puVar19;\n        }\n        bVar28 = uVar10 == 0;\n        bVar26 = false;\n        *puVar19 = uVar10;\n        lVar13 = 5;\n        pbVar18 = &DAT_0053357f;\n        do {\n          if (lVar13 == 0) break;\n          lVar13 = lVar13 + -1;\n          bVar26 = *pbVar21 < *pbVar18;\n          bVar28 = *pbVar21 == *pbVar18;\n          pbVar21 = pbVar21 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        } while (bVar28);\n        if ((!bVar26 && !bVar28) == bVar26) {\n          if (this->pdr_shndx_ != 0xffffffff) goto LAB_002d68ff;\n          this->pdr_shndx_ = (uint)uVar24;\n        }\n        uVar23 = (uint)uVar24 + 1;\n        uVar24 = (ulong)uVar23;\n        puVar16 = puVar17 + 10;\n        if ((this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.\n            super_Object.shnum_ <= uVar23) {\n          if (bVar5) {\n            return;\n          }\n          goto LAB_002d643d;\n        }\n        uVar23 = puVar17[0xb];\n      }" { (expression_statement "puVar17 = puVar16;" (assignment_expression "puVar17 = puVar16" identifier = identifier) ;) (if_statement "if (0x10 < puVar16[5]) {\n          bVar5 = true;\n        }" if (parenthesized_expression "(0x10 < puVar16[5])" ( (binary_expression "0x10 < puVar16[5]" number_literal < (subscript_expression "puVar16[5]" identifier [ number_literal ])) )) (compound_statement "{\n          bVar5 = true;\n        }" { (expression_statement "bVar5 = true;" (assignment_expression "bVar5 = true" identifier = true) ;) })) (labeled_statement "LAB_002d66e8:\n        lVar13 = 10;" statement_identifier : (expression_statement "lVar13 = 10;" (assignment_expression "lVar13 = 10" identifier = number_literal) ;)) (expression_statement "bVar26 = CARRY8((ulong)*puVar17,(ulong)puVar6);" (assignment_expression "bVar26 = CARRY8((ulong)*puVar17,(ulong)puVar6)" identifier = (call_expression "CARRY8((ulong)*puVar17,(ulong)puVar6)" identifier (argument_list "((ulong)*puVar17,(ulong)puVar6)" ( (binary_expression "(ulong)*puVar17" (parenthesized_expression "(ulong)" ( identifier )) * identifier) , (cast_expression "(ulong)puVar6" ( (type_descriptor "ulong" type_identifier) ) identifier) )))) ;) (expression_statement "pbVar21 = puVar6 + *puVar17;" (assignment_expression "pbVar21 = puVar6 + *puVar17" identifier = (binary_expression "puVar6 + *puVar17" identifier + (pointer_expression "*puVar17" * identifier))) ;) (expression_statement "bVar28 = pbVar21 == (byte *)0x0;" (assignment_expression "bVar28 = 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 (lVar13 == 0) break;\n          lVar13 = lVar13 + -1;\n          bVar26 = *pbVar18 < *pbVar20;\n          bVar28 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          pbVar20 = pbVar20 + (ulong)bVar29 * -2 + 1;\n        } while (bVar28);" do (compound_statement "{\n          if (lVar13 == 0) break;\n          lVar13 = lVar13 + -1;\n          bVar26 = *pbVar18 < *pbVar20;\n          bVar28 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          pbVar20 = pbVar20 + (ulong)bVar29 * -2 + 1;\n        }" { (if_statement "if (lVar13 == 0) break;" if (parenthesized_expression "(lVar13 == 0)" ( (binary_expression "lVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar13 = lVar13 + -1;" (assignment_expression "lVar13 = lVar13 + -1" identifier = (binary_expression "lVar13 + -1" identifier + number_literal)) ;) (expression_statement "bVar26 = *pbVar18 < *pbVar20;" (assignment_expression "bVar26 = *pbVar18 < *pbVar20" identifier = (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar28 = *pbVar18 == *pbVar20;" (assignment_expression "bVar28 = *pbVar18 == *pbVar20" identifier = (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pbVar18 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar18 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pbVar20 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar20 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar28)" ( identifier )) ;) (expression_statement "uVar15 = (ulong)((uint)(uVar24 >> 3) & 0x1ffffff8);" (assignment_expression "uVar15 = (ulong)((uint)(uVar24 >> 3) & 0x1ffffff8)" identifier = (call_expression "(ulong)((uint)(uVar24 >> 3) & 0x1ffffff8)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((uint)(uVar24 >> 3) & 0x1ffffff8)" ( (binary_expression "(uint)(uVar24 >> 3) & 0x1ffffff8" (call_expression "(uint)(uVar24 >> 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar24 >> 3)" ( (binary_expression "uVar24 >> 3" identifier >> number_literal) ))) & number_literal) )))) ;) (expression_statement "uVar10 = 1L << ((byte)uVar24 & 0x3f);" (assignment_expression "uVar10 = 1L << ((byte)uVar24 & 0x3f)" identifier = (binary_expression "1L << ((byte)uVar24 & 0x3f)" number_literal << (parenthesized_expression "((byte)uVar24 & 0x3f)" ( (binary_expression "(byte)uVar24 & 0x3f" (cast_expression "(byte)uVar24" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "puVar19 = (ulong *)((long)(this->section_is_mips16_fn_stub_).\n                                  super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                  super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p +\n                           uVar15);" (assignment_expression "puVar19 = (ulong *)((long)(this->section_is_mips16_fn_stub_).\n                                  super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                  super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p +\n                           uVar15)" identifier = (cast_expression "(ulong *)((long)(this->section_is_mips16_fn_stub_).\n                                  super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                  super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p +\n                           uVar15)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)(this->section_is_mips16_fn_stub_).\n                                  super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                  super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p +\n                           uVar15)" ( (binary_expression "(long)(this->section_is_mips16_fn_stub_).\n                                  super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                  super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p +\n                           uVar15" (field_expression "(long)(this->section_is_mips16_fn_stub_).\n                                  super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                  super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p" (field_expression "(long)(this->section_is_mips16_fn_stub_).\n                                  super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                  super__Bvector_impl_data._M_start.super__Bit_iterator_base" (field_expression "(long)(this->section_is_mips16_fn_stub_).\n                                  super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                  super__Bvector_impl_data._M_start" (field_expression "(long)(this->section_is_mips16_fn_stub_).\n                                  super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                  super__Bvector_impl_data" (field_expression "(long)(this->section_is_mips16_fn_stub_).\n                                  super__Bvector_base<std::allocator<bool>_>._M_impl" (binary_expression "(long)(this->section_is_mips16_fn_stub_).\n                                  super__Bvector_base<std::allocator<bool>_" (binary_expression "(long)(this->section_is_mips16_fn_stub_).\n                                  super__Bvector_base<std::allocator<bool" (binary_expression "(long)(this->section_is_mips16_fn_stub_).\n                                  super__Bvector_base<std" (cast_expression "(long)(this->section_is_mips16_fn_stub_).\n                                  super__Bvector_base" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "(this->section_is_mips16_fn_stub_).\n                                  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 "uVar22 = *puVar19;" (assignment_expression "uVar22 = *puVar19" identifier = (pointer_expression "*puVar19" * identifier)) ;) (expression_statement "bVar27 = false;" (assignment_expression "bVar27 = false" identifier = false) ;) (expression_statement "bVar26 = (!bVar26 && !bVar28) == bVar26;" (assignment_expression "bVar26 = (!bVar26 && !bVar28) == bVar26" identifier = (binary_expression "(!bVar26 && !bVar28) == bVar26" (parenthesized_expression "(!bVar26 && !bVar28)" ( (binary_expression "!bVar26 && !bVar28" (unary_expression "!bVar26" ! identifier) && (unary_expression "!bVar28" ! identifier)) )) == identifier)) ;) (expression_statement "uVar14 = uVar22 & ~uVar10;" (assignment_expression "uVar14 = uVar22 & ~uVar10" identifier = (binary_expression "uVar22 & ~uVar10" identifier & (unary_expression "~uVar10" ~ identifier))) ;) (if_statement "if (bVar26) {\n          uVar14 = uVar22 | uVar10;\n        }" if (parenthesized_expression "(bVar26)" ( identifier )) (compound_statement "{\n          uVar14 = uVar22 | uVar10;\n        }" { (expression_statement "uVar14 = uVar22 | uVar10;" (assignment_expression "uVar14 = uVar22 | uVar10" identifier = (binary_expression "uVar22 | uVar10" identifier | identifier)) ;) })) (expression_statement "*puVar19 = uVar14;" (assignment_expression "*puVar19 = uVar14" (pointer_expression "*puVar19" * identifier) = identifier) ;) (expression_statement "lVar13 = 0xd;" (assignment_expression "lVar13 = 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 (lVar13 == 0) break;\n          lVar13 = lVar13 + -1;\n          bVar27 = *pbVar18 < *pbVar20;\n          bVar26 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          pbVar20 = pbVar20 + (ulong)bVar29 * -2 + 1;\n        } while (bVar26);" do (compound_statement "{\n          if (lVar13 == 0) break;\n          lVar13 = lVar13 + -1;\n          bVar27 = *pbVar18 < *pbVar20;\n          bVar26 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          pbVar20 = pbVar20 + (ulong)bVar29 * -2 + 1;\n        }" { (if_statement "if (lVar13 == 0) break;" if (parenthesized_expression "(lVar13 == 0)" ( (binary_expression "lVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar13 = lVar13 + -1;" (assignment_expression "lVar13 = lVar13 + -1" identifier = (binary_expression "lVar13 + -1" identifier + number_literal)) ;) (expression_statement "bVar27 = *pbVar18 < *pbVar20;" (assignment_expression "bVar27 = *pbVar18 < *pbVar20" identifier = (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar26 = *pbVar18 == *pbVar20;" (assignment_expression "bVar26 = *pbVar18 == *pbVar20" identifier = (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pbVar18 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar18 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pbVar20 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar20 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (expression_statement "puVar19 = (ulong *)((long)(this->section_is_mips16_call_stub_).\n                                  super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                  super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p +\n                           uVar15);" (assignment_expression "puVar19 = (ulong *)((long)(this->section_is_mips16_call_stub_).\n                                  super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                  super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p +\n                           uVar15)" identifier = (cast_expression "(ulong *)((long)(this->section_is_mips16_call_stub_).\n                                  super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                  super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p +\n                           uVar15)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)(this->section_is_mips16_call_stub_).\n                                  super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                  super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p +\n                           uVar15)" ( (binary_expression "(long)(this->section_is_mips16_call_stub_).\n                                  super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                  super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p +\n                           uVar15" (field_expression "(long)(this->section_is_mips16_call_stub_).\n                                  super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                  super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p" (field_expression "(long)(this->section_is_mips16_call_stub_).\n                                  super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                  super__Bvector_impl_data._M_start.super__Bit_iterator_base" (field_expression "(long)(this->section_is_mips16_call_stub_).\n                                  super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                  super__Bvector_impl_data._M_start" (field_expression "(long)(this->section_is_mips16_call_stub_).\n                                  super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                  super__Bvector_impl_data" (field_expression "(long)(this->section_is_mips16_call_stub_).\n                                  super__Bvector_base<std::allocator<bool>_>._M_impl" (binary_expression "(long)(this->section_is_mips16_call_stub_).\n                                  super__Bvector_base<std::allocator<bool>_" (binary_expression "(long)(this->section_is_mips16_call_stub_).\n                                  super__Bvector_base<std::allocator<bool" (binary_expression "(long)(this->section_is_mips16_call_stub_).\n                                  super__Bvector_base<std" (cast_expression "(long)(this->section_is_mips16_call_stub_).\n                                  super__Bvector_base" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "(this->section_is_mips16_call_stub_).\n                                  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 ((!bVar27 && !bVar26) == bVar27) {\n          uVar22 = *puVar19 | uVar10;\n        }\n        else {\n          uVar22 = ~uVar10 & *puVar19;\n        }" if (parenthesized_expression "((!bVar27 && !bVar26) == bVar27)" ( (binary_expression "(!bVar27 && !bVar26) == bVar27" (parenthesized_expression "(!bVar27 && !bVar26)" ( (binary_expression "!bVar27 && !bVar26" (unary_expression "!bVar27" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier) )) (compound_statement "{\n          uVar22 = *puVar19 | uVar10;\n        }" { (expression_statement "uVar22 = *puVar19 | uVar10;" (assignment_expression "uVar22 = *puVar19 | uVar10" identifier = (binary_expression "*puVar19 | uVar10" (pointer_expression "*puVar19" * identifier) | identifier)) ;) }) (else_clause "else {\n          uVar22 = ~uVar10 & *puVar19;\n        }" else (compound_statement "{\n          uVar22 = ~uVar10 & *puVar19;\n        }" { (expression_statement "uVar22 = ~uVar10 & *puVar19;" (assignment_expression "uVar22 = ~uVar10 & *puVar19" identifier = (binary_expression "~uVar10 & *puVar19" (unary_expression "~uVar10" ~ identifier) & (pointer_expression "*puVar19" * identifier))) ;) }))) (expression_statement "bVar28 = uVar22 == 0;" (assignment_expression "bVar28 = uVar22 == 0" identifier = (binary_expression "uVar22 == 0" identifier == number_literal)) ;) (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" identifier = false) ;) (expression_statement "*puVar19 = uVar22;" (assignment_expression "*puVar19 = uVar22" (pointer_expression "*puVar19" * identifier) = identifier) ;) (expression_statement "lVar13 = 0x10;" (assignment_expression "lVar13 = 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 (lVar13 == 0) break;\n          lVar13 = lVar13 + -1;\n          bVar26 = *pbVar18 < *pbVar20;\n          bVar28 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          pbVar20 = pbVar20 + (ulong)bVar29 * -2 + 1;\n        } while (bVar28);" do (compound_statement "{\n          if (lVar13 == 0) break;\n          lVar13 = lVar13 + -1;\n          bVar26 = *pbVar18 < *pbVar20;\n          bVar28 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n          pbVar20 = pbVar20 + (ulong)bVar29 * -2 + 1;\n        }" { (if_statement "if (lVar13 == 0) break;" if (parenthesized_expression "(lVar13 == 0)" ( (binary_expression "lVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar13 = lVar13 + -1;" (assignment_expression "lVar13 = lVar13 + -1" identifier = (binary_expression "lVar13 + -1" identifier + number_literal)) ;) (expression_statement "bVar26 = *pbVar18 < *pbVar20;" (assignment_expression "bVar26 = *pbVar18 < *pbVar20" identifier = (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar28 = *pbVar18 == *pbVar20;" (assignment_expression "bVar28 = *pbVar18 == *pbVar20" identifier = (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pbVar18 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar18 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pbVar20 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar20 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar28)" ( identifier )) ;) (expression_statement "puVar19 = (ulong *)(uVar15 + (long)(this->section_is_mips16_call_fp_stub_).\n                                           super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                           super__Bvector_impl_data._M_start.\n                                           super__Bit_iterator_base._M_p);" (assignment_expression "puVar19 = (ulong *)(uVar15 + (long)(this->section_is_mips16_call_fp_stub_).\n                                           super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                           super__Bvector_impl_data._M_start.\n                                           super__Bit_iterator_base._M_p)" identifier = (cast_expression "(ulong *)(uVar15 + (long)(this->section_is_mips16_call_fp_stub_).\n                                           super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                           super__Bvector_impl_data._M_start.\n                                           super__Bit_iterator_base._M_p)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar15 + (long)(this->section_is_mips16_call_fp_stub_).\n                                           super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                           super__Bvector_impl_data._M_start.\n                                           super__Bit_iterator_base._M_p)" ( (field_expression "uVar15 + (long)(this->section_is_mips16_call_fp_stub_).\n                                           super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                           super__Bvector_impl_data._M_start.\n                                           super__Bit_iterator_base._M_p" (field_expression "uVar15 + (long)(this->section_is_mips16_call_fp_stub_).\n                                           super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                           super__Bvector_impl_data._M_start.\n                                           super__Bit_iterator_base" (field_expression "uVar15 + (long)(this->section_is_mips16_call_fp_stub_).\n                                           super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                           super__Bvector_impl_data._M_start" (field_expression "uVar15 + (long)(this->section_is_mips16_call_fp_stub_).\n                                           super__Bvector_base<std::allocator<bool>_>._M_impl.\n                                           super__Bvector_impl_data" (field_expression "uVar15 + (long)(this->section_is_mips16_call_fp_stub_).\n                                           super__Bvector_base<std::allocator<bool>_>._M_impl" (binary_expression "uVar15 + (long)(this->section_is_mips16_call_fp_stub_).\n                                           super__Bvector_base<std::allocator<bool>_" (binary_expression "uVar15 + (long)(this->section_is_mips16_call_fp_stub_).\n                                           super__Bvector_base<std::allocator<bool" (binary_expression "uVar15 + (long)(this->section_is_mips16_call_fp_stub_).\n                                           super__Bvector_base<std" (binary_expression "uVar15 + (long)(this->section_is_mips16_call_fp_stub_).\n                                           super__Bvector_base" identifier + (cast_expression "(long)(this->section_is_mips16_call_fp_stub_).\n                                           super__Bvector_base" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "(this->section_is_mips16_call_fp_stub_).\n                                           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) )))) ;) (if_statement "if ((!bVar26 && !bVar28) == bVar26) {\n          uVar10 = uVar10 | *puVar19;\n        }\n        else {\n          uVar10 = ~uVar10 & *puVar19;\n        }" if (parenthesized_expression "((!bVar26 && !bVar28) == bVar26)" ( (binary_expression "(!bVar26 && !bVar28) == bVar26" (parenthesized_expression "(!bVar26 && !bVar28)" ( (binary_expression "!bVar26 && !bVar28" (unary_expression "!bVar26" ! identifier) && (unary_expression "!bVar28" ! identifier)) )) == identifier) )) (compound_statement "{\n          uVar10 = uVar10 | *puVar19;\n        }" { (expression_statement "uVar10 = uVar10 | *puVar19;" (assignment_expression "uVar10 = uVar10 | *puVar19" identifier = (binary_expression "uVar10 | *puVar19" identifier | (pointer_expression "*puVar19" * identifier))) ;) }) (else_clause "else {\n          uVar10 = ~uVar10 & *puVar19;\n        }" else (compound_statement "{\n          uVar10 = ~uVar10 & *puVar19;\n        }" { (expression_statement "uVar10 = ~uVar10 & *puVar19;" (assignment_expression "uVar10 = ~uVar10 & *puVar19" identifier = (binary_expression "~uVar10 & *puVar19" (unary_expression "~uVar10" ~ identifier) & (pointer_expression "*puVar19" * identifier))) ;) }))) (expression_statement "bVar28 = uVar10 == 0;" (assignment_expression "bVar28 = uVar10 == 0" identifier = (binary_expression "uVar10 == 0" identifier == number_literal)) ;) (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" identifier = false) ;) (expression_statement "*puVar19 = uVar10;" (assignment_expression "*puVar19 = uVar10" (pointer_expression "*puVar19" * identifier) = identifier) ;) (expression_statement "lVar13 = 5;" (assignment_expression "lVar13 = 5" identifier = number_literal) ;) (expression_statement "pbVar18 = &DAT_0053357f;" (assignment_expression "pbVar18 = &DAT_0053357f" identifier = (pointer_expression "&DAT_0053357f" & identifier)) ;) (do_statement "do {\n          if (lVar13 == 0) break;\n          lVar13 = lVar13 + -1;\n          bVar26 = *pbVar21 < *pbVar18;\n          bVar28 = *pbVar21 == *pbVar18;\n          pbVar21 = pbVar21 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        } while (bVar28);" do (compound_statement "{\n          if (lVar13 == 0) break;\n          lVar13 = lVar13 + -1;\n          bVar26 = *pbVar21 < *pbVar18;\n          bVar28 = *pbVar21 == *pbVar18;\n          pbVar21 = pbVar21 + (ulong)bVar29 * -2 + 1;\n          pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;\n        }" { (if_statement "if (lVar13 == 0) break;" if (parenthesized_expression "(lVar13 == 0)" ( (binary_expression "lVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar13 = lVar13 + -1;" (assignment_expression "lVar13 = lVar13 + -1" identifier = (binary_expression "lVar13 + -1" identifier + number_literal)) ;) (expression_statement "bVar26 = *pbVar21 < *pbVar18;" (assignment_expression "bVar26 = *pbVar21 < *pbVar18" identifier = (binary_expression "*pbVar21 < *pbVar18" (pointer_expression "*pbVar21" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "bVar28 = *pbVar21 == *pbVar18;" (assignment_expression "bVar28 = *pbVar21 == *pbVar18" identifier = (binary_expression "*pbVar21 == *pbVar18" (pointer_expression "*pbVar21" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar21 = pbVar21 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pbVar21 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar21 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (ulong)bVar29 * -2 + 1" identifier = (binary_expression "pbVar18 + (ulong)bVar29 * -2 + 1" (binary_expression "pbVar18 + (ulong)bVar29 * -2" identifier + (binary_expression "(ulong)bVar29 * -2" (cast_expression "(ulong)bVar29" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar28)" ( identifier )) ;) (if_statement "if ((!bVar26 && !bVar28) == bVar26) {\n          if (this->pdr_shndx_ != 0xffffffff) goto LAB_002d68ff;\n          this->pdr_shndx_ = (uint)uVar24;\n        }" if (parenthesized_expression "((!bVar26 && !bVar28) == bVar26)" ( (binary_expression "(!bVar26 && !bVar28) == bVar26" (parenthesized_expression "(!bVar26 && !bVar28)" ( (binary_expression "!bVar26 && !bVar28" (unary_expression "!bVar26" ! identifier) && (unary_expression "!bVar28" ! identifier)) )) == identifier) )) (compound_statement "{\n          if (this->pdr_shndx_ != 0xffffffff) goto LAB_002d68ff;\n          this->pdr_shndx_ = (uint)uVar24;\n        }" { (if_statement "if (this->pdr_shndx_ != 0xffffffff) goto LAB_002d68ff;" if (parenthesized_expression "(this->pdr_shndx_ != 0xffffffff)" ( (binary_expression "this->pdr_shndx_ != 0xffffffff" (field_expression "this->pdr_shndx_" identifier -> field_identifier) != number_literal) )) (goto_statement "goto LAB_002d68ff;" goto statement_identifier ;)) (expression_statement "this->pdr_shndx_ = (uint)uVar24;" (assignment_expression "this->pdr_shndx_ = (uint)uVar24" (field_expression "this->pdr_shndx_" identifier -> field_identifier) = (cast_expression "(uint)uVar24" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) })) (expression_statement "uVar23 = (uint)uVar24 + 1;" (assignment_expression "uVar23 = (uint)uVar24 + 1" identifier = (binary_expression "(uint)uVar24 + 1" (cast_expression "(uint)uVar24" ( (type_descriptor "uint" type_identifier) ) identifier) + number_literal)) ;) (expression_statement "uVar24 = (ulong)uVar23;" (assignment_expression "uVar24 = (ulong)uVar23" identifier = (cast_expression "(ulong)uVar23" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "puVar16 = puVar17 + 10;" (assignment_expression "puVar16 = puVar17 + 10" identifier = (binary_expression "puVar17 + 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_ <= uVar23) {\n          if (bVar5) {\n            return;\n          }\n          goto LAB_002d643d;\n        }" if (parenthesized_expression "((this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.\n            super_Object.shnum_ <= uVar23)" ( (comma_expression "(this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.super_Relobj.\n            super_Object.shnum_ <= uVar23" (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_ <= uVar23" (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 (bVar5) {\n            return;\n          }\n          goto LAB_002d643d;\n        }" { (if_statement "if (bVar5) {\n            return;\n          }" if (parenthesized_expression "(bVar5)" ( identifier )) (compound_statement "{\n            return;\n          }" { (return_statement "return;" return ;) })) (goto_statement "goto LAB_002d643d;" goto statement_identifier ;) })) (expression_statement "uVar23 = puVar17[0xb];" (assignment_expression "uVar23 = puVar17[0xb]" identifier = (subscript_expression "puVar17[0xb]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(uVar23 == 2)" ( (binary_expression "uVar23 == 2" identifier == number_literal) )) ;) (labeled_statement "LAB_002d6581:\n      puVar17 = puVar16;" statement_identifier : (expression_statement "puVar17 = puVar16;" (assignment_expression "puVar17 = puVar16" identifier = identifier) ;)) (if_statement "if (uVar23 != 3) {\n        if (uVar23 == 0x70000006) {\n          this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                    super_Relobj.super_Object.input_file_;\n          this->field_0x36c = this->field_0x36c | 4;\n          if (this_01 == (Input_file *)0x0) goto LAB_002d68fa;\n          pVVar11 = (Valtype *)\n                    gold::File_read::get_view\n                              (&this_01->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (ulong)puVar16[4],(ulong)puVar16[5],true,false);\n          this->gp_ = pVVar11[5];\n          this->gprmask_ = *pVVar11;\n          this->cprmask1_ = pVVar11[1];\n          this->cprmask2_ = pVVar11[2];\n          this->cprmask3_ = pVVar11[3];\n          this->cprmask4_ = pVVar11[4];\n          uVar23 = puVar16[1];\n        }\n        if (uVar23 == 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          this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                    super_Relobj.super_Object.input_file_;\n          uVar23 = puVar16[5];\n          if (this_01 == (Input_file *)0x0) goto LAB_002d68fa;\n          puVar7 = gold::File_read::get_view\n                             (&this_01->file_,\n                              (this->super_Sized_relobj_file<32,_false>).\n                              super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                              (ulong)puVar16[4],(ulong)uVar23,true,false);\n          this_00 = (Attributes_section_data *)operator_new(0x10);\n                    /* try { // try from 002d65fc to 002d6600 has its CatchHandler @ 002d695f */\n          gold::Attributes_section_data::Attributes_section_data(this_00,puVar7,(ulong)uVar23);\n          this->attributes_section_data_ = this_00;\n          uVar23 = puVar16[1];\n        }\n        if (uVar23 == 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          this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                    super_Relobj.super_Object.input_file_;\n          if (this_01 == (Input_file *)0x0) goto LAB_002d68fa;\n          puVar8 = (ushort *)\n                   gold::File_read::get_view\n                             (&this_01->file_,\n                              (this->super_Sized_relobj_file<32,_false>).\n                              super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                              (ulong)puVar16[4],(ulong)puVar16[5],true,false);\n          pMVar9 = (Mips_abiflags<false> *)operator_new(0x18);\n          pMVar9->version = 0;\n          pMVar9->isa_level = '\0';\n          pMVar9->isa_rev = '\0';\n          pMVar9->gpr_size = '\0';\n          pMVar9->cpr1_size = '\0';\n          pMVar9->cpr2_size = '\0';\n          pMVar9->fp_abi = '\0';\n          uVar2 = *puVar8;\n          pMVar9->isa_ext = 0;\n          pMVar9->ases = 0;\n          pMVar9->flags1 = 0;\n          pMVar9->flags2 = 0;\n          this->abiflags_ = pMVar9;\n          pMVar9->version = uVar2;\n          if (uVar2 != 0) {\n            pcVar4 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                     super_Relobj.super_Object.name_._M_dataplus._M_p;\n            pcVar25 = (char *)gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            gold::gold_error(pcVar25,pcVar4,(ulong)uVar2);\n            return;\n          }\n          pMVar9->isa_level = (Valtype8)puVar8[1];\n          pMVar9->isa_rev = *(Valtype8 *)((long)puVar8 + 3);\n          pMVar9->gpr_size = (Valtype8)puVar8[2];\n          pMVar9->cpr1_size = *(Valtype8 *)((long)puVar8 + 5);\n          pMVar9->cpr2_size = (Valtype8)puVar8[3];\n          pMVar9->fp_abi = *(Valtype8 *)((long)puVar8 + 7);\n          pMVar9->isa_ext = *(Valtype32 *)(puVar8 + 4);\n          pMVar9->ases = *(Valtype32 *)(puVar8 + 6);\n          pMVar9->flags1 = *(Valtype32 *)(puVar8 + 8);\n          pMVar9->flags2 = *(Valtype32 *)(puVar8 + 10);\n          uVar23 = puVar16[1];\n        }\n        if (uVar23 == 0x7000000d) {\n          this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                    super_Relobj.super_Object.input_file_;\n          uVar23 = puVar16[5];\n          if (this_01 == (Input_file *)0x0) goto LAB_002d68fa;\n          puVar12 = gold::File_read::get_view\n                              (&this_01->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (ulong)puVar16[4],(ulong)uVar23,true,false);\n          puVar7 = puVar12 + uVar23;\n          for (; puVar12 + 8 <= puVar7; puVar12 = puVar12 + bVar1) {\n            bVar1 = puVar12[1];\n            if (bVar1 < 8) {\n              pcVar4 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                       super_Relobj.super_Object.name_._M_dataplus._M_p;\n              pcVar25 = ".MIPS.options";\n              if ((this->field_0x36c & 2) == 0) {\n                pcVar25 = ".options";\n              }\n              format = (char *)gettext(\n                                      "%s: Warning: bad `%s\' option size %u smaller than its header"\n                                      );\n              gold::gold_error(format,pcVar4,pcVar25,(ulong)bVar1);\n              break;\n            }\n            if (*puVar12 == '\x01') {\n              this->gp_ = *(Mips_address *)(puVar12 + 0x1c);\n            }\n          }\n        }\n        bVar5 = true;\n      }" if (parenthesized_expression "(uVar23 != 3)" ( (binary_expression "uVar23 != 3" identifier != number_literal) )) (compound_statement "{\n        if (uVar23 == 0x70000006) {\n          this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                    super_Relobj.super_Object.input_file_;\n          this->field_0x36c = this->field_0x36c | 4;\n          if (this_01 == (Input_file *)0x0) goto LAB_002d68fa;\n          pVVar11 = (Valtype *)\n                    gold::File_read::get_view\n                              (&this_01->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (ulong)puVar16[4],(ulong)puVar16[5],true,false);\n          this->gp_ = pVVar11[5];\n          this->gprmask_ = *pVVar11;\n          this->cprmask1_ = pVVar11[1];\n          this->cprmask2_ = pVVar11[2];\n          this->cprmask3_ = pVVar11[3];\n          this->cprmask4_ = pVVar11[4];\n          uVar23 = puVar16[1];\n        }\n        if (uVar23 == 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          this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                    super_Relobj.super_Object.input_file_;\n          uVar23 = puVar16[5];\n          if (this_01 == (Input_file *)0x0) goto LAB_002d68fa;\n          puVar7 = gold::File_read::get_view\n                             (&this_01->file_,\n                              (this->super_Sized_relobj_file<32,_false>).\n                              super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                              (ulong)puVar16[4],(ulong)uVar23,true,false);\n          this_00 = (Attributes_section_data *)operator_new(0x10);\n                    /* try { // try from 002d65fc to 002d6600 has its CatchHandler @ 002d695f */\n          gold::Attributes_section_data::Attributes_section_data(this_00,puVar7,(ulong)uVar23);\n          this->attributes_section_data_ = this_00;\n          uVar23 = puVar16[1];\n        }\n        if (uVar23 == 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          this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                    super_Relobj.super_Object.input_file_;\n          if (this_01 == (Input_file *)0x0) goto LAB_002d68fa;\n          puVar8 = (ushort *)\n                   gold::File_read::get_view\n                             (&this_01->file_,\n                              (this->super_Sized_relobj_file<32,_false>).\n                              super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                              (ulong)puVar16[4],(ulong)puVar16[5],true,false);\n          pMVar9 = (Mips_abiflags<false> *)operator_new(0x18);\n          pMVar9->version = 0;\n          pMVar9->isa_level = '\0';\n          pMVar9->isa_rev = '\0';\n          pMVar9->gpr_size = '\0';\n          pMVar9->cpr1_size = '\0';\n          pMVar9->cpr2_size = '\0';\n          pMVar9->fp_abi = '\0';\n          uVar2 = *puVar8;\n          pMVar9->isa_ext = 0;\n          pMVar9->ases = 0;\n          pMVar9->flags1 = 0;\n          pMVar9->flags2 = 0;\n          this->abiflags_ = pMVar9;\n          pMVar9->version = uVar2;\n          if (uVar2 != 0) {\n            pcVar4 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                     super_Relobj.super_Object.name_._M_dataplus._M_p;\n            pcVar25 = (char *)gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            gold::gold_error(pcVar25,pcVar4,(ulong)uVar2);\n            return;\n          }\n          pMVar9->isa_level = (Valtype8)puVar8[1];\n          pMVar9->isa_rev = *(Valtype8 *)((long)puVar8 + 3);\n          pMVar9->gpr_size = (Valtype8)puVar8[2];\n          pMVar9->cpr1_size = *(Valtype8 *)((long)puVar8 + 5);\n          pMVar9->cpr2_size = (Valtype8)puVar8[3];\n          pMVar9->fp_abi = *(Valtype8 *)((long)puVar8 + 7);\n          pMVar9->isa_ext = *(Valtype32 *)(puVar8 + 4);\n          pMVar9->ases = *(Valtype32 *)(puVar8 + 6);\n          pMVar9->flags1 = *(Valtype32 *)(puVar8 + 8);\n          pMVar9->flags2 = *(Valtype32 *)(puVar8 + 10);\n          uVar23 = puVar16[1];\n        }\n        if (uVar23 == 0x7000000d) {\n          this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                    super_Relobj.super_Object.input_file_;\n          uVar23 = puVar16[5];\n          if (this_01 == (Input_file *)0x0) goto LAB_002d68fa;\n          puVar12 = gold::File_read::get_view\n                              (&this_01->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (ulong)puVar16[4],(ulong)uVar23,true,false);\n          puVar7 = puVar12 + uVar23;\n          for (; puVar12 + 8 <= puVar7; puVar12 = puVar12 + bVar1) {\n            bVar1 = puVar12[1];\n            if (bVar1 < 8) {\n              pcVar4 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                       super_Relobj.super_Object.name_._M_dataplus._M_p;\n              pcVar25 = ".MIPS.options";\n              if ((this->field_0x36c & 2) == 0) {\n                pcVar25 = ".options";\n              }\n              format = (char *)gettext(\n                                      "%s: Warning: bad `%s\' option size %u smaller than its header"\n                                      );\n              gold::gold_error(format,pcVar4,pcVar25,(ulong)bVar1);\n              break;\n            }\n            if (*puVar12 == '\x01') {\n              this->gp_ = *(Mips_address *)(puVar12 + 0x1c);\n            }\n          }\n        }\n        bVar5 = true;\n      }" { (if_statement "if (uVar23 == 0x70000006) {\n          this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                    super_Relobj.super_Object.input_file_;\n          this->field_0x36c = this->field_0x36c | 4;\n          if (this_01 == (Input_file *)0x0) goto LAB_002d68fa;\n          pVVar11 = (Valtype *)\n                    gold::File_read::get_view\n                              (&this_01->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (ulong)puVar16[4],(ulong)puVar16[5],true,false);\n          this->gp_ = pVVar11[5];\n          this->gprmask_ = *pVVar11;\n          this->cprmask1_ = pVVar11[1];\n          this->cprmask2_ = pVVar11[2];\n          this->cprmask3_ = pVVar11[3];\n          this->cprmask4_ = pVVar11[4];\n          uVar23 = puVar16[1];\n        }" if (parenthesized_expression "(uVar23 == 0x70000006)" ( (binary_expression "uVar23 == 0x70000006" identifier == number_literal) )) (compound_statement "{\n          this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                    super_Relobj.super_Object.input_file_;\n          this->field_0x36c = this->field_0x36c | 4;\n          if (this_01 == (Input_file *)0x0) goto LAB_002d68fa;\n          pVVar11 = (Valtype *)\n                    gold::File_read::get_view\n                              (&this_01->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (ulong)puVar16[4],(ulong)puVar16[5],true,false);\n          this->gp_ = pVVar11[5];\n          this->gprmask_ = *pVVar11;\n          this->cprmask1_ = pVVar11[1];\n          this->cprmask2_ = pVVar11[2];\n          this->cprmask3_ = pVVar11[3];\n          this->cprmask4_ = pVVar11[4];\n          uVar23 = puVar16[1];\n        }" { (expression_statement "this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                    super_Relobj.super_Object.input_file_;" (comma_expression "this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                    super_Relobj.super_Object.input_file_" (assignment_expression "this_01 = (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)) ;) (expression_statement "this->field_0x36c = this->field_0x36c | 4;" (assignment_expression "this->field_0x36c = this->field_0x36c | 4" (field_expression "this->field_0x36c" identifier -> field_identifier) = (binary_expression "this->field_0x36c | 4" (field_expression "this->field_0x36c" identifier -> field_identifier) | number_literal)) ;) (if_statement "if (this_01 == (Input_file *)0x0) goto LAB_002d68fa;" if (parenthesized_expression "(this_01 == (Input_file *)0x0)" ( (binary_expression "this_01 == (Input_file *)0x0" identifier == (cast_expression "(Input_file *)0x0" ( (type_descriptor "Input_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_002d68fa;" goto statement_identifier ;)) (ERROR "pVVar11 = (Valtype *)\n                    gold::" (assignment_expression "pVVar11 = (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                              (&this_01->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (ulong)puVar16[4],(ulong)puVar16[5],true,false);" statement_identifier : (ERROR ":" :) (expression_statement "get_view\n                              (&this_01->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (ulong)puVar16[4],(ulong)puVar16[5],true,false);" (call_expression "get_view\n                              (&this_01->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (ulong)puVar16[4],(ulong)puVar16[5],true,false)" identifier (argument_list "(&this_01->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (ulong)puVar16[4],(ulong)puVar16[5],true,false)" ( (pointer_expression "&this_01->file_" & (field_expression "this_01->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 "(ulong)puVar16[4]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "puVar16[4]" identifier [ number_literal ])) , (cast_expression "(ulong)puVar16[5]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "puVar16[5]" identifier [ number_literal ])) , true , false ))) ;)) (expression_statement "this->gp_ = pVVar11[5];" (assignment_expression "this->gp_ = pVVar11[5]" (field_expression "this->gp_" identifier -> field_identifier) = (subscript_expression "pVVar11[5]" identifier [ number_literal ])) ;) (expression_statement "this->gprmask_ = *pVVar11;" (assignment_expression "this->gprmask_ = *pVVar11" (field_expression "this->gprmask_" identifier -> field_identifier) = (pointer_expression "*pVVar11" * identifier)) ;) (expression_statement "this->cprmask1_ = pVVar11[1];" (assignment_expression "this->cprmask1_ = pVVar11[1]" (field_expression "this->cprmask1_" identifier -> field_identifier) = (subscript_expression "pVVar11[1]" identifier [ number_literal ])) ;) (expression_statement "this->cprmask2_ = pVVar11[2];" (assignment_expression "this->cprmask2_ = pVVar11[2]" (field_expression "this->cprmask2_" identifier -> field_identifier) = (subscript_expression "pVVar11[2]" identifier [ number_literal ])) ;) (expression_statement "this->cprmask3_ = pVVar11[3];" (assignment_expression "this->cprmask3_ = pVVar11[3]" (field_expression "this->cprmask3_" identifier -> field_identifier) = (subscript_expression "pVVar11[3]" identifier [ number_literal ])) ;) (expression_statement "this->cprmask4_ = pVVar11[4];" (assignment_expression "this->cprmask4_ = pVVar11[4]" (field_expression "this->cprmask4_" identifier -> field_identifier) = (subscript_expression "pVVar11[4]" identifier [ number_literal ])) ;) (expression_statement "uVar23 = puVar16[1];" (assignment_expression "uVar23 = puVar16[1]" identifier = (subscript_expression "puVar16[1]" identifier [ number_literal ])) ;) })) (if_statement "if (uVar23 == 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          this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                    super_Relobj.super_Object.input_file_;\n          uVar23 = puVar16[5];\n          if (this_01 == (Input_file *)0x0) goto LAB_002d68fa;\n          puVar7 = gold::File_read::get_view\n                             (&this_01->file_,\n                              (this->super_Sized_relobj_file<32,_false>).\n                              super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                              (ulong)puVar16[4],(ulong)uVar23,true,false);\n          this_00 = (Attributes_section_data *)operator_new(0x10);\n                    /* try { // try from 002d65fc to 002d6600 has its CatchHandler @ 002d695f */\n          gold::Attributes_section_data::Attributes_section_data(this_00,puVar7,(ulong)uVar23);\n          this->attributes_section_data_ = this_00;\n          uVar23 = puVar16[1];\n        }" if (parenthesized_expression "(uVar23 == 0x6ffffff5)" ( (binary_expression "uVar23 == 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          this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                    super_Relobj.super_Object.input_file_;\n          uVar23 = puVar16[5];\n          if (this_01 == (Input_file *)0x0) goto LAB_002d68fa;\n          puVar7 = gold::File_read::get_view\n                             (&this_01->file_,\n                              (this->super_Sized_relobj_file<32,_false>).\n                              super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                              (ulong)puVar16[4],(ulong)uVar23,true,false);\n          this_00 = (Attributes_section_data *)operator_new(0x10);\n                    /* try { // try from 002d65fc to 002d6600 has its CatchHandler @ 002d695f */\n          gold::Attributes_section_data::Attributes_section_data(this_00,puVar7,(ulong)uVar23);\n          this->attributes_section_data_ = this_00;\n          uVar23 = puVar16[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 "this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                    super_Relobj.super_Object.input_file_;" (comma_expression "this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                    super_Relobj.super_Object.input_file_" (assignment_expression "this_01 = (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)) ;) (expression_statement "uVar23 = puVar16[5];" (assignment_expression "uVar23 = puVar16[5]" identifier = (subscript_expression "puVar16[5]" identifier [ number_literal ])) ;) (if_statement "if (this_01 == (Input_file *)0x0) goto LAB_002d68fa;" if (parenthesized_expression "(this_01 == (Input_file *)0x0)" ( (binary_expression "this_01 == (Input_file *)0x0" identifier == (cast_expression "(Input_file *)0x0" ( (type_descriptor "Input_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_002d68fa;" goto statement_identifier ;)) (ERROR "puVar7 = gold::" (assignment_expression "puVar7 = gold" identifier = identifier) : :) (labeled_statement "File_read::get_view\n                             (&this_01->file_,\n                              (this->super_Sized_relobj_file<32,_false>).\n                              super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                              (ulong)puVar16[4],(ulong)uVar23,true,false);" statement_identifier : (ERROR ":" :) (expression_statement "get_view\n                             (&this_01->file_,\n                              (this->super_Sized_relobj_file<32,_false>).\n                              super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                              (ulong)puVar16[4],(ulong)uVar23,true,false);" (call_expression "get_view\n                             (&this_01->file_,\n                              (this->super_Sized_relobj_file<32,_false>).\n                              super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                              (ulong)puVar16[4],(ulong)uVar23,true,false)" identifier (argument_list "(&this_01->file_,\n                              (this->super_Sized_relobj_file<32,_false>).\n                              super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                              (ulong)puVar16[4],(ulong)uVar23,true,false)" ( (pointer_expression "&this_01->file_" & (field_expression "this_01->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 "(ulong)puVar16[4]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "puVar16[4]" identifier [ number_literal ])) , (cast_expression "(ulong)uVar23" ( (type_descriptor "ulong" type_identifier) ) identifier) , true , false ))) ;)) (expression_statement "this_00 = (Attributes_section_data *)operator_new(0x10);" (assignment_expression "this_00 = (Attributes_section_data *)operator_new(0x10)" identifier = (cast_expression "(Attributes_section_data *)operator_new(0x10)" ( (type_descriptor "Attributes_section_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x10)" identifier (argument_list "(0x10)" ( number_literal ))))) ;) comment (labeled_statement "gold::Attributes_section_data::Attributes_section_data(this_00,puVar7,(ulong)uVar23);" statement_identifier : (ERROR ":" :) (labeled_statement "Attributes_section_data::Attributes_section_data(this_00,puVar7,(ulong)uVar23);" statement_identifier : (ERROR ":" :) (expression_statement "Attributes_section_data(this_00,puVar7,(ulong)uVar23);" (call_expression "Attributes_section_data(this_00,puVar7,(ulong)uVar23)" identifier (argument_list "(this_00,puVar7,(ulong)uVar23)" ( identifier , identifier , (cast_expression "(ulong)uVar23" ( (type_descriptor "ulong" type_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 "uVar23 = puVar16[1];" (assignment_expression "uVar23 = puVar16[1]" identifier = (subscript_expression "puVar16[1]" identifier [ number_literal ])) ;) })) (if_statement "if (uVar23 == 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          this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                    super_Relobj.super_Object.input_file_;\n          if (this_01 == (Input_file *)0x0) goto LAB_002d68fa;\n          puVar8 = (ushort *)\n                   gold::File_read::get_view\n                             (&this_01->file_,\n                              (this->super_Sized_relobj_file<32,_false>).\n                              super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                              (ulong)puVar16[4],(ulong)puVar16[5],true,false);\n          pMVar9 = (Mips_abiflags<false> *)operator_new(0x18);\n          pMVar9->version = 0;\n          pMVar9->isa_level = '\0';\n          pMVar9->isa_rev = '\0';\n          pMVar9->gpr_size = '\0';\n          pMVar9->cpr1_size = '\0';\n          pMVar9->cpr2_size = '\0';\n          pMVar9->fp_abi = '\0';\n          uVar2 = *puVar8;\n          pMVar9->isa_ext = 0;\n          pMVar9->ases = 0;\n          pMVar9->flags1 = 0;\n          pMVar9->flags2 = 0;\n          this->abiflags_ = pMVar9;\n          pMVar9->version = uVar2;\n          if (uVar2 != 0) {\n            pcVar4 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                     super_Relobj.super_Object.name_._M_dataplus._M_p;\n            pcVar25 = (char *)gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            gold::gold_error(pcVar25,pcVar4,(ulong)uVar2);\n            return;\n          }\n          pMVar9->isa_level = (Valtype8)puVar8[1];\n          pMVar9->isa_rev = *(Valtype8 *)((long)puVar8 + 3);\n          pMVar9->gpr_size = (Valtype8)puVar8[2];\n          pMVar9->cpr1_size = *(Valtype8 *)((long)puVar8 + 5);\n          pMVar9->cpr2_size = (Valtype8)puVar8[3];\n          pMVar9->fp_abi = *(Valtype8 *)((long)puVar8 + 7);\n          pMVar9->isa_ext = *(Valtype32 *)(puVar8 + 4);\n          pMVar9->ases = *(Valtype32 *)(puVar8 + 6);\n          pMVar9->flags1 = *(Valtype32 *)(puVar8 + 8);\n          pMVar9->flags2 = *(Valtype32 *)(puVar8 + 10);\n          uVar23 = puVar16[1];\n        }" if (parenthesized_expression "(uVar23 == 0x7000002a)" ( (binary_expression "uVar23 == 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          this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                    super_Relobj.super_Object.input_file_;\n          if (this_01 == (Input_file *)0x0) goto LAB_002d68fa;\n          puVar8 = (ushort *)\n                   gold::File_read::get_view\n                             (&this_01->file_,\n                              (this->super_Sized_relobj_file<32,_false>).\n                              super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                              (ulong)puVar16[4],(ulong)puVar16[5],true,false);\n          pMVar9 = (Mips_abiflags<false> *)operator_new(0x18);\n          pMVar9->version = 0;\n          pMVar9->isa_level = '\0';\n          pMVar9->isa_rev = '\0';\n          pMVar9->gpr_size = '\0';\n          pMVar9->cpr1_size = '\0';\n          pMVar9->cpr2_size = '\0';\n          pMVar9->fp_abi = '\0';\n          uVar2 = *puVar8;\n          pMVar9->isa_ext = 0;\n          pMVar9->ases = 0;\n          pMVar9->flags1 = 0;\n          pMVar9->flags2 = 0;\n          this->abiflags_ = pMVar9;\n          pMVar9->version = uVar2;\n          if (uVar2 != 0) {\n            pcVar4 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                     super_Relobj.super_Object.name_._M_dataplus._M_p;\n            pcVar25 = (char *)gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            gold::gold_error(pcVar25,pcVar4,(ulong)uVar2);\n            return;\n          }\n          pMVar9->isa_level = (Valtype8)puVar8[1];\n          pMVar9->isa_rev = *(Valtype8 *)((long)puVar8 + 3);\n          pMVar9->gpr_size = (Valtype8)puVar8[2];\n          pMVar9->cpr1_size = *(Valtype8 *)((long)puVar8 + 5);\n          pMVar9->cpr2_size = (Valtype8)puVar8[3];\n          pMVar9->fp_abi = *(Valtype8 *)((long)puVar8 + 7);\n          pMVar9->isa_ext = *(Valtype32 *)(puVar8 + 4);\n          pMVar9->ases = *(Valtype32 *)(puVar8 + 6);\n          pMVar9->flags1 = *(Valtype32 *)(puVar8 + 8);\n          pMVar9->flags2 = *(Valtype32 *)(puVar8 + 10);\n          uVar23 = puVar16[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 "this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                    super_Relobj.super_Object.input_file_;" (comma_expression "this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                    super_Relobj.super_Object.input_file_" (assignment_expression "this_01 = (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 (this_01 == (Input_file *)0x0) goto LAB_002d68fa;" if (parenthesized_expression "(this_01 == (Input_file *)0x0)" ( (binary_expression "this_01 == (Input_file *)0x0" identifier == (cast_expression "(Input_file *)0x0" ( (type_descriptor "Input_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_002d68fa;" goto statement_identifier ;)) (ERROR "puVar8 = (ushort *)\n                   gold::" (assignment_expression "puVar8 = (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                             (&this_01->file_,\n                              (this->super_Sized_relobj_file<32,_false>).\n                              super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                              (ulong)puVar16[4],(ulong)puVar16[5],true,false);" statement_identifier : (ERROR ":" :) (expression_statement "get_view\n                             (&this_01->file_,\n                              (this->super_Sized_relobj_file<32,_false>).\n                              super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                              (ulong)puVar16[4],(ulong)puVar16[5],true,false);" (call_expression "get_view\n                             (&this_01->file_,\n                              (this->super_Sized_relobj_file<32,_false>).\n                              super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                              (ulong)puVar16[4],(ulong)puVar16[5],true,false)" identifier (argument_list "(&this_01->file_,\n                              (this->super_Sized_relobj_file<32,_false>).\n                              super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                              (ulong)puVar16[4],(ulong)puVar16[5],true,false)" ( (pointer_expression "&this_01->file_" & (field_expression "this_01->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 "(ulong)puVar16[4]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "puVar16[4]" identifier [ number_literal ])) , (cast_expression "(ulong)puVar16[5]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "puVar16[5]" identifier [ number_literal ])) , true , false ))) ;)) (expression_statement "pMVar9 = (Mips_abiflags<false> *)operator_new(0x18);" (assignment_expression "pMVar9 = (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 "pMVar9->version = 0;" (assignment_expression "pMVar9->version = 0" (field_expression "pMVar9->version" identifier -> field_identifier) = number_literal) ;) (expression_statement "pMVar9->isa_level = '\0';" (assignment_expression "pMVar9->isa_level = '\0'" (field_expression "pMVar9->isa_level" identifier -> field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pMVar9->isa_rev = '\0';" (assignment_expression "pMVar9->isa_rev = '\0'" (field_expression "pMVar9->isa_rev" identifier -> field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pMVar9->gpr_size = '\0';" (assignment_expression "pMVar9->gpr_size = '\0'" (field_expression "pMVar9->gpr_size" identifier -> field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pMVar9->cpr1_size = '\0';" (assignment_expression "pMVar9->cpr1_size = '\0'" (field_expression "pMVar9->cpr1_size" identifier -> field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pMVar9->cpr2_size = '\0';" (assignment_expression "pMVar9->cpr2_size = '\0'" (field_expression "pMVar9->cpr2_size" identifier -> field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pMVar9->fp_abi = '\0';" (assignment_expression "pMVar9->fp_abi = '\0'" (field_expression "pMVar9->fp_abi" identifier -> field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar2 = *puVar8;" (assignment_expression "uVar2 = *puVar8" identifier = (pointer_expression "*puVar8" * identifier)) ;) (expression_statement "pMVar9->isa_ext = 0;" (assignment_expression "pMVar9->isa_ext = 0" (field_expression "pMVar9->isa_ext" identifier -> field_identifier) = number_literal) ;) (expression_statement "pMVar9->ases = 0;" (assignment_expression "pMVar9->ases = 0" (field_expression "pMVar9->ases" identifier -> field_identifier) = number_literal) ;) (expression_statement "pMVar9->flags1 = 0;" (assignment_expression "pMVar9->flags1 = 0" (field_expression "pMVar9->flags1" identifier -> field_identifier) = number_literal) ;) (expression_statement "pMVar9->flags2 = 0;" (assignment_expression "pMVar9->flags2 = 0" (field_expression "pMVar9->flags2" identifier -> field_identifier) = number_literal) ;) (expression_statement "this->abiflags_ = pMVar9;" (assignment_expression "this->abiflags_ = pMVar9" (field_expression "this->abiflags_" identifier -> field_identifier) = identifier) ;) (expression_statement "pMVar9->version = uVar2;" (assignment_expression "pMVar9->version = uVar2" (field_expression "pMVar9->version" identifier -> field_identifier) = identifier) ;) (if_statement "if (uVar2 != 0) {\n            pcVar4 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                     super_Relobj.super_Object.name_._M_dataplus._M_p;\n            pcVar25 = (char *)gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            gold::gold_error(pcVar25,pcVar4,(ulong)uVar2);\n            return;\n          }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n            pcVar4 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                     super_Relobj.super_Object.name_._M_dataplus._M_p;\n            pcVar25 = (char *)gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            gold::gold_error(pcVar25,pcVar4,(ulong)uVar2);\n            return;\n          }" { (expression_statement "pcVar4 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                     super_Relobj.super_Object.name_._M_dataplus._M_p;" (comma_expression "pcVar4 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                     super_Relobj.super_Object.name_._M_dataplus._M_p" (assignment_expression "pcVar4 = (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 "pcVar25 = (char *)gettext("%s: .MIPS.abiflags section has unsupported version %u");" (assignment_expression "pcVar25 = (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(pcVar25,pcVar4,(ulong)uVar2);" statement_identifier : (ERROR ":" :) (expression_statement "gold_error(pcVar25,pcVar4,(ulong)uVar2);" (call_expression "gold_error(pcVar25,pcVar4,(ulong)uVar2)" identifier (argument_list "(pcVar25,pcVar4,(ulong)uVar2)" ( identifier , identifier , (cast_expression "(ulong)uVar2" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;)) (return_statement "return;" return ;) })) (expression_statement "pMVar9->isa_level = (Valtype8)puVar8[1];" (assignment_expression "pMVar9->isa_level = (Valtype8)puVar8[1]" (field_expression "pMVar9->isa_level" identifier -> field_identifier) = (cast_expression "(Valtype8)puVar8[1]" ( (type_descriptor "Valtype8" type_identifier) ) (subscript_expression "puVar8[1]" identifier [ number_literal ]))) ;) (expression_statement "pMVar9->isa_rev = *(Valtype8 *)((long)puVar8 + 3);" (assignment_expression "pMVar9->isa_rev = *(Valtype8 *)((long)puVar8 + 3)" (field_expression "pMVar9->isa_rev" identifier -> field_identifier) = (pointer_expression "*(Valtype8 *)((long)puVar8 + 3)" * (cast_expression "(Valtype8 *)((long)puVar8 + 3)" ( (type_descriptor "Valtype8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar8 + 3)" ( (binary_expression "(long)puVar8 + 3" (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "pMVar9->gpr_size = (Valtype8)puVar8[2];" (assignment_expression "pMVar9->gpr_size = (Valtype8)puVar8[2]" (field_expression "pMVar9->gpr_size" identifier -> field_identifier) = (cast_expression "(Valtype8)puVar8[2]" ( (type_descriptor "Valtype8" type_identifier) ) (subscript_expression "puVar8[2]" identifier [ number_literal ]))) ;) (expression_statement "pMVar9->cpr1_size = *(Valtype8 *)((long)puVar8 + 5);" (assignment_expression "pMVar9->cpr1_size = *(Valtype8 *)((long)puVar8 + 5)" (field_expression "pMVar9->cpr1_size" identifier -> field_identifier) = (pointer_expression "*(Valtype8 *)((long)puVar8 + 5)" * (cast_expression "(Valtype8 *)((long)puVar8 + 5)" ( (type_descriptor "Valtype8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar8 + 5)" ( (binary_expression "(long)puVar8 + 5" (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "pMVar9->cpr2_size = (Valtype8)puVar8[3];" (assignment_expression "pMVar9->cpr2_size = (Valtype8)puVar8[3]" (field_expression "pMVar9->cpr2_size" identifier -> field_identifier) = (cast_expression "(Valtype8)puVar8[3]" ( (type_descriptor "Valtype8" type_identifier) ) (subscript_expression "puVar8[3]" identifier [ number_literal ]))) ;) (expression_statement "pMVar9->fp_abi = *(Valtype8 *)((long)puVar8 + 7);" (assignment_expression "pMVar9->fp_abi = *(Valtype8 *)((long)puVar8 + 7)" (field_expression "pMVar9->fp_abi" identifier -> field_identifier) = (pointer_expression "*(Valtype8 *)((long)puVar8 + 7)" * (cast_expression "(Valtype8 *)((long)puVar8 + 7)" ( (type_descriptor "Valtype8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar8 + 7)" ( (binary_expression "(long)puVar8 + 7" (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "pMVar9->isa_ext = *(Valtype32 *)(puVar8 + 4);" (assignment_expression "pMVar9->isa_ext = *(Valtype32 *)(puVar8 + 4)" (field_expression "pMVar9->isa_ext" identifier -> field_identifier) = (pointer_expression "*(Valtype32 *)(puVar8 + 4)" * (cast_expression "(Valtype32 *)(puVar8 + 4)" ( (type_descriptor "Valtype32 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 4)" ( (binary_expression "puVar8 + 4" identifier + number_literal) ))))) ;) (expression_statement "pMVar9->ases = *(Valtype32 *)(puVar8 + 6);" (assignment_expression "pMVar9->ases = *(Valtype32 *)(puVar8 + 6)" (field_expression "pMVar9->ases" identifier -> field_identifier) = (pointer_expression "*(Valtype32 *)(puVar8 + 6)" * (cast_expression "(Valtype32 *)(puVar8 + 6)" ( (type_descriptor "Valtype32 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 6)" ( (binary_expression "puVar8 + 6" identifier + number_literal) ))))) ;) (expression_statement "pMVar9->flags1 = *(Valtype32 *)(puVar8 + 8);" (assignment_expression "pMVar9->flags1 = *(Valtype32 *)(puVar8 + 8)" (field_expression "pMVar9->flags1" identifier -> field_identifier) = (pointer_expression "*(Valtype32 *)(puVar8 + 8)" * (cast_expression "(Valtype32 *)(puVar8 + 8)" ( (type_descriptor "Valtype32 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 8)" ( (binary_expression "puVar8 + 8" identifier + number_literal) ))))) ;) (expression_statement "pMVar9->flags2 = *(Valtype32 *)(puVar8 + 10);" (assignment_expression "pMVar9->flags2 = *(Valtype32 *)(puVar8 + 10)" (field_expression "pMVar9->flags2" identifier -> field_identifier) = (pointer_expression "*(Valtype32 *)(puVar8 + 10)" * (cast_expression "(Valtype32 *)(puVar8 + 10)" ( (type_descriptor "Valtype32 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 10)" ( (binary_expression "puVar8 + 10" identifier + number_literal) ))))) ;) (expression_statement "uVar23 = puVar16[1];" (assignment_expression "uVar23 = puVar16[1]" identifier = (subscript_expression "puVar16[1]" identifier [ number_literal ])) ;) })) (if_statement "if (uVar23 == 0x7000000d) {\n          this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                    super_Relobj.super_Object.input_file_;\n          uVar23 = puVar16[5];\n          if (this_01 == (Input_file *)0x0) goto LAB_002d68fa;\n          puVar12 = gold::File_read::get_view\n                              (&this_01->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (ulong)puVar16[4],(ulong)uVar23,true,false);\n          puVar7 = puVar12 + uVar23;\n          for (; puVar12 + 8 <= puVar7; puVar12 = puVar12 + bVar1) {\n            bVar1 = puVar12[1];\n            if (bVar1 < 8) {\n              pcVar4 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                       super_Relobj.super_Object.name_._M_dataplus._M_p;\n              pcVar25 = ".MIPS.options";\n              if ((this->field_0x36c & 2) == 0) {\n                pcVar25 = ".options";\n              }\n              format = (char *)gettext(\n                                      "%s: Warning: bad `%s\' option size %u smaller than its header"\n                                      );\n              gold::gold_error(format,pcVar4,pcVar25,(ulong)bVar1);\n              break;\n            }\n            if (*puVar12 == '\x01') {\n              this->gp_ = *(Mips_address *)(puVar12 + 0x1c);\n            }\n          }\n        }" if (parenthesized_expression "(uVar23 == 0x7000000d)" ( (binary_expression "uVar23 == 0x7000000d" identifier == number_literal) )) (compound_statement "{\n          this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                    super_Relobj.super_Object.input_file_;\n          uVar23 = puVar16[5];\n          if (this_01 == (Input_file *)0x0) goto LAB_002d68fa;\n          puVar12 = gold::File_read::get_view\n                              (&this_01->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (ulong)puVar16[4],(ulong)uVar23,true,false);\n          puVar7 = puVar12 + uVar23;\n          for (; puVar12 + 8 <= puVar7; puVar12 = puVar12 + bVar1) {\n            bVar1 = puVar12[1];\n            if (bVar1 < 8) {\n              pcVar4 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                       super_Relobj.super_Object.name_._M_dataplus._M_p;\n              pcVar25 = ".MIPS.options";\n              if ((this->field_0x36c & 2) == 0) {\n                pcVar25 = ".options";\n              }\n              format = (char *)gettext(\n                                      "%s: Warning: bad `%s\' option size %u smaller than its header"\n                                      );\n              gold::gold_error(format,pcVar4,pcVar25,(ulong)bVar1);\n              break;\n            }\n            if (*puVar12 == '\x01') {\n              this->gp_ = *(Mips_address *)(puVar12 + 0x1c);\n            }\n          }\n        }" { (expression_statement "this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                    super_Relobj.super_Object.input_file_;" (comma_expression "this_01 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                    super_Relobj.super_Object.input_file_" (assignment_expression "this_01 = (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)) ;) (expression_statement "uVar23 = puVar16[5];" (assignment_expression "uVar23 = puVar16[5]" identifier = (subscript_expression "puVar16[5]" identifier [ number_literal ])) ;) (if_statement "if (this_01 == (Input_file *)0x0) goto LAB_002d68fa;" if (parenthesized_expression "(this_01 == (Input_file *)0x0)" ( (binary_expression "this_01 == (Input_file *)0x0" identifier == (cast_expression "(Input_file *)0x0" ( (type_descriptor "Input_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_002d68fa;" goto statement_identifier ;)) (ERROR "puVar12 = gold::" (assignment_expression "puVar12 = gold" identifier = identifier) : :) (labeled_statement "File_read::get_view\n                              (&this_01->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (ulong)puVar16[4],(ulong)uVar23,true,false);" statement_identifier : (ERROR ":" :) (expression_statement "get_view\n                              (&this_01->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (ulong)puVar16[4],(ulong)uVar23,true,false);" (call_expression "get_view\n                              (&this_01->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (ulong)puVar16[4],(ulong)uVar23,true,false)" identifier (argument_list "(&this_01->file_,\n                               (this->super_Sized_relobj_file<32,_false>).\n                               super_Sized_relobj<32,_false>.super_Relobj.super_Object.offset_,\n                               (ulong)puVar16[4],(ulong)uVar23,true,false)" ( (pointer_expression "&this_01->file_" & (field_expression "this_01->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 "(ulong)puVar16[4]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "puVar16[4]" identifier [ number_literal ])) , (cast_expression "(ulong)uVar23" ( (type_descriptor "ulong" type_identifier) ) identifier) , true , false ))) ;)) (expression_statement "puVar7 = puVar12 + uVar23;" (assignment_expression "puVar7 = puVar12 + uVar23" identifier = (binary_expression "puVar12 + uVar23" identifier + identifier)) ;) (for_statement "for (; puVar12 + 8 <= puVar7; puVar12 = puVar12 + bVar1) {\n            bVar1 = puVar12[1];\n            if (bVar1 < 8) {\n              pcVar4 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                       super_Relobj.super_Object.name_._M_dataplus._M_p;\n              pcVar25 = ".MIPS.options";\n              if ((this->field_0x36c & 2) == 0) {\n                pcVar25 = ".options";\n              }\n              format = (char *)gettext(\n                                      "%s: Warning: bad `%s\' option size %u smaller than its header"\n                                      );\n              gold::gold_error(format,pcVar4,pcVar25,(ulong)bVar1);\n              break;\n            }\n            if (*puVar12 == '\x01') {\n              this->gp_ = *(Mips_address *)(puVar12 + 0x1c);\n            }\n          }" for ( ; (binary_expression "puVar12 + 8 <= puVar7" (binary_expression "puVar12 + 8" identifier + number_literal) <= identifier) ; (assignment_expression "puVar12 = puVar12 + bVar1" identifier = (binary_expression "puVar12 + bVar1" identifier + identifier)) ) (compound_statement "{\n            bVar1 = puVar12[1];\n            if (bVar1 < 8) {\n              pcVar4 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                       super_Relobj.super_Object.name_._M_dataplus._M_p;\n              pcVar25 = ".MIPS.options";\n              if ((this->field_0x36c & 2) == 0) {\n                pcVar25 = ".options";\n              }\n              format = (char *)gettext(\n                                      "%s: Warning: bad `%s\' option size %u smaller than its header"\n                                      );\n              gold::gold_error(format,pcVar4,pcVar25,(ulong)bVar1);\n              break;\n            }\n            if (*puVar12 == '\x01') {\n              this->gp_ = *(Mips_address *)(puVar12 + 0x1c);\n            }\n          }" { (expression_statement "bVar1 = puVar12[1];" (assignment_expression "bVar1 = puVar12[1]" identifier = (subscript_expression "puVar12[1]" identifier [ number_literal ])) ;) (if_statement "if (bVar1 < 8) {\n              pcVar4 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                       super_Relobj.super_Object.name_._M_dataplus._M_p;\n              pcVar25 = ".MIPS.options";\n              if ((this->field_0x36c & 2) == 0) {\n                pcVar25 = ".options";\n              }\n              format = (char *)gettext(\n                                      "%s: Warning: bad `%s\' option size %u smaller than its header"\n                                      );\n              gold::gold_error(format,pcVar4,pcVar25,(ulong)bVar1);\n              break;\n            }" if (parenthesized_expression "(bVar1 < 8)" ( (binary_expression "bVar1 < 8" identifier < number_literal) )) (compound_statement "{\n              pcVar4 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                       super_Relobj.super_Object.name_._M_dataplus._M_p;\n              pcVar25 = ".MIPS.options";\n              if ((this->field_0x36c & 2) == 0) {\n                pcVar25 = ".options";\n              }\n              format = (char *)gettext(\n                                      "%s: Warning: bad `%s\' option size %u smaller than its header"\n                                      );\n              gold::gold_error(format,pcVar4,pcVar25,(ulong)bVar1);\n              break;\n            }" { (expression_statement "pcVar4 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                       super_Relobj.super_Object.name_._M_dataplus._M_p;" (comma_expression "pcVar4 = (this->super_Sized_relobj_file<32,_false>).super_Sized_relobj<32,_false>.\n                       super_Relobj.super_Object.name_._M_dataplus._M_p" (assignment_expression "pcVar4 = (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 "pcVar25 = ".MIPS.options";" (assignment_expression "pcVar25 = ".MIPS.options"" identifier = (string_literal "".MIPS.options"" " string_content ")) ;) (if_statement "if ((this->field_0x36c & 2) == 0) {\n                pcVar25 = ".options";\n              }" if (parenthesized_expression "((this->field_0x36c & 2) == 0)" ( (binary_expression "(this->field_0x36c & 2) == 0" (parenthesized_expression "(this->field_0x36c & 2)" ( (binary_expression "this->field_0x36c & 2" (field_expression "this->field_0x36c" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                pcVar25 = ".options";\n              }" { (expression_statement "pcVar25 = ".options";" (assignment_expression "pcVar25 = ".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,pcVar4,pcVar25,(ulong)bVar1);" statement_identifier : (ERROR ":" :) (expression_statement "gold_error(format,pcVar4,pcVar25,(ulong)bVar1);" (call_expression "gold_error(format,pcVar4,pcVar25,(ulong)bVar1)" identifier (argument_list "(format,pcVar4,pcVar25,(ulong)bVar1)" ( identifier , identifier , identifier , (cast_expression "(ulong)bVar1" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;)) (break_statement "break;" break ;) })) (if_statement "if (*puVar12 == '\x01') {\n              this->gp_ = *(Mips_address *)(puVar12 + 0x1c);\n            }" if (parenthesized_expression "(*puVar12 == '\x01')" ( (binary_expression "*puVar12 == '\x01'" (pointer_expression "*puVar12" * identifier) == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n              this->gp_ = *(Mips_address *)(puVar12 + 0x1c);\n            }" { (expression_statement "this->gp_ = *(Mips_address *)(puVar12 + 0x1c);" (assignment_expression "this->gp_ = *(Mips_address *)(puVar12 + 0x1c)" (field_expression "this->gp_" identifier -> field_identifier) = (pointer_expression "*(Mips_address *)(puVar12 + 0x1c)" * (cast_expression "(Mips_address *)(puVar12 + 0x1c)" ( (type_descriptor "Mips_address *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 0x1c)" ( (binary_expression "puVar12 + 0x1c" identifier + number_literal) ))))) ;) })) })) })) (expression_statement "bVar5 = true;" (assignment_expression "bVar5 = true" identifier = true) ;) })) (goto_statement "goto LAB_002d66e8;" goto statement_identifier ;) })) }) (else_clause "else if (FVar3 != 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 (FVar3 != FORMAT_BINARY) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }" if (parenthesized_expression "(FVar3 != FORMAT_BINARY)" ( (binary_expression "FVar3 != 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_002d643d:\n  this->field_0x36c = this->field_0x36c & 0xf7;" statement_identifier : (expression_statement "this->field_0x36c = this->field_0x36c & 0xf7;" (assignment_expression "this->field_0x36c = this->field_0x36c & 0xf7" (field_expression "this->field_0x36c" identifier -> field_identifier) = (binary_expression "this->field_0x36c & 0xf7" (field_expression "this->field_0x36c" identifier -> field_identifier) & number_literal)) ;)) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void FUN_002d6400(long param_1,long *param_2)\n\n{\n  byte bVar1;\n  short sVar2;\n  ulong uVar3;\n  bool bVar4;\n  long lVar5;\n  undefined8 uVar6;\n  undefined8 uVar7;\n  short *psVar8;\n  short *psVar9;\n  ulong uVar10;\n  undefined4 *puVar11;\n  char *pcVar12;\n  ulong uVar13;\n  ulong uVar14;\n  uint *puVar15;\n  uint *puVar16;\n  byte *pbVar17;\n  ulong *puVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  ulong uVar21;\n  uint uVar22;\n  ulong uVar23;\n  char *pcVar24;\n  bool bVar25;\n  bool bVar26;\n  bool bVar27;\n  byte bVar28;\n  \n  bVar28 = 0;\n  FUN_003b79e0();\n  lVar5 = *(long *)(param_1 + 0x28);\n  if (lVar5 == 0) {\nLAB_002d68fa:\n    FUN_00290dc0();\nLAB_002d68ff:\n                    \n    FUN_00352af0("../../gold/mips.cc",0x1b6f,"do_read_symbols");\n  }\n  uVar22 = *(uint *)(lVar5 + 0xe4);\n  uVar23 = (ulong)uVar22;\n  if (uVar22 == 1) {\n    lVar5 = FUN_0034d600(lVar5 + 0x28,*(undefined8 *)(param_1 + 0x30),0,0x34,1,0);\n    *(undefined4 *)(param_1 + 0x220) = *(undefined4 *)(lVar5 + 0x24);\n    uVar3 = *(ulong *)(param_2[1] + 0x10);\n    FUN_0022a2b0(param_1 + 0x378,*(undefined4 *)(param_1 + 0x38),0);\n    FUN_0022a2b0(param_1 + 0x3a0,*(undefined4 *)(param_1 + 0x38),0);\n    FUN_0022a2b0(param_1 + 0x3c8,*(undefined4 *)(param_1 + 0x38),0);\n    bVar4 = false;\n    puVar15 = (uint *)(*(long *)(*param_2 + 0x10) + 0x28);\n    if (1 < *(uint *)(param_1 + 0x38)) {\n      uVar22 = *(uint *)(*(long *)(*param_2 + 0x10) + 0x2c);\n      if (uVar22 != 2) goto LAB_002d6581;\n      do {\n        puVar16 = puVar15;\n        if (0x10 < puVar15[5]) {\n          bVar4 = true;\n        }\nLAB_002d66e8:\n        lVar5 = 10;\n        bVar25 = CARRY8((ulong)*puVar16,uVar3);\n        pbVar20 = (byte *)(*puVar16 + uVar3);\n        bVar27 = pbVar20 == (byte *)0x0;\n        pbVar17 = (byte *)".mips16.fn";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        uVar14 = (ulong)((uint)(uVar23 >> 3) & 0x1ffffff8);\n        uVar10 = 1L << ((byte)uVar23 & 0x3f);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x378) + uVar14);\n        uVar21 = *puVar18;\n        bVar26 = false;\n        bVar25 = (!bVar25 && !bVar27) == bVar25;\n        uVar13 = uVar21 & ~uVar10;\n        if (bVar25) {\n          uVar13 = uVar21 | uVar10;\n        }\n        *puVar18 = uVar13;\n        lVar5 = 0xd;\n        pbVar17 = (byte *)".mips16.call.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar26 = *pbVar17 < *pbVar19;\n          bVar25 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar25);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x3a0) + uVar14);\n        if ((!bVar26 && !bVar25) == bVar26) {\n          uVar21 = *puVar18 | uVar10;\n        }\n        else {\n          uVar21 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar21 == 0;\n        bVar25 = false;\n        *puVar18 = uVar21;\n        lVar5 = 0x10;\n        pbVar17 = (byte *)".mips16.call.fp.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        puVar18 = (ulong *)(uVar14 + *(long *)(param_1 + 0x3c8));\n        if ((!bVar25 && !bVar27) == bVar25) {\n          uVar10 = uVar10 | *puVar18;\n        }\n        else {\n          uVar10 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar10 == 0;\n        bVar25 = false;\n        *puVar18 = uVar10;\n        lVar5 = 5;\n        pbVar17 = &DAT_0053357f;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar20 < *pbVar17;\n          bVar27 = *pbVar20 == *pbVar17;\n          pbVar20 = pbVar20 + (ulong)bVar28 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        if ((!bVar25 && !bVar27) == bVar25) {\n          if (*(int *)(param_1 + 0x3f0) != -1) goto LAB_002d68ff;\n          *(int *)(param_1 + 0x3f0) = (int)uVar23;\n        }\n        uVar22 = (int)uVar23 + 1;\n        uVar23 = (ulong)uVar22;\n        puVar15 = puVar16 + 10;\n        if (*(uint *)(param_1 + 0x38) <= uVar22) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_002d643d;\n        }\n        uVar22 = puVar16[0xb];\n      } while (uVar22 == 2);\nLAB_002d6581:\n      puVar16 = puVar15;\n      if (uVar22 != 3) {\n        if (uVar22 == 0x70000006) {\n          *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) | 4;\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          puVar11 = (undefined4 *)\n                    FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0);\n          *(undefined4 *)(param_1 + 0x368) = puVar11[5];\n          *(undefined4 *)(param_1 + 0x408) = *puVar11;\n          *(undefined4 *)(param_1 + 0x40c) = puVar11[1];\n          *(undefined4 *)(param_1 + 0x410) = puVar11[2];\n          *(undefined4 *)(param_1 + 0x414) = puVar11[3];\n          *(undefined4 *)(param_1 + 0x418) = puVar11[4];\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x6ffffff5) {\n          if (*(long *)(param_1 + 0x3f8) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          uVar6 = FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                               puVar15[4],uVar22,1,0);\n          uVar7 = FUN_0049cb70(0x10);\n                    \n          FUN_003362a0(uVar7,uVar6,uVar22);\n          *(undefined8 *)(param_1 + 0x3f8) = uVar7;\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000002a) {\n          if (*(long *)(param_1 + 0x400) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          psVar8 = (short *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0);\n          psVar9 = (short *)FUN_0049cb70(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 + 0x400) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined8 *)(param_1 + 8);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0034a750(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((long)psVar9 + 3) = *(undefined1 *)((long)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((long)psVar9 + 5) = *(undefined1 *)((long)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((long)psVar9 + 7) = *(undefined1 *)((long)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          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000000d) {\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          pcVar12 = (char *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0);\n          pcVar24 = pcVar12 + uVar22;\n          for (; pcVar12 + 8 <= pcVar24; pcVar12 = pcVar12 + bVar1) {\n            bVar1 = pcVar12[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined8 *)(param_1 + 8);\n              pcVar24 = ".MIPS.options";\n              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);\n              break;\n            }\n            if (*pcVar12 == '\x01') {\n              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }\n      goto LAB_002d66e8;\n    }\n  }\n  else if (uVar22 != 2) {\n                    \n    FUN_00352af0("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }\nLAB_002d643d:\n  *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) & 0xf7;\n  return;\n}\n\n" (function_definition "void FUN_002d6400(long param_1,long *param_2)\n\n{\n  byte bVar1;\n  short sVar2;\n  ulong uVar3;\n  bool bVar4;\n  long lVar5;\n  undefined8 uVar6;\n  undefined8 uVar7;\n  short *psVar8;\n  short *psVar9;\n  ulong uVar10;\n  undefined4 *puVar11;\n  char *pcVar12;\n  ulong uVar13;\n  ulong uVar14;\n  uint *puVar15;\n  uint *puVar16;\n  byte *pbVar17;\n  ulong *puVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  ulong uVar21;\n  uint uVar22;\n  ulong uVar23;\n  char *pcVar24;\n  bool bVar25;\n  bool bVar26;\n  bool bVar27;\n  byte bVar28;\n  \n  bVar28 = 0;\n  FUN_003b79e0();\n  lVar5 = *(long *)(param_1 + 0x28);\n  if (lVar5 == 0) {\nLAB_002d68fa:\n    FUN_00290dc0();\nLAB_002d68ff:\n                    \n    FUN_00352af0("../../gold/mips.cc",0x1b6f,"do_read_symbols");\n  }\n  uVar22 = *(uint *)(lVar5 + 0xe4);\n  uVar23 = (ulong)uVar22;\n  if (uVar22 == 1) {\n    lVar5 = FUN_0034d600(lVar5 + 0x28,*(undefined8 *)(param_1 + 0x30),0,0x34,1,0);\n    *(undefined4 *)(param_1 + 0x220) = *(undefined4 *)(lVar5 + 0x24);\n    uVar3 = *(ulong *)(param_2[1] + 0x10);\n    FUN_0022a2b0(param_1 + 0x378,*(undefined4 *)(param_1 + 0x38),0);\n    FUN_0022a2b0(param_1 + 0x3a0,*(undefined4 *)(param_1 + 0x38),0);\n    FUN_0022a2b0(param_1 + 0x3c8,*(undefined4 *)(param_1 + 0x38),0);\n    bVar4 = false;\n    puVar15 = (uint *)(*(long *)(*param_2 + 0x10) + 0x28);\n    if (1 < *(uint *)(param_1 + 0x38)) {\n      uVar22 = *(uint *)(*(long *)(*param_2 + 0x10) + 0x2c);\n      if (uVar22 != 2) goto LAB_002d6581;\n      do {\n        puVar16 = puVar15;\n        if (0x10 < puVar15[5]) {\n          bVar4 = true;\n        }\nLAB_002d66e8:\n        lVar5 = 10;\n        bVar25 = CARRY8((ulong)*puVar16,uVar3);\n        pbVar20 = (byte *)(*puVar16 + uVar3);\n        bVar27 = pbVar20 == (byte *)0x0;\n        pbVar17 = (byte *)".mips16.fn";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        uVar14 = (ulong)((uint)(uVar23 >> 3) & 0x1ffffff8);\n        uVar10 = 1L << ((byte)uVar23 & 0x3f);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x378) + uVar14);\n        uVar21 = *puVar18;\n        bVar26 = false;\n        bVar25 = (!bVar25 && !bVar27) == bVar25;\n        uVar13 = uVar21 & ~uVar10;\n        if (bVar25) {\n          uVar13 = uVar21 | uVar10;\n        }\n        *puVar18 = uVar13;\n        lVar5 = 0xd;\n        pbVar17 = (byte *)".mips16.call.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar26 = *pbVar17 < *pbVar19;\n          bVar25 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar25);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x3a0) + uVar14);\n        if ((!bVar26 && !bVar25) == bVar26) {\n          uVar21 = *puVar18 | uVar10;\n        }\n        else {\n          uVar21 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar21 == 0;\n        bVar25 = false;\n        *puVar18 = uVar21;\n        lVar5 = 0x10;\n        pbVar17 = (byte *)".mips16.call.fp.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        puVar18 = (ulong *)(uVar14 + *(long *)(param_1 + 0x3c8));\n        if ((!bVar25 && !bVar27) == bVar25) {\n          uVar10 = uVar10 | *puVar18;\n        }\n        else {\n          uVar10 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar10 == 0;\n        bVar25 = false;\n        *puVar18 = uVar10;\n        lVar5 = 5;\n        pbVar17 = &DAT_0053357f;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar20 < *pbVar17;\n          bVar27 = *pbVar20 == *pbVar17;\n          pbVar20 = pbVar20 + (ulong)bVar28 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        if ((!bVar25 && !bVar27) == bVar25) {\n          if (*(int *)(param_1 + 0x3f0) != -1) goto LAB_002d68ff;\n          *(int *)(param_1 + 0x3f0) = (int)uVar23;\n        }\n        uVar22 = (int)uVar23 + 1;\n        uVar23 = (ulong)uVar22;\n        puVar15 = puVar16 + 10;\n        if (*(uint *)(param_1 + 0x38) <= uVar22) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_002d643d;\n        }\n        uVar22 = puVar16[0xb];\n      } while (uVar22 == 2);\nLAB_002d6581:\n      puVar16 = puVar15;\n      if (uVar22 != 3) {\n        if (uVar22 == 0x70000006) {\n          *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) | 4;\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          puVar11 = (undefined4 *)\n                    FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0);\n          *(undefined4 *)(param_1 + 0x368) = puVar11[5];\n          *(undefined4 *)(param_1 + 0x408) = *puVar11;\n          *(undefined4 *)(param_1 + 0x40c) = puVar11[1];\n          *(undefined4 *)(param_1 + 0x410) = puVar11[2];\n          *(undefined4 *)(param_1 + 0x414) = puVar11[3];\n          *(undefined4 *)(param_1 + 0x418) = puVar11[4];\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x6ffffff5) {\n          if (*(long *)(param_1 + 0x3f8) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          uVar6 = FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                               puVar15[4],uVar22,1,0);\n          uVar7 = FUN_0049cb70(0x10);\n                    \n          FUN_003362a0(uVar7,uVar6,uVar22);\n          *(undefined8 *)(param_1 + 0x3f8) = uVar7;\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000002a) {\n          if (*(long *)(param_1 + 0x400) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          psVar8 = (short *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0);\n          psVar9 = (short *)FUN_0049cb70(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 + 0x400) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined8 *)(param_1 + 8);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0034a750(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((long)psVar9 + 3) = *(undefined1 *)((long)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((long)psVar9 + 5) = *(undefined1 *)((long)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((long)psVar9 + 7) = *(undefined1 *)((long)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          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000000d) {\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          pcVar12 = (char *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0);\n          pcVar24 = pcVar12 + uVar22;\n          for (; pcVar12 + 8 <= pcVar24; pcVar12 = pcVar12 + bVar1) {\n            bVar1 = pcVar12[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined8 *)(param_1 + 8);\n              pcVar24 = ".MIPS.options";\n              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);\n              break;\n            }\n            if (*pcVar12 == '\x01') {\n              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }\n      goto LAB_002d66e8;\n    }\n  }\n  else if (uVar22 != 2) {\n                    \n    FUN_00352af0("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }\nLAB_002d643d:\n  *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) & 0xf7;\n  return;\n}" primitive_type (function_declarator "FUN_002d6400(long param_1,long *param_2)" identifier (parameter_list "(long param_1,long *param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long *param_2" (sized_type_specifier "long" long) (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  short sVar2;\n  ulong uVar3;\n  bool bVar4;\n  long lVar5;\n  undefined8 uVar6;\n  undefined8 uVar7;\n  short *psVar8;\n  short *psVar9;\n  ulong uVar10;\n  undefined4 *puVar11;\n  char *pcVar12;\n  ulong uVar13;\n  ulong uVar14;\n  uint *puVar15;\n  uint *puVar16;\n  byte *pbVar17;\n  ulong *puVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  ulong uVar21;\n  uint uVar22;\n  ulong uVar23;\n  char *pcVar24;\n  bool bVar25;\n  bool bVar26;\n  bool bVar27;\n  byte bVar28;\n  \n  bVar28 = 0;\n  FUN_003b79e0();\n  lVar5 = *(long *)(param_1 + 0x28);\n  if (lVar5 == 0) {\nLAB_002d68fa:\n    FUN_00290dc0();\nLAB_002d68ff:\n                    \n    FUN_00352af0("../../gold/mips.cc",0x1b6f,"do_read_symbols");\n  }\n  uVar22 = *(uint *)(lVar5 + 0xe4);\n  uVar23 = (ulong)uVar22;\n  if (uVar22 == 1) {\n    lVar5 = FUN_0034d600(lVar5 + 0x28,*(undefined8 *)(param_1 + 0x30),0,0x34,1,0);\n    *(undefined4 *)(param_1 + 0x220) = *(undefined4 *)(lVar5 + 0x24);\n    uVar3 = *(ulong *)(param_2[1] + 0x10);\n    FUN_0022a2b0(param_1 + 0x378,*(undefined4 *)(param_1 + 0x38),0);\n    FUN_0022a2b0(param_1 + 0x3a0,*(undefined4 *)(param_1 + 0x38),0);\n    FUN_0022a2b0(param_1 + 0x3c8,*(undefined4 *)(param_1 + 0x38),0);\n    bVar4 = false;\n    puVar15 = (uint *)(*(long *)(*param_2 + 0x10) + 0x28);\n    if (1 < *(uint *)(param_1 + 0x38)) {\n      uVar22 = *(uint *)(*(long *)(*param_2 + 0x10) + 0x2c);\n      if (uVar22 != 2) goto LAB_002d6581;\n      do {\n        puVar16 = puVar15;\n        if (0x10 < puVar15[5]) {\n          bVar4 = true;\n        }\nLAB_002d66e8:\n        lVar5 = 10;\n        bVar25 = CARRY8((ulong)*puVar16,uVar3);\n        pbVar20 = (byte *)(*puVar16 + uVar3);\n        bVar27 = pbVar20 == (byte *)0x0;\n        pbVar17 = (byte *)".mips16.fn";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        uVar14 = (ulong)((uint)(uVar23 >> 3) & 0x1ffffff8);\n        uVar10 = 1L << ((byte)uVar23 & 0x3f);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x378) + uVar14);\n        uVar21 = *puVar18;\n        bVar26 = false;\n        bVar25 = (!bVar25 && !bVar27) == bVar25;\n        uVar13 = uVar21 & ~uVar10;\n        if (bVar25) {\n          uVar13 = uVar21 | uVar10;\n        }\n        *puVar18 = uVar13;\n        lVar5 = 0xd;\n        pbVar17 = (byte *)".mips16.call.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar26 = *pbVar17 < *pbVar19;\n          bVar25 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar25);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x3a0) + uVar14);\n        if ((!bVar26 && !bVar25) == bVar26) {\n          uVar21 = *puVar18 | uVar10;\n        }\n        else {\n          uVar21 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar21 == 0;\n        bVar25 = false;\n        *puVar18 = uVar21;\n        lVar5 = 0x10;\n        pbVar17 = (byte *)".mips16.call.fp.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        puVar18 = (ulong *)(uVar14 + *(long *)(param_1 + 0x3c8));\n        if ((!bVar25 && !bVar27) == bVar25) {\n          uVar10 = uVar10 | *puVar18;\n        }\n        else {\n          uVar10 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar10 == 0;\n        bVar25 = false;\n        *puVar18 = uVar10;\n        lVar5 = 5;\n        pbVar17 = &DAT_0053357f;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar20 < *pbVar17;\n          bVar27 = *pbVar20 == *pbVar17;\n          pbVar20 = pbVar20 + (ulong)bVar28 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        if ((!bVar25 && !bVar27) == bVar25) {\n          if (*(int *)(param_1 + 0x3f0) != -1) goto LAB_002d68ff;\n          *(int *)(param_1 + 0x3f0) = (int)uVar23;\n        }\n        uVar22 = (int)uVar23 + 1;\n        uVar23 = (ulong)uVar22;\n        puVar15 = puVar16 + 10;\n        if (*(uint *)(param_1 + 0x38) <= uVar22) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_002d643d;\n        }\n        uVar22 = puVar16[0xb];\n      } while (uVar22 == 2);\nLAB_002d6581:\n      puVar16 = puVar15;\n      if (uVar22 != 3) {\n        if (uVar22 == 0x70000006) {\n          *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) | 4;\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          puVar11 = (undefined4 *)\n                    FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0);\n          *(undefined4 *)(param_1 + 0x368) = puVar11[5];\n          *(undefined4 *)(param_1 + 0x408) = *puVar11;\n          *(undefined4 *)(param_1 + 0x40c) = puVar11[1];\n          *(undefined4 *)(param_1 + 0x410) = puVar11[2];\n          *(undefined4 *)(param_1 + 0x414) = puVar11[3];\n          *(undefined4 *)(param_1 + 0x418) = puVar11[4];\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x6ffffff5) {\n          if (*(long *)(param_1 + 0x3f8) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          uVar6 = FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                               puVar15[4],uVar22,1,0);\n          uVar7 = FUN_0049cb70(0x10);\n                    \n          FUN_003362a0(uVar7,uVar6,uVar22);\n          *(undefined8 *)(param_1 + 0x3f8) = uVar7;\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000002a) {\n          if (*(long *)(param_1 + 0x400) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          psVar8 = (short *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0);\n          psVar9 = (short *)FUN_0049cb70(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 + 0x400) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined8 *)(param_1 + 8);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0034a750(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((long)psVar9 + 3) = *(undefined1 *)((long)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((long)psVar9 + 5) = *(undefined1 *)((long)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((long)psVar9 + 7) = *(undefined1 *)((long)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          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000000d) {\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          pcVar12 = (char *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0);\n          pcVar24 = pcVar12 + uVar22;\n          for (; pcVar12 + 8 <= pcVar24; pcVar12 = pcVar12 + bVar1) {\n            bVar1 = pcVar12[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined8 *)(param_1 + 8);\n              pcVar24 = ".MIPS.options";\n              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);\n              break;\n            }\n            if (*pcVar12 == '\x01') {\n              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }\n      goto LAB_002d66e8;\n    }\n  }\n  else if (uVar22 != 2) {\n                    \n    FUN_00352af0("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }\nLAB_002d643d:\n  *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) & 0xf7;\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "short sVar2;" (sized_type_specifier "short" short) identifier ;) (declaration "ulong uVar3;" type_identifier identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar6;" type_identifier identifier ;) (declaration "undefined8 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 "ulong uVar10;" type_identifier identifier ;) (declaration "undefined4 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "ulong uVar14;" type_identifier identifier ;) (declaration "uint *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "uint *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "ulong *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "ulong uVar21;" type_identifier identifier ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "ulong uVar23;" type_identifier identifier ;) (declaration "char *pcVar24;" primitive_type (pointer_declarator "*pcVar24" * identifier) ;) (declaration "bool bVar25;" primitive_type identifier ;) (declaration "bool bVar26;" primitive_type identifier ;) (declaration "bool bVar27;" primitive_type identifier ;) (declaration "byte bVar28;" type_identifier identifier ;) (expression_statement "bVar28 = 0;" (assignment_expression "bVar28 = 0" identifier = number_literal) ;) (expression_statement "FUN_003b79e0();" (call_expression "FUN_003b79e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "lVar5 = *(long *)(param_1 + 0x28);" (assignment_expression "lVar5 = *(long *)(param_1 + 0x28)" identifier = (pointer_expression "*(long *)(param_1 + 0x28)" * (cast_expression "(long *)(param_1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (lVar5 == 0) {\nLAB_002d68fa:\n    FUN_00290dc0();\nLAB_002d68ff:\n                    \n    FUN_00352af0("../../gold/mips.cc",0x1b6f,"do_read_symbols");\n  }" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_002d68fa:\n    FUN_00290dc0();\nLAB_002d68ff:\n                    \n    FUN_00352af0("../../gold/mips.cc",0x1b6f,"do_read_symbols");\n  }" { (labeled_statement "LAB_002d68fa:\n    FUN_00290dc0();" statement_identifier : (expression_statement "FUN_00290dc0();" (call_expression "FUN_00290dc0()" identifier (argument_list "()" ( ))) ;)) (labeled_statement "LAB_002d68ff:\n                    \n    FUN_00352af0("../../gold/mips.cc",0x1b6f,"do_read_symbols");" statement_identifier : (expression_statement "FUN_00352af0("../../gold/mips.cc",0x1b6f,"do_read_symbols");" (call_expression "FUN_00352af0("../../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 "uVar22 = *(uint *)(lVar5 + 0xe4);" (assignment_expression "uVar22 = *(uint *)(lVar5 + 0xe4)" identifier = (pointer_expression "*(uint *)(lVar5 + 0xe4)" * (cast_expression "(uint *)(lVar5 + 0xe4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0xe4)" ( (binary_expression "lVar5 + 0xe4" identifier + number_literal) ))))) ;) (expression_statement "uVar23 = (ulong)uVar22;" (assignment_expression "uVar23 = (ulong)uVar22" identifier = (cast_expression "(ulong)uVar22" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (uVar22 == 1) {\n    lVar5 = FUN_0034d600(lVar5 + 0x28,*(undefined8 *)(param_1 + 0x30),0,0x34,1,0);\n    *(undefined4 *)(param_1 + 0x220) = *(undefined4 *)(lVar5 + 0x24);\n    uVar3 = *(ulong *)(param_2[1] + 0x10);\n    FUN_0022a2b0(param_1 + 0x378,*(undefined4 *)(param_1 + 0x38),0);\n    FUN_0022a2b0(param_1 + 0x3a0,*(undefined4 *)(param_1 + 0x38),0);\n    FUN_0022a2b0(param_1 + 0x3c8,*(undefined4 *)(param_1 + 0x38),0);\n    bVar4 = false;\n    puVar15 = (uint *)(*(long *)(*param_2 + 0x10) + 0x28);\n    if (1 < *(uint *)(param_1 + 0x38)) {\n      uVar22 = *(uint *)(*(long *)(*param_2 + 0x10) + 0x2c);\n      if (uVar22 != 2) goto LAB_002d6581;\n      do {\n        puVar16 = puVar15;\n        if (0x10 < puVar15[5]) {\n          bVar4 = true;\n        }\nLAB_002d66e8:\n        lVar5 = 10;\n        bVar25 = CARRY8((ulong)*puVar16,uVar3);\n        pbVar20 = (byte *)(*puVar16 + uVar3);\n        bVar27 = pbVar20 == (byte *)0x0;\n        pbVar17 = (byte *)".mips16.fn";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        uVar14 = (ulong)((uint)(uVar23 >> 3) & 0x1ffffff8);\n        uVar10 = 1L << ((byte)uVar23 & 0x3f);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x378) + uVar14);\n        uVar21 = *puVar18;\n        bVar26 = false;\n        bVar25 = (!bVar25 && !bVar27) == bVar25;\n        uVar13 = uVar21 & ~uVar10;\n        if (bVar25) {\n          uVar13 = uVar21 | uVar10;\n        }\n        *puVar18 = uVar13;\n        lVar5 = 0xd;\n        pbVar17 = (byte *)".mips16.call.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar26 = *pbVar17 < *pbVar19;\n          bVar25 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar25);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x3a0) + uVar14);\n        if ((!bVar26 && !bVar25) == bVar26) {\n          uVar21 = *puVar18 | uVar10;\n        }\n        else {\n          uVar21 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar21 == 0;\n        bVar25 = false;\n        *puVar18 = uVar21;\n        lVar5 = 0x10;\n        pbVar17 = (byte *)".mips16.call.fp.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        puVar18 = (ulong *)(uVar14 + *(long *)(param_1 + 0x3c8));\n        if ((!bVar25 && !bVar27) == bVar25) {\n          uVar10 = uVar10 | *puVar18;\n        }\n        else {\n          uVar10 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar10 == 0;\n        bVar25 = false;\n        *puVar18 = uVar10;\n        lVar5 = 5;\n        pbVar17 = &DAT_0053357f;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar20 < *pbVar17;\n          bVar27 = *pbVar20 == *pbVar17;\n          pbVar20 = pbVar20 + (ulong)bVar28 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        if ((!bVar25 && !bVar27) == bVar25) {\n          if (*(int *)(param_1 + 0x3f0) != -1) goto LAB_002d68ff;\n          *(int *)(param_1 + 0x3f0) = (int)uVar23;\n        }\n        uVar22 = (int)uVar23 + 1;\n        uVar23 = (ulong)uVar22;\n        puVar15 = puVar16 + 10;\n        if (*(uint *)(param_1 + 0x38) <= uVar22) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_002d643d;\n        }\n        uVar22 = puVar16[0xb];\n      } while (uVar22 == 2);\nLAB_002d6581:\n      puVar16 = puVar15;\n      if (uVar22 != 3) {\n        if (uVar22 == 0x70000006) {\n          *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) | 4;\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          puVar11 = (undefined4 *)\n                    FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0);\n          *(undefined4 *)(param_1 + 0x368) = puVar11[5];\n          *(undefined4 *)(param_1 + 0x408) = *puVar11;\n          *(undefined4 *)(param_1 + 0x40c) = puVar11[1];\n          *(undefined4 *)(param_1 + 0x410) = puVar11[2];\n          *(undefined4 *)(param_1 + 0x414) = puVar11[3];\n          *(undefined4 *)(param_1 + 0x418) = puVar11[4];\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x6ffffff5) {\n          if (*(long *)(param_1 + 0x3f8) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          uVar6 = FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                               puVar15[4],uVar22,1,0);\n          uVar7 = FUN_0049cb70(0x10);\n                    \n          FUN_003362a0(uVar7,uVar6,uVar22);\n          *(undefined8 *)(param_1 + 0x3f8) = uVar7;\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000002a) {\n          if (*(long *)(param_1 + 0x400) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          psVar8 = (short *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0);\n          psVar9 = (short *)FUN_0049cb70(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 + 0x400) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined8 *)(param_1 + 8);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0034a750(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((long)psVar9 + 3) = *(undefined1 *)((long)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((long)psVar9 + 5) = *(undefined1 *)((long)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((long)psVar9 + 7) = *(undefined1 *)((long)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          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000000d) {\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          pcVar12 = (char *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0);\n          pcVar24 = pcVar12 + uVar22;\n          for (; pcVar12 + 8 <= pcVar24; pcVar12 = pcVar12 + bVar1) {\n            bVar1 = pcVar12[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined8 *)(param_1 + 8);\n              pcVar24 = ".MIPS.options";\n              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);\n              break;\n            }\n            if (*pcVar12 == '\x01') {\n              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }\n      goto LAB_002d66e8;\n    }\n  }\n  else if (uVar22 != 2) {\n                    \n    FUN_00352af0("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }" if (parenthesized_expression "(uVar22 == 1)" ( (binary_expression "uVar22 == 1" identifier == number_literal) )) (compound_statement "{\n    lVar5 = FUN_0034d600(lVar5 + 0x28,*(undefined8 *)(param_1 + 0x30),0,0x34,1,0);\n    *(undefined4 *)(param_1 + 0x220) = *(undefined4 *)(lVar5 + 0x24);\n    uVar3 = *(ulong *)(param_2[1] + 0x10);\n    FUN_0022a2b0(param_1 + 0x378,*(undefined4 *)(param_1 + 0x38),0);\n    FUN_0022a2b0(param_1 + 0x3a0,*(undefined4 *)(param_1 + 0x38),0);\n    FUN_0022a2b0(param_1 + 0x3c8,*(undefined4 *)(param_1 + 0x38),0);\n    bVar4 = false;\n    puVar15 = (uint *)(*(long *)(*param_2 + 0x10) + 0x28);\n    if (1 < *(uint *)(param_1 + 0x38)) {\n      uVar22 = *(uint *)(*(long *)(*param_2 + 0x10) + 0x2c);\n      if (uVar22 != 2) goto LAB_002d6581;\n      do {\n        puVar16 = puVar15;\n        if (0x10 < puVar15[5]) {\n          bVar4 = true;\n        }\nLAB_002d66e8:\n        lVar5 = 10;\n        bVar25 = CARRY8((ulong)*puVar16,uVar3);\n        pbVar20 = (byte *)(*puVar16 + uVar3);\n        bVar27 = pbVar20 == (byte *)0x0;\n        pbVar17 = (byte *)".mips16.fn";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        uVar14 = (ulong)((uint)(uVar23 >> 3) & 0x1ffffff8);\n        uVar10 = 1L << ((byte)uVar23 & 0x3f);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x378) + uVar14);\n        uVar21 = *puVar18;\n        bVar26 = false;\n        bVar25 = (!bVar25 && !bVar27) == bVar25;\n        uVar13 = uVar21 & ~uVar10;\n        if (bVar25) {\n          uVar13 = uVar21 | uVar10;\n        }\n        *puVar18 = uVar13;\n        lVar5 = 0xd;\n        pbVar17 = (byte *)".mips16.call.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar26 = *pbVar17 < *pbVar19;\n          bVar25 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar25);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x3a0) + uVar14);\n        if ((!bVar26 && !bVar25) == bVar26) {\n          uVar21 = *puVar18 | uVar10;\n        }\n        else {\n          uVar21 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar21 == 0;\n        bVar25 = false;\n        *puVar18 = uVar21;\n        lVar5 = 0x10;\n        pbVar17 = (byte *)".mips16.call.fp.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        puVar18 = (ulong *)(uVar14 + *(long *)(param_1 + 0x3c8));\n        if ((!bVar25 && !bVar27) == bVar25) {\n          uVar10 = uVar10 | *puVar18;\n        }\n        else {\n          uVar10 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar10 == 0;\n        bVar25 = false;\n        *puVar18 = uVar10;\n        lVar5 = 5;\n        pbVar17 = &DAT_0053357f;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar20 < *pbVar17;\n          bVar27 = *pbVar20 == *pbVar17;\n          pbVar20 = pbVar20 + (ulong)bVar28 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        if ((!bVar25 && !bVar27) == bVar25) {\n          if (*(int *)(param_1 + 0x3f0) != -1) goto LAB_002d68ff;\n          *(int *)(param_1 + 0x3f0) = (int)uVar23;\n        }\n        uVar22 = (int)uVar23 + 1;\n        uVar23 = (ulong)uVar22;\n        puVar15 = puVar16 + 10;\n        if (*(uint *)(param_1 + 0x38) <= uVar22) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_002d643d;\n        }\n        uVar22 = puVar16[0xb];\n      } while (uVar22 == 2);\nLAB_002d6581:\n      puVar16 = puVar15;\n      if (uVar22 != 3) {\n        if (uVar22 == 0x70000006) {\n          *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) | 4;\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          puVar11 = (undefined4 *)\n                    FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0);\n          *(undefined4 *)(param_1 + 0x368) = puVar11[5];\n          *(undefined4 *)(param_1 + 0x408) = *puVar11;\n          *(undefined4 *)(param_1 + 0x40c) = puVar11[1];\n          *(undefined4 *)(param_1 + 0x410) = puVar11[2];\n          *(undefined4 *)(param_1 + 0x414) = puVar11[3];\n          *(undefined4 *)(param_1 + 0x418) = puVar11[4];\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x6ffffff5) {\n          if (*(long *)(param_1 + 0x3f8) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          uVar6 = FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                               puVar15[4],uVar22,1,0);\n          uVar7 = FUN_0049cb70(0x10);\n                    \n          FUN_003362a0(uVar7,uVar6,uVar22);\n          *(undefined8 *)(param_1 + 0x3f8) = uVar7;\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000002a) {\n          if (*(long *)(param_1 + 0x400) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          psVar8 = (short *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0);\n          psVar9 = (short *)FUN_0049cb70(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 + 0x400) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined8 *)(param_1 + 8);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0034a750(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((long)psVar9 + 3) = *(undefined1 *)((long)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((long)psVar9 + 5) = *(undefined1 *)((long)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((long)psVar9 + 7) = *(undefined1 *)((long)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          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000000d) {\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          pcVar12 = (char *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0);\n          pcVar24 = pcVar12 + uVar22;\n          for (; pcVar12 + 8 <= pcVar24; pcVar12 = pcVar12 + bVar1) {\n            bVar1 = pcVar12[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined8 *)(param_1 + 8);\n              pcVar24 = ".MIPS.options";\n              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);\n              break;\n            }\n            if (*pcVar12 == '\x01') {\n              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }\n      goto LAB_002d66e8;\n    }\n  }" { (expression_statement "lVar5 = FUN_0034d600(lVar5 + 0x28,*(undefined8 *)(param_1 + 0x30),0,0x34,1,0);" (assignment_expression "lVar5 = FUN_0034d600(lVar5 + 0x28,*(undefined8 *)(param_1 + 0x30),0,0x34,1,0)" identifier = (call_expression "FUN_0034d600(lVar5 + 0x28,*(undefined8 *)(param_1 + 0x30),0,0x34,1,0)" identifier (argument_list "(lVar5 + 0x28,*(undefined8 *)(param_1 + 0x30),0,0x34,1,0)" ( (binary_expression "lVar5 + 0x28" identifier + number_literal) , (pointer_expression "*(undefined8 *)(param_1 + 0x30)" * (cast_expression "(undefined8 *)(param_1 + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) , number_literal , number_literal , number_literal , number_literal )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x220) = *(undefined4 *)(lVar5 + 0x24);" (assignment_expression "*(undefined4 *)(param_1 + 0x220) = *(undefined4 *)(lVar5 + 0x24)" (pointer_expression "*(undefined4 *)(param_1 + 0x220)" * (cast_expression "(undefined4 *)(param_1 + 0x220)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x220)" ( (binary_expression "param_1 + 0x220" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(lVar5 + 0x24)" * (cast_expression "(undefined4 *)(lVar5 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x24)" ( (binary_expression "lVar5 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(ulong *)(param_2[1] + 0x10);" (assignment_expression "uVar3 = *(ulong *)(param_2[1] + 0x10)" identifier = (pointer_expression "*(ulong *)(param_2[1] + 0x10)" * (cast_expression "(ulong *)(param_2[1] + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + 0x10)" ( (binary_expression "param_2[1] + 0x10" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "FUN_0022a2b0(param_1 + 0x378,*(undefined4 *)(param_1 + 0x38),0);" (call_expression "FUN_0022a2b0(param_1 + 0x378,*(undefined4 *)(param_1 + 0x38),0)" identifier (argument_list "(param_1 + 0x378,*(undefined4 *)(param_1 + 0x38),0)" ( (binary_expression "param_1 + 0x378" identifier + number_literal) , (pointer_expression "*(undefined4 *)(param_1 + 0x38)" * (cast_expression "(undefined4 *)(param_1 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) , number_literal ))) ;) (expression_statement "FUN_0022a2b0(param_1 + 0x3a0,*(undefined4 *)(param_1 + 0x38),0);" (call_expression "FUN_0022a2b0(param_1 + 0x3a0,*(undefined4 *)(param_1 + 0x38),0)" identifier (argument_list "(param_1 + 0x3a0,*(undefined4 *)(param_1 + 0x38),0)" ( (binary_expression "param_1 + 0x3a0" identifier + number_literal) , (pointer_expression "*(undefined4 *)(param_1 + 0x38)" * (cast_expression "(undefined4 *)(param_1 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) , number_literal ))) ;) (expression_statement "FUN_0022a2b0(param_1 + 0x3c8,*(undefined4 *)(param_1 + 0x38),0);" (call_expression "FUN_0022a2b0(param_1 + 0x3c8,*(undefined4 *)(param_1 + 0x38),0)" identifier (argument_list "(param_1 + 0x3c8,*(undefined4 *)(param_1 + 0x38),0)" ( (binary_expression "param_1 + 0x3c8" identifier + number_literal) , (pointer_expression "*(undefined4 *)(param_1 + 0x38)" * (cast_expression "(undefined4 *)(param_1 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) , number_literal ))) ;) (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) (expression_statement "puVar15 = (uint *)(*(long *)(*param_2 + 0x10) + 0x28);" (assignment_expression "puVar15 = (uint *)(*(long *)(*param_2 + 0x10) + 0x28)" identifier = (cast_expression "(uint *)(*(long *)(*param_2 + 0x10) + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(*param_2 + 0x10) + 0x28)" ( (binary_expression "*(long *)(*param_2 + 0x10) + 0x28" (pointer_expression "*(long *)(*param_2 + 0x10)" * (cast_expression "(long *)(*param_2 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_2 + 0x10)" ( (binary_expression "*param_2 + 0x10" (pointer_expression "*param_2" * identifier) + number_literal) )))) + number_literal) )))) ;) (if_statement "if (1 < *(uint *)(param_1 + 0x38)) {\n      uVar22 = *(uint *)(*(long *)(*param_2 + 0x10) + 0x2c);\n      if (uVar22 != 2) goto LAB_002d6581;\n      do {\n        puVar16 = puVar15;\n        if (0x10 < puVar15[5]) {\n          bVar4 = true;\n        }\nLAB_002d66e8:\n        lVar5 = 10;\n        bVar25 = CARRY8((ulong)*puVar16,uVar3);\n        pbVar20 = (byte *)(*puVar16 + uVar3);\n        bVar27 = pbVar20 == (byte *)0x0;\n        pbVar17 = (byte *)".mips16.fn";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        uVar14 = (ulong)((uint)(uVar23 >> 3) & 0x1ffffff8);\n        uVar10 = 1L << ((byte)uVar23 & 0x3f);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x378) + uVar14);\n        uVar21 = *puVar18;\n        bVar26 = false;\n        bVar25 = (!bVar25 && !bVar27) == bVar25;\n        uVar13 = uVar21 & ~uVar10;\n        if (bVar25) {\n          uVar13 = uVar21 | uVar10;\n        }\n        *puVar18 = uVar13;\n        lVar5 = 0xd;\n        pbVar17 = (byte *)".mips16.call.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar26 = *pbVar17 < *pbVar19;\n          bVar25 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar25);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x3a0) + uVar14);\n        if ((!bVar26 && !bVar25) == bVar26) {\n          uVar21 = *puVar18 | uVar10;\n        }\n        else {\n          uVar21 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar21 == 0;\n        bVar25 = false;\n        *puVar18 = uVar21;\n        lVar5 = 0x10;\n        pbVar17 = (byte *)".mips16.call.fp.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        puVar18 = (ulong *)(uVar14 + *(long *)(param_1 + 0x3c8));\n        if ((!bVar25 && !bVar27) == bVar25) {\n          uVar10 = uVar10 | *puVar18;\n        }\n        else {\n          uVar10 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar10 == 0;\n        bVar25 = false;\n        *puVar18 = uVar10;\n        lVar5 = 5;\n        pbVar17 = &DAT_0053357f;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar20 < *pbVar17;\n          bVar27 = *pbVar20 == *pbVar17;\n          pbVar20 = pbVar20 + (ulong)bVar28 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        if ((!bVar25 && !bVar27) == bVar25) {\n          if (*(int *)(param_1 + 0x3f0) != -1) goto LAB_002d68ff;\n          *(int *)(param_1 + 0x3f0) = (int)uVar23;\n        }\n        uVar22 = (int)uVar23 + 1;\n        uVar23 = (ulong)uVar22;\n        puVar15 = puVar16 + 10;\n        if (*(uint *)(param_1 + 0x38) <= uVar22) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_002d643d;\n        }\n        uVar22 = puVar16[0xb];\n      } while (uVar22 == 2);\nLAB_002d6581:\n      puVar16 = puVar15;\n      if (uVar22 != 3) {\n        if (uVar22 == 0x70000006) {\n          *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) | 4;\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          puVar11 = (undefined4 *)\n                    FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0);\n          *(undefined4 *)(param_1 + 0x368) = puVar11[5];\n          *(undefined4 *)(param_1 + 0x408) = *puVar11;\n          *(undefined4 *)(param_1 + 0x40c) = puVar11[1];\n          *(undefined4 *)(param_1 + 0x410) = puVar11[2];\n          *(undefined4 *)(param_1 + 0x414) = puVar11[3];\n          *(undefined4 *)(param_1 + 0x418) = puVar11[4];\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x6ffffff5) {\n          if (*(long *)(param_1 + 0x3f8) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          uVar6 = FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                               puVar15[4],uVar22,1,0);\n          uVar7 = FUN_0049cb70(0x10);\n                    \n          FUN_003362a0(uVar7,uVar6,uVar22);\n          *(undefined8 *)(param_1 + 0x3f8) = uVar7;\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000002a) {\n          if (*(long *)(param_1 + 0x400) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          psVar8 = (short *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0);\n          psVar9 = (short *)FUN_0049cb70(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 + 0x400) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined8 *)(param_1 + 8);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0034a750(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((long)psVar9 + 3) = *(undefined1 *)((long)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((long)psVar9 + 5) = *(undefined1 *)((long)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((long)psVar9 + 7) = *(undefined1 *)((long)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          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000000d) {\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          pcVar12 = (char *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0);\n          pcVar24 = pcVar12 + uVar22;\n          for (; pcVar12 + 8 <= pcVar24; pcVar12 = pcVar12 + bVar1) {\n            bVar1 = pcVar12[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined8 *)(param_1 + 8);\n              pcVar24 = ".MIPS.options";\n              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);\n              break;\n            }\n            if (*pcVar12 == '\x01') {\n              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }\n      goto LAB_002d66e8;\n    }" if (parenthesized_expression "(1 < *(uint *)(param_1 + 0x38))" ( (binary_expression "1 < *(uint *)(param_1 + 0x38)" number_literal < (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) )) (compound_statement "{\n      uVar22 = *(uint *)(*(long *)(*param_2 + 0x10) + 0x2c);\n      if (uVar22 != 2) goto LAB_002d6581;\n      do {\n        puVar16 = puVar15;\n        if (0x10 < puVar15[5]) {\n          bVar4 = true;\n        }\nLAB_002d66e8:\n        lVar5 = 10;\n        bVar25 = CARRY8((ulong)*puVar16,uVar3);\n        pbVar20 = (byte *)(*puVar16 + uVar3);\n        bVar27 = pbVar20 == (byte *)0x0;\n        pbVar17 = (byte *)".mips16.fn";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        uVar14 = (ulong)((uint)(uVar23 >> 3) & 0x1ffffff8);\n        uVar10 = 1L << ((byte)uVar23 & 0x3f);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x378) + uVar14);\n        uVar21 = *puVar18;\n        bVar26 = false;\n        bVar25 = (!bVar25 && !bVar27) == bVar25;\n        uVar13 = uVar21 & ~uVar10;\n        if (bVar25) {\n          uVar13 = uVar21 | uVar10;\n        }\n        *puVar18 = uVar13;\n        lVar5 = 0xd;\n        pbVar17 = (byte *)".mips16.call.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar26 = *pbVar17 < *pbVar19;\n          bVar25 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar25);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x3a0) + uVar14);\n        if ((!bVar26 && !bVar25) == bVar26) {\n          uVar21 = *puVar18 | uVar10;\n        }\n        else {\n          uVar21 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar21 == 0;\n        bVar25 = false;\n        *puVar18 = uVar21;\n        lVar5 = 0x10;\n        pbVar17 = (byte *)".mips16.call.fp.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        puVar18 = (ulong *)(uVar14 + *(long *)(param_1 + 0x3c8));\n        if ((!bVar25 && !bVar27) == bVar25) {\n          uVar10 = uVar10 | *puVar18;\n        }\n        else {\n          uVar10 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar10 == 0;\n        bVar25 = false;\n        *puVar18 = uVar10;\n        lVar5 = 5;\n        pbVar17 = &DAT_0053357f;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar20 < *pbVar17;\n          bVar27 = *pbVar20 == *pbVar17;\n          pbVar20 = pbVar20 + (ulong)bVar28 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        if ((!bVar25 && !bVar27) == bVar25) {\n          if (*(int *)(param_1 + 0x3f0) != -1) goto LAB_002d68ff;\n          *(int *)(param_1 + 0x3f0) = (int)uVar23;\n        }\n        uVar22 = (int)uVar23 + 1;\n        uVar23 = (ulong)uVar22;\n        puVar15 = puVar16 + 10;\n        if (*(uint *)(param_1 + 0x38) <= uVar22) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_002d643d;\n        }\n        uVar22 = puVar16[0xb];\n      } while (uVar22 == 2);\nLAB_002d6581:\n      puVar16 = puVar15;\n      if (uVar22 != 3) {\n        if (uVar22 == 0x70000006) {\n          *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) | 4;\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          puVar11 = (undefined4 *)\n                    FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0);\n          *(undefined4 *)(param_1 + 0x368) = puVar11[5];\n          *(undefined4 *)(param_1 + 0x408) = *puVar11;\n          *(undefined4 *)(param_1 + 0x40c) = puVar11[1];\n          *(undefined4 *)(param_1 + 0x410) = puVar11[2];\n          *(undefined4 *)(param_1 + 0x414) = puVar11[3];\n          *(undefined4 *)(param_1 + 0x418) = puVar11[4];\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x6ffffff5) {\n          if (*(long *)(param_1 + 0x3f8) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          uVar6 = FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                               puVar15[4],uVar22,1,0);\n          uVar7 = FUN_0049cb70(0x10);\n                    \n          FUN_003362a0(uVar7,uVar6,uVar22);\n          *(undefined8 *)(param_1 + 0x3f8) = uVar7;\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000002a) {\n          if (*(long *)(param_1 + 0x400) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          psVar8 = (short *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0);\n          psVar9 = (short *)FUN_0049cb70(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 + 0x400) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined8 *)(param_1 + 8);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0034a750(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((long)psVar9 + 3) = *(undefined1 *)((long)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((long)psVar9 + 5) = *(undefined1 *)((long)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((long)psVar9 + 7) = *(undefined1 *)((long)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          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000000d) {\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          pcVar12 = (char *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0);\n          pcVar24 = pcVar12 + uVar22;\n          for (; pcVar12 + 8 <= pcVar24; pcVar12 = pcVar12 + bVar1) {\n            bVar1 = pcVar12[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined8 *)(param_1 + 8);\n              pcVar24 = ".MIPS.options";\n              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);\n              break;\n            }\n            if (*pcVar12 == '\x01') {\n              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }\n      goto LAB_002d66e8;\n    }" { (expression_statement "uVar22 = *(uint *)(*(long *)(*param_2 + 0x10) + 0x2c);" (assignment_expression "uVar22 = *(uint *)(*(long *)(*param_2 + 0x10) + 0x2c)" identifier = (pointer_expression "*(uint *)(*(long *)(*param_2 + 0x10) + 0x2c)" * (cast_expression "(uint *)(*(long *)(*param_2 + 0x10) + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(*param_2 + 0x10) + 0x2c)" ( (binary_expression "*(long *)(*param_2 + 0x10) + 0x2c" (pointer_expression "*(long *)(*param_2 + 0x10)" * (cast_expression "(long *)(*param_2 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_2 + 0x10)" ( (binary_expression "*param_2 + 0x10" (pointer_expression "*param_2" * identifier) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (uVar22 != 2) goto LAB_002d6581;" if (parenthesized_expression "(uVar22 != 2)" ( (binary_expression "uVar22 != 2" identifier != number_literal) )) (goto_statement "goto LAB_002d6581;" goto statement_identifier ;)) (do_statement "do {\n        puVar16 = puVar15;\n        if (0x10 < puVar15[5]) {\n          bVar4 = true;\n        }\nLAB_002d66e8:\n        lVar5 = 10;\n        bVar25 = CARRY8((ulong)*puVar16,uVar3);\n        pbVar20 = (byte *)(*puVar16 + uVar3);\n        bVar27 = pbVar20 == (byte *)0x0;\n        pbVar17 = (byte *)".mips16.fn";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        uVar14 = (ulong)((uint)(uVar23 >> 3) & 0x1ffffff8);\n        uVar10 = 1L << ((byte)uVar23 & 0x3f);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x378) + uVar14);\n        uVar21 = *puVar18;\n        bVar26 = false;\n        bVar25 = (!bVar25 && !bVar27) == bVar25;\n        uVar13 = uVar21 & ~uVar10;\n        if (bVar25) {\n          uVar13 = uVar21 | uVar10;\n        }\n        *puVar18 = uVar13;\n        lVar5 = 0xd;\n        pbVar17 = (byte *)".mips16.call.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar26 = *pbVar17 < *pbVar19;\n          bVar25 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar25);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x3a0) + uVar14);\n        if ((!bVar26 && !bVar25) == bVar26) {\n          uVar21 = *puVar18 | uVar10;\n        }\n        else {\n          uVar21 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar21 == 0;\n        bVar25 = false;\n        *puVar18 = uVar21;\n        lVar5 = 0x10;\n        pbVar17 = (byte *)".mips16.call.fp.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        puVar18 = (ulong *)(uVar14 + *(long *)(param_1 + 0x3c8));\n        if ((!bVar25 && !bVar27) == bVar25) {\n          uVar10 = uVar10 | *puVar18;\n        }\n        else {\n          uVar10 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar10 == 0;\n        bVar25 = false;\n        *puVar18 = uVar10;\n        lVar5 = 5;\n        pbVar17 = &DAT_0053357f;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar20 < *pbVar17;\n          bVar27 = *pbVar20 == *pbVar17;\n          pbVar20 = pbVar20 + (ulong)bVar28 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        if ((!bVar25 && !bVar27) == bVar25) {\n          if (*(int *)(param_1 + 0x3f0) != -1) goto LAB_002d68ff;\n          *(int *)(param_1 + 0x3f0) = (int)uVar23;\n        }\n        uVar22 = (int)uVar23 + 1;\n        uVar23 = (ulong)uVar22;\n        puVar15 = puVar16 + 10;\n        if (*(uint *)(param_1 + 0x38) <= uVar22) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_002d643d;\n        }\n        uVar22 = puVar16[0xb];\n      } while (uVar22 == 2);" do (compound_statement "{\n        puVar16 = puVar15;\n        if (0x10 < puVar15[5]) {\n          bVar4 = true;\n        }\nLAB_002d66e8:\n        lVar5 = 10;\n        bVar25 = CARRY8((ulong)*puVar16,uVar3);\n        pbVar20 = (byte *)(*puVar16 + uVar3);\n        bVar27 = pbVar20 == (byte *)0x0;\n        pbVar17 = (byte *)".mips16.fn";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        uVar14 = (ulong)((uint)(uVar23 >> 3) & 0x1ffffff8);\n        uVar10 = 1L << ((byte)uVar23 & 0x3f);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x378) + uVar14);\n        uVar21 = *puVar18;\n        bVar26 = false;\n        bVar25 = (!bVar25 && !bVar27) == bVar25;\n        uVar13 = uVar21 & ~uVar10;\n        if (bVar25) {\n          uVar13 = uVar21 | uVar10;\n        }\n        *puVar18 = uVar13;\n        lVar5 = 0xd;\n        pbVar17 = (byte *)".mips16.call.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar26 = *pbVar17 < *pbVar19;\n          bVar25 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar25);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x3a0) + uVar14);\n        if ((!bVar26 && !bVar25) == bVar26) {\n          uVar21 = *puVar18 | uVar10;\n        }\n        else {\n          uVar21 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar21 == 0;\n        bVar25 = false;\n        *puVar18 = uVar21;\n        lVar5 = 0x10;\n        pbVar17 = (byte *)".mips16.call.fp.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        puVar18 = (ulong *)(uVar14 + *(long *)(param_1 + 0x3c8));\n        if ((!bVar25 && !bVar27) == bVar25) {\n          uVar10 = uVar10 | *puVar18;\n        }\n        else {\n          uVar10 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar10 == 0;\n        bVar25 = false;\n        *puVar18 = uVar10;\n        lVar5 = 5;\n        pbVar17 = &DAT_0053357f;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar20 < *pbVar17;\n          bVar27 = *pbVar20 == *pbVar17;\n          pbVar20 = pbVar20 + (ulong)bVar28 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        if ((!bVar25 && !bVar27) == bVar25) {\n          if (*(int *)(param_1 + 0x3f0) != -1) goto LAB_002d68ff;\n          *(int *)(param_1 + 0x3f0) = (int)uVar23;\n        }\n        uVar22 = (int)uVar23 + 1;\n        uVar23 = (ulong)uVar22;\n        puVar15 = puVar16 + 10;\n        if (*(uint *)(param_1 + 0x38) <= uVar22) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_002d643d;\n        }\n        uVar22 = puVar16[0xb];\n      }" { (expression_statement "puVar16 = puVar15;" (assignment_expression "puVar16 = puVar15" identifier = identifier) ;) (if_statement "if (0x10 < puVar15[5]) {\n          bVar4 = true;\n        }" if (parenthesized_expression "(0x10 < puVar15[5])" ( (binary_expression "0x10 < puVar15[5]" number_literal < (subscript_expression "puVar15[5]" identifier [ number_literal ])) )) (compound_statement "{\n          bVar4 = true;\n        }" { (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" identifier = true) ;) })) (labeled_statement "LAB_002d66e8:\n        lVar5 = 10;" statement_identifier : (expression_statement "lVar5 = 10;" (assignment_expression "lVar5 = 10" identifier = number_literal) ;)) (expression_statement "bVar25 = CARRY8((ulong)*puVar16,uVar3);" (assignment_expression "bVar25 = CARRY8((ulong)*puVar16,uVar3)" identifier = (call_expression "CARRY8((ulong)*puVar16,uVar3)" identifier (argument_list "((ulong)*puVar16,uVar3)" ( (binary_expression "(ulong)*puVar16" (parenthesized_expression "(ulong)" ( identifier )) * identifier) , identifier )))) ;) (expression_statement "pbVar20 = (byte *)(*puVar16 + uVar3);" (assignment_expression "pbVar20 = (byte *)(*puVar16 + uVar3)" identifier = (cast_expression "(byte *)(*puVar16 + uVar3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*puVar16 + uVar3)" ( (binary_expression "*puVar16 + uVar3" (pointer_expression "*puVar16" * identifier) + identifier) )))) ;) (expression_statement "bVar27 = pbVar20 == (byte *)0x0;" (assignment_expression "bVar27 = pbVar20 == (byte *)0x0" identifier = (binary_expression "pbVar20 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar17 = (byte *)".mips16.fn";" (assignment_expression "pbVar17 = (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 "pbVar19 = pbVar20;" (assignment_expression "pbVar19 = pbVar20" identifier = identifier) ;) (do_statement "do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);" do (compound_statement "{\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        }" { (if_statement "if (lVar5 == 0) break;" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar5 = lVar5 + -1;" (assignment_expression "lVar5 = lVar5 + -1" identifier = (binary_expression "lVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar17 < *pbVar19;" (assignment_expression "bVar25 = *pbVar17 < *pbVar19" identifier = (binary_expression "*pbVar17 < *pbVar19" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar27 = *pbVar17 == *pbVar19;" (assignment_expression "bVar27 = *pbVar17 == *pbVar19" identifier = (binary_expression "*pbVar17 == *pbVar19" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar28 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar28 * -2" identifier + (binary_expression "(ulong)bVar28 * -2" (cast_expression "(ulong)bVar28" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1" identifier = (binary_expression "pbVar19 + (ulong)bVar28 * -2 + 1" (binary_expression "pbVar19 + (ulong)bVar28 * -2" identifier + (binary_expression "(ulong)bVar28 * -2" (cast_expression "(ulong)bVar28" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar27)" ( identifier )) ;) (expression_statement "uVar14 = (ulong)((uint)(uVar23 >> 3) & 0x1ffffff8);" (assignment_expression "uVar14 = (ulong)((uint)(uVar23 >> 3) & 0x1ffffff8)" identifier = (call_expression "(ulong)((uint)(uVar23 >> 3) & 0x1ffffff8)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((uint)(uVar23 >> 3) & 0x1ffffff8)" ( (binary_expression "(uint)(uVar23 >> 3) & 0x1ffffff8" (call_expression "(uint)(uVar23 >> 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar23 >> 3)" ( (binary_expression "uVar23 >> 3" identifier >> number_literal) ))) & number_literal) )))) ;) (expression_statement "uVar10 = 1L << ((byte)uVar23 & 0x3f);" (assignment_expression "uVar10 = 1L << ((byte)uVar23 & 0x3f)" identifier = (binary_expression "1L << ((byte)uVar23 & 0x3f)" number_literal << (parenthesized_expression "((byte)uVar23 & 0x3f)" ( (binary_expression "(byte)uVar23 & 0x3f" (cast_expression "(byte)uVar23" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "puVar18 = (ulong *)(*(long *)(param_1 + 0x378) + uVar14);" (assignment_expression "puVar18 = (ulong *)(*(long *)(param_1 + 0x378) + uVar14)" identifier = (cast_expression "(ulong *)(*(long *)(param_1 + 0x378) + uVar14)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0x378) + uVar14)" ( (binary_expression "*(long *)(param_1 + 0x378) + uVar14" (pointer_expression "*(long *)(param_1 + 0x378)" * (cast_expression "(long *)(param_1 + 0x378)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x378)" ( (binary_expression "param_1 + 0x378" identifier + number_literal) )))) + identifier) )))) ;) (expression_statement "uVar21 = *puVar18;" (assignment_expression "uVar21 = *puVar18" identifier = (pointer_expression "*puVar18" * identifier)) ;) (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" identifier = false) ;) (expression_statement "bVar25 = (!bVar25 && !bVar27) == bVar25;" (assignment_expression "bVar25 = (!bVar25 && !bVar27) == bVar25" identifier = (binary_expression "(!bVar25 && !bVar27) == bVar25" (parenthesized_expression "(!bVar25 && !bVar27)" ( (binary_expression "!bVar25 && !bVar27" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar27" ! identifier)) )) == identifier)) ;) (expression_statement "uVar13 = uVar21 & ~uVar10;" (assignment_expression "uVar13 = uVar21 & ~uVar10" identifier = (binary_expression "uVar21 & ~uVar10" identifier & (unary_expression "~uVar10" ~ identifier))) ;) (if_statement "if (bVar25) {\n          uVar13 = uVar21 | uVar10;\n        }" if (parenthesized_expression "(bVar25)" ( identifier )) (compound_statement "{\n          uVar13 = uVar21 | uVar10;\n        }" { (expression_statement "uVar13 = uVar21 | uVar10;" (assignment_expression "uVar13 = uVar21 | uVar10" identifier = (binary_expression "uVar21 | uVar10" identifier | identifier)) ;) })) (expression_statement "*puVar18 = uVar13;" (assignment_expression "*puVar18 = uVar13" (pointer_expression "*puVar18" * identifier) = identifier) ;) (expression_statement "lVar5 = 0xd;" (assignment_expression "lVar5 = 0xd" identifier = number_literal) ;) (expression_statement "pbVar17 = (byte *)".mips16.call.";" (assignment_expression "pbVar17 = (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 "pbVar19 = pbVar20;" (assignment_expression "pbVar19 = pbVar20" identifier = identifier) ;) (do_statement "do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar26 = *pbVar17 < *pbVar19;\n          bVar25 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar25);" do (compound_statement "{\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar26 = *pbVar17 < *pbVar19;\n          bVar25 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        }" { (if_statement "if (lVar5 == 0) break;" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar5 = lVar5 + -1;" (assignment_expression "lVar5 = lVar5 + -1" identifier = (binary_expression "lVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar26 = *pbVar17 < *pbVar19;" (assignment_expression "bVar26 = *pbVar17 < *pbVar19" identifier = (binary_expression "*pbVar17 < *pbVar19" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar25 = *pbVar17 == *pbVar19;" (assignment_expression "bVar25 = *pbVar17 == *pbVar19" identifier = (binary_expression "*pbVar17 == *pbVar19" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar28 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar28 * -2" identifier + (binary_expression "(ulong)bVar28 * -2" (cast_expression "(ulong)bVar28" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1" identifier = (binary_expression "pbVar19 + (ulong)bVar28 * -2 + 1" (binary_expression "pbVar19 + (ulong)bVar28 * -2" identifier + (binary_expression "(ulong)bVar28 * -2" (cast_expression "(ulong)bVar28" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar25)" ( identifier )) ;) (expression_statement "puVar18 = (ulong *)(*(long *)(param_1 + 0x3a0) + uVar14);" (assignment_expression "puVar18 = (ulong *)(*(long *)(param_1 + 0x3a0) + uVar14)" identifier = (cast_expression "(ulong *)(*(long *)(param_1 + 0x3a0) + uVar14)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0x3a0) + uVar14)" ( (binary_expression "*(long *)(param_1 + 0x3a0) + uVar14" (pointer_expression "*(long *)(param_1 + 0x3a0)" * (cast_expression "(long *)(param_1 + 0x3a0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3a0)" ( (binary_expression "param_1 + 0x3a0" identifier + number_literal) )))) + identifier) )))) ;) (if_statement "if ((!bVar26 && !bVar25) == bVar26) {\n          uVar21 = *puVar18 | uVar10;\n        }\n        else {\n          uVar21 = ~uVar10 & *puVar18;\n        }" if (parenthesized_expression "((!bVar26 && !bVar25) == bVar26)" ( (binary_expression "(!bVar26 && !bVar25) == bVar26" (parenthesized_expression "(!bVar26 && !bVar25)" ( (binary_expression "!bVar26 && !bVar25" (unary_expression "!bVar26" ! identifier) && (unary_expression "!bVar25" ! identifier)) )) == identifier) )) (compound_statement "{\n          uVar21 = *puVar18 | uVar10;\n        }" { (expression_statement "uVar21 = *puVar18 | uVar10;" (assignment_expression "uVar21 = *puVar18 | uVar10" identifier = (binary_expression "*puVar18 | uVar10" (pointer_expression "*puVar18" * identifier) | identifier)) ;) }) (else_clause "else {\n          uVar21 = ~uVar10 & *puVar18;\n        }" else (compound_statement "{\n          uVar21 = ~uVar10 & *puVar18;\n        }" { (expression_statement "uVar21 = ~uVar10 & *puVar18;" (assignment_expression "uVar21 = ~uVar10 & *puVar18" identifier = (binary_expression "~uVar10 & *puVar18" (unary_expression "~uVar10" ~ identifier) & (pointer_expression "*puVar18" * identifier))) ;) }))) (expression_statement "bVar27 = uVar21 == 0;" (assignment_expression "bVar27 = uVar21 == 0" identifier = (binary_expression "uVar21 == 0" identifier == number_literal)) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "*puVar18 = uVar21;" (assignment_expression "*puVar18 = uVar21" (pointer_expression "*puVar18" * identifier) = identifier) ;) (expression_statement "lVar5 = 0x10;" (assignment_expression "lVar5 = 0x10" identifier = number_literal) ;) (expression_statement "pbVar17 = (byte *)".mips16.call.fp.";" (assignment_expression "pbVar17 = (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 "pbVar19 = pbVar20;" (assignment_expression "pbVar19 = pbVar20" identifier = identifier) ;) (do_statement "do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);" do (compound_statement "{\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        }" { (if_statement "if (lVar5 == 0) break;" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar5 = lVar5 + -1;" (assignment_expression "lVar5 = lVar5 + -1" identifier = (binary_expression "lVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar17 < *pbVar19;" (assignment_expression "bVar25 = *pbVar17 < *pbVar19" identifier = (binary_expression "*pbVar17 < *pbVar19" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar27 = *pbVar17 == *pbVar19;" (assignment_expression "bVar27 = *pbVar17 == *pbVar19" identifier = (binary_expression "*pbVar17 == *pbVar19" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar28 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar28 * -2" identifier + (binary_expression "(ulong)bVar28 * -2" (cast_expression "(ulong)bVar28" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1" identifier = (binary_expression "pbVar19 + (ulong)bVar28 * -2 + 1" (binary_expression "pbVar19 + (ulong)bVar28 * -2" identifier + (binary_expression "(ulong)bVar28 * -2" (cast_expression "(ulong)bVar28" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar27)" ( identifier )) ;) (expression_statement "puVar18 = (ulong *)(uVar14 + *(long *)(param_1 + 0x3c8));" (assignment_expression "puVar18 = (ulong *)(uVar14 + *(long *)(param_1 + 0x3c8))" identifier = (cast_expression "(ulong *)(uVar14 + *(long *)(param_1 + 0x3c8))" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar14 + *(long *)(param_1 + 0x3c8))" ( (binary_expression "uVar14 + *(long *)(param_1 + 0x3c8)" identifier + (pointer_expression "*(long *)(param_1 + 0x3c8)" * (cast_expression "(long *)(param_1 + 0x3c8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3c8)" ( (binary_expression "param_1 + 0x3c8" identifier + number_literal) ))))) )))) ;) (if_statement "if ((!bVar25 && !bVar27) == bVar25) {\n          uVar10 = uVar10 | *puVar18;\n        }\n        else {\n          uVar10 = ~uVar10 & *puVar18;\n        }" if (parenthesized_expression "((!bVar25 && !bVar27) == bVar25)" ( (binary_expression "(!bVar25 && !bVar27) == bVar25" (parenthesized_expression "(!bVar25 && !bVar27)" ( (binary_expression "!bVar25 && !bVar27" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar27" ! identifier)) )) == identifier) )) (compound_statement "{\n          uVar10 = uVar10 | *puVar18;\n        }" { (expression_statement "uVar10 = uVar10 | *puVar18;" (assignment_expression "uVar10 = uVar10 | *puVar18" identifier = (binary_expression "uVar10 | *puVar18" identifier | (pointer_expression "*puVar18" * identifier))) ;) }) (else_clause "else {\n          uVar10 = ~uVar10 & *puVar18;\n        }" else (compound_statement "{\n          uVar10 = ~uVar10 & *puVar18;\n        }" { (expression_statement "uVar10 = ~uVar10 & *puVar18;" (assignment_expression "uVar10 = ~uVar10 & *puVar18" identifier = (binary_expression "~uVar10 & *puVar18" (unary_expression "~uVar10" ~ identifier) & (pointer_expression "*puVar18" * identifier))) ;) }))) (expression_statement "bVar27 = uVar10 == 0;" (assignment_expression "bVar27 = uVar10 == 0" identifier = (binary_expression "uVar10 == 0" identifier == number_literal)) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "*puVar18 = uVar10;" (assignment_expression "*puVar18 = uVar10" (pointer_expression "*puVar18" * identifier) = identifier) ;) (expression_statement "lVar5 = 5;" (assignment_expression "lVar5 = 5" identifier = number_literal) ;) (expression_statement "pbVar17 = &DAT_0053357f;" (assignment_expression "pbVar17 = &DAT_0053357f" identifier = (pointer_expression "&DAT_0053357f" & identifier)) ;) (do_statement "do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar20 < *pbVar17;\n          bVar27 = *pbVar20 == *pbVar17;\n          pbVar20 = pbVar20 + (ulong)bVar28 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);" do (compound_statement "{\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar20 < *pbVar17;\n          bVar27 = *pbVar20 == *pbVar17;\n          pbVar20 = pbVar20 + (ulong)bVar28 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n        }" { (if_statement "if (lVar5 == 0) break;" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar5 = lVar5 + -1;" (assignment_expression "lVar5 = lVar5 + -1" identifier = (binary_expression "lVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar20 < *pbVar17;" (assignment_expression "bVar25 = *pbVar20 < *pbVar17" identifier = (binary_expression "*pbVar20 < *pbVar17" (pointer_expression "*pbVar20" * identifier) < (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "bVar27 = *pbVar20 == *pbVar17;" (assignment_expression "bVar27 = *pbVar20 == *pbVar17" identifier = (binary_expression "*pbVar20 == *pbVar17" (pointer_expression "*pbVar20" * identifier) == (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "pbVar20 = pbVar20 + (ulong)bVar28 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (ulong)bVar28 * -2 + 1" identifier = (binary_expression "pbVar20 + (ulong)bVar28 * -2 + 1" (binary_expression "pbVar20 + (ulong)bVar28 * -2" identifier + (binary_expression "(ulong)bVar28 * -2" (cast_expression "(ulong)bVar28" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar28 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar28 * -2" identifier + (binary_expression "(ulong)bVar28 * -2" (cast_expression "(ulong)bVar28" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar27)" ( identifier )) ;) (if_statement "if ((!bVar25 && !bVar27) == bVar25) {\n          if (*(int *)(param_1 + 0x3f0) != -1) goto LAB_002d68ff;\n          *(int *)(param_1 + 0x3f0) = (int)uVar23;\n        }" if (parenthesized_expression "((!bVar25 && !bVar27) == bVar25)" ( (binary_expression "(!bVar25 && !bVar27) == bVar25" (parenthesized_expression "(!bVar25 && !bVar27)" ( (binary_expression "!bVar25 && !bVar27" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar27" ! identifier)) )) == identifier) )) (compound_statement "{\n          if (*(int *)(param_1 + 0x3f0) != -1) goto LAB_002d68ff;\n          *(int *)(param_1 + 0x3f0) = (int)uVar23;\n        }" { (if_statement "if (*(int *)(param_1 + 0x3f0) != -1) goto LAB_002d68ff;" if (parenthesized_expression "(*(int *)(param_1 + 0x3f0) != -1)" ( (binary_expression "*(int *)(param_1 + 0x3f0) != -1" (pointer_expression "*(int *)(param_1 + 0x3f0)" * (cast_expression "(int *)(param_1 + 0x3f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3f0)" ( (binary_expression "param_1 + 0x3f0" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_002d68ff;" goto statement_identifier ;)) (expression_statement "*(int *)(param_1 + 0x3f0) = (int)uVar23;" (assignment_expression "*(int *)(param_1 + 0x3f0) = (int)uVar23" (pointer_expression "*(int *)(param_1 + 0x3f0)" * (cast_expression "(int *)(param_1 + 0x3f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3f0)" ( (binary_expression "param_1 + 0x3f0" identifier + number_literal) )))) = (cast_expression "(int)uVar23" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (expression_statement "uVar22 = (int)uVar23 + 1;" (assignment_expression "uVar22 = (int)uVar23 + 1" identifier = (binary_expression "(int)uVar23 + 1" (cast_expression "(int)uVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "uVar23 = (ulong)uVar22;" (assignment_expression "uVar23 = (ulong)uVar22" identifier = (cast_expression "(ulong)uVar22" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "puVar15 = puVar16 + 10;" (assignment_expression "puVar15 = puVar16 + 10" identifier = (binary_expression "puVar16 + 10" identifier + number_literal)) ;) (if_statement "if (*(uint *)(param_1 + 0x38) <= uVar22) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_002d643d;\n        }" if (parenthesized_expression "(*(uint *)(param_1 + 0x38) <= uVar22)" ( (binary_expression "*(uint *)(param_1 + 0x38) <= uVar22" (pointer_expression "*(uint *)(param_1 + 0x38)" * (cast_expression "(uint *)(param_1 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n          if (bVar4) {\n            return;\n          }\n          goto LAB_002d643d;\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_002d643d;" goto statement_identifier ;) })) (expression_statement "uVar22 = puVar16[0xb];" (assignment_expression "uVar22 = puVar16[0xb]" identifier = (subscript_expression "puVar16[0xb]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(uVar22 == 2)" ( (binary_expression "uVar22 == 2" identifier == number_literal) )) ;) (labeled_statement "LAB_002d6581:\n      puVar16 = puVar15;" statement_identifier : (expression_statement "puVar16 = puVar15;" (assignment_expression "puVar16 = puVar15" identifier = identifier) ;)) (if_statement "if (uVar22 != 3) {\n        if (uVar22 == 0x70000006) {\n          *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) | 4;\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          puVar11 = (undefined4 *)\n                    FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0);\n          *(undefined4 *)(param_1 + 0x368) = puVar11[5];\n          *(undefined4 *)(param_1 + 0x408) = *puVar11;\n          *(undefined4 *)(param_1 + 0x40c) = puVar11[1];\n          *(undefined4 *)(param_1 + 0x410) = puVar11[2];\n          *(undefined4 *)(param_1 + 0x414) = puVar11[3];\n          *(undefined4 *)(param_1 + 0x418) = puVar11[4];\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x6ffffff5) {\n          if (*(long *)(param_1 + 0x3f8) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          uVar6 = FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                               puVar15[4],uVar22,1,0);\n          uVar7 = FUN_0049cb70(0x10);\n                    \n          FUN_003362a0(uVar7,uVar6,uVar22);\n          *(undefined8 *)(param_1 + 0x3f8) = uVar7;\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000002a) {\n          if (*(long *)(param_1 + 0x400) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          psVar8 = (short *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0);\n          psVar9 = (short *)FUN_0049cb70(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 + 0x400) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined8 *)(param_1 + 8);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0034a750(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((long)psVar9 + 3) = *(undefined1 *)((long)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((long)psVar9 + 5) = *(undefined1 *)((long)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((long)psVar9 + 7) = *(undefined1 *)((long)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          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000000d) {\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          pcVar12 = (char *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0);\n          pcVar24 = pcVar12 + uVar22;\n          for (; pcVar12 + 8 <= pcVar24; pcVar12 = pcVar12 + bVar1) {\n            bVar1 = pcVar12[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined8 *)(param_1 + 8);\n              pcVar24 = ".MIPS.options";\n              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);\n              break;\n            }\n            if (*pcVar12 == '\x01') {\n              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }" if (parenthesized_expression "(uVar22 != 3)" ( (binary_expression "uVar22 != 3" identifier != number_literal) )) (compound_statement "{\n        if (uVar22 == 0x70000006) {\n          *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) | 4;\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          puVar11 = (undefined4 *)\n                    FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0);\n          *(undefined4 *)(param_1 + 0x368) = puVar11[5];\n          *(undefined4 *)(param_1 + 0x408) = *puVar11;\n          *(undefined4 *)(param_1 + 0x40c) = puVar11[1];\n          *(undefined4 *)(param_1 + 0x410) = puVar11[2];\n          *(undefined4 *)(param_1 + 0x414) = puVar11[3];\n          *(undefined4 *)(param_1 + 0x418) = puVar11[4];\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x6ffffff5) {\n          if (*(long *)(param_1 + 0x3f8) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          uVar6 = FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                               puVar15[4],uVar22,1,0);\n          uVar7 = FUN_0049cb70(0x10);\n                    \n          FUN_003362a0(uVar7,uVar6,uVar22);\n          *(undefined8 *)(param_1 + 0x3f8) = uVar7;\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000002a) {\n          if (*(long *)(param_1 + 0x400) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          psVar8 = (short *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0);\n          psVar9 = (short *)FUN_0049cb70(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 + 0x400) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined8 *)(param_1 + 8);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0034a750(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((long)psVar9 + 3) = *(undefined1 *)((long)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((long)psVar9 + 5) = *(undefined1 *)((long)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((long)psVar9 + 7) = *(undefined1 *)((long)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          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000000d) {\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          pcVar12 = (char *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0);\n          pcVar24 = pcVar12 + uVar22;\n          for (; pcVar12 + 8 <= pcVar24; pcVar12 = pcVar12 + bVar1) {\n            bVar1 = pcVar12[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined8 *)(param_1 + 8);\n              pcVar24 = ".MIPS.options";\n              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);\n              break;\n            }\n            if (*pcVar12 == '\x01') {\n              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }" { (if_statement "if (uVar22 == 0x70000006) {\n          *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) | 4;\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          puVar11 = (undefined4 *)\n                    FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0);\n          *(undefined4 *)(param_1 + 0x368) = puVar11[5];\n          *(undefined4 *)(param_1 + 0x408) = *puVar11;\n          *(undefined4 *)(param_1 + 0x40c) = puVar11[1];\n          *(undefined4 *)(param_1 + 0x410) = puVar11[2];\n          *(undefined4 *)(param_1 + 0x414) = puVar11[3];\n          *(undefined4 *)(param_1 + 0x418) = puVar11[4];\n          uVar22 = puVar15[1];\n        }" if (parenthesized_expression "(uVar22 == 0x70000006)" ( (binary_expression "uVar22 == 0x70000006" identifier == number_literal) )) (compound_statement "{\n          *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) | 4;\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          puVar11 = (undefined4 *)\n                    FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0);\n          *(undefined4 *)(param_1 + 0x368) = puVar11[5];\n          *(undefined4 *)(param_1 + 0x408) = *puVar11;\n          *(undefined4 *)(param_1 + 0x40c) = puVar11[1];\n          *(undefined4 *)(param_1 + 0x410) = puVar11[2];\n          *(undefined4 *)(param_1 + 0x414) = puVar11[3];\n          *(undefined4 *)(param_1 + 0x418) = puVar11[4];\n          uVar22 = puVar15[1];\n        }" { (expression_statement "*(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) | 4;" (assignment_expression "*(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) | 4" (pointer_expression "*(byte *)(param_1 + 0x36c)" * (cast_expression "(byte *)(param_1 + 0x36c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x36c)" ( (binary_expression "param_1 + 0x36c" identifier + number_literal) )))) = (binary_expression "*(byte *)(param_1 + 0x36c) | 4" (pointer_expression "*(byte *)(param_1 + 0x36c)" * (cast_expression "(byte *)(param_1 + 0x36c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x36c)" ( (binary_expression "param_1 + 0x36c" identifier + number_literal) )))) | number_literal)) ;) (if_statement "if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;" if (parenthesized_expression "(*(long *)(param_1 + 0x28) == 0)" ( (binary_expression "*(long *)(param_1 + 0x28) == 0" (pointer_expression "*(long *)(param_1 + 0x28)" * (cast_expression "(long *)(param_1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_002d68fa;" goto statement_identifier ;)) (expression_statement "puVar11 = (undefined4 *)\n                    FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0);" (assignment_expression "puVar11 = (undefined4 *)\n                    FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0)" identifier = (cast_expression "(undefined4 *)\n                    FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0)" identifier (argument_list "(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0)" ( (binary_expression "*(long *)(param_1 + 0x28) + 0x28" (pointer_expression "*(long *)(param_1 + 0x28)" * (cast_expression "(long *)(param_1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) + number_literal) , (pointer_expression "*(undefined8 *)(param_1 + 0x30)" * (cast_expression "(undefined8 *)(param_1 + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) , (subscript_expression "puVar15[4]" identifier [ number_literal ]) , (subscript_expression "puVar15[5]" identifier [ number_literal ]) , number_literal , number_literal ))))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x368) = puVar11[5];" (assignment_expression "*(undefined4 *)(param_1 + 0x368) = puVar11[5]" (pointer_expression "*(undefined4 *)(param_1 + 0x368)" * (cast_expression "(undefined4 *)(param_1 + 0x368)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x368)" ( (binary_expression "param_1 + 0x368" identifier + number_literal) )))) = (subscript_expression "puVar11[5]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(param_1 + 0x408) = *puVar11;" (assignment_expression "*(undefined4 *)(param_1 + 0x408) = *puVar11" (pointer_expression "*(undefined4 *)(param_1 + 0x408)" * (cast_expression "(undefined4 *)(param_1 + 0x408)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x408)" ( (binary_expression "param_1 + 0x408" identifier + number_literal) )))) = (pointer_expression "*puVar11" * identifier)) ;) (expression_statement "*(undefined4 *)(param_1 + 0x40c) = puVar11[1];" (assignment_expression "*(undefined4 *)(param_1 + 0x40c) = puVar11[1]" (pointer_expression "*(undefined4 *)(param_1 + 0x40c)" * (cast_expression "(undefined4 *)(param_1 + 0x40c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40c)" ( (binary_expression "param_1 + 0x40c" identifier + number_literal) )))) = (subscript_expression "puVar11[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(param_1 + 0x410) = puVar11[2];" (assignment_expression "*(undefined4 *)(param_1 + 0x410) = puVar11[2]" (pointer_expression "*(undefined4 *)(param_1 + 0x410)" * (cast_expression "(undefined4 *)(param_1 + 0x410)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x410)" ( (binary_expression "param_1 + 0x410" identifier + number_literal) )))) = (subscript_expression "puVar11[2]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(param_1 + 0x414) = puVar11[3];" (assignment_expression "*(undefined4 *)(param_1 + 0x414) = puVar11[3]" (pointer_expression "*(undefined4 *)(param_1 + 0x414)" * (cast_expression "(undefined4 *)(param_1 + 0x414)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x414)" ( (binary_expression "param_1 + 0x414" identifier + number_literal) )))) = (subscript_expression "puVar11[3]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(param_1 + 0x418) = puVar11[4];" (assignment_expression "*(undefined4 *)(param_1 + 0x418) = puVar11[4]" (pointer_expression "*(undefined4 *)(param_1 + 0x418)" * (cast_expression "(undefined4 *)(param_1 + 0x418)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x418)" ( (binary_expression "param_1 + 0x418" identifier + number_literal) )))) = (subscript_expression "puVar11[4]" identifier [ number_literal ])) ;) (expression_statement "uVar22 = puVar15[1];" (assignment_expression "uVar22 = puVar15[1]" identifier = (subscript_expression "puVar15[1]" identifier [ number_literal ])) ;) })) (if_statement "if (uVar22 == 0x6ffffff5) {\n          if (*(long *)(param_1 + 0x3f8) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          uVar6 = FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                               puVar15[4],uVar22,1,0);\n          uVar7 = FUN_0049cb70(0x10);\n                    \n          FUN_003362a0(uVar7,uVar6,uVar22);\n          *(undefined8 *)(param_1 + 0x3f8) = uVar7;\n          uVar22 = puVar15[1];\n        }" if (parenthesized_expression "(uVar22 == 0x6ffffff5)" ( (binary_expression "uVar22 == 0x6ffffff5" identifier == number_literal) )) (compound_statement "{\n          if (*(long *)(param_1 + 0x3f8) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          uVar6 = FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                               puVar15[4],uVar22,1,0);\n          uVar7 = FUN_0049cb70(0x10);\n                    \n          FUN_003362a0(uVar7,uVar6,uVar22);\n          *(undefined8 *)(param_1 + 0x3f8) = uVar7;\n          uVar22 = puVar15[1];\n        }" { (if_statement "if (*(long *)(param_1 + 0x3f8) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }" if (parenthesized_expression "(*(long *)(param_1 + 0x3f8) != 0)" ( (binary_expression "*(long *)(param_1 + 0x3f8) != 0" (pointer_expression "*(long *)(param_1 + 0x3f8)" * (cast_expression "(long *)(param_1 + 0x3f8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3f8)" ( (binary_expression "param_1 + 0x3f8" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }" { (expression_statement "FUN_00352af0("../../gold/mips.cc",0x1adf,"do_read_symbols");" (call_expression "FUN_00352af0("../../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 "uVar22 = puVar15[5];" (assignment_expression "uVar22 = puVar15[5]" identifier = (subscript_expression "puVar15[5]" identifier [ number_literal ])) ;) (if_statement "if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;" if (parenthesized_expression "(*(long *)(param_1 + 0x28) == 0)" ( (binary_expression "*(long *)(param_1 + 0x28) == 0" (pointer_expression "*(long *)(param_1 + 0x28)" * (cast_expression "(long *)(param_1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_002d68fa;" goto statement_identifier ;)) (expression_statement "uVar6 = FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                               puVar15[4],uVar22,1,0);" (assignment_expression "uVar6 = FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                               puVar15[4],uVar22,1,0)" identifier = (call_expression "FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                               puVar15[4],uVar22,1,0)" identifier (argument_list "(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                               puVar15[4],uVar22,1,0)" ( (binary_expression "*(long *)(param_1 + 0x28) + 0x28" (pointer_expression "*(long *)(param_1 + 0x28)" * (cast_expression "(long *)(param_1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) + number_literal) , (pointer_expression "*(undefined8 *)(param_1 + 0x30)" * (cast_expression "(undefined8 *)(param_1 + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) , (subscript_expression "puVar15[4]" identifier [ number_literal ]) , identifier , number_literal , number_literal )))) ;) (expression_statement "uVar7 = FUN_0049cb70(0x10);" (assignment_expression "uVar7 = FUN_0049cb70(0x10)" identifier = (call_expression "FUN_0049cb70(0x10)" identifier (argument_list "(0x10)" ( number_literal )))) ;) (expression_statement "FUN_003362a0(uVar7,uVar6,uVar22);" (call_expression "FUN_003362a0(uVar7,uVar6,uVar22)" identifier (argument_list "(uVar7,uVar6,uVar22)" ( identifier , identifier , identifier ))) ;) (expression_statement "*(undefined8 *)(param_1 + 0x3f8) = uVar7;" (assignment_expression "*(undefined8 *)(param_1 + 0x3f8) = uVar7" (pointer_expression "*(undefined8 *)(param_1 + 0x3f8)" * (cast_expression "(undefined8 *)(param_1 + 0x3f8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3f8)" ( (binary_expression "param_1 + 0x3f8" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar22 = puVar15[1];" (assignment_expression "uVar22 = puVar15[1]" identifier = (subscript_expression "puVar15[1]" identifier [ number_literal ])) ;) })) (if_statement "if (uVar22 == 0x7000002a) {\n          if (*(long *)(param_1 + 0x400) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          psVar8 = (short *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0);\n          psVar9 = (short *)FUN_0049cb70(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 + 0x400) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined8 *)(param_1 + 8);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0034a750(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((long)psVar9 + 3) = *(undefined1 *)((long)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((long)psVar9 + 5) = *(undefined1 *)((long)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((long)psVar9 + 7) = *(undefined1 *)((long)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          uVar22 = puVar15[1];\n        }" if (parenthesized_expression "(uVar22 == 0x7000002a)" ( (binary_expression "uVar22 == 0x7000002a" identifier == number_literal) )) (compound_statement "{\n          if (*(long *)(param_1 + 0x400) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          psVar8 = (short *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0);\n          psVar9 = (short *)FUN_0049cb70(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 + 0x400) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined8 *)(param_1 + 8);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0034a750(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((long)psVar9 + 3) = *(undefined1 *)((long)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((long)psVar9 + 5) = *(undefined1 *)((long)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((long)psVar9 + 7) = *(undefined1 *)((long)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          uVar22 = puVar15[1];\n        }" { (if_statement "if (*(long *)(param_1 + 0x400) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }" if (parenthesized_expression "(*(long *)(param_1 + 0x400) != 0)" ( (binary_expression "*(long *)(param_1 + 0x400) != 0" (pointer_expression "*(long *)(param_1 + 0x400)" * (cast_expression "(long *)(param_1 + 0x400)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x400)" ( (binary_expression "param_1 + 0x400" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }" { (expression_statement "FUN_00352af0("../../gold/mips.cc",0x1aeb,"do_read_symbols");" (call_expression "FUN_00352af0("../../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 ") ))) ;) })) (if_statement "if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;" if (parenthesized_expression "(*(long *)(param_1 + 0x28) == 0)" ( (binary_expression "*(long *)(param_1 + 0x28) == 0" (pointer_expression "*(long *)(param_1 + 0x28)" * (cast_expression "(long *)(param_1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_002d68fa;" goto statement_identifier ;)) (expression_statement "psVar8 = (short *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0);" (assignment_expression "psVar8 = (short *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0)" identifier = (cast_expression "(short *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0)" identifier (argument_list "(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0)" ( (binary_expression "*(long *)(param_1 + 0x28) + 0x28" (pointer_expression "*(long *)(param_1 + 0x28)" * (cast_expression "(long *)(param_1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) + number_literal) , (pointer_expression "*(undefined8 *)(param_1 + 0x30)" * (cast_expression "(undefined8 *)(param_1 + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) , (subscript_expression "puVar15[4]" identifier [ number_literal ]) , (subscript_expression "puVar15[5]" identifier [ number_literal ]) , number_literal , number_literal ))))) ;) (expression_statement "psVar9 = (short *)FUN_0049cb70(0x18);" (assignment_expression "psVar9 = (short *)FUN_0049cb70(0x18)" identifier = (cast_expression "(short *)FUN_0049cb70(0x18)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0049cb70(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 + 0x400) = psVar9;" (assignment_expression "*(short **)(param_1 + 0x400) = psVar9" (pointer_expression "*(short **)(param_1 + 0x400)" * (cast_expression "(short **)(param_1 + 0x400)" ( (type_descriptor "short **" (sized_type_specifier "short" short) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x400)" ( (binary_expression "param_1 + 0x400" identifier + number_literal) )))) = identifier) ;) (expression_statement "*psVar9 = sVar2;" (assignment_expression "*psVar9 = sVar2" (pointer_expression "*psVar9" * identifier) = identifier) ;) (if_statement "if (sVar2 != 0) {\n            uVar6 = *(undefined8 *)(param_1 + 8);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0034a750(uVar7,uVar6,sVar2);\n            return;\n          }" if (parenthesized_expression "(sVar2 != 0)" ( (binary_expression "sVar2 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar6 = *(undefined8 *)(param_1 + 8);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0034a750(uVar7,uVar6,sVar2);\n            return;\n          }" { (expression_statement "uVar6 = *(undefined8 *)(param_1 + 8);" (assignment_expression "uVar6 = *(undefined8 *)(param_1 + 8)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 8)" * (cast_expression "(undefined8 *)(param_1 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" 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_0034a750(uVar7,uVar6,sVar2);" (call_expression "FUN_0034a750(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 *)((long)psVar9 + 3) = *(undefined1 *)((long)psVar8 + 3);" (assignment_expression "*(undefined1 *)((long)psVar9 + 3) = *(undefined1 *)((long)psVar8 + 3)" (pointer_expression "*(undefined1 *)((long)psVar9 + 3)" * (cast_expression "(undefined1 *)((long)psVar9 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)psVar9 + 3)" ( (binary_expression "(long)psVar9 + 3" (cast_expression "(long)psVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((long)psVar8 + 3)" * (cast_expression "(undefined1 *)((long)psVar8 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)psVar8 + 3)" ( (binary_expression "(long)psVar8 + 3" (cast_expression "(long)psVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) 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 *)((long)psVar9 + 5) = *(undefined1 *)((long)psVar8 + 5);" (assignment_expression "*(undefined1 *)((long)psVar9 + 5) = *(undefined1 *)((long)psVar8 + 5)" (pointer_expression "*(undefined1 *)((long)psVar9 + 5)" * (cast_expression "(undefined1 *)((long)psVar9 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)psVar9 + 5)" ( (binary_expression "(long)psVar9 + 5" (cast_expression "(long)psVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((long)psVar8 + 5)" * (cast_expression "(undefined1 *)((long)psVar8 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)psVar8 + 5)" ( (binary_expression "(long)psVar8 + 5" (cast_expression "(long)psVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) 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 *)((long)psVar9 + 7) = *(undefined1 *)((long)psVar8 + 7);" (assignment_expression "*(undefined1 *)((long)psVar9 + 7) = *(undefined1 *)((long)psVar8 + 7)" (pointer_expression "*(undefined1 *)((long)psVar9 + 7)" * (cast_expression "(undefined1 *)((long)psVar9 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)psVar9 + 7)" ( (binary_expression "(long)psVar9 + 7" (cast_expression "(long)psVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((long)psVar8 + 7)" * (cast_expression "(undefined1 *)((long)psVar8 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)psVar8 + 7)" ( (binary_expression "(long)psVar8 + 7" (cast_expression "(long)psVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) 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 "uVar22 = puVar15[1];" (assignment_expression "uVar22 = puVar15[1]" identifier = (subscript_expression "puVar15[1]" identifier [ number_literal ])) ;) })) (if_statement "if (uVar22 == 0x7000000d) {\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          pcVar12 = (char *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0);\n          pcVar24 = pcVar12 + uVar22;\n          for (; pcVar12 + 8 <= pcVar24; pcVar12 = pcVar12 + bVar1) {\n            bVar1 = pcVar12[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined8 *)(param_1 + 8);\n              pcVar24 = ".MIPS.options";\n              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);\n              break;\n            }\n            if (*pcVar12 == '\x01') {\n              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);\n            }\n          }\n        }" if (parenthesized_expression "(uVar22 == 0x7000000d)" ( (binary_expression "uVar22 == 0x7000000d" identifier == number_literal) )) (compound_statement "{\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          pcVar12 = (char *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0);\n          pcVar24 = pcVar12 + uVar22;\n          for (; pcVar12 + 8 <= pcVar24; pcVar12 = pcVar12 + bVar1) {\n            bVar1 = pcVar12[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined8 *)(param_1 + 8);\n              pcVar24 = ".MIPS.options";\n              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);\n              break;\n            }\n            if (*pcVar12 == '\x01') {\n              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);\n            }\n          }\n        }" { (expression_statement "uVar22 = puVar15[5];" (assignment_expression "uVar22 = puVar15[5]" identifier = (subscript_expression "puVar15[5]" identifier [ number_literal ])) ;) (if_statement "if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;" if (parenthesized_expression "(*(long *)(param_1 + 0x28) == 0)" ( (binary_expression "*(long *)(param_1 + 0x28) == 0" (pointer_expression "*(long *)(param_1 + 0x28)" * (cast_expression "(long *)(param_1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_002d68fa;" goto statement_identifier ;)) (expression_statement "pcVar12 = (char *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0);" (assignment_expression "pcVar12 = (char *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0)" identifier = (cast_expression "(char *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0)" identifier (argument_list "(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0)" ( (binary_expression "*(long *)(param_1 + 0x28) + 0x28" (pointer_expression "*(long *)(param_1 + 0x28)" * (cast_expression "(long *)(param_1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) + number_literal) , (pointer_expression "*(undefined8 *)(param_1 + 0x30)" * (cast_expression "(undefined8 *)(param_1 + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) , (subscript_expression "puVar15[4]" identifier [ number_literal ]) , (cast_expression "(ulong)uVar22" ( (type_descriptor "ulong" type_identifier) ) identifier) , number_literal , number_literal ))))) ;) (expression_statement "pcVar24 = pcVar12 + uVar22;" (assignment_expression "pcVar24 = pcVar12 + uVar22" identifier = (binary_expression "pcVar12 + uVar22" identifier + identifier)) ;) (for_statement "for (; pcVar12 + 8 <= pcVar24; pcVar12 = pcVar12 + bVar1) {\n            bVar1 = pcVar12[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined8 *)(param_1 + 8);\n              pcVar24 = ".MIPS.options";\n              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);\n              break;\n            }\n            if (*pcVar12 == '\x01') {\n              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);\n            }\n          }" for ( ; (binary_expression "pcVar12 + 8 <= pcVar24" (binary_expression "pcVar12 + 8" identifier + number_literal) <= identifier) ; (assignment_expression "pcVar12 = pcVar12 + bVar1" identifier = (binary_expression "pcVar12 + bVar1" identifier + identifier)) ) (compound_statement "{\n            bVar1 = pcVar12[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined8 *)(param_1 + 8);\n              pcVar24 = ".MIPS.options";\n              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);\n              break;\n            }\n            if (*pcVar12 == '\x01') {\n              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);\n            }\n          }" { (expression_statement "bVar1 = pcVar12[1];" (assignment_expression "bVar1 = pcVar12[1]" identifier = (subscript_expression "pcVar12[1]" identifier [ number_literal ])) ;) (if_statement "if (bVar1 < 8) {\n              uVar6 = *(undefined8 *)(param_1 + 8);\n              pcVar24 = ".MIPS.options";\n              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);\n              break;\n            }" if (parenthesized_expression "(bVar1 < 8)" ( (binary_expression "bVar1 < 8" identifier < number_literal) )) (compound_statement "{\n              uVar6 = *(undefined8 *)(param_1 + 8);\n              pcVar24 = ".MIPS.options";\n              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);\n              break;\n            }" { (expression_statement "uVar6 = *(undefined8 *)(param_1 + 8);" (assignment_expression "uVar6 = *(undefined8 *)(param_1 + 8)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 8)" * (cast_expression "(undefined8 *)(param_1 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "pcVar24 = ".MIPS.options";" (assignment_expression "pcVar24 = ".MIPS.options"" identifier = (string_literal "".MIPS.options"" " string_content ")) ;) (if_statement "if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }" if (parenthesized_expression "((*(byte *)(param_1 + 0x36c) & 2) == 0)" ( (binary_expression "(*(byte *)(param_1 + 0x36c) & 2) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x36c) & 2)" ( (binary_expression "*(byte *)(param_1 + 0x36c) & 2" (pointer_expression "*(byte *)(param_1 + 0x36c)" * (cast_expression "(byte *)(param_1 + 0x36c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x36c)" ( (binary_expression "param_1 + 0x36c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                pcVar24 = ".options";\n              }" { (expression_statement "pcVar24 = ".options";" (assignment_expression "pcVar24 = ".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_0034a750(uVar7,uVar6,pcVar24,bVar1);" (call_expression "FUN_0034a750(uVar7,uVar6,pcVar24,bVar1)" identifier (argument_list "(uVar7,uVar6,pcVar24,bVar1)" ( identifier , identifier , identifier , identifier ))) ;) (break_statement "break;" break ;) })) (if_statement "if (*pcVar12 == '\x01') {\n              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);\n            }" if (parenthesized_expression "(*pcVar12 == '\x01')" ( (binary_expression "*pcVar12 == '\x01'" (pointer_expression "*pcVar12" * identifier) == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);\n            }" { (expression_statement "*(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);" (assignment_expression "*(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c)" (pointer_expression "*(undefined4 *)(param_1 + 0x368)" * (cast_expression "(undefined4 *)(param_1 + 0x368)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x368)" ( (binary_expression "param_1 + 0x368" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(pcVar12 + 0x1c)" * (cast_expression "(undefined4 *)(pcVar12 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x1c)" ( (binary_expression "pcVar12 + 0x1c" identifier + number_literal) ))))) ;) })) })) })) (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" identifier = true) ;) })) (goto_statement "goto LAB_002d66e8;" goto statement_identifier ;) })) }) (else_clause "else if (uVar22 != 2) {\n                    \n    FUN_00352af0("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }" else (if_statement "if (uVar22 != 2) {\n                    \n    FUN_00352af0("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }" if (parenthesized_expression "(uVar22 != 2)" ( (binary_expression "uVar22 != 2" identifier != number_literal) )) (compound_statement "{\n                    \n    FUN_00352af0("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }" { (expression_statement "FUN_00352af0("../../gold/mips.cc",0x1a9a,"do_read_symbols");" (call_expression "FUN_00352af0("../../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_002d643d:\n  *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) & 0xf7;" statement_identifier : (expression_statement "*(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) & 0xf7;" (assignment_expression "*(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) & 0xf7" (pointer_expression "*(byte *)(param_1 + 0x36c)" * (cast_expression "(byte *)(param_1 + 0x36c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x36c)" ( (binary_expression "param_1 + 0x36c" identifier + number_literal) )))) = (binary_expression "*(byte *)(param_1 + 0x36c) & 0xf7" (pointer_expression "*(byte *)(param_1 + 0x36c)" * (cast_expression "(byte *)(param_1 + 0x36c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x36c)" ( (binary_expression "param_1 + 0x36c" identifier + number_literal) )))) & number_literal)) ;)) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration (sized_type_specifier short) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) 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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE 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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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 IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , 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 (sized_type_specifier long) (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (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 ( (binary_expression (parenthesized_expression ( IDENT )) * IDENT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + 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 = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * 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 * 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 (sized_type_specifier long) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (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) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 ])) ;) }) while (parenthesized_expression ( (binary_expression IDENT == LIT) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (subscript_expression IDENT [ 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 (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 ])) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (subscript_expression IDENT [ LIT ]) , IDENT , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (subscript_expression IDENT [ 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 (sized_type_specifier long)) ) IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) 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 (sized_type_specifier long)) ) IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) 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 (sized_type_specifier long)) ) IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) 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 (sized_type_specifier long) (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (subscript_expression IDENT [ LIT ]) , (cast_expression ( (type_descriptor TYPE) ) 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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 ))) ;) (break_statement break ;) })) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;)) (return_statement return ;) })))
(function_definition "void FUN_002d6400(long param_1,long *param_2)\n\n{\n  byte bVar1;\n  short sVar2;\n  ulong uVar3;\n  bool bVar4;\n  long lVar5;\n  undefined8 uVar6;\n  undefined8 uVar7;\n  short *psVar8;\n  short *psVar9;\n  ulong uVar10;\n  undefined4 *puVar11;\n  char *pcVar12;\n  ulong uVar13;\n  ulong uVar14;\n  uint *puVar15;\n  uint *puVar16;\n  byte *pbVar17;\n  ulong *puVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  ulong uVar21;\n  uint uVar22;\n  ulong uVar23;\n  char *pcVar24;\n  bool bVar25;\n  bool bVar26;\n  bool bVar27;\n  byte bVar28;\n  \n  bVar28 = 0;\n  FUN_003b79e0();\n  lVar5 = *(long *)(param_1 + 0x28);\n  if (lVar5 == 0) {\nLAB_002d68fa:\n    FUN_00290dc0();\nLAB_002d68ff:\n                    \n    FUN_00352af0("../../gold/mips.cc",0x1b6f,"do_read_symbols");\n  }\n  uVar22 = *(uint *)(lVar5 + 0xe4);\n  uVar23 = (ulong)uVar22;\n  if (uVar22 == 1) {\n    lVar5 = FUN_0034d600(lVar5 + 0x28,*(undefined8 *)(param_1 + 0x30),0,0x34,1,0);\n    *(undefined4 *)(param_1 + 0x220) = *(undefined4 *)(lVar5 + 0x24);\n    uVar3 = *(ulong *)(param_2[1] + 0x10);\n    FUN_0022a2b0(param_1 + 0x378,*(undefined4 *)(param_1 + 0x38),0);\n    FUN_0022a2b0(param_1 + 0x3a0,*(undefined4 *)(param_1 + 0x38),0);\n    FUN_0022a2b0(param_1 + 0x3c8,*(undefined4 *)(param_1 + 0x38),0);\n    bVar4 = false;\n    puVar15 = (uint *)(*(long *)(*param_2 + 0x10) + 0x28);\n    if (1 < *(uint *)(param_1 + 0x38)) {\n      uVar22 = *(uint *)(*(long *)(*param_2 + 0x10) + 0x2c);\n      if (uVar22 != 2) goto LAB_002d6581;\n      do {\n        puVar16 = puVar15;\n        if (0x10 < puVar15[5]) {\n          bVar4 = true;\n        }\nLAB_002d66e8:\n        lVar5 = 10;\n        bVar25 = CARRY8((ulong)*puVar16,uVar3);\n        pbVar20 = (byte *)(*puVar16 + uVar3);\n        bVar27 = pbVar20 == (byte *)0x0;\n        pbVar17 = (byte *)".mips16.fn";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        uVar14 = (ulong)((uint)(uVar23 >> 3) & 0x1ffffff8);\n        uVar10 = 1L << ((byte)uVar23 & 0x3f);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x378) + uVar14);\n        uVar21 = *puVar18;\n        bVar26 = false;\n        bVar25 = (!bVar25 && !bVar27) == bVar25;\n        uVar13 = uVar21 & ~uVar10;\n        if (bVar25) {\n          uVar13 = uVar21 | uVar10;\n        }\n        *puVar18 = uVar13;\n        lVar5 = 0xd;\n        pbVar17 = (byte *)".mips16.call.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar26 = *pbVar17 < *pbVar19;\n          bVar25 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar25);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x3a0) + uVar14);\n        if ((!bVar26 && !bVar25) == bVar26) {\n          uVar21 = *puVar18 | uVar10;\n        }\n        else {\n          uVar21 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar21 == 0;\n        bVar25 = false;\n        *puVar18 = uVar21;\n        lVar5 = 0x10;\n        pbVar17 = (byte *)".mips16.call.fp.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        puVar18 = (ulong *)(uVar14 + *(long *)(param_1 + 0x3c8));\n        if ((!bVar25 && !bVar27) == bVar25) {\n          uVar10 = uVar10 | *puVar18;\n        }\n        else {\n          uVar10 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar10 == 0;\n        bVar25 = false;\n        *puVar18 = uVar10;\n        lVar5 = 5;\n        pbVar17 = &DAT_0053357f;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar20 < *pbVar17;\n          bVar27 = *pbVar20 == *pbVar17;\n          pbVar20 = pbVar20 + (ulong)bVar28 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        if ((!bVar25 && !bVar27) == bVar25) {\n          if (*(int *)(param_1 + 0x3f0) != -1) goto LAB_002d68ff;\n          *(int *)(param_1 + 0x3f0) = (int)uVar23;\n        }\n        uVar22 = (int)uVar23 + 1;\n        uVar23 = (ulong)uVar22;\n        puVar15 = puVar16 + 10;\n        if (*(uint *)(param_1 + 0x38) <= uVar22) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_002d643d;\n        }\n        uVar22 = puVar16[0xb];\n      } while (uVar22 == 2);\nLAB_002d6581:\n      puVar16 = puVar15;\n      if (uVar22 != 3) {\n        if (uVar22 == 0x70000006) {\n          *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) | 4;\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          puVar11 = (undefined4 *)\n                    FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0);\n          *(undefined4 *)(param_1 + 0x368) = puVar11[5];\n          *(undefined4 *)(param_1 + 0x408) = *puVar11;\n          *(undefined4 *)(param_1 + 0x40c) = puVar11[1];\n          *(undefined4 *)(param_1 + 0x410) = puVar11[2];\n          *(undefined4 *)(param_1 + 0x414) = puVar11[3];\n          *(undefined4 *)(param_1 + 0x418) = puVar11[4];\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x6ffffff5) {\n          if (*(long *)(param_1 + 0x3f8) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          uVar6 = FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                               puVar15[4],uVar22,1,0);\n          uVar7 = FUN_0049cb70(0x10);\n                    \n          FUN_003362a0(uVar7,uVar6,uVar22);\n          *(undefined8 *)(param_1 + 0x3f8) = uVar7;\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000002a) {\n          if (*(long *)(param_1 + 0x400) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          psVar8 = (short *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0);\n          psVar9 = (short *)FUN_0049cb70(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 + 0x400) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined8 *)(param_1 + 8);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0034a750(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((long)psVar9 + 3) = *(undefined1 *)((long)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((long)psVar9 + 5) = *(undefined1 *)((long)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((long)psVar9 + 7) = *(undefined1 *)((long)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          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000000d) {\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          pcVar12 = (char *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0);\n          pcVar24 = pcVar12 + uVar22;\n          for (; pcVar12 + 8 <= pcVar24; pcVar12 = pcVar12 + bVar1) {\n            bVar1 = pcVar12[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined8 *)(param_1 + 8);\n              pcVar24 = ".MIPS.options";\n              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);\n              break;\n            }\n            if (*pcVar12 == '\x01') {\n              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }\n      goto LAB_002d66e8;\n    }\n  }\n  else if (uVar22 != 2) {\n                    \n    FUN_00352af0("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }\nLAB_002d643d:\n  *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) & 0xf7;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_002d6400(long param_1,long *param_2)" (identifier "FUN_002d6400") (parameter_list "(long param_1,long *param_2)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "long *param_2" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  byte bVar1;\n  short sVar2;\n  ulong uVar3;\n  bool bVar4;\n  long lVar5;\n  undefined8 uVar6;\n  undefined8 uVar7;\n  short *psVar8;\n  short *psVar9;\n  ulong uVar10;\n  undefined4 *puVar11;\n  char *pcVar12;\n  ulong uVar13;\n  ulong uVar14;\n  uint *puVar15;\n  uint *puVar16;\n  byte *pbVar17;\n  ulong *puVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  ulong uVar21;\n  uint uVar22;\n  ulong uVar23;\n  char *pcVar24;\n  bool bVar25;\n  bool bVar26;\n  bool bVar27;\n  byte bVar28;\n  \n  bVar28 = 0;\n  FUN_003b79e0();\n  lVar5 = *(long *)(param_1 + 0x28);\n  if (lVar5 == 0) {\nLAB_002d68fa:\n    FUN_00290dc0();\nLAB_002d68ff:\n                    \n    FUN_00352af0("../../gold/mips.cc",0x1b6f,"do_read_symbols");\n  }\n  uVar22 = *(uint *)(lVar5 + 0xe4);\n  uVar23 = (ulong)uVar22;\n  if (uVar22 == 1) {\n    lVar5 = FUN_0034d600(lVar5 + 0x28,*(undefined8 *)(param_1 + 0x30),0,0x34,1,0);\n    *(undefined4 *)(param_1 + 0x220) = *(undefined4 *)(lVar5 + 0x24);\n    uVar3 = *(ulong *)(param_2[1] + 0x10);\n    FUN_0022a2b0(param_1 + 0x378,*(undefined4 *)(param_1 + 0x38),0);\n    FUN_0022a2b0(param_1 + 0x3a0,*(undefined4 *)(param_1 + 0x38),0);\n    FUN_0022a2b0(param_1 + 0x3c8,*(undefined4 *)(param_1 + 0x38),0);\n    bVar4 = false;\n    puVar15 = (uint *)(*(long *)(*param_2 + 0x10) + 0x28);\n    if (1 < *(uint *)(param_1 + 0x38)) {\n      uVar22 = *(uint *)(*(long *)(*param_2 + 0x10) + 0x2c);\n      if (uVar22 != 2) goto LAB_002d6581;\n      do {\n        puVar16 = puVar15;\n        if (0x10 < puVar15[5]) {\n          bVar4 = true;\n        }\nLAB_002d66e8:\n        lVar5 = 10;\n        bVar25 = CARRY8((ulong)*puVar16,uVar3);\n        pbVar20 = (byte *)(*puVar16 + uVar3);\n        bVar27 = pbVar20 == (byte *)0x0;\n        pbVar17 = (byte *)".mips16.fn";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        uVar14 = (ulong)((uint)(uVar23 >> 3) & 0x1ffffff8);\n        uVar10 = 1L << ((byte)uVar23 & 0x3f);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x378) + uVar14);\n        uVar21 = *puVar18;\n        bVar26 = false;\n        bVar25 = (!bVar25 && !bVar27) == bVar25;\n        uVar13 = uVar21 & ~uVar10;\n        if (bVar25) {\n          uVar13 = uVar21 | uVar10;\n        }\n        *puVar18 = uVar13;\n        lVar5 = 0xd;\n        pbVar17 = (byte *)".mips16.call.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar26 = *pbVar17 < *pbVar19;\n          bVar25 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar25);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x3a0) + uVar14);\n        if ((!bVar26 && !bVar25) == bVar26) {\n          uVar21 = *puVar18 | uVar10;\n        }\n        else {\n          uVar21 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar21 == 0;\n        bVar25 = false;\n        *puVar18 = uVar21;\n        lVar5 = 0x10;\n        pbVar17 = (byte *)".mips16.call.fp.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        puVar18 = (ulong *)(uVar14 + *(long *)(param_1 + 0x3c8));\n        if ((!bVar25 && !bVar27) == bVar25) {\n          uVar10 = uVar10 | *puVar18;\n        }\n        else {\n          uVar10 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar10 == 0;\n        bVar25 = false;\n        *puVar18 = uVar10;\n        lVar5 = 5;\n        pbVar17 = &DAT_0053357f;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar20 < *pbVar17;\n          bVar27 = *pbVar20 == *pbVar17;\n          pbVar20 = pbVar20 + (ulong)bVar28 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        if ((!bVar25 && !bVar27) == bVar25) {\n          if (*(int *)(param_1 + 0x3f0) != -1) goto LAB_002d68ff;\n          *(int *)(param_1 + 0x3f0) = (int)uVar23;\n        }\n        uVar22 = (int)uVar23 + 1;\n        uVar23 = (ulong)uVar22;\n        puVar15 = puVar16 + 10;\n        if (*(uint *)(param_1 + 0x38) <= uVar22) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_002d643d;\n        }\n        uVar22 = puVar16[0xb];\n      } while (uVar22 == 2);\nLAB_002d6581:\n      puVar16 = puVar15;\n      if (uVar22 != 3) {\n        if (uVar22 == 0x70000006) {\n          *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) | 4;\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          puVar11 = (undefined4 *)\n                    FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0);\n          *(undefined4 *)(param_1 + 0x368) = puVar11[5];\n          *(undefined4 *)(param_1 + 0x408) = *puVar11;\n          *(undefined4 *)(param_1 + 0x40c) = puVar11[1];\n          *(undefined4 *)(param_1 + 0x410) = puVar11[2];\n          *(undefined4 *)(param_1 + 0x414) = puVar11[3];\n          *(undefined4 *)(param_1 + 0x418) = puVar11[4];\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x6ffffff5) {\n          if (*(long *)(param_1 + 0x3f8) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          uVar6 = FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                               puVar15[4],uVar22,1,0);\n          uVar7 = FUN_0049cb70(0x10);\n                    \n          FUN_003362a0(uVar7,uVar6,uVar22);\n          *(undefined8 *)(param_1 + 0x3f8) = uVar7;\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000002a) {\n          if (*(long *)(param_1 + 0x400) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          psVar8 = (short *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0);\n          psVar9 = (short *)FUN_0049cb70(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 + 0x400) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined8 *)(param_1 + 8);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0034a750(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((long)psVar9 + 3) = *(undefined1 *)((long)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((long)psVar9 + 5) = *(undefined1 *)((long)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((long)psVar9 + 7) = *(undefined1 *)((long)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          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000000d) {\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          pcVar12 = (char *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0);\n          pcVar24 = pcVar12 + uVar22;\n          for (; pcVar12 + 8 <= pcVar24; pcVar12 = pcVar12 + bVar1) {\n            bVar1 = pcVar12[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined8 *)(param_1 + 8);\n              pcVar24 = ".MIPS.options";\n              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);\n              break;\n            }\n            if (*pcVar12 == '\x01') {\n              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }\n      goto LAB_002d66e8;\n    }\n  }\n  else if (uVar22 != 2) {\n                    \n    FUN_00352af0("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }\nLAB_002d643d:\n  *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) & 0xf7;\n  return;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "short sVar2;" (sized_type_specifier "short" (short "short")) (identifier "sVar2") (; ";")) (declaration "ulong uVar3;" (type_identifier "ulong") (identifier "uVar3") (; ";")) (declaration "bool bVar4;" (primitive_type "bool") (identifier "bVar4") (; ";")) (declaration "long lVar5;" (sized_type_specifier "long" (long "long")) (identifier "lVar5") (; ";")) (declaration "undefined8 uVar6;" (type_identifier "undefined8") (identifier "uVar6") (; ";")) (declaration "undefined8 uVar7;" (type_identifier "undefined8") (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 "ulong uVar10;" (type_identifier "ulong") (identifier "uVar10") (; ";")) (declaration "undefined4 *puVar11;" (type_identifier "undefined4") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "char *pcVar12;" (primitive_type "char") (pointer_declarator "*pcVar12" (* "*") (identifier "pcVar12")) (; ";")) (declaration "ulong uVar13;" (type_identifier "ulong") (identifier "uVar13") (; ";")) (declaration "ulong uVar14;" (type_identifier "ulong") (identifier "uVar14") (; ";")) (declaration "uint *puVar15;" (type_identifier "uint") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "uint *puVar16;" (type_identifier "uint") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "byte *pbVar17;" (type_identifier "byte") (pointer_declarator "*pbVar17" (* "*") (identifier "pbVar17")) (; ";")) (declaration "ulong *puVar18;" (type_identifier "ulong") (pointer_declarator "*puVar18" (* "*") (identifier "puVar18")) (; ";")) (declaration "byte *pbVar19;" (type_identifier "byte") (pointer_declarator "*pbVar19" (* "*") (identifier "pbVar19")) (; ";")) (declaration "byte *pbVar20;" (type_identifier "byte") (pointer_declarator "*pbVar20" (* "*") (identifier "pbVar20")) (; ";")) (declaration "ulong uVar21;" (type_identifier "ulong") (identifier "uVar21") (; ";")) (declaration "uint uVar22;" (type_identifier "uint") (identifier "uVar22") (; ";")) (declaration "ulong uVar23;" (type_identifier "ulong") (identifier "uVar23") (; ";")) (declaration "char *pcVar24;" (primitive_type "char") (pointer_declarator "*pcVar24" (* "*") (identifier "pcVar24")) (; ";")) (declaration "bool bVar25;" (primitive_type "bool") (identifier "bVar25") (; ";")) (declaration "bool bVar26;" (primitive_type "bool") (identifier "bVar26") (; ";")) (declaration "bool bVar27;" (primitive_type "bool") (identifier "bVar27") (; ";")) (declaration "byte bVar28;" (type_identifier "byte") (identifier "bVar28") (; ";")) (expression_statement "bVar28 = 0;" (assignment_expression "bVar28 = 0" (identifier "bVar28") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_003b79e0();" (call_expression "FUN_003b79e0()" (identifier "FUN_003b79e0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "lVar5 = *(long *)(param_1 + 0x28);" (assignment_expression "lVar5 = *(long *)(param_1 + 0x28)" (identifier "lVar5") (= "=") (pointer_expression "*(long *)(param_1 + 0x28)" (* "*") (cast_expression "(long *)(param_1 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (if_statement "if (lVar5 == 0) {\nLAB_002d68fa:\n    FUN_00290dc0();\nLAB_002d68ff:\n                    \n    FUN_00352af0("../../gold/mips.cc",0x1b6f,"do_read_symbols");\n  }" (if "if") (parenthesized_expression "(lVar5 == 0)" (( "(") (binary_expression "lVar5 == 0" (identifier "lVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_002d68fa:\n    FUN_00290dc0();\nLAB_002d68ff:\n                    \n    FUN_00352af0("../../gold/mips.cc",0x1b6f,"do_read_symbols");\n  }" ({ "{") (labeled_statement "LAB_002d68fa:\n    FUN_00290dc0();" (statement_identifier "LAB_002d68fa") (: ":") (expression_statement "FUN_00290dc0();" (call_expression "FUN_00290dc0()" (identifier "FUN_00290dc0") (argument_list "()" (( "(") () ")"))) (; ";"))) (labeled_statement "LAB_002d68ff:\n                    \n    FUN_00352af0("../../gold/mips.cc",0x1b6f,"do_read_symbols");" (statement_identifier "LAB_002d68ff") (: ":") (expression_statement "FUN_00352af0("../../gold/mips.cc",0x1b6f,"do_read_symbols");" (call_expression "FUN_00352af0("../../gold/mips.cc",0x1b6f,"do_read_symbols")" (identifier "FUN_00352af0") (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 "uVar22 = *(uint *)(lVar5 + 0xe4);" (assignment_expression "uVar22 = *(uint *)(lVar5 + 0xe4)" (identifier "uVar22") (= "=") (pointer_expression "*(uint *)(lVar5 + 0xe4)" (* "*") (cast_expression "(uint *)(lVar5 + 0xe4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0xe4)" (( "(") (binary_expression "lVar5 + 0xe4" (identifier "lVar5") (+ "+") (number_literal "0xe4")) () ")"))))) (; ";")) (expression_statement "uVar23 = (ulong)uVar22;" (assignment_expression "uVar23 = (ulong)uVar22" (identifier "uVar23") (= "=") (cast_expression "(ulong)uVar22" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar22"))) (; ";")) (if_statement "if (uVar22 == 1) {\n    lVar5 = FUN_0034d600(lVar5 + 0x28,*(undefined8 *)(param_1 + 0x30),0,0x34,1,0);\n    *(undefined4 *)(param_1 + 0x220) = *(undefined4 *)(lVar5 + 0x24);\n    uVar3 = *(ulong *)(param_2[1] + 0x10);\n    FUN_0022a2b0(param_1 + 0x378,*(undefined4 *)(param_1 + 0x38),0);\n    FUN_0022a2b0(param_1 + 0x3a0,*(undefined4 *)(param_1 + 0x38),0);\n    FUN_0022a2b0(param_1 + 0x3c8,*(undefined4 *)(param_1 + 0x38),0);\n    bVar4 = false;\n    puVar15 = (uint *)(*(long *)(*param_2 + 0x10) + 0x28);\n    if (1 < *(uint *)(param_1 + 0x38)) {\n      uVar22 = *(uint *)(*(long *)(*param_2 + 0x10) + 0x2c);\n      if (uVar22 != 2) goto LAB_002d6581;\n      do {\n        puVar16 = puVar15;\n        if (0x10 < puVar15[5]) {\n          bVar4 = true;\n        }\nLAB_002d66e8:\n        lVar5 = 10;\n        bVar25 = CARRY8((ulong)*puVar16,uVar3);\n        pbVar20 = (byte *)(*puVar16 + uVar3);\n        bVar27 = pbVar20 == (byte *)0x0;\n        pbVar17 = (byte *)".mips16.fn";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        uVar14 = (ulong)((uint)(uVar23 >> 3) & 0x1ffffff8);\n        uVar10 = 1L << ((byte)uVar23 & 0x3f);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x378) + uVar14);\n        uVar21 = *puVar18;\n        bVar26 = false;\n        bVar25 = (!bVar25 && !bVar27) == bVar25;\n        uVar13 = uVar21 & ~uVar10;\n        if (bVar25) {\n          uVar13 = uVar21 | uVar10;\n        }\n        *puVar18 = uVar13;\n        lVar5 = 0xd;\n        pbVar17 = (byte *)".mips16.call.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar26 = *pbVar17 < *pbVar19;\n          bVar25 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar25);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x3a0) + uVar14);\n        if ((!bVar26 && !bVar25) == bVar26) {\n          uVar21 = *puVar18 | uVar10;\n        }\n        else {\n          uVar21 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar21 == 0;\n        bVar25 = false;\n        *puVar18 = uVar21;\n        lVar5 = 0x10;\n        pbVar17 = (byte *)".mips16.call.fp.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        puVar18 = (ulong *)(uVar14 + *(long *)(param_1 + 0x3c8));\n        if ((!bVar25 && !bVar27) == bVar25) {\n          uVar10 = uVar10 | *puVar18;\n        }\n        else {\n          uVar10 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar10 == 0;\n        bVar25 = false;\n        *puVar18 = uVar10;\n        lVar5 = 5;\n        pbVar17 = &DAT_0053357f;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar20 < *pbVar17;\n          bVar27 = *pbVar20 == *pbVar17;\n          pbVar20 = pbVar20 + (ulong)bVar28 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        if ((!bVar25 && !bVar27) == bVar25) {\n          if (*(int *)(param_1 + 0x3f0) != -1) goto LAB_002d68ff;\n          *(int *)(param_1 + 0x3f0) = (int)uVar23;\n        }\n        uVar22 = (int)uVar23 + 1;\n        uVar23 = (ulong)uVar22;\n        puVar15 = puVar16 + 10;\n        if (*(uint *)(param_1 + 0x38) <= uVar22) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_002d643d;\n        }\n        uVar22 = puVar16[0xb];\n      } while (uVar22 == 2);\nLAB_002d6581:\n      puVar16 = puVar15;\n      if (uVar22 != 3) {\n        if (uVar22 == 0x70000006) {\n          *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) | 4;\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          puVar11 = (undefined4 *)\n                    FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0);\n          *(undefined4 *)(param_1 + 0x368) = puVar11[5];\n          *(undefined4 *)(param_1 + 0x408) = *puVar11;\n          *(undefined4 *)(param_1 + 0x40c) = puVar11[1];\n          *(undefined4 *)(param_1 + 0x410) = puVar11[2];\n          *(undefined4 *)(param_1 + 0x414) = puVar11[3];\n          *(undefined4 *)(param_1 + 0x418) = puVar11[4];\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x6ffffff5) {\n          if (*(long *)(param_1 + 0x3f8) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          uVar6 = FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                               puVar15[4],uVar22,1,0);\n          uVar7 = FUN_0049cb70(0x10);\n                    \n          FUN_003362a0(uVar7,uVar6,uVar22);\n          *(undefined8 *)(param_1 + 0x3f8) = uVar7;\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000002a) {\n          if (*(long *)(param_1 + 0x400) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          psVar8 = (short *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0);\n          psVar9 = (short *)FUN_0049cb70(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 + 0x400) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined8 *)(param_1 + 8);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0034a750(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((long)psVar9 + 3) = *(undefined1 *)((long)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((long)psVar9 + 5) = *(undefined1 *)((long)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((long)psVar9 + 7) = *(undefined1 *)((long)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          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000000d) {\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          pcVar12 = (char *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0);\n          pcVar24 = pcVar12 + uVar22;\n          for (; pcVar12 + 8 <= pcVar24; pcVar12 = pcVar12 + bVar1) {\n            bVar1 = pcVar12[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined8 *)(param_1 + 8);\n              pcVar24 = ".MIPS.options";\n              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);\n              break;\n            }\n            if (*pcVar12 == '\x01') {\n              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }\n      goto LAB_002d66e8;\n    }\n  }\n  else if (uVar22 != 2) {\n                    \n    FUN_00352af0("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }" (if "if") (parenthesized_expression "(uVar22 == 1)" (( "(") (binary_expression "uVar22 == 1" (identifier "uVar22") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n    lVar5 = FUN_0034d600(lVar5 + 0x28,*(undefined8 *)(param_1 + 0x30),0,0x34,1,0);\n    *(undefined4 *)(param_1 + 0x220) = *(undefined4 *)(lVar5 + 0x24);\n    uVar3 = *(ulong *)(param_2[1] + 0x10);\n    FUN_0022a2b0(param_1 + 0x378,*(undefined4 *)(param_1 + 0x38),0);\n    FUN_0022a2b0(param_1 + 0x3a0,*(undefined4 *)(param_1 + 0x38),0);\n    FUN_0022a2b0(param_1 + 0x3c8,*(undefined4 *)(param_1 + 0x38),0);\n    bVar4 = false;\n    puVar15 = (uint *)(*(long *)(*param_2 + 0x10) + 0x28);\n    if (1 < *(uint *)(param_1 + 0x38)) {\n      uVar22 = *(uint *)(*(long *)(*param_2 + 0x10) + 0x2c);\n      if (uVar22 != 2) goto LAB_002d6581;\n      do {\n        puVar16 = puVar15;\n        if (0x10 < puVar15[5]) {\n          bVar4 = true;\n        }\nLAB_002d66e8:\n        lVar5 = 10;\n        bVar25 = CARRY8((ulong)*puVar16,uVar3);\n        pbVar20 = (byte *)(*puVar16 + uVar3);\n        bVar27 = pbVar20 == (byte *)0x0;\n        pbVar17 = (byte *)".mips16.fn";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        uVar14 = (ulong)((uint)(uVar23 >> 3) & 0x1ffffff8);\n        uVar10 = 1L << ((byte)uVar23 & 0x3f);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x378) + uVar14);\n        uVar21 = *puVar18;\n        bVar26 = false;\n        bVar25 = (!bVar25 && !bVar27) == bVar25;\n        uVar13 = uVar21 & ~uVar10;\n        if (bVar25) {\n          uVar13 = uVar21 | uVar10;\n        }\n        *puVar18 = uVar13;\n        lVar5 = 0xd;\n        pbVar17 = (byte *)".mips16.call.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar26 = *pbVar17 < *pbVar19;\n          bVar25 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar25);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x3a0) + uVar14);\n        if ((!bVar26 && !bVar25) == bVar26) {\n          uVar21 = *puVar18 | uVar10;\n        }\n        else {\n          uVar21 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar21 == 0;\n        bVar25 = false;\n        *puVar18 = uVar21;\n        lVar5 = 0x10;\n        pbVar17 = (byte *)".mips16.call.fp.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        puVar18 = (ulong *)(uVar14 + *(long *)(param_1 + 0x3c8));\n        if ((!bVar25 && !bVar27) == bVar25) {\n          uVar10 = uVar10 | *puVar18;\n        }\n        else {\n          uVar10 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar10 == 0;\n        bVar25 = false;\n        *puVar18 = uVar10;\n        lVar5 = 5;\n        pbVar17 = &DAT_0053357f;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar20 < *pbVar17;\n          bVar27 = *pbVar20 == *pbVar17;\n          pbVar20 = pbVar20 + (ulong)bVar28 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        if ((!bVar25 && !bVar27) == bVar25) {\n          if (*(int *)(param_1 + 0x3f0) != -1) goto LAB_002d68ff;\n          *(int *)(param_1 + 0x3f0) = (int)uVar23;\n        }\n        uVar22 = (int)uVar23 + 1;\n        uVar23 = (ulong)uVar22;\n        puVar15 = puVar16 + 10;\n        if (*(uint *)(param_1 + 0x38) <= uVar22) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_002d643d;\n        }\n        uVar22 = puVar16[0xb];\n      } while (uVar22 == 2);\nLAB_002d6581:\n      puVar16 = puVar15;\n      if (uVar22 != 3) {\n        if (uVar22 == 0x70000006) {\n          *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) | 4;\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          puVar11 = (undefined4 *)\n                    FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0);\n          *(undefined4 *)(param_1 + 0x368) = puVar11[5];\n          *(undefined4 *)(param_1 + 0x408) = *puVar11;\n          *(undefined4 *)(param_1 + 0x40c) = puVar11[1];\n          *(undefined4 *)(param_1 + 0x410) = puVar11[2];\n          *(undefined4 *)(param_1 + 0x414) = puVar11[3];\n          *(undefined4 *)(param_1 + 0x418) = puVar11[4];\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x6ffffff5) {\n          if (*(long *)(param_1 + 0x3f8) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          uVar6 = FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                               puVar15[4],uVar22,1,0);\n          uVar7 = FUN_0049cb70(0x10);\n                    \n          FUN_003362a0(uVar7,uVar6,uVar22);\n          *(undefined8 *)(param_1 + 0x3f8) = uVar7;\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000002a) {\n          if (*(long *)(param_1 + 0x400) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          psVar8 = (short *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0);\n          psVar9 = (short *)FUN_0049cb70(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 + 0x400) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined8 *)(param_1 + 8);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0034a750(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((long)psVar9 + 3) = *(undefined1 *)((long)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((long)psVar9 + 5) = *(undefined1 *)((long)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((long)psVar9 + 7) = *(undefined1 *)((long)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          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000000d) {\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          pcVar12 = (char *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0);\n          pcVar24 = pcVar12 + uVar22;\n          for (; pcVar12 + 8 <= pcVar24; pcVar12 = pcVar12 + bVar1) {\n            bVar1 = pcVar12[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined8 *)(param_1 + 8);\n              pcVar24 = ".MIPS.options";\n              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);\n              break;\n            }\n            if (*pcVar12 == '\x01') {\n              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }\n      goto LAB_002d66e8;\n    }\n  }" ({ "{") (expression_statement "lVar5 = FUN_0034d600(lVar5 + 0x28,*(undefined8 *)(param_1 + 0x30),0,0x34,1,0);" (assignment_expression "lVar5 = FUN_0034d600(lVar5 + 0x28,*(undefined8 *)(param_1 + 0x30),0,0x34,1,0)" (identifier "lVar5") (= "=") (call_expression "FUN_0034d600(lVar5 + 0x28,*(undefined8 *)(param_1 + 0x30),0,0x34,1,0)" (identifier "FUN_0034d600") (argument_list "(lVar5 + 0x28,*(undefined8 *)(param_1 + 0x30),0,0x34,1,0)" (( "(") (binary_expression "lVar5 + 0x28" (identifier "lVar5") (+ "+") (number_literal "0x28")) (, ",") (pointer_expression "*(undefined8 *)(param_1 + 0x30)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x30)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")")))) (, ",") (number_literal "0") (, ",") (number_literal "0x34") (, ",") (number_literal "1") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x220) = *(undefined4 *)(lVar5 + 0x24);" (assignment_expression "*(undefined4 *)(param_1 + 0x220) = *(undefined4 *)(lVar5 + 0x24)" (pointer_expression "*(undefined4 *)(param_1 + 0x220)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x220)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x220)" (( "(") (binary_expression "param_1 + 0x220" (identifier "param_1") (+ "+") (number_literal "0x220")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(lVar5 + 0x24)" (* "*") (cast_expression "(undefined4 *)(lVar5 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x24)" (( "(") (binary_expression "lVar5 + 0x24" (identifier "lVar5") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "uVar3 = *(ulong *)(param_2[1] + 0x10);" (assignment_expression "uVar3 = *(ulong *)(param_2[1] + 0x10)" (identifier "uVar3") (= "=") (pointer_expression "*(ulong *)(param_2[1] + 0x10)" (* "*") (cast_expression "(ulong *)(param_2[1] + 0x10)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[1] + 0x10)" (( "(") (binary_expression "param_2[1] + 0x10" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "FUN_0022a2b0(param_1 + 0x378,*(undefined4 *)(param_1 + 0x38),0);" (call_expression "FUN_0022a2b0(param_1 + 0x378,*(undefined4 *)(param_1 + 0x38),0)" (identifier "FUN_0022a2b0") (argument_list "(param_1 + 0x378,*(undefined4 *)(param_1 + 0x38),0)" (( "(") (binary_expression "param_1 + 0x378" (identifier "param_1") (+ "+") (number_literal "0x378")) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x38)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "FUN_0022a2b0(param_1 + 0x3a0,*(undefined4 *)(param_1 + 0x38),0);" (call_expression "FUN_0022a2b0(param_1 + 0x3a0,*(undefined4 *)(param_1 + 0x38),0)" (identifier "FUN_0022a2b0") (argument_list "(param_1 + 0x3a0,*(undefined4 *)(param_1 + 0x38),0)" (( "(") (binary_expression "param_1 + 0x3a0" (identifier "param_1") (+ "+") (number_literal "0x3a0")) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x38)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "FUN_0022a2b0(param_1 + 0x3c8,*(undefined4 *)(param_1 + 0x38),0);" (call_expression "FUN_0022a2b0(param_1 + 0x3c8,*(undefined4 *)(param_1 + 0x38),0)" (identifier "FUN_0022a2b0") (argument_list "(param_1 + 0x3c8,*(undefined4 *)(param_1 + 0x38),0)" (( "(") (binary_expression "param_1 + 0x3c8" (identifier "param_1") (+ "+") (number_literal "0x3c8")) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x38)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" (identifier "bVar4") (= "=") (false "false")) (; ";")) (expression_statement "puVar15 = (uint *)(*(long *)(*param_2 + 0x10) + 0x28);" (assignment_expression "puVar15 = (uint *)(*(long *)(*param_2 + 0x10) + 0x28)" (identifier "puVar15") (= "=") (cast_expression "(uint *)(*(long *)(*param_2 + 0x10) + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(*param_2 + 0x10) + 0x28)" (( "(") (binary_expression "*(long *)(*param_2 + 0x10) + 0x28" (pointer_expression "*(long *)(*param_2 + 0x10)" (* "*") (cast_expression "(long *)(*param_2 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_2 + 0x10)" (( "(") (binary_expression "*param_2 + 0x10" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x28")) () ")")))) (; ";")) (if_statement "if (1 < *(uint *)(param_1 + 0x38)) {\n      uVar22 = *(uint *)(*(long *)(*param_2 + 0x10) + 0x2c);\n      if (uVar22 != 2) goto LAB_002d6581;\n      do {\n        puVar16 = puVar15;\n        if (0x10 < puVar15[5]) {\n          bVar4 = true;\n        }\nLAB_002d66e8:\n        lVar5 = 10;\n        bVar25 = CARRY8((ulong)*puVar16,uVar3);\n        pbVar20 = (byte *)(*puVar16 + uVar3);\n        bVar27 = pbVar20 == (byte *)0x0;\n        pbVar17 = (byte *)".mips16.fn";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        uVar14 = (ulong)((uint)(uVar23 >> 3) & 0x1ffffff8);\n        uVar10 = 1L << ((byte)uVar23 & 0x3f);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x378) + uVar14);\n        uVar21 = *puVar18;\n        bVar26 = false;\n        bVar25 = (!bVar25 && !bVar27) == bVar25;\n        uVar13 = uVar21 & ~uVar10;\n        if (bVar25) {\n          uVar13 = uVar21 | uVar10;\n        }\n        *puVar18 = uVar13;\n        lVar5 = 0xd;\n        pbVar17 = (byte *)".mips16.call.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar26 = *pbVar17 < *pbVar19;\n          bVar25 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar25);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x3a0) + uVar14);\n        if ((!bVar26 && !bVar25) == bVar26) {\n          uVar21 = *puVar18 | uVar10;\n        }\n        else {\n          uVar21 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar21 == 0;\n        bVar25 = false;\n        *puVar18 = uVar21;\n        lVar5 = 0x10;\n        pbVar17 = (byte *)".mips16.call.fp.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        puVar18 = (ulong *)(uVar14 + *(long *)(param_1 + 0x3c8));\n        if ((!bVar25 && !bVar27) == bVar25) {\n          uVar10 = uVar10 | *puVar18;\n        }\n        else {\n          uVar10 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar10 == 0;\n        bVar25 = false;\n        *puVar18 = uVar10;\n        lVar5 = 5;\n        pbVar17 = &DAT_0053357f;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar20 < *pbVar17;\n          bVar27 = *pbVar20 == *pbVar17;\n          pbVar20 = pbVar20 + (ulong)bVar28 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        if ((!bVar25 && !bVar27) == bVar25) {\n          if (*(int *)(param_1 + 0x3f0) != -1) goto LAB_002d68ff;\n          *(int *)(param_1 + 0x3f0) = (int)uVar23;\n        }\n        uVar22 = (int)uVar23 + 1;\n        uVar23 = (ulong)uVar22;\n        puVar15 = puVar16 + 10;\n        if (*(uint *)(param_1 + 0x38) <= uVar22) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_002d643d;\n        }\n        uVar22 = puVar16[0xb];\n      } while (uVar22 == 2);\nLAB_002d6581:\n      puVar16 = puVar15;\n      if (uVar22 != 3) {\n        if (uVar22 == 0x70000006) {\n          *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) | 4;\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          puVar11 = (undefined4 *)\n                    FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0);\n          *(undefined4 *)(param_1 + 0x368) = puVar11[5];\n          *(undefined4 *)(param_1 + 0x408) = *puVar11;\n          *(undefined4 *)(param_1 + 0x40c) = puVar11[1];\n          *(undefined4 *)(param_1 + 0x410) = puVar11[2];\n          *(undefined4 *)(param_1 + 0x414) = puVar11[3];\n          *(undefined4 *)(param_1 + 0x418) = puVar11[4];\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x6ffffff5) {\n          if (*(long *)(param_1 + 0x3f8) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          uVar6 = FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                               puVar15[4],uVar22,1,0);\n          uVar7 = FUN_0049cb70(0x10);\n                    \n          FUN_003362a0(uVar7,uVar6,uVar22);\n          *(undefined8 *)(param_1 + 0x3f8) = uVar7;\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000002a) {\n          if (*(long *)(param_1 + 0x400) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          psVar8 = (short *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0);\n          psVar9 = (short *)FUN_0049cb70(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 + 0x400) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined8 *)(param_1 + 8);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0034a750(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((long)psVar9 + 3) = *(undefined1 *)((long)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((long)psVar9 + 5) = *(undefined1 *)((long)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((long)psVar9 + 7) = *(undefined1 *)((long)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          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000000d) {\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          pcVar12 = (char *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0);\n          pcVar24 = pcVar12 + uVar22;\n          for (; pcVar12 + 8 <= pcVar24; pcVar12 = pcVar12 + bVar1) {\n            bVar1 = pcVar12[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined8 *)(param_1 + 8);\n              pcVar24 = ".MIPS.options";\n              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);\n              break;\n            }\n            if (*pcVar12 == '\x01') {\n              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }\n      goto LAB_002d66e8;\n    }" (if "if") (parenthesized_expression "(1 < *(uint *)(param_1 + 0x38))" (( "(") (binary_expression "1 < *(uint *)(param_1 + 0x38)" (number_literal "1") (< "<") (pointer_expression "*(uint *)(param_1 + 0x38)" (* "*") (cast_expression "(uint *)(param_1 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")"))))) () ")")) (compound_statement "{\n      uVar22 = *(uint *)(*(long *)(*param_2 + 0x10) + 0x2c);\n      if (uVar22 != 2) goto LAB_002d6581;\n      do {\n        puVar16 = puVar15;\n        if (0x10 < puVar15[5]) {\n          bVar4 = true;\n        }\nLAB_002d66e8:\n        lVar5 = 10;\n        bVar25 = CARRY8((ulong)*puVar16,uVar3);\n        pbVar20 = (byte *)(*puVar16 + uVar3);\n        bVar27 = pbVar20 == (byte *)0x0;\n        pbVar17 = (byte *)".mips16.fn";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        uVar14 = (ulong)((uint)(uVar23 >> 3) & 0x1ffffff8);\n        uVar10 = 1L << ((byte)uVar23 & 0x3f);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x378) + uVar14);\n        uVar21 = *puVar18;\n        bVar26 = false;\n        bVar25 = (!bVar25 && !bVar27) == bVar25;\n        uVar13 = uVar21 & ~uVar10;\n        if (bVar25) {\n          uVar13 = uVar21 | uVar10;\n        }\n        *puVar18 = uVar13;\n        lVar5 = 0xd;\n        pbVar17 = (byte *)".mips16.call.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar26 = *pbVar17 < *pbVar19;\n          bVar25 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar25);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x3a0) + uVar14);\n        if ((!bVar26 && !bVar25) == bVar26) {\n          uVar21 = *puVar18 | uVar10;\n        }\n        else {\n          uVar21 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar21 == 0;\n        bVar25 = false;\n        *puVar18 = uVar21;\n        lVar5 = 0x10;\n        pbVar17 = (byte *)".mips16.call.fp.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        puVar18 = (ulong *)(uVar14 + *(long *)(param_1 + 0x3c8));\n        if ((!bVar25 && !bVar27) == bVar25) {\n          uVar10 = uVar10 | *puVar18;\n        }\n        else {\n          uVar10 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar10 == 0;\n        bVar25 = false;\n        *puVar18 = uVar10;\n        lVar5 = 5;\n        pbVar17 = &DAT_0053357f;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar20 < *pbVar17;\n          bVar27 = *pbVar20 == *pbVar17;\n          pbVar20 = pbVar20 + (ulong)bVar28 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        if ((!bVar25 && !bVar27) == bVar25) {\n          if (*(int *)(param_1 + 0x3f0) != -1) goto LAB_002d68ff;\n          *(int *)(param_1 + 0x3f0) = (int)uVar23;\n        }\n        uVar22 = (int)uVar23 + 1;\n        uVar23 = (ulong)uVar22;\n        puVar15 = puVar16 + 10;\n        if (*(uint *)(param_1 + 0x38) <= uVar22) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_002d643d;\n        }\n        uVar22 = puVar16[0xb];\n      } while (uVar22 == 2);\nLAB_002d6581:\n      puVar16 = puVar15;\n      if (uVar22 != 3) {\n        if (uVar22 == 0x70000006) {\n          *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) | 4;\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          puVar11 = (undefined4 *)\n                    FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0);\n          *(undefined4 *)(param_1 + 0x368) = puVar11[5];\n          *(undefined4 *)(param_1 + 0x408) = *puVar11;\n          *(undefined4 *)(param_1 + 0x40c) = puVar11[1];\n          *(undefined4 *)(param_1 + 0x410) = puVar11[2];\n          *(undefined4 *)(param_1 + 0x414) = puVar11[3];\n          *(undefined4 *)(param_1 + 0x418) = puVar11[4];\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x6ffffff5) {\n          if (*(long *)(param_1 + 0x3f8) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          uVar6 = FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                               puVar15[4],uVar22,1,0);\n          uVar7 = FUN_0049cb70(0x10);\n                    \n          FUN_003362a0(uVar7,uVar6,uVar22);\n          *(undefined8 *)(param_1 + 0x3f8) = uVar7;\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000002a) {\n          if (*(long *)(param_1 + 0x400) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          psVar8 = (short *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0);\n          psVar9 = (short *)FUN_0049cb70(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 + 0x400) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined8 *)(param_1 + 8);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0034a750(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((long)psVar9 + 3) = *(undefined1 *)((long)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((long)psVar9 + 5) = *(undefined1 *)((long)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((long)psVar9 + 7) = *(undefined1 *)((long)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          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000000d) {\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          pcVar12 = (char *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0);\n          pcVar24 = pcVar12 + uVar22;\n          for (; pcVar12 + 8 <= pcVar24; pcVar12 = pcVar12 + bVar1) {\n            bVar1 = pcVar12[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined8 *)(param_1 + 8);\n              pcVar24 = ".MIPS.options";\n              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);\n              break;\n            }\n            if (*pcVar12 == '\x01') {\n              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }\n      goto LAB_002d66e8;\n    }" ({ "{") (expression_statement "uVar22 = *(uint *)(*(long *)(*param_2 + 0x10) + 0x2c);" (assignment_expression "uVar22 = *(uint *)(*(long *)(*param_2 + 0x10) + 0x2c)" (identifier "uVar22") (= "=") (pointer_expression "*(uint *)(*(long *)(*param_2 + 0x10) + 0x2c)" (* "*") (cast_expression "(uint *)(*(long *)(*param_2 + 0x10) + 0x2c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(*param_2 + 0x10) + 0x2c)" (( "(") (binary_expression "*(long *)(*param_2 + 0x10) + 0x2c" (pointer_expression "*(long *)(*param_2 + 0x10)" (* "*") (cast_expression "(long *)(*param_2 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_2 + 0x10)" (( "(") (binary_expression "*param_2 + 0x10" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (if_statement "if (uVar22 != 2) goto LAB_002d6581;" (if "if") (parenthesized_expression "(uVar22 != 2)" (( "(") (binary_expression "uVar22 != 2" (identifier "uVar22") (!= "!=") (number_literal "2")) () ")")) (goto_statement "goto LAB_002d6581;" (goto "goto") (statement_identifier "LAB_002d6581") (; ";"))) (do_statement "do {\n        puVar16 = puVar15;\n        if (0x10 < puVar15[5]) {\n          bVar4 = true;\n        }\nLAB_002d66e8:\n        lVar5 = 10;\n        bVar25 = CARRY8((ulong)*puVar16,uVar3);\n        pbVar20 = (byte *)(*puVar16 + uVar3);\n        bVar27 = pbVar20 == (byte *)0x0;\n        pbVar17 = (byte *)".mips16.fn";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        uVar14 = (ulong)((uint)(uVar23 >> 3) & 0x1ffffff8);\n        uVar10 = 1L << ((byte)uVar23 & 0x3f);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x378) + uVar14);\n        uVar21 = *puVar18;\n        bVar26 = false;\n        bVar25 = (!bVar25 && !bVar27) == bVar25;\n        uVar13 = uVar21 & ~uVar10;\n        if (bVar25) {\n          uVar13 = uVar21 | uVar10;\n        }\n        *puVar18 = uVar13;\n        lVar5 = 0xd;\n        pbVar17 = (byte *)".mips16.call.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar26 = *pbVar17 < *pbVar19;\n          bVar25 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar25);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x3a0) + uVar14);\n        if ((!bVar26 && !bVar25) == bVar26) {\n          uVar21 = *puVar18 | uVar10;\n        }\n        else {\n          uVar21 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar21 == 0;\n        bVar25 = false;\n        *puVar18 = uVar21;\n        lVar5 = 0x10;\n        pbVar17 = (byte *)".mips16.call.fp.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        puVar18 = (ulong *)(uVar14 + *(long *)(param_1 + 0x3c8));\n        if ((!bVar25 && !bVar27) == bVar25) {\n          uVar10 = uVar10 | *puVar18;\n        }\n        else {\n          uVar10 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar10 == 0;\n        bVar25 = false;\n        *puVar18 = uVar10;\n        lVar5 = 5;\n        pbVar17 = &DAT_0053357f;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar20 < *pbVar17;\n          bVar27 = *pbVar20 == *pbVar17;\n          pbVar20 = pbVar20 + (ulong)bVar28 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        if ((!bVar25 && !bVar27) == bVar25) {\n          if (*(int *)(param_1 + 0x3f0) != -1) goto LAB_002d68ff;\n          *(int *)(param_1 + 0x3f0) = (int)uVar23;\n        }\n        uVar22 = (int)uVar23 + 1;\n        uVar23 = (ulong)uVar22;\n        puVar15 = puVar16 + 10;\n        if (*(uint *)(param_1 + 0x38) <= uVar22) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_002d643d;\n        }\n        uVar22 = puVar16[0xb];\n      } while (uVar22 == 2);" (do "do") (compound_statement "{\n        puVar16 = puVar15;\n        if (0x10 < puVar15[5]) {\n          bVar4 = true;\n        }\nLAB_002d66e8:\n        lVar5 = 10;\n        bVar25 = CARRY8((ulong)*puVar16,uVar3);\n        pbVar20 = (byte *)(*puVar16 + uVar3);\n        bVar27 = pbVar20 == (byte *)0x0;\n        pbVar17 = (byte *)".mips16.fn";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        uVar14 = (ulong)((uint)(uVar23 >> 3) & 0x1ffffff8);\n        uVar10 = 1L << ((byte)uVar23 & 0x3f);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x378) + uVar14);\n        uVar21 = *puVar18;\n        bVar26 = false;\n        bVar25 = (!bVar25 && !bVar27) == bVar25;\n        uVar13 = uVar21 & ~uVar10;\n        if (bVar25) {\n          uVar13 = uVar21 | uVar10;\n        }\n        *puVar18 = uVar13;\n        lVar5 = 0xd;\n        pbVar17 = (byte *)".mips16.call.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar26 = *pbVar17 < *pbVar19;\n          bVar25 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar25);\n        puVar18 = (ulong *)(*(long *)(param_1 + 0x3a0) + uVar14);\n        if ((!bVar26 && !bVar25) == bVar26) {\n          uVar21 = *puVar18 | uVar10;\n        }\n        else {\n          uVar21 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar21 == 0;\n        bVar25 = false;\n        *puVar18 = uVar21;\n        lVar5 = 0x10;\n        pbVar17 = (byte *)".mips16.call.fp.";\n        pbVar19 = pbVar20;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        puVar18 = (ulong *)(uVar14 + *(long *)(param_1 + 0x3c8));\n        if ((!bVar25 && !bVar27) == bVar25) {\n          uVar10 = uVar10 | *puVar18;\n        }\n        else {\n          uVar10 = ~uVar10 & *puVar18;\n        }\n        bVar27 = uVar10 == 0;\n        bVar25 = false;\n        *puVar18 = uVar10;\n        lVar5 = 5;\n        pbVar17 = &DAT_0053357f;\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar20 < *pbVar17;\n          bVar27 = *pbVar20 == *pbVar17;\n          pbVar20 = pbVar20 + (ulong)bVar28 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);\n        if ((!bVar25 && !bVar27) == bVar25) {\n          if (*(int *)(param_1 + 0x3f0) != -1) goto LAB_002d68ff;\n          *(int *)(param_1 + 0x3f0) = (int)uVar23;\n        }\n        uVar22 = (int)uVar23 + 1;\n        uVar23 = (ulong)uVar22;\n        puVar15 = puVar16 + 10;\n        if (*(uint *)(param_1 + 0x38) <= uVar22) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_002d643d;\n        }\n        uVar22 = puVar16[0xb];\n      }" ({ "{") (expression_statement "puVar16 = puVar15;" (assignment_expression "puVar16 = puVar15" (identifier "puVar16") (= "=") (identifier "puVar15")) (; ";")) (if_statement "if (0x10 < puVar15[5]) {\n          bVar4 = true;\n        }" (if "if") (parenthesized_expression "(0x10 < puVar15[5])" (( "(") (binary_expression "0x10 < puVar15[5]" (number_literal "0x10") (< "<") (subscript_expression "puVar15[5]" (identifier "puVar15") ([ "[") (number_literal "5") (] "]"))) () ")")) (compound_statement "{\n          bVar4 = true;\n        }" ({ "{") (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" (identifier "bVar4") (= "=") (true "true")) (; ";")) (} "}"))) (labeled_statement "LAB_002d66e8:\n        lVar5 = 10;" (statement_identifier "LAB_002d66e8") (: ":") (expression_statement "lVar5 = 10;" (assignment_expression "lVar5 = 10" (identifier "lVar5") (= "=") (number_literal "10")) (; ";"))) (expression_statement "bVar25 = CARRY8((ulong)*puVar16,uVar3);" (assignment_expression "bVar25 = CARRY8((ulong)*puVar16,uVar3)" (identifier "bVar25") (= "=") (call_expression "CARRY8((ulong)*puVar16,uVar3)" (identifier "CARRY8") (argument_list "((ulong)*puVar16,uVar3)" (( "(") (binary_expression "(ulong)*puVar16" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (identifier "puVar16")) (, ",") (identifier "uVar3") () ")")))) (; ";")) (expression_statement "pbVar20 = (byte *)(*puVar16 + uVar3);" (assignment_expression "pbVar20 = (byte *)(*puVar16 + uVar3)" (identifier "pbVar20") (= "=") (cast_expression "(byte *)(*puVar16 + uVar3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*puVar16 + uVar3)" (( "(") (binary_expression "*puVar16 + uVar3" (pointer_expression "*puVar16" (* "*") (identifier "puVar16")) (+ "+") (identifier "uVar3")) () ")")))) (; ";")) (expression_statement "bVar27 = pbVar20 == (byte *)0x0;" (assignment_expression "bVar27 = pbVar20 == (byte *)0x0" (identifier "bVar27") (= "=") (binary_expression "pbVar20 == (byte *)0x0" (identifier "pbVar20") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (expression_statement "pbVar17 = (byte *)".mips16.fn";" (assignment_expression "pbVar17 = (byte *)".mips16.fn"" (identifier "pbVar17") (= "=") (cast_expression "(byte *)".mips16.fn"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".mips16.fn"" (" """) (string_content ".mips16.fn") (" """)))) (; ";")) (expression_statement "pbVar19 = pbVar20;" (assignment_expression "pbVar19 = pbVar20" (identifier "pbVar19") (= "=") (identifier "pbVar20")) (; ";")) (do_statement "do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);" (do "do") (compound_statement "{\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        }" ({ "{") (if_statement "if (lVar5 == 0) break;" (if "if") (parenthesized_expression "(lVar5 == 0)" (( "(") (binary_expression "lVar5 == 0" (identifier "lVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar5 = lVar5 + -1;" (assignment_expression "lVar5 = lVar5 + -1" (identifier "lVar5") (= "=") (binary_expression "lVar5 + -1" (identifier "lVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar25 = *pbVar17 < *pbVar19;" (assignment_expression "bVar25 = *pbVar17 < *pbVar19" (identifier "bVar25") (= "=") (binary_expression "*pbVar17 < *pbVar19" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (< "<") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "bVar27 = *pbVar17 == *pbVar19;" (assignment_expression "bVar27 = *pbVar17 == *pbVar19" (identifier "bVar27") (= "=") (binary_expression "*pbVar17 == *pbVar19" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (== "==") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + (ulong)bVar28 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar28 * -2" (identifier "pbVar17") (+ "+") (binary_expression "(ulong)bVar28 * -2" (cast_expression "(ulong)bVar28" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar28")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + (ulong)bVar28 * -2 + 1" (binary_expression "pbVar19 + (ulong)bVar28 * -2" (identifier "pbVar19") (+ "+") (binary_expression "(ulong)bVar28 * -2" (cast_expression "(ulong)bVar28" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar28")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar27)" (( "(") (identifier "bVar27") () ")")) (; ";")) (expression_statement "uVar14 = (ulong)((uint)(uVar23 >> 3) & 0x1ffffff8);" (assignment_expression "uVar14 = (ulong)((uint)(uVar23 >> 3) & 0x1ffffff8)" (identifier "uVar14") (= "=") (call_expression "(ulong)((uint)(uVar23 >> 3) & 0x1ffffff8)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((uint)(uVar23 >> 3) & 0x1ffffff8)" (( "(") (binary_expression "(uint)(uVar23 >> 3) & 0x1ffffff8" (call_expression "(uint)(uVar23 >> 3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar23 >> 3)" (( "(") (binary_expression "uVar23 >> 3" (identifier "uVar23") (>> ">>") (number_literal "3")) () ")"))) (& "&") (number_literal "0x1ffffff8")) () ")")))) (; ";")) (expression_statement "uVar10 = 1L << ((byte)uVar23 & 0x3f);" (assignment_expression "uVar10 = 1L << ((byte)uVar23 & 0x3f)" (identifier "uVar10") (= "=") (binary_expression "1L << ((byte)uVar23 & 0x3f)" (number_literal "1L") (<< "<<") (parenthesized_expression "((byte)uVar23 & 0x3f)" (( "(") (binary_expression "(byte)uVar23 & 0x3f" (cast_expression "(byte)uVar23" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar23")) (& "&") (number_literal "0x3f")) () ")")))) (; ";")) (expression_statement "puVar18 = (ulong *)(*(long *)(param_1 + 0x378) + uVar14);" (assignment_expression "puVar18 = (ulong *)(*(long *)(param_1 + 0x378) + uVar14)" (identifier "puVar18") (= "=") (cast_expression "(ulong *)(*(long *)(param_1 + 0x378) + uVar14)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_1 + 0x378) + uVar14)" (( "(") (binary_expression "*(long *)(param_1 + 0x378) + uVar14" (pointer_expression "*(long *)(param_1 + 0x378)" (* "*") (cast_expression "(long *)(param_1 + 0x378)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x378)" (( "(") (binary_expression "param_1 + 0x378" (identifier "param_1") (+ "+") (number_literal "0x378")) () ")")))) (+ "+") (identifier "uVar14")) () ")")))) (; ";")) (expression_statement "uVar21 = *puVar18;" (assignment_expression "uVar21 = *puVar18" (identifier "uVar21") (= "=") (pointer_expression "*puVar18" (* "*") (identifier "puVar18"))) (; ";")) (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" (identifier "bVar26") (= "=") (false "false")) (; ";")) (expression_statement "bVar25 = (!bVar25 && !bVar27) == bVar25;" (assignment_expression "bVar25 = (!bVar25 && !bVar27) == bVar25" (identifier "bVar25") (= "=") (binary_expression "(!bVar25 && !bVar27) == bVar25" (parenthesized_expression "(!bVar25 && !bVar27)" (( "(") (binary_expression "!bVar25 && !bVar27" (unary_expression "!bVar25" (! "!") (identifier "bVar25")) (&& "&&") (unary_expression "!bVar27" (! "!") (identifier "bVar27"))) () ")")) (== "==") (identifier "bVar25"))) (; ";")) (expression_statement "uVar13 = uVar21 & ~uVar10;" (assignment_expression "uVar13 = uVar21 & ~uVar10" (identifier "uVar13") (= "=") (binary_expression "uVar21 & ~uVar10" (identifier "uVar21") (& "&") (unary_expression "~uVar10" (~ "~") (identifier "uVar10")))) (; ";")) (if_statement "if (bVar25) {\n          uVar13 = uVar21 | uVar10;\n        }" (if "if") (parenthesized_expression "(bVar25)" (( "(") (identifier "bVar25") () ")")) (compound_statement "{\n          uVar13 = uVar21 | uVar10;\n        }" ({ "{") (expression_statement "uVar13 = uVar21 | uVar10;" (assignment_expression "uVar13 = uVar21 | uVar10" (identifier "uVar13") (= "=") (binary_expression "uVar21 | uVar10" (identifier "uVar21") (| "|") (identifier "uVar10"))) (; ";")) (} "}"))) (expression_statement "*puVar18 = uVar13;" (assignment_expression "*puVar18 = uVar13" (pointer_expression "*puVar18" (* "*") (identifier "puVar18")) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "lVar5 = 0xd;" (assignment_expression "lVar5 = 0xd" (identifier "lVar5") (= "=") (number_literal "0xd")) (; ";")) (expression_statement "pbVar17 = (byte *)".mips16.call.";" (assignment_expression "pbVar17 = (byte *)".mips16.call."" (identifier "pbVar17") (= "=") (cast_expression "(byte *)".mips16.call."" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".mips16.call."" (" """) (string_content ".mips16.call.") (" """)))) (; ";")) (expression_statement "pbVar19 = pbVar20;" (assignment_expression "pbVar19 = pbVar20" (identifier "pbVar19") (= "=") (identifier "pbVar20")) (; ";")) (do_statement "do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar26 = *pbVar17 < *pbVar19;\n          bVar25 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar25);" (do "do") (compound_statement "{\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar26 = *pbVar17 < *pbVar19;\n          bVar25 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        }" ({ "{") (if_statement "if (lVar5 == 0) break;" (if "if") (parenthesized_expression "(lVar5 == 0)" (( "(") (binary_expression "lVar5 == 0" (identifier "lVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar5 = lVar5 + -1;" (assignment_expression "lVar5 = lVar5 + -1" (identifier "lVar5") (= "=") (binary_expression "lVar5 + -1" (identifier "lVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar26 = *pbVar17 < *pbVar19;" (assignment_expression "bVar26 = *pbVar17 < *pbVar19" (identifier "bVar26") (= "=") (binary_expression "*pbVar17 < *pbVar19" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (< "<") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "bVar25 = *pbVar17 == *pbVar19;" (assignment_expression "bVar25 = *pbVar17 == *pbVar19" (identifier "bVar25") (= "=") (binary_expression "*pbVar17 == *pbVar19" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (== "==") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + (ulong)bVar28 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar28 * -2" (identifier "pbVar17") (+ "+") (binary_expression "(ulong)bVar28 * -2" (cast_expression "(ulong)bVar28" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar28")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + (ulong)bVar28 * -2 + 1" (binary_expression "pbVar19 + (ulong)bVar28 * -2" (identifier "pbVar19") (+ "+") (binary_expression "(ulong)bVar28 * -2" (cast_expression "(ulong)bVar28" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar28")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar25)" (( "(") (identifier "bVar25") () ")")) (; ";")) (expression_statement "puVar18 = (ulong *)(*(long *)(param_1 + 0x3a0) + uVar14);" (assignment_expression "puVar18 = (ulong *)(*(long *)(param_1 + 0x3a0) + uVar14)" (identifier "puVar18") (= "=") (cast_expression "(ulong *)(*(long *)(param_1 + 0x3a0) + uVar14)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_1 + 0x3a0) + uVar14)" (( "(") (binary_expression "*(long *)(param_1 + 0x3a0) + uVar14" (pointer_expression "*(long *)(param_1 + 0x3a0)" (* "*") (cast_expression "(long *)(param_1 + 0x3a0)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x3a0)" (( "(") (binary_expression "param_1 + 0x3a0" (identifier "param_1") (+ "+") (number_literal "0x3a0")) () ")")))) (+ "+") (identifier "uVar14")) () ")")))) (; ";")) (if_statement "if ((!bVar26 && !bVar25) == bVar26) {\n          uVar21 = *puVar18 | uVar10;\n        }\n        else {\n          uVar21 = ~uVar10 & *puVar18;\n        }" (if "if") (parenthesized_expression "((!bVar26 && !bVar25) == bVar26)" (( "(") (binary_expression "(!bVar26 && !bVar25) == bVar26" (parenthesized_expression "(!bVar26 && !bVar25)" (( "(") (binary_expression "!bVar26 && !bVar25" (unary_expression "!bVar26" (! "!") (identifier "bVar26")) (&& "&&") (unary_expression "!bVar25" (! "!") (identifier "bVar25"))) () ")")) (== "==") (identifier "bVar26")) () ")")) (compound_statement "{\n          uVar21 = *puVar18 | uVar10;\n        }" ({ "{") (expression_statement "uVar21 = *puVar18 | uVar10;" (assignment_expression "uVar21 = *puVar18 | uVar10" (identifier "uVar21") (= "=") (binary_expression "*puVar18 | uVar10" (pointer_expression "*puVar18" (* "*") (identifier "puVar18")) (| "|") (identifier "uVar10"))) (; ";")) (} "}")) (else_clause "else {\n          uVar21 = ~uVar10 & *puVar18;\n        }" (else "else") (compound_statement "{\n          uVar21 = ~uVar10 & *puVar18;\n        }" ({ "{") (expression_statement "uVar21 = ~uVar10 & *puVar18;" (assignment_expression "uVar21 = ~uVar10 & *puVar18" (identifier "uVar21") (= "=") (binary_expression "~uVar10 & *puVar18" (unary_expression "~uVar10" (~ "~") (identifier "uVar10")) (& "&") (pointer_expression "*puVar18" (* "*") (identifier "puVar18")))) (; ";")) (} "}")))) (expression_statement "bVar27 = uVar21 == 0;" (assignment_expression "bVar27 = uVar21 == 0" (identifier "bVar27") (= "=") (binary_expression "uVar21 == 0" (identifier "uVar21") (== "==") (number_literal "0"))) (; ";")) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" (identifier "bVar25") (= "=") (false "false")) (; ";")) (expression_statement "*puVar18 = uVar21;" (assignment_expression "*puVar18 = uVar21" (pointer_expression "*puVar18" (* "*") (identifier "puVar18")) (= "=") (identifier "uVar21")) (; ";")) (expression_statement "lVar5 = 0x10;" (assignment_expression "lVar5 = 0x10" (identifier "lVar5") (= "=") (number_literal "0x10")) (; ";")) (expression_statement "pbVar17 = (byte *)".mips16.call.fp.";" (assignment_expression "pbVar17 = (byte *)".mips16.call.fp."" (identifier "pbVar17") (= "=") (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 "pbVar19 = pbVar20;" (assignment_expression "pbVar19 = pbVar20" (identifier "pbVar19") (= "=") (identifier "pbVar20")) (; ";")) (do_statement "do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);" (do "do") (compound_statement "{\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar17 < *pbVar19;\n          bVar27 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;\n        }" ({ "{") (if_statement "if (lVar5 == 0) break;" (if "if") (parenthesized_expression "(lVar5 == 0)" (( "(") (binary_expression "lVar5 == 0" (identifier "lVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar5 = lVar5 + -1;" (assignment_expression "lVar5 = lVar5 + -1" (identifier "lVar5") (= "=") (binary_expression "lVar5 + -1" (identifier "lVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar25 = *pbVar17 < *pbVar19;" (assignment_expression "bVar25 = *pbVar17 < *pbVar19" (identifier "bVar25") (= "=") (binary_expression "*pbVar17 < *pbVar19" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (< "<") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "bVar27 = *pbVar17 == *pbVar19;" (assignment_expression "bVar27 = *pbVar17 == *pbVar19" (identifier "bVar27") (= "=") (binary_expression "*pbVar17 == *pbVar19" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (== "==") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + (ulong)bVar28 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar28 * -2" (identifier "pbVar17") (+ "+") (binary_expression "(ulong)bVar28 * -2" (cast_expression "(ulong)bVar28" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar28")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + (ulong)bVar28 * -2 + 1" (binary_expression "pbVar19 + (ulong)bVar28 * -2" (identifier "pbVar19") (+ "+") (binary_expression "(ulong)bVar28 * -2" (cast_expression "(ulong)bVar28" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar28")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar27)" (( "(") (identifier "bVar27") () ")")) (; ";")) (expression_statement "puVar18 = (ulong *)(uVar14 + *(long *)(param_1 + 0x3c8));" (assignment_expression "puVar18 = (ulong *)(uVar14 + *(long *)(param_1 + 0x3c8))" (identifier "puVar18") (= "=") (cast_expression "(ulong *)(uVar14 + *(long *)(param_1 + 0x3c8))" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar14 + *(long *)(param_1 + 0x3c8))" (( "(") (binary_expression "uVar14 + *(long *)(param_1 + 0x3c8)" (identifier "uVar14") (+ "+") (pointer_expression "*(long *)(param_1 + 0x3c8)" (* "*") (cast_expression "(long *)(param_1 + 0x3c8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x3c8)" (( "(") (binary_expression "param_1 + 0x3c8" (identifier "param_1") (+ "+") (number_literal "0x3c8")) () ")"))))) () ")")))) (; ";")) (if_statement "if ((!bVar25 && !bVar27) == bVar25) {\n          uVar10 = uVar10 | *puVar18;\n        }\n        else {\n          uVar10 = ~uVar10 & *puVar18;\n        }" (if "if") (parenthesized_expression "((!bVar25 && !bVar27) == bVar25)" (( "(") (binary_expression "(!bVar25 && !bVar27) == bVar25" (parenthesized_expression "(!bVar25 && !bVar27)" (( "(") (binary_expression "!bVar25 && !bVar27" (unary_expression "!bVar25" (! "!") (identifier "bVar25")) (&& "&&") (unary_expression "!bVar27" (! "!") (identifier "bVar27"))) () ")")) (== "==") (identifier "bVar25")) () ")")) (compound_statement "{\n          uVar10 = uVar10 | *puVar18;\n        }" ({ "{") (expression_statement "uVar10 = uVar10 | *puVar18;" (assignment_expression "uVar10 = uVar10 | *puVar18" (identifier "uVar10") (= "=") (binary_expression "uVar10 | *puVar18" (identifier "uVar10") (| "|") (pointer_expression "*puVar18" (* "*") (identifier "puVar18")))) (; ";")) (} "}")) (else_clause "else {\n          uVar10 = ~uVar10 & *puVar18;\n        }" (else "else") (compound_statement "{\n          uVar10 = ~uVar10 & *puVar18;\n        }" ({ "{") (expression_statement "uVar10 = ~uVar10 & *puVar18;" (assignment_expression "uVar10 = ~uVar10 & *puVar18" (identifier "uVar10") (= "=") (binary_expression "~uVar10 & *puVar18" (unary_expression "~uVar10" (~ "~") (identifier "uVar10")) (& "&") (pointer_expression "*puVar18" (* "*") (identifier "puVar18")))) (; ";")) (} "}")))) (expression_statement "bVar27 = uVar10 == 0;" (assignment_expression "bVar27 = uVar10 == 0" (identifier "bVar27") (= "=") (binary_expression "uVar10 == 0" (identifier "uVar10") (== "==") (number_literal "0"))) (; ";")) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" (identifier "bVar25") (= "=") (false "false")) (; ";")) (expression_statement "*puVar18 = uVar10;" (assignment_expression "*puVar18 = uVar10" (pointer_expression "*puVar18" (* "*") (identifier "puVar18")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "lVar5 = 5;" (assignment_expression "lVar5 = 5" (identifier "lVar5") (= "=") (number_literal "5")) (; ";")) (expression_statement "pbVar17 = &DAT_0053357f;" (assignment_expression "pbVar17 = &DAT_0053357f" (identifier "pbVar17") (= "=") (pointer_expression "&DAT_0053357f" (& "&") (identifier "DAT_0053357f"))) (; ";")) (do_statement "do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar20 < *pbVar17;\n          bVar27 = *pbVar20 == *pbVar17;\n          pbVar20 = pbVar20 + (ulong)bVar28 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n        } while (bVar27);" (do "do") (compound_statement "{\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar25 = *pbVar20 < *pbVar17;\n          bVar27 = *pbVar20 == *pbVar17;\n          pbVar20 = pbVar20 + (ulong)bVar28 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;\n        }" ({ "{") (if_statement "if (lVar5 == 0) break;" (if "if") (parenthesized_expression "(lVar5 == 0)" (( "(") (binary_expression "lVar5 == 0" (identifier "lVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar5 = lVar5 + -1;" (assignment_expression "lVar5 = lVar5 + -1" (identifier "lVar5") (= "=") (binary_expression "lVar5 + -1" (identifier "lVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar25 = *pbVar20 < *pbVar17;" (assignment_expression "bVar25 = *pbVar20 < *pbVar17" (identifier "bVar25") (= "=") (binary_expression "*pbVar20 < *pbVar17" (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")) (< "<") (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")))) (; ";")) (expression_statement "bVar27 = *pbVar20 == *pbVar17;" (assignment_expression "bVar27 = *pbVar20 == *pbVar17" (identifier "bVar27") (= "=") (binary_expression "*pbVar20 == *pbVar17" (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")) (== "==") (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")))) (; ";")) (expression_statement "pbVar20 = pbVar20 + (ulong)bVar28 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (ulong)bVar28 * -2 + 1" (identifier "pbVar20") (= "=") (binary_expression "pbVar20 + (ulong)bVar28 * -2 + 1" (binary_expression "pbVar20 + (ulong)bVar28 * -2" (identifier "pbVar20") (+ "+") (binary_expression "(ulong)bVar28 * -2" (cast_expression "(ulong)bVar28" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar28")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + (ulong)bVar28 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar28 * -2" (identifier "pbVar17") (+ "+") (binary_expression "(ulong)bVar28 * -2" (cast_expression "(ulong)bVar28" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar28")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar27)" (( "(") (identifier "bVar27") () ")")) (; ";")) (if_statement "if ((!bVar25 && !bVar27) == bVar25) {\n          if (*(int *)(param_1 + 0x3f0) != -1) goto LAB_002d68ff;\n          *(int *)(param_1 + 0x3f0) = (int)uVar23;\n        }" (if "if") (parenthesized_expression "((!bVar25 && !bVar27) == bVar25)" (( "(") (binary_expression "(!bVar25 && !bVar27) == bVar25" (parenthesized_expression "(!bVar25 && !bVar27)" (( "(") (binary_expression "!bVar25 && !bVar27" (unary_expression "!bVar25" (! "!") (identifier "bVar25")) (&& "&&") (unary_expression "!bVar27" (! "!") (identifier "bVar27"))) () ")")) (== "==") (identifier "bVar25")) () ")")) (compound_statement "{\n          if (*(int *)(param_1 + 0x3f0) != -1) goto LAB_002d68ff;\n          *(int *)(param_1 + 0x3f0) = (int)uVar23;\n        }" ({ "{") (if_statement "if (*(int *)(param_1 + 0x3f0) != -1) goto LAB_002d68ff;" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x3f0) != -1)" (( "(") (binary_expression "*(int *)(param_1 + 0x3f0) != -1" (pointer_expression "*(int *)(param_1 + 0x3f0)" (* "*") (cast_expression "(int *)(param_1 + 0x3f0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x3f0)" (( "(") (binary_expression "param_1 + 0x3f0" (identifier "param_1") (+ "+") (number_literal "0x3f0")) () ")")))) (!= "!=") (number_literal "-1")) () ")")) (goto_statement "goto LAB_002d68ff;" (goto "goto") (statement_identifier "LAB_002d68ff") (; ";"))) (expression_statement "*(int *)(param_1 + 0x3f0) = (int)uVar23;" (assignment_expression "*(int *)(param_1 + 0x3f0) = (int)uVar23" (pointer_expression "*(int *)(param_1 + 0x3f0)" (* "*") (cast_expression "(int *)(param_1 + 0x3f0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x3f0)" (( "(") (binary_expression "param_1 + 0x3f0" (identifier "param_1") (+ "+") (number_literal "0x3f0")) () ")")))) (= "=") (cast_expression "(int)uVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar23"))) (; ";")) (} "}"))) (expression_statement "uVar22 = (int)uVar23 + 1;" (assignment_expression "uVar22 = (int)uVar23 + 1" (identifier "uVar22") (= "=") (binary_expression "(int)uVar23 + 1" (cast_expression "(int)uVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar23")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar23 = (ulong)uVar22;" (assignment_expression "uVar23 = (ulong)uVar22" (identifier "uVar23") (= "=") (cast_expression "(ulong)uVar22" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar22"))) (; ";")) (expression_statement "puVar15 = puVar16 + 10;" (assignment_expression "puVar15 = puVar16 + 10" (identifier "puVar15") (= "=") (binary_expression "puVar16 + 10" (identifier "puVar16") (+ "+") (number_literal "10"))) (; ";")) (if_statement "if (*(uint *)(param_1 + 0x38) <= uVar22) {\n          if (bVar4) {\n            return;\n          }\n          goto LAB_002d643d;\n        }" (if "if") (parenthesized_expression "(*(uint *)(param_1 + 0x38) <= uVar22)" (( "(") (binary_expression "*(uint *)(param_1 + 0x38) <= uVar22" (pointer_expression "*(uint *)(param_1 + 0x38)" (* "*") (cast_expression "(uint *)(param_1 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (<= "<=") (identifier "uVar22")) () ")")) (compound_statement "{\n          if (bVar4) {\n            return;\n          }\n          goto LAB_002d643d;\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_002d643d;" (goto "goto") (statement_identifier "LAB_002d643d") (; ";")) (} "}"))) (expression_statement "uVar22 = puVar16[0xb];" (assignment_expression "uVar22 = puVar16[0xb]" (identifier "uVar22") (= "=") (subscript_expression "puVar16[0xb]" (identifier "puVar16") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar22 == 2)" (( "(") (binary_expression "uVar22 == 2" (identifier "uVar22") (== "==") (number_literal "2")) () ")")) (; ";")) (labeled_statement "LAB_002d6581:\n      puVar16 = puVar15;" (statement_identifier "LAB_002d6581") (: ":") (expression_statement "puVar16 = puVar15;" (assignment_expression "puVar16 = puVar15" (identifier "puVar16") (= "=") (identifier "puVar15")) (; ";"))) (if_statement "if (uVar22 != 3) {\n        if (uVar22 == 0x70000006) {\n          *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) | 4;\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          puVar11 = (undefined4 *)\n                    FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0);\n          *(undefined4 *)(param_1 + 0x368) = puVar11[5];\n          *(undefined4 *)(param_1 + 0x408) = *puVar11;\n          *(undefined4 *)(param_1 + 0x40c) = puVar11[1];\n          *(undefined4 *)(param_1 + 0x410) = puVar11[2];\n          *(undefined4 *)(param_1 + 0x414) = puVar11[3];\n          *(undefined4 *)(param_1 + 0x418) = puVar11[4];\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x6ffffff5) {\n          if (*(long *)(param_1 + 0x3f8) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          uVar6 = FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                               puVar15[4],uVar22,1,0);\n          uVar7 = FUN_0049cb70(0x10);\n                    \n          FUN_003362a0(uVar7,uVar6,uVar22);\n          *(undefined8 *)(param_1 + 0x3f8) = uVar7;\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000002a) {\n          if (*(long *)(param_1 + 0x400) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          psVar8 = (short *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0);\n          psVar9 = (short *)FUN_0049cb70(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 + 0x400) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined8 *)(param_1 + 8);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0034a750(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((long)psVar9 + 3) = *(undefined1 *)((long)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((long)psVar9 + 5) = *(undefined1 *)((long)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((long)psVar9 + 7) = *(undefined1 *)((long)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          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000000d) {\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          pcVar12 = (char *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0);\n          pcVar24 = pcVar12 + uVar22;\n          for (; pcVar12 + 8 <= pcVar24; pcVar12 = pcVar12 + bVar1) {\n            bVar1 = pcVar12[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined8 *)(param_1 + 8);\n              pcVar24 = ".MIPS.options";\n              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);\n              break;\n            }\n            if (*pcVar12 == '\x01') {\n              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }" (if "if") (parenthesized_expression "(uVar22 != 3)" (( "(") (binary_expression "uVar22 != 3" (identifier "uVar22") (!= "!=") (number_literal "3")) () ")")) (compound_statement "{\n        if (uVar22 == 0x70000006) {\n          *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) | 4;\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          puVar11 = (undefined4 *)\n                    FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0);\n          *(undefined4 *)(param_1 + 0x368) = puVar11[5];\n          *(undefined4 *)(param_1 + 0x408) = *puVar11;\n          *(undefined4 *)(param_1 + 0x40c) = puVar11[1];\n          *(undefined4 *)(param_1 + 0x410) = puVar11[2];\n          *(undefined4 *)(param_1 + 0x414) = puVar11[3];\n          *(undefined4 *)(param_1 + 0x418) = puVar11[4];\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x6ffffff5) {\n          if (*(long *)(param_1 + 0x3f8) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          uVar6 = FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                               puVar15[4],uVar22,1,0);\n          uVar7 = FUN_0049cb70(0x10);\n                    \n          FUN_003362a0(uVar7,uVar6,uVar22);\n          *(undefined8 *)(param_1 + 0x3f8) = uVar7;\n          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000002a) {\n          if (*(long *)(param_1 + 0x400) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          psVar8 = (short *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0);\n          psVar9 = (short *)FUN_0049cb70(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 + 0x400) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined8 *)(param_1 + 8);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0034a750(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((long)psVar9 + 3) = *(undefined1 *)((long)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((long)psVar9 + 5) = *(undefined1 *)((long)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((long)psVar9 + 7) = *(undefined1 *)((long)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          uVar22 = puVar15[1];\n        }\n        if (uVar22 == 0x7000000d) {\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          pcVar12 = (char *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0);\n          pcVar24 = pcVar12 + uVar22;\n          for (; pcVar12 + 8 <= pcVar24; pcVar12 = pcVar12 + bVar1) {\n            bVar1 = pcVar12[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined8 *)(param_1 + 8);\n              pcVar24 = ".MIPS.options";\n              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);\n              break;\n            }\n            if (*pcVar12 == '\x01') {\n              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);\n            }\n          }\n        }\n        bVar4 = true;\n      }" ({ "{") (if_statement "if (uVar22 == 0x70000006) {\n          *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) | 4;\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          puVar11 = (undefined4 *)\n                    FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0);\n          *(undefined4 *)(param_1 + 0x368) = puVar11[5];\n          *(undefined4 *)(param_1 + 0x408) = *puVar11;\n          *(undefined4 *)(param_1 + 0x40c) = puVar11[1];\n          *(undefined4 *)(param_1 + 0x410) = puVar11[2];\n          *(undefined4 *)(param_1 + 0x414) = puVar11[3];\n          *(undefined4 *)(param_1 + 0x418) = puVar11[4];\n          uVar22 = puVar15[1];\n        }" (if "if") (parenthesized_expression "(uVar22 == 0x70000006)" (( "(") (binary_expression "uVar22 == 0x70000006" (identifier "uVar22") (== "==") (number_literal "0x70000006")) () ")")) (compound_statement "{\n          *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) | 4;\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          puVar11 = (undefined4 *)\n                    FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0);\n          *(undefined4 *)(param_1 + 0x368) = puVar11[5];\n          *(undefined4 *)(param_1 + 0x408) = *puVar11;\n          *(undefined4 *)(param_1 + 0x40c) = puVar11[1];\n          *(undefined4 *)(param_1 + 0x410) = puVar11[2];\n          *(undefined4 *)(param_1 + 0x414) = puVar11[3];\n          *(undefined4 *)(param_1 + 0x418) = puVar11[4];\n          uVar22 = puVar15[1];\n        }" ({ "{") (expression_statement "*(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) | 4;" (assignment_expression "*(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) | 4" (pointer_expression "*(byte *)(param_1 + 0x36c)" (* "*") (cast_expression "(byte *)(param_1 + 0x36c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x36c)" (( "(") (binary_expression "param_1 + 0x36c" (identifier "param_1") (+ "+") (number_literal "0x36c")) () ")")))) (= "=") (binary_expression "*(byte *)(param_1 + 0x36c) | 4" (pointer_expression "*(byte *)(param_1 + 0x36c)" (* "*") (cast_expression "(byte *)(param_1 + 0x36c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x36c)" (( "(") (binary_expression "param_1 + 0x36c" (identifier "param_1") (+ "+") (number_literal "0x36c")) () ")")))) (| "|") (number_literal "4"))) (; ";")) (if_statement "if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;" (if "if") (parenthesized_expression "(*(long *)(param_1 + 0x28) == 0)" (( "(") (binary_expression "*(long *)(param_1 + 0x28) == 0" (pointer_expression "*(long *)(param_1 + 0x28)" (* "*") (cast_expression "(long *)(param_1 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_002d68fa;" (goto "goto") (statement_identifier "LAB_002d68fa") (; ";"))) (expression_statement "puVar11 = (undefined4 *)\n                    FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0);" (assignment_expression "puVar11 = (undefined4 *)\n                    FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0)" (identifier "puVar11") (= "=") (cast_expression "(undefined4 *)\n                    FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0)" (identifier "FUN_0034d600") (argument_list "(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                                 puVar15[4],puVar15[5],1,0)" (( "(") (binary_expression "*(long *)(param_1 + 0x28) + 0x28" (pointer_expression "*(long *)(param_1 + 0x28)" (* "*") (cast_expression "(long *)(param_1 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (+ "+") (number_literal "0x28")) (, ",") (pointer_expression "*(undefined8 *)(param_1 + 0x30)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x30)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")")))) (, ",") (subscript_expression "puVar15[4]" (identifier "puVar15") ([ "[") (number_literal "4") (] "]")) (, ",") (subscript_expression "puVar15[5]" (identifier "puVar15") ([ "[") (number_literal "5") (] "]")) (, ",") (number_literal "1") (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x368) = puVar11[5];" (assignment_expression "*(undefined4 *)(param_1 + 0x368) = puVar11[5]" (pointer_expression "*(undefined4 *)(param_1 + 0x368)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x368)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x368)" (( "(") (binary_expression "param_1 + 0x368" (identifier "param_1") (+ "+") (number_literal "0x368")) () ")")))) (= "=") (subscript_expression "puVar11[5]" (identifier "puVar11") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x408) = *puVar11;" (assignment_expression "*(undefined4 *)(param_1 + 0x408) = *puVar11" (pointer_expression "*(undefined4 *)(param_1 + 0x408)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x408)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x408)" (( "(") (binary_expression "param_1 + 0x408" (identifier "param_1") (+ "+") (number_literal "0x408")) () ")")))) (= "=") (pointer_expression "*puVar11" (* "*") (identifier "puVar11"))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x40c) = puVar11[1];" (assignment_expression "*(undefined4 *)(param_1 + 0x40c) = puVar11[1]" (pointer_expression "*(undefined4 *)(param_1 + 0x40c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x40c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x40c)" (( "(") (binary_expression "param_1 + 0x40c" (identifier "param_1") (+ "+") (number_literal "0x40c")) () ")")))) (= "=") (subscript_expression "puVar11[1]" (identifier "puVar11") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x410) = puVar11[2];" (assignment_expression "*(undefined4 *)(param_1 + 0x410) = puVar11[2]" (pointer_expression "*(undefined4 *)(param_1 + 0x410)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x410)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x410)" (( "(") (binary_expression "param_1 + 0x410" (identifier "param_1") (+ "+") (number_literal "0x410")) () ")")))) (= "=") (subscript_expression "puVar11[2]" (identifier "puVar11") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x414) = puVar11[3];" (assignment_expression "*(undefined4 *)(param_1 + 0x414) = puVar11[3]" (pointer_expression "*(undefined4 *)(param_1 + 0x414)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x414)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x414)" (( "(") (binary_expression "param_1 + 0x414" (identifier "param_1") (+ "+") (number_literal "0x414")) () ")")))) (= "=") (subscript_expression "puVar11[3]" (identifier "puVar11") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x418) = puVar11[4];" (assignment_expression "*(undefined4 *)(param_1 + 0x418) = puVar11[4]" (pointer_expression "*(undefined4 *)(param_1 + 0x418)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x418)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x418)" (( "(") (binary_expression "param_1 + 0x418" (identifier "param_1") (+ "+") (number_literal "0x418")) () ")")))) (= "=") (subscript_expression "puVar11[4]" (identifier "puVar11") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "uVar22 = puVar15[1];" (assignment_expression "uVar22 = puVar15[1]" (identifier "uVar22") (= "=") (subscript_expression "puVar15[1]" (identifier "puVar15") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}"))) (if_statement "if (uVar22 == 0x6ffffff5) {\n          if (*(long *)(param_1 + 0x3f8) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          uVar6 = FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                               puVar15[4],uVar22,1,0);\n          uVar7 = FUN_0049cb70(0x10);\n                    \n          FUN_003362a0(uVar7,uVar6,uVar22);\n          *(undefined8 *)(param_1 + 0x3f8) = uVar7;\n          uVar22 = puVar15[1];\n        }" (if "if") (parenthesized_expression "(uVar22 == 0x6ffffff5)" (( "(") (binary_expression "uVar22 == 0x6ffffff5" (identifier "uVar22") (== "==") (number_literal "0x6ffffff5")) () ")")) (compound_statement "{\n          if (*(long *)(param_1 + 0x3f8) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          uVar6 = FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                               puVar15[4],uVar22,1,0);\n          uVar7 = FUN_0049cb70(0x10);\n                    \n          FUN_003362a0(uVar7,uVar6,uVar22);\n          *(undefined8 *)(param_1 + 0x3f8) = uVar7;\n          uVar22 = puVar15[1];\n        }" ({ "{") (if_statement "if (*(long *)(param_1 + 0x3f8) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }" (if "if") (parenthesized_expression "(*(long *)(param_1 + 0x3f8) != 0)" (( "(") (binary_expression "*(long *)(param_1 + 0x3f8) != 0" (pointer_expression "*(long *)(param_1 + 0x3f8)" (* "*") (cast_expression "(long *)(param_1 + 0x3f8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x3f8)" (( "(") (binary_expression "param_1 + 0x3f8" (identifier "param_1") (+ "+") (number_literal "0x3f8")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1adf,"do_read_symbols");\n          }" ({ "{") (expression_statement "FUN_00352af0("../../gold/mips.cc",0x1adf,"do_read_symbols");" (call_expression "FUN_00352af0("../../gold/mips.cc",0x1adf,"do_read_symbols")" (identifier "FUN_00352af0") (argument_list "("../../gold/mips.cc",0x1adf,"do_read_symbols")" (( "(") (string_literal ""../../gold/mips.cc"" (" """) (string_content "../../gold/mips.cc") (" """)) (, ",") (number_literal "0x1adf") (, ",") (string_literal ""do_read_symbols"" (" """) (string_content "do_read_symbols") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar22 = puVar15[5];" (assignment_expression "uVar22 = puVar15[5]" (identifier "uVar22") (= "=") (subscript_expression "puVar15[5]" (identifier "puVar15") ([ "[") (number_literal "5") (] "]"))) (; ";")) (if_statement "if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;" (if "if") (parenthesized_expression "(*(long *)(param_1 + 0x28) == 0)" (( "(") (binary_expression "*(long *)(param_1 + 0x28) == 0" (pointer_expression "*(long *)(param_1 + 0x28)" (* "*") (cast_expression "(long *)(param_1 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_002d68fa;" (goto "goto") (statement_identifier "LAB_002d68fa") (; ";"))) (expression_statement "uVar6 = FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                               puVar15[4],uVar22,1,0);" (assignment_expression "uVar6 = FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                               puVar15[4],uVar22,1,0)" (identifier "uVar6") (= "=") (call_expression "FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                               puVar15[4],uVar22,1,0)" (identifier "FUN_0034d600") (argument_list "(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),\n                               puVar15[4],uVar22,1,0)" (( "(") (binary_expression "*(long *)(param_1 + 0x28) + 0x28" (pointer_expression "*(long *)(param_1 + 0x28)" (* "*") (cast_expression "(long *)(param_1 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (+ "+") (number_literal "0x28")) (, ",") (pointer_expression "*(undefined8 *)(param_1 + 0x30)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x30)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")")))) (, ",") (subscript_expression "puVar15[4]" (identifier "puVar15") ([ "[") (number_literal "4") (] "]")) (, ",") (identifier "uVar22") (, ",") (number_literal "1") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "uVar7 = FUN_0049cb70(0x10);" (assignment_expression "uVar7 = FUN_0049cb70(0x10)" (identifier "uVar7") (= "=") (call_expression "FUN_0049cb70(0x10)" (identifier "FUN_0049cb70") (argument_list "(0x10)" (( "(") (number_literal "0x10") () ")")))) (; ";")) (expression_statement "FUN_003362a0(uVar7,uVar6,uVar22);" (call_expression "FUN_003362a0(uVar7,uVar6,uVar22)" (identifier "FUN_003362a0") (argument_list "(uVar7,uVar6,uVar22)" (( "(") (identifier "uVar7") (, ",") (identifier "uVar6") (, ",") (identifier "uVar22") () ")"))) (; ";")) (expression_statement "*(undefined8 *)(param_1 + 0x3f8) = uVar7;" (assignment_expression "*(undefined8 *)(param_1 + 0x3f8) = uVar7" (pointer_expression "*(undefined8 *)(param_1 + 0x3f8)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x3f8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x3f8)" (( "(") (binary_expression "param_1 + 0x3f8" (identifier "param_1") (+ "+") (number_literal "0x3f8")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "uVar22 = puVar15[1];" (assignment_expression "uVar22 = puVar15[1]" (identifier "uVar22") (= "=") (subscript_expression "puVar15[1]" (identifier "puVar15") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}"))) (if_statement "if (uVar22 == 0x7000002a) {\n          if (*(long *)(param_1 + 0x400) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          psVar8 = (short *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0);\n          psVar9 = (short *)FUN_0049cb70(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 + 0x400) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined8 *)(param_1 + 8);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0034a750(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((long)psVar9 + 3) = *(undefined1 *)((long)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((long)psVar9 + 5) = *(undefined1 *)((long)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((long)psVar9 + 7) = *(undefined1 *)((long)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          uVar22 = puVar15[1];\n        }" (if "if") (parenthesized_expression "(uVar22 == 0x7000002a)" (( "(") (binary_expression "uVar22 == 0x7000002a" (identifier "uVar22") (== "==") (number_literal "0x7000002a")) () ")")) (compound_statement "{\n          if (*(long *)(param_1 + 0x400) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          psVar8 = (short *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0);\n          psVar9 = (short *)FUN_0049cb70(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 + 0x400) = psVar9;\n          *psVar9 = sVar2;\n          if (sVar2 != 0) {\n            uVar6 = *(undefined8 *)(param_1 + 8);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0034a750(uVar7,uVar6,sVar2);\n            return;\n          }\n          *(char *)(psVar9 + 1) = (char)psVar8[1];\n          *(undefined1 *)((long)psVar9 + 3) = *(undefined1 *)((long)psVar8 + 3);\n          *(char *)(psVar9 + 2) = (char)psVar8[2];\n          *(undefined1 *)((long)psVar9 + 5) = *(undefined1 *)((long)psVar8 + 5);\n          *(char *)(psVar9 + 3) = (char)psVar8[3];\n          *(undefined1 *)((long)psVar9 + 7) = *(undefined1 *)((long)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          uVar22 = puVar15[1];\n        }" ({ "{") (if_statement "if (*(long *)(param_1 + 0x400) != 0) {\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }" (if "if") (parenthesized_expression "(*(long *)(param_1 + 0x400) != 0)" (( "(") (binary_expression "*(long *)(param_1 + 0x400) != 0" (pointer_expression "*(long *)(param_1 + 0x400)" (* "*") (cast_expression "(long *)(param_1 + 0x400)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x400)" (( "(") (binary_expression "param_1 + 0x400" (identifier "param_1") (+ "+") (number_literal "0x400")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n            FUN_00352af0("../../gold/mips.cc",0x1aeb,"do_read_symbols");\n          }" ({ "{") (expression_statement "FUN_00352af0("../../gold/mips.cc",0x1aeb,"do_read_symbols");" (call_expression "FUN_00352af0("../../gold/mips.cc",0x1aeb,"do_read_symbols")" (identifier "FUN_00352af0") (argument_list "("../../gold/mips.cc",0x1aeb,"do_read_symbols")" (( "(") (string_literal ""../../gold/mips.cc"" (" """) (string_content "../../gold/mips.cc") (" """)) (, ",") (number_literal "0x1aeb") (, ",") (string_literal ""do_read_symbols"" (" """) (string_content "do_read_symbols") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;" (if "if") (parenthesized_expression "(*(long *)(param_1 + 0x28) == 0)" (( "(") (binary_expression "*(long *)(param_1 + 0x28) == 0" (pointer_expression "*(long *)(param_1 + 0x28)" (* "*") (cast_expression "(long *)(param_1 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_002d68fa;" (goto "goto") (statement_identifier "LAB_002d68fa") (; ";"))) (expression_statement "psVar8 = (short *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0);" (assignment_expression "psVar8 = (short *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0)" (identifier "psVar8") (= "=") (cast_expression "(short *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0)" (identifier "FUN_0034d600") (argument_list "(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0)" (( "(") (binary_expression "*(long *)(param_1 + 0x28) + 0x28" (pointer_expression "*(long *)(param_1 + 0x28)" (* "*") (cast_expression "(long *)(param_1 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (+ "+") (number_literal "0x28")) (, ",") (pointer_expression "*(undefined8 *)(param_1 + 0x30)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x30)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")")))) (, ",") (subscript_expression "puVar15[4]" (identifier "puVar15") ([ "[") (number_literal "4") (] "]")) (, ",") (subscript_expression "puVar15[5]" (identifier "puVar15") ([ "[") (number_literal "5") (] "]")) (, ",") (number_literal "1") (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "psVar9 = (short *)FUN_0049cb70(0x18);" (assignment_expression "psVar9 = (short *)FUN_0049cb70(0x18)" (identifier "psVar9") (= "=") (cast_expression "(short *)FUN_0049cb70(0x18)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0049cb70(0x18)" (identifier "FUN_0049cb70") (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 + 0x400) = psVar9;" (assignment_expression "*(short **)(param_1 + 0x400) = psVar9" (pointer_expression "*(short **)(param_1 + 0x400)" (* "*") (cast_expression "(short **)(param_1 + 0x400)" (( "(") (type_descriptor "short **" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x400)" (( "(") (binary_expression "param_1 + 0x400" (identifier "param_1") (+ "+") (number_literal "0x400")) () ")")))) (= "=") (identifier "psVar9")) (; ";")) (expression_statement "*psVar9 = sVar2;" (assignment_expression "*psVar9 = sVar2" (pointer_expression "*psVar9" (* "*") (identifier "psVar9")) (= "=") (identifier "sVar2")) (; ";")) (if_statement "if (sVar2 != 0) {\n            uVar6 = *(undefined8 *)(param_1 + 8);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0034a750(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 = *(undefined8 *)(param_1 + 8);\n            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");\n            FUN_0034a750(uVar7,uVar6,sVar2);\n            return;\n          }" ({ "{") (expression_statement "uVar6 = *(undefined8 *)(param_1 + 8);" (assignment_expression "uVar6 = *(undefined8 *)(param_1 + 8)" (identifier "uVar6") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 8)" (* "*") (cast_expression "(undefined8 *)(param_1 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (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_0034a750(uVar7,uVar6,sVar2);" (call_expression "FUN_0034a750(uVar7,uVar6,sVar2)" (identifier "FUN_0034a750") (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 *)((long)psVar9 + 3) = *(undefined1 *)((long)psVar8 + 3);" (assignment_expression "*(undefined1 *)((long)psVar9 + 3) = *(undefined1 *)((long)psVar8 + 3)" (pointer_expression "*(undefined1 *)((long)psVar9 + 3)" (* "*") (cast_expression "(undefined1 *)((long)psVar9 + 3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)psVar9 + 3)" (( "(") (binary_expression "(long)psVar9 + 3" (cast_expression "(long)psVar9" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "psVar9")) (+ "+") (number_literal "3")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)((long)psVar8 + 3)" (* "*") (cast_expression "(undefined1 *)((long)psVar8 + 3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)psVar8 + 3)" (( "(") (binary_expression "(long)psVar8 + 3" (cast_expression "(long)psVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (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 *)((long)psVar9 + 5) = *(undefined1 *)((long)psVar8 + 5);" (assignment_expression "*(undefined1 *)((long)psVar9 + 5) = *(undefined1 *)((long)psVar8 + 5)" (pointer_expression "*(undefined1 *)((long)psVar9 + 5)" (* "*") (cast_expression "(undefined1 *)((long)psVar9 + 5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)psVar9 + 5)" (( "(") (binary_expression "(long)psVar9 + 5" (cast_expression "(long)psVar9" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "psVar9")) (+ "+") (number_literal "5")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)((long)psVar8 + 5)" (* "*") (cast_expression "(undefined1 *)((long)psVar8 + 5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)psVar8 + 5)" (( "(") (binary_expression "(long)psVar8 + 5" (cast_expression "(long)psVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (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 *)((long)psVar9 + 7) = *(undefined1 *)((long)psVar8 + 7);" (assignment_expression "*(undefined1 *)((long)psVar9 + 7) = *(undefined1 *)((long)psVar8 + 7)" (pointer_expression "*(undefined1 *)((long)psVar9 + 7)" (* "*") (cast_expression "(undefined1 *)((long)psVar9 + 7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)psVar9 + 7)" (( "(") (binary_expression "(long)psVar9 + 7" (cast_expression "(long)psVar9" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "psVar9")) (+ "+") (number_literal "7")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)((long)psVar8 + 7)" (* "*") (cast_expression "(undefined1 *)((long)psVar8 + 7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)psVar8 + 7)" (( "(") (binary_expression "(long)psVar8 + 7" (cast_expression "(long)psVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (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 "uVar22 = puVar15[1];" (assignment_expression "uVar22 = puVar15[1]" (identifier "uVar22") (= "=") (subscript_expression "puVar15[1]" (identifier "puVar15") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}"))) (if_statement "if (uVar22 == 0x7000000d) {\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          pcVar12 = (char *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0);\n          pcVar24 = pcVar12 + uVar22;\n          for (; pcVar12 + 8 <= pcVar24; pcVar12 = pcVar12 + bVar1) {\n            bVar1 = pcVar12[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined8 *)(param_1 + 8);\n              pcVar24 = ".MIPS.options";\n              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);\n              break;\n            }\n            if (*pcVar12 == '\x01') {\n              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);\n            }\n          }\n        }" (if "if") (parenthesized_expression "(uVar22 == 0x7000000d)" (( "(") (binary_expression "uVar22 == 0x7000000d" (identifier "uVar22") (== "==") (number_literal "0x7000000d")) () ")")) (compound_statement "{\n          uVar22 = puVar15[5];\n          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;\n          pcVar12 = (char *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0);\n          pcVar24 = pcVar12 + uVar22;\n          for (; pcVar12 + 8 <= pcVar24; pcVar12 = pcVar12 + bVar1) {\n            bVar1 = pcVar12[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined8 *)(param_1 + 8);\n              pcVar24 = ".MIPS.options";\n              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);\n              break;\n            }\n            if (*pcVar12 == '\x01') {\n              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);\n            }\n          }\n        }" ({ "{") (expression_statement "uVar22 = puVar15[5];" (assignment_expression "uVar22 = puVar15[5]" (identifier "uVar22") (= "=") (subscript_expression "puVar15[5]" (identifier "puVar15") ([ "[") (number_literal "5") (] "]"))) (; ";")) (if_statement "if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;" (if "if") (parenthesized_expression "(*(long *)(param_1 + 0x28) == 0)" (( "(") (binary_expression "*(long *)(param_1 + 0x28) == 0" (pointer_expression "*(long *)(param_1 + 0x28)" (* "*") (cast_expression "(long *)(param_1 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_002d68fa;" (goto "goto") (statement_identifier "LAB_002d68fa") (; ";"))) (expression_statement "pcVar12 = (char *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0);" (assignment_expression "pcVar12 = (char *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0)" (identifier "pcVar12") (= "=") (cast_expression "(char *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0)" (identifier "FUN_0034d600") (argument_list "(*(long *)(param_1 + 0x28) + 0x28,\n                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,\n                                         0)" (( "(") (binary_expression "*(long *)(param_1 + 0x28) + 0x28" (pointer_expression "*(long *)(param_1 + 0x28)" (* "*") (cast_expression "(long *)(param_1 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (+ "+") (number_literal "0x28")) (, ",") (pointer_expression "*(undefined8 *)(param_1 + 0x30)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x30)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")")))) (, ",") (subscript_expression "puVar15[4]" (identifier "puVar15") ([ "[") (number_literal "4") (] "]")) (, ",") (cast_expression "(ulong)uVar22" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar22")) (, ",") (number_literal "1") (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "pcVar24 = pcVar12 + uVar22;" (assignment_expression "pcVar24 = pcVar12 + uVar22" (identifier "pcVar24") (= "=") (binary_expression "pcVar12 + uVar22" (identifier "pcVar12") (+ "+") (identifier "uVar22"))) (; ";")) (for_statement "for (; pcVar12 + 8 <= pcVar24; pcVar12 = pcVar12 + bVar1) {\n            bVar1 = pcVar12[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined8 *)(param_1 + 8);\n              pcVar24 = ".MIPS.options";\n              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);\n              break;\n            }\n            if (*pcVar12 == '\x01') {\n              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);\n            }\n          }" (for "for") (( "(") (; ";") (binary_expression "pcVar12 + 8 <= pcVar24" (binary_expression "pcVar12 + 8" (identifier "pcVar12") (+ "+") (number_literal "8")) (<= "<=") (identifier "pcVar24")) (; ";") (assignment_expression "pcVar12 = pcVar12 + bVar1" (identifier "pcVar12") (= "=") (binary_expression "pcVar12 + bVar1" (identifier "pcVar12") (+ "+") (identifier "bVar1"))) () ")") (compound_statement "{\n            bVar1 = pcVar12[1];\n            if (bVar1 < 8) {\n              uVar6 = *(undefined8 *)(param_1 + 8);\n              pcVar24 = ".MIPS.options";\n              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);\n              break;\n            }\n            if (*pcVar12 == '\x01') {\n              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);\n            }\n          }" ({ "{") (expression_statement "bVar1 = pcVar12[1];" (assignment_expression "bVar1 = pcVar12[1]" (identifier "bVar1") (= "=") (subscript_expression "pcVar12[1]" (identifier "pcVar12") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (bVar1 < 8) {\n              uVar6 = *(undefined8 *)(param_1 + 8);\n              pcVar24 = ".MIPS.options";\n              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);\n              break;\n            }" (if "if") (parenthesized_expression "(bVar1 < 8)" (( "(") (binary_expression "bVar1 < 8" (identifier "bVar1") (< "<") (number_literal "8")) () ")")) (compound_statement "{\n              uVar6 = *(undefined8 *)(param_1 + 8);\n              pcVar24 = ".MIPS.options";\n              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }\n              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");\n              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);\n              break;\n            }" ({ "{") (expression_statement "uVar6 = *(undefined8 *)(param_1 + 8);" (assignment_expression "uVar6 = *(undefined8 *)(param_1 + 8)" (identifier "uVar6") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 8)" (* "*") (cast_expression "(undefined8 *)(param_1 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "pcVar24 = ".MIPS.options";" (assignment_expression "pcVar24 = ".MIPS.options"" (identifier "pcVar24") (= "=") (string_literal "".MIPS.options"" (" """) (string_content ".MIPS.options") (" """))) (; ";")) (if_statement "if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {\n                pcVar24 = ".options";\n              }" (if "if") (parenthesized_expression "((*(byte *)(param_1 + 0x36c) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(param_1 + 0x36c) & 2) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x36c) & 2)" (( "(") (binary_expression "*(byte *)(param_1 + 0x36c) & 2" (pointer_expression "*(byte *)(param_1 + 0x36c)" (* "*") (cast_expression "(byte *)(param_1 + 0x36c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x36c)" (( "(") (binary_expression "param_1 + 0x36c" (identifier "param_1") (+ "+") (number_literal "0x36c")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                pcVar24 = ".options";\n              }" ({ "{") (expression_statement "pcVar24 = ".options";" (assignment_expression "pcVar24 = ".options"" (identifier "pcVar24") (= "=") (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_0034a750(uVar7,uVar6,pcVar24,bVar1);" (call_expression "FUN_0034a750(uVar7,uVar6,pcVar24,bVar1)" (identifier "FUN_0034a750") (argument_list "(uVar7,uVar6,pcVar24,bVar1)" (( "(") (identifier "uVar7") (, ",") (identifier "uVar6") (, ",") (identifier "pcVar24") (, ",") (identifier "bVar1") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (if_statement "if (*pcVar12 == '\x01') {\n              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);\n            }" (if "if") (parenthesized_expression "(*pcVar12 == '\x01')" (( "(") (binary_expression "*pcVar12 == '\x01'" (pointer_expression "*pcVar12" (* "*") (identifier "pcVar12")) (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")) (compound_statement "{\n              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);\n            }" ({ "{") (expression_statement "*(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);" (assignment_expression "*(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c)" (pointer_expression "*(undefined4 *)(param_1 + 0x368)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x368)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x368)" (( "(") (binary_expression "param_1 + 0x368" (identifier "param_1") (+ "+") (number_literal "0x368")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(pcVar12 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(pcVar12 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar12 + 0x1c)" (( "(") (binary_expression "pcVar12 + 0x1c" (identifier "pcVar12") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" (identifier "bVar4") (= "=") (true "true")) (; ";")) (} "}"))) (goto_statement "goto LAB_002d66e8;" (goto "goto") (statement_identifier "LAB_002d66e8") (; ";")) (} "}"))) (} "}")) (else_clause "else if (uVar22 != 2) {\n                    \n    FUN_00352af0("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }" (else "else") (if_statement "if (uVar22 != 2) {\n                    \n    FUN_00352af0("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }" (if "if") (parenthesized_expression "(uVar22 != 2)" (( "(") (binary_expression "uVar22 != 2" (identifier "uVar22") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n                    \n    FUN_00352af0("../../gold/mips.cc",0x1a9a,"do_read_symbols");\n  }" ({ "{") (expression_statement "FUN_00352af0("../../gold/mips.cc",0x1a9a,"do_read_symbols");" (call_expression "FUN_00352af0("../../gold/mips.cc",0x1a9a,"do_read_symbols")" (identifier "FUN_00352af0") (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_002d643d:\n  *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) & 0xf7;" (statement_identifier "LAB_002d643d") (: ":") (expression_statement "*(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) & 0xf7;" (assignment_expression "*(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) & 0xf7" (pointer_expression "*(byte *)(param_1 + 0x36c)" (* "*") (cast_expression "(byte *)(param_1 + 0x36c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x36c)" (( "(") (binary_expression "param_1 + 0x36c" (identifier "param_1") (+ "+") (number_literal "0x36c")) () ")")))) (= "=") (binary_expression "*(byte *)(param_1 + 0x36c) & 0xf7" (pointer_expression "*(byte *)(param_1 + 0x36c)" (* "*") (cast_expression "(byte *)(param_1 + 0x36c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x36c)" (( "(") (binary_expression "param_1 + 0x36c" (identifier "param_1") (+ "+") (number_literal "0x36c")) () ")")))) (& "&") (number_literal "0xf7"))) (; ";"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* 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_ead2ad::Mips_relobj<32,var_3>::do_read_symbols
          (Mips_relobj<32,var_3> *this,Read_symbols_data *sd)

{
  type_9 var_36;
  type_1 var_31;
  type_2 var_8;
  type_3 pcVar4;
  bool bVar5;
  type_4 *var_11;
  type_4 *var_13;
  type_5 *this_00;
  type_1 *var_34;
  var_1<false> *pMVar9;
  type_6 var_28;
  type_7 *pVVar11;
  type_4 *var_35;
  char *format;
  type_6 to;
  long var_18;
  type_6 uVar14;
  type_6 var_25;
  type_8 *puVar16;
  type_8 *var_16;
  type_9 *var_19;
  type_6 *puVar19;
  type_9 *var_20;
  type_10 *var_5;
  type_9 *var_17;
  type_6 var_27;
  type_6 to_1;
  type_8 var_14;
  type_6 var_21;
  type_6 to_3;
  char *pcVar25;
  bool var_26;
  bool var_29;
  bool bVar28;
  type_9 bVar29;
  
  bVar29 = 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_10 *)0x0) {
LAB_002d68fa:
    gold::Object::var_6((type_11 *)var_5);
LAB_002d68ff:
                    /* WARNING: Subroutine does not return */
    gold::var_7("../../gold/mips.cc",0x1b6f,"do_read_symbols");
  }
  var_8 = var_5->format_;
  var_21 = (type_6)var_8;
  if (var_8 == var_9) {
    var_11 = gold::File_read::var_10
                       (&var_5->file_,
                        (this->super_Sized_relobj_file<32,var_3>).super_Sized_relobj<32,var_3>.
                        super_Relobj.super_Object.offset_,0,0x34,true,false);
    var_14 = (this->super_Sized_relobj_file<32,var_3>).super_Sized_relobj<32,var_3>.super_Relobj.
             super_Object.shnum_;
    this->processor_specific_flags_ = *(type_12 *)(var_11 + 0x24);
    var_11 = sd->section_names->data_;
    std::vector<var_23,_std::allocator<var_23>var_24>::var_12
              (&this->section_is_mips16_fn_stub_,(type_6)var_14,false);
    std::vector<var_23,_std::allocator<var_23>var_24>::var_12
              (&this->section_is_mips16_call_stub_,
               (type_6)(this->super_Sized_relobj_file<32,var_3>).super_Sized_relobj<32,var_3>.
                      super_Relobj.super_Object.shnum_,false);
    std::vector<var_23,_std::allocator<var_23>var_24>::var_12
              (&this->section_is_mips16_call_fp_stub_,
               (type_6)(this->super_Sized_relobj_file<32,var_3>).super_Sized_relobj<32,var_3>.
                      super_Relobj.super_Object.shnum_,false);
    bVar5 = false;
    var_13 = sd->section_headers->data_;
    puVar16 = (type_8 *)(var_13 + 0x28);
    if (1 < (this->super_Sized_relobj_file<32,var_3>).super_Sized_relobj<32,var_3>.super_Relobj.
            super_Object.shnum_) {
      var_14 = *(type_8 *)(var_13 + 0x2c);
      if (var_14 != 2) goto LAB_002d6581;
      do {
        var_16 = puVar16;
        if (0x10 < puVar16[5]) {
          bVar5 = true;
        }
LAB_002d66e8:
        var_18 = 10;
        var_26 = var_15((type_6)*var_16,(type_6)var_11);
        var_17 = var_11 + *var_16;
        bVar28 = var_17 == (type_9 *)0x0;
        var_19 = (type_9 *)".mips16.fn";
        var_20 = var_17;
        do {
          if (var_18 == 0) break;
          var_18 = var_18 + -1;
          var_26 = *var_19 < *var_20;
          bVar28 = *var_19 == *var_20;
          var_19 = var_19 + (type_6)bVar29 * -2 + 1;
          var_20 = var_20 + (type_6)bVar29 * -2 + 1;
        } while (bVar28);
        var_25 = (type_6)((type_8)(var_21 >> 3) & 0x1ffffff8);
        var_28 = 1L << ((type_9)var_21 & 0x3f);
        puVar19 = (type_6 *)((long)(this->section_is_mips16_fn_stub_).
                                  super__Bvector_base<var_22::allocator<var_23>var_24>._M_impl.
                                  super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p +
                           var_25);
        var_27 = *puVar19;
        var_29 = false;
        var_26 = (!var_26 && !bVar28) == var_26;
        uVar14 = var_27 & ~var_28;
        if (var_26) {
          uVar14 = var_27 | var_28;
        }
        *puVar19 = uVar14;
        var_18 = 0xd;
        var_19 = (type_9 *)".mips16.call.";
        var_20 = var_17;
        do {
          if (var_18 == 0) break;
          var_18 = var_18 + -1;
          var_29 = *var_19 < *var_20;
          var_26 = *var_19 == *var_20;
          var_19 = var_19 + (type_6)bVar29 * -2 + 1;
          var_20 = var_20 + (type_6)bVar29 * -2 + 1;
        } while (var_26);
        puVar19 = (type_6 *)((long)(this->section_is_mips16_call_stub_).
                                  super__Bvector_base<var_22::allocator<var_23>var_24>._M_impl.
                                  super__Bvector_impl_data._M_start.super__Bit_iterator_base._M_p +
                           var_25);
        if ((!var_29 && !var_26) == var_29) {
          var_27 = *puVar19 | var_28;
        }
        else {
          var_27 = ~var_28 & *puVar19;
        }
        bVar28 = var_27 == 0;
        var_26 = false;
        *puVar19 = var_27;
        var_18 = 0x10;
        var_19 = (type_9 *)".mips16.call.fp.";
        var_20 = var_17;
        do {
          if (var_18 == 0) break;
          var_18 = var_18 + -1;
          var_26 = *var_19 < *var_20;
          bVar28 = *var_19 == *var_20;
          var_19 = var_19 + (type_6)bVar29 * -2 + 1;
          var_20 = var_20 + (type_6)bVar29 * -2 + 1;
        } while (bVar28);
        puVar19 = (type_6 *)(var_25 + (long)(this->section_is_mips16_call_fp_stub_).
                                           super__Bvector_base<var_22::allocator<var_23>var_24>._M_impl.
                                           super__Bvector_impl_data._M_start.
                                           super__Bit_iterator_base._M_p);
        if ((!var_26 && !bVar28) == var_26) {
          var_28 = var_28 | *puVar19;
        }
        else {
          var_28 = ~var_28 & *puVar19;
        }
        bVar28 = var_28 == 0;
        var_26 = false;
        *puVar19 = var_28;
        var_18 = 5;
        var_19 = &DAT_0053357f;
        do {
          if (var_18 == 0) break;
          var_18 = var_18 + -1;
          var_26 = *var_17 < *var_19;
          bVar28 = *var_17 == *var_19;
          var_17 = var_17 + (type_6)bVar29 * -2 + 1;
          var_19 = var_19 + (type_6)bVar29 * -2 + 1;
        } while (bVar28);
        if ((!var_26 && !bVar28) == var_26) {
          if (this->pdr_shndx_ != 0xffffffff) goto LAB_002d68ff;
          this->pdr_shndx_ = (type_8)var_21;
        }
        var_14 = (type_8)var_21 + 1;
        var_21 = (type_6)var_14;
        puVar16 = var_16 + 10;
        if ((this->super_Sized_relobj_file<32,var_3>).super_Sized_relobj<32,var_3>.super_Relobj.
            super_Object.shnum_ <= var_14) {
          if (bVar5) {
            return;
          }
          goto LAB_002d643d;
        }
        var_14 = var_16[0xb];
      } while (var_14 == 2);
LAB_002d6581:
      var_16 = puVar16;
      if (var_14 != 3) {
        if (var_14 == 0x70000006) {
          var_5 = (this->super_Sized_relobj_file<32,var_3>).super_Sized_relobj<32,var_3>.
                    super_Relobj.super_Object.input_file_;
          this->field_0x36c = this->field_0x36c | 4;
          if (var_5 == (type_10 *)0x0) goto LAB_002d68fa;
          pVVar11 = (type_7 *)
                    gold::File_read::var_10
                              (&var_5->file_,
                               (this->super_Sized_relobj_file<32,var_3>).
                               super_Sized_relobj<32,var_3>.super_Relobj.super_Object.offset_,
                               (type_6)puVar16[4],(type_6)puVar16[5],true,false);
          this->gp_ = pVVar11[5];
          this->gprmask_ = *pVVar11;
          this->cprmask1_ = pVVar11[1];
          this->cprmask2_ = pVVar11[2];
          this->cprmask3_ = pVVar11[3];
          this->cprmask4_ = pVVar11[4];
          var_14 = puVar16[1];
        }
        if (var_14 == 0x6ffffff5) {
          if (this->attributes_section_data_ != (type_5 *)0x0) {
                    /* WARNING: Subroutine does not return */
            gold::var_7("../../gold/mips.cc",0x1adf,"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_;
          var_14 = puVar16[5];
          if (var_5 == (type_10 *)0x0) goto LAB_002d68fa;
          var_13 = gold::File_read::var_10
                             (&var_5->file_,
                              (this->super_Sized_relobj_file<32,var_3>).
                              super_Sized_relobj<32,var_3>.super_Relobj.super_Object.offset_,
                              (type_6)puVar16[4],(type_6)var_14,true,false);
          this_00 = (type_5 *)var_30(0x10);
                    /* try { // try from 002d65fc to 002d6600 has its CatchHandler @ 002d695f */
          gold::Attributes_section_data::type_5(this_00,var_13,(type_6)var_14);
          this->attributes_section_data_ = this_00;
          var_14 = puVar16[1];
        }
        if (var_14 == 0x7000002a) {
          if (this->abiflags_ != (var_1<false> *)0x0) {
                    /* WARNING: Subroutine does not return */
            gold::var_7("../../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_10 *)0x0) goto LAB_002d68fa;
          var_34 = (type_1 *)
                   gold::File_read::var_10
                             (&var_5->file_,
                              (this->super_Sized_relobj_file<32,var_3>).
                              super_Sized_relobj<32,var_3>.super_Relobj.super_Object.offset_,
                              (type_6)puVar16[4],(type_6)puVar16[5],true,false);
          pMVar9 = (var_1<false> *)var_30(0x18);
          pMVar9->version = 0;
          pMVar9->isa_level = '\0';
          pMVar9->isa_rev = '\0';
          pMVar9->gpr_size = '\0';
          pMVar9->cpr1_size = '\0';
          pMVar9->cpr2_size = '\0';
          pMVar9->fp_abi = '\0';
          var_31 = *var_34;
          pMVar9->isa_ext = 0;
          pMVar9->ases = 0;
          pMVar9->flags1 = 0;
          pMVar9->flags2 = 0;
          this->abiflags_ = pMVar9;
          pMVar9->version = var_31;
          if (var_31 != 0) {
            pcVar4 = (this->super_Sized_relobj_file<32,var_3>).super_Sized_relobj<32,var_3>.
                     super_Relobj.super_Object.name_._M_dataplus._M_p;
            pcVar25 = (char *)var_32("%s: .MIPS.abiflags section has unsupported version %u");
            gold::var_33(pcVar25,pcVar4,(type_6)var_31);
            return;
          }
          pMVar9->isa_level = (type_13)var_34[1];
          pMVar9->isa_rev = *(type_13 *)((long)var_34 + 3);
          pMVar9->gpr_size = (type_13)var_34[2];
          pMVar9->cpr1_size = *(type_13 *)((long)var_34 + 5);
          pMVar9->cpr2_size = (type_13)var_34[3];
          pMVar9->fp_abi = *(type_13 *)((long)var_34 + 7);
          pMVar9->isa_ext = *(type_14 *)(var_34 + 4);
          pMVar9->ases = *(type_14 *)(var_34 + 6);
          pMVar9->flags1 = *(type_14 *)(var_34 + 8);
          pMVar9->flags2 = *(type_14 *)(var_34 + 10);
          var_14 = puVar16[1];
        }
        if (var_14 == 0x7000000d) {
          var_5 = (this->super_Sized_relobj_file<32,var_3>).super_Sized_relobj<32,var_3>.
                    super_Relobj.super_Object.input_file_;
          var_14 = puVar16[5];
          if (var_5 == (type_10 *)0x0) goto LAB_002d68fa;
          var_35 = gold::File_read::var_10
                              (&var_5->file_,
                               (this->super_Sized_relobj_file<32,var_3>).
                               super_Sized_relobj<32,var_3>.super_Relobj.super_Object.offset_,
                               (type_6)puVar16[4],(type_6)var_14,true,false);
          var_13 = var_35 + var_14;
          for (; var_35 + 8 <= var_13; var_35 = var_35 + var_36) {
            var_36 = var_35[1];
            if (var_36 < 8) {
              pcVar4 = (this->super_Sized_relobj_file<32,var_3>).super_Sized_relobj<32,var_3>.
                       super_Relobj.super_Object.name_._M_dataplus._M_p;
              pcVar25 = ".MIPS.options";
              if ((this->field_0x36c & 2) == 0) {
                pcVar25 = ".options";
              }
              format = (char *)var_32(
                                      "%s: Warning: bad `%s\' option size %u smaller than its header"
                                      );
              gold::var_33(format,pcVar4,pcVar25,(type_6)var_36);
              break;
            }
            if (*var_35 == '\x01') {
              this->gp_ = *(type_15 *)(var_35 + 0x1c);
            }
          }
        }
        bVar5 = true;
      }
      goto LAB_002d66e8;
    }
  }
  else if (var_8 != var_37) {
                    /* WARNING: Subroutine does not return */
    gold::var_7("../../gold/mips.cc",0x1a9a,"do_read_symbols");
  }
LAB_002d643d:
  this->field_0x36c = this->field_0x36c & 0xf7;
  return;
}


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

void MASKED(long param_1,long *param_2)

{
  byte bVar1;
  short sVar2;
  ulong uVar3;
  bool bVar4;
  long lVar5;
  undefined8 uVar6;
  undefined8 uVar7;
  short *psVar8;
  short *psVar9;
  ulong uVar10;
  undefined4 *puVar11;
  char *pcVar12;
  ulong uVar13;
  ulong uVar14;
  uint *puVar15;
  uint *puVar16;
  byte *pbVar17;
  ulong *puVar18;
  byte *pbVar19;
  byte *pbVar20;
  ulong uVar21;
  uint uVar22;
  ulong uVar23;
  char *pcVar24;
  bool bVar25;
  bool bVar26;
  bool bVar27;
  byte bVar28;
  
  bVar28 = 0;
  FUN_003b79e0();
  lVar5 = *(long *)(param_1 + 0x28);
  if (lVar5 == 0) {
LAB_002d68fa:
    FUN_00290dc0();
LAB_002d68ff:
                    /* WARNING: Subroutine does not return */
    FUN_00352af0("../../gold/mips.cc",0x1b6f,"do_read_symbols");
  }
  uVar22 = *(uint *)(lVar5 + 0xe4);
  uVar23 = (ulong)uVar22;
  if (uVar22 == 1) {
    lVar5 = FUN_0034d600(lVar5 + 0x28,*(undefined8 *)(param_1 + 0x30),0,0x34,1,0);
    *(undefined4 *)(param_1 + 0x220) = *(undefined4 *)(lVar5 + 0x24);
    uVar3 = *(ulong *)(param_2[1] + 0x10);
    FUN_0022a2b0(param_1 + 0x378,*(undefined4 *)(param_1 + 0x38),0);
    FUN_0022a2b0(param_1 + 0x3a0,*(undefined4 *)(param_1 + 0x38),0);
    FUN_0022a2b0(param_1 + 0x3c8,*(undefined4 *)(param_1 + 0x38),0);
    bVar4 = false;
    puVar15 = (uint *)(*(long *)(*param_2 + 0x10) + 0x28);
    if (1 < *(uint *)(param_1 + 0x38)) {
      uVar22 = *(uint *)(*(long *)(*param_2 + 0x10) + 0x2c);
      if (uVar22 != 2) goto LAB_002d6581;
      do {
        puVar16 = puVar15;
        if (0x10 < puVar15[5]) {
          bVar4 = true;
        }
LAB_002d66e8:
        lVar5 = 10;
        bVar25 = CARRY8((ulong)*puVar16,uVar3);
        pbVar20 = (byte *)(*puVar16 + uVar3);
        bVar27 = pbVar20 == (byte *)0x0;
        pbVar17 = (byte *)".mips16.fn";
        pbVar19 = pbVar20;
        do {
          if (lVar5 == 0) break;
          lVar5 = lVar5 + -1;
          bVar25 = *pbVar17 < *pbVar19;
          bVar27 = *pbVar17 == *pbVar19;
          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;
          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;
        } while (bVar27);
        uVar14 = (ulong)((uint)(uVar23 >> 3) & 0x1ffffff8);
        uVar10 = 1L << ((byte)uVar23 & 0x3f);
        puVar18 = (ulong *)(*(long *)(param_1 + 0x378) + uVar14);
        uVar21 = *puVar18;
        bVar26 = false;
        bVar25 = (!bVar25 && !bVar27) == bVar25;
        uVar13 = uVar21 & ~uVar10;
        if (bVar25) {
          uVar13 = uVar21 | uVar10;
        }
        *puVar18 = uVar13;
        lVar5 = 0xd;
        pbVar17 = (byte *)".mips16.call.";
        pbVar19 = pbVar20;
        do {
          if (lVar5 == 0) break;
          lVar5 = lVar5 + -1;
          bVar26 = *pbVar17 < *pbVar19;
          bVar25 = *pbVar17 == *pbVar19;
          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;
          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;
        } while (bVar25);
        puVar18 = (ulong *)(*(long *)(param_1 + 0x3a0) + uVar14);
        if ((!bVar26 && !bVar25) == bVar26) {
          uVar21 = *puVar18 | uVar10;
        }
        else {
          uVar21 = ~uVar10 & *puVar18;
        }
        bVar27 = uVar21 == 0;
        bVar25 = false;
        *puVar18 = uVar21;
        lVar5 = 0x10;
        pbVar17 = (byte *)".mips16.call.fp.";
        pbVar19 = pbVar20;
        do {
          if (lVar5 == 0) break;
          lVar5 = lVar5 + -1;
          bVar25 = *pbVar17 < *pbVar19;
          bVar27 = *pbVar17 == *pbVar19;
          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;
          pbVar19 = pbVar19 + (ulong)bVar28 * -2 + 1;
        } while (bVar27);
        puVar18 = (ulong *)(uVar14 + *(long *)(param_1 + 0x3c8));
        if ((!bVar25 && !bVar27) == bVar25) {
          uVar10 = uVar10 | *puVar18;
        }
        else {
          uVar10 = ~uVar10 & *puVar18;
        }
        bVar27 = uVar10 == 0;
        bVar25 = false;
        *puVar18 = uVar10;
        lVar5 = 5;
        pbVar17 = &DAT_0053357f;
        do {
          if (lVar5 == 0) break;
          lVar5 = lVar5 + -1;
          bVar25 = *pbVar20 < *pbVar17;
          bVar27 = *pbVar20 == *pbVar17;
          pbVar20 = pbVar20 + (ulong)bVar28 * -2 + 1;
          pbVar17 = pbVar17 + (ulong)bVar28 * -2 + 1;
        } while (bVar27);
        if ((!bVar25 && !bVar27) == bVar25) {
          if (*(int *)(param_1 + 0x3f0) != -1) goto LAB_002d68ff;
          *(int *)(param_1 + 0x3f0) = (int)uVar23;
        }
        uVar22 = (int)uVar23 + 1;
        uVar23 = (ulong)uVar22;
        puVar15 = puVar16 + 10;
        if (*(uint *)(param_1 + 0x38) <= uVar22) {
          if (bVar4) {
            return;
          }
          goto LAB_002d643d;
        }
        uVar22 = puVar16[0xb];
      } while (uVar22 == 2);
LAB_002d6581:
      puVar16 = puVar15;
      if (uVar22 != 3) {
        if (uVar22 == 0x70000006) {
          *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) | 4;
          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;
          puVar11 = (undefined4 *)
                    FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),
                                 puVar15[4],puVar15[5],1,0);
          *(undefined4 *)(param_1 + 0x368) = puVar11[5];
          *(undefined4 *)(param_1 + 0x408) = *puVar11;
          *(undefined4 *)(param_1 + 0x40c) = puVar11[1];
          *(undefined4 *)(param_1 + 0x410) = puVar11[2];
          *(undefined4 *)(param_1 + 0x414) = puVar11[3];
          *(undefined4 *)(param_1 + 0x418) = puVar11[4];
          uVar22 = puVar15[1];
        }
        if (uVar22 == 0x6ffffff5) {
          if (*(long *)(param_1 + 0x3f8) != 0) {
                    /* WARNING: Subroutine does not return */
            FUN_00352af0("../../gold/mips.cc",0x1adf,"do_read_symbols");
          }
          uVar22 = puVar15[5];
          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;
          uVar6 = FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,*(undefined8 *)(param_1 + 0x30),
                               puVar15[4],uVar22,1,0);
          uVar7 = FUN_0049cb70(0x10);
                    /* try { // try from 002d65fc to 002d6600 has its CatchHandler @ 002d695f */
          FUN_003362a0(uVar7,uVar6,uVar22);
          *(undefined8 *)(param_1 + 0x3f8) = uVar7;
          uVar22 = puVar15[1];
        }
        if (uVar22 == 0x7000002a) {
          if (*(long *)(param_1 + 0x400) != 0) {
                    /* WARNING: Subroutine does not return */
            FUN_00352af0("../../gold/mips.cc",0x1aeb,"do_read_symbols");
          }
          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;
          psVar8 = (short *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,
                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],puVar15[5],1,0);
          psVar9 = (short *)FUN_0049cb70(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 + 0x400) = psVar9;
          *psVar9 = sVar2;
          if (sVar2 != 0) {
            uVar6 = *(undefined8 *)(param_1 + 8);
            uVar7 = gettext("%s: .MIPS.abiflags section has unsupported version %u");
            FUN_0034a750(uVar7,uVar6,sVar2);
            return;
          }
          *(char *)(psVar9 + 1) = (char)psVar8[1];
          *(undefined1 *)((long)psVar9 + 3) = *(undefined1 *)((long)psVar8 + 3);
          *(char *)(psVar9 + 2) = (char)psVar8[2];
          *(undefined1 *)((long)psVar9 + 5) = *(undefined1 *)((long)psVar8 + 5);
          *(char *)(psVar9 + 3) = (char)psVar8[3];
          *(undefined1 *)((long)psVar9 + 7) = *(undefined1 *)((long)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);
          uVar22 = puVar15[1];
        }
        if (uVar22 == 0x7000000d) {
          uVar22 = puVar15[5];
          if (*(long *)(param_1 + 0x28) == 0) goto LAB_002d68fa;
          pcVar12 = (char *)FUN_0034d600(*(long *)(param_1 + 0x28) + 0x28,
                                         *(undefined8 *)(param_1 + 0x30),puVar15[4],(ulong)uVar22,1,
                                         0);
          pcVar24 = pcVar12 + uVar22;
          for (; pcVar12 + 8 <= pcVar24; pcVar12 = pcVar12 + bVar1) {
            bVar1 = pcVar12[1];
            if (bVar1 < 8) {
              uVar6 = *(undefined8 *)(param_1 + 8);
              pcVar24 = ".MIPS.options";
              if ((*(byte *)(param_1 + 0x36c) & 2) == 0) {
                pcVar24 = ".options";
              }
              uVar7 = gettext("%s: Warning: bad `%s\' option size %u smaller than its header");
              FUN_0034a750(uVar7,uVar6,pcVar24,bVar1);
              break;
            }
            if (*pcVar12 == '\x01') {
              *(undefined4 *)(param_1 + 0x368) = *(undefined4 *)(pcVar12 + 0x1c);
            }
          }
        }
        bVar4 = true;
      }
      goto LAB_002d66e8;
    }
  }
  else if (uVar22 != 2) {
                    /* WARNING: Subroutine does not return */
    FUN_00352af0("../../gold/mips.cc",0x1a9a,"do_read_symbols");
  }
LAB_002d643d:
  *(byte *)(param_1 + 0x36c) = *(byte *)(param_1 + 0x36c) & 0xf7;
  return;
}

