
/* WARNING: Type propagation algorithm not settling */
/* DWARF original name: __rotate<__gnu_cxx::__normal_iterator<gold::Input_section_info*,
   std::vector<gold::Input_section_info> > > */

__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>
 std::_V2::
 __rotate<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>_>
           (Input_section_info *__first,Input_section_info *__middle,Input_section_info *__last)

{
  Input_section_info *pIVar1;
  undefined8 uVar2;
  size_type sVar3;
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *paVar4;
  __normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>
  _Var5;
  size_t sVar6;
  long lVar7;
  long lVar8;
  long lVar9;
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *paVar10;
  long lVar11;
  Input_section_info *pIVar12;
  pointer pcVar13;
  size_type *psVar14;
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *paVar15;
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *paVar16;
  long local_a8;
  Input_section_info *local_a0;
  Input_section_info __tmp;
  
  _Var5._M_current = __last;
  if ((__first == __middle) || (_Var5._M_current = __first, __last == __middle)) {
    return (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>
            )_Var5._M_current;
  }
  lVar7 = (long)__middle - (long)__first >> 4;
  local_a8 = ((long)__last - (long)__first >> 4) * -0x3333333333333333;
  lVar8 = lVar7 * -0x3333333333333333;
  pIVar1 = (Input_section_info *)((long)__first + ((long)__last - (long)__middle));
  if (local_a8 + lVar7 * 0x3333333333333333 == lVar8) {
    paVar15 = &(__first->section_name_).field_2;
    paVar10 = &(__middle->section_name_).field_2;
    paVar16 = &__tmp.section_name_.field_2;
    do {
      __tmp.input_section_._0_8_ = *(undefined8 *)(paVar15 + -3);
      __tmp.input_section_.u1_ = *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar15 + -0x28);
      __tmp.section_name_._M_dataplus._M_p = (((string *)(paVar15 + -1))->_M_dataplus)._M_p;
      __tmp.input_section_.u2_ = *(anon_union_8_4_139239c7_for_u2_ *)(paVar15 + -2);
      __tmp.input_section_._24_8_ = *(undefined8 *)((long)paVar15 + -0x18);
      if (paVar15 ==
          (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
           *)__tmp.section_name_._M_dataplus._M_p) {
        __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;
        __tmp.section_name_.field_2._8_8_ = *(undefined8 *)((long)paVar15 + 8);
        __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;
      }
      else {
        __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;
      }
      __tmp.section_name_._M_string_length = *(size_type *)((long)paVar15 + -8);
      paVar15->_M_local_buf[0] = '\0';
      *(size_type *)((long)paVar15 + -8) = 0;
      sVar3 = *(size_type *)((long)paVar10 + -0x28);
      __tmp.size_ = paVar15[1]._M_allocated_capacity;
      paVar15[-3]._M_allocated_capacity = paVar10[-3]._M_allocated_capacity;
      *(size_type *)((long)paVar15 + -0x28) = sVar3;
      __tmp.addralign_ = *(uint64_t *)((long)paVar15 + 0x18);
      (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)paVar15;
      paVar15[-2]._M_allocated_capacity = paVar10[-2]._M_allocated_capacity;
      *(undefined4 *)((long)paVar15 + -0x18) = *(undefined4 *)((long)paVar10 + -0x18);
      psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;
      if (paVar10 ==
          (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
           *)psVar14) {
        sVar6 = *(size_type *)((long)paVar10 + -8);
        if (sVar6 != 0) {
          if (sVar6 == 1) {
            paVar15->_M_local_buf[0] = paVar10->_M_local_buf[0];
            sVar6 = *(size_type *)((long)paVar10 + -8);
          }
          else {
            memcpy(paVar15,paVar10,sVar6);
            sVar6 = *(size_type *)((long)paVar10 + -8);
          }
        }
        *(size_t *)((long)paVar15 + -8) = sVar6;
        paVar15->_M_local_buf[sVar6] = '\0';
        paVar4 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                  *)psVar14[-2];
      }
      else {
        (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)psVar14;
        *(size_type *)((long)paVar15 + -8) = *(size_type *)((long)paVar10 + -8);
        paVar15->_M_allocated_capacity = paVar10->_M_allocated_capacity;
        (((string *)(paVar10 + -1))->_M_dataplus)._M_p = (pointer)paVar10;
        paVar4 = paVar10;
      }
      *(size_type *)((long)paVar10 + -8) = 0;
      paVar4->_M_local_buf[0] = '\0';
      paVar15[1]._M_allocated_capacity = paVar10[1]._M_allocated_capacity;
      *(size_type *)((long)paVar15 + 0x18) = *(size_type *)((long)paVar10 + 0x18);
      paVar10[-3]._M_allocated_capacity = __tmp.input_section_._0_8_;
      *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar10 + -0x28) = __tmp.input_section_.u1_;
      psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;
      *(anon_union_8_4_139239c7_for_u2_ *)(paVar10 + -2) = __tmp.input_section_.u2_;
      *(uint *)((long)paVar10 + -0x18) = __tmp.input_section_.section_order_index_;
      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
           *)__tmp.section_name_._M_dataplus._M_p == paVar16) {
        if (__tmp.section_name_._M_string_length != 0) {
          if (__tmp.section_name_._M_string_length == 1) {
            *(char *)psVar14 = __tmp.section_name_.field_2._M_local_buf[0];
            psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;
          }
          else {
            memcpy(psVar14,paVar16,__tmp.section_name_._M_string_length);
            psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;
          }
        }
        *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;
        *(char *)((long)psVar14 + __tmp.section_name_._M_string_length) = '\0';
      }
      else if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                *)psVar14 == paVar10) {
        (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;
        *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;
        paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;
        __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;
      }
      else {
        sVar3 = paVar10->_M_allocated_capacity;
        (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;
        *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;
        paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;
        __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;
        if (psVar14 != (size_type *)0x0) {
          __tmp.section_name_._M_dataplus._M_p = (pointer)psVar14;
          __tmp.section_name_.field_2._M_allocated_capacity = sVar3;
        }
      }
      __tmp.section_name_._M_string_length = 0;
      *__tmp.section_name_._M_dataplus._M_p = '\0';
      paVar10[1]._M_allocated_capacity = __tmp.size_;
      *(uint64_t *)((long)paVar10 + 0x18) = __tmp.addralign_;
      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
           *)__tmp.section_name_._M_dataplus._M_p != paVar16) {
        operator_delete(__tmp.section_name_._M_dataplus._M_p);
      }
      paVar10 = paVar10 + 5;
      paVar15 = paVar15 + 5;
    } while (paVar10 !=
             (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
              *)(__middle[1].section_name_.field_2._M_local_buf +
                ((long)__middle + (-0x50 - (long)__first) & 0xfffffffffffffff0)));
    return (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>
            )__middle;
  }
  lVar11 = local_a8 + lVar7 * 0x3333333333333333;
  lVar9 = lVar8;
  local_a0 = __first;
  if (lVar11 == lVar8 || SBORROW8(lVar11,lVar8) != lVar11 + lVar7 * 0x3333333333333333 < 0)
  goto LAB_0025fb1a;
  do {
    if (0 < lVar11) {
      lVar7 = 0;
      paVar16 = &local_a0[lVar8].section_name_.field_2;
      paVar15 = &(local_a0->section_name_).field_2;
      paVar10 = &__tmp.section_name_.field_2;
      do {
        __tmp.input_section_._0_8_ = *(undefined8 *)(paVar15 + -3);
        __tmp.input_section_.u1_ = *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar15 + -0x28);
        __tmp.input_section_.u2_ = *(anon_union_8_4_139239c7_for_u2_ *)(paVar15 + -2);
        __tmp.input_section_._24_8_ = *(size_type *)((long)paVar15 + -0x18);
        __tmp.section_name_._M_dataplus._M_p = (((string *)(paVar15 + -1))->_M_dataplus)._M_p;
        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
             *)__tmp.section_name_._M_dataplus._M_p == paVar15) {
          __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;
          __tmp.section_name_.field_2._8_8_ = *(size_type *)((long)paVar15 + 8);
          __tmp.section_name_._M_dataplus._M_p = (pointer)paVar10;
        }
        else {
          __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;
        }
        __tmp.section_name_._M_string_length = *(size_type *)((long)paVar15 + -8);
        paVar15->_M_local_buf[0] = '\0';
        *(size_type *)((long)paVar15 + -8) = 0;
        sVar3 = *(size_type *)((long)paVar16 + -0x28);
        __tmp.size_ = paVar15[1]._M_allocated_capacity;
        paVar15[-3]._M_allocated_capacity = paVar16[-3]._M_allocated_capacity;
        *(size_type *)((long)paVar15 + -0x28) = sVar3;
        __tmp.addralign_ = *(size_type *)((long)paVar15 + 0x18);
        (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)paVar15;
        paVar15[-2]._M_allocated_capacity = paVar16[-2]._M_allocated_capacity;
        *(undefined4 *)((long)paVar15 + -0x18) = *(undefined4 *)((long)paVar16 + -0x18);
        pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;
        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
             *)pcVar13 == paVar16) {
          sVar6 = *(size_type *)((long)paVar16 + -8);
          if (sVar6 != 0) {
            if (sVar6 == 1) {
              paVar15->_M_local_buf[0] = paVar16->_M_local_buf[0];
              sVar6 = *(size_type *)((long)paVar16 + -8);
            }
            else {
              memcpy(paVar15,paVar16,sVar6);
              sVar6 = *(size_type *)((long)paVar16 + -8);
            }
          }
          *(size_t *)((long)paVar15 + -8) = sVar6;
          paVar15->_M_local_buf[sVar6] = '\0';
          paVar4 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                    *)(((string *)(paVar16 + -1))->_M_dataplus)._M_p;
        }
        else {
          (((string *)(paVar15 + -1))->_M_dataplus)._M_p = pcVar13;
          *(size_type *)((long)paVar15 + -8) = *(size_type *)((long)paVar16 + -8);
          paVar15->_M_allocated_capacity = paVar16->_M_allocated_capacity;
          (((string *)(paVar16 + -1))->_M_dataplus)._M_p = (pointer)paVar16;
          paVar4 = paVar16;
        }
        *(size_type *)((long)paVar16 + -8) = 0;
        paVar4->_M_local_buf[0] = '\0';
        paVar15[1]._M_allocated_capacity = paVar16[1]._M_allocated_capacity;
        *(size_type *)((long)paVar15 + 0x18) = *(size_type *)((long)paVar16 + 0x18);
        paVar16[-3]._M_allocated_capacity = __tmp.input_section_._0_8_;
        *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar16 + -0x28) = __tmp.input_section_.u1_;
        pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;
        *(anon_union_8_4_139239c7_for_u2_ *)(paVar16 + -2) = __tmp.input_section_.u2_;
        *(uint *)((long)paVar16 + -0x18) = __tmp.input_section_.section_order_index_;
        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
             *)__tmp.section_name_._M_dataplus._M_p == paVar10) {
          if (__tmp.section_name_._M_string_length != 0) {
            if (__tmp.section_name_._M_string_length == 1) {
              *pcVar13 = __tmp.section_name_.field_2._M_local_buf[0];
              pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;
            }
            else {
              memcpy(pcVar13,paVar10,__tmp.section_name_._M_string_length);
              pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;
            }
          }
          *(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length;
          pcVar13[__tmp.section_name_._M_string_length] = '\0';
          uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;
        }
        else {
          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
               *)pcVar13 == paVar16) {
            (((string *)(paVar16 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;
            *(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length;
            paVar16->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;
          }
          else {
            uVar2 = paVar16->_M_allocated_capacity;
            (((string *)(paVar16 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;
            *(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length;
            paVar16->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;
            __tmp.section_name_._M_dataplus._M_p = pcVar13;
            if (pcVar13 != (pointer)0x0) goto LAB_0025f996;
          }
          __tmp.section_name_._M_dataplus._M_p = (pointer)paVar10;
          uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;
        }
LAB_0025f996:
        __tmp.section_name_.field_2._M_allocated_capacity = uVar2;
        __tmp.section_name_._M_string_length = 0;
        *__tmp.section_name_._M_dataplus._M_p = '\0';
        paVar16[1]._M_allocated_capacity = __tmp.size_;
        *(uint64_t *)((long)paVar16 + 0x18) = __tmp.addralign_;
        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
             *)__tmp.section_name_._M_dataplus._M_p != paVar10) {
          operator_delete(__tmp.section_name_._M_dataplus._M_p);
        }
        lVar7 = lVar7 + 1;
        paVar15 = paVar15 + 5;
        paVar16 = paVar16 + 5;
      } while (lVar11 != lVar7);
      local_a0 = local_a0 + lVar11;
    }
    if (local_a8 % lVar8 == 0) {
      return (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>
              )pIVar1;
    }
    lVar9 = lVar8 - local_a8 % lVar8;
    lVar7 = lVar8;
    while (lVar11 = lVar7 - lVar9, lVar8 = lVar9, local_a8 = lVar7, lVar11 <= lVar9) {
LAB_0025fb1a:
      lVar7 = lVar11;
      pIVar12 = local_a0 + (local_a8 - lVar7);
      if (0 < lVar9) {
        paVar15 = &pIVar12[-1].section_name_.field_2;
        paVar10 = &local_a0[local_a8 + -1].section_name_.field_2;
        lVar8 = 0;
        paVar16 = &__tmp.section_name_.field_2;
        do {
          __tmp.input_section_._0_8_ = *(undefined8 *)(paVar15 + -3);
          __tmp.input_section_.u1_ = *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar15 + -0x28);
          __tmp.input_section_.u2_ = *(anon_union_8_4_139239c7_for_u2_ *)(paVar15 + -2);
          __tmp.input_section_._24_8_ = *(undefined8 *)((long)paVar15 + -0x18);
          __tmp.section_name_._M_dataplus._M_p = (((string *)(paVar15 + -1))->_M_dataplus)._M_p;
          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
               *)__tmp.section_name_._M_dataplus._M_p == paVar15) {
            __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;
            __tmp.section_name_.field_2._8_8_ = *(undefined8 *)((long)paVar15 + 8);
            __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;
          }
          else {
            __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;
          }
          __tmp.section_name_._M_string_length = *(size_type *)((long)paVar15 + -8);
          paVar15->_M_local_buf[0] = '\0';
          *(size_type *)((long)paVar15 + -8) = 0;
          sVar3 = *(size_type *)((long)paVar10 + -0x28);
          __tmp.size_ = paVar15[1]._M_allocated_capacity;
          paVar15[-3]._M_allocated_capacity = paVar10[-3]._M_allocated_capacity;
          *(size_type *)((long)paVar15 + -0x28) = sVar3;
          __tmp.addralign_ = *(uint64_t *)((long)paVar15 + 0x18);
          (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)paVar15;
          paVar15[-2]._M_allocated_capacity = paVar10[-2]._M_allocated_capacity;
          *(undefined4 *)((long)paVar15 + -0x18) = *(undefined4 *)((long)paVar10 + -0x18);
          psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;
          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
               *)psVar14 == paVar10) {
            sVar6 = *(size_type *)((long)paVar10 + -8);
            if (sVar6 != 0) {
              if (sVar6 == 1) {
                paVar15->_M_local_buf[0] = paVar10->_M_local_buf[0];
                sVar6 = *(size_type *)((long)paVar10 + -8);
              }
              else {
                memcpy(paVar15,paVar10,sVar6);
                sVar6 = *(size_type *)((long)paVar10 + -8);
              }
            }
            pcVar13 = (((string *)(paVar15 + -1))->_M_dataplus)._M_p;
            *(size_t *)((long)paVar15 + -8) = sVar6;
            pcVar13[sVar6] = '\0';
          }
          else {
            (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)psVar14;
            *(size_type *)((long)paVar15 + -8) = *(size_type *)((long)paVar10 + -8);
            paVar15->_M_allocated_capacity = paVar10->_M_allocated_capacity;
            (((string *)(paVar10 + -1))->_M_dataplus)._M_p = (pointer)paVar10;
          }
          *(size_type *)((long)paVar10 + -8) = 0;
          *(((string *)(paVar10 + -1))->_M_dataplus)._M_p = '\0';
          paVar15[1]._M_allocated_capacity = paVar10[1]._M_allocated_capacity;
          *(size_type *)((long)paVar15 + 0x18) = *(size_type *)((long)paVar10 + 0x18);
          psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;
          paVar10[-3]._M_allocated_capacity = __tmp.input_section_._0_8_;
          *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar10 + -0x28) = __tmp.input_section_.u1_;
          *(anon_union_8_4_139239c7_for_u2_ *)(paVar10 + -2) = __tmp.input_section_.u2_;
          *(uint *)((long)paVar10 + -0x18) = __tmp.input_section_.section_order_index_;
          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
               *)__tmp.section_name_._M_dataplus._M_p == paVar16) {
            if (__tmp.section_name_._M_string_length != 0) {
              if (__tmp.section_name_._M_string_length == 1) {
                *(char *)psVar14 = __tmp.section_name_.field_2._M_local_buf[0];
                psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;
              }
              else {
                memcpy(psVar14,paVar16,__tmp.section_name_._M_string_length);
                psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;
              }
            }
            *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;
            *(char *)((long)psVar14 + __tmp.section_name_._M_string_length) = '\0';
            uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;
          }
          else {
            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                 *)psVar14 == paVar10) {
              (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;
              *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;
              paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;
            }
            else {
              uVar2 = paVar10->_M_allocated_capacity;
              (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;
              *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;
              paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;
              __tmp.section_name_._M_dataplus._M_p = (pointer)psVar14;
              if (psVar14 != (size_type *)0x0) goto LAB_0025fc78;
            }
            __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;
            uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;
          }
LAB_0025fc78:
          __tmp.section_name_.field_2._M_allocated_capacity = uVar2;
          __tmp.section_name_._M_string_length = 0;
          *__tmp.section_name_._M_dataplus._M_p = '\0';
          paVar10[1]._M_allocated_capacity = __tmp.size_;
          *(uint64_t *)((long)paVar10 + 0x18) = __tmp.addralign_;
          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
               *)__tmp.section_name_._M_dataplus._M_p != paVar16) {
            operator_delete(__tmp.section_name_._M_dataplus._M_p);
          }
          lVar8 = lVar8 + 1;
          paVar15 = paVar15 + -5;
          paVar10 = paVar10 + -5;
        } while (lVar8 != lVar9);
        pIVar12 = pIVar12 + -lVar8;
      }
      local_a0 = pIVar12;
      lVar9 = local_a8 % lVar7;
      if (lVar9 == 0) {
        return (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>
                )pIVar1;
      }
    }
  } while( true );
}



long FUN_0025f7d0(long param_1,long param_2,long param_3)

{
  size_t sVar1;
  undefined8 uVar2;
  undefined8 uVar3;
  undefined8 uVar4;
  undefined8 uVar5;
  undefined8 uVar6;
  undefined8 *puVar7;
  long lVar8;
  size_t sVar9;
  long lVar10;
  long lVar11;
  long lVar12;
  undefined8 *puVar13;
  long lVar14;
  undefined8 *puVar15;
  long local_a8;
  long local_a0;
  undefined4 uStack_70;
  undefined8 *local_68;
  undefined8 local_58;
  undefined8 uStack_50;
  undefined8 local_48;
  undefined8 local_40;
  
  lVar8 = param_3;
  if ((param_1 == param_2) || (lVar8 = param_1, param_3 == param_2)) {
    return lVar8;
  }
  lVar10 = param_2 - param_1 >> 4;
  local_a8 = (param_3 - param_1 >> 4) * -0x3333333333333333;
  lVar11 = lVar10 * -0x3333333333333333;
  lVar8 = param_1 + (param_3 - param_2);
  if (local_a8 + lVar10 * 0x3333333333333333 == lVar11) {
    puVar15 = (undefined8 *)(param_1 + 0x30);
    puVar13 = (undefined8 *)(param_2 + 0x30);
    do {
      uVar2 = puVar15[-6];
      uVar4 = puVar15[-5];
      local_68 = (undefined8 *)puVar15[-2];
      uVar5 = puVar15[-4];
      uVar6 = puVar15[-3];
      if (puVar15 == local_68) {
        local_58 = *puVar15;
        uStack_50 = puVar15[1];
        local_68 = &local_58;
      }
      else {
        local_58 = *puVar15;
      }
      sVar1 = puVar15[-1];
      *(undefined1 *)puVar15 = 0;
      puVar15[-1] = 0;
      uVar3 = puVar13[-5];
      local_48 = puVar15[2];
      puVar15[-6] = puVar13[-6];
      puVar15[-5] = uVar3;
      local_40 = puVar15[3];
      puVar15[-2] = puVar15;
      puVar15[-4] = puVar13[-4];
      *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);
      puVar7 = (undefined8 *)puVar13[-2];
      if (puVar13 == puVar7) {
        sVar9 = puVar13[-1];
        if (sVar9 != 0) {
          if (sVar9 == 1) {
            *(undefined1 *)puVar15 = *(undefined1 *)puVar13;
            sVar9 = puVar13[-1];
          }
          else {
            memcpy(puVar15,puVar13,sVar9);
            sVar9 = puVar13[-1];
          }
        }
        puVar15[-1] = sVar9;
        *(undefined1 *)((long)puVar15 + sVar9) = 0;
        puVar7 = (undefined8 *)puVar7[-2];
      }
      else {
        puVar15[-2] = puVar7;
        puVar15[-1] = puVar13[-1];
        *puVar15 = *puVar13;
        puVar13[-2] = puVar13;
        puVar7 = puVar13;
      }
      puVar13[-1] = 0;
      *(undefined1 *)puVar7 = 0;
      puVar15[2] = puVar13[2];
      puVar15[3] = puVar13[3];
      puVar13[-6] = uVar2;
      puVar13[-5] = uVar4;
      puVar7 = (undefined8 *)puVar13[-2];
      puVar13[-4] = uVar5;
      uStack_70 = (undefined4)uVar6;
      *(undefined4 *)(puVar13 + -3) = uStack_70;
      if (local_68 == &local_58) {
        if (sVar1 != 0) {
          if (sVar1 == 1) {
            *(undefined1 *)puVar7 = (undefined1)local_58;
            puVar7 = (undefined8 *)puVar13[-2];
          }
          else {
            memcpy(puVar7,&local_58,sVar1);
            puVar7 = (undefined8 *)puVar13[-2];
          }
        }
        puVar13[-1] = sVar1;
        *(undefined1 *)((long)puVar7 + sVar1) = 0;
      }
      else if (puVar7 == puVar13) {
        puVar13[-2] = local_68;
        puVar13[-1] = sVar1;
        *puVar13 = local_58;
        local_68 = &local_58;
      }
      else {
        uVar2 = *puVar13;
        puVar13[-2] = local_68;
        puVar13[-1] = sVar1;
        *puVar13 = local_58;
        local_68 = &local_58;
        if (puVar7 != (undefined8 *)0x0) {
          local_68 = puVar7;
          local_58 = uVar2;
        }
      }
      *(undefined1 *)local_68 = 0;
      puVar13[2] = local_48;
      puVar13[3] = local_40;
      if (local_68 != &local_58) {
        FUN_002dac60();
      }
      puVar13 = puVar13 + 10;
      puVar15 = puVar15 + 10;
    } while (puVar13 !=
             (undefined8 *)(param_2 + 0x80 + ((param_2 + -0x50) - param_1 & 0xfffffffffffffff0U)));
    return param_2;
  }
  lVar14 = local_a8 + lVar10 * 0x3333333333333333;
  lVar12 = lVar11;
  local_a0 = param_1;
  if (lVar14 == lVar11 || SBORROW8(lVar14,lVar11) != lVar14 + lVar10 * 0x3333333333333333 < 0)
  goto LAB_0025fb1a;
  do {
    if (0 < lVar14) {
      lVar10 = 0;
      puVar13 = (undefined8 *)(local_a0 + 0x30 + lVar11 * 0x50);
      puVar15 = (undefined8 *)(local_a0 + 0x30);
      do {
        uVar2 = puVar15[-6];
        uVar4 = puVar15[-5];
        uVar5 = puVar15[-4];
        uVar6 = puVar15[-3];
        local_68 = (undefined8 *)puVar15[-2];
        if (local_68 == puVar15) {
          local_58 = *puVar15;
          uStack_50 = puVar15[1];
          local_68 = &local_58;
        }
        else {
          local_58 = *puVar15;
        }
        sVar1 = puVar15[-1];
        *(undefined1 *)puVar15 = 0;
        puVar15[-1] = 0;
        uVar3 = puVar13[-5];
        local_48 = puVar15[2];
        puVar15[-6] = puVar13[-6];
        puVar15[-5] = uVar3;
        local_40 = puVar15[3];
        puVar15[-2] = puVar15;
        puVar15[-4] = puVar13[-4];
        *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);
        if ((undefined8 *)puVar13[-2] == puVar13) {
          sVar9 = puVar13[-1];
          if (sVar9 != 0) {
            if (sVar9 == 1) {
              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;
              sVar9 = puVar13[-1];
            }
            else {
              memcpy(puVar15,puVar13,sVar9);
              sVar9 = puVar13[-1];
            }
          }
          puVar15[-1] = sVar9;
          *(undefined1 *)((long)puVar15 + sVar9) = 0;
          puVar7 = (undefined8 *)puVar13[-2];
        }
        else {
          puVar15[-2] = (undefined8 *)puVar13[-2];
          puVar15[-1] = puVar13[-1];
          *puVar15 = *puVar13;
          puVar13[-2] = puVar13;
          puVar7 = puVar13;
        }
        puVar13[-1] = 0;
        *(undefined1 *)puVar7 = 0;
        puVar15[2] = puVar13[2];
        puVar15[3] = puVar13[3];
        puVar13[-6] = uVar2;
        puVar13[-5] = uVar4;
        puVar7 = (undefined8 *)puVar13[-2];
        puVar13[-4] = uVar5;
        uStack_70 = (undefined4)uVar6;
        *(undefined4 *)(puVar13 + -3) = uStack_70;
        if (local_68 == &local_58) {
          if (sVar1 != 0) {
            if (sVar1 == 1) {
              *(undefined1 *)puVar7 = (undefined1)local_58;
              puVar7 = (undefined8 *)puVar13[-2];
            }
            else {
              memcpy(puVar7,&local_58,sVar1);
              puVar7 = (undefined8 *)puVar13[-2];
            }
          }
          puVar13[-1] = sVar1;
          *(undefined1 *)((long)puVar7 + sVar1) = 0;
          uVar2 = local_58;
        }
        else {
          if (puVar7 == puVar13) {
            puVar13[-2] = local_68;
            puVar13[-1] = sVar1;
            *puVar13 = local_58;
          }
          else {
            uVar2 = *puVar13;
            puVar13[-2] = local_68;
            puVar13[-1] = sVar1;
            *puVar13 = local_58;
            local_68 = puVar7;
            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;
          }
          local_68 = &local_58;
          uVar2 = local_58;
        }
LAB_0025f996:
        local_58 = uVar2;
        *(undefined1 *)local_68 = 0;
        puVar13[2] = local_48;
        puVar13[3] = local_40;
        if (local_68 != &local_58) {
          FUN_002dac60();
        }
        lVar10 = lVar10 + 1;
        puVar15 = puVar15 + 10;
        puVar13 = puVar13 + 10;
      } while (lVar14 != lVar10);
      local_a0 = local_a0 + lVar14 * 0x50;
    }
    if (local_a8 % lVar11 == 0) {
      return lVar8;
    }
    lVar12 = lVar11 - local_a8 % lVar11;
    lVar10 = lVar11;
    while (lVar14 = lVar10 - lVar12, lVar11 = lVar12, local_a8 = lVar10, lVar14 <= lVar12) {
LAB_0025fb1a:
      lVar10 = lVar14;
      lVar11 = local_a8 * 0x50 + local_a0;
      local_a0 = lVar11 + lVar10 * -0x50;
      if (0 < lVar12) {
        puVar15 = (undefined8 *)(local_a0 + -0x20);
        puVar13 = (undefined8 *)(lVar11 + -0x20);
        lVar11 = 0;
        do {
          uVar2 = puVar15[-6];
          uVar4 = puVar15[-5];
          uVar5 = puVar15[-4];
          uVar6 = puVar15[-3];
          local_68 = (undefined8 *)puVar15[-2];
          if (local_68 == puVar15) {
            local_58 = *puVar15;
            uStack_50 = puVar15[1];
            local_68 = &local_58;
          }
          else {
            local_58 = *puVar15;
          }
          sVar1 = puVar15[-1];
          *(undefined1 *)puVar15 = 0;
          puVar15[-1] = 0;
          uVar3 = puVar13[-5];
          local_48 = puVar15[2];
          puVar15[-6] = puVar13[-6];
          puVar15[-5] = uVar3;
          local_40 = puVar15[3];
          puVar15[-2] = puVar15;
          puVar15[-4] = puVar13[-4];
          *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);
          if ((undefined8 *)puVar13[-2] == puVar13) {
            sVar9 = puVar13[-1];
            if (sVar9 != 0) {
              if (sVar9 == 1) {
                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;
                sVar9 = puVar13[-1];
              }
              else {
                memcpy(puVar15,puVar13,sVar9);
                sVar9 = puVar13[-1];
              }
            }
            puVar15[-1] = sVar9;
            *(undefined1 *)(puVar15[-2] + sVar9) = 0;
          }
          else {
            puVar15[-2] = (undefined8 *)puVar13[-2];
            puVar15[-1] = puVar13[-1];
            *puVar15 = *puVar13;
            puVar13[-2] = puVar13;
          }
          puVar13[-1] = 0;
          *(undefined1 *)puVar13[-2] = 0;
          puVar15[2] = puVar13[2];
          puVar15[3] = puVar13[3];
          puVar7 = (undefined8 *)puVar13[-2];
          puVar13[-6] = uVar2;
          puVar13[-5] = uVar4;
          puVar13[-4] = uVar5;
          uStack_70 = (undefined4)uVar6;
          *(undefined4 *)(puVar13 + -3) = uStack_70;
          if (local_68 == &local_58) {
            if (sVar1 != 0) {
              if (sVar1 == 1) {
                *(undefined1 *)puVar7 = (undefined1)local_58;
                puVar7 = (undefined8 *)puVar13[-2];
              }
              else {
                memcpy(puVar7,&local_58,sVar1);
                puVar7 = (undefined8 *)puVar13[-2];
              }
            }
            puVar13[-1] = sVar1;
            *(undefined1 *)((long)puVar7 + sVar1) = 0;
            uVar2 = local_58;
          }
          else {
            if (puVar7 == puVar13) {
              puVar13[-2] = local_68;
              puVar13[-1] = sVar1;
              *puVar13 = local_58;
            }
            else {
              uVar2 = *puVar13;
              puVar13[-2] = local_68;
              puVar13[-1] = sVar1;
              *puVar13 = local_58;
              local_68 = puVar7;
              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;
            }
            local_68 = &local_58;
            uVar2 = local_58;
          }
LAB_0025fc78:
          local_58 = uVar2;
          *(undefined1 *)local_68 = 0;
          puVar13[2] = local_48;
          puVar13[3] = local_40;
          if (local_68 != &local_58) {
            FUN_002dac60();
          }
          lVar11 = lVar11 + 1;
          puVar15 = puVar15 + -10;
          puVar13 = puVar13 + -10;
        } while (lVar11 != lVar12);
        local_a0 = local_a0 + lVar11 * -0x50;
      }
      lVar12 = local_a8 % lVar10;
      if (lVar12 == 0) {
        return lVar8;
      }
    }
  } while( true );
}


PUSH R15
MOV RAX,RDX
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x78
MOV qword ptr [RSP + 0x8],RDI
CMP RDI,RSI
JZ 0x0025fa40
MOV RAX,RDI
CMP RDX,RSI
JZ 0x0025fa40
MOV R12,RDX
MOV RBX,RSI
MOV R14,RDX
MOV RBP,RSI
MOV RDX,-0x3333333333333333
SUB R12,RDI
SUB RBX,RDI
SAR R12,0x4
SAR RBX,0x4
IMUL R12,RDX
IMUL RBX,RDX
MOV RDX,R14
SUB RDX,RSI
LEA RCX,[RDI + RDX*0x1]
MOV RAX,R12
MOV qword ptr [RSP],R12
MOV qword ptr [RSP + 0x18],RCX
SUB RAX,RBX
LEA RCX,[RSP + 0x20]
MOV qword ptr [RSP + 0x10],RCX
CMP RAX,RBX
JZ 0x0025fde5
MOV RBP,qword ptr [RSP]
SUB RBP,RBX
CMP RBP,RBX
JLE 0x0025fb1a
NOP dword ptr [RAX + RAX*0x1]
LEA RAX,[RBX + RBX*0x4]
SHL RAX,0x4
TEST RBP,RBP
JLE 0x0025faee
MOV RCX,qword ptr [RSP + 0x8]
XOR R13D,R13D
LEA R14,[RCX + RAX*0x1 + 0x30]
MOV RAX,qword ptr [RSP + 0x10]
LEA R15,[RCX + 0x30]
LEA R12,[RAX + 0x30]
JMP 0x0025f9d8
MOV qword ptr [RSP + 0x40],RAX
MOV RAX,qword ptr [R15]
MOV qword ptr [RSP + 0x50],RAX
MOV RAX,qword ptr [R15 + -0x8]
MOV byte ptr [R15],0x0
MOV qword ptr [R15 + -0x8],0x0
MOVDQU XMM2,xmmword ptr [R14 + -0x30]
MOV qword ptr [RSP + 0x48],RAX
MOV RAX,qword ptr [R15 + 0x10]
MOVUPS xmmword ptr [R15 + -0x30],XMM2
MOV qword ptr [RSP + 0x60],RAX
MOV RAX,qword ptr [R15 + 0x18]
MOV qword ptr [R15 + -0x10],R15
MOV qword ptr [RSP + 0x68],RAX
MOV RAX,qword ptr [R14 + -0x20]
MOV qword ptr [R15 + -0x20],RAX
MOV EAX,dword ptr [R14 + -0x18]
MOV dword ptr [R15 + -0x18],EAX
MOV RAX,qword ptr [R14 + -0x10]
CMP RAX,R14
JZ 0x0025fa50
MOV qword ptr [R15 + -0x10],RAX
MOV RAX,qword ptr [R14 + -0x8]
MOV qword ptr [R15 + -0x8],RAX
MOV RAX,qword ptr [R14]
MOV qword ptr [R15],RAX
MOV RAX,R14
MOV qword ptr [R14 + -0x10],R14
MOV qword ptr [R14 + -0x8],0x0
MOV byte ptr [RAX],0x0
MOV RAX,qword ptr [R14 + 0x10]
MOVDQA XMM3,xmmword ptr [RSP + 0x20]
MOV qword ptr [R15 + 0x10],RAX
MOV RAX,qword ptr [R14 + 0x18]
MOV qword ptr [R15 + 0x18],RAX
MOV RAX,qword ptr [RSP + 0x30]
MOVUPS xmmword ptr [R14 + -0x30],XMM3
MOV RDI,qword ptr [R14 + -0x10]
MOV qword ptr [R14 + -0x20],RAX
MOV EAX,dword ptr [RSP + 0x38]
MOV dword ptr [R14 + -0x18],EAX
MOV RAX,qword ptr [RSP + 0x40]
CMP RAX,R12
JZ 0x0025fa88
MOV RDX,qword ptr [RSP + 0x50]
MOV RSI,qword ptr [RSP + 0x48]
CMP RDI,R14
JZ 0x0025fac0
MOV R11,qword ptr [R14]
MOV qword ptr [R14 + -0x10],RAX
MOV qword ptr [R14 + -0x8],RSI
MOV qword ptr [R14],RDX
TEST RDI,RDI
JZ 0x0025facb
MOV qword ptr [RSP + 0x40],RDI
MOV qword ptr [RSP + 0x50],R11
MOV qword ptr [RSP + 0x48],0x0
MOV byte ptr [RDI],0x0
MOV RAX,qword ptr [RSP + 0x60]
MOV RDI,qword ptr [RSP + 0x40]
MOV qword ptr [R14 + 0x10],RAX
MOV RAX,qword ptr [RSP + 0x68]
MOV qword ptr [R14 + 0x18],RAX
CMP RDI,R12
JZ 0x0025f9c3
CALL 0x002dac60
ADD R13,0x1
ADD R15,0x50
ADD R14,0x50
CMP RBP,R13
JZ 0x0025fae0
MOVDQU XMM0,xmmword ptr [R15 + -0x30]
MOVDQU XMM1,xmmword ptr [R15 + -0x20]
MOV qword ptr [RSP + 0x40],R12
MOV RAX,qword ptr [R15 + -0x10]
MOVAPS xmmword ptr [RSP + 0x20],XMM0
MOVAPS xmmword ptr [RSP + 0x30],XMM1
CMP RAX,R15
JNZ 0x0025f8a0
MOVDQU XMM0,xmmword ptr [R15]
MOVAPS xmmword ptr [RSP + 0x50],XMM0
JMP 0x0025f8ad
MOV RAX,R14
NEG RAX
SHL RAX,0x2
SUB RAX,R14
SHL RAX,0x4
ADD qword ptr [RSP + 0x8],RAX
MOV RAX,qword ptr [RSP]
CQO
IDIV RBP
MOV RBX,RDX
TEST RDX,RDX
JNZ 0x0025fb06
MOV RAX,qword ptr [RSP + 0x18]
ADD RSP,0x78
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV RDX,qword ptr [R14 + -0x8]
TEST RDX,RDX
JZ 0x0025fa72
CMP RDX,0x1
JZ 0x0025fdc0
MOV RSI,R14
MOV RDI,R15
CALL 0x00147aa0
MOV RDX,qword ptr [R14 + -0x8]
MOV qword ptr [R15 + -0x8],RDX
MOV byte ptr [R15 + RDX*0x1],0x0
MOV RAX,qword ptr [R14 + -0x10]
JMP 0x0025f919
MOV RDX,qword ptr [RSP + 0x48]
TEST RDX,RDX
JZ 0x0025faad
CMP RDX,0x1
JZ 0x0025fdd0
MOV RSI,R12
CALL 0x00147aa0
MOV RDX,qword ptr [RSP + 0x48]
MOV RDI,qword ptr [R14 + -0x10]
MOV qword ptr [R14 + -0x8],RDX
MOV byte ptr [RDI + RDX*0x1],0x0
MOV RDI,qword ptr [RSP + 0x40]
JMP 0x0025f996
MOV qword ptr [R14 + -0x10],RAX
MOV qword ptr [R14 + -0x8],RSI
MOV qword ptr [R14],RDX
MOV qword ptr [RSP + 0x40],R12
MOV RDI,R12
JMP 0x0025f996
LEA RAX,[RBP + RBP*0x4]
SHL RAX,0x4
ADD qword ptr [RSP + 0x8],RAX
MOV RAX,qword ptr [RSP]
CQO
IDIV RBX
TEST RDX,RDX
JZ 0x0025fa3b
MOV RBP,RBX
SUB RBX,RDX
MOV qword ptr [RSP],RBP
MOV RBP,qword ptr [RSP]
SUB RBP,RBX
CMP RBP,RBX
JG 0x0025f868
MOV RAX,qword ptr [RSP]
LEA RCX,[RAX + RAX*0x4]
LEA RAX,[RBP + RBP*0x4]
SHL RCX,0x4
ADD RCX,qword ptr [RSP + 0x8]
SHL RAX,0x4
MOV RSI,RCX
SUB RSI,RAX
MOV qword ptr [RSP + 0x8],RSI
TEST RBX,RBX
JLE 0x0025fa26
MOV RAX,qword ptr [RSP + 0x10]
LEA R13,[RSI + -0x20]
LEA R12,[RCX + -0x20]
XOR R14D,R14D
LEA R15,[RAX + 0x30]
JMP 0x0025fcbc
MOV qword ptr [RSP + 0x40],RAX
MOV RAX,qword ptr [R13]
MOV qword ptr [RSP + 0x50],RAX
MOV RAX,qword ptr [R13 + -0x8]
MOV byte ptr [R13],0x0
MOV qword ptr [R13 + -0x8],0x0
MOVDQU XMM6,xmmword ptr [R12 + -0x30]
MOV qword ptr [RSP + 0x48],RAX
MOV RAX,qword ptr [R13 + 0x10]
MOVUPS xmmword ptr [R13 + -0x30],XMM6
MOV qword ptr [RSP + 0x60],RAX
MOV RAX,qword ptr [R13 + 0x18]
MOV qword ptr [R13 + -0x10],R13
MOV qword ptr [RSP + 0x68],RAX
MOV RAX,qword ptr [R12 + -0x20]
MOV qword ptr [R13 + -0x20],RAX
MOV EAX,dword ptr [R12 + -0x18]
MOV dword ptr [R13 + -0x18],EAX
MOV RAX,qword ptr [R12 + -0x10]
CMP RAX,R12
JZ 0x0025fd38
MOV qword ptr [R13 + -0x10],RAX
MOV RAX,qword ptr [R12 + -0x8]
MOV qword ptr [R13 + -0x8],RAX
MOV RAX,qword ptr [R12]
MOV qword ptr [R13],RAX
MOV qword ptr [R12 + -0x10],R12
MOV qword ptr [R12 + -0x8],0x0
MOV RAX,qword ptr [R12 + -0x10]
MOV byte ptr [RAX],0x0
MOV RAX,qword ptr [R12 + 0x10]
MOVDQA XMM7,xmmword ptr [RSP + 0x20]
MOV RDX,qword ptr [RSP + 0x40]
MOV qword ptr [R13 + 0x10],RAX
MOV RAX,qword ptr [R12 + 0x18]
MOV qword ptr [R13 + 0x18],RAX
MOV RAX,qword ptr [RSP + 0x30]
MOV RDI,qword ptr [R12 + -0x10]
MOVUPS xmmword ptr [R12 + -0x30],XMM7
MOV qword ptr [R12 + -0x20],RAX
MOV EAX,dword ptr [RSP + 0x38]
MOV dword ptr [R12 + -0x18],EAX
MOV RAX,RDI
CMP RDX,R15
JZ 0x0025fcf8
MOV RSI,qword ptr [RSP + 0x50]
MOV RDI,qword ptr [RSP + 0x48]
CMP RAX,R12
JZ 0x0025fd70
MOV R11,qword ptr [R12]
MOV qword ptr [R12 + -0x10],RDX
MOV qword ptr [R12 + -0x8],RDI
MOV qword ptr [R12],RSI
TEST RAX,RAX
JZ 0x0025fd7e
MOV qword ptr [RSP + 0x40],RAX
MOV qword ptr [RSP + 0x50],R11
MOV qword ptr [RSP + 0x48],0x0
MOV byte ptr [RAX],0x0
MOV RAX,qword ptr [RSP + 0x60]
MOV RDI,qword ptr [RSP + 0x40]
MOV qword ptr [R12 + 0x10],RAX
MOV RAX,qword ptr [RSP + 0x68]
MOV qword ptr [R12 + 0x18],RAX
CMP RDI,R15
JZ 0x0025fca7
CALL 0x002dac60
ADD R14,0x1
SUB R13,0x50
SUB R12,0x50
CMP R14,RBX
JZ 0x0025fa10
MOVDQU XMM4,xmmword ptr [R13 + -0x30]
MOVDQU XMM5,xmmword ptr [R13 + -0x20]
MOV qword ptr [RSP + 0x40],R15
MOV RAX,qword ptr [R13 + -0x10]
MOVAPS xmmword ptr [RSP + 0x20],XMM4
MOVAPS xmmword ptr [RSP + 0x30],XMM5
CMP RAX,R13
JNZ 0x0025fb68
MOVDQU XMM1,xmmword ptr [R13]
MOVAPS xmmword ptr [RSP + 0x50],XMM1
JMP 0x0025fb76
MOV RDX,qword ptr [RSP + 0x48]
TEST RDX,RDX
JZ 0x0025fd1e
CMP RDX,0x1
JZ 0x0025fd90
MOV RSI,R15
CALL 0x00147aa0
MOV RDX,qword ptr [RSP + 0x48]
MOV RDI,qword ptr [R12 + -0x10]
MOV qword ptr [R12 + -0x8],RDX
MOV byte ptr [RDI + RDX*0x1],0x0
MOV RAX,qword ptr [RSP + 0x40]
JMP 0x0025fc78
MOV RDX,qword ptr [R12 + -0x8]
TEST RDX,RDX
JZ 0x0025fd58
CMP RDX,0x1
JZ 0x0025fdb0
MOV RSI,R12
MOV RDI,R13
CALL 0x00147aa0
MOV RDX,qword ptr [R12 + -0x8]
MOV RAX,qword ptr [R13 + -0x10]
MOV qword ptr [R13 + -0x8],RDX
MOV byte ptr [RAX + RDX*0x1],0x0
JMP 0x0025fbe8
MOV qword ptr [R12 + -0x10],RDX
MOV qword ptr [R12 + -0x8],RDI
MOV qword ptr [R12],RSI
MOV qword ptr [RSP + 0x40],R15
MOV RAX,R15
JMP 0x0025fc78
MOVZX EAX,byte ptr [RSP + 0x50]
MOV byte ptr [RDI],AL
MOV RDX,qword ptr [RSP + 0x48]
MOV RDI,qword ptr [R12 + -0x10]
JMP 0x0025fd1e
MOVZX EAX,byte ptr [R12]
MOV byte ptr [R13],AL
MOV RDX,qword ptr [R12 + -0x8]
JMP 0x0025fd58
MOVZX EAX,byte ptr [R14]
MOV byte ptr [R15],AL
MOV RDX,qword ptr [R14 + -0x8]
JMP 0x0025fa72
MOVZX EAX,byte ptr [RSP + 0x50]
MOV byte ptr [RDI],AL
MOV RDX,qword ptr [RSP + 0x48]
MOV RDI,qword ptr [R14 + -0x10]
JMP 0x0025faad
LEA RAX,[RSI + -0x50]
LEA R12,[RDI + 0x30]
SUB RAX,RDI
LEA RBX,[RSI + 0x30]
LEA R13,[RSP + 0x50]
AND RAX,-0x10
LEA R14,[RSI + RAX*0x1 + 0x80]
JMP 0x0025ff4f
MOV qword ptr [RSP + 0x40],RAX
MOV RAX,qword ptr [R12]
MOV qword ptr [RSP + 0x50],RAX
MOV RAX,qword ptr [R12 + -0x8]
MOV byte ptr [R12],0x0
MOV qword ptr [R12 + -0x8],0x0
MOVDQU XMM4,xmmword ptr [RBX + -0x30]
MOV qword ptr [RSP + 0x48],RAX
MOV RAX,qword ptr [R12 + 0x10]
MOVUPS xmmword ptr [R12 + -0x30],XMM4
MOV qword ptr [RSP + 0x60],RAX
MOV RAX,qword ptr [R12 + 0x18]
MOV qword ptr [R12 + -0x10],R12
MOV qword ptr [RSP + 0x68],RAX
MOV RAX,qword ptr [RBX + -0x20]
MOV qword ptr [R12 + -0x20],RAX
MOV EAX,dword ptr [RBX + -0x18]
MOV dword ptr [R12 + -0x18],EAX
MOV R15,qword ptr [RBX + -0x10]
CMP RBX,R15
JZ 0x0025ffd0
MOV qword ptr [R12 + -0x10],R15
MOV RAX,qword ptr [RBX + -0x8]
MOV qword ptr [R12 + -0x8],RAX
MOV RAX,qword ptr [RBX]
MOV qword ptr [R12],RAX
MOV RAX,RBX
MOV qword ptr [RBX + -0x10],RBX
MOV qword ptr [RBX + -0x8],0x0
MOV byte ptr [RAX],0x0
MOV RAX,qword ptr [RBX + 0x10]
MOVDQA XMM5,xmmword ptr [RSP + 0x20]
MOV qword ptr [R12 + 0x10],RAX
MOV RAX,qword ptr [RBX + 0x18]
MOV qword ptr [R12 + 0x18],RAX
MOV RAX,qword ptr [RSP + 0x30]
MOVUPS xmmword ptr [RBX + -0x30],XMM5
MOV RDI,qword ptr [RBX + -0x10]
MOV qword ptr [RBX + -0x20],RAX
MOV EAX,dword ptr [RSP + 0x38]
MOV dword ptr [RBX + -0x18],EAX
MOV RAX,qword ptr [RSP + 0x40]
CMP RAX,R13
JZ 0x0025ff90
MOV RCX,qword ptr [RSP + 0x48]
MOV RDX,qword ptr [RSP + 0x50]
CMP RDI,RBX
JZ 0x00260008
MOV RSI,qword ptr [RBX]
MOV qword ptr [RBX + -0x10],RAX
MOV qword ptr [RBX + -0x8],RCX
MOV qword ptr [RBX],RDX
TEST RDI,RDI
JZ 0x00260013
MOV qword ptr [RSP + 0x40],RDI
MOV qword ptr [RSP + 0x50],RSI
MOV qword ptr [RSP + 0x48],0x0
MOV byte ptr [RDI],0x0
MOV RAX,qword ptr [RSP + 0x60]
MOV RDI,qword ptr [RSP + 0x40]
MOV qword ptr [RBX + 0x10],RAX
MOV RAX,qword ptr [RSP + 0x68]
MOV qword ptr [RBX + 0x18],RAX
CMP RDI,R13
JZ 0x0025ff3e
CALL 0x002dac60
ADD RBX,0x50
ADD R12,0x50
CMP RBX,R14
JZ 0x00260020
MOVDQU XMM2,xmmword ptr [R12 + -0x30]
MOV RAX,qword ptr [R12 + -0x10]
MOV qword ptr [RSP + 0x40],R13
MOVDQU XMM3,xmmword ptr [R12 + -0x20]
MOVAPS xmmword ptr [RSP + 0x20],XMM2
MOVAPS xmmword ptr [RSP + 0x30],XMM3
CMP R12,RAX
JNZ 0x0025fe10
MOVDQU XMM6,xmmword ptr [R12]
MOVAPS xmmword ptr [RSP + 0x50],XMM6
JMP 0x0025fe1e
MOV RDX,qword ptr [RSP + 0x48]
TEST RDX,RDX
JZ 0x0025ffb5
CMP RDX,0x1
JZ 0x0026003f
MOV RSI,R13
CALL 0x00147aa0
MOV RDX,qword ptr [RSP + 0x48]
MOV RDI,qword ptr [RBX + -0x10]
MOV qword ptr [RBX + -0x8],RDX
MOV byte ptr [RDI + RDX*0x1],0x0
MOV RDI,qword ptr [RSP + 0x40]
JMP 0x0025ff11
MOV RDX,qword ptr [RBX + -0x8]
TEST RDX,RDX
JZ 0x0025ffee
CMP RDX,0x1
JZ 0x00260032
MOV RSI,RBX
MOV RDI,R12
CALL 0x00147aa0
MOV RDX,qword ptr [RBX + -0x8]
MOV qword ptr [R12 + -0x8],RDX
MOV byte ptr [R12 + RDX*0x1],0x0
MOV RAX,qword ptr [R15 + -0x10]
JMP 0x0025fe94
MOV qword ptr [RBX + -0x10],RAX
MOV qword ptr [RBX + -0x8],RCX
MOV qword ptr [RBX],RDX
MOV qword ptr [RSP + 0x40],R13
MOV RDI,R13
JMP 0x0025ff11
ADD RSP,0x78
MOV RAX,RBP
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOVZX EAX,byte ptr [RBX]
MOV byte ptr [R12],AL
MOV RDX,qword ptr [RBX + -0x8]
JMP 0x0025ffee
MOVZX EAX,byte ptr [RSP + 0x50]
MOV byte ptr [RDI],AL
MOV RDX,qword ptr [RSP + 0x48]
MOV RDI,qword ptr [RBX + -0x10]
JMP 0x0025ffb5
(translation_unit "long FUN_0025f7d0(long param_1,long param_2,long param_3)\n\n{\n  size_t sVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  undefined8 uVar6;\n  undefined8 *puVar7;\n  long lVar8;\n  size_t sVar9;\n  long lVar10;\n  long lVar11;\n  long lVar12;\n  undefined8 *puVar13;\n  long lVar14;\n  undefined8 *puVar15;\n  long local_a8;\n  long local_a0;\n  undefined4 uStack_70;\n  undefined8 *local_68;\n  undefined8 local_58;\n  undefined8 uStack_50;\n  undefined8 local_48;\n  undefined8 local_40;\n  \n  lVar8 = param_3;\n  if ((param_1 == param_2) || (lVar8 = param_1, param_3 == param_2)) {\n    return lVar8;\n  }\n  lVar10 = param_2 - param_1 >> 4;\n  local_a8 = (param_3 - param_1 >> 4) * -0x3333333333333333;\n  lVar11 = lVar10 * -0x3333333333333333;\n  lVar8 = param_1 + (param_3 - param_2);\n  if (local_a8 + lVar10 * 0x3333333333333333 == lVar11) {\n    puVar15 = (undefined8 *)(param_1 + 0x30);\n    puVar13 = (undefined8 *)(param_2 + 0x30);\n    do {\n      uVar2 = puVar15[-6];\n      uVar4 = puVar15[-5];\n      local_68 = (undefined8 *)puVar15[-2];\n      uVar5 = puVar15[-4];\n      uVar6 = puVar15[-3];\n      if (puVar15 == local_68) {\n        local_58 = *puVar15;\n        uStack_50 = puVar15[1];\n        local_68 = &local_58;\n      }\n      else {\n        local_58 = *puVar15;\n      }\n      sVar1 = puVar15[-1];\n      *(undefined1 *)puVar15 = 0;\n      puVar15[-1] = 0;\n      uVar3 = puVar13[-5];\n      local_48 = puVar15[2];\n      puVar15[-6] = puVar13[-6];\n      puVar15[-5] = uVar3;\n      local_40 = puVar15[3];\n      puVar15[-2] = puVar15;\n      puVar15[-4] = puVar13[-4];\n      *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n      puVar7 = (undefined8 *)puVar13[-2];\n      if (puVar13 == puVar7) {\n        sVar9 = puVar13[-1];\n        if (sVar9 != 0) {\n          if (sVar9 == 1) {\n            *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n            sVar9 = puVar13[-1];\n          }\n          else {\n            memcpy(puVar15,puVar13,sVar9);\n            sVar9 = puVar13[-1];\n          }\n        }\n        puVar15[-1] = sVar9;\n        *(undefined1 *)((long)puVar15 + sVar9) = 0;\n        puVar7 = (undefined8 *)puVar7[-2];\n      }\n      else {\n        puVar15[-2] = puVar7;\n        puVar15[-1] = puVar13[-1];\n        *puVar15 = *puVar13;\n        puVar13[-2] = puVar13;\n        puVar7 = puVar13;\n      }\n      puVar13[-1] = 0;\n      *(undefined1 *)puVar7 = 0;\n      puVar15[2] = puVar13[2];\n      puVar15[3] = puVar13[3];\n      puVar13[-6] = uVar2;\n      puVar13[-5] = uVar4;\n      puVar7 = (undefined8 *)puVar13[-2];\n      puVar13[-4] = uVar5;\n      uStack_70 = (undefined4)uVar6;\n      *(undefined4 *)(puVar13 + -3) = uStack_70;\n      if (local_68 == &local_58) {\n        if (sVar1 != 0) {\n          if (sVar1 == 1) {\n            *(undefined1 *)puVar7 = (undefined1)local_58;\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n          else {\n            memcpy(puVar7,&local_58,sVar1);\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n        }\n        puVar13[-1] = sVar1;\n        *(undefined1 *)((long)puVar7 + sVar1) = 0;\n      }\n      else if (puVar7 == puVar13) {\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n      }\n      else {\n        uVar2 = *puVar13;\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n        if (puVar7 != (undefined8 *)0x0) {\n          local_68 = puVar7;\n          local_58 = uVar2;\n        }\n      }\n      *(undefined1 *)local_68 = 0;\n      puVar13[2] = local_48;\n      puVar13[3] = local_40;\n      if (local_68 != &local_58) {\n        FUN_002dac60();\n      }\n      puVar13 = puVar13 + 10;\n      puVar15 = puVar15 + 10;\n    } while (puVar13 !=\n             (undefined8 *)(param_2 + 0x80 + ((param_2 + -0x50) - param_1 & 0xfffffffffffffff0U)));\n    return param_2;\n  }\n  lVar14 = local_a8 + lVar10 * 0x3333333333333333;\n  lVar12 = lVar11;\n  local_a0 = param_1;\n  if (lVar14 == lVar11 || SBORROW8(lVar14,lVar11) != lVar14 + lVar10 * 0x3333333333333333 < 0)\n  goto LAB_0025fb1a;\n  do {\n    if (0 < lVar14) {\n      lVar10 = 0;\n      puVar13 = (undefined8 *)(local_a0 + 0x30 + lVar11 * 0x50);\n      puVar15 = (undefined8 *)(local_a0 + 0x30);\n      do {\n        uVar2 = puVar15[-6];\n        uVar4 = puVar15[-5];\n        uVar5 = puVar15[-4];\n        uVar6 = puVar15[-3];\n        local_68 = (undefined8 *)puVar15[-2];\n        if (local_68 == puVar15) {\n          local_58 = *puVar15;\n          uStack_50 = puVar15[1];\n          local_68 = &local_58;\n        }\n        else {\n          local_58 = *puVar15;\n        }\n        sVar1 = puVar15[-1];\n        *(undefined1 *)puVar15 = 0;\n        puVar15[-1] = 0;\n        uVar3 = puVar13[-5];\n        local_48 = puVar15[2];\n        puVar15[-6] = puVar13[-6];\n        puVar15[-5] = uVar3;\n        local_40 = puVar15[3];\n        puVar15[-2] = puVar15;\n        puVar15[-4] = puVar13[-4];\n        *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n        if ((undefined8 *)puVar13[-2] == puVar13) {\n          sVar9 = puVar13[-1];\n          if (sVar9 != 0) {\n            if (sVar9 == 1) {\n              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n              sVar9 = puVar13[-1];\n            }\n            else {\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }\n          }\n          puVar15[-1] = sVar9;\n          *(undefined1 *)((long)puVar15 + sVar9) = 0;\n          puVar7 = (undefined8 *)puVar13[-2];\n        }\n        else {\n          puVar15[-2] = (undefined8 *)puVar13[-2];\n          puVar15[-1] = puVar13[-1];\n          *puVar15 = *puVar13;\n          puVar13[-2] = puVar13;\n          puVar7 = puVar13;\n        }\n        puVar13[-1] = 0;\n        *(undefined1 *)puVar7 = 0;\n        puVar15[2] = puVar13[2];\n        puVar15[3] = puVar13[3];\n        puVar13[-6] = uVar2;\n        puVar13[-5] = uVar4;\n        puVar7 = (undefined8 *)puVar13[-2];\n        puVar13[-4] = uVar5;\n        uStack_70 = (undefined4)uVar6;\n        *(undefined4 *)(puVar13 + -3) = uStack_70;\n        if (local_68 == &local_58) {\n          if (sVar1 != 0) {\n            if (sVar1 == 1) {\n              *(undefined1 *)puVar7 = (undefined1)local_58;\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n            else {\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n          }\n          puVar13[-1] = sVar1;\n          *(undefined1 *)((long)puVar7 + sVar1) = 0;\n          uVar2 = local_58;\n        }\n        else {\n          if (puVar7 == puVar13) {\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n          }\n          else {\n            uVar2 = *puVar13;\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n            local_68 = puVar7;\n            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;\n          }\n          local_68 = &local_58;\n          uVar2 = local_58;\n        }\nLAB_0025f996:\n        local_58 = uVar2;\n        *(undefined1 *)local_68 = 0;\n        puVar13[2] = local_48;\n        puVar13[3] = local_40;\n        if (local_68 != &local_58) {\n          FUN_002dac60();\n        }\n        lVar10 = lVar10 + 1;\n        puVar15 = puVar15 + 10;\n        puVar13 = puVar13 + 10;\n      } while (lVar14 != lVar10);\n      local_a0 = local_a0 + lVar14 * 0x50;\n    }\n    if (local_a8 % lVar11 == 0) {\n      return lVar8;\n    }\n    lVar12 = lVar11 - local_a8 % lVar11;\n    lVar10 = lVar11;\n    while (lVar14 = lVar10 - lVar12, lVar11 = lVar12, local_a8 = lVar10, lVar14 <= lVar12) {\nLAB_0025fb1a:\n      lVar10 = lVar14;\n      lVar11 = local_a8 * 0x50 + local_a0;\n      local_a0 = lVar11 + lVar10 * -0x50;\n      if (0 < lVar12) {\n        puVar15 = (undefined8 *)(local_a0 + -0x20);\n        puVar13 = (undefined8 *)(lVar11 + -0x20);\n        lVar11 = 0;\n        do {\n          uVar2 = puVar15[-6];\n          uVar4 = puVar15[-5];\n          uVar5 = puVar15[-4];\n          uVar6 = puVar15[-3];\n          local_68 = (undefined8 *)puVar15[-2];\n          if (local_68 == puVar15) {\n            local_58 = *puVar15;\n            uStack_50 = puVar15[1];\n            local_68 = &local_58;\n          }\n          else {\n            local_58 = *puVar15;\n          }\n          sVar1 = puVar15[-1];\n          *(undefined1 *)puVar15 = 0;\n          puVar15[-1] = 0;\n          uVar3 = puVar13[-5];\n          local_48 = puVar15[2];\n          puVar15[-6] = puVar13[-6];\n          puVar15[-5] = uVar3;\n          local_40 = puVar15[3];\n          puVar15[-2] = puVar15;\n          puVar15[-4] = puVar13[-4];\n          *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n          if ((undefined8 *)puVar13[-2] == puVar13) {\n            sVar9 = puVar13[-1];\n            if (sVar9 != 0) {\n              if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }\n            }\n            puVar15[-1] = sVar9;\n            *(undefined1 *)(puVar15[-2] + sVar9) = 0;\n          }\n          else {\n            puVar15[-2] = (undefined8 *)puVar13[-2];\n            puVar15[-1] = puVar13[-1];\n            *puVar15 = *puVar13;\n            puVar13[-2] = puVar13;\n          }\n          puVar13[-1] = 0;\n          *(undefined1 *)puVar13[-2] = 0;\n          puVar15[2] = puVar13[2];\n          puVar15[3] = puVar13[3];\n          puVar7 = (undefined8 *)puVar13[-2];\n          puVar13[-6] = uVar2;\n          puVar13[-5] = uVar4;\n          puVar13[-4] = uVar5;\n          uStack_70 = (undefined4)uVar6;\n          *(undefined4 *)(puVar13 + -3) = uStack_70;\n          if (local_68 == &local_58) {\n            if (sVar1 != 0) {\n              if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n            }\n            puVar13[-1] = sVar1;\n            *(undefined1 *)((long)puVar7 + sVar1) = 0;\n            uVar2 = local_58;\n          }\n          else {\n            if (puVar7 == puVar13) {\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }\n            else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }\n            local_68 = &local_58;\n            uVar2 = local_58;\n          }\nLAB_0025fc78:\n          local_58 = uVar2;\n          *(undefined1 *)local_68 = 0;\n          puVar13[2] = local_48;\n          puVar13[3] = local_40;\n          if (local_68 != &local_58) {\n            FUN_002dac60();\n          }\n          lVar11 = lVar11 + 1;\n          puVar15 = puVar15 + -10;\n          puVar13 = puVar13 + -10;\n        } while (lVar11 != lVar12);\n        local_a0 = local_a0 + lVar11 * -0x50;\n      }\n      lVar12 = local_a8 % lVar10;\n      if (lVar12 == 0) {\n        return lVar8;\n      }\n    }\n  } while( true );\n}\n\n" (function_definition "long FUN_0025f7d0(long param_1,long param_2,long param_3)\n\n{\n  size_t sVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  undefined8 uVar6;\n  undefined8 *puVar7;\n  long lVar8;\n  size_t sVar9;\n  long lVar10;\n  long lVar11;\n  long lVar12;\n  undefined8 *puVar13;\n  long lVar14;\n  undefined8 *puVar15;\n  long local_a8;\n  long local_a0;\n  undefined4 uStack_70;\n  undefined8 *local_68;\n  undefined8 local_58;\n  undefined8 uStack_50;\n  undefined8 local_48;\n  undefined8 local_40;\n  \n  lVar8 = param_3;\n  if ((param_1 == param_2) || (lVar8 = param_1, param_3 == param_2)) {\n    return lVar8;\n  }\n  lVar10 = param_2 - param_1 >> 4;\n  local_a8 = (param_3 - param_1 >> 4) * -0x3333333333333333;\n  lVar11 = lVar10 * -0x3333333333333333;\n  lVar8 = param_1 + (param_3 - param_2);\n  if (local_a8 + lVar10 * 0x3333333333333333 == lVar11) {\n    puVar15 = (undefined8 *)(param_1 + 0x30);\n    puVar13 = (undefined8 *)(param_2 + 0x30);\n    do {\n      uVar2 = puVar15[-6];\n      uVar4 = puVar15[-5];\n      local_68 = (undefined8 *)puVar15[-2];\n      uVar5 = puVar15[-4];\n      uVar6 = puVar15[-3];\n      if (puVar15 == local_68) {\n        local_58 = *puVar15;\n        uStack_50 = puVar15[1];\n        local_68 = &local_58;\n      }\n      else {\n        local_58 = *puVar15;\n      }\n      sVar1 = puVar15[-1];\n      *(undefined1 *)puVar15 = 0;\n      puVar15[-1] = 0;\n      uVar3 = puVar13[-5];\n      local_48 = puVar15[2];\n      puVar15[-6] = puVar13[-6];\n      puVar15[-5] = uVar3;\n      local_40 = puVar15[3];\n      puVar15[-2] = puVar15;\n      puVar15[-4] = puVar13[-4];\n      *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n      puVar7 = (undefined8 *)puVar13[-2];\n      if (puVar13 == puVar7) {\n        sVar9 = puVar13[-1];\n        if (sVar9 != 0) {\n          if (sVar9 == 1) {\n            *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n            sVar9 = puVar13[-1];\n          }\n          else {\n            memcpy(puVar15,puVar13,sVar9);\n            sVar9 = puVar13[-1];\n          }\n        }\n        puVar15[-1] = sVar9;\n        *(undefined1 *)((long)puVar15 + sVar9) = 0;\n        puVar7 = (undefined8 *)puVar7[-2];\n      }\n      else {\n        puVar15[-2] = puVar7;\n        puVar15[-1] = puVar13[-1];\n        *puVar15 = *puVar13;\n        puVar13[-2] = puVar13;\n        puVar7 = puVar13;\n      }\n      puVar13[-1] = 0;\n      *(undefined1 *)puVar7 = 0;\n      puVar15[2] = puVar13[2];\n      puVar15[3] = puVar13[3];\n      puVar13[-6] = uVar2;\n      puVar13[-5] = uVar4;\n      puVar7 = (undefined8 *)puVar13[-2];\n      puVar13[-4] = uVar5;\n      uStack_70 = (undefined4)uVar6;\n      *(undefined4 *)(puVar13 + -3) = uStack_70;\n      if (local_68 == &local_58) {\n        if (sVar1 != 0) {\n          if (sVar1 == 1) {\n            *(undefined1 *)puVar7 = (undefined1)local_58;\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n          else {\n            memcpy(puVar7,&local_58,sVar1);\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n        }\n        puVar13[-1] = sVar1;\n        *(undefined1 *)((long)puVar7 + sVar1) = 0;\n      }\n      else if (puVar7 == puVar13) {\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n      }\n      else {\n        uVar2 = *puVar13;\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n        if (puVar7 != (undefined8 *)0x0) {\n          local_68 = puVar7;\n          local_58 = uVar2;\n        }\n      }\n      *(undefined1 *)local_68 = 0;\n      puVar13[2] = local_48;\n      puVar13[3] = local_40;\n      if (local_68 != &local_58) {\n        FUN_002dac60();\n      }\n      puVar13 = puVar13 + 10;\n      puVar15 = puVar15 + 10;\n    } while (puVar13 !=\n             (undefined8 *)(param_2 + 0x80 + ((param_2 + -0x50) - param_1 & 0xfffffffffffffff0U)));\n    return param_2;\n  }\n  lVar14 = local_a8 + lVar10 * 0x3333333333333333;\n  lVar12 = lVar11;\n  local_a0 = param_1;\n  if (lVar14 == lVar11 || SBORROW8(lVar14,lVar11) != lVar14 + lVar10 * 0x3333333333333333 < 0)\n  goto LAB_0025fb1a;\n  do {\n    if (0 < lVar14) {\n      lVar10 = 0;\n      puVar13 = (undefined8 *)(local_a0 + 0x30 + lVar11 * 0x50);\n      puVar15 = (undefined8 *)(local_a0 + 0x30);\n      do {\n        uVar2 = puVar15[-6];\n        uVar4 = puVar15[-5];\n        uVar5 = puVar15[-4];\n        uVar6 = puVar15[-3];\n        local_68 = (undefined8 *)puVar15[-2];\n        if (local_68 == puVar15) {\n          local_58 = *puVar15;\n          uStack_50 = puVar15[1];\n          local_68 = &local_58;\n        }\n        else {\n          local_58 = *puVar15;\n        }\n        sVar1 = puVar15[-1];\n        *(undefined1 *)puVar15 = 0;\n        puVar15[-1] = 0;\n        uVar3 = puVar13[-5];\n        local_48 = puVar15[2];\n        puVar15[-6] = puVar13[-6];\n        puVar15[-5] = uVar3;\n        local_40 = puVar15[3];\n        puVar15[-2] = puVar15;\n        puVar15[-4] = puVar13[-4];\n        *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n        if ((undefined8 *)puVar13[-2] == puVar13) {\n          sVar9 = puVar13[-1];\n          if (sVar9 != 0) {\n            if (sVar9 == 1) {\n              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n              sVar9 = puVar13[-1];\n            }\n            else {\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }\n          }\n          puVar15[-1] = sVar9;\n          *(undefined1 *)((long)puVar15 + sVar9) = 0;\n          puVar7 = (undefined8 *)puVar13[-2];\n        }\n        else {\n          puVar15[-2] = (undefined8 *)puVar13[-2];\n          puVar15[-1] = puVar13[-1];\n          *puVar15 = *puVar13;\n          puVar13[-2] = puVar13;\n          puVar7 = puVar13;\n        }\n        puVar13[-1] = 0;\n        *(undefined1 *)puVar7 = 0;\n        puVar15[2] = puVar13[2];\n        puVar15[3] = puVar13[3];\n        puVar13[-6] = uVar2;\n        puVar13[-5] = uVar4;\n        puVar7 = (undefined8 *)puVar13[-2];\n        puVar13[-4] = uVar5;\n        uStack_70 = (undefined4)uVar6;\n        *(undefined4 *)(puVar13 + -3) = uStack_70;\n        if (local_68 == &local_58) {\n          if (sVar1 != 0) {\n            if (sVar1 == 1) {\n              *(undefined1 *)puVar7 = (undefined1)local_58;\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n            else {\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n          }\n          puVar13[-1] = sVar1;\n          *(undefined1 *)((long)puVar7 + sVar1) = 0;\n          uVar2 = local_58;\n        }\n        else {\n          if (puVar7 == puVar13) {\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n          }\n          else {\n            uVar2 = *puVar13;\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n            local_68 = puVar7;\n            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;\n          }\n          local_68 = &local_58;\n          uVar2 = local_58;\n        }\nLAB_0025f996:\n        local_58 = uVar2;\n        *(undefined1 *)local_68 = 0;\n        puVar13[2] = local_48;\n        puVar13[3] = local_40;\n        if (local_68 != &local_58) {\n          FUN_002dac60();\n        }\n        lVar10 = lVar10 + 1;\n        puVar15 = puVar15 + 10;\n        puVar13 = puVar13 + 10;\n      } while (lVar14 != lVar10);\n      local_a0 = local_a0 + lVar14 * 0x50;\n    }\n    if (local_a8 % lVar11 == 0) {\n      return lVar8;\n    }\n    lVar12 = lVar11 - local_a8 % lVar11;\n    lVar10 = lVar11;\n    while (lVar14 = lVar10 - lVar12, lVar11 = lVar12, local_a8 = lVar10, lVar14 <= lVar12) {\nLAB_0025fb1a:\n      lVar10 = lVar14;\n      lVar11 = local_a8 * 0x50 + local_a0;\n      local_a0 = lVar11 + lVar10 * -0x50;\n      if (0 < lVar12) {\n        puVar15 = (undefined8 *)(local_a0 + -0x20);\n        puVar13 = (undefined8 *)(lVar11 + -0x20);\n        lVar11 = 0;\n        do {\n          uVar2 = puVar15[-6];\n          uVar4 = puVar15[-5];\n          uVar5 = puVar15[-4];\n          uVar6 = puVar15[-3];\n          local_68 = (undefined8 *)puVar15[-2];\n          if (local_68 == puVar15) {\n            local_58 = *puVar15;\n            uStack_50 = puVar15[1];\n            local_68 = &local_58;\n          }\n          else {\n            local_58 = *puVar15;\n          }\n          sVar1 = puVar15[-1];\n          *(undefined1 *)puVar15 = 0;\n          puVar15[-1] = 0;\n          uVar3 = puVar13[-5];\n          local_48 = puVar15[2];\n          puVar15[-6] = puVar13[-6];\n          puVar15[-5] = uVar3;\n          local_40 = puVar15[3];\n          puVar15[-2] = puVar15;\n          puVar15[-4] = puVar13[-4];\n          *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n          if ((undefined8 *)puVar13[-2] == puVar13) {\n            sVar9 = puVar13[-1];\n            if (sVar9 != 0) {\n              if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }\n            }\n            puVar15[-1] = sVar9;\n            *(undefined1 *)(puVar15[-2] + sVar9) = 0;\n          }\n          else {\n            puVar15[-2] = (undefined8 *)puVar13[-2];\n            puVar15[-1] = puVar13[-1];\n            *puVar15 = *puVar13;\n            puVar13[-2] = puVar13;\n          }\n          puVar13[-1] = 0;\n          *(undefined1 *)puVar13[-2] = 0;\n          puVar15[2] = puVar13[2];\n          puVar15[3] = puVar13[3];\n          puVar7 = (undefined8 *)puVar13[-2];\n          puVar13[-6] = uVar2;\n          puVar13[-5] = uVar4;\n          puVar13[-4] = uVar5;\n          uStack_70 = (undefined4)uVar6;\n          *(undefined4 *)(puVar13 + -3) = uStack_70;\n          if (local_68 == &local_58) {\n            if (sVar1 != 0) {\n              if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n            }\n            puVar13[-1] = sVar1;\n            *(undefined1 *)((long)puVar7 + sVar1) = 0;\n            uVar2 = local_58;\n          }\n          else {\n            if (puVar7 == puVar13) {\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }\n            else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }\n            local_68 = &local_58;\n            uVar2 = local_58;\n          }\nLAB_0025fc78:\n          local_58 = uVar2;\n          *(undefined1 *)local_68 = 0;\n          puVar13[2] = local_48;\n          puVar13[3] = local_40;\n          if (local_68 != &local_58) {\n            FUN_002dac60();\n          }\n          lVar11 = lVar11 + 1;\n          puVar15 = puVar15 + -10;\n          puVar13 = puVar13 + -10;\n        } while (lVar11 != lVar12);\n        local_a0 = local_a0 + lVar11 * -0x50;\n      }\n      lVar12 = local_a8 % lVar10;\n      if (lVar12 == 0) {\n        return lVar8;\n      }\n    }\n  } while( true );\n}" (sized_type_specifier "long" long) (function_declarator "FUN_0025f7d0(long param_1,long param_2,long param_3)" identifier (parameter_list "(long param_1,long param_2,long param_3)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  size_t sVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  undefined8 uVar6;\n  undefined8 *puVar7;\n  long lVar8;\n  size_t sVar9;\n  long lVar10;\n  long lVar11;\n  long lVar12;\n  undefined8 *puVar13;\n  long lVar14;\n  undefined8 *puVar15;\n  long local_a8;\n  long local_a0;\n  undefined4 uStack_70;\n  undefined8 *local_68;\n  undefined8 local_58;\n  undefined8 uStack_50;\n  undefined8 local_48;\n  undefined8 local_40;\n  \n  lVar8 = param_3;\n  if ((param_1 == param_2) || (lVar8 = param_1, param_3 == param_2)) {\n    return lVar8;\n  }\n  lVar10 = param_2 - param_1 >> 4;\n  local_a8 = (param_3 - param_1 >> 4) * -0x3333333333333333;\n  lVar11 = lVar10 * -0x3333333333333333;\n  lVar8 = param_1 + (param_3 - param_2);\n  if (local_a8 + lVar10 * 0x3333333333333333 == lVar11) {\n    puVar15 = (undefined8 *)(param_1 + 0x30);\n    puVar13 = (undefined8 *)(param_2 + 0x30);\n    do {\n      uVar2 = puVar15[-6];\n      uVar4 = puVar15[-5];\n      local_68 = (undefined8 *)puVar15[-2];\n      uVar5 = puVar15[-4];\n      uVar6 = puVar15[-3];\n      if (puVar15 == local_68) {\n        local_58 = *puVar15;\n        uStack_50 = puVar15[1];\n        local_68 = &local_58;\n      }\n      else {\n        local_58 = *puVar15;\n      }\n      sVar1 = puVar15[-1];\n      *(undefined1 *)puVar15 = 0;\n      puVar15[-1] = 0;\n      uVar3 = puVar13[-5];\n      local_48 = puVar15[2];\n      puVar15[-6] = puVar13[-6];\n      puVar15[-5] = uVar3;\n      local_40 = puVar15[3];\n      puVar15[-2] = puVar15;\n      puVar15[-4] = puVar13[-4];\n      *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n      puVar7 = (undefined8 *)puVar13[-2];\n      if (puVar13 == puVar7) {\n        sVar9 = puVar13[-1];\n        if (sVar9 != 0) {\n          if (sVar9 == 1) {\n            *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n            sVar9 = puVar13[-1];\n          }\n          else {\n            memcpy(puVar15,puVar13,sVar9);\n            sVar9 = puVar13[-1];\n          }\n        }\n        puVar15[-1] = sVar9;\n        *(undefined1 *)((long)puVar15 + sVar9) = 0;\n        puVar7 = (undefined8 *)puVar7[-2];\n      }\n      else {\n        puVar15[-2] = puVar7;\n        puVar15[-1] = puVar13[-1];\n        *puVar15 = *puVar13;\n        puVar13[-2] = puVar13;\n        puVar7 = puVar13;\n      }\n      puVar13[-1] = 0;\n      *(undefined1 *)puVar7 = 0;\n      puVar15[2] = puVar13[2];\n      puVar15[3] = puVar13[3];\n      puVar13[-6] = uVar2;\n      puVar13[-5] = uVar4;\n      puVar7 = (undefined8 *)puVar13[-2];\n      puVar13[-4] = uVar5;\n      uStack_70 = (undefined4)uVar6;\n      *(undefined4 *)(puVar13 + -3) = uStack_70;\n      if (local_68 == &local_58) {\n        if (sVar1 != 0) {\n          if (sVar1 == 1) {\n            *(undefined1 *)puVar7 = (undefined1)local_58;\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n          else {\n            memcpy(puVar7,&local_58,sVar1);\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n        }\n        puVar13[-1] = sVar1;\n        *(undefined1 *)((long)puVar7 + sVar1) = 0;\n      }\n      else if (puVar7 == puVar13) {\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n      }\n      else {\n        uVar2 = *puVar13;\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n        if (puVar7 != (undefined8 *)0x0) {\n          local_68 = puVar7;\n          local_58 = uVar2;\n        }\n      }\n      *(undefined1 *)local_68 = 0;\n      puVar13[2] = local_48;\n      puVar13[3] = local_40;\n      if (local_68 != &local_58) {\n        FUN_002dac60();\n      }\n      puVar13 = puVar13 + 10;\n      puVar15 = puVar15 + 10;\n    } while (puVar13 !=\n             (undefined8 *)(param_2 + 0x80 + ((param_2 + -0x50) - param_1 & 0xfffffffffffffff0U)));\n    return param_2;\n  }\n  lVar14 = local_a8 + lVar10 * 0x3333333333333333;\n  lVar12 = lVar11;\n  local_a0 = param_1;\n  if (lVar14 == lVar11 || SBORROW8(lVar14,lVar11) != lVar14 + lVar10 * 0x3333333333333333 < 0)\n  goto LAB_0025fb1a;\n  do {\n    if (0 < lVar14) {\n      lVar10 = 0;\n      puVar13 = (undefined8 *)(local_a0 + 0x30 + lVar11 * 0x50);\n      puVar15 = (undefined8 *)(local_a0 + 0x30);\n      do {\n        uVar2 = puVar15[-6];\n        uVar4 = puVar15[-5];\n        uVar5 = puVar15[-4];\n        uVar6 = puVar15[-3];\n        local_68 = (undefined8 *)puVar15[-2];\n        if (local_68 == puVar15) {\n          local_58 = *puVar15;\n          uStack_50 = puVar15[1];\n          local_68 = &local_58;\n        }\n        else {\n          local_58 = *puVar15;\n        }\n        sVar1 = puVar15[-1];\n        *(undefined1 *)puVar15 = 0;\n        puVar15[-1] = 0;\n        uVar3 = puVar13[-5];\n        local_48 = puVar15[2];\n        puVar15[-6] = puVar13[-6];\n        puVar15[-5] = uVar3;\n        local_40 = puVar15[3];\n        puVar15[-2] = puVar15;\n        puVar15[-4] = puVar13[-4];\n        *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n        if ((undefined8 *)puVar13[-2] == puVar13) {\n          sVar9 = puVar13[-1];\n          if (sVar9 != 0) {\n            if (sVar9 == 1) {\n              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n              sVar9 = puVar13[-1];\n            }\n            else {\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }\n          }\n          puVar15[-1] = sVar9;\n          *(undefined1 *)((long)puVar15 + sVar9) = 0;\n          puVar7 = (undefined8 *)puVar13[-2];\n        }\n        else {\n          puVar15[-2] = (undefined8 *)puVar13[-2];\n          puVar15[-1] = puVar13[-1];\n          *puVar15 = *puVar13;\n          puVar13[-2] = puVar13;\n          puVar7 = puVar13;\n        }\n        puVar13[-1] = 0;\n        *(undefined1 *)puVar7 = 0;\n        puVar15[2] = puVar13[2];\n        puVar15[3] = puVar13[3];\n        puVar13[-6] = uVar2;\n        puVar13[-5] = uVar4;\n        puVar7 = (undefined8 *)puVar13[-2];\n        puVar13[-4] = uVar5;\n        uStack_70 = (undefined4)uVar6;\n        *(undefined4 *)(puVar13 + -3) = uStack_70;\n        if (local_68 == &local_58) {\n          if (sVar1 != 0) {\n            if (sVar1 == 1) {\n              *(undefined1 *)puVar7 = (undefined1)local_58;\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n            else {\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n          }\n          puVar13[-1] = sVar1;\n          *(undefined1 *)((long)puVar7 + sVar1) = 0;\n          uVar2 = local_58;\n        }\n        else {\n          if (puVar7 == puVar13) {\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n          }\n          else {\n            uVar2 = *puVar13;\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n            local_68 = puVar7;\n            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;\n          }\n          local_68 = &local_58;\n          uVar2 = local_58;\n        }\nLAB_0025f996:\n        local_58 = uVar2;\n        *(undefined1 *)local_68 = 0;\n        puVar13[2] = local_48;\n        puVar13[3] = local_40;\n        if (local_68 != &local_58) {\n          FUN_002dac60();\n        }\n        lVar10 = lVar10 + 1;\n        puVar15 = puVar15 + 10;\n        puVar13 = puVar13 + 10;\n      } while (lVar14 != lVar10);\n      local_a0 = local_a0 + lVar14 * 0x50;\n    }\n    if (local_a8 % lVar11 == 0) {\n      return lVar8;\n    }\n    lVar12 = lVar11 - local_a8 % lVar11;\n    lVar10 = lVar11;\n    while (lVar14 = lVar10 - lVar12, lVar11 = lVar12, local_a8 = lVar10, lVar14 <= lVar12) {\nLAB_0025fb1a:\n      lVar10 = lVar14;\n      lVar11 = local_a8 * 0x50 + local_a0;\n      local_a0 = lVar11 + lVar10 * -0x50;\n      if (0 < lVar12) {\n        puVar15 = (undefined8 *)(local_a0 + -0x20);\n        puVar13 = (undefined8 *)(lVar11 + -0x20);\n        lVar11 = 0;\n        do {\n          uVar2 = puVar15[-6];\n          uVar4 = puVar15[-5];\n          uVar5 = puVar15[-4];\n          uVar6 = puVar15[-3];\n          local_68 = (undefined8 *)puVar15[-2];\n          if (local_68 == puVar15) {\n            local_58 = *puVar15;\n            uStack_50 = puVar15[1];\n            local_68 = &local_58;\n          }\n          else {\n            local_58 = *puVar15;\n          }\n          sVar1 = puVar15[-1];\n          *(undefined1 *)puVar15 = 0;\n          puVar15[-1] = 0;\n          uVar3 = puVar13[-5];\n          local_48 = puVar15[2];\n          puVar15[-6] = puVar13[-6];\n          puVar15[-5] = uVar3;\n          local_40 = puVar15[3];\n          puVar15[-2] = puVar15;\n          puVar15[-4] = puVar13[-4];\n          *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n          if ((undefined8 *)puVar13[-2] == puVar13) {\n            sVar9 = puVar13[-1];\n            if (sVar9 != 0) {\n              if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }\n            }\n            puVar15[-1] = sVar9;\n            *(undefined1 *)(puVar15[-2] + sVar9) = 0;\n          }\n          else {\n            puVar15[-2] = (undefined8 *)puVar13[-2];\n            puVar15[-1] = puVar13[-1];\n            *puVar15 = *puVar13;\n            puVar13[-2] = puVar13;\n          }\n          puVar13[-1] = 0;\n          *(undefined1 *)puVar13[-2] = 0;\n          puVar15[2] = puVar13[2];\n          puVar15[3] = puVar13[3];\n          puVar7 = (undefined8 *)puVar13[-2];\n          puVar13[-6] = uVar2;\n          puVar13[-5] = uVar4;\n          puVar13[-4] = uVar5;\n          uStack_70 = (undefined4)uVar6;\n          *(undefined4 *)(puVar13 + -3) = uStack_70;\n          if (local_68 == &local_58) {\n            if (sVar1 != 0) {\n              if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n            }\n            puVar13[-1] = sVar1;\n            *(undefined1 *)((long)puVar7 + sVar1) = 0;\n            uVar2 = local_58;\n          }\n          else {\n            if (puVar7 == puVar13) {\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }\n            else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }\n            local_68 = &local_58;\n            uVar2 = local_58;\n          }\nLAB_0025fc78:\n          local_58 = uVar2;\n          *(undefined1 *)local_68 = 0;\n          puVar13[2] = local_48;\n          puVar13[3] = local_40;\n          if (local_68 != &local_58) {\n            FUN_002dac60();\n          }\n          lVar11 = lVar11 + 1;\n          puVar15 = puVar15 + -10;\n          puVar13 = puVar13 + -10;\n        } while (lVar11 != lVar12);\n        local_a0 = local_a0 + lVar11 * -0x50;\n      }\n      lVar12 = local_a8 % lVar10;\n      if (lVar12 == 0) {\n        return lVar8;\n      }\n    }\n  } while( true );\n}" { (declaration "size_t sVar1;" primitive_type identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "undefined8 uVar6;" type_identifier identifier ;) (declaration "undefined8 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "size_t sVar9;" primitive_type identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "long lVar14;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "long local_a8;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_a0;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined4 uStack_70;" type_identifier identifier ;) (declaration "undefined8 *local_68;" type_identifier (pointer_declarator "*local_68" * identifier) ;) (declaration "undefined8 local_58;" type_identifier identifier ;) (declaration "undefined8 uStack_50;" type_identifier identifier ;) (declaration "undefined8 local_48;" type_identifier identifier ;) (declaration "undefined8 local_40;" type_identifier identifier ;) (expression_statement "lVar8 = param_3;" (assignment_expression "lVar8 = param_3" identifier = identifier) ;) (if_statement "if ((param_1 == param_2) || (lVar8 = param_1, param_3 == param_2)) {\n    return lVar8;\n  }" if (parenthesized_expression "((param_1 == param_2) || (lVar8 = param_1, param_3 == param_2))" ( (binary_expression "(param_1 == param_2) || (lVar8 = param_1, param_3 == param_2)" (parenthesized_expression "(param_1 == param_2)" ( (binary_expression "param_1 == param_2" identifier == identifier) )) || (parenthesized_expression "(lVar8 = param_1, param_3 == param_2)" ( (comma_expression "lVar8 = param_1, param_3 == param_2" (assignment_expression "lVar8 = param_1" identifier = identifier) , (binary_expression "param_3 == param_2" identifier == identifier)) ))) )) (compound_statement "{\n    return lVar8;\n  }" { (return_statement "return lVar8;" return identifier ;) })) (expression_statement "lVar10 = param_2 - param_1 >> 4;" (assignment_expression "lVar10 = param_2 - param_1 >> 4" identifier = (binary_expression "param_2 - param_1 >> 4" (binary_expression "param_2 - param_1" identifier - identifier) >> number_literal)) ;) (expression_statement "local_a8 = (param_3 - param_1 >> 4) * -0x3333333333333333;" (assignment_expression "local_a8 = (param_3 - param_1 >> 4) * -0x3333333333333333" identifier = (binary_expression "(param_3 - param_1 >> 4) * -0x3333333333333333" (parenthesized_expression "(param_3 - param_1 >> 4)" ( (binary_expression "param_3 - param_1 >> 4" (binary_expression "param_3 - param_1" identifier - identifier) >> number_literal) )) * number_literal)) ;) (expression_statement "lVar11 = lVar10 * -0x3333333333333333;" (assignment_expression "lVar11 = lVar10 * -0x3333333333333333" identifier = (binary_expression "lVar10 * -0x3333333333333333" identifier * number_literal)) ;) (expression_statement "lVar8 = param_1 + (param_3 - param_2);" (assignment_expression "lVar8 = param_1 + (param_3 - param_2)" identifier = (binary_expression "param_1 + (param_3 - param_2)" identifier + (parenthesized_expression "(param_3 - param_2)" ( (binary_expression "param_3 - param_2" identifier - identifier) )))) ;) (if_statement "if (local_a8 + lVar10 * 0x3333333333333333 == lVar11) {\n    puVar15 = (undefined8 *)(param_1 + 0x30);\n    puVar13 = (undefined8 *)(param_2 + 0x30);\n    do {\n      uVar2 = puVar15[-6];\n      uVar4 = puVar15[-5];\n      local_68 = (undefined8 *)puVar15[-2];\n      uVar5 = puVar15[-4];\n      uVar6 = puVar15[-3];\n      if (puVar15 == local_68) {\n        local_58 = *puVar15;\n        uStack_50 = puVar15[1];\n        local_68 = &local_58;\n      }\n      else {\n        local_58 = *puVar15;\n      }\n      sVar1 = puVar15[-1];\n      *(undefined1 *)puVar15 = 0;\n      puVar15[-1] = 0;\n      uVar3 = puVar13[-5];\n      local_48 = puVar15[2];\n      puVar15[-6] = puVar13[-6];\n      puVar15[-5] = uVar3;\n      local_40 = puVar15[3];\n      puVar15[-2] = puVar15;\n      puVar15[-4] = puVar13[-4];\n      *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n      puVar7 = (undefined8 *)puVar13[-2];\n      if (puVar13 == puVar7) {\n        sVar9 = puVar13[-1];\n        if (sVar9 != 0) {\n          if (sVar9 == 1) {\n            *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n            sVar9 = puVar13[-1];\n          }\n          else {\n            memcpy(puVar15,puVar13,sVar9);\n            sVar9 = puVar13[-1];\n          }\n        }\n        puVar15[-1] = sVar9;\n        *(undefined1 *)((long)puVar15 + sVar9) = 0;\n        puVar7 = (undefined8 *)puVar7[-2];\n      }\n      else {\n        puVar15[-2] = puVar7;\n        puVar15[-1] = puVar13[-1];\n        *puVar15 = *puVar13;\n        puVar13[-2] = puVar13;\n        puVar7 = puVar13;\n      }\n      puVar13[-1] = 0;\n      *(undefined1 *)puVar7 = 0;\n      puVar15[2] = puVar13[2];\n      puVar15[3] = puVar13[3];\n      puVar13[-6] = uVar2;\n      puVar13[-5] = uVar4;\n      puVar7 = (undefined8 *)puVar13[-2];\n      puVar13[-4] = uVar5;\n      uStack_70 = (undefined4)uVar6;\n      *(undefined4 *)(puVar13 + -3) = uStack_70;\n      if (local_68 == &local_58) {\n        if (sVar1 != 0) {\n          if (sVar1 == 1) {\n            *(undefined1 *)puVar7 = (undefined1)local_58;\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n          else {\n            memcpy(puVar7,&local_58,sVar1);\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n        }\n        puVar13[-1] = sVar1;\n        *(undefined1 *)((long)puVar7 + sVar1) = 0;\n      }\n      else if (puVar7 == puVar13) {\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n      }\n      else {\n        uVar2 = *puVar13;\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n        if (puVar7 != (undefined8 *)0x0) {\n          local_68 = puVar7;\n          local_58 = uVar2;\n        }\n      }\n      *(undefined1 *)local_68 = 0;\n      puVar13[2] = local_48;\n      puVar13[3] = local_40;\n      if (local_68 != &local_58) {\n        FUN_002dac60();\n      }\n      puVar13 = puVar13 + 10;\n      puVar15 = puVar15 + 10;\n    } while (puVar13 !=\n             (undefined8 *)(param_2 + 0x80 + ((param_2 + -0x50) - param_1 & 0xfffffffffffffff0U)));\n    return param_2;\n  }" if (parenthesized_expression "(local_a8 + lVar10 * 0x3333333333333333 == lVar11)" ( (binary_expression "local_a8 + lVar10 * 0x3333333333333333 == lVar11" (binary_expression "local_a8 + lVar10 * 0x3333333333333333" identifier + (binary_expression "lVar10 * 0x3333333333333333" identifier * number_literal)) == identifier) )) (compound_statement "{\n    puVar15 = (undefined8 *)(param_1 + 0x30);\n    puVar13 = (undefined8 *)(param_2 + 0x30);\n    do {\n      uVar2 = puVar15[-6];\n      uVar4 = puVar15[-5];\n      local_68 = (undefined8 *)puVar15[-2];\n      uVar5 = puVar15[-4];\n      uVar6 = puVar15[-3];\n      if (puVar15 == local_68) {\n        local_58 = *puVar15;\n        uStack_50 = puVar15[1];\n        local_68 = &local_58;\n      }\n      else {\n        local_58 = *puVar15;\n      }\n      sVar1 = puVar15[-1];\n      *(undefined1 *)puVar15 = 0;\n      puVar15[-1] = 0;\n      uVar3 = puVar13[-5];\n      local_48 = puVar15[2];\n      puVar15[-6] = puVar13[-6];\n      puVar15[-5] = uVar3;\n      local_40 = puVar15[3];\n      puVar15[-2] = puVar15;\n      puVar15[-4] = puVar13[-4];\n      *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n      puVar7 = (undefined8 *)puVar13[-2];\n      if (puVar13 == puVar7) {\n        sVar9 = puVar13[-1];\n        if (sVar9 != 0) {\n          if (sVar9 == 1) {\n            *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n            sVar9 = puVar13[-1];\n          }\n          else {\n            memcpy(puVar15,puVar13,sVar9);\n            sVar9 = puVar13[-1];\n          }\n        }\n        puVar15[-1] = sVar9;\n        *(undefined1 *)((long)puVar15 + sVar9) = 0;\n        puVar7 = (undefined8 *)puVar7[-2];\n      }\n      else {\n        puVar15[-2] = puVar7;\n        puVar15[-1] = puVar13[-1];\n        *puVar15 = *puVar13;\n        puVar13[-2] = puVar13;\n        puVar7 = puVar13;\n      }\n      puVar13[-1] = 0;\n      *(undefined1 *)puVar7 = 0;\n      puVar15[2] = puVar13[2];\n      puVar15[3] = puVar13[3];\n      puVar13[-6] = uVar2;\n      puVar13[-5] = uVar4;\n      puVar7 = (undefined8 *)puVar13[-2];\n      puVar13[-4] = uVar5;\n      uStack_70 = (undefined4)uVar6;\n      *(undefined4 *)(puVar13 + -3) = uStack_70;\n      if (local_68 == &local_58) {\n        if (sVar1 != 0) {\n          if (sVar1 == 1) {\n            *(undefined1 *)puVar7 = (undefined1)local_58;\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n          else {\n            memcpy(puVar7,&local_58,sVar1);\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n        }\n        puVar13[-1] = sVar1;\n        *(undefined1 *)((long)puVar7 + sVar1) = 0;\n      }\n      else if (puVar7 == puVar13) {\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n      }\n      else {\n        uVar2 = *puVar13;\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n        if (puVar7 != (undefined8 *)0x0) {\n          local_68 = puVar7;\n          local_58 = uVar2;\n        }\n      }\n      *(undefined1 *)local_68 = 0;\n      puVar13[2] = local_48;\n      puVar13[3] = local_40;\n      if (local_68 != &local_58) {\n        FUN_002dac60();\n      }\n      puVar13 = puVar13 + 10;\n      puVar15 = puVar15 + 10;\n    } while (puVar13 !=\n             (undefined8 *)(param_2 + 0x80 + ((param_2 + -0x50) - param_1 & 0xfffffffffffffff0U)));\n    return param_2;\n  }" { (expression_statement "puVar15 = (undefined8 *)(param_1 + 0x30);" (assignment_expression "puVar15 = (undefined8 *)(param_1 + 0x30)" identifier = (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) )))) ;) (expression_statement "puVar13 = (undefined8 *)(param_2 + 0x30);" (assignment_expression "puVar13 = (undefined8 *)(param_2 + 0x30)" identifier = (cast_expression "(undefined8 *)(param_2 + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) )))) ;) (do_statement "do {\n      uVar2 = puVar15[-6];\n      uVar4 = puVar15[-5];\n      local_68 = (undefined8 *)puVar15[-2];\n      uVar5 = puVar15[-4];\n      uVar6 = puVar15[-3];\n      if (puVar15 == local_68) {\n        local_58 = *puVar15;\n        uStack_50 = puVar15[1];\n        local_68 = &local_58;\n      }\n      else {\n        local_58 = *puVar15;\n      }\n      sVar1 = puVar15[-1];\n      *(undefined1 *)puVar15 = 0;\n      puVar15[-1] = 0;\n      uVar3 = puVar13[-5];\n      local_48 = puVar15[2];\n      puVar15[-6] = puVar13[-6];\n      puVar15[-5] = uVar3;\n      local_40 = puVar15[3];\n      puVar15[-2] = puVar15;\n      puVar15[-4] = puVar13[-4];\n      *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n      puVar7 = (undefined8 *)puVar13[-2];\n      if (puVar13 == puVar7) {\n        sVar9 = puVar13[-1];\n        if (sVar9 != 0) {\n          if (sVar9 == 1) {\n            *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n            sVar9 = puVar13[-1];\n          }\n          else {\n            memcpy(puVar15,puVar13,sVar9);\n            sVar9 = puVar13[-1];\n          }\n        }\n        puVar15[-1] = sVar9;\n        *(undefined1 *)((long)puVar15 + sVar9) = 0;\n        puVar7 = (undefined8 *)puVar7[-2];\n      }\n      else {\n        puVar15[-2] = puVar7;\n        puVar15[-1] = puVar13[-1];\n        *puVar15 = *puVar13;\n        puVar13[-2] = puVar13;\n        puVar7 = puVar13;\n      }\n      puVar13[-1] = 0;\n      *(undefined1 *)puVar7 = 0;\n      puVar15[2] = puVar13[2];\n      puVar15[3] = puVar13[3];\n      puVar13[-6] = uVar2;\n      puVar13[-5] = uVar4;\n      puVar7 = (undefined8 *)puVar13[-2];\n      puVar13[-4] = uVar5;\n      uStack_70 = (undefined4)uVar6;\n      *(undefined4 *)(puVar13 + -3) = uStack_70;\n      if (local_68 == &local_58) {\n        if (sVar1 != 0) {\n          if (sVar1 == 1) {\n            *(undefined1 *)puVar7 = (undefined1)local_58;\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n          else {\n            memcpy(puVar7,&local_58,sVar1);\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n        }\n        puVar13[-1] = sVar1;\n        *(undefined1 *)((long)puVar7 + sVar1) = 0;\n      }\n      else if (puVar7 == puVar13) {\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n      }\n      else {\n        uVar2 = *puVar13;\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n        if (puVar7 != (undefined8 *)0x0) {\n          local_68 = puVar7;\n          local_58 = uVar2;\n        }\n      }\n      *(undefined1 *)local_68 = 0;\n      puVar13[2] = local_48;\n      puVar13[3] = local_40;\n      if (local_68 != &local_58) {\n        FUN_002dac60();\n      }\n      puVar13 = puVar13 + 10;\n      puVar15 = puVar15 + 10;\n    } while (puVar13 !=\n             (undefined8 *)(param_2 + 0x80 + ((param_2 + -0x50) - param_1 & 0xfffffffffffffff0U)));" do (compound_statement "{\n      uVar2 = puVar15[-6];\n      uVar4 = puVar15[-5];\n      local_68 = (undefined8 *)puVar15[-2];\n      uVar5 = puVar15[-4];\n      uVar6 = puVar15[-3];\n      if (puVar15 == local_68) {\n        local_58 = *puVar15;\n        uStack_50 = puVar15[1];\n        local_68 = &local_58;\n      }\n      else {\n        local_58 = *puVar15;\n      }\n      sVar1 = puVar15[-1];\n      *(undefined1 *)puVar15 = 0;\n      puVar15[-1] = 0;\n      uVar3 = puVar13[-5];\n      local_48 = puVar15[2];\n      puVar15[-6] = puVar13[-6];\n      puVar15[-5] = uVar3;\n      local_40 = puVar15[3];\n      puVar15[-2] = puVar15;\n      puVar15[-4] = puVar13[-4];\n      *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n      puVar7 = (undefined8 *)puVar13[-2];\n      if (puVar13 == puVar7) {\n        sVar9 = puVar13[-1];\n        if (sVar9 != 0) {\n          if (sVar9 == 1) {\n            *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n            sVar9 = puVar13[-1];\n          }\n          else {\n            memcpy(puVar15,puVar13,sVar9);\n            sVar9 = puVar13[-1];\n          }\n        }\n        puVar15[-1] = sVar9;\n        *(undefined1 *)((long)puVar15 + sVar9) = 0;\n        puVar7 = (undefined8 *)puVar7[-2];\n      }\n      else {\n        puVar15[-2] = puVar7;\n        puVar15[-1] = puVar13[-1];\n        *puVar15 = *puVar13;\n        puVar13[-2] = puVar13;\n        puVar7 = puVar13;\n      }\n      puVar13[-1] = 0;\n      *(undefined1 *)puVar7 = 0;\n      puVar15[2] = puVar13[2];\n      puVar15[3] = puVar13[3];\n      puVar13[-6] = uVar2;\n      puVar13[-5] = uVar4;\n      puVar7 = (undefined8 *)puVar13[-2];\n      puVar13[-4] = uVar5;\n      uStack_70 = (undefined4)uVar6;\n      *(undefined4 *)(puVar13 + -3) = uStack_70;\n      if (local_68 == &local_58) {\n        if (sVar1 != 0) {\n          if (sVar1 == 1) {\n            *(undefined1 *)puVar7 = (undefined1)local_58;\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n          else {\n            memcpy(puVar7,&local_58,sVar1);\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n        }\n        puVar13[-1] = sVar1;\n        *(undefined1 *)((long)puVar7 + sVar1) = 0;\n      }\n      else if (puVar7 == puVar13) {\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n      }\n      else {\n        uVar2 = *puVar13;\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n        if (puVar7 != (undefined8 *)0x0) {\n          local_68 = puVar7;\n          local_58 = uVar2;\n        }\n      }\n      *(undefined1 *)local_68 = 0;\n      puVar13[2] = local_48;\n      puVar13[3] = local_40;\n      if (local_68 != &local_58) {\n        FUN_002dac60();\n      }\n      puVar13 = puVar13 + 10;\n      puVar15 = puVar15 + 10;\n    }" { (expression_statement "uVar2 = puVar15[-6];" (assignment_expression "uVar2 = puVar15[-6]" identifier = (subscript_expression "puVar15[-6]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = puVar15[-5];" (assignment_expression "uVar4 = puVar15[-5]" identifier = (subscript_expression "puVar15[-5]" identifier [ number_literal ])) ;) (expression_statement "local_68 = (undefined8 *)puVar15[-2];" (assignment_expression "local_68 = (undefined8 *)puVar15[-2]" identifier = (cast_expression "(undefined8 *)puVar15[-2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar15[-2]" identifier [ number_literal ]))) ;) (expression_statement "uVar5 = puVar15[-4];" (assignment_expression "uVar5 = puVar15[-4]" identifier = (subscript_expression "puVar15[-4]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = puVar15[-3];" (assignment_expression "uVar6 = puVar15[-3]" identifier = (subscript_expression "puVar15[-3]" identifier [ number_literal ])) ;) (if_statement "if (puVar15 == local_68) {\n        local_58 = *puVar15;\n        uStack_50 = puVar15[1];\n        local_68 = &local_58;\n      }\n      else {\n        local_58 = *puVar15;\n      }" if (parenthesized_expression "(puVar15 == local_68)" ( (binary_expression "puVar15 == local_68" identifier == identifier) )) (compound_statement "{\n        local_58 = *puVar15;\n        uStack_50 = puVar15[1];\n        local_68 = &local_58;\n      }" { (expression_statement "local_58 = *puVar15;" (assignment_expression "local_58 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;) (expression_statement "uStack_50 = puVar15[1];" (assignment_expression "uStack_50 = puVar15[1]" identifier = (subscript_expression "puVar15[1]" identifier [ number_literal ])) ;) (expression_statement "local_68 = &local_58;" (assignment_expression "local_68 = &local_58" identifier = (pointer_expression "&local_58" & identifier)) ;) }) (else_clause "else {\n        local_58 = *puVar15;\n      }" else (compound_statement "{\n        local_58 = *puVar15;\n      }" { (expression_statement "local_58 = *puVar15;" (assignment_expression "local_58 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;) }))) (expression_statement "sVar1 = puVar15[-1];" (assignment_expression "sVar1 = puVar15[-1]" identifier = (subscript_expression "puVar15[-1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)puVar15 = 0;" (assignment_expression "*(undefined1 *)puVar15 = 0" (pointer_expression "*(undefined1 *)puVar15" * (cast_expression "(undefined1 *)puVar15" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar15[-1] = 0;" (assignment_expression "puVar15[-1] = 0" (subscript_expression "puVar15[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar3 = puVar13[-5];" (assignment_expression "uVar3 = puVar13[-5]" identifier = (subscript_expression "puVar13[-5]" identifier [ number_literal ])) ;) (expression_statement "local_48 = puVar15[2];" (assignment_expression "local_48 = puVar15[2]" identifier = (subscript_expression "puVar15[2]" identifier [ number_literal ])) ;) (expression_statement "puVar15[-6] = puVar13[-6];" (assignment_expression "puVar15[-6] = puVar13[-6]" (subscript_expression "puVar15[-6]" identifier [ number_literal ]) = (subscript_expression "puVar13[-6]" identifier [ number_literal ])) ;) (expression_statement "puVar15[-5] = uVar3;" (assignment_expression "puVar15[-5] = uVar3" (subscript_expression "puVar15[-5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_40 = puVar15[3];" (assignment_expression "local_40 = puVar15[3]" identifier = (subscript_expression "puVar15[3]" identifier [ number_literal ])) ;) (expression_statement "puVar15[-2] = puVar15;" (assignment_expression "puVar15[-2] = puVar15" (subscript_expression "puVar15[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[-4] = puVar13[-4];" (assignment_expression "puVar15[-4] = puVar13[-4]" (subscript_expression "puVar15[-4]" identifier [ number_literal ]) = (subscript_expression "puVar13[-4]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);" (assignment_expression "*(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3)" (pointer_expression "*(undefined4 *)(puVar15 + -3)" * (cast_expression "(undefined4 *)(puVar15 + -3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -3)" ( (binary_expression "puVar15 + -3" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar13 + -3)" * (cast_expression "(undefined4 *)(puVar13 + -3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -3)" ( (binary_expression "puVar13 + -3" identifier + number_literal) ))))) ;) (expression_statement "puVar7 = (undefined8 *)puVar13[-2];" (assignment_expression "puVar7 = (undefined8 *)puVar13[-2]" identifier = (cast_expression "(undefined8 *)puVar13[-2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[-2]" identifier [ number_literal ]))) ;) (if_statement "if (puVar13 == puVar7) {\n        sVar9 = puVar13[-1];\n        if (sVar9 != 0) {\n          if (sVar9 == 1) {\n            *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n            sVar9 = puVar13[-1];\n          }\n          else {\n            memcpy(puVar15,puVar13,sVar9);\n            sVar9 = puVar13[-1];\n          }\n        }\n        puVar15[-1] = sVar9;\n        *(undefined1 *)((long)puVar15 + sVar9) = 0;\n        puVar7 = (undefined8 *)puVar7[-2];\n      }\n      else {\n        puVar15[-2] = puVar7;\n        puVar15[-1] = puVar13[-1];\n        *puVar15 = *puVar13;\n        puVar13[-2] = puVar13;\n        puVar7 = puVar13;\n      }" if (parenthesized_expression "(puVar13 == puVar7)" ( (binary_expression "puVar13 == puVar7" identifier == identifier) )) (compound_statement "{\n        sVar9 = puVar13[-1];\n        if (sVar9 != 0) {\n          if (sVar9 == 1) {\n            *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n            sVar9 = puVar13[-1];\n          }\n          else {\n            memcpy(puVar15,puVar13,sVar9);\n            sVar9 = puVar13[-1];\n          }\n        }\n        puVar15[-1] = sVar9;\n        *(undefined1 *)((long)puVar15 + sVar9) = 0;\n        puVar7 = (undefined8 *)puVar7[-2];\n      }" { (expression_statement "sVar9 = puVar13[-1];" (assignment_expression "sVar9 = puVar13[-1]" identifier = (subscript_expression "puVar13[-1]" identifier [ number_literal ])) ;) (if_statement "if (sVar9 != 0) {\n          if (sVar9 == 1) {\n            *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n            sVar9 = puVar13[-1];\n          }\n          else {\n            memcpy(puVar15,puVar13,sVar9);\n            sVar9 = puVar13[-1];\n          }\n        }" if (parenthesized_expression "(sVar9 != 0)" ( (binary_expression "sVar9 != 0" identifier != number_literal) )) (compound_statement "{\n          if (sVar9 == 1) {\n            *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n            sVar9 = puVar13[-1];\n          }\n          else {\n            memcpy(puVar15,puVar13,sVar9);\n            sVar9 = puVar13[-1];\n          }\n        }" { (if_statement "if (sVar9 == 1) {\n            *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n            sVar9 = puVar13[-1];\n          }\n          else {\n            memcpy(puVar15,puVar13,sVar9);\n            sVar9 = puVar13[-1];\n          }" if (parenthesized_expression "(sVar9 == 1)" ( (binary_expression "sVar9 == 1" identifier == number_literal) )) (compound_statement "{\n            *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n            sVar9 = puVar13[-1];\n          }" { (expression_statement "*(undefined1 *)puVar15 = *(undefined1 *)puVar13;" (assignment_expression "*(undefined1 *)puVar15 = *(undefined1 *)puVar13" (pointer_expression "*(undefined1 *)puVar15" * (cast_expression "(undefined1 *)puVar15" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined1 *)puVar13" * (cast_expression "(undefined1 *)puVar13" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "sVar9 = puVar13[-1];" (assignment_expression "sVar9 = puVar13[-1]" identifier = (subscript_expression "puVar13[-1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n            memcpy(puVar15,puVar13,sVar9);\n            sVar9 = puVar13[-1];\n          }" else (compound_statement "{\n            memcpy(puVar15,puVar13,sVar9);\n            sVar9 = puVar13[-1];\n          }" { (expression_statement "memcpy(puVar15,puVar13,sVar9);" (call_expression "memcpy(puVar15,puVar13,sVar9)" identifier (argument_list "(puVar15,puVar13,sVar9)" ( identifier , identifier , identifier ))) ;) (expression_statement "sVar9 = puVar13[-1];" (assignment_expression "sVar9 = puVar13[-1]" identifier = (subscript_expression "puVar13[-1]" identifier [ number_literal ])) ;) }))) })) (expression_statement "puVar15[-1] = sVar9;" (assignment_expression "puVar15[-1] = sVar9" (subscript_expression "puVar15[-1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((long)puVar15 + sVar9) = 0;" (assignment_expression "*(undefined1 *)((long)puVar15 + sVar9) = 0" (pointer_expression "*(undefined1 *)((long)puVar15 + sVar9)" * (cast_expression "(undefined1 *)((long)puVar15 + sVar9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar15 + sVar9)" ( (binary_expression "(long)puVar15 + sVar9" (cast_expression "(long)puVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "puVar7 = (undefined8 *)puVar7[-2];" (assignment_expression "puVar7 = (undefined8 *)puVar7[-2]" identifier = (cast_expression "(undefined8 *)puVar7[-2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar7[-2]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n        puVar15[-2] = puVar7;\n        puVar15[-1] = puVar13[-1];\n        *puVar15 = *puVar13;\n        puVar13[-2] = puVar13;\n        puVar7 = puVar13;\n      }" else (compound_statement "{\n        puVar15[-2] = puVar7;\n        puVar15[-1] = puVar13[-1];\n        *puVar15 = *puVar13;\n        puVar13[-2] = puVar13;\n        puVar7 = puVar13;\n      }" { (expression_statement "puVar15[-2] = puVar7;" (assignment_expression "puVar15[-2] = puVar7" (subscript_expression "puVar15[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[-1] = puVar13[-1];" (assignment_expression "puVar15[-1] = puVar13[-1]" (subscript_expression "puVar15[-1]" identifier [ number_literal ]) = (subscript_expression "puVar13[-1]" identifier [ number_literal ])) ;) (expression_statement "*puVar15 = *puVar13;" (assignment_expression "*puVar15 = *puVar13" (pointer_expression "*puVar15" * identifier) = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "puVar13[-2] = puVar13;" (assignment_expression "puVar13[-2] = puVar13" (subscript_expression "puVar13[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7 = puVar13;" (assignment_expression "puVar7 = puVar13" identifier = identifier) ;) }))) (expression_statement "puVar13[-1] = 0;" (assignment_expression "puVar13[-1] = 0" (subscript_expression "puVar13[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)puVar7 = 0;" (assignment_expression "*(undefined1 *)puVar7 = 0" (pointer_expression "*(undefined1 *)puVar7" * (cast_expression "(undefined1 *)puVar7" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar15[2] = puVar13[2];" (assignment_expression "puVar15[2] = puVar13[2]" (subscript_expression "puVar15[2]" identifier [ number_literal ]) = (subscript_expression "puVar13[2]" identifier [ number_literal ])) ;) (expression_statement "puVar15[3] = puVar13[3];" (assignment_expression "puVar15[3] = puVar13[3]" (subscript_expression "puVar15[3]" identifier [ number_literal ]) = (subscript_expression "puVar13[3]" identifier [ number_literal ])) ;) (expression_statement "puVar13[-6] = uVar2;" (assignment_expression "puVar13[-6] = uVar2" (subscript_expression "puVar13[-6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[-5] = uVar4;" (assignment_expression "puVar13[-5] = uVar4" (subscript_expression "puVar13[-5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7 = (undefined8 *)puVar13[-2];" (assignment_expression "puVar7 = (undefined8 *)puVar13[-2]" identifier = (cast_expression "(undefined8 *)puVar13[-2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[-2]" identifier [ number_literal ]))) ;) (expression_statement "puVar13[-4] = uVar5;" (assignment_expression "puVar13[-4] = uVar5" (subscript_expression "puVar13[-4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uStack_70 = (undefined4)uVar6;" (assignment_expression "uStack_70 = (undefined4)uVar6" identifier = (cast_expression "(undefined4)uVar6" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) (expression_statement "*(undefined4 *)(puVar13 + -3) = uStack_70;" (assignment_expression "*(undefined4 *)(puVar13 + -3) = uStack_70" (pointer_expression "*(undefined4 *)(puVar13 + -3)" * (cast_expression "(undefined4 *)(puVar13 + -3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -3)" ( (binary_expression "puVar13 + -3" identifier + number_literal) )))) = identifier) ;) (if_statement "if (local_68 == &local_58) {\n        if (sVar1 != 0) {\n          if (sVar1 == 1) {\n            *(undefined1 *)puVar7 = (undefined1)local_58;\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n          else {\n            memcpy(puVar7,&local_58,sVar1);\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n        }\n        puVar13[-1] = sVar1;\n        *(undefined1 *)((long)puVar7 + sVar1) = 0;\n      }\n      else if (puVar7 == puVar13) {\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n      }\n      else {\n        uVar2 = *puVar13;\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n        if (puVar7 != (undefined8 *)0x0) {\n          local_68 = puVar7;\n          local_58 = uVar2;\n        }\n      }" if (parenthesized_expression "(local_68 == &local_58)" ( (binary_expression "local_68 == &local_58" identifier == (pointer_expression "&local_58" & identifier)) )) (compound_statement "{\n        if (sVar1 != 0) {\n          if (sVar1 == 1) {\n            *(undefined1 *)puVar7 = (undefined1)local_58;\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n          else {\n            memcpy(puVar7,&local_58,sVar1);\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n        }\n        puVar13[-1] = sVar1;\n        *(undefined1 *)((long)puVar7 + sVar1) = 0;\n      }" { (if_statement "if (sVar1 != 0) {\n          if (sVar1 == 1) {\n            *(undefined1 *)puVar7 = (undefined1)local_58;\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n          else {\n            memcpy(puVar7,&local_58,sVar1);\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n        }" if (parenthesized_expression "(sVar1 != 0)" ( (binary_expression "sVar1 != 0" identifier != number_literal) )) (compound_statement "{\n          if (sVar1 == 1) {\n            *(undefined1 *)puVar7 = (undefined1)local_58;\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n          else {\n            memcpy(puVar7,&local_58,sVar1);\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n        }" { (if_statement "if (sVar1 == 1) {\n            *(undefined1 *)puVar7 = (undefined1)local_58;\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n          else {\n            memcpy(puVar7,&local_58,sVar1);\n            puVar7 = (undefined8 *)puVar13[-2];\n          }" if (parenthesized_expression "(sVar1 == 1)" ( (binary_expression "sVar1 == 1" identifier == number_literal) )) (compound_statement "{\n            *(undefined1 *)puVar7 = (undefined1)local_58;\n            puVar7 = (undefined8 *)puVar13[-2];\n          }" { (expression_statement "*(undefined1 *)puVar7 = (undefined1)local_58;" (assignment_expression "*(undefined1 *)puVar7 = (undefined1)local_58" (pointer_expression "*(undefined1 *)puVar7" * (cast_expression "(undefined1 *)puVar7" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(undefined1)local_58" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "puVar7 = (undefined8 *)puVar13[-2];" (assignment_expression "puVar7 = (undefined8 *)puVar13[-2]" identifier = (cast_expression "(undefined8 *)puVar13[-2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[-2]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n            memcpy(puVar7,&local_58,sVar1);\n            puVar7 = (undefined8 *)puVar13[-2];\n          }" else (compound_statement "{\n            memcpy(puVar7,&local_58,sVar1);\n            puVar7 = (undefined8 *)puVar13[-2];\n          }" { (expression_statement "memcpy(puVar7,&local_58,sVar1);" (call_expression "memcpy(puVar7,&local_58,sVar1)" identifier (argument_list "(puVar7,&local_58,sVar1)" ( identifier , (pointer_expression "&local_58" & identifier) , identifier ))) ;) (expression_statement "puVar7 = (undefined8 *)puVar13[-2];" (assignment_expression "puVar7 = (undefined8 *)puVar13[-2]" identifier = (cast_expression "(undefined8 *)puVar13[-2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[-2]" identifier [ number_literal ]))) ;) }))) })) (expression_statement "puVar13[-1] = sVar1;" (assignment_expression "puVar13[-1] = sVar1" (subscript_expression "puVar13[-1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((long)puVar7 + sVar1) = 0;" (assignment_expression "*(undefined1 *)((long)puVar7 + sVar1) = 0" (pointer_expression "*(undefined1 *)((long)puVar7 + sVar1)" * (cast_expression "(undefined1 *)((long)puVar7 + sVar1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar7 + sVar1)" ( (binary_expression "(long)puVar7 + sVar1" (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = number_literal) ;) }) (else_clause "else if (puVar7 == puVar13) {\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n      }\n      else {\n        uVar2 = *puVar13;\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n        if (puVar7 != (undefined8 *)0x0) {\n          local_68 = puVar7;\n          local_58 = uVar2;\n        }\n      }" else (if_statement "if (puVar7 == puVar13) {\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n      }\n      else {\n        uVar2 = *puVar13;\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n        if (puVar7 != (undefined8 *)0x0) {\n          local_68 = puVar7;\n          local_58 = uVar2;\n        }\n      }" if (parenthesized_expression "(puVar7 == puVar13)" ( (binary_expression "puVar7 == puVar13" identifier == identifier) )) (compound_statement "{\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n      }" { (expression_statement "puVar13[-2] = local_68;" (assignment_expression "puVar13[-2] = local_68" (subscript_expression "puVar13[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[-1] = sVar1;" (assignment_expression "puVar13[-1] = sVar1" (subscript_expression "puVar13[-1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar13 = local_58;" (assignment_expression "*puVar13 = local_58" (pointer_expression "*puVar13" * identifier) = identifier) ;) (expression_statement "local_68 = &local_58;" (assignment_expression "local_68 = &local_58" identifier = (pointer_expression "&local_58" & identifier)) ;) }) (else_clause "else {\n        uVar2 = *puVar13;\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n        if (puVar7 != (undefined8 *)0x0) {\n          local_68 = puVar7;\n          local_58 = uVar2;\n        }\n      }" else (compound_statement "{\n        uVar2 = *puVar13;\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n        if (puVar7 != (undefined8 *)0x0) {\n          local_68 = puVar7;\n          local_58 = uVar2;\n        }\n      }" { (expression_statement "uVar2 = *puVar13;" (assignment_expression "uVar2 = *puVar13" identifier = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "puVar13[-2] = local_68;" (assignment_expression "puVar13[-2] = local_68" (subscript_expression "puVar13[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[-1] = sVar1;" (assignment_expression "puVar13[-1] = sVar1" (subscript_expression "puVar13[-1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar13 = local_58;" (assignment_expression "*puVar13 = local_58" (pointer_expression "*puVar13" * identifier) = identifier) ;) (expression_statement "local_68 = &local_58;" (assignment_expression "local_68 = &local_58" identifier = (pointer_expression "&local_58" & identifier)) ;) (if_statement "if (puVar7 != (undefined8 *)0x0) {\n          local_68 = puVar7;\n          local_58 = uVar2;\n        }" if (parenthesized_expression "(puVar7 != (undefined8 *)0x0)" ( (binary_expression "puVar7 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_68 = puVar7;\n          local_58 = uVar2;\n        }" { (expression_statement "local_68 = puVar7;" (assignment_expression "local_68 = puVar7" identifier = identifier) ;) (expression_statement "local_58 = uVar2;" (assignment_expression "local_58 = uVar2" identifier = identifier) ;) })) }))))) (expression_statement "*(undefined1 *)local_68 = 0;" (assignment_expression "*(undefined1 *)local_68 = 0" (pointer_expression "*(undefined1 *)local_68" * (cast_expression "(undefined1 *)local_68" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar13[2] = local_48;" (assignment_expression "puVar13[2] = local_48" (subscript_expression "puVar13[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[3] = local_40;" (assignment_expression "puVar13[3] = local_40" (subscript_expression "puVar13[3]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (local_68 != &local_58) {\n        FUN_002dac60();\n      }" if (parenthesized_expression "(local_68 != &local_58)" ( (binary_expression "local_68 != &local_58" identifier != (pointer_expression "&local_58" & identifier)) )) (compound_statement "{\n        FUN_002dac60();\n      }" { (expression_statement "FUN_002dac60();" (call_expression "FUN_002dac60()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "puVar13 = puVar13 + 10;" (assignment_expression "puVar13 = puVar13 + 10" identifier = (binary_expression "puVar13 + 10" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar15 + 10;" (assignment_expression "puVar15 = puVar15 + 10" identifier = (binary_expression "puVar15 + 10" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar13 !=\n             (undefined8 *)(param_2 + 0x80 + ((param_2 + -0x50) - param_1 & 0xfffffffffffffff0U)))" ( (binary_expression "puVar13 !=\n             (undefined8 *)(param_2 + 0x80 + ((param_2 + -0x50) - param_1 & 0xfffffffffffffff0U))" identifier != (cast_expression "(undefined8 *)(param_2 + 0x80 + ((param_2 + -0x50) - param_1 & 0xfffffffffffffff0U))" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x80 + ((param_2 + -0x50) - param_1 & 0xfffffffffffffff0U))" ( (binary_expression "param_2 + 0x80 + ((param_2 + -0x50) - param_1 & 0xfffffffffffffff0U)" (binary_expression "param_2 + 0x80" identifier + number_literal) + (parenthesized_expression "((param_2 + -0x50) - param_1 & 0xfffffffffffffff0U)" ( (binary_expression "(param_2 + -0x50) - param_1 & 0xfffffffffffffff0U" (binary_expression "(param_2 + -0x50) - param_1" (parenthesized_expression "(param_2 + -0x50)" ( (binary_expression "param_2 + -0x50" identifier + number_literal) )) - identifier) & number_literal) ))) )))) )) ;) (return_statement "return param_2;" return identifier ;) })) (expression_statement "lVar14 = local_a8 + lVar10 * 0x3333333333333333;" (assignment_expression "lVar14 = local_a8 + lVar10 * 0x3333333333333333" identifier = (binary_expression "local_a8 + lVar10 * 0x3333333333333333" identifier + (binary_expression "lVar10 * 0x3333333333333333" identifier * number_literal))) ;) (expression_statement "lVar12 = lVar11;" (assignment_expression "lVar12 = lVar11" identifier = identifier) ;) (expression_statement "local_a0 = param_1;" (assignment_expression "local_a0 = param_1" identifier = identifier) ;) (if_statement "if (lVar14 == lVar11 || SBORROW8(lVar14,lVar11) != lVar14 + lVar10 * 0x3333333333333333 < 0)\n  goto LAB_0025fb1a;" if (parenthesized_expression "(lVar14 == lVar11 || SBORROW8(lVar14,lVar11) != lVar14 + lVar10 * 0x3333333333333333 < 0)" ( (binary_expression "lVar14 == lVar11 || SBORROW8(lVar14,lVar11) != lVar14 + lVar10 * 0x3333333333333333 < 0" (binary_expression "lVar14 == lVar11" identifier == identifier) || (binary_expression "SBORROW8(lVar14,lVar11) != lVar14 + lVar10 * 0x3333333333333333 < 0" (call_expression "SBORROW8(lVar14,lVar11)" identifier (argument_list "(lVar14,lVar11)" ( identifier , identifier ))) != (binary_expression "lVar14 + lVar10 * 0x3333333333333333 < 0" (binary_expression "lVar14 + lVar10 * 0x3333333333333333" identifier + (binary_expression "lVar10 * 0x3333333333333333" identifier * number_literal)) < number_literal))) )) (goto_statement "goto LAB_0025fb1a;" goto statement_identifier ;)) (do_statement "do {\n    if (0 < lVar14) {\n      lVar10 = 0;\n      puVar13 = (undefined8 *)(local_a0 + 0x30 + lVar11 * 0x50);\n      puVar15 = (undefined8 *)(local_a0 + 0x30);\n      do {\n        uVar2 = puVar15[-6];\n        uVar4 = puVar15[-5];\n        uVar5 = puVar15[-4];\n        uVar6 = puVar15[-3];\n        local_68 = (undefined8 *)puVar15[-2];\n        if (local_68 == puVar15) {\n          local_58 = *puVar15;\n          uStack_50 = puVar15[1];\n          local_68 = &local_58;\n        }\n        else {\n          local_58 = *puVar15;\n        }\n        sVar1 = puVar15[-1];\n        *(undefined1 *)puVar15 = 0;\n        puVar15[-1] = 0;\n        uVar3 = puVar13[-5];\n        local_48 = puVar15[2];\n        puVar15[-6] = puVar13[-6];\n        puVar15[-5] = uVar3;\n        local_40 = puVar15[3];\n        puVar15[-2] = puVar15;\n        puVar15[-4] = puVar13[-4];\n        *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n        if ((undefined8 *)puVar13[-2] == puVar13) {\n          sVar9 = puVar13[-1];\n          if (sVar9 != 0) {\n            if (sVar9 == 1) {\n              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n              sVar9 = puVar13[-1];\n            }\n            else {\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }\n          }\n          puVar15[-1] = sVar9;\n          *(undefined1 *)((long)puVar15 + sVar9) = 0;\n          puVar7 = (undefined8 *)puVar13[-2];\n        }\n        else {\n          puVar15[-2] = (undefined8 *)puVar13[-2];\n          puVar15[-1] = puVar13[-1];\n          *puVar15 = *puVar13;\n          puVar13[-2] = puVar13;\n          puVar7 = puVar13;\n        }\n        puVar13[-1] = 0;\n        *(undefined1 *)puVar7 = 0;\n        puVar15[2] = puVar13[2];\n        puVar15[3] = puVar13[3];\n        puVar13[-6] = uVar2;\n        puVar13[-5] = uVar4;\n        puVar7 = (undefined8 *)puVar13[-2];\n        puVar13[-4] = uVar5;\n        uStack_70 = (undefined4)uVar6;\n        *(undefined4 *)(puVar13 + -3) = uStack_70;\n        if (local_68 == &local_58) {\n          if (sVar1 != 0) {\n            if (sVar1 == 1) {\n              *(undefined1 *)puVar7 = (undefined1)local_58;\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n            else {\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n          }\n          puVar13[-1] = sVar1;\n          *(undefined1 *)((long)puVar7 + sVar1) = 0;\n          uVar2 = local_58;\n        }\n        else {\n          if (puVar7 == puVar13) {\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n          }\n          else {\n            uVar2 = *puVar13;\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n            local_68 = puVar7;\n            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;\n          }\n          local_68 = &local_58;\n          uVar2 = local_58;\n        }\nLAB_0025f996:\n        local_58 = uVar2;\n        *(undefined1 *)local_68 = 0;\n        puVar13[2] = local_48;\n        puVar13[3] = local_40;\n        if (local_68 != &local_58) {\n          FUN_002dac60();\n        }\n        lVar10 = lVar10 + 1;\n        puVar15 = puVar15 + 10;\n        puVar13 = puVar13 + 10;\n      } while (lVar14 != lVar10);\n      local_a0 = local_a0 + lVar14 * 0x50;\n    }\n    if (local_a8 % lVar11 == 0) {\n      return lVar8;\n    }\n    lVar12 = lVar11 - local_a8 % lVar11;\n    lVar10 = lVar11;\n    while (lVar14 = lVar10 - lVar12, lVar11 = lVar12, local_a8 = lVar10, lVar14 <= lVar12) {\nLAB_0025fb1a:\n      lVar10 = lVar14;\n      lVar11 = local_a8 * 0x50 + local_a0;\n      local_a0 = lVar11 + lVar10 * -0x50;\n      if (0 < lVar12) {\n        puVar15 = (undefined8 *)(local_a0 + -0x20);\n        puVar13 = (undefined8 *)(lVar11 + -0x20);\n        lVar11 = 0;\n        do {\n          uVar2 = puVar15[-6];\n          uVar4 = puVar15[-5];\n          uVar5 = puVar15[-4];\n          uVar6 = puVar15[-3];\n          local_68 = (undefined8 *)puVar15[-2];\n          if (local_68 == puVar15) {\n            local_58 = *puVar15;\n            uStack_50 = puVar15[1];\n            local_68 = &local_58;\n          }\n          else {\n            local_58 = *puVar15;\n          }\n          sVar1 = puVar15[-1];\n          *(undefined1 *)puVar15 = 0;\n          puVar15[-1] = 0;\n          uVar3 = puVar13[-5];\n          local_48 = puVar15[2];\n          puVar15[-6] = puVar13[-6];\n          puVar15[-5] = uVar3;\n          local_40 = puVar15[3];\n          puVar15[-2] = puVar15;\n          puVar15[-4] = puVar13[-4];\n          *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n          if ((undefined8 *)puVar13[-2] == puVar13) {\n            sVar9 = puVar13[-1];\n            if (sVar9 != 0) {\n              if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }\n            }\n            puVar15[-1] = sVar9;\n            *(undefined1 *)(puVar15[-2] + sVar9) = 0;\n          }\n          else {\n            puVar15[-2] = (undefined8 *)puVar13[-2];\n            puVar15[-1] = puVar13[-1];\n            *puVar15 = *puVar13;\n            puVar13[-2] = puVar13;\n          }\n          puVar13[-1] = 0;\n          *(undefined1 *)puVar13[-2] = 0;\n          puVar15[2] = puVar13[2];\n          puVar15[3] = puVar13[3];\n          puVar7 = (undefined8 *)puVar13[-2];\n          puVar13[-6] = uVar2;\n          puVar13[-5] = uVar4;\n          puVar13[-4] = uVar5;\n          uStack_70 = (undefined4)uVar6;\n          *(undefined4 *)(puVar13 + -3) = uStack_70;\n          if (local_68 == &local_58) {\n            if (sVar1 != 0) {\n              if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n            }\n            puVar13[-1] = sVar1;\n            *(undefined1 *)((long)puVar7 + sVar1) = 0;\n            uVar2 = local_58;\n          }\n          else {\n            if (puVar7 == puVar13) {\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }\n            else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }\n            local_68 = &local_58;\n            uVar2 = local_58;\n          }\nLAB_0025fc78:\n          local_58 = uVar2;\n          *(undefined1 *)local_68 = 0;\n          puVar13[2] = local_48;\n          puVar13[3] = local_40;\n          if (local_68 != &local_58) {\n            FUN_002dac60();\n          }\n          lVar11 = lVar11 + 1;\n          puVar15 = puVar15 + -10;\n          puVar13 = puVar13 + -10;\n        } while (lVar11 != lVar12);\n        local_a0 = local_a0 + lVar11 * -0x50;\n      }\n      lVar12 = local_a8 % lVar10;\n      if (lVar12 == 0) {\n        return lVar8;\n      }\n    }\n  } while( true );" do (compound_statement "{\n    if (0 < lVar14) {\n      lVar10 = 0;\n      puVar13 = (undefined8 *)(local_a0 + 0x30 + lVar11 * 0x50);\n      puVar15 = (undefined8 *)(local_a0 + 0x30);\n      do {\n        uVar2 = puVar15[-6];\n        uVar4 = puVar15[-5];\n        uVar5 = puVar15[-4];\n        uVar6 = puVar15[-3];\n        local_68 = (undefined8 *)puVar15[-2];\n        if (local_68 == puVar15) {\n          local_58 = *puVar15;\n          uStack_50 = puVar15[1];\n          local_68 = &local_58;\n        }\n        else {\n          local_58 = *puVar15;\n        }\n        sVar1 = puVar15[-1];\n        *(undefined1 *)puVar15 = 0;\n        puVar15[-1] = 0;\n        uVar3 = puVar13[-5];\n        local_48 = puVar15[2];\n        puVar15[-6] = puVar13[-6];\n        puVar15[-5] = uVar3;\n        local_40 = puVar15[3];\n        puVar15[-2] = puVar15;\n        puVar15[-4] = puVar13[-4];\n        *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n        if ((undefined8 *)puVar13[-2] == puVar13) {\n          sVar9 = puVar13[-1];\n          if (sVar9 != 0) {\n            if (sVar9 == 1) {\n              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n              sVar9 = puVar13[-1];\n            }\n            else {\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }\n          }\n          puVar15[-1] = sVar9;\n          *(undefined1 *)((long)puVar15 + sVar9) = 0;\n          puVar7 = (undefined8 *)puVar13[-2];\n        }\n        else {\n          puVar15[-2] = (undefined8 *)puVar13[-2];\n          puVar15[-1] = puVar13[-1];\n          *puVar15 = *puVar13;\n          puVar13[-2] = puVar13;\n          puVar7 = puVar13;\n        }\n        puVar13[-1] = 0;\n        *(undefined1 *)puVar7 = 0;\n        puVar15[2] = puVar13[2];\n        puVar15[3] = puVar13[3];\n        puVar13[-6] = uVar2;\n        puVar13[-5] = uVar4;\n        puVar7 = (undefined8 *)puVar13[-2];\n        puVar13[-4] = uVar5;\n        uStack_70 = (undefined4)uVar6;\n        *(undefined4 *)(puVar13 + -3) = uStack_70;\n        if (local_68 == &local_58) {\n          if (sVar1 != 0) {\n            if (sVar1 == 1) {\n              *(undefined1 *)puVar7 = (undefined1)local_58;\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n            else {\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n          }\n          puVar13[-1] = sVar1;\n          *(undefined1 *)((long)puVar7 + sVar1) = 0;\n          uVar2 = local_58;\n        }\n        else {\n          if (puVar7 == puVar13) {\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n          }\n          else {\n            uVar2 = *puVar13;\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n            local_68 = puVar7;\n            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;\n          }\n          local_68 = &local_58;\n          uVar2 = local_58;\n        }\nLAB_0025f996:\n        local_58 = uVar2;\n        *(undefined1 *)local_68 = 0;\n        puVar13[2] = local_48;\n        puVar13[3] = local_40;\n        if (local_68 != &local_58) {\n          FUN_002dac60();\n        }\n        lVar10 = lVar10 + 1;\n        puVar15 = puVar15 + 10;\n        puVar13 = puVar13 + 10;\n      } while (lVar14 != lVar10);\n      local_a0 = local_a0 + lVar14 * 0x50;\n    }\n    if (local_a8 % lVar11 == 0) {\n      return lVar8;\n    }\n    lVar12 = lVar11 - local_a8 % lVar11;\n    lVar10 = lVar11;\n    while (lVar14 = lVar10 - lVar12, lVar11 = lVar12, local_a8 = lVar10, lVar14 <= lVar12) {\nLAB_0025fb1a:\n      lVar10 = lVar14;\n      lVar11 = local_a8 * 0x50 + local_a0;\n      local_a0 = lVar11 + lVar10 * -0x50;\n      if (0 < lVar12) {\n        puVar15 = (undefined8 *)(local_a0 + -0x20);\n        puVar13 = (undefined8 *)(lVar11 + -0x20);\n        lVar11 = 0;\n        do {\n          uVar2 = puVar15[-6];\n          uVar4 = puVar15[-5];\n          uVar5 = puVar15[-4];\n          uVar6 = puVar15[-3];\n          local_68 = (undefined8 *)puVar15[-2];\n          if (local_68 == puVar15) {\n            local_58 = *puVar15;\n            uStack_50 = puVar15[1];\n            local_68 = &local_58;\n          }\n          else {\n            local_58 = *puVar15;\n          }\n          sVar1 = puVar15[-1];\n          *(undefined1 *)puVar15 = 0;\n          puVar15[-1] = 0;\n          uVar3 = puVar13[-5];\n          local_48 = puVar15[2];\n          puVar15[-6] = puVar13[-6];\n          puVar15[-5] = uVar3;\n          local_40 = puVar15[3];\n          puVar15[-2] = puVar15;\n          puVar15[-4] = puVar13[-4];\n          *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n          if ((undefined8 *)puVar13[-2] == puVar13) {\n            sVar9 = puVar13[-1];\n            if (sVar9 != 0) {\n              if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }\n            }\n            puVar15[-1] = sVar9;\n            *(undefined1 *)(puVar15[-2] + sVar9) = 0;\n          }\n          else {\n            puVar15[-2] = (undefined8 *)puVar13[-2];\n            puVar15[-1] = puVar13[-1];\n            *puVar15 = *puVar13;\n            puVar13[-2] = puVar13;\n          }\n          puVar13[-1] = 0;\n          *(undefined1 *)puVar13[-2] = 0;\n          puVar15[2] = puVar13[2];\n          puVar15[3] = puVar13[3];\n          puVar7 = (undefined8 *)puVar13[-2];\n          puVar13[-6] = uVar2;\n          puVar13[-5] = uVar4;\n          puVar13[-4] = uVar5;\n          uStack_70 = (undefined4)uVar6;\n          *(undefined4 *)(puVar13 + -3) = uStack_70;\n          if (local_68 == &local_58) {\n            if (sVar1 != 0) {\n              if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n            }\n            puVar13[-1] = sVar1;\n            *(undefined1 *)((long)puVar7 + sVar1) = 0;\n            uVar2 = local_58;\n          }\n          else {\n            if (puVar7 == puVar13) {\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }\n            else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }\n            local_68 = &local_58;\n            uVar2 = local_58;\n          }\nLAB_0025fc78:\n          local_58 = uVar2;\n          *(undefined1 *)local_68 = 0;\n          puVar13[2] = local_48;\n          puVar13[3] = local_40;\n          if (local_68 != &local_58) {\n            FUN_002dac60();\n          }\n          lVar11 = lVar11 + 1;\n          puVar15 = puVar15 + -10;\n          puVar13 = puVar13 + -10;\n        } while (lVar11 != lVar12);\n        local_a0 = local_a0 + lVar11 * -0x50;\n      }\n      lVar12 = local_a8 % lVar10;\n      if (lVar12 == 0) {\n        return lVar8;\n      }\n    }\n  }" { (if_statement "if (0 < lVar14) {\n      lVar10 = 0;\n      puVar13 = (undefined8 *)(local_a0 + 0x30 + lVar11 * 0x50);\n      puVar15 = (undefined8 *)(local_a0 + 0x30);\n      do {\n        uVar2 = puVar15[-6];\n        uVar4 = puVar15[-5];\n        uVar5 = puVar15[-4];\n        uVar6 = puVar15[-3];\n        local_68 = (undefined8 *)puVar15[-2];\n        if (local_68 == puVar15) {\n          local_58 = *puVar15;\n          uStack_50 = puVar15[1];\n          local_68 = &local_58;\n        }\n        else {\n          local_58 = *puVar15;\n        }\n        sVar1 = puVar15[-1];\n        *(undefined1 *)puVar15 = 0;\n        puVar15[-1] = 0;\n        uVar3 = puVar13[-5];\n        local_48 = puVar15[2];\n        puVar15[-6] = puVar13[-6];\n        puVar15[-5] = uVar3;\n        local_40 = puVar15[3];\n        puVar15[-2] = puVar15;\n        puVar15[-4] = puVar13[-4];\n        *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n        if ((undefined8 *)puVar13[-2] == puVar13) {\n          sVar9 = puVar13[-1];\n          if (sVar9 != 0) {\n            if (sVar9 == 1) {\n              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n              sVar9 = puVar13[-1];\n            }\n            else {\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }\n          }\n          puVar15[-1] = sVar9;\n          *(undefined1 *)((long)puVar15 + sVar9) = 0;\n          puVar7 = (undefined8 *)puVar13[-2];\n        }\n        else {\n          puVar15[-2] = (undefined8 *)puVar13[-2];\n          puVar15[-1] = puVar13[-1];\n          *puVar15 = *puVar13;\n          puVar13[-2] = puVar13;\n          puVar7 = puVar13;\n        }\n        puVar13[-1] = 0;\n        *(undefined1 *)puVar7 = 0;\n        puVar15[2] = puVar13[2];\n        puVar15[3] = puVar13[3];\n        puVar13[-6] = uVar2;\n        puVar13[-5] = uVar4;\n        puVar7 = (undefined8 *)puVar13[-2];\n        puVar13[-4] = uVar5;\n        uStack_70 = (undefined4)uVar6;\n        *(undefined4 *)(puVar13 + -3) = uStack_70;\n        if (local_68 == &local_58) {\n          if (sVar1 != 0) {\n            if (sVar1 == 1) {\n              *(undefined1 *)puVar7 = (undefined1)local_58;\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n            else {\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n          }\n          puVar13[-1] = sVar1;\n          *(undefined1 *)((long)puVar7 + sVar1) = 0;\n          uVar2 = local_58;\n        }\n        else {\n          if (puVar7 == puVar13) {\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n          }\n          else {\n            uVar2 = *puVar13;\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n            local_68 = puVar7;\n            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;\n          }\n          local_68 = &local_58;\n          uVar2 = local_58;\n        }\nLAB_0025f996:\n        local_58 = uVar2;\n        *(undefined1 *)local_68 = 0;\n        puVar13[2] = local_48;\n        puVar13[3] = local_40;\n        if (local_68 != &local_58) {\n          FUN_002dac60();\n        }\n        lVar10 = lVar10 + 1;\n        puVar15 = puVar15 + 10;\n        puVar13 = puVar13 + 10;\n      } while (lVar14 != lVar10);\n      local_a0 = local_a0 + lVar14 * 0x50;\n    }" if (parenthesized_expression "(0 < lVar14)" ( (binary_expression "0 < lVar14" number_literal < identifier) )) (compound_statement "{\n      lVar10 = 0;\n      puVar13 = (undefined8 *)(local_a0 + 0x30 + lVar11 * 0x50);\n      puVar15 = (undefined8 *)(local_a0 + 0x30);\n      do {\n        uVar2 = puVar15[-6];\n        uVar4 = puVar15[-5];\n        uVar5 = puVar15[-4];\n        uVar6 = puVar15[-3];\n        local_68 = (undefined8 *)puVar15[-2];\n        if (local_68 == puVar15) {\n          local_58 = *puVar15;\n          uStack_50 = puVar15[1];\n          local_68 = &local_58;\n        }\n        else {\n          local_58 = *puVar15;\n        }\n        sVar1 = puVar15[-1];\n        *(undefined1 *)puVar15 = 0;\n        puVar15[-1] = 0;\n        uVar3 = puVar13[-5];\n        local_48 = puVar15[2];\n        puVar15[-6] = puVar13[-6];\n        puVar15[-5] = uVar3;\n        local_40 = puVar15[3];\n        puVar15[-2] = puVar15;\n        puVar15[-4] = puVar13[-4];\n        *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n        if ((undefined8 *)puVar13[-2] == puVar13) {\n          sVar9 = puVar13[-1];\n          if (sVar9 != 0) {\n            if (sVar9 == 1) {\n              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n              sVar9 = puVar13[-1];\n            }\n            else {\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }\n          }\n          puVar15[-1] = sVar9;\n          *(undefined1 *)((long)puVar15 + sVar9) = 0;\n          puVar7 = (undefined8 *)puVar13[-2];\n        }\n        else {\n          puVar15[-2] = (undefined8 *)puVar13[-2];\n          puVar15[-1] = puVar13[-1];\n          *puVar15 = *puVar13;\n          puVar13[-2] = puVar13;\n          puVar7 = puVar13;\n        }\n        puVar13[-1] = 0;\n        *(undefined1 *)puVar7 = 0;\n        puVar15[2] = puVar13[2];\n        puVar15[3] = puVar13[3];\n        puVar13[-6] = uVar2;\n        puVar13[-5] = uVar4;\n        puVar7 = (undefined8 *)puVar13[-2];\n        puVar13[-4] = uVar5;\n        uStack_70 = (undefined4)uVar6;\n        *(undefined4 *)(puVar13 + -3) = uStack_70;\n        if (local_68 == &local_58) {\n          if (sVar1 != 0) {\n            if (sVar1 == 1) {\n              *(undefined1 *)puVar7 = (undefined1)local_58;\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n            else {\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n          }\n          puVar13[-1] = sVar1;\n          *(undefined1 *)((long)puVar7 + sVar1) = 0;\n          uVar2 = local_58;\n        }\n        else {\n          if (puVar7 == puVar13) {\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n          }\n          else {\n            uVar2 = *puVar13;\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n            local_68 = puVar7;\n            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;\n          }\n          local_68 = &local_58;\n          uVar2 = local_58;\n        }\nLAB_0025f996:\n        local_58 = uVar2;\n        *(undefined1 *)local_68 = 0;\n        puVar13[2] = local_48;\n        puVar13[3] = local_40;\n        if (local_68 != &local_58) {\n          FUN_002dac60();\n        }\n        lVar10 = lVar10 + 1;\n        puVar15 = puVar15 + 10;\n        puVar13 = puVar13 + 10;\n      } while (lVar14 != lVar10);\n      local_a0 = local_a0 + lVar14 * 0x50;\n    }" { (expression_statement "lVar10 = 0;" (assignment_expression "lVar10 = 0" identifier = number_literal) ;) (expression_statement "puVar13 = (undefined8 *)(local_a0 + 0x30 + lVar11 * 0x50);" (assignment_expression "puVar13 = (undefined8 *)(local_a0 + 0x30 + lVar11 * 0x50)" identifier = (cast_expression "(undefined8 *)(local_a0 + 0x30 + lVar11 * 0x50)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a0 + 0x30 + lVar11 * 0x50)" ( (binary_expression "local_a0 + 0x30 + lVar11 * 0x50" (binary_expression "local_a0 + 0x30" identifier + number_literal) + (binary_expression "lVar11 * 0x50" identifier * number_literal)) )))) ;) (expression_statement "puVar15 = (undefined8 *)(local_a0 + 0x30);" (assignment_expression "puVar15 = (undefined8 *)(local_a0 + 0x30)" identifier = (cast_expression "(undefined8 *)(local_a0 + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a0 + 0x30)" ( (binary_expression "local_a0 + 0x30" identifier + number_literal) )))) ;) (do_statement "do {\n        uVar2 = puVar15[-6];\n        uVar4 = puVar15[-5];\n        uVar5 = puVar15[-4];\n        uVar6 = puVar15[-3];\n        local_68 = (undefined8 *)puVar15[-2];\n        if (local_68 == puVar15) {\n          local_58 = *puVar15;\n          uStack_50 = puVar15[1];\n          local_68 = &local_58;\n        }\n        else {\n          local_58 = *puVar15;\n        }\n        sVar1 = puVar15[-1];\n        *(undefined1 *)puVar15 = 0;\n        puVar15[-1] = 0;\n        uVar3 = puVar13[-5];\n        local_48 = puVar15[2];\n        puVar15[-6] = puVar13[-6];\n        puVar15[-5] = uVar3;\n        local_40 = puVar15[3];\n        puVar15[-2] = puVar15;\n        puVar15[-4] = puVar13[-4];\n        *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n        if ((undefined8 *)puVar13[-2] == puVar13) {\n          sVar9 = puVar13[-1];\n          if (sVar9 != 0) {\n            if (sVar9 == 1) {\n              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n              sVar9 = puVar13[-1];\n            }\n            else {\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }\n          }\n          puVar15[-1] = sVar9;\n          *(undefined1 *)((long)puVar15 + sVar9) = 0;\n          puVar7 = (undefined8 *)puVar13[-2];\n        }\n        else {\n          puVar15[-2] = (undefined8 *)puVar13[-2];\n          puVar15[-1] = puVar13[-1];\n          *puVar15 = *puVar13;\n          puVar13[-2] = puVar13;\n          puVar7 = puVar13;\n        }\n        puVar13[-1] = 0;\n        *(undefined1 *)puVar7 = 0;\n        puVar15[2] = puVar13[2];\n        puVar15[3] = puVar13[3];\n        puVar13[-6] = uVar2;\n        puVar13[-5] = uVar4;\n        puVar7 = (undefined8 *)puVar13[-2];\n        puVar13[-4] = uVar5;\n        uStack_70 = (undefined4)uVar6;\n        *(undefined4 *)(puVar13 + -3) = uStack_70;\n        if (local_68 == &local_58) {\n          if (sVar1 != 0) {\n            if (sVar1 == 1) {\n              *(undefined1 *)puVar7 = (undefined1)local_58;\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n            else {\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n          }\n          puVar13[-1] = sVar1;\n          *(undefined1 *)((long)puVar7 + sVar1) = 0;\n          uVar2 = local_58;\n        }\n        else {\n          if (puVar7 == puVar13) {\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n          }\n          else {\n            uVar2 = *puVar13;\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n            local_68 = puVar7;\n            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;\n          }\n          local_68 = &local_58;\n          uVar2 = local_58;\n        }\nLAB_0025f996:\n        local_58 = uVar2;\n        *(undefined1 *)local_68 = 0;\n        puVar13[2] = local_48;\n        puVar13[3] = local_40;\n        if (local_68 != &local_58) {\n          FUN_002dac60();\n        }\n        lVar10 = lVar10 + 1;\n        puVar15 = puVar15 + 10;\n        puVar13 = puVar13 + 10;\n      } while (lVar14 != lVar10);" do (compound_statement "{\n        uVar2 = puVar15[-6];\n        uVar4 = puVar15[-5];\n        uVar5 = puVar15[-4];\n        uVar6 = puVar15[-3];\n        local_68 = (undefined8 *)puVar15[-2];\n        if (local_68 == puVar15) {\n          local_58 = *puVar15;\n          uStack_50 = puVar15[1];\n          local_68 = &local_58;\n        }\n        else {\n          local_58 = *puVar15;\n        }\n        sVar1 = puVar15[-1];\n        *(undefined1 *)puVar15 = 0;\n        puVar15[-1] = 0;\n        uVar3 = puVar13[-5];\n        local_48 = puVar15[2];\n        puVar15[-6] = puVar13[-6];\n        puVar15[-5] = uVar3;\n        local_40 = puVar15[3];\n        puVar15[-2] = puVar15;\n        puVar15[-4] = puVar13[-4];\n        *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n        if ((undefined8 *)puVar13[-2] == puVar13) {\n          sVar9 = puVar13[-1];\n          if (sVar9 != 0) {\n            if (sVar9 == 1) {\n              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n              sVar9 = puVar13[-1];\n            }\n            else {\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }\n          }\n          puVar15[-1] = sVar9;\n          *(undefined1 *)((long)puVar15 + sVar9) = 0;\n          puVar7 = (undefined8 *)puVar13[-2];\n        }\n        else {\n          puVar15[-2] = (undefined8 *)puVar13[-2];\n          puVar15[-1] = puVar13[-1];\n          *puVar15 = *puVar13;\n          puVar13[-2] = puVar13;\n          puVar7 = puVar13;\n        }\n        puVar13[-1] = 0;\n        *(undefined1 *)puVar7 = 0;\n        puVar15[2] = puVar13[2];\n        puVar15[3] = puVar13[3];\n        puVar13[-6] = uVar2;\n        puVar13[-5] = uVar4;\n        puVar7 = (undefined8 *)puVar13[-2];\n        puVar13[-4] = uVar5;\n        uStack_70 = (undefined4)uVar6;\n        *(undefined4 *)(puVar13 + -3) = uStack_70;\n        if (local_68 == &local_58) {\n          if (sVar1 != 0) {\n            if (sVar1 == 1) {\n              *(undefined1 *)puVar7 = (undefined1)local_58;\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n            else {\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n          }\n          puVar13[-1] = sVar1;\n          *(undefined1 *)((long)puVar7 + sVar1) = 0;\n          uVar2 = local_58;\n        }\n        else {\n          if (puVar7 == puVar13) {\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n          }\n          else {\n            uVar2 = *puVar13;\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n            local_68 = puVar7;\n            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;\n          }\n          local_68 = &local_58;\n          uVar2 = local_58;\n        }\nLAB_0025f996:\n        local_58 = uVar2;\n        *(undefined1 *)local_68 = 0;\n        puVar13[2] = local_48;\n        puVar13[3] = local_40;\n        if (local_68 != &local_58) {\n          FUN_002dac60();\n        }\n        lVar10 = lVar10 + 1;\n        puVar15 = puVar15 + 10;\n        puVar13 = puVar13 + 10;\n      }" { (expression_statement "uVar2 = puVar15[-6];" (assignment_expression "uVar2 = puVar15[-6]" identifier = (subscript_expression "puVar15[-6]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = puVar15[-5];" (assignment_expression "uVar4 = puVar15[-5]" identifier = (subscript_expression "puVar15[-5]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = puVar15[-4];" (assignment_expression "uVar5 = puVar15[-4]" identifier = (subscript_expression "puVar15[-4]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = puVar15[-3];" (assignment_expression "uVar6 = puVar15[-3]" identifier = (subscript_expression "puVar15[-3]" identifier [ number_literal ])) ;) (expression_statement "local_68 = (undefined8 *)puVar15[-2];" (assignment_expression "local_68 = (undefined8 *)puVar15[-2]" identifier = (cast_expression "(undefined8 *)puVar15[-2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar15[-2]" identifier [ number_literal ]))) ;) (if_statement "if (local_68 == puVar15) {\n          local_58 = *puVar15;\n          uStack_50 = puVar15[1];\n          local_68 = &local_58;\n        }\n        else {\n          local_58 = *puVar15;\n        }" if (parenthesized_expression "(local_68 == puVar15)" ( (binary_expression "local_68 == puVar15" identifier == identifier) )) (compound_statement "{\n          local_58 = *puVar15;\n          uStack_50 = puVar15[1];\n          local_68 = &local_58;\n        }" { (expression_statement "local_58 = *puVar15;" (assignment_expression "local_58 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;) (expression_statement "uStack_50 = puVar15[1];" (assignment_expression "uStack_50 = puVar15[1]" identifier = (subscript_expression "puVar15[1]" identifier [ number_literal ])) ;) (expression_statement "local_68 = &local_58;" (assignment_expression "local_68 = &local_58" identifier = (pointer_expression "&local_58" & identifier)) ;) }) (else_clause "else {\n          local_58 = *puVar15;\n        }" else (compound_statement "{\n          local_58 = *puVar15;\n        }" { (expression_statement "local_58 = *puVar15;" (assignment_expression "local_58 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;) }))) (expression_statement "sVar1 = puVar15[-1];" (assignment_expression "sVar1 = puVar15[-1]" identifier = (subscript_expression "puVar15[-1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)puVar15 = 0;" (assignment_expression "*(undefined1 *)puVar15 = 0" (pointer_expression "*(undefined1 *)puVar15" * (cast_expression "(undefined1 *)puVar15" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar15[-1] = 0;" (assignment_expression "puVar15[-1] = 0" (subscript_expression "puVar15[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar3 = puVar13[-5];" (assignment_expression "uVar3 = puVar13[-5]" identifier = (subscript_expression "puVar13[-5]" identifier [ number_literal ])) ;) (expression_statement "local_48 = puVar15[2];" (assignment_expression "local_48 = puVar15[2]" identifier = (subscript_expression "puVar15[2]" identifier [ number_literal ])) ;) (expression_statement "puVar15[-6] = puVar13[-6];" (assignment_expression "puVar15[-6] = puVar13[-6]" (subscript_expression "puVar15[-6]" identifier [ number_literal ]) = (subscript_expression "puVar13[-6]" identifier [ number_literal ])) ;) (expression_statement "puVar15[-5] = uVar3;" (assignment_expression "puVar15[-5] = uVar3" (subscript_expression "puVar15[-5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_40 = puVar15[3];" (assignment_expression "local_40 = puVar15[3]" identifier = (subscript_expression "puVar15[3]" identifier [ number_literal ])) ;) (expression_statement "puVar15[-2] = puVar15;" (assignment_expression "puVar15[-2] = puVar15" (subscript_expression "puVar15[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[-4] = puVar13[-4];" (assignment_expression "puVar15[-4] = puVar13[-4]" (subscript_expression "puVar15[-4]" identifier [ number_literal ]) = (subscript_expression "puVar13[-4]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);" (assignment_expression "*(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3)" (pointer_expression "*(undefined4 *)(puVar15 + -3)" * (cast_expression "(undefined4 *)(puVar15 + -3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -3)" ( (binary_expression "puVar15 + -3" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar13 + -3)" * (cast_expression "(undefined4 *)(puVar13 + -3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -3)" ( (binary_expression "puVar13 + -3" identifier + number_literal) ))))) ;) (if_statement "if ((undefined8 *)puVar13[-2] == puVar13) {\n          sVar9 = puVar13[-1];\n          if (sVar9 != 0) {\n            if (sVar9 == 1) {\n              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n              sVar9 = puVar13[-1];\n            }\n            else {\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }\n          }\n          puVar15[-1] = sVar9;\n          *(undefined1 *)((long)puVar15 + sVar9) = 0;\n          puVar7 = (undefined8 *)puVar13[-2];\n        }\n        else {\n          puVar15[-2] = (undefined8 *)puVar13[-2];\n          puVar15[-1] = puVar13[-1];\n          *puVar15 = *puVar13;\n          puVar13[-2] = puVar13;\n          puVar7 = puVar13;\n        }" if (parenthesized_expression "((undefined8 *)puVar13[-2] == puVar13)" ( (binary_expression "(undefined8 *)puVar13[-2] == puVar13" (cast_expression "(undefined8 *)puVar13[-2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[-2]" identifier [ number_literal ])) == identifier) )) (compound_statement "{\n          sVar9 = puVar13[-1];\n          if (sVar9 != 0) {\n            if (sVar9 == 1) {\n              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n              sVar9 = puVar13[-1];\n            }\n            else {\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }\n          }\n          puVar15[-1] = sVar9;\n          *(undefined1 *)((long)puVar15 + sVar9) = 0;\n          puVar7 = (undefined8 *)puVar13[-2];\n        }" { (expression_statement "sVar9 = puVar13[-1];" (assignment_expression "sVar9 = puVar13[-1]" identifier = (subscript_expression "puVar13[-1]" identifier [ number_literal ])) ;) (if_statement "if (sVar9 != 0) {\n            if (sVar9 == 1) {\n              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n              sVar9 = puVar13[-1];\n            }\n            else {\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }\n          }" if (parenthesized_expression "(sVar9 != 0)" ( (binary_expression "sVar9 != 0" identifier != number_literal) )) (compound_statement "{\n            if (sVar9 == 1) {\n              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n              sVar9 = puVar13[-1];\n            }\n            else {\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }\n          }" { (if_statement "if (sVar9 == 1) {\n              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n              sVar9 = puVar13[-1];\n            }\n            else {\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }" if (parenthesized_expression "(sVar9 == 1)" ( (binary_expression "sVar9 == 1" identifier == number_literal) )) (compound_statement "{\n              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n              sVar9 = puVar13[-1];\n            }" { (expression_statement "*(undefined1 *)puVar15 = *(undefined1 *)puVar13;" (assignment_expression "*(undefined1 *)puVar15 = *(undefined1 *)puVar13" (pointer_expression "*(undefined1 *)puVar15" * (cast_expression "(undefined1 *)puVar15" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined1 *)puVar13" * (cast_expression "(undefined1 *)puVar13" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "sVar9 = puVar13[-1];" (assignment_expression "sVar9 = puVar13[-1]" identifier = (subscript_expression "puVar13[-1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }" else (compound_statement "{\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }" { (expression_statement "memcpy(puVar15,puVar13,sVar9);" (call_expression "memcpy(puVar15,puVar13,sVar9)" identifier (argument_list "(puVar15,puVar13,sVar9)" ( identifier , identifier , identifier ))) ;) (expression_statement "sVar9 = puVar13[-1];" (assignment_expression "sVar9 = puVar13[-1]" identifier = (subscript_expression "puVar13[-1]" identifier [ number_literal ])) ;) }))) })) (expression_statement "puVar15[-1] = sVar9;" (assignment_expression "puVar15[-1] = sVar9" (subscript_expression "puVar15[-1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((long)puVar15 + sVar9) = 0;" (assignment_expression "*(undefined1 *)((long)puVar15 + sVar9) = 0" (pointer_expression "*(undefined1 *)((long)puVar15 + sVar9)" * (cast_expression "(undefined1 *)((long)puVar15 + sVar9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar15 + sVar9)" ( (binary_expression "(long)puVar15 + sVar9" (cast_expression "(long)puVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "puVar7 = (undefined8 *)puVar13[-2];" (assignment_expression "puVar7 = (undefined8 *)puVar13[-2]" identifier = (cast_expression "(undefined8 *)puVar13[-2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[-2]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n          puVar15[-2] = (undefined8 *)puVar13[-2];\n          puVar15[-1] = puVar13[-1];\n          *puVar15 = *puVar13;\n          puVar13[-2] = puVar13;\n          puVar7 = puVar13;\n        }" else (compound_statement "{\n          puVar15[-2] = (undefined8 *)puVar13[-2];\n          puVar15[-1] = puVar13[-1];\n          *puVar15 = *puVar13;\n          puVar13[-2] = puVar13;\n          puVar7 = puVar13;\n        }" { (expression_statement "puVar15[-2] = (undefined8 *)puVar13[-2];" (assignment_expression "puVar15[-2] = (undefined8 *)puVar13[-2]" (subscript_expression "puVar15[-2]" identifier [ number_literal ]) = (cast_expression "(undefined8 *)puVar13[-2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[-2]" identifier [ number_literal ]))) ;) (expression_statement "puVar15[-1] = puVar13[-1];" (assignment_expression "puVar15[-1] = puVar13[-1]" (subscript_expression "puVar15[-1]" identifier [ number_literal ]) = (subscript_expression "puVar13[-1]" identifier [ number_literal ])) ;) (expression_statement "*puVar15 = *puVar13;" (assignment_expression "*puVar15 = *puVar13" (pointer_expression "*puVar15" * identifier) = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "puVar13[-2] = puVar13;" (assignment_expression "puVar13[-2] = puVar13" (subscript_expression "puVar13[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7 = puVar13;" (assignment_expression "puVar7 = puVar13" identifier = identifier) ;) }))) (expression_statement "puVar13[-1] = 0;" (assignment_expression "puVar13[-1] = 0" (subscript_expression "puVar13[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)puVar7 = 0;" (assignment_expression "*(undefined1 *)puVar7 = 0" (pointer_expression "*(undefined1 *)puVar7" * (cast_expression "(undefined1 *)puVar7" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar15[2] = puVar13[2];" (assignment_expression "puVar15[2] = puVar13[2]" (subscript_expression "puVar15[2]" identifier [ number_literal ]) = (subscript_expression "puVar13[2]" identifier [ number_literal ])) ;) (expression_statement "puVar15[3] = puVar13[3];" (assignment_expression "puVar15[3] = puVar13[3]" (subscript_expression "puVar15[3]" identifier [ number_literal ]) = (subscript_expression "puVar13[3]" identifier [ number_literal ])) ;) (expression_statement "puVar13[-6] = uVar2;" (assignment_expression "puVar13[-6] = uVar2" (subscript_expression "puVar13[-6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[-5] = uVar4;" (assignment_expression "puVar13[-5] = uVar4" (subscript_expression "puVar13[-5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7 = (undefined8 *)puVar13[-2];" (assignment_expression "puVar7 = (undefined8 *)puVar13[-2]" identifier = (cast_expression "(undefined8 *)puVar13[-2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[-2]" identifier [ number_literal ]))) ;) (expression_statement "puVar13[-4] = uVar5;" (assignment_expression "puVar13[-4] = uVar5" (subscript_expression "puVar13[-4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uStack_70 = (undefined4)uVar6;" (assignment_expression "uStack_70 = (undefined4)uVar6" identifier = (cast_expression "(undefined4)uVar6" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) (expression_statement "*(undefined4 *)(puVar13 + -3) = uStack_70;" (assignment_expression "*(undefined4 *)(puVar13 + -3) = uStack_70" (pointer_expression "*(undefined4 *)(puVar13 + -3)" * (cast_expression "(undefined4 *)(puVar13 + -3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -3)" ( (binary_expression "puVar13 + -3" identifier + number_literal) )))) = identifier) ;) (if_statement "if (local_68 == &local_58) {\n          if (sVar1 != 0) {\n            if (sVar1 == 1) {\n              *(undefined1 *)puVar7 = (undefined1)local_58;\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n            else {\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n          }\n          puVar13[-1] = sVar1;\n          *(undefined1 *)((long)puVar7 + sVar1) = 0;\n          uVar2 = local_58;\n        }\n        else {\n          if (puVar7 == puVar13) {\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n          }\n          else {\n            uVar2 = *puVar13;\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n            local_68 = puVar7;\n            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;\n          }\n          local_68 = &local_58;\n          uVar2 = local_58;\n        }" if (parenthesized_expression "(local_68 == &local_58)" ( (binary_expression "local_68 == &local_58" identifier == (pointer_expression "&local_58" & identifier)) )) (compound_statement "{\n          if (sVar1 != 0) {\n            if (sVar1 == 1) {\n              *(undefined1 *)puVar7 = (undefined1)local_58;\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n            else {\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n          }\n          puVar13[-1] = sVar1;\n          *(undefined1 *)((long)puVar7 + sVar1) = 0;\n          uVar2 = local_58;\n        }" { (if_statement "if (sVar1 != 0) {\n            if (sVar1 == 1) {\n              *(undefined1 *)puVar7 = (undefined1)local_58;\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n            else {\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n          }" if (parenthesized_expression "(sVar1 != 0)" ( (binary_expression "sVar1 != 0" identifier != number_literal) )) (compound_statement "{\n            if (sVar1 == 1) {\n              *(undefined1 *)puVar7 = (undefined1)local_58;\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n            else {\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n          }" { (if_statement "if (sVar1 == 1) {\n              *(undefined1 *)puVar7 = (undefined1)local_58;\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n            else {\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }" if (parenthesized_expression "(sVar1 == 1)" ( (binary_expression "sVar1 == 1" identifier == number_literal) )) (compound_statement "{\n              *(undefined1 *)puVar7 = (undefined1)local_58;\n              puVar7 = (undefined8 *)puVar13[-2];\n            }" { (expression_statement "*(undefined1 *)puVar7 = (undefined1)local_58;" (assignment_expression "*(undefined1 *)puVar7 = (undefined1)local_58" (pointer_expression "*(undefined1 *)puVar7" * (cast_expression "(undefined1 *)puVar7" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(undefined1)local_58" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "puVar7 = (undefined8 *)puVar13[-2];" (assignment_expression "puVar7 = (undefined8 *)puVar13[-2]" identifier = (cast_expression "(undefined8 *)puVar13[-2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[-2]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }" else (compound_statement "{\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }" { (expression_statement "memcpy(puVar7,&local_58,sVar1);" (call_expression "memcpy(puVar7,&local_58,sVar1)" identifier (argument_list "(puVar7,&local_58,sVar1)" ( identifier , (pointer_expression "&local_58" & identifier) , identifier ))) ;) (expression_statement "puVar7 = (undefined8 *)puVar13[-2];" (assignment_expression "puVar7 = (undefined8 *)puVar13[-2]" identifier = (cast_expression "(undefined8 *)puVar13[-2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[-2]" identifier [ number_literal ]))) ;) }))) })) (expression_statement "puVar13[-1] = sVar1;" (assignment_expression "puVar13[-1] = sVar1" (subscript_expression "puVar13[-1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((long)puVar7 + sVar1) = 0;" (assignment_expression "*(undefined1 *)((long)puVar7 + sVar1) = 0" (pointer_expression "*(undefined1 *)((long)puVar7 + sVar1)" * (cast_expression "(undefined1 *)((long)puVar7 + sVar1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar7 + sVar1)" ( (binary_expression "(long)puVar7 + sVar1" (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "uVar2 = local_58;" (assignment_expression "uVar2 = local_58" identifier = identifier) ;) }) (else_clause "else {\n          if (puVar7 == puVar13) {\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n          }\n          else {\n            uVar2 = *puVar13;\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n            local_68 = puVar7;\n            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;\n          }\n          local_68 = &local_58;\n          uVar2 = local_58;\n        }" else (compound_statement "{\n          if (puVar7 == puVar13) {\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n          }\n          else {\n            uVar2 = *puVar13;\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n            local_68 = puVar7;\n            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;\n          }\n          local_68 = &local_58;\n          uVar2 = local_58;\n        }" { (if_statement "if (puVar7 == puVar13) {\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n          }\n          else {\n            uVar2 = *puVar13;\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n            local_68 = puVar7;\n            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;\n          }" if (parenthesized_expression "(puVar7 == puVar13)" ( (binary_expression "puVar7 == puVar13" identifier == identifier) )) (compound_statement "{\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n          }" { (expression_statement "puVar13[-2] = local_68;" (assignment_expression "puVar13[-2] = local_68" (subscript_expression "puVar13[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[-1] = sVar1;" (assignment_expression "puVar13[-1] = sVar1" (subscript_expression "puVar13[-1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar13 = local_58;" (assignment_expression "*puVar13 = local_58" (pointer_expression "*puVar13" * identifier) = identifier) ;) }) (else_clause "else {\n            uVar2 = *puVar13;\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n            local_68 = puVar7;\n            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;\n          }" else (compound_statement "{\n            uVar2 = *puVar13;\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n            local_68 = puVar7;\n            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;\n          }" { (expression_statement "uVar2 = *puVar13;" (assignment_expression "uVar2 = *puVar13" identifier = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "puVar13[-2] = local_68;" (assignment_expression "puVar13[-2] = local_68" (subscript_expression "puVar13[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[-1] = sVar1;" (assignment_expression "puVar13[-1] = sVar1" (subscript_expression "puVar13[-1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar13 = local_58;" (assignment_expression "*puVar13 = local_58" (pointer_expression "*puVar13" * identifier) = identifier) ;) (expression_statement "local_68 = puVar7;" (assignment_expression "local_68 = puVar7" identifier = identifier) ;) (if_statement "if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;" if (parenthesized_expression "(puVar7 != (undefined8 *)0x0)" ( (binary_expression "puVar7 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0025f996;" goto statement_identifier ;)) }))) (expression_statement "local_68 = &local_58;" (assignment_expression "local_68 = &local_58" identifier = (pointer_expression "&local_58" & identifier)) ;) (expression_statement "uVar2 = local_58;" (assignment_expression "uVar2 = local_58" identifier = identifier) ;) }))) (labeled_statement "LAB_0025f996:\n        local_58 = uVar2;" statement_identifier : (expression_statement "local_58 = uVar2;" (assignment_expression "local_58 = uVar2" identifier = identifier) ;)) (expression_statement "*(undefined1 *)local_68 = 0;" (assignment_expression "*(undefined1 *)local_68 = 0" (pointer_expression "*(undefined1 *)local_68" * (cast_expression "(undefined1 *)local_68" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar13[2] = local_48;" (assignment_expression "puVar13[2] = local_48" (subscript_expression "puVar13[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[3] = local_40;" (assignment_expression "puVar13[3] = local_40" (subscript_expression "puVar13[3]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (local_68 != &local_58) {\n          FUN_002dac60();\n        }" if (parenthesized_expression "(local_68 != &local_58)" ( (binary_expression "local_68 != &local_58" identifier != (pointer_expression "&local_58" & identifier)) )) (compound_statement "{\n          FUN_002dac60();\n        }" { (expression_statement "FUN_002dac60();" (call_expression "FUN_002dac60()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "lVar10 = lVar10 + 1;" (assignment_expression "lVar10 = lVar10 + 1" identifier = (binary_expression "lVar10 + 1" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar15 + 10;" (assignment_expression "puVar15 = puVar15 + 10" identifier = (binary_expression "puVar15 + 10" identifier + number_literal)) ;) (expression_statement "puVar13 = puVar13 + 10;" (assignment_expression "puVar13 = puVar13 + 10" identifier = (binary_expression "puVar13 + 10" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar14 != lVar10)" ( (binary_expression "lVar14 != lVar10" identifier != identifier) )) ;) (expression_statement "local_a0 = local_a0 + lVar14 * 0x50;" (assignment_expression "local_a0 = local_a0 + lVar14 * 0x50" identifier = (binary_expression "local_a0 + lVar14 * 0x50" identifier + (binary_expression "lVar14 * 0x50" identifier * number_literal))) ;) })) (if_statement "if (local_a8 % lVar11 == 0) {\n      return lVar8;\n    }" if (parenthesized_expression "(local_a8 % lVar11 == 0)" ( (binary_expression "local_a8 % lVar11 == 0" (binary_expression "local_a8 % lVar11" identifier % identifier) == number_literal) )) (compound_statement "{\n      return lVar8;\n    }" { (return_statement "return lVar8;" return identifier ;) })) (expression_statement "lVar12 = lVar11 - local_a8 % lVar11;" (assignment_expression "lVar12 = lVar11 - local_a8 % lVar11" identifier = (binary_expression "lVar11 - local_a8 % lVar11" identifier - (binary_expression "local_a8 % lVar11" identifier % identifier))) ;) (expression_statement "lVar10 = lVar11;" (assignment_expression "lVar10 = lVar11" identifier = identifier) ;) (while_statement "while (lVar14 = lVar10 - lVar12, lVar11 = lVar12, local_a8 = lVar10, lVar14 <= lVar12) {\nLAB_0025fb1a:\n      lVar10 = lVar14;\n      lVar11 = local_a8 * 0x50 + local_a0;\n      local_a0 = lVar11 + lVar10 * -0x50;\n      if (0 < lVar12) {\n        puVar15 = (undefined8 *)(local_a0 + -0x20);\n        puVar13 = (undefined8 *)(lVar11 + -0x20);\n        lVar11 = 0;\n        do {\n          uVar2 = puVar15[-6];\n          uVar4 = puVar15[-5];\n          uVar5 = puVar15[-4];\n          uVar6 = puVar15[-3];\n          local_68 = (undefined8 *)puVar15[-2];\n          if (local_68 == puVar15) {\n            local_58 = *puVar15;\n            uStack_50 = puVar15[1];\n            local_68 = &local_58;\n          }\n          else {\n            local_58 = *puVar15;\n          }\n          sVar1 = puVar15[-1];\n          *(undefined1 *)puVar15 = 0;\n          puVar15[-1] = 0;\n          uVar3 = puVar13[-5];\n          local_48 = puVar15[2];\n          puVar15[-6] = puVar13[-6];\n          puVar15[-5] = uVar3;\n          local_40 = puVar15[3];\n          puVar15[-2] = puVar15;\n          puVar15[-4] = puVar13[-4];\n          *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n          if ((undefined8 *)puVar13[-2] == puVar13) {\n            sVar9 = puVar13[-1];\n            if (sVar9 != 0) {\n              if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }\n            }\n            puVar15[-1] = sVar9;\n            *(undefined1 *)(puVar15[-2] + sVar9) = 0;\n          }\n          else {\n            puVar15[-2] = (undefined8 *)puVar13[-2];\n            puVar15[-1] = puVar13[-1];\n            *puVar15 = *puVar13;\n            puVar13[-2] = puVar13;\n          }\n          puVar13[-1] = 0;\n          *(undefined1 *)puVar13[-2] = 0;\n          puVar15[2] = puVar13[2];\n          puVar15[3] = puVar13[3];\n          puVar7 = (undefined8 *)puVar13[-2];\n          puVar13[-6] = uVar2;\n          puVar13[-5] = uVar4;\n          puVar13[-4] = uVar5;\n          uStack_70 = (undefined4)uVar6;\n          *(undefined4 *)(puVar13 + -3) = uStack_70;\n          if (local_68 == &local_58) {\n            if (sVar1 != 0) {\n              if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n            }\n            puVar13[-1] = sVar1;\n            *(undefined1 *)((long)puVar7 + sVar1) = 0;\n            uVar2 = local_58;\n          }\n          else {\n            if (puVar7 == puVar13) {\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }\n            else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }\n            local_68 = &local_58;\n            uVar2 = local_58;\n          }\nLAB_0025fc78:\n          local_58 = uVar2;\n          *(undefined1 *)local_68 = 0;\n          puVar13[2] = local_48;\n          puVar13[3] = local_40;\n          if (local_68 != &local_58) {\n            FUN_002dac60();\n          }\n          lVar11 = lVar11 + 1;\n          puVar15 = puVar15 + -10;\n          puVar13 = puVar13 + -10;\n        } while (lVar11 != lVar12);\n        local_a0 = local_a0 + lVar11 * -0x50;\n      }\n      lVar12 = local_a8 % lVar10;\n      if (lVar12 == 0) {\n        return lVar8;\n      }\n    }" while (parenthesized_expression "(lVar14 = lVar10 - lVar12, lVar11 = lVar12, local_a8 = lVar10, lVar14 <= lVar12)" ( (comma_expression "lVar14 = lVar10 - lVar12, lVar11 = lVar12, local_a8 = lVar10, lVar14 <= lVar12" (assignment_expression "lVar14 = lVar10 - lVar12" identifier = (binary_expression "lVar10 - lVar12" identifier - identifier)) , (comma_expression "lVar11 = lVar12, local_a8 = lVar10, lVar14 <= lVar12" (assignment_expression "lVar11 = lVar12" identifier = identifier) , (comma_expression "local_a8 = lVar10, lVar14 <= lVar12" (assignment_expression "local_a8 = lVar10" identifier = identifier) , (binary_expression "lVar14 <= lVar12" identifier <= identifier)))) )) (compound_statement "{\nLAB_0025fb1a:\n      lVar10 = lVar14;\n      lVar11 = local_a8 * 0x50 + local_a0;\n      local_a0 = lVar11 + lVar10 * -0x50;\n      if (0 < lVar12) {\n        puVar15 = (undefined8 *)(local_a0 + -0x20);\n        puVar13 = (undefined8 *)(lVar11 + -0x20);\n        lVar11 = 0;\n        do {\n          uVar2 = puVar15[-6];\n          uVar4 = puVar15[-5];\n          uVar5 = puVar15[-4];\n          uVar6 = puVar15[-3];\n          local_68 = (undefined8 *)puVar15[-2];\n          if (local_68 == puVar15) {\n            local_58 = *puVar15;\n            uStack_50 = puVar15[1];\n            local_68 = &local_58;\n          }\n          else {\n            local_58 = *puVar15;\n          }\n          sVar1 = puVar15[-1];\n          *(undefined1 *)puVar15 = 0;\n          puVar15[-1] = 0;\n          uVar3 = puVar13[-5];\n          local_48 = puVar15[2];\n          puVar15[-6] = puVar13[-6];\n          puVar15[-5] = uVar3;\n          local_40 = puVar15[3];\n          puVar15[-2] = puVar15;\n          puVar15[-4] = puVar13[-4];\n          *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n          if ((undefined8 *)puVar13[-2] == puVar13) {\n            sVar9 = puVar13[-1];\n            if (sVar9 != 0) {\n              if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }\n            }\n            puVar15[-1] = sVar9;\n            *(undefined1 *)(puVar15[-2] + sVar9) = 0;\n          }\n          else {\n            puVar15[-2] = (undefined8 *)puVar13[-2];\n            puVar15[-1] = puVar13[-1];\n            *puVar15 = *puVar13;\n            puVar13[-2] = puVar13;\n          }\n          puVar13[-1] = 0;\n          *(undefined1 *)puVar13[-2] = 0;\n          puVar15[2] = puVar13[2];\n          puVar15[3] = puVar13[3];\n          puVar7 = (undefined8 *)puVar13[-2];\n          puVar13[-6] = uVar2;\n          puVar13[-5] = uVar4;\n          puVar13[-4] = uVar5;\n          uStack_70 = (undefined4)uVar6;\n          *(undefined4 *)(puVar13 + -3) = uStack_70;\n          if (local_68 == &local_58) {\n            if (sVar1 != 0) {\n              if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n            }\n            puVar13[-1] = sVar1;\n            *(undefined1 *)((long)puVar7 + sVar1) = 0;\n            uVar2 = local_58;\n          }\n          else {\n            if (puVar7 == puVar13) {\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }\n            else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }\n            local_68 = &local_58;\n            uVar2 = local_58;\n          }\nLAB_0025fc78:\n          local_58 = uVar2;\n          *(undefined1 *)local_68 = 0;\n          puVar13[2] = local_48;\n          puVar13[3] = local_40;\n          if (local_68 != &local_58) {\n            FUN_002dac60();\n          }\n          lVar11 = lVar11 + 1;\n          puVar15 = puVar15 + -10;\n          puVar13 = puVar13 + -10;\n        } while (lVar11 != lVar12);\n        local_a0 = local_a0 + lVar11 * -0x50;\n      }\n      lVar12 = local_a8 % lVar10;\n      if (lVar12 == 0) {\n        return lVar8;\n      }\n    }" { (labeled_statement "LAB_0025fb1a:\n      lVar10 = lVar14;" statement_identifier : (expression_statement "lVar10 = lVar14;" (assignment_expression "lVar10 = lVar14" identifier = identifier) ;)) (expression_statement "lVar11 = local_a8 * 0x50 + local_a0;" (assignment_expression "lVar11 = local_a8 * 0x50 + local_a0" identifier = (binary_expression "local_a8 * 0x50 + local_a0" (binary_expression "local_a8 * 0x50" identifier * number_literal) + identifier)) ;) (expression_statement "local_a0 = lVar11 + lVar10 * -0x50;" (assignment_expression "local_a0 = lVar11 + lVar10 * -0x50" identifier = (binary_expression "lVar11 + lVar10 * -0x50" identifier + (binary_expression "lVar10 * -0x50" identifier * number_literal))) ;) (if_statement "if (0 < lVar12) {\n        puVar15 = (undefined8 *)(local_a0 + -0x20);\n        puVar13 = (undefined8 *)(lVar11 + -0x20);\n        lVar11 = 0;\n        do {\n          uVar2 = puVar15[-6];\n          uVar4 = puVar15[-5];\n          uVar5 = puVar15[-4];\n          uVar6 = puVar15[-3];\n          local_68 = (undefined8 *)puVar15[-2];\n          if (local_68 == puVar15) {\n            local_58 = *puVar15;\n            uStack_50 = puVar15[1];\n            local_68 = &local_58;\n          }\n          else {\n            local_58 = *puVar15;\n          }\n          sVar1 = puVar15[-1];\n          *(undefined1 *)puVar15 = 0;\n          puVar15[-1] = 0;\n          uVar3 = puVar13[-5];\n          local_48 = puVar15[2];\n          puVar15[-6] = puVar13[-6];\n          puVar15[-5] = uVar3;\n          local_40 = puVar15[3];\n          puVar15[-2] = puVar15;\n          puVar15[-4] = puVar13[-4];\n          *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n          if ((undefined8 *)puVar13[-2] == puVar13) {\n            sVar9 = puVar13[-1];\n            if (sVar9 != 0) {\n              if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }\n            }\n            puVar15[-1] = sVar9;\n            *(undefined1 *)(puVar15[-2] + sVar9) = 0;\n          }\n          else {\n            puVar15[-2] = (undefined8 *)puVar13[-2];\n            puVar15[-1] = puVar13[-1];\n            *puVar15 = *puVar13;\n            puVar13[-2] = puVar13;\n          }\n          puVar13[-1] = 0;\n          *(undefined1 *)puVar13[-2] = 0;\n          puVar15[2] = puVar13[2];\n          puVar15[3] = puVar13[3];\n          puVar7 = (undefined8 *)puVar13[-2];\n          puVar13[-6] = uVar2;\n          puVar13[-5] = uVar4;\n          puVar13[-4] = uVar5;\n          uStack_70 = (undefined4)uVar6;\n          *(undefined4 *)(puVar13 + -3) = uStack_70;\n          if (local_68 == &local_58) {\n            if (sVar1 != 0) {\n              if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n            }\n            puVar13[-1] = sVar1;\n            *(undefined1 *)((long)puVar7 + sVar1) = 0;\n            uVar2 = local_58;\n          }\n          else {\n            if (puVar7 == puVar13) {\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }\n            else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }\n            local_68 = &local_58;\n            uVar2 = local_58;\n          }\nLAB_0025fc78:\n          local_58 = uVar2;\n          *(undefined1 *)local_68 = 0;\n          puVar13[2] = local_48;\n          puVar13[3] = local_40;\n          if (local_68 != &local_58) {\n            FUN_002dac60();\n          }\n          lVar11 = lVar11 + 1;\n          puVar15 = puVar15 + -10;\n          puVar13 = puVar13 + -10;\n        } while (lVar11 != lVar12);\n        local_a0 = local_a0 + lVar11 * -0x50;\n      }" if (parenthesized_expression "(0 < lVar12)" ( (binary_expression "0 < lVar12" number_literal < identifier) )) (compound_statement "{\n        puVar15 = (undefined8 *)(local_a0 + -0x20);\n        puVar13 = (undefined8 *)(lVar11 + -0x20);\n        lVar11 = 0;\n        do {\n          uVar2 = puVar15[-6];\n          uVar4 = puVar15[-5];\n          uVar5 = puVar15[-4];\n          uVar6 = puVar15[-3];\n          local_68 = (undefined8 *)puVar15[-2];\n          if (local_68 == puVar15) {\n            local_58 = *puVar15;\n            uStack_50 = puVar15[1];\n            local_68 = &local_58;\n          }\n          else {\n            local_58 = *puVar15;\n          }\n          sVar1 = puVar15[-1];\n          *(undefined1 *)puVar15 = 0;\n          puVar15[-1] = 0;\n          uVar3 = puVar13[-5];\n          local_48 = puVar15[2];\n          puVar15[-6] = puVar13[-6];\n          puVar15[-5] = uVar3;\n          local_40 = puVar15[3];\n          puVar15[-2] = puVar15;\n          puVar15[-4] = puVar13[-4];\n          *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n          if ((undefined8 *)puVar13[-2] == puVar13) {\n            sVar9 = puVar13[-1];\n            if (sVar9 != 0) {\n              if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }\n            }\n            puVar15[-1] = sVar9;\n            *(undefined1 *)(puVar15[-2] + sVar9) = 0;\n          }\n          else {\n            puVar15[-2] = (undefined8 *)puVar13[-2];\n            puVar15[-1] = puVar13[-1];\n            *puVar15 = *puVar13;\n            puVar13[-2] = puVar13;\n          }\n          puVar13[-1] = 0;\n          *(undefined1 *)puVar13[-2] = 0;\n          puVar15[2] = puVar13[2];\n          puVar15[3] = puVar13[3];\n          puVar7 = (undefined8 *)puVar13[-2];\n          puVar13[-6] = uVar2;\n          puVar13[-5] = uVar4;\n          puVar13[-4] = uVar5;\n          uStack_70 = (undefined4)uVar6;\n          *(undefined4 *)(puVar13 + -3) = uStack_70;\n          if (local_68 == &local_58) {\n            if (sVar1 != 0) {\n              if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n            }\n            puVar13[-1] = sVar1;\n            *(undefined1 *)((long)puVar7 + sVar1) = 0;\n            uVar2 = local_58;\n          }\n          else {\n            if (puVar7 == puVar13) {\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }\n            else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }\n            local_68 = &local_58;\n            uVar2 = local_58;\n          }\nLAB_0025fc78:\n          local_58 = uVar2;\n          *(undefined1 *)local_68 = 0;\n          puVar13[2] = local_48;\n          puVar13[3] = local_40;\n          if (local_68 != &local_58) {\n            FUN_002dac60();\n          }\n          lVar11 = lVar11 + 1;\n          puVar15 = puVar15 + -10;\n          puVar13 = puVar13 + -10;\n        } while (lVar11 != lVar12);\n        local_a0 = local_a0 + lVar11 * -0x50;\n      }" { (expression_statement "puVar15 = (undefined8 *)(local_a0 + -0x20);" (assignment_expression "puVar15 = (undefined8 *)(local_a0 + -0x20)" identifier = (cast_expression "(undefined8 *)(local_a0 + -0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a0 + -0x20)" ( (binary_expression "local_a0 + -0x20" identifier + number_literal) )))) ;) (expression_statement "puVar13 = (undefined8 *)(lVar11 + -0x20);" (assignment_expression "puVar13 = (undefined8 *)(lVar11 + -0x20)" identifier = (cast_expression "(undefined8 *)(lVar11 + -0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + -0x20)" ( (binary_expression "lVar11 + -0x20" identifier + number_literal) )))) ;) (expression_statement "lVar11 = 0;" (assignment_expression "lVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n          uVar2 = puVar15[-6];\n          uVar4 = puVar15[-5];\n          uVar5 = puVar15[-4];\n          uVar6 = puVar15[-3];\n          local_68 = (undefined8 *)puVar15[-2];\n          if (local_68 == puVar15) {\n            local_58 = *puVar15;\n            uStack_50 = puVar15[1];\n            local_68 = &local_58;\n          }\n          else {\n            local_58 = *puVar15;\n          }\n          sVar1 = puVar15[-1];\n          *(undefined1 *)puVar15 = 0;\n          puVar15[-1] = 0;\n          uVar3 = puVar13[-5];\n          local_48 = puVar15[2];\n          puVar15[-6] = puVar13[-6];\n          puVar15[-5] = uVar3;\n          local_40 = puVar15[3];\n          puVar15[-2] = puVar15;\n          puVar15[-4] = puVar13[-4];\n          *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n          if ((undefined8 *)puVar13[-2] == puVar13) {\n            sVar9 = puVar13[-1];\n            if (sVar9 != 0) {\n              if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }\n            }\n            puVar15[-1] = sVar9;\n            *(undefined1 *)(puVar15[-2] + sVar9) = 0;\n          }\n          else {\n            puVar15[-2] = (undefined8 *)puVar13[-2];\n            puVar15[-1] = puVar13[-1];\n            *puVar15 = *puVar13;\n            puVar13[-2] = puVar13;\n          }\n          puVar13[-1] = 0;\n          *(undefined1 *)puVar13[-2] = 0;\n          puVar15[2] = puVar13[2];\n          puVar15[3] = puVar13[3];\n          puVar7 = (undefined8 *)puVar13[-2];\n          puVar13[-6] = uVar2;\n          puVar13[-5] = uVar4;\n          puVar13[-4] = uVar5;\n          uStack_70 = (undefined4)uVar6;\n          *(undefined4 *)(puVar13 + -3) = uStack_70;\n          if (local_68 == &local_58) {\n            if (sVar1 != 0) {\n              if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n            }\n            puVar13[-1] = sVar1;\n            *(undefined1 *)((long)puVar7 + sVar1) = 0;\n            uVar2 = local_58;\n          }\n          else {\n            if (puVar7 == puVar13) {\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }\n            else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }\n            local_68 = &local_58;\n            uVar2 = local_58;\n          }\nLAB_0025fc78:\n          local_58 = uVar2;\n          *(undefined1 *)local_68 = 0;\n          puVar13[2] = local_48;\n          puVar13[3] = local_40;\n          if (local_68 != &local_58) {\n            FUN_002dac60();\n          }\n          lVar11 = lVar11 + 1;\n          puVar15 = puVar15 + -10;\n          puVar13 = puVar13 + -10;\n        } while (lVar11 != lVar12);" do (compound_statement "{\n          uVar2 = puVar15[-6];\n          uVar4 = puVar15[-5];\n          uVar5 = puVar15[-4];\n          uVar6 = puVar15[-3];\n          local_68 = (undefined8 *)puVar15[-2];\n          if (local_68 == puVar15) {\n            local_58 = *puVar15;\n            uStack_50 = puVar15[1];\n            local_68 = &local_58;\n          }\n          else {\n            local_58 = *puVar15;\n          }\n          sVar1 = puVar15[-1];\n          *(undefined1 *)puVar15 = 0;\n          puVar15[-1] = 0;\n          uVar3 = puVar13[-5];\n          local_48 = puVar15[2];\n          puVar15[-6] = puVar13[-6];\n          puVar15[-5] = uVar3;\n          local_40 = puVar15[3];\n          puVar15[-2] = puVar15;\n          puVar15[-4] = puVar13[-4];\n          *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n          if ((undefined8 *)puVar13[-2] == puVar13) {\n            sVar9 = puVar13[-1];\n            if (sVar9 != 0) {\n              if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }\n            }\n            puVar15[-1] = sVar9;\n            *(undefined1 *)(puVar15[-2] + sVar9) = 0;\n          }\n          else {\n            puVar15[-2] = (undefined8 *)puVar13[-2];\n            puVar15[-1] = puVar13[-1];\n            *puVar15 = *puVar13;\n            puVar13[-2] = puVar13;\n          }\n          puVar13[-1] = 0;\n          *(undefined1 *)puVar13[-2] = 0;\n          puVar15[2] = puVar13[2];\n          puVar15[3] = puVar13[3];\n          puVar7 = (undefined8 *)puVar13[-2];\n          puVar13[-6] = uVar2;\n          puVar13[-5] = uVar4;\n          puVar13[-4] = uVar5;\n          uStack_70 = (undefined4)uVar6;\n          *(undefined4 *)(puVar13 + -3) = uStack_70;\n          if (local_68 == &local_58) {\n            if (sVar1 != 0) {\n              if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n            }\n            puVar13[-1] = sVar1;\n            *(undefined1 *)((long)puVar7 + sVar1) = 0;\n            uVar2 = local_58;\n          }\n          else {\n            if (puVar7 == puVar13) {\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }\n            else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }\n            local_68 = &local_58;\n            uVar2 = local_58;\n          }\nLAB_0025fc78:\n          local_58 = uVar2;\n          *(undefined1 *)local_68 = 0;\n          puVar13[2] = local_48;\n          puVar13[3] = local_40;\n          if (local_68 != &local_58) {\n            FUN_002dac60();\n          }\n          lVar11 = lVar11 + 1;\n          puVar15 = puVar15 + -10;\n          puVar13 = puVar13 + -10;\n        }" { (expression_statement "uVar2 = puVar15[-6];" (assignment_expression "uVar2 = puVar15[-6]" identifier = (subscript_expression "puVar15[-6]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = puVar15[-5];" (assignment_expression "uVar4 = puVar15[-5]" identifier = (subscript_expression "puVar15[-5]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = puVar15[-4];" (assignment_expression "uVar5 = puVar15[-4]" identifier = (subscript_expression "puVar15[-4]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = puVar15[-3];" (assignment_expression "uVar6 = puVar15[-3]" identifier = (subscript_expression "puVar15[-3]" identifier [ number_literal ])) ;) (expression_statement "local_68 = (undefined8 *)puVar15[-2];" (assignment_expression "local_68 = (undefined8 *)puVar15[-2]" identifier = (cast_expression "(undefined8 *)puVar15[-2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar15[-2]" identifier [ number_literal ]))) ;) (if_statement "if (local_68 == puVar15) {\n            local_58 = *puVar15;\n            uStack_50 = puVar15[1];\n            local_68 = &local_58;\n          }\n          else {\n            local_58 = *puVar15;\n          }" if (parenthesized_expression "(local_68 == puVar15)" ( (binary_expression "local_68 == puVar15" identifier == identifier) )) (compound_statement "{\n            local_58 = *puVar15;\n            uStack_50 = puVar15[1];\n            local_68 = &local_58;\n          }" { (expression_statement "local_58 = *puVar15;" (assignment_expression "local_58 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;) (expression_statement "uStack_50 = puVar15[1];" (assignment_expression "uStack_50 = puVar15[1]" identifier = (subscript_expression "puVar15[1]" identifier [ number_literal ])) ;) (expression_statement "local_68 = &local_58;" (assignment_expression "local_68 = &local_58" identifier = (pointer_expression "&local_58" & identifier)) ;) }) (else_clause "else {\n            local_58 = *puVar15;\n          }" else (compound_statement "{\n            local_58 = *puVar15;\n          }" { (expression_statement "local_58 = *puVar15;" (assignment_expression "local_58 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;) }))) (expression_statement "sVar1 = puVar15[-1];" (assignment_expression "sVar1 = puVar15[-1]" identifier = (subscript_expression "puVar15[-1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)puVar15 = 0;" (assignment_expression "*(undefined1 *)puVar15 = 0" (pointer_expression "*(undefined1 *)puVar15" * (cast_expression "(undefined1 *)puVar15" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar15[-1] = 0;" (assignment_expression "puVar15[-1] = 0" (subscript_expression "puVar15[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar3 = puVar13[-5];" (assignment_expression "uVar3 = puVar13[-5]" identifier = (subscript_expression "puVar13[-5]" identifier [ number_literal ])) ;) (expression_statement "local_48 = puVar15[2];" (assignment_expression "local_48 = puVar15[2]" identifier = (subscript_expression "puVar15[2]" identifier [ number_literal ])) ;) (expression_statement "puVar15[-6] = puVar13[-6];" (assignment_expression "puVar15[-6] = puVar13[-6]" (subscript_expression "puVar15[-6]" identifier [ number_literal ]) = (subscript_expression "puVar13[-6]" identifier [ number_literal ])) ;) (expression_statement "puVar15[-5] = uVar3;" (assignment_expression "puVar15[-5] = uVar3" (subscript_expression "puVar15[-5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_40 = puVar15[3];" (assignment_expression "local_40 = puVar15[3]" identifier = (subscript_expression "puVar15[3]" identifier [ number_literal ])) ;) (expression_statement "puVar15[-2] = puVar15;" (assignment_expression "puVar15[-2] = puVar15" (subscript_expression "puVar15[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[-4] = puVar13[-4];" (assignment_expression "puVar15[-4] = puVar13[-4]" (subscript_expression "puVar15[-4]" identifier [ number_literal ]) = (subscript_expression "puVar13[-4]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);" (assignment_expression "*(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3)" (pointer_expression "*(undefined4 *)(puVar15 + -3)" * (cast_expression "(undefined4 *)(puVar15 + -3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -3)" ( (binary_expression "puVar15 + -3" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar13 + -3)" * (cast_expression "(undefined4 *)(puVar13 + -3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -3)" ( (binary_expression "puVar13 + -3" identifier + number_literal) ))))) ;) (if_statement "if ((undefined8 *)puVar13[-2] == puVar13) {\n            sVar9 = puVar13[-1];\n            if (sVar9 != 0) {\n              if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }\n            }\n            puVar15[-1] = sVar9;\n            *(undefined1 *)(puVar15[-2] + sVar9) = 0;\n          }\n          else {\n            puVar15[-2] = (undefined8 *)puVar13[-2];\n            puVar15[-1] = puVar13[-1];\n            *puVar15 = *puVar13;\n            puVar13[-2] = puVar13;\n          }" if (parenthesized_expression "((undefined8 *)puVar13[-2] == puVar13)" ( (binary_expression "(undefined8 *)puVar13[-2] == puVar13" (cast_expression "(undefined8 *)puVar13[-2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[-2]" identifier [ number_literal ])) == identifier) )) (compound_statement "{\n            sVar9 = puVar13[-1];\n            if (sVar9 != 0) {\n              if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }\n            }\n            puVar15[-1] = sVar9;\n            *(undefined1 *)(puVar15[-2] + sVar9) = 0;\n          }" { (expression_statement "sVar9 = puVar13[-1];" (assignment_expression "sVar9 = puVar13[-1]" identifier = (subscript_expression "puVar13[-1]" identifier [ number_literal ])) ;) (if_statement "if (sVar9 != 0) {\n              if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }\n            }" if (parenthesized_expression "(sVar9 != 0)" ( (binary_expression "sVar9 != 0" identifier != number_literal) )) (compound_statement "{\n              if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }\n            }" { (if_statement "if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }" if (parenthesized_expression "(sVar9 == 1)" ( (binary_expression "sVar9 == 1" identifier == number_literal) )) (compound_statement "{\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }" { (expression_statement "*(undefined1 *)puVar15 = *(undefined1 *)puVar13;" (assignment_expression "*(undefined1 *)puVar15 = *(undefined1 *)puVar13" (pointer_expression "*(undefined1 *)puVar15" * (cast_expression "(undefined1 *)puVar15" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined1 *)puVar13" * (cast_expression "(undefined1 *)puVar13" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "sVar9 = puVar13[-1];" (assignment_expression "sVar9 = puVar13[-1]" identifier = (subscript_expression "puVar13[-1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }" else (compound_statement "{\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }" { (expression_statement "memcpy(puVar15,puVar13,sVar9);" (call_expression "memcpy(puVar15,puVar13,sVar9)" identifier (argument_list "(puVar15,puVar13,sVar9)" ( identifier , identifier , identifier ))) ;) (expression_statement "sVar9 = puVar13[-1];" (assignment_expression "sVar9 = puVar13[-1]" identifier = (subscript_expression "puVar13[-1]" identifier [ number_literal ])) ;) }))) })) (expression_statement "puVar15[-1] = sVar9;" (assignment_expression "puVar15[-1] = sVar9" (subscript_expression "puVar15[-1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(puVar15[-2] + sVar9) = 0;" (assignment_expression "*(undefined1 *)(puVar15[-2] + sVar9) = 0" (pointer_expression "*(undefined1 *)(puVar15[-2] + sVar9)" * (cast_expression "(undefined1 *)(puVar15[-2] + sVar9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15[-2] + sVar9)" ( (binary_expression "puVar15[-2] + sVar9" (subscript_expression "puVar15[-2]" identifier [ number_literal ]) + identifier) )))) = number_literal) ;) }) (else_clause "else {\n            puVar15[-2] = (undefined8 *)puVar13[-2];\n            puVar15[-1] = puVar13[-1];\n            *puVar15 = *puVar13;\n            puVar13[-2] = puVar13;\n          }" else (compound_statement "{\n            puVar15[-2] = (undefined8 *)puVar13[-2];\n            puVar15[-1] = puVar13[-1];\n            *puVar15 = *puVar13;\n            puVar13[-2] = puVar13;\n          }" { (expression_statement "puVar15[-2] = (undefined8 *)puVar13[-2];" (assignment_expression "puVar15[-2] = (undefined8 *)puVar13[-2]" (subscript_expression "puVar15[-2]" identifier [ number_literal ]) = (cast_expression "(undefined8 *)puVar13[-2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[-2]" identifier [ number_literal ]))) ;) (expression_statement "puVar15[-1] = puVar13[-1];" (assignment_expression "puVar15[-1] = puVar13[-1]" (subscript_expression "puVar15[-1]" identifier [ number_literal ]) = (subscript_expression "puVar13[-1]" identifier [ number_literal ])) ;) (expression_statement "*puVar15 = *puVar13;" (assignment_expression "*puVar15 = *puVar13" (pointer_expression "*puVar15" * identifier) = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "puVar13[-2] = puVar13;" (assignment_expression "puVar13[-2] = puVar13" (subscript_expression "puVar13[-2]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "puVar13[-1] = 0;" (assignment_expression "puVar13[-1] = 0" (subscript_expression "puVar13[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)puVar13[-2] = 0;" (assignment_expression "*(undefined1 *)puVar13[-2] = 0" (pointer_expression "*(undefined1 *)puVar13[-2]" * (cast_expression "(undefined1 *)puVar13[-2]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[-2]" identifier [ number_literal ]))) = number_literal) ;) (expression_statement "puVar15[2] = puVar13[2];" (assignment_expression "puVar15[2] = puVar13[2]" (subscript_expression "puVar15[2]" identifier [ number_literal ]) = (subscript_expression "puVar13[2]" identifier [ number_literal ])) ;) (expression_statement "puVar15[3] = puVar13[3];" (assignment_expression "puVar15[3] = puVar13[3]" (subscript_expression "puVar15[3]" identifier [ number_literal ]) = (subscript_expression "puVar13[3]" identifier [ number_literal ])) ;) (expression_statement "puVar7 = (undefined8 *)puVar13[-2];" (assignment_expression "puVar7 = (undefined8 *)puVar13[-2]" identifier = (cast_expression "(undefined8 *)puVar13[-2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[-2]" identifier [ number_literal ]))) ;) (expression_statement "puVar13[-6] = uVar2;" (assignment_expression "puVar13[-6] = uVar2" (subscript_expression "puVar13[-6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[-5] = uVar4;" (assignment_expression "puVar13[-5] = uVar4" (subscript_expression "puVar13[-5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[-4] = uVar5;" (assignment_expression "puVar13[-4] = uVar5" (subscript_expression "puVar13[-4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uStack_70 = (undefined4)uVar6;" (assignment_expression "uStack_70 = (undefined4)uVar6" identifier = (cast_expression "(undefined4)uVar6" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) (expression_statement "*(undefined4 *)(puVar13 + -3) = uStack_70;" (assignment_expression "*(undefined4 *)(puVar13 + -3) = uStack_70" (pointer_expression "*(undefined4 *)(puVar13 + -3)" * (cast_expression "(undefined4 *)(puVar13 + -3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -3)" ( (binary_expression "puVar13 + -3" identifier + number_literal) )))) = identifier) ;) (if_statement "if (local_68 == &local_58) {\n            if (sVar1 != 0) {\n              if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n            }\n            puVar13[-1] = sVar1;\n            *(undefined1 *)((long)puVar7 + sVar1) = 0;\n            uVar2 = local_58;\n          }\n          else {\n            if (puVar7 == puVar13) {\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }\n            else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }\n            local_68 = &local_58;\n            uVar2 = local_58;\n          }" if (parenthesized_expression "(local_68 == &local_58)" ( (binary_expression "local_68 == &local_58" identifier == (pointer_expression "&local_58" & identifier)) )) (compound_statement "{\n            if (sVar1 != 0) {\n              if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n            }\n            puVar13[-1] = sVar1;\n            *(undefined1 *)((long)puVar7 + sVar1) = 0;\n            uVar2 = local_58;\n          }" { (if_statement "if (sVar1 != 0) {\n              if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n            }" if (parenthesized_expression "(sVar1 != 0)" ( (binary_expression "sVar1 != 0" identifier != number_literal) )) (compound_statement "{\n              if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n            }" { (if_statement "if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }" if (parenthesized_expression "(sVar1 == 1)" ( (binary_expression "sVar1 == 1" identifier == number_literal) )) (compound_statement "{\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }" { (expression_statement "*(undefined1 *)puVar7 = (undefined1)local_58;" (assignment_expression "*(undefined1 *)puVar7 = (undefined1)local_58" (pointer_expression "*(undefined1 *)puVar7" * (cast_expression "(undefined1 *)puVar7" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(undefined1)local_58" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "puVar7 = (undefined8 *)puVar13[-2];" (assignment_expression "puVar7 = (undefined8 *)puVar13[-2]" identifier = (cast_expression "(undefined8 *)puVar13[-2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[-2]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }" else (compound_statement "{\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }" { (expression_statement "memcpy(puVar7,&local_58,sVar1);" (call_expression "memcpy(puVar7,&local_58,sVar1)" identifier (argument_list "(puVar7,&local_58,sVar1)" ( identifier , (pointer_expression "&local_58" & identifier) , identifier ))) ;) (expression_statement "puVar7 = (undefined8 *)puVar13[-2];" (assignment_expression "puVar7 = (undefined8 *)puVar13[-2]" identifier = (cast_expression "(undefined8 *)puVar13[-2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[-2]" identifier [ number_literal ]))) ;) }))) })) (expression_statement "puVar13[-1] = sVar1;" (assignment_expression "puVar13[-1] = sVar1" (subscript_expression "puVar13[-1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((long)puVar7 + sVar1) = 0;" (assignment_expression "*(undefined1 *)((long)puVar7 + sVar1) = 0" (pointer_expression "*(undefined1 *)((long)puVar7 + sVar1)" * (cast_expression "(undefined1 *)((long)puVar7 + sVar1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar7 + sVar1)" ( (binary_expression "(long)puVar7 + sVar1" (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "uVar2 = local_58;" (assignment_expression "uVar2 = local_58" identifier = identifier) ;) }) (else_clause "else {\n            if (puVar7 == puVar13) {\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }\n            else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }\n            local_68 = &local_58;\n            uVar2 = local_58;\n          }" else (compound_statement "{\n            if (puVar7 == puVar13) {\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }\n            else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }\n            local_68 = &local_58;\n            uVar2 = local_58;\n          }" { (if_statement "if (puVar7 == puVar13) {\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }\n            else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }" if (parenthesized_expression "(puVar7 == puVar13)" ( (binary_expression "puVar7 == puVar13" identifier == identifier) )) (compound_statement "{\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }" { (expression_statement "puVar13[-2] = local_68;" (assignment_expression "puVar13[-2] = local_68" (subscript_expression "puVar13[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[-1] = sVar1;" (assignment_expression "puVar13[-1] = sVar1" (subscript_expression "puVar13[-1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar13 = local_58;" (assignment_expression "*puVar13 = local_58" (pointer_expression "*puVar13" * identifier) = identifier) ;) }) (else_clause "else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }" else (compound_statement "{\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }" { (expression_statement "uVar2 = *puVar13;" (assignment_expression "uVar2 = *puVar13" identifier = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "puVar13[-2] = local_68;" (assignment_expression "puVar13[-2] = local_68" (subscript_expression "puVar13[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[-1] = sVar1;" (assignment_expression "puVar13[-1] = sVar1" (subscript_expression "puVar13[-1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar13 = local_58;" (assignment_expression "*puVar13 = local_58" (pointer_expression "*puVar13" * identifier) = identifier) ;) (expression_statement "local_68 = puVar7;" (assignment_expression "local_68 = puVar7" identifier = identifier) ;) (if_statement "if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;" if (parenthesized_expression "(puVar7 != (undefined8 *)0x0)" ( (binary_expression "puVar7 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0025fc78;" goto statement_identifier ;)) }))) (expression_statement "local_68 = &local_58;" (assignment_expression "local_68 = &local_58" identifier = (pointer_expression "&local_58" & identifier)) ;) (expression_statement "uVar2 = local_58;" (assignment_expression "uVar2 = local_58" identifier = identifier) ;) }))) (labeled_statement "LAB_0025fc78:\n          local_58 = uVar2;" statement_identifier : (expression_statement "local_58 = uVar2;" (assignment_expression "local_58 = uVar2" identifier = identifier) ;)) (expression_statement "*(undefined1 *)local_68 = 0;" (assignment_expression "*(undefined1 *)local_68 = 0" (pointer_expression "*(undefined1 *)local_68" * (cast_expression "(undefined1 *)local_68" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar13[2] = local_48;" (assignment_expression "puVar13[2] = local_48" (subscript_expression "puVar13[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[3] = local_40;" (assignment_expression "puVar13[3] = local_40" (subscript_expression "puVar13[3]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (local_68 != &local_58) {\n            FUN_002dac60();\n          }" if (parenthesized_expression "(local_68 != &local_58)" ( (binary_expression "local_68 != &local_58" identifier != (pointer_expression "&local_58" & identifier)) )) (compound_statement "{\n            FUN_002dac60();\n          }" { (expression_statement "FUN_002dac60();" (call_expression "FUN_002dac60()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "lVar11 = lVar11 + 1;" (assignment_expression "lVar11 = lVar11 + 1" identifier = (binary_expression "lVar11 + 1" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar15 + -10;" (assignment_expression "puVar15 = puVar15 + -10" identifier = (binary_expression "puVar15 + -10" identifier + number_literal)) ;) (expression_statement "puVar13 = puVar13 + -10;" (assignment_expression "puVar13 = puVar13 + -10" identifier = (binary_expression "puVar13 + -10" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar11 != lVar12)" ( (binary_expression "lVar11 != lVar12" identifier != identifier) )) ;) (expression_statement "local_a0 = local_a0 + lVar11 * -0x50;" (assignment_expression "local_a0 = local_a0 + lVar11 * -0x50" identifier = (binary_expression "local_a0 + lVar11 * -0x50" identifier + (binary_expression "lVar11 * -0x50" identifier * number_literal))) ;) })) (expression_statement "lVar12 = local_a8 % lVar10;" (assignment_expression "lVar12 = local_a8 % lVar10" identifier = (binary_expression "local_a8 % lVar10" identifier % identifier)) ;) (if_statement "if (lVar12 == 0) {\n        return lVar8;\n      }" if (parenthesized_expression "(lVar12 == 0)" ( (binary_expression "lVar12 == 0" identifier == number_literal) )) (compound_statement "{\n        return lVar8;\n      }" { (return_statement "return lVar8;" return identifier ;) })) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n/* DWARF original name: __rotate<__gnu_cxx::__normal_iterator<gold::Input_section_info*,\n   std::vector<gold::Input_section_info> > > */\n\n__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n std::_V2::\n __rotate<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>_>\n           (Input_section_info *__first,Input_section_info *__middle,Input_section_info *__last)\n\n{\n  Input_section_info *pIVar1;\n  undefined8 uVar2;\n  size_type sVar3;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar4;\n  __normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n  _Var5;\n  size_t sVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar10;\n  long lVar11;\n  Input_section_info *pIVar12;\n  pointer pcVar13;\n  size_type *psVar14;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar15;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar16;\n  long local_a8;\n  Input_section_info *local_a0;\n  Input_section_info __tmp;\n  \n  _Var5._M_current = __last;\n  if ((__first == __middle) || (_Var5._M_current = __first, __last == __middle)) {\n    return (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n            )_Var5._M_current;\n  }\n  lVar7 = (long)__middle - (long)__first >> 4;\n  local_a8 = ((long)__last - (long)__first >> 4) * -0x3333333333333333;\n  lVar8 = lVar7 * -0x3333333333333333;\n  pIVar1 = (Input_section_info *)((long)__first + ((long)__last - (long)__middle));\n  if (local_a8 + lVar7 * 0x3333333333333333 == lVar8) {\n    paVar15 = &(__first->section_name_).field_2;\n    paVar10 = &(__middle->section_name_).field_2;\n    paVar16 = &__tmp.section_name_.field_2;\n    do {\n      __tmp.input_section_._0_8_ = *(undefined8 *)(paVar15 + -3);\n      __tmp.input_section_.u1_ = *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar15 + -0x28);\n      __tmp.section_name_._M_dataplus._M_p = (((string *)(paVar15 + -1))->_M_dataplus)._M_p;\n      __tmp.input_section_.u2_ = *(anon_union_8_4_139239c7_for_u2_ *)(paVar15 + -2);\n      __tmp.input_section_._24_8_ = *(undefined8 *)((long)paVar15 + -0x18);\n      if (paVar15 ==\n          (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)__tmp.section_name_._M_dataplus._M_p) {\n        __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n        __tmp.section_name_.field_2._8_8_ = *(undefined8 *)((long)paVar15 + 8);\n        __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n      }\n      else {\n        __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n      }\n      __tmp.section_name_._M_string_length = *(size_type *)((long)paVar15 + -8);\n      paVar15->_M_local_buf[0] = '\0';\n      *(size_type *)((long)paVar15 + -8) = 0;\n      sVar3 = *(size_type *)((long)paVar10 + -0x28);\n      __tmp.size_ = paVar15[1]._M_allocated_capacity;\n      paVar15[-3]._M_allocated_capacity = paVar10[-3]._M_allocated_capacity;\n      *(size_type *)((long)paVar15 + -0x28) = sVar3;\n      __tmp.addralign_ = *(uint64_t *)((long)paVar15 + 0x18);\n      (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)paVar15;\n      paVar15[-2]._M_allocated_capacity = paVar10[-2]._M_allocated_capacity;\n      *(undefined4 *)((long)paVar15 + -0x18) = *(undefined4 *)((long)paVar10 + -0x18);\n      psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n      if (paVar10 ==\n          (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)psVar14) {\n        sVar6 = *(size_type *)((long)paVar10 + -8);\n        if (sVar6 != 0) {\n          if (sVar6 == 1) {\n            paVar15->_M_local_buf[0] = paVar10->_M_local_buf[0];\n            sVar6 = *(size_type *)((long)paVar10 + -8);\n          }\n          else {\n            memcpy(paVar15,paVar10,sVar6);\n            sVar6 = *(size_type *)((long)paVar10 + -8);\n          }\n        }\n        *(size_t *)((long)paVar15 + -8) = sVar6;\n        paVar15->_M_local_buf[sVar6] = '\0';\n        paVar4 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)psVar14[-2];\n      }\n      else {\n        (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)psVar14;\n        *(size_type *)((long)paVar15 + -8) = *(size_type *)((long)paVar10 + -8);\n        paVar15->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n        (((string *)(paVar10 + -1))->_M_dataplus)._M_p = (pointer)paVar10;\n        paVar4 = paVar10;\n      }\n      *(size_type *)((long)paVar10 + -8) = 0;\n      paVar4->_M_local_buf[0] = '\0';\n      paVar15[1]._M_allocated_capacity = paVar10[1]._M_allocated_capacity;\n      *(size_type *)((long)paVar15 + 0x18) = *(size_type *)((long)paVar10 + 0x18);\n      paVar10[-3]._M_allocated_capacity = __tmp.input_section_._0_8_;\n      *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar10 + -0x28) = __tmp.input_section_.u1_;\n      psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n      *(anon_union_8_4_139239c7_for_u2_ *)(paVar10 + -2) = __tmp.input_section_.u2_;\n      *(uint *)((long)paVar10 + -0x18) = __tmp.input_section_.section_order_index_;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)__tmp.section_name_._M_dataplus._M_p == paVar16) {\n        if (__tmp.section_name_._M_string_length != 0) {\n          if (__tmp.section_name_._M_string_length == 1) {\n            *(char *)psVar14 = __tmp.section_name_.field_2._M_local_buf[0];\n            psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n          }\n          else {\n            memcpy(psVar14,paVar16,__tmp.section_name_._M_string_length);\n            psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n          }\n        }\n        *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n        *(char *)((long)psVar14 + __tmp.section_name_._M_string_length) = '\0';\n      }\n      else if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)psVar14 == paVar10) {\n        (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n        *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n        paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n        __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n      }\n      else {\n        sVar3 = paVar10->_M_allocated_capacity;\n        (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n        *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n        paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n        __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n        if (psVar14 != (size_type *)0x0) {\n          __tmp.section_name_._M_dataplus._M_p = (pointer)psVar14;\n          __tmp.section_name_.field_2._M_allocated_capacity = sVar3;\n        }\n      }\n      __tmp.section_name_._M_string_length = 0;\n      *__tmp.section_name_._M_dataplus._M_p = '\0';\n      paVar10[1]._M_allocated_capacity = __tmp.size_;\n      *(uint64_t *)((long)paVar10 + 0x18) = __tmp.addralign_;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)__tmp.section_name_._M_dataplus._M_p != paVar16) {\n        operator_delete(__tmp.section_name_._M_dataplus._M_p);\n      }\n      paVar10 = paVar10 + 5;\n      paVar15 = paVar15 + 5;\n    } while (paVar10 !=\n             (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n              *)(__middle[1].section_name_.field_2._M_local_buf +\n                ((long)__middle + (-0x50 - (long)__first) & 0xfffffffffffffff0)));\n    return (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n            )__middle;\n  }\n  lVar11 = local_a8 + lVar7 * 0x3333333333333333;\n  lVar9 = lVar8;\n  local_a0 = __first;\n  if (lVar11 == lVar8 || SBORROW8(lVar11,lVar8) != lVar11 + lVar7 * 0x3333333333333333 < 0)\n  goto LAB_0025fb1a;\n  do {\n    if (0 < lVar11) {\n      lVar7 = 0;\n      paVar16 = &local_a0[lVar8].section_name_.field_2;\n      paVar15 = &(local_a0->section_name_).field_2;\n      paVar10 = &__tmp.section_name_.field_2;\n      do {\n        __tmp.input_section_._0_8_ = *(undefined8 *)(paVar15 + -3);\n        __tmp.input_section_.u1_ = *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar15 + -0x28);\n        __tmp.input_section_.u2_ = *(anon_union_8_4_139239c7_for_u2_ *)(paVar15 + -2);\n        __tmp.input_section_._24_8_ = *(size_type *)((long)paVar15 + -0x18);\n        __tmp.section_name_._M_dataplus._M_p = (((string *)(paVar15 + -1))->_M_dataplus)._M_p;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p == paVar15) {\n          __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n          __tmp.section_name_.field_2._8_8_ = *(size_type *)((long)paVar15 + 8);\n          __tmp.section_name_._M_dataplus._M_p = (pointer)paVar10;\n        }\n        else {\n          __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n        }\n        __tmp.section_name_._M_string_length = *(size_type *)((long)paVar15 + -8);\n        paVar15->_M_local_buf[0] = '\0';\n        *(size_type *)((long)paVar15 + -8) = 0;\n        sVar3 = *(size_type *)((long)paVar16 + -0x28);\n        __tmp.size_ = paVar15[1]._M_allocated_capacity;\n        paVar15[-3]._M_allocated_capacity = paVar16[-3]._M_allocated_capacity;\n        *(size_type *)((long)paVar15 + -0x28) = sVar3;\n        __tmp.addralign_ = *(size_type *)((long)paVar15 + 0x18);\n        (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)paVar15;\n        paVar15[-2]._M_allocated_capacity = paVar16[-2]._M_allocated_capacity;\n        *(undefined4 *)((long)paVar15 + -0x18) = *(undefined4 *)((long)paVar16 + -0x18);\n        pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar13 == paVar16) {\n          sVar6 = *(size_type *)((long)paVar16 + -8);\n          if (sVar6 != 0) {\n            if (sVar6 == 1) {\n              paVar15->_M_local_buf[0] = paVar16->_M_local_buf[0];\n              sVar6 = *(size_type *)((long)paVar16 + -8);\n            }\n            else {\n              memcpy(paVar15,paVar16,sVar6);\n              sVar6 = *(size_type *)((long)paVar16 + -8);\n            }\n          }\n          *(size_t *)((long)paVar15 + -8) = sVar6;\n          paVar15->_M_local_buf[sVar6] = '\0';\n          paVar4 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n        }\n        else {\n          (((string *)(paVar15 + -1))->_M_dataplus)._M_p = pcVar13;\n          *(size_type *)((long)paVar15 + -8) = *(size_type *)((long)paVar16 + -8);\n          paVar15->_M_allocated_capacity = paVar16->_M_allocated_capacity;\n          (((string *)(paVar16 + -1))->_M_dataplus)._M_p = (pointer)paVar16;\n          paVar4 = paVar16;\n        }\n        *(size_type *)((long)paVar16 + -8) = 0;\n        paVar4->_M_local_buf[0] = '\0';\n        paVar15[1]._M_allocated_capacity = paVar16[1]._M_allocated_capacity;\n        *(size_type *)((long)paVar15 + 0x18) = *(size_type *)((long)paVar16 + 0x18);\n        paVar16[-3]._M_allocated_capacity = __tmp.input_section_._0_8_;\n        *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar16 + -0x28) = __tmp.input_section_.u1_;\n        pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n        *(anon_union_8_4_139239c7_for_u2_ *)(paVar16 + -2) = __tmp.input_section_.u2_;\n        *(uint *)((long)paVar16 + -0x18) = __tmp.input_section_.section_order_index_;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p == paVar10) {\n          if (__tmp.section_name_._M_string_length != 0) {\n            if (__tmp.section_name_._M_string_length == 1) {\n              *pcVar13 = __tmp.section_name_.field_2._M_local_buf[0];\n              pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n            }\n            else {\n              memcpy(pcVar13,paVar10,__tmp.section_name_._M_string_length);\n              pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n            }\n          }\n          *(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length;\n          pcVar13[__tmp.section_name_._M_string_length] = '\0';\n          uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n        }\n        else {\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)pcVar13 == paVar16) {\n            (((string *)(paVar16 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n            *(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length;\n            paVar16->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n          }\n          else {\n            uVar2 = paVar16->_M_allocated_capacity;\n            (((string *)(paVar16 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n            *(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length;\n            paVar16->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n            __tmp.section_name_._M_dataplus._M_p = pcVar13;\n            if (pcVar13 != (pointer)0x0) goto LAB_0025f996;\n          }\n          __tmp.section_name_._M_dataplus._M_p = (pointer)paVar10;\n          uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n        }\nLAB_0025f996:\n        __tmp.section_name_.field_2._M_allocated_capacity = uVar2;\n        __tmp.section_name_._M_string_length = 0;\n        *__tmp.section_name_._M_dataplus._M_p = '\0';\n        paVar16[1]._M_allocated_capacity = __tmp.size_;\n        *(uint64_t *)((long)paVar16 + 0x18) = __tmp.addralign_;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p != paVar10) {\n          operator_delete(__tmp.section_name_._M_dataplus._M_p);\n        }\n        lVar7 = lVar7 + 1;\n        paVar15 = paVar15 + 5;\n        paVar16 = paVar16 + 5;\n      } while (lVar11 != lVar7);\n      local_a0 = local_a0 + lVar11;\n    }\n    if (local_a8 % lVar8 == 0) {\n      return (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n              )pIVar1;\n    }\n    lVar9 = lVar8 - local_a8 % lVar8;\n    lVar7 = lVar8;\n    while (lVar11 = lVar7 - lVar9, lVar8 = lVar9, local_a8 = lVar7, lVar11 <= lVar9) {\nLAB_0025fb1a:\n      lVar7 = lVar11;\n      pIVar12 = local_a0 + (local_a8 - lVar7);\n      if (0 < lVar9) {\n        paVar15 = &pIVar12[-1].section_name_.field_2;\n        paVar10 = &local_a0[local_a8 + -1].section_name_.field_2;\n        lVar8 = 0;\n        paVar16 = &__tmp.section_name_.field_2;\n        do {\n          __tmp.input_section_._0_8_ = *(undefined8 *)(paVar15 + -3);\n          __tmp.input_section_.u1_ = *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar15 + -0x28);\n          __tmp.input_section_.u2_ = *(anon_union_8_4_139239c7_for_u2_ *)(paVar15 + -2);\n          __tmp.input_section_._24_8_ = *(undefined8 *)((long)paVar15 + -0x18);\n          __tmp.section_name_._M_dataplus._M_p = (((string *)(paVar15 + -1))->_M_dataplus)._M_p;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)__tmp.section_name_._M_dataplus._M_p == paVar15) {\n            __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n            __tmp.section_name_.field_2._8_8_ = *(undefined8 *)((long)paVar15 + 8);\n            __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n          }\n          else {\n            __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n          }\n          __tmp.section_name_._M_string_length = *(size_type *)((long)paVar15 + -8);\n          paVar15->_M_local_buf[0] = '\0';\n          *(size_type *)((long)paVar15 + -8) = 0;\n          sVar3 = *(size_type *)((long)paVar10 + -0x28);\n          __tmp.size_ = paVar15[1]._M_allocated_capacity;\n          paVar15[-3]._M_allocated_capacity = paVar10[-3]._M_allocated_capacity;\n          *(size_type *)((long)paVar15 + -0x28) = sVar3;\n          __tmp.addralign_ = *(uint64_t *)((long)paVar15 + 0x18);\n          (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)paVar15;\n          paVar15[-2]._M_allocated_capacity = paVar10[-2]._M_allocated_capacity;\n          *(undefined4 *)((long)paVar15 + -0x18) = *(undefined4 *)((long)paVar10 + -0x18);\n          psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)psVar14 == paVar10) {\n            sVar6 = *(size_type *)((long)paVar10 + -8);\n            if (sVar6 != 0) {\n              if (sVar6 == 1) {\n                paVar15->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                sVar6 = *(size_type *)((long)paVar10 + -8);\n              }\n              else {\n                memcpy(paVar15,paVar10,sVar6);\n                sVar6 = *(size_type *)((long)paVar10 + -8);\n              }\n            }\n            pcVar13 = (((string *)(paVar15 + -1))->_M_dataplus)._M_p;\n            *(size_t *)((long)paVar15 + -8) = sVar6;\n            pcVar13[sVar6] = '\0';\n          }\n          else {\n            (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)psVar14;\n            *(size_type *)((long)paVar15 + -8) = *(size_type *)((long)paVar10 + -8);\n            paVar15->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n            (((string *)(paVar10 + -1))->_M_dataplus)._M_p = (pointer)paVar10;\n          }\n          *(size_type *)((long)paVar10 + -8) = 0;\n          *(((string *)(paVar10 + -1))->_M_dataplus)._M_p = '\0';\n          paVar15[1]._M_allocated_capacity = paVar10[1]._M_allocated_capacity;\n          *(size_type *)((long)paVar15 + 0x18) = *(size_type *)((long)paVar10 + 0x18);\n          psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n          paVar10[-3]._M_allocated_capacity = __tmp.input_section_._0_8_;\n          *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar10 + -0x28) = __tmp.input_section_.u1_;\n          *(anon_union_8_4_139239c7_for_u2_ *)(paVar10 + -2) = __tmp.input_section_.u2_;\n          *(uint *)((long)paVar10 + -0x18) = __tmp.input_section_.section_order_index_;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)__tmp.section_name_._M_dataplus._M_p == paVar16) {\n            if (__tmp.section_name_._M_string_length != 0) {\n              if (__tmp.section_name_._M_string_length == 1) {\n                *(char *)psVar14 = __tmp.section_name_.field_2._M_local_buf[0];\n                psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n              }\n              else {\n                memcpy(psVar14,paVar16,__tmp.section_name_._M_string_length);\n                psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n              }\n            }\n            *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n            *(char *)((long)psVar14 + __tmp.section_name_._M_string_length) = '\0';\n            uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n          }\n          else {\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)psVar14 == paVar10) {\n              (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n              *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n              paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n            }\n            else {\n              uVar2 = paVar10->_M_allocated_capacity;\n              (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n              *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n              paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n              __tmp.section_name_._M_dataplus._M_p = (pointer)psVar14;\n              if (psVar14 != (size_type *)0x0) goto LAB_0025fc78;\n            }\n            __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n            uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n          }\nLAB_0025fc78:\n          __tmp.section_name_.field_2._M_allocated_capacity = uVar2;\n          __tmp.section_name_._M_string_length = 0;\n          *__tmp.section_name_._M_dataplus._M_p = '\0';\n          paVar10[1]._M_allocated_capacity = __tmp.size_;\n          *(uint64_t *)((long)paVar10 + 0x18) = __tmp.addralign_;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)__tmp.section_name_._M_dataplus._M_p != paVar16) {\n            operator_delete(__tmp.section_name_._M_dataplus._M_p);\n          }\n          lVar8 = lVar8 + 1;\n          paVar15 = paVar15 + -5;\n          paVar10 = paVar10 + -5;\n        } while (lVar8 != lVar9);\n        pIVar12 = pIVar12 + -lVar8;\n      }\n      local_a0 = pIVar12;\n      lVar9 = local_a8 % lVar7;\n      if (lVar9 == 0) {\n        return (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n                )pIVar1;\n      }\n    }\n  } while( true );\n}\n\n" comment comment (ERROR "__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info," (binary_expression "__normal_iterator<gold::Input_section_info*,_std::vector<gold" (binary_expression "__normal_iterator<gold::Input_section_info*,_std" (binary_expression "__normal_iterator<gold" identifier < identifier) (ERROR "::Input_section_info" : : identifier) * (ERROR "," ,) identifier) (ERROR "::vector" : : identifier) < identifier) : : identifier ,) (labeled_statement "_std::allocator<gold::Input_section_info>_>_>\n std::_V2::\n __rotate<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info>_>_>\n           (Input_section_info *__first,Input_section_info *__middle,Input_section_info *__last)" statement_identifier (ERROR "::allocator<gold::Input_section_info>_>_>\n std::_V2::\n __rotate<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std::vector<gold:" : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Input_section_info>_>_>\n std" (binary_expression "Input_section_info>_>_" (binary_expression "Input_section_info>_" identifier > identifier) > identifier) > identifier) : : (comma_expression "_V2::\n __rotate<__gnu_cxx::__normal_iterator<gold::Input_section_info*,_std" identifier (ERROR "::\n __rotate<__gnu_cxx::__normal_iterator<gold::Input_section_info*" : : (binary_expression "__rotate<__gnu_cxx" identifier < identifier) : : (binary_expression "__normal_iterator<gold" identifier < identifier) : : identifier *) , identifier) : : (binary_expression "vector<gold" identifier < identifier) :) : (expression_statement "Input_section_info>_>_>\n           (Input_section_info *__first,Input_section_info *__middle,Input_section_info *__last)" (binary_expression "Input_section_info>_>_>\n           (Input_section_info *__first,Input_section_info *__middle,Input_section_info *__last)" (binary_expression "Input_section_info>_>_" (binary_expression "Input_section_info>_" identifier > identifier) > identifier) > (parenthesized_expression "(Input_section_info *__first,Input_section_info *__middle,Input_section_info *__last)" ( (comma_expression "Input_section_info *__first,Input_section_info *__middle,Input_section_info *__last" (binary_expression "Input_section_info *__first" identifier * identifier) , (comma_expression "Input_section_info *__middle,Input_section_info *__last" (binary_expression "Input_section_info *__middle" identifier * identifier) , (binary_expression "Input_section_info *__last" identifier * identifier))) ))) ;)) (compound_statement "{\n  Input_section_info *pIVar1;\n  undefined8 uVar2;\n  size_type sVar3;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar4;\n  __normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n  _Var5;\n  size_t sVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar10;\n  long lVar11;\n  Input_section_info *pIVar12;\n  pointer pcVar13;\n  size_type *psVar14;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar15;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar16;\n  long local_a8;\n  Input_section_info *local_a0;\n  Input_section_info __tmp;\n  \n  _Var5._M_current = __last;\n  if ((__first == __middle) || (_Var5._M_current = __first, __last == __middle)) {\n    return (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n            )_Var5._M_current;\n  }\n  lVar7 = (long)__middle - (long)__first >> 4;\n  local_a8 = ((long)__last - (long)__first >> 4) * -0x3333333333333333;\n  lVar8 = lVar7 * -0x3333333333333333;\n  pIVar1 = (Input_section_info *)((long)__first + ((long)__last - (long)__middle));\n  if (local_a8 + lVar7 * 0x3333333333333333 == lVar8) {\n    paVar15 = &(__first->section_name_).field_2;\n    paVar10 = &(__middle->section_name_).field_2;\n    paVar16 = &__tmp.section_name_.field_2;\n    do {\n      __tmp.input_section_._0_8_ = *(undefined8 *)(paVar15 + -3);\n      __tmp.input_section_.u1_ = *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar15 + -0x28);\n      __tmp.section_name_._M_dataplus._M_p = (((string *)(paVar15 + -1))->_M_dataplus)._M_p;\n      __tmp.input_section_.u2_ = *(anon_union_8_4_139239c7_for_u2_ *)(paVar15 + -2);\n      __tmp.input_section_._24_8_ = *(undefined8 *)((long)paVar15 + -0x18);\n      if (paVar15 ==\n          (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)__tmp.section_name_._M_dataplus._M_p) {\n        __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n        __tmp.section_name_.field_2._8_8_ = *(undefined8 *)((long)paVar15 + 8);\n        __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n      }\n      else {\n        __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n      }\n      __tmp.section_name_._M_string_length = *(size_type *)((long)paVar15 + -8);\n      paVar15->_M_local_buf[0] = '\0';\n      *(size_type *)((long)paVar15 + -8) = 0;\n      sVar3 = *(size_type *)((long)paVar10 + -0x28);\n      __tmp.size_ = paVar15[1]._M_allocated_capacity;\n      paVar15[-3]._M_allocated_capacity = paVar10[-3]._M_allocated_capacity;\n      *(size_type *)((long)paVar15 + -0x28) = sVar3;\n      __tmp.addralign_ = *(uint64_t *)((long)paVar15 + 0x18);\n      (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)paVar15;\n      paVar15[-2]._M_allocated_capacity = paVar10[-2]._M_allocated_capacity;\n      *(undefined4 *)((long)paVar15 + -0x18) = *(undefined4 *)((long)paVar10 + -0x18);\n      psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n      if (paVar10 ==\n          (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)psVar14) {\n        sVar6 = *(size_type *)((long)paVar10 + -8);\n        if (sVar6 != 0) {\n          if (sVar6 == 1) {\n            paVar15->_M_local_buf[0] = paVar10->_M_local_buf[0];\n            sVar6 = *(size_type *)((long)paVar10 + -8);\n          }\n          else {\n            memcpy(paVar15,paVar10,sVar6);\n            sVar6 = *(size_type *)((long)paVar10 + -8);\n          }\n        }\n        *(size_t *)((long)paVar15 + -8) = sVar6;\n        paVar15->_M_local_buf[sVar6] = '\0';\n        paVar4 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)psVar14[-2];\n      }\n      else {\n        (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)psVar14;\n        *(size_type *)((long)paVar15 + -8) = *(size_type *)((long)paVar10 + -8);\n        paVar15->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n        (((string *)(paVar10 + -1))->_M_dataplus)._M_p = (pointer)paVar10;\n        paVar4 = paVar10;\n      }\n      *(size_type *)((long)paVar10 + -8) = 0;\n      paVar4->_M_local_buf[0] = '\0';\n      paVar15[1]._M_allocated_capacity = paVar10[1]._M_allocated_capacity;\n      *(size_type *)((long)paVar15 + 0x18) = *(size_type *)((long)paVar10 + 0x18);\n      paVar10[-3]._M_allocated_capacity = __tmp.input_section_._0_8_;\n      *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar10 + -0x28) = __tmp.input_section_.u1_;\n      psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n      *(anon_union_8_4_139239c7_for_u2_ *)(paVar10 + -2) = __tmp.input_section_.u2_;\n      *(uint *)((long)paVar10 + -0x18) = __tmp.input_section_.section_order_index_;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)__tmp.section_name_._M_dataplus._M_p == paVar16) {\n        if (__tmp.section_name_._M_string_length != 0) {\n          if (__tmp.section_name_._M_string_length == 1) {\n            *(char *)psVar14 = __tmp.section_name_.field_2._M_local_buf[0];\n            psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n          }\n          else {\n            memcpy(psVar14,paVar16,__tmp.section_name_._M_string_length);\n            psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n          }\n        }\n        *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n        *(char *)((long)psVar14 + __tmp.section_name_._M_string_length) = '\0';\n      }\n      else if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)psVar14 == paVar10) {\n        (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n        *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n        paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n        __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n      }\n      else {\n        sVar3 = paVar10->_M_allocated_capacity;\n        (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n        *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n        paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n        __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n        if (psVar14 != (size_type *)0x0) {\n          __tmp.section_name_._M_dataplus._M_p = (pointer)psVar14;\n          __tmp.section_name_.field_2._M_allocated_capacity = sVar3;\n        }\n      }\n      __tmp.section_name_._M_string_length = 0;\n      *__tmp.section_name_._M_dataplus._M_p = '\0';\n      paVar10[1]._M_allocated_capacity = __tmp.size_;\n      *(uint64_t *)((long)paVar10 + 0x18) = __tmp.addralign_;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)__tmp.section_name_._M_dataplus._M_p != paVar16) {\n        operator_delete(__tmp.section_name_._M_dataplus._M_p);\n      }\n      paVar10 = paVar10 + 5;\n      paVar15 = paVar15 + 5;\n    } while (paVar10 !=\n             (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n              *)(__middle[1].section_name_.field_2._M_local_buf +\n                ((long)__middle + (-0x50 - (long)__first) & 0xfffffffffffffff0)));\n    return (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n            )__middle;\n  }\n  lVar11 = local_a8 + lVar7 * 0x3333333333333333;\n  lVar9 = lVar8;\n  local_a0 = __first;\n  if (lVar11 == lVar8 || SBORROW8(lVar11,lVar8) != lVar11 + lVar7 * 0x3333333333333333 < 0)\n  goto LAB_0025fb1a;\n  do {\n    if (0 < lVar11) {\n      lVar7 = 0;\n      paVar16 = &local_a0[lVar8].section_name_.field_2;\n      paVar15 = &(local_a0->section_name_).field_2;\n      paVar10 = &__tmp.section_name_.field_2;\n      do {\n        __tmp.input_section_._0_8_ = *(undefined8 *)(paVar15 + -3);\n        __tmp.input_section_.u1_ = *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar15 + -0x28);\n        __tmp.input_section_.u2_ = *(anon_union_8_4_139239c7_for_u2_ *)(paVar15 + -2);\n        __tmp.input_section_._24_8_ = *(size_type *)((long)paVar15 + -0x18);\n        __tmp.section_name_._M_dataplus._M_p = (((string *)(paVar15 + -1))->_M_dataplus)._M_p;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p == paVar15) {\n          __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n          __tmp.section_name_.field_2._8_8_ = *(size_type *)((long)paVar15 + 8);\n          __tmp.section_name_._M_dataplus._M_p = (pointer)paVar10;\n        }\n        else {\n          __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n        }\n        __tmp.section_name_._M_string_length = *(size_type *)((long)paVar15 + -8);\n        paVar15->_M_local_buf[0] = '\0';\n        *(size_type *)((long)paVar15 + -8) = 0;\n        sVar3 = *(size_type *)((long)paVar16 + -0x28);\n        __tmp.size_ = paVar15[1]._M_allocated_capacity;\n        paVar15[-3]._M_allocated_capacity = paVar16[-3]._M_allocated_capacity;\n        *(size_type *)((long)paVar15 + -0x28) = sVar3;\n        __tmp.addralign_ = *(size_type *)((long)paVar15 + 0x18);\n        (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)paVar15;\n        paVar15[-2]._M_allocated_capacity = paVar16[-2]._M_allocated_capacity;\n        *(undefined4 *)((long)paVar15 + -0x18) = *(undefined4 *)((long)paVar16 + -0x18);\n        pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar13 == paVar16) {\n          sVar6 = *(size_type *)((long)paVar16 + -8);\n          if (sVar6 != 0) {\n            if (sVar6 == 1) {\n              paVar15->_M_local_buf[0] = paVar16->_M_local_buf[0];\n              sVar6 = *(size_type *)((long)paVar16 + -8);\n            }\n            else {\n              memcpy(paVar15,paVar16,sVar6);\n              sVar6 = *(size_type *)((long)paVar16 + -8);\n            }\n          }\n          *(size_t *)((long)paVar15 + -8) = sVar6;\n          paVar15->_M_local_buf[sVar6] = '\0';\n          paVar4 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n        }\n        else {\n          (((string *)(paVar15 + -1))->_M_dataplus)._M_p = pcVar13;\n          *(size_type *)((long)paVar15 + -8) = *(size_type *)((long)paVar16 + -8);\n          paVar15->_M_allocated_capacity = paVar16->_M_allocated_capacity;\n          (((string *)(paVar16 + -1))->_M_dataplus)._M_p = (pointer)paVar16;\n          paVar4 = paVar16;\n        }\n        *(size_type *)((long)paVar16 + -8) = 0;\n        paVar4->_M_local_buf[0] = '\0';\n        paVar15[1]._M_allocated_capacity = paVar16[1]._M_allocated_capacity;\n        *(size_type *)((long)paVar15 + 0x18) = *(size_type *)((long)paVar16 + 0x18);\n        paVar16[-3]._M_allocated_capacity = __tmp.input_section_._0_8_;\n        *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar16 + -0x28) = __tmp.input_section_.u1_;\n        pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n        *(anon_union_8_4_139239c7_for_u2_ *)(paVar16 + -2) = __tmp.input_section_.u2_;\n        *(uint *)((long)paVar16 + -0x18) = __tmp.input_section_.section_order_index_;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p == paVar10) {\n          if (__tmp.section_name_._M_string_length != 0) {\n            if (__tmp.section_name_._M_string_length == 1) {\n              *pcVar13 = __tmp.section_name_.field_2._M_local_buf[0];\n              pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n            }\n            else {\n              memcpy(pcVar13,paVar10,__tmp.section_name_._M_string_length);\n              pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n            }\n          }\n          *(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length;\n          pcVar13[__tmp.section_name_._M_string_length] = '\0';\n          uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n        }\n        else {\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)pcVar13 == paVar16) {\n            (((string *)(paVar16 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n            *(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length;\n            paVar16->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n          }\n          else {\n            uVar2 = paVar16->_M_allocated_capacity;\n            (((string *)(paVar16 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n            *(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length;\n            paVar16->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n            __tmp.section_name_._M_dataplus._M_p = pcVar13;\n            if (pcVar13 != (pointer)0x0) goto LAB_0025f996;\n          }\n          __tmp.section_name_._M_dataplus._M_p = (pointer)paVar10;\n          uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n        }\nLAB_0025f996:\n        __tmp.section_name_.field_2._M_allocated_capacity = uVar2;\n        __tmp.section_name_._M_string_length = 0;\n        *__tmp.section_name_._M_dataplus._M_p = '\0';\n        paVar16[1]._M_allocated_capacity = __tmp.size_;\n        *(uint64_t *)((long)paVar16 + 0x18) = __tmp.addralign_;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p != paVar10) {\n          operator_delete(__tmp.section_name_._M_dataplus._M_p);\n        }\n        lVar7 = lVar7 + 1;\n        paVar15 = paVar15 + 5;\n        paVar16 = paVar16 + 5;\n      } while (lVar11 != lVar7);\n      local_a0 = local_a0 + lVar11;\n    }\n    if (local_a8 % lVar8 == 0) {\n      return (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n              )pIVar1;\n    }\n    lVar9 = lVar8 - local_a8 % lVar8;\n    lVar7 = lVar8;\n    while (lVar11 = lVar7 - lVar9, lVar8 = lVar9, local_a8 = lVar7, lVar11 <= lVar9) {\nLAB_0025fb1a:\n      lVar7 = lVar11;\n      pIVar12 = local_a0 + (local_a8 - lVar7);\n      if (0 < lVar9) {\n        paVar15 = &pIVar12[-1].section_name_.field_2;\n        paVar10 = &local_a0[local_a8 + -1].section_name_.field_2;\n        lVar8 = 0;\n        paVar16 = &__tmp.section_name_.field_2;\n        do {\n          __tmp.input_section_._0_8_ = *(undefined8 *)(paVar15 + -3);\n          __tmp.input_section_.u1_ = *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar15 + -0x28);\n          __tmp.input_section_.u2_ = *(anon_union_8_4_139239c7_for_u2_ *)(paVar15 + -2);\n          __tmp.input_section_._24_8_ = *(undefined8 *)((long)paVar15 + -0x18);\n          __tmp.section_name_._M_dataplus._M_p = (((string *)(paVar15 + -1))->_M_dataplus)._M_p;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)__tmp.section_name_._M_dataplus._M_p == paVar15) {\n            __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n            __tmp.section_name_.field_2._8_8_ = *(undefined8 *)((long)paVar15 + 8);\n            __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n          }\n          else {\n            __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n          }\n          __tmp.section_name_._M_string_length = *(size_type *)((long)paVar15 + -8);\n          paVar15->_M_local_buf[0] = '\0';\n          *(size_type *)((long)paVar15 + -8) = 0;\n          sVar3 = *(size_type *)((long)paVar10 + -0x28);\n          __tmp.size_ = paVar15[1]._M_allocated_capacity;\n          paVar15[-3]._M_allocated_capacity = paVar10[-3]._M_allocated_capacity;\n          *(size_type *)((long)paVar15 + -0x28) = sVar3;\n          __tmp.addralign_ = *(uint64_t *)((long)paVar15 + 0x18);\n          (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)paVar15;\n          paVar15[-2]._M_allocated_capacity = paVar10[-2]._M_allocated_capacity;\n          *(undefined4 *)((long)paVar15 + -0x18) = *(undefined4 *)((long)paVar10 + -0x18);\n          psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)psVar14 == paVar10) {\n            sVar6 = *(size_type *)((long)paVar10 + -8);\n            if (sVar6 != 0) {\n              if (sVar6 == 1) {\n                paVar15->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                sVar6 = *(size_type *)((long)paVar10 + -8);\n              }\n              else {\n                memcpy(paVar15,paVar10,sVar6);\n                sVar6 = *(size_type *)((long)paVar10 + -8);\n              }\n            }\n            pcVar13 = (((string *)(paVar15 + -1))->_M_dataplus)._M_p;\n            *(size_t *)((long)paVar15 + -8) = sVar6;\n            pcVar13[sVar6] = '\0';\n          }\n          else {\n            (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)psVar14;\n            *(size_type *)((long)paVar15 + -8) = *(size_type *)((long)paVar10 + -8);\n            paVar15->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n            (((string *)(paVar10 + -1))->_M_dataplus)._M_p = (pointer)paVar10;\n          }\n          *(size_type *)((long)paVar10 + -8) = 0;\n          *(((string *)(paVar10 + -1))->_M_dataplus)._M_p = '\0';\n          paVar15[1]._M_allocated_capacity = paVar10[1]._M_allocated_capacity;\n          *(size_type *)((long)paVar15 + 0x18) = *(size_type *)((long)paVar10 + 0x18);\n          psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n          paVar10[-3]._M_allocated_capacity = __tmp.input_section_._0_8_;\n          *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar10 + -0x28) = __tmp.input_section_.u1_;\n          *(anon_union_8_4_139239c7_for_u2_ *)(paVar10 + -2) = __tmp.input_section_.u2_;\n          *(uint *)((long)paVar10 + -0x18) = __tmp.input_section_.section_order_index_;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)__tmp.section_name_._M_dataplus._M_p == paVar16) {\n            if (__tmp.section_name_._M_string_length != 0) {\n              if (__tmp.section_name_._M_string_length == 1) {\n                *(char *)psVar14 = __tmp.section_name_.field_2._M_local_buf[0];\n                psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n              }\n              else {\n                memcpy(psVar14,paVar16,__tmp.section_name_._M_string_length);\n                psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n              }\n            }\n            *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n            *(char *)((long)psVar14 + __tmp.section_name_._M_string_length) = '\0';\n            uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n          }\n          else {\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)psVar14 == paVar10) {\n              (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n              *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n              paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n            }\n            else {\n              uVar2 = paVar10->_M_allocated_capacity;\n              (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n              *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n              paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n              __tmp.section_name_._M_dataplus._M_p = (pointer)psVar14;\n              if (psVar14 != (size_type *)0x0) goto LAB_0025fc78;\n            }\n            __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n            uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n          }\nLAB_0025fc78:\n          __tmp.section_name_.field_2._M_allocated_capacity = uVar2;\n          __tmp.section_name_._M_string_length = 0;\n          *__tmp.section_name_._M_dataplus._M_p = '\0';\n          paVar10[1]._M_allocated_capacity = __tmp.size_;\n          *(uint64_t *)((long)paVar10 + 0x18) = __tmp.addralign_;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)__tmp.section_name_._M_dataplus._M_p != paVar16) {\n            operator_delete(__tmp.section_name_._M_dataplus._M_p);\n          }\n          lVar8 = lVar8 + 1;\n          paVar15 = paVar15 + -5;\n          paVar10 = paVar10 + -5;\n        } while (lVar8 != lVar9);\n        pIVar12 = pIVar12 + -lVar8;\n      }\n      local_a0 = pIVar12;\n      lVar9 = local_a8 % lVar7;\n      if (lVar9 == 0) {\n        return (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n                )pIVar1;\n      }\n    }\n  } while( true );\n}" { (declaration "Input_section_info *pIVar1;" type_identifier (pointer_declarator "*pIVar1" * identifier) ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "size_type sVar3;" type_identifier identifier ;) (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (expression_statement "allocator<char>_>_9\n  *paVar4;" (binary_expression "allocator<char>_>_9\n  *paVar4" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *paVar4" identifier * identifier)) ;) (ERROR "__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::" (comma_expression "__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std" (binary_expression "__normal_iterator<gold::Input_section_info*,_std::vector<gold" (binary_expression "__normal_iterator<gold::Input_section_info*,_std" (binary_expression "__normal_iterator<gold" identifier < identifier) (ERROR "::Input_section_info" : : identifier) * (ERROR "," ,) identifier) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Input_section_info" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "Input_section_info>_>_>\n  _Var5;" (binary_expression "Input_section_info>_>_>\n  _Var5" (binary_expression "Input_section_info>_>_" (binary_expression "Input_section_info>_" identifier > identifier) > identifier) > identifier) ;) (declaration "size_t sVar6;" primitive_type identifier ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (expression_statement "allocator<char>_>_9\n  *paVar10;" (binary_expression "allocator<char>_>_9\n  *paVar10" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *paVar10" identifier * identifier)) ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "Input_section_info *pIVar12;" type_identifier (pointer_declarator "*pIVar12" * identifier) ;) (declaration "pointer pcVar13;" type_identifier identifier ;) (declaration "size_type *psVar14;" type_identifier (pointer_declarator "*psVar14" * identifier) ;) (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (expression_statement "allocator<char>_>_9\n  *paVar15;" (binary_expression "allocator<char>_>_9\n  *paVar15" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *paVar15" identifier * identifier)) ;) (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (expression_statement "allocator<char>_>_9\n  *paVar16;" (binary_expression "allocator<char>_>_9\n  *paVar16" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *paVar16" identifier * identifier)) ;) (declaration "long local_a8;" (sized_type_specifier "long" long) identifier ;) (declaration "Input_section_info *local_a0;" type_identifier (pointer_declarator "*local_a0" * identifier) ;) (declaration "Input_section_info __tmp;" type_identifier identifier ;) (expression_statement "_Var5._M_current = __last;" (assignment_expression "_Var5._M_current = __last" (field_expression "_Var5._M_current" identifier . field_identifier) = identifier) ;) (if_statement "if ((__first == __middle) || (_Var5._M_current = __first, __last == __middle)) {\n    return (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n            )_Var5._M_current;\n  }" if (parenthesized_expression "((__first == __middle) || (_Var5._M_current = __first, __last == __middle))" ( (binary_expression "(__first == __middle) || (_Var5._M_current = __first, __last == __middle)" (parenthesized_expression "(__first == __middle)" ( (binary_expression "__first == __middle" identifier == identifier) )) || (parenthesized_expression "(_Var5._M_current = __first, __last == __middle)" ( (comma_expression "_Var5._M_current = __first, __last == __middle" (assignment_expression "_Var5._M_current = __first" (field_expression "_Var5._M_current" identifier . field_identifier) = identifier) , (binary_expression "__last == __middle" identifier == identifier)) ))) )) (compound_statement "{\n    return (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n            )_Var5._M_current;\n  }" { (return_statement "return (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n            )_Var5._M_current;" return (parenthesized_expression "(__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n            )_Var5._M_current" ( (ERROR "__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::" (comma_expression "__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std" (binary_expression "__normal_iterator<gold::Input_section_info*,_std::vector<gold" (binary_expression "__normal_iterator<gold::Input_section_info*,_std" (binary_expression "__normal_iterator<gold" identifier < identifier) (ERROR "::Input_section_info" : : identifier) * (ERROR "," ,) identifier) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Input_section_info" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Input_section_info>_>_>\n            )_Var5._M_current" (binary_expression "Input_section_info>_>_" (binary_expression "Input_section_info>_" identifier > identifier) > identifier) > (ERROR ")" )) (field_expression "_Var5._M_current" identifier . field_identifier)) )) ;) })) (expression_statement "lVar7 = (long)__middle - (long)__first >> 4;" (assignment_expression "lVar7 = (long)__middle - (long)__first >> 4" identifier = (binary_expression "(long)__middle - (long)__first >> 4" (binary_expression "(long)__middle - (long)__first" (cast_expression "(long)__middle" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)__first" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) >> number_literal)) ;) (expression_statement "local_a8 = ((long)__last - (long)__first >> 4) * -0x3333333333333333;" (assignment_expression "local_a8 = ((long)__last - (long)__first >> 4) * -0x3333333333333333" identifier = (binary_expression "((long)__last - (long)__first >> 4) * -0x3333333333333333" (parenthesized_expression "((long)__last - (long)__first >> 4)" ( (binary_expression "(long)__last - (long)__first >> 4" (binary_expression "(long)__last - (long)__first" (cast_expression "(long)__last" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)__first" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) >> number_literal) )) * number_literal)) ;) (expression_statement "lVar8 = lVar7 * -0x3333333333333333;" (assignment_expression "lVar8 = lVar7 * -0x3333333333333333" identifier = (binary_expression "lVar7 * -0x3333333333333333" identifier * number_literal)) ;) (expression_statement "pIVar1 = (Input_section_info *)((long)__first + ((long)__last - (long)__middle));" (assignment_expression "pIVar1 = (Input_section_info *)((long)__first + ((long)__last - (long)__middle))" identifier = (cast_expression "(Input_section_info *)((long)__first + ((long)__last - (long)__middle))" ( (type_descriptor "Input_section_info *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__first + ((long)__last - (long)__middle))" ( (binary_expression "(long)__first + ((long)__last - (long)__middle)" (cast_expression "(long)__first" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "((long)__last - (long)__middle)" ( (binary_expression "(long)__last - (long)__middle" (cast_expression "(long)__last" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)__middle" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) )))) ;) (if_statement "if (local_a8 + lVar7 * 0x3333333333333333 == lVar8) {\n    paVar15 = &(__first->section_name_).field_2;\n    paVar10 = &(__middle->section_name_).field_2;\n    paVar16 = &__tmp.section_name_.field_2;\n    do {\n      __tmp.input_section_._0_8_ = *(undefined8 *)(paVar15 + -3);\n      __tmp.input_section_.u1_ = *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar15 + -0x28);\n      __tmp.section_name_._M_dataplus._M_p = (((string *)(paVar15 + -1))->_M_dataplus)._M_p;\n      __tmp.input_section_.u2_ = *(anon_union_8_4_139239c7_for_u2_ *)(paVar15 + -2);\n      __tmp.input_section_._24_8_ = *(undefined8 *)((long)paVar15 + -0x18);\n      if (paVar15 ==\n          (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)__tmp.section_name_._M_dataplus._M_p) {\n        __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n        __tmp.section_name_.field_2._8_8_ = *(undefined8 *)((long)paVar15 + 8);\n        __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n      }\n      else {\n        __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n      }\n      __tmp.section_name_._M_string_length = *(size_type *)((long)paVar15 + -8);\n      paVar15->_M_local_buf[0] = '\0';\n      *(size_type *)((long)paVar15 + -8) = 0;\n      sVar3 = *(size_type *)((long)paVar10 + -0x28);\n      __tmp.size_ = paVar15[1]._M_allocated_capacity;\n      paVar15[-3]._M_allocated_capacity = paVar10[-3]._M_allocated_capacity;\n      *(size_type *)((long)paVar15 + -0x28) = sVar3;\n      __tmp.addralign_ = *(uint64_t *)((long)paVar15 + 0x18);\n      (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)paVar15;\n      paVar15[-2]._M_allocated_capacity = paVar10[-2]._M_allocated_capacity;\n      *(undefined4 *)((long)paVar15 + -0x18) = *(undefined4 *)((long)paVar10 + -0x18);\n      psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n      if (paVar10 ==\n          (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)psVar14) {\n        sVar6 = *(size_type *)((long)paVar10 + -8);\n        if (sVar6 != 0) {\n          if (sVar6 == 1) {\n            paVar15->_M_local_buf[0] = paVar10->_M_local_buf[0];\n            sVar6 = *(size_type *)((long)paVar10 + -8);\n          }\n          else {\n            memcpy(paVar15,paVar10,sVar6);\n            sVar6 = *(size_type *)((long)paVar10 + -8);\n          }\n        }\n        *(size_t *)((long)paVar15 + -8) = sVar6;\n        paVar15->_M_local_buf[sVar6] = '\0';\n        paVar4 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)psVar14[-2];\n      }\n      else {\n        (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)psVar14;\n        *(size_type *)((long)paVar15 + -8) = *(size_type *)((long)paVar10 + -8);\n        paVar15->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n        (((string *)(paVar10 + -1))->_M_dataplus)._M_p = (pointer)paVar10;\n        paVar4 = paVar10;\n      }\n      *(size_type *)((long)paVar10 + -8) = 0;\n      paVar4->_M_local_buf[0] = '\0';\n      paVar15[1]._M_allocated_capacity = paVar10[1]._M_allocated_capacity;\n      *(size_type *)((long)paVar15 + 0x18) = *(size_type *)((long)paVar10 + 0x18);\n      paVar10[-3]._M_allocated_capacity = __tmp.input_section_._0_8_;\n      *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar10 + -0x28) = __tmp.input_section_.u1_;\n      psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n      *(anon_union_8_4_139239c7_for_u2_ *)(paVar10 + -2) = __tmp.input_section_.u2_;\n      *(uint *)((long)paVar10 + -0x18) = __tmp.input_section_.section_order_index_;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)__tmp.section_name_._M_dataplus._M_p == paVar16) {\n        if (__tmp.section_name_._M_string_length != 0) {\n          if (__tmp.section_name_._M_string_length == 1) {\n            *(char *)psVar14 = __tmp.section_name_.field_2._M_local_buf[0];\n            psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n          }\n          else {\n            memcpy(psVar14,paVar16,__tmp.section_name_._M_string_length);\n            psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n          }\n        }\n        *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n        *(char *)((long)psVar14 + __tmp.section_name_._M_string_length) = '\0';\n      }\n      else if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)psVar14 == paVar10) {\n        (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n        *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n        paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n        __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n      }\n      else {\n        sVar3 = paVar10->_M_allocated_capacity;\n        (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n        *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n        paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n        __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n        if (psVar14 != (size_type *)0x0) {\n          __tmp.section_name_._M_dataplus._M_p = (pointer)psVar14;\n          __tmp.section_name_.field_2._M_allocated_capacity = sVar3;\n        }\n      }\n      __tmp.section_name_._M_string_length = 0;\n      *__tmp.section_name_._M_dataplus._M_p = '\0';\n      paVar10[1]._M_allocated_capacity = __tmp.size_;\n      *(uint64_t *)((long)paVar10 + 0x18) = __tmp.addralign_;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)__tmp.section_name_._M_dataplus._M_p != paVar16) {\n        operator_delete(__tmp.section_name_._M_dataplus._M_p);\n      }\n      paVar10 = paVar10 + 5;\n      paVar15 = paVar15 + 5;\n    } while (paVar10 !=\n             (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n              *)(__middle[1].section_name_.field_2._M_local_buf +\n                ((long)__middle + (-0x50 - (long)__first) & 0xfffffffffffffff0)));\n    return (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n            )__middle;\n  }" if (parenthesized_expression "(local_a8 + lVar7 * 0x3333333333333333 == lVar8)" ( (binary_expression "local_a8 + lVar7 * 0x3333333333333333 == lVar8" (binary_expression "local_a8 + lVar7 * 0x3333333333333333" identifier + (binary_expression "lVar7 * 0x3333333333333333" identifier * number_literal)) == identifier) )) (compound_statement "{\n    paVar15 = &(__first->section_name_).field_2;\n    paVar10 = &(__middle->section_name_).field_2;\n    paVar16 = &__tmp.section_name_.field_2;\n    do {\n      __tmp.input_section_._0_8_ = *(undefined8 *)(paVar15 + -3);\n      __tmp.input_section_.u1_ = *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar15 + -0x28);\n      __tmp.section_name_._M_dataplus._M_p = (((string *)(paVar15 + -1))->_M_dataplus)._M_p;\n      __tmp.input_section_.u2_ = *(anon_union_8_4_139239c7_for_u2_ *)(paVar15 + -2);\n      __tmp.input_section_._24_8_ = *(undefined8 *)((long)paVar15 + -0x18);\n      if (paVar15 ==\n          (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)__tmp.section_name_._M_dataplus._M_p) {\n        __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n        __tmp.section_name_.field_2._8_8_ = *(undefined8 *)((long)paVar15 + 8);\n        __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n      }\n      else {\n        __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n      }\n      __tmp.section_name_._M_string_length = *(size_type *)((long)paVar15 + -8);\n      paVar15->_M_local_buf[0] = '\0';\n      *(size_type *)((long)paVar15 + -8) = 0;\n      sVar3 = *(size_type *)((long)paVar10 + -0x28);\n      __tmp.size_ = paVar15[1]._M_allocated_capacity;\n      paVar15[-3]._M_allocated_capacity = paVar10[-3]._M_allocated_capacity;\n      *(size_type *)((long)paVar15 + -0x28) = sVar3;\n      __tmp.addralign_ = *(uint64_t *)((long)paVar15 + 0x18);\n      (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)paVar15;\n      paVar15[-2]._M_allocated_capacity = paVar10[-2]._M_allocated_capacity;\n      *(undefined4 *)((long)paVar15 + -0x18) = *(undefined4 *)((long)paVar10 + -0x18);\n      psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n      if (paVar10 ==\n          (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)psVar14) {\n        sVar6 = *(size_type *)((long)paVar10 + -8);\n        if (sVar6 != 0) {\n          if (sVar6 == 1) {\n            paVar15->_M_local_buf[0] = paVar10->_M_local_buf[0];\n            sVar6 = *(size_type *)((long)paVar10 + -8);\n          }\n          else {\n            memcpy(paVar15,paVar10,sVar6);\n            sVar6 = *(size_type *)((long)paVar10 + -8);\n          }\n        }\n        *(size_t *)((long)paVar15 + -8) = sVar6;\n        paVar15->_M_local_buf[sVar6] = '\0';\n        paVar4 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)psVar14[-2];\n      }\n      else {\n        (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)psVar14;\n        *(size_type *)((long)paVar15 + -8) = *(size_type *)((long)paVar10 + -8);\n        paVar15->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n        (((string *)(paVar10 + -1))->_M_dataplus)._M_p = (pointer)paVar10;\n        paVar4 = paVar10;\n      }\n      *(size_type *)((long)paVar10 + -8) = 0;\n      paVar4->_M_local_buf[0] = '\0';\n      paVar15[1]._M_allocated_capacity = paVar10[1]._M_allocated_capacity;\n      *(size_type *)((long)paVar15 + 0x18) = *(size_type *)((long)paVar10 + 0x18);\n      paVar10[-3]._M_allocated_capacity = __tmp.input_section_._0_8_;\n      *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar10 + -0x28) = __tmp.input_section_.u1_;\n      psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n      *(anon_union_8_4_139239c7_for_u2_ *)(paVar10 + -2) = __tmp.input_section_.u2_;\n      *(uint *)((long)paVar10 + -0x18) = __tmp.input_section_.section_order_index_;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)__tmp.section_name_._M_dataplus._M_p == paVar16) {\n        if (__tmp.section_name_._M_string_length != 0) {\n          if (__tmp.section_name_._M_string_length == 1) {\n            *(char *)psVar14 = __tmp.section_name_.field_2._M_local_buf[0];\n            psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n          }\n          else {\n            memcpy(psVar14,paVar16,__tmp.section_name_._M_string_length);\n            psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n          }\n        }\n        *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n        *(char *)((long)psVar14 + __tmp.section_name_._M_string_length) = '\0';\n      }\n      else if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)psVar14 == paVar10) {\n        (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n        *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n        paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n        __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n      }\n      else {\n        sVar3 = paVar10->_M_allocated_capacity;\n        (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n        *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n        paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n        __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n        if (psVar14 != (size_type *)0x0) {\n          __tmp.section_name_._M_dataplus._M_p = (pointer)psVar14;\n          __tmp.section_name_.field_2._M_allocated_capacity = sVar3;\n        }\n      }\n      __tmp.section_name_._M_string_length = 0;\n      *__tmp.section_name_._M_dataplus._M_p = '\0';\n      paVar10[1]._M_allocated_capacity = __tmp.size_;\n      *(uint64_t *)((long)paVar10 + 0x18) = __tmp.addralign_;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)__tmp.section_name_._M_dataplus._M_p != paVar16) {\n        operator_delete(__tmp.section_name_._M_dataplus._M_p);\n      }\n      paVar10 = paVar10 + 5;\n      paVar15 = paVar15 + 5;\n    } while (paVar10 !=\n             (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n              *)(__middle[1].section_name_.field_2._M_local_buf +\n                ((long)__middle + (-0x50 - (long)__first) & 0xfffffffffffffff0)));\n    return (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n            )__middle;\n  }" { (expression_statement "paVar15 = &(__first->section_name_).field_2;" (assignment_expression "paVar15 = &(__first->section_name_).field_2" identifier = (pointer_expression "&(__first->section_name_).field_2" & (field_expression "(__first->section_name_).field_2" (parenthesized_expression "(__first->section_name_)" ( (field_expression "__first->section_name_" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "paVar10 = &(__middle->section_name_).field_2;" (assignment_expression "paVar10 = &(__middle->section_name_).field_2" identifier = (pointer_expression "&(__middle->section_name_).field_2" & (field_expression "(__middle->section_name_).field_2" (parenthesized_expression "(__middle->section_name_)" ( (field_expression "__middle->section_name_" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "paVar16 = &__tmp.section_name_.field_2;" (assignment_expression "paVar16 = &__tmp.section_name_.field_2" identifier = (pointer_expression "&__tmp.section_name_.field_2" & (field_expression "__tmp.section_name_.field_2" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier))) ;) (do_statement "do {\n      __tmp.input_section_._0_8_ = *(undefined8 *)(paVar15 + -3);\n      __tmp.input_section_.u1_ = *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar15 + -0x28);\n      __tmp.section_name_._M_dataplus._M_p = (((string *)(paVar15 + -1))->_M_dataplus)._M_p;\n      __tmp.input_section_.u2_ = *(anon_union_8_4_139239c7_for_u2_ *)(paVar15 + -2);\n      __tmp.input_section_._24_8_ = *(undefined8 *)((long)paVar15 + -0x18);\n      if (paVar15 ==\n          (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)__tmp.section_name_._M_dataplus._M_p) {\n        __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n        __tmp.section_name_.field_2._8_8_ = *(undefined8 *)((long)paVar15 + 8);\n        __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n      }\n      else {\n        __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n      }\n      __tmp.section_name_._M_string_length = *(size_type *)((long)paVar15 + -8);\n      paVar15->_M_local_buf[0] = '\0';\n      *(size_type *)((long)paVar15 + -8) = 0;\n      sVar3 = *(size_type *)((long)paVar10 + -0x28);\n      __tmp.size_ = paVar15[1]._M_allocated_capacity;\n      paVar15[-3]._M_allocated_capacity = paVar10[-3]._M_allocated_capacity;\n      *(size_type *)((long)paVar15 + -0x28) = sVar3;\n      __tmp.addralign_ = *(uint64_t *)((long)paVar15 + 0x18);\n      (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)paVar15;\n      paVar15[-2]._M_allocated_capacity = paVar10[-2]._M_allocated_capacity;\n      *(undefined4 *)((long)paVar15 + -0x18) = *(undefined4 *)((long)paVar10 + -0x18);\n      psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n      if (paVar10 ==\n          (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)psVar14) {\n        sVar6 = *(size_type *)((long)paVar10 + -8);\n        if (sVar6 != 0) {\n          if (sVar6 == 1) {\n            paVar15->_M_local_buf[0] = paVar10->_M_local_buf[0];\n            sVar6 = *(size_type *)((long)paVar10 + -8);\n          }\n          else {\n            memcpy(paVar15,paVar10,sVar6);\n            sVar6 = *(size_type *)((long)paVar10 + -8);\n          }\n        }\n        *(size_t *)((long)paVar15 + -8) = sVar6;\n        paVar15->_M_local_buf[sVar6] = '\0';\n        paVar4 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)psVar14[-2];\n      }\n      else {\n        (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)psVar14;\n        *(size_type *)((long)paVar15 + -8) = *(size_type *)((long)paVar10 + -8);\n        paVar15->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n        (((string *)(paVar10 + -1))->_M_dataplus)._M_p = (pointer)paVar10;\n        paVar4 = paVar10;\n      }\n      *(size_type *)((long)paVar10 + -8) = 0;\n      paVar4->_M_local_buf[0] = '\0';\n      paVar15[1]._M_allocated_capacity = paVar10[1]._M_allocated_capacity;\n      *(size_type *)((long)paVar15 + 0x18) = *(size_type *)((long)paVar10 + 0x18);\n      paVar10[-3]._M_allocated_capacity = __tmp.input_section_._0_8_;\n      *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar10 + -0x28) = __tmp.input_section_.u1_;\n      psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n      *(anon_union_8_4_139239c7_for_u2_ *)(paVar10 + -2) = __tmp.input_section_.u2_;\n      *(uint *)((long)paVar10 + -0x18) = __tmp.input_section_.section_order_index_;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)__tmp.section_name_._M_dataplus._M_p == paVar16) {\n        if (__tmp.section_name_._M_string_length != 0) {\n          if (__tmp.section_name_._M_string_length == 1) {\n            *(char *)psVar14 = __tmp.section_name_.field_2._M_local_buf[0];\n            psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n          }\n          else {\n            memcpy(psVar14,paVar16,__tmp.section_name_._M_string_length);\n            psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n          }\n        }\n        *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n        *(char *)((long)psVar14 + __tmp.section_name_._M_string_length) = '\0';\n      }\n      else if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)psVar14 == paVar10) {\n        (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n        *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n        paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n        __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n      }\n      else {\n        sVar3 = paVar10->_M_allocated_capacity;\n        (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n        *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n        paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n        __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n        if (psVar14 != (size_type *)0x0) {\n          __tmp.section_name_._M_dataplus._M_p = (pointer)psVar14;\n          __tmp.section_name_.field_2._M_allocated_capacity = sVar3;\n        }\n      }\n      __tmp.section_name_._M_string_length = 0;\n      *__tmp.section_name_._M_dataplus._M_p = '\0';\n      paVar10[1]._M_allocated_capacity = __tmp.size_;\n      *(uint64_t *)((long)paVar10 + 0x18) = __tmp.addralign_;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)__tmp.section_name_._M_dataplus._M_p != paVar16) {\n        operator_delete(__tmp.section_name_._M_dataplus._M_p);\n      }\n      paVar10 = paVar10 + 5;\n      paVar15 = paVar15 + 5;\n    } while (paVar10 !=\n             (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n              *)(__middle[1].section_name_.field_2._M_local_buf +\n                ((long)__middle + (-0x50 - (long)__first) & 0xfffffffffffffff0)));" do (compound_statement "{\n      __tmp.input_section_._0_8_ = *(undefined8 *)(paVar15 + -3);\n      __tmp.input_section_.u1_ = *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar15 + -0x28);\n      __tmp.section_name_._M_dataplus._M_p = (((string *)(paVar15 + -1))->_M_dataplus)._M_p;\n      __tmp.input_section_.u2_ = *(anon_union_8_4_139239c7_for_u2_ *)(paVar15 + -2);\n      __tmp.input_section_._24_8_ = *(undefined8 *)((long)paVar15 + -0x18);\n      if (paVar15 ==\n          (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)__tmp.section_name_._M_dataplus._M_p) {\n        __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n        __tmp.section_name_.field_2._8_8_ = *(undefined8 *)((long)paVar15 + 8);\n        __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n      }\n      else {\n        __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n      }\n      __tmp.section_name_._M_string_length = *(size_type *)((long)paVar15 + -8);\n      paVar15->_M_local_buf[0] = '\0';\n      *(size_type *)((long)paVar15 + -8) = 0;\n      sVar3 = *(size_type *)((long)paVar10 + -0x28);\n      __tmp.size_ = paVar15[1]._M_allocated_capacity;\n      paVar15[-3]._M_allocated_capacity = paVar10[-3]._M_allocated_capacity;\n      *(size_type *)((long)paVar15 + -0x28) = sVar3;\n      __tmp.addralign_ = *(uint64_t *)((long)paVar15 + 0x18);\n      (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)paVar15;\n      paVar15[-2]._M_allocated_capacity = paVar10[-2]._M_allocated_capacity;\n      *(undefined4 *)((long)paVar15 + -0x18) = *(undefined4 *)((long)paVar10 + -0x18);\n      psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n      if (paVar10 ==\n          (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)psVar14) {\n        sVar6 = *(size_type *)((long)paVar10 + -8);\n        if (sVar6 != 0) {\n          if (sVar6 == 1) {\n            paVar15->_M_local_buf[0] = paVar10->_M_local_buf[0];\n            sVar6 = *(size_type *)((long)paVar10 + -8);\n          }\n          else {\n            memcpy(paVar15,paVar10,sVar6);\n            sVar6 = *(size_type *)((long)paVar10 + -8);\n          }\n        }\n        *(size_t *)((long)paVar15 + -8) = sVar6;\n        paVar15->_M_local_buf[sVar6] = '\0';\n        paVar4 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)psVar14[-2];\n      }\n      else {\n        (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)psVar14;\n        *(size_type *)((long)paVar15 + -8) = *(size_type *)((long)paVar10 + -8);\n        paVar15->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n        (((string *)(paVar10 + -1))->_M_dataplus)._M_p = (pointer)paVar10;\n        paVar4 = paVar10;\n      }\n      *(size_type *)((long)paVar10 + -8) = 0;\n      paVar4->_M_local_buf[0] = '\0';\n      paVar15[1]._M_allocated_capacity = paVar10[1]._M_allocated_capacity;\n      *(size_type *)((long)paVar15 + 0x18) = *(size_type *)((long)paVar10 + 0x18);\n      paVar10[-3]._M_allocated_capacity = __tmp.input_section_._0_8_;\n      *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar10 + -0x28) = __tmp.input_section_.u1_;\n      psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n      *(anon_union_8_4_139239c7_for_u2_ *)(paVar10 + -2) = __tmp.input_section_.u2_;\n      *(uint *)((long)paVar10 + -0x18) = __tmp.input_section_.section_order_index_;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)__tmp.section_name_._M_dataplus._M_p == paVar16) {\n        if (__tmp.section_name_._M_string_length != 0) {\n          if (__tmp.section_name_._M_string_length == 1) {\n            *(char *)psVar14 = __tmp.section_name_.field_2._M_local_buf[0];\n            psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n          }\n          else {\n            memcpy(psVar14,paVar16,__tmp.section_name_._M_string_length);\n            psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n          }\n        }\n        *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n        *(char *)((long)psVar14 + __tmp.section_name_._M_string_length) = '\0';\n      }\n      else if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)psVar14 == paVar10) {\n        (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n        *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n        paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n        __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n      }\n      else {\n        sVar3 = paVar10->_M_allocated_capacity;\n        (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n        *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n        paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n        __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n        if (psVar14 != (size_type *)0x0) {\n          __tmp.section_name_._M_dataplus._M_p = (pointer)psVar14;\n          __tmp.section_name_.field_2._M_allocated_capacity = sVar3;\n        }\n      }\n      __tmp.section_name_._M_string_length = 0;\n      *__tmp.section_name_._M_dataplus._M_p = '\0';\n      paVar10[1]._M_allocated_capacity = __tmp.size_;\n      *(uint64_t *)((long)paVar10 + 0x18) = __tmp.addralign_;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)__tmp.section_name_._M_dataplus._M_p != paVar16) {\n        operator_delete(__tmp.section_name_._M_dataplus._M_p);\n      }\n      paVar10 = paVar10 + 5;\n      paVar15 = paVar15 + 5;\n    }" { (expression_statement "__tmp.input_section_._0_8_ = *(undefined8 *)(paVar15 + -3);" (assignment_expression "__tmp.input_section_._0_8_ = *(undefined8 *)(paVar15 + -3)" (field_expression "__tmp.input_section_._0_8_" (field_expression "__tmp.input_section_" identifier . field_identifier) . field_identifier) = (pointer_expression "*(undefined8 *)(paVar15 + -3)" * (cast_expression "(undefined8 *)(paVar15 + -3)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar15 + -3)" ( (binary_expression "paVar15 + -3" identifier + number_literal) ))))) ;) (expression_statement "__tmp.input_section_.u1_ = *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar15 + -0x28);" (assignment_expression "__tmp.input_section_.u1_ = *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar15 + -0x28)" (field_expression "__tmp.input_section_.u1_" (field_expression "__tmp.input_section_" identifier . field_identifier) . field_identifier) = (pointer_expression "*(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar15 + -0x28)" * (cast_expression "(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar15 + -0x28)" ( (type_descriptor "anon_union_8_2_227b06d7_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar15 + -0x28)" ( (binary_expression "(long)paVar15 + -0x28" (cast_expression "(long)paVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "__tmp.section_name_._M_dataplus._M_p = (((string *)(paVar15 + -1))->_M_dataplus)._M_p;" (assignment_expression "__tmp.section_name_._M_dataplus._M_p = (((string *)(paVar15 + -1))->_M_dataplus)._M_p" (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (field_expression "(((string *)(paVar15 + -1))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)(paVar15 + -1))->_M_dataplus)" ( (field_expression "((string *)(paVar15 + -1))->_M_dataplus" (parenthesized_expression "((string *)(paVar15 + -1))" ( (cast_expression "(string *)(paVar15 + -1)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar15 + -1)" ( (binary_expression "paVar15 + -1" identifier + number_literal) ))) )) -> field_identifier) )) . field_identifier)) ;) (expression_statement "__tmp.input_section_.u2_ = *(anon_union_8_4_139239c7_for_u2_ *)(paVar15 + -2);" (assignment_expression "__tmp.input_section_.u2_ = *(anon_union_8_4_139239c7_for_u2_ *)(paVar15 + -2)" (field_expression "__tmp.input_section_.u2_" (field_expression "__tmp.input_section_" identifier . field_identifier) . field_identifier) = (pointer_expression "*(anon_union_8_4_139239c7_for_u2_ *)(paVar15 + -2)" * (cast_expression "(anon_union_8_4_139239c7_for_u2_ *)(paVar15 + -2)" ( (type_descriptor "anon_union_8_4_139239c7_for_u2_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar15 + -2)" ( (binary_expression "paVar15 + -2" identifier + number_literal) ))))) ;) (expression_statement "__tmp.input_section_._24_8_ = *(undefined8 *)((long)paVar15 + -0x18);" (assignment_expression "__tmp.input_section_._24_8_ = *(undefined8 *)((long)paVar15 + -0x18)" (field_expression "__tmp.input_section_._24_8_" (field_expression "__tmp.input_section_" identifier . field_identifier) . field_identifier) = (pointer_expression "*(undefined8 *)((long)paVar15 + -0x18)" * (cast_expression "(undefined8 *)((long)paVar15 + -0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar15 + -0x18)" ( (binary_expression "(long)paVar15 + -0x18" (cast_expression "(long)paVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (if_statement "if (paVar15 ==\n          (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)__tmp.section_name_._M_dataplus._M_p) {\n        __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n        __tmp.section_name_.field_2._8_8_ = *(undefined8 *)((long)paVar15 + 8);\n        __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n      }\n      else {\n        __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n      }" if (parenthesized_expression "(paVar15 ==\n          (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)__tmp.section_name_._M_dataplus._M_p)" ( (binary_expression "paVar15 ==\n          (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)__tmp.section_name_._M_dataplus._M_p)" identifier == (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)__tmp.section_name_._M_dataplus._M_p)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n           *)__tmp.section_name_._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n           *)__tmp.section_name_._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier))) ))) )) (compound_statement "{\n        __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n        __tmp.section_name_.field_2._8_8_ = *(undefined8 *)((long)paVar15 + 8);\n        __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n      }" { (expression_statement "__tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;" (assignment_expression "__tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity" (field_expression "__tmp.section_name_.field_2._M_allocated_capacity" (field_expression "__tmp.section_name_.field_2" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (field_expression "paVar15->_M_allocated_capacity" identifier -> field_identifier)) ;) (expression_statement "__tmp.section_name_.field_2._8_8_ = *(undefined8 *)((long)paVar15 + 8);" (assignment_expression "__tmp.section_name_.field_2._8_8_ = *(undefined8 *)((long)paVar15 + 8)" (field_expression "__tmp.section_name_.field_2._8_8_" (field_expression "__tmp.section_name_.field_2" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (pointer_expression "*(undefined8 *)((long)paVar15 + 8)" * (cast_expression "(undefined8 *)((long)paVar15 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar15 + 8)" ( (binary_expression "(long)paVar15 + 8" (cast_expression "(long)paVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "__tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;" (assignment_expression "__tmp.section_name_._M_dataplus._M_p = (pointer)paVar16" (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar16" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) }) (else_clause "else {\n        __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n      }" else (compound_statement "{\n        __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n      }" { (expression_statement "__tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;" (assignment_expression "__tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity" (field_expression "__tmp.section_name_.field_2._M_allocated_capacity" (field_expression "__tmp.section_name_.field_2" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (field_expression "paVar15->_M_allocated_capacity" identifier -> field_identifier)) ;) }))) (expression_statement "__tmp.section_name_._M_string_length = *(size_type *)((long)paVar15 + -8);" (assignment_expression "__tmp.section_name_._M_string_length = *(size_type *)((long)paVar15 + -8)" (field_expression "__tmp.section_name_._M_string_length" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) = (pointer_expression "*(size_type *)((long)paVar15 + -8)" * (cast_expression "(size_type *)((long)paVar15 + -8)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar15 + -8)" ( (binary_expression "(long)paVar15 + -8" (cast_expression "(long)paVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "paVar15->_M_local_buf[0] = '\0';" (assignment_expression "paVar15->_M_local_buf[0] = '\0'" (subscript_expression "paVar15->_M_local_buf[0]" (field_expression "paVar15->_M_local_buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "*(size_type *)((long)paVar15 + -8) = 0;" (assignment_expression "*(size_type *)((long)paVar15 + -8) = 0" (pointer_expression "*(size_type *)((long)paVar15 + -8)" * (cast_expression "(size_type *)((long)paVar15 + -8)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar15 + -8)" ( (binary_expression "(long)paVar15 + -8" (cast_expression "(long)paVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "sVar3 = *(size_type *)((long)paVar10 + -0x28);" (assignment_expression "sVar3 = *(size_type *)((long)paVar10 + -0x28)" identifier = (pointer_expression "*(size_type *)((long)paVar10 + -0x28)" * (cast_expression "(size_type *)((long)paVar10 + -0x28)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar10 + -0x28)" ( (binary_expression "(long)paVar10 + -0x28" (cast_expression "(long)paVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "__tmp.size_ = paVar15[1]._M_allocated_capacity;" (assignment_expression "__tmp.size_ = paVar15[1]._M_allocated_capacity" (field_expression "__tmp.size_" identifier . field_identifier) = (field_expression "paVar15[1]._M_allocated_capacity" (subscript_expression "paVar15[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "paVar15[-3]._M_allocated_capacity = paVar10[-3]._M_allocated_capacity;" (assignment_expression "paVar15[-3]._M_allocated_capacity = paVar10[-3]._M_allocated_capacity" (field_expression "paVar15[-3]._M_allocated_capacity" (subscript_expression "paVar15[-3]" identifier [ number_literal ]) . field_identifier) = (field_expression "paVar10[-3]._M_allocated_capacity" (subscript_expression "paVar10[-3]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "*(size_type *)((long)paVar15 + -0x28) = sVar3;" (assignment_expression "*(size_type *)((long)paVar15 + -0x28) = sVar3" (pointer_expression "*(size_type *)((long)paVar15 + -0x28)" * (cast_expression "(size_type *)((long)paVar15 + -0x28)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar15 + -0x28)" ( (binary_expression "(long)paVar15 + -0x28" (cast_expression "(long)paVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "__tmp.addralign_ = *(uint64_t *)((long)paVar15 + 0x18);" (assignment_expression "__tmp.addralign_ = *(uint64_t *)((long)paVar15 + 0x18)" (field_expression "__tmp.addralign_" identifier . field_identifier) = (pointer_expression "*(uint64_t *)((long)paVar15 + 0x18)" * (cast_expression "(uint64_t *)((long)paVar15 + 0x18)" ( (type_descriptor "uint64_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar15 + 0x18)" ( (binary_expression "(long)paVar15 + 0x18" (cast_expression "(long)paVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "(((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)paVar15;" (assignment_expression "(((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)paVar15" (field_expression "(((string *)(paVar15 + -1))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)(paVar15 + -1))->_M_dataplus)" ( (field_expression "((string *)(paVar15 + -1))->_M_dataplus" (parenthesized_expression "((string *)(paVar15 + -1))" ( (cast_expression "(string *)(paVar15 + -1)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar15 + -1)" ( (binary_expression "paVar15 + -1" identifier + number_literal) ))) )) -> field_identifier) )) . field_identifier) = (cast_expression "(pointer)paVar15" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "paVar15[-2]._M_allocated_capacity = paVar10[-2]._M_allocated_capacity;" (assignment_expression "paVar15[-2]._M_allocated_capacity = paVar10[-2]._M_allocated_capacity" (field_expression "paVar15[-2]._M_allocated_capacity" (subscript_expression "paVar15[-2]" identifier [ number_literal ]) . field_identifier) = (field_expression "paVar10[-2]._M_allocated_capacity" (subscript_expression "paVar10[-2]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "*(undefined4 *)((long)paVar15 + -0x18) = *(undefined4 *)((long)paVar10 + -0x18);" (assignment_expression "*(undefined4 *)((long)paVar15 + -0x18) = *(undefined4 *)((long)paVar10 + -0x18)" (pointer_expression "*(undefined4 *)((long)paVar15 + -0x18)" * (cast_expression "(undefined4 *)((long)paVar15 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar15 + -0x18)" ( (binary_expression "(long)paVar15 + -0x18" (cast_expression "(long)paVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((long)paVar10 + -0x18)" * (cast_expression "(undefined4 *)((long)paVar10 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar10 + -0x18)" ( (binary_expression "(long)paVar10 + -0x18" (cast_expression "(long)paVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;" (assignment_expression "psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p" identifier = (cast_expression "(size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(((string *)(paVar10 + -1))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)(paVar10 + -1))->_M_dataplus)" ( (field_expression "((string *)(paVar10 + -1))->_M_dataplus" (parenthesized_expression "((string *)(paVar10 + -1))" ( (cast_expression "(string *)(paVar10 + -1)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar10 + -1)" ( (binary_expression "paVar10 + -1" identifier + number_literal) ))) )) -> field_identifier) )) . field_identifier))) ;) (if_statement "if (paVar10 ==\n          (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)psVar14) {\n        sVar6 = *(size_type *)((long)paVar10 + -8);\n        if (sVar6 != 0) {\n          if (sVar6 == 1) {\n            paVar15->_M_local_buf[0] = paVar10->_M_local_buf[0];\n            sVar6 = *(size_type *)((long)paVar10 + -8);\n          }\n          else {\n            memcpy(paVar15,paVar10,sVar6);\n            sVar6 = *(size_type *)((long)paVar10 + -8);\n          }\n        }\n        *(size_t *)((long)paVar15 + -8) = sVar6;\n        paVar15->_M_local_buf[sVar6] = '\0';\n        paVar4 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)psVar14[-2];\n      }\n      else {\n        (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)psVar14;\n        *(size_type *)((long)paVar15 + -8) = *(size_type *)((long)paVar10 + -8);\n        paVar15->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n        (((string *)(paVar10 + -1))->_M_dataplus)._M_p = (pointer)paVar10;\n        paVar4 = paVar10;\n      }" if (parenthesized_expression "(paVar10 ==\n          (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)psVar14)" ( (binary_expression "paVar10 ==\n          (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)psVar14)" identifier == (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)psVar14)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n           *)psVar14" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n           *)psVar14" identifier * (ERROR ")" )) identifier)) ))) )) (compound_statement "{\n        sVar6 = *(size_type *)((long)paVar10 + -8);\n        if (sVar6 != 0) {\n          if (sVar6 == 1) {\n            paVar15->_M_local_buf[0] = paVar10->_M_local_buf[0];\n            sVar6 = *(size_type *)((long)paVar10 + -8);\n          }\n          else {\n            memcpy(paVar15,paVar10,sVar6);\n            sVar6 = *(size_type *)((long)paVar10 + -8);\n          }\n        }\n        *(size_t *)((long)paVar15 + -8) = sVar6;\n        paVar15->_M_local_buf[sVar6] = '\0';\n        paVar4 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)psVar14[-2];\n      }" { (expression_statement "sVar6 = *(size_type *)((long)paVar10 + -8);" (assignment_expression "sVar6 = *(size_type *)((long)paVar10 + -8)" identifier = (pointer_expression "*(size_type *)((long)paVar10 + -8)" * (cast_expression "(size_type *)((long)paVar10 + -8)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar10 + -8)" ( (binary_expression "(long)paVar10 + -8" (cast_expression "(long)paVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (if_statement "if (sVar6 != 0) {\n          if (sVar6 == 1) {\n            paVar15->_M_local_buf[0] = paVar10->_M_local_buf[0];\n            sVar6 = *(size_type *)((long)paVar10 + -8);\n          }\n          else {\n            memcpy(paVar15,paVar10,sVar6);\n            sVar6 = *(size_type *)((long)paVar10 + -8);\n          }\n        }" if (parenthesized_expression "(sVar6 != 0)" ( (binary_expression "sVar6 != 0" identifier != number_literal) )) (compound_statement "{\n          if (sVar6 == 1) {\n            paVar15->_M_local_buf[0] = paVar10->_M_local_buf[0];\n            sVar6 = *(size_type *)((long)paVar10 + -8);\n          }\n          else {\n            memcpy(paVar15,paVar10,sVar6);\n            sVar6 = *(size_type *)((long)paVar10 + -8);\n          }\n        }" { (if_statement "if (sVar6 == 1) {\n            paVar15->_M_local_buf[0] = paVar10->_M_local_buf[0];\n            sVar6 = *(size_type *)((long)paVar10 + -8);\n          }\n          else {\n            memcpy(paVar15,paVar10,sVar6);\n            sVar6 = *(size_type *)((long)paVar10 + -8);\n          }" if (parenthesized_expression "(sVar6 == 1)" ( (binary_expression "sVar6 == 1" identifier == number_literal) )) (compound_statement "{\n            paVar15->_M_local_buf[0] = paVar10->_M_local_buf[0];\n            sVar6 = *(size_type *)((long)paVar10 + -8);\n          }" { (expression_statement "paVar15->_M_local_buf[0] = paVar10->_M_local_buf[0];" (assignment_expression "paVar15->_M_local_buf[0] = paVar10->_M_local_buf[0]" (subscript_expression "paVar15->_M_local_buf[0]" (field_expression "paVar15->_M_local_buf" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "paVar10->_M_local_buf[0]" (field_expression "paVar10->_M_local_buf" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "sVar6 = *(size_type *)((long)paVar10 + -8);" (assignment_expression "sVar6 = *(size_type *)((long)paVar10 + -8)" identifier = (pointer_expression "*(size_type *)((long)paVar10 + -8)" * (cast_expression "(size_type *)((long)paVar10 + -8)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar10 + -8)" ( (binary_expression "(long)paVar10 + -8" (cast_expression "(long)paVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) }) (else_clause "else {\n            memcpy(paVar15,paVar10,sVar6);\n            sVar6 = *(size_type *)((long)paVar10 + -8);\n          }" else (compound_statement "{\n            memcpy(paVar15,paVar10,sVar6);\n            sVar6 = *(size_type *)((long)paVar10 + -8);\n          }" { (expression_statement "memcpy(paVar15,paVar10,sVar6);" (call_expression "memcpy(paVar15,paVar10,sVar6)" identifier (argument_list "(paVar15,paVar10,sVar6)" ( identifier , identifier , identifier ))) ;) (expression_statement "sVar6 = *(size_type *)((long)paVar10 + -8);" (assignment_expression "sVar6 = *(size_type *)((long)paVar10 + -8)" identifier = (pointer_expression "*(size_type *)((long)paVar10 + -8)" * (cast_expression "(size_type *)((long)paVar10 + -8)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar10 + -8)" ( (binary_expression "(long)paVar10 + -8" (cast_expression "(long)paVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) }))) })) (expression_statement "*(size_t *)((long)paVar15 + -8) = sVar6;" (assignment_expression "*(size_t *)((long)paVar15 + -8) = sVar6" (pointer_expression "*(size_t *)((long)paVar15 + -8)" * (cast_expression "(size_t *)((long)paVar15 + -8)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar15 + -8)" ( (binary_expression "(long)paVar15 + -8" (cast_expression "(long)paVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "paVar15->_M_local_buf[sVar6] = '\0';" (assignment_expression "paVar15->_M_local_buf[sVar6] = '\0'" (subscript_expression "paVar15->_M_local_buf[sVar6]" (field_expression "paVar15->_M_local_buf" identifier -> field_identifier) [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "paVar4 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)psVar14[-2];" (assignment_expression "paVar4 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)psVar14[-2]" identifier = (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)psVar14[-2]" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n                  *)psVar14[-2]" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                  *)psVar14[-2]" identifier * (ERROR ")" )) (subscript_expression "psVar14[-2]" identifier [ number_literal ]))) ))) ;) }) (else_clause "else {\n        (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)psVar14;\n        *(size_type *)((long)paVar15 + -8) = *(size_type *)((long)paVar10 + -8);\n        paVar15->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n        (((string *)(paVar10 + -1))->_M_dataplus)._M_p = (pointer)paVar10;\n        paVar4 = paVar10;\n      }" else (compound_statement "{\n        (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)psVar14;\n        *(size_type *)((long)paVar15 + -8) = *(size_type *)((long)paVar10 + -8);\n        paVar15->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n        (((string *)(paVar10 + -1))->_M_dataplus)._M_p = (pointer)paVar10;\n        paVar4 = paVar10;\n      }" { (expression_statement "(((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)psVar14;" (assignment_expression "(((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)psVar14" (field_expression "(((string *)(paVar15 + -1))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)(paVar15 + -1))->_M_dataplus)" ( (field_expression "((string *)(paVar15 + -1))->_M_dataplus" (parenthesized_expression "((string *)(paVar15 + -1))" ( (cast_expression "(string *)(paVar15 + -1)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar15 + -1)" ( (binary_expression "paVar15 + -1" identifier + number_literal) ))) )) -> field_identifier) )) . field_identifier) = (cast_expression "(pointer)psVar14" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "*(size_type *)((long)paVar15 + -8) = *(size_type *)((long)paVar10 + -8);" (assignment_expression "*(size_type *)((long)paVar15 + -8) = *(size_type *)((long)paVar10 + -8)" (pointer_expression "*(size_type *)((long)paVar15 + -8)" * (cast_expression "(size_type *)((long)paVar15 + -8)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar15 + -8)" ( (binary_expression "(long)paVar15 + -8" (cast_expression "(long)paVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (pointer_expression "*(size_type *)((long)paVar10 + -8)" * (cast_expression "(size_type *)((long)paVar10 + -8)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar10 + -8)" ( (binary_expression "(long)paVar10 + -8" (cast_expression "(long)paVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "paVar15->_M_allocated_capacity = paVar10->_M_allocated_capacity;" (assignment_expression "paVar15->_M_allocated_capacity = paVar10->_M_allocated_capacity" (field_expression "paVar15->_M_allocated_capacity" identifier -> field_identifier) = (field_expression "paVar10->_M_allocated_capacity" identifier -> field_identifier)) ;) (expression_statement "(((string *)(paVar10 + -1))->_M_dataplus)._M_p = (pointer)paVar10;" (assignment_expression "(((string *)(paVar10 + -1))->_M_dataplus)._M_p = (pointer)paVar10" (field_expression "(((string *)(paVar10 + -1))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)(paVar10 + -1))->_M_dataplus)" ( (field_expression "((string *)(paVar10 + -1))->_M_dataplus" (parenthesized_expression "((string *)(paVar10 + -1))" ( (cast_expression "(string *)(paVar10 + -1)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar10 + -1)" ( (binary_expression "paVar10 + -1" identifier + number_literal) ))) )) -> field_identifier) )) . field_identifier) = (cast_expression "(pointer)paVar10" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "paVar4 = paVar10;" (assignment_expression "paVar4 = paVar10" identifier = identifier) ;) }))) (expression_statement "*(size_type *)((long)paVar10 + -8) = 0;" (assignment_expression "*(size_type *)((long)paVar10 + -8) = 0" (pointer_expression "*(size_type *)((long)paVar10 + -8)" * (cast_expression "(size_type *)((long)paVar10 + -8)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar10 + -8)" ( (binary_expression "(long)paVar10 + -8" (cast_expression "(long)paVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "paVar4->_M_local_buf[0] = '\0';" (assignment_expression "paVar4->_M_local_buf[0] = '\0'" (subscript_expression "paVar4->_M_local_buf[0]" (field_expression "paVar4->_M_local_buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "paVar15[1]._M_allocated_capacity = paVar10[1]._M_allocated_capacity;" (assignment_expression "paVar15[1]._M_allocated_capacity = paVar10[1]._M_allocated_capacity" (field_expression "paVar15[1]._M_allocated_capacity" (subscript_expression "paVar15[1]" identifier [ number_literal ]) . field_identifier) = (field_expression "paVar10[1]._M_allocated_capacity" (subscript_expression "paVar10[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "*(size_type *)((long)paVar15 + 0x18) = *(size_type *)((long)paVar10 + 0x18);" (assignment_expression "*(size_type *)((long)paVar15 + 0x18) = *(size_type *)((long)paVar10 + 0x18)" (pointer_expression "*(size_type *)((long)paVar15 + 0x18)" * (cast_expression "(size_type *)((long)paVar15 + 0x18)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar15 + 0x18)" ( (binary_expression "(long)paVar15 + 0x18" (cast_expression "(long)paVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (pointer_expression "*(size_type *)((long)paVar10 + 0x18)" * (cast_expression "(size_type *)((long)paVar10 + 0x18)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar10 + 0x18)" ( (binary_expression "(long)paVar10 + 0x18" (cast_expression "(long)paVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "paVar10[-3]._M_allocated_capacity = __tmp.input_section_._0_8_;" (assignment_expression "paVar10[-3]._M_allocated_capacity = __tmp.input_section_._0_8_" (field_expression "paVar10[-3]._M_allocated_capacity" (subscript_expression "paVar10[-3]" identifier [ number_literal ]) . field_identifier) = (field_expression "__tmp.input_section_._0_8_" (field_expression "__tmp.input_section_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "*(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar10 + -0x28) = __tmp.input_section_.u1_;" (assignment_expression "*(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar10 + -0x28) = __tmp.input_section_.u1_" (pointer_expression "*(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar10 + -0x28)" * (cast_expression "(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar10 + -0x28)" ( (type_descriptor "anon_union_8_2_227b06d7_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar10 + -0x28)" ( (binary_expression "(long)paVar10 + -0x28" (cast_expression "(long)paVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (field_expression "__tmp.input_section_.u1_" (field_expression "__tmp.input_section_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;" (assignment_expression "psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p" identifier = (cast_expression "(size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(((string *)(paVar10 + -1))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)(paVar10 + -1))->_M_dataplus)" ( (field_expression "((string *)(paVar10 + -1))->_M_dataplus" (parenthesized_expression "((string *)(paVar10 + -1))" ( (cast_expression "(string *)(paVar10 + -1)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar10 + -1)" ( (binary_expression "paVar10 + -1" identifier + number_literal) ))) )) -> field_identifier) )) . field_identifier))) ;) (expression_statement "*(anon_union_8_4_139239c7_for_u2_ *)(paVar10 + -2) = __tmp.input_section_.u2_;" (assignment_expression "*(anon_union_8_4_139239c7_for_u2_ *)(paVar10 + -2) = __tmp.input_section_.u2_" (pointer_expression "*(anon_union_8_4_139239c7_for_u2_ *)(paVar10 + -2)" * (cast_expression "(anon_union_8_4_139239c7_for_u2_ *)(paVar10 + -2)" ( (type_descriptor "anon_union_8_4_139239c7_for_u2_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar10 + -2)" ( (binary_expression "paVar10 + -2" identifier + number_literal) )))) = (field_expression "__tmp.input_section_.u2_" (field_expression "__tmp.input_section_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "*(uint *)((long)paVar10 + -0x18) = __tmp.input_section_.section_order_index_;" (assignment_expression "*(uint *)((long)paVar10 + -0x18) = __tmp.input_section_.section_order_index_" (pointer_expression "*(uint *)((long)paVar10 + -0x18)" * (cast_expression "(uint *)((long)paVar10 + -0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar10 + -0x18)" ( (binary_expression "(long)paVar10 + -0x18" (cast_expression "(long)paVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (field_expression "__tmp.input_section_.section_order_index_" (field_expression "__tmp.input_section_" identifier . field_identifier) . field_identifier)) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)__tmp.section_name_._M_dataplus._M_p == paVar16) {\n        if (__tmp.section_name_._M_string_length != 0) {\n          if (__tmp.section_name_._M_string_length == 1) {\n            *(char *)psVar14 = __tmp.section_name_.field_2._M_local_buf[0];\n            psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n          }\n          else {\n            memcpy(psVar14,paVar16,__tmp.section_name_._M_string_length);\n            psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n          }\n        }\n        *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n        *(char *)((long)psVar14 + __tmp.section_name_._M_string_length) = '\0';\n      }\n      else if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)psVar14 == paVar10) {\n        (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n        *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n        paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n        __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n      }\n      else {\n        sVar3 = paVar10->_M_allocated_capacity;\n        (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n        *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n        paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n        __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n        if (psVar14 != (size_type *)0x0) {\n          __tmp.section_name_._M_dataplus._M_p = (pointer)psVar14;\n          __tmp.section_name_.field_2._M_allocated_capacity = sVar3;\n        }\n      }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)__tmp.section_name_._M_dataplus._M_p == paVar16)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)__tmp.section_name_._M_dataplus._M_p == paVar16)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n           *)__tmp.section_name_._M_dataplus._M_p == paVar16" (binary_expression "allocator<char>_>_9\n           *)__tmp.section_name_._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n           *)__tmp.section_name_._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier))) == identifier) )) )) (compound_statement "{\n        if (__tmp.section_name_._M_string_length != 0) {\n          if (__tmp.section_name_._M_string_length == 1) {\n            *(char *)psVar14 = __tmp.section_name_.field_2._M_local_buf[0];\n            psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n          }\n          else {\n            memcpy(psVar14,paVar16,__tmp.section_name_._M_string_length);\n            psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n          }\n        }\n        *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n        *(char *)((long)psVar14 + __tmp.section_name_._M_string_length) = '\0';\n      }" { (if_statement "if (__tmp.section_name_._M_string_length != 0) {\n          if (__tmp.section_name_._M_string_length == 1) {\n            *(char *)psVar14 = __tmp.section_name_.field_2._M_local_buf[0];\n            psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n          }\n          else {\n            memcpy(psVar14,paVar16,__tmp.section_name_._M_string_length);\n            psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n          }\n        }" if (parenthesized_expression "(__tmp.section_name_._M_string_length != 0)" ( (binary_expression "__tmp.section_name_._M_string_length != 0" (field_expression "__tmp.section_name_._M_string_length" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) != number_literal) )) (compound_statement "{\n          if (__tmp.section_name_._M_string_length == 1) {\n            *(char *)psVar14 = __tmp.section_name_.field_2._M_local_buf[0];\n            psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n          }\n          else {\n            memcpy(psVar14,paVar16,__tmp.section_name_._M_string_length);\n            psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n          }\n        }" { (if_statement "if (__tmp.section_name_._M_string_length == 1) {\n            *(char *)psVar14 = __tmp.section_name_.field_2._M_local_buf[0];\n            psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n          }\n          else {\n            memcpy(psVar14,paVar16,__tmp.section_name_._M_string_length);\n            psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n          }" if (parenthesized_expression "(__tmp.section_name_._M_string_length == 1)" ( (binary_expression "__tmp.section_name_._M_string_length == 1" (field_expression "__tmp.section_name_._M_string_length" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) == number_literal) )) (compound_statement "{\n            *(char *)psVar14 = __tmp.section_name_.field_2._M_local_buf[0];\n            psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n          }" { (expression_statement "*(char *)psVar14 = __tmp.section_name_.field_2._M_local_buf[0];" (assignment_expression "*(char *)psVar14 = __tmp.section_name_.field_2._M_local_buf[0]" (pointer_expression "*(char *)psVar14" * (cast_expression "(char *)psVar14" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (subscript_expression "__tmp.section_name_.field_2._M_local_buf[0]" (field_expression "__tmp.section_name_.field_2._M_local_buf" (field_expression "__tmp.section_name_.field_2" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) [ number_literal ])) ;) (expression_statement "psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;" (assignment_expression "psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p" identifier = (cast_expression "(size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(((string *)(paVar10 + -1))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)(paVar10 + -1))->_M_dataplus)" ( (field_expression "((string *)(paVar10 + -1))->_M_dataplus" (parenthesized_expression "((string *)(paVar10 + -1))" ( (cast_expression "(string *)(paVar10 + -1)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar10 + -1)" ( (binary_expression "paVar10 + -1" identifier + number_literal) ))) )) -> field_identifier) )) . field_identifier))) ;) }) (else_clause "else {\n            memcpy(psVar14,paVar16,__tmp.section_name_._M_string_length);\n            psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n          }" else (compound_statement "{\n            memcpy(psVar14,paVar16,__tmp.section_name_._M_string_length);\n            psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n          }" { (expression_statement "memcpy(psVar14,paVar16,__tmp.section_name_._M_string_length);" (call_expression "memcpy(psVar14,paVar16,__tmp.section_name_._M_string_length)" identifier (argument_list "(psVar14,paVar16,__tmp.section_name_._M_string_length)" ( identifier , identifier , (field_expression "__tmp.section_name_._M_string_length" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) ))) ;) (expression_statement "psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;" (assignment_expression "psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p" identifier = (cast_expression "(size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(((string *)(paVar10 + -1))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)(paVar10 + -1))->_M_dataplus)" ( (field_expression "((string *)(paVar10 + -1))->_M_dataplus" (parenthesized_expression "((string *)(paVar10 + -1))" ( (cast_expression "(string *)(paVar10 + -1)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar10 + -1)" ( (binary_expression "paVar10 + -1" identifier + number_literal) ))) )) -> field_identifier) )) . field_identifier))) ;) }))) })) (expression_statement "*(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;" (assignment_expression "*(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length" (pointer_expression "*(size_type *)((long)paVar10 + -8)" * (cast_expression "(size_type *)((long)paVar10 + -8)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar10 + -8)" ( (binary_expression "(long)paVar10 + -8" (cast_expression "(long)paVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (field_expression "__tmp.section_name_._M_string_length" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "*(char *)((long)psVar14 + __tmp.section_name_._M_string_length) = '\0';" (assignment_expression "*(char *)((long)psVar14 + __tmp.section_name_._M_string_length) = '\0'" (pointer_expression "*(char *)((long)psVar14 + __tmp.section_name_._M_string_length)" * (cast_expression "(char *)((long)psVar14 + __tmp.section_name_._M_string_length)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)psVar14 + __tmp.section_name_._M_string_length)" ( (binary_expression "(long)psVar14 + __tmp.section_name_._M_string_length" (cast_expression "(long)psVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (field_expression "__tmp.section_name_._M_string_length" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier)) )))) = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)psVar14 == paVar10) {\n        (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n        *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n        paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n        __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n      }\n      else {\n        sVar3 = paVar10->_M_allocated_capacity;\n        (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n        *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n        paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n        __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n        if (psVar14 != (size_type *)0x0) {\n          __tmp.section_name_._M_dataplus._M_p = (pointer)psVar14;\n          __tmp.section_name_.field_2._M_allocated_capacity = sVar3;\n        }\n      }" else (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)psVar14 == paVar10) {\n        (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n        *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n        paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n        __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n      }\n      else {\n        sVar3 = paVar10->_M_allocated_capacity;\n        (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n        *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n        paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n        __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n        if (psVar14 != (size_type *)0x0) {\n          __tmp.section_name_._M_dataplus._M_p = (pointer)psVar14;\n          __tmp.section_name_.field_2._M_allocated_capacity = sVar3;\n        }\n      }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)psVar14 == paVar10)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)psVar14 == paVar10)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n                *)psVar14 == paVar10" (binary_expression "allocator<char>_>_9\n                *)psVar14" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                *)psVar14" identifier * (ERROR ")" )) identifier)) == identifier) )) )) (compound_statement "{\n        (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n        *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n        paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n        __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n      }" { (expression_statement "(((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;" (assignment_expression "(((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p" (field_expression "(((string *)(paVar10 + -1))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)(paVar10 + -1))->_M_dataplus)" ( (field_expression "((string *)(paVar10 + -1))->_M_dataplus" (parenthesized_expression "((string *)(paVar10 + -1))" ( (cast_expression "(string *)(paVar10 + -1)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar10 + -1)" ( (binary_expression "paVar10 + -1" identifier + number_literal) ))) )) -> field_identifier) )) . field_identifier) = (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "*(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;" (assignment_expression "*(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length" (pointer_expression "*(size_type *)((long)paVar10 + -8)" * (cast_expression "(size_type *)((long)paVar10 + -8)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar10 + -8)" ( (binary_expression "(long)paVar10 + -8" (cast_expression "(long)paVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (field_expression "__tmp.section_name_._M_string_length" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;" (assignment_expression "paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity" (field_expression "paVar10->_M_allocated_capacity" identifier -> field_identifier) = (field_expression "__tmp.section_name_.field_2._M_allocated_capacity" (field_expression "__tmp.section_name_.field_2" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "__tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;" (assignment_expression "__tmp.section_name_._M_dataplus._M_p = (pointer)paVar16" (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar16" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) }) (else_clause "else {\n        sVar3 = paVar10->_M_allocated_capacity;\n        (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n        *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n        paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n        __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n        if (psVar14 != (size_type *)0x0) {\n          __tmp.section_name_._M_dataplus._M_p = (pointer)psVar14;\n          __tmp.section_name_.field_2._M_allocated_capacity = sVar3;\n        }\n      }" else (compound_statement "{\n        sVar3 = paVar10->_M_allocated_capacity;\n        (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n        *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n        paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n        __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n        if (psVar14 != (size_type *)0x0) {\n          __tmp.section_name_._M_dataplus._M_p = (pointer)psVar14;\n          __tmp.section_name_.field_2._M_allocated_capacity = sVar3;\n        }\n      }" { (expression_statement "sVar3 = paVar10->_M_allocated_capacity;" (assignment_expression "sVar3 = paVar10->_M_allocated_capacity" identifier = (field_expression "paVar10->_M_allocated_capacity" identifier -> field_identifier)) ;) (expression_statement "(((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;" (assignment_expression "(((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p" (field_expression "(((string *)(paVar10 + -1))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)(paVar10 + -1))->_M_dataplus)" ( (field_expression "((string *)(paVar10 + -1))->_M_dataplus" (parenthesized_expression "((string *)(paVar10 + -1))" ( (cast_expression "(string *)(paVar10 + -1)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar10 + -1)" ( (binary_expression "paVar10 + -1" identifier + number_literal) ))) )) -> field_identifier) )) . field_identifier) = (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "*(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;" (assignment_expression "*(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length" (pointer_expression "*(size_type *)((long)paVar10 + -8)" * (cast_expression "(size_type *)((long)paVar10 + -8)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar10 + -8)" ( (binary_expression "(long)paVar10 + -8" (cast_expression "(long)paVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (field_expression "__tmp.section_name_._M_string_length" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;" (assignment_expression "paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity" (field_expression "paVar10->_M_allocated_capacity" identifier -> field_identifier) = (field_expression "__tmp.section_name_.field_2._M_allocated_capacity" (field_expression "__tmp.section_name_.field_2" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "__tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;" (assignment_expression "__tmp.section_name_._M_dataplus._M_p = (pointer)paVar16" (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar16" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (if_statement "if (psVar14 != (size_type *)0x0) {\n          __tmp.section_name_._M_dataplus._M_p = (pointer)psVar14;\n          __tmp.section_name_.field_2._M_allocated_capacity = sVar3;\n        }" if (parenthesized_expression "(psVar14 != (size_type *)0x0)" ( (binary_expression "psVar14 != (size_type *)0x0" identifier != (cast_expression "(size_type *)0x0" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          __tmp.section_name_._M_dataplus._M_p = (pointer)psVar14;\n          __tmp.section_name_.field_2._M_allocated_capacity = sVar3;\n        }" { (expression_statement "__tmp.section_name_._M_dataplus._M_p = (pointer)psVar14;" (assignment_expression "__tmp.section_name_._M_dataplus._M_p = (pointer)psVar14" (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(pointer)psVar14" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "__tmp.section_name_.field_2._M_allocated_capacity = sVar3;" (assignment_expression "__tmp.section_name_.field_2._M_allocated_capacity = sVar3" (field_expression "__tmp.section_name_.field_2._M_allocated_capacity" (field_expression "__tmp.section_name_.field_2" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = identifier) ;) })) }))))) (expression_statement "__tmp.section_name_._M_string_length = 0;" (assignment_expression "__tmp.section_name_._M_string_length = 0" (field_expression "__tmp.section_name_._M_string_length" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "*__tmp.section_name_._M_dataplus._M_p = '\0';" (assignment_expression "*__tmp.section_name_._M_dataplus._M_p = '\0'" (pointer_expression "*__tmp.section_name_._M_dataplus._M_p" * (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier)) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "paVar10[1]._M_allocated_capacity = __tmp.size_;" (assignment_expression "paVar10[1]._M_allocated_capacity = __tmp.size_" (field_expression "paVar10[1]._M_allocated_capacity" (subscript_expression "paVar10[1]" identifier [ number_literal ]) . field_identifier) = (field_expression "__tmp.size_" identifier . field_identifier)) ;) (expression_statement "*(uint64_t *)((long)paVar10 + 0x18) = __tmp.addralign_;" (assignment_expression "*(uint64_t *)((long)paVar10 + 0x18) = __tmp.addralign_" (pointer_expression "*(uint64_t *)((long)paVar10 + 0x18)" * (cast_expression "(uint64_t *)((long)paVar10 + 0x18)" ( (type_descriptor "uint64_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar10 + 0x18)" ( (binary_expression "(long)paVar10 + 0x18" (cast_expression "(long)paVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (field_expression "__tmp.addralign_" identifier . field_identifier)) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)__tmp.section_name_._M_dataplus._M_p != paVar16) {\n        operator_delete(__tmp.section_name_._M_dataplus._M_p);\n      }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)__tmp.section_name_._M_dataplus._M_p != paVar16)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)__tmp.section_name_._M_dataplus._M_p != paVar16)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n           *)__tmp.section_name_._M_dataplus._M_p != paVar16" (binary_expression "allocator<char>_>_9\n           *)__tmp.section_name_._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n           *)__tmp.section_name_._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier))) != identifier) )) )) (compound_statement "{\n        operator_delete(__tmp.section_name_._M_dataplus._M_p);\n      }" { (expression_statement "operator_delete(__tmp.section_name_._M_dataplus._M_p);" (call_expression "operator_delete(__tmp.section_name_._M_dataplus._M_p)" identifier (argument_list "(__tmp.section_name_._M_dataplus._M_p)" ( (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) ))) ;) })) (expression_statement "paVar10 = paVar10 + 5;" (assignment_expression "paVar10 = paVar10 + 5" identifier = (binary_expression "paVar10 + 5" identifier + number_literal)) ;) (expression_statement "paVar15 = paVar15 + 5;" (assignment_expression "paVar15 = paVar15 + 5" identifier = (binary_expression "paVar15 + 5" identifier + number_literal)) ;) }) while (parenthesized_expression "(paVar10 !=\n             (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n              *)(__middle[1].section_name_.field_2._M_local_buf +\n                ((long)__middle + (-0x50 - (long)__first) & 0xfffffffffffffff0)))" ( (binary_expression "paVar10 !=\n             (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n              *)(__middle[1].section_name_.field_2._M_local_buf +\n                ((long)__middle + (-0x50 - (long)__first) & 0xfffffffffffffff0))" identifier != (call_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n              *)(__middle[1].section_name_.field_2._M_local_buf +\n                ((long)__middle + (-0x50 - (long)__first) & 0xfffffffffffffff0))" (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n              *)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) (ERROR "*" *) )) (argument_list "(__middle[1].section_name_.field_2._M_local_buf +\n                ((long)__middle + (-0x50 - (long)__first) & 0xfffffffffffffff0))" ( (binary_expression "__middle[1].section_name_.field_2._M_local_buf +\n                ((long)__middle + (-0x50 - (long)__first) & 0xfffffffffffffff0)" (field_expression "__middle[1].section_name_.field_2._M_local_buf" (field_expression "__middle[1].section_name_.field_2" (field_expression "__middle[1].section_name_" (subscript_expression "__middle[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) . field_identifier) + (parenthesized_expression "((long)__middle + (-0x50 - (long)__first) & 0xfffffffffffffff0)" ( (binary_expression "(long)__middle + (-0x50 - (long)__first) & 0xfffffffffffffff0" (binary_expression "(long)__middle + (-0x50 - (long)__first)" (cast_expression "(long)__middle" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(-0x50 - (long)__first)" ( (binary_expression "-0x50 - (long)__first" number_literal - (cast_expression "(long)__first" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) & number_literal) ))) )))) )) ;) (return_statement "return (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n            )__middle;" return (parenthesized_expression "(__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n            )__middle" ( (ERROR "__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::" (comma_expression "__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std" (binary_expression "__normal_iterator<gold::Input_section_info*,_std::vector<gold" (binary_expression "__normal_iterator<gold::Input_section_info*,_std" (binary_expression "__normal_iterator<gold" identifier < identifier) (ERROR "::Input_section_info" : : identifier) * (ERROR "," ,) identifier) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Input_section_info" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Input_section_info>_>_>\n            )__middle" (binary_expression "Input_section_info>_>_" (binary_expression "Input_section_info>_" identifier > identifier) > identifier) > (ERROR ")" )) identifier) )) ;) })) (expression_statement "lVar11 = local_a8 + lVar7 * 0x3333333333333333;" (assignment_expression "lVar11 = local_a8 + lVar7 * 0x3333333333333333" identifier = (binary_expression "local_a8 + lVar7 * 0x3333333333333333" identifier + (binary_expression "lVar7 * 0x3333333333333333" identifier * number_literal))) ;) (expression_statement "lVar9 = lVar8;" (assignment_expression "lVar9 = lVar8" identifier = identifier) ;) (expression_statement "local_a0 = __first;" (assignment_expression "local_a0 = __first" identifier = identifier) ;) (if_statement "if (lVar11 == lVar8 || SBORROW8(lVar11,lVar8) != lVar11 + lVar7 * 0x3333333333333333 < 0)\n  goto LAB_0025fb1a;" if (parenthesized_expression "(lVar11 == lVar8 || SBORROW8(lVar11,lVar8) != lVar11 + lVar7 * 0x3333333333333333 < 0)" ( (binary_expression "lVar11 == lVar8 || SBORROW8(lVar11,lVar8) != lVar11 + lVar7 * 0x3333333333333333 < 0" (binary_expression "lVar11 == lVar8" identifier == identifier) || (binary_expression "SBORROW8(lVar11,lVar8) != lVar11 + lVar7 * 0x3333333333333333 < 0" (call_expression "SBORROW8(lVar11,lVar8)" identifier (argument_list "(lVar11,lVar8)" ( identifier , identifier ))) != (binary_expression "lVar11 + lVar7 * 0x3333333333333333 < 0" (binary_expression "lVar11 + lVar7 * 0x3333333333333333" identifier + (binary_expression "lVar7 * 0x3333333333333333" identifier * number_literal)) < number_literal))) )) (goto_statement "goto LAB_0025fb1a;" goto statement_identifier ;)) (do_statement "do {\n    if (0 < lVar11) {\n      lVar7 = 0;\n      paVar16 = &local_a0[lVar8].section_name_.field_2;\n      paVar15 = &(local_a0->section_name_).field_2;\n      paVar10 = &__tmp.section_name_.field_2;\n      do {\n        __tmp.input_section_._0_8_ = *(undefined8 *)(paVar15 + -3);\n        __tmp.input_section_.u1_ = *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar15 + -0x28);\n        __tmp.input_section_.u2_ = *(anon_union_8_4_139239c7_for_u2_ *)(paVar15 + -2);\n        __tmp.input_section_._24_8_ = *(size_type *)((long)paVar15 + -0x18);\n        __tmp.section_name_._M_dataplus._M_p = (((string *)(paVar15 + -1))->_M_dataplus)._M_p;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p == paVar15) {\n          __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n          __tmp.section_name_.field_2._8_8_ = *(size_type *)((long)paVar15 + 8);\n          __tmp.section_name_._M_dataplus._M_p = (pointer)paVar10;\n        }\n        else {\n          __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n        }\n        __tmp.section_name_._M_string_length = *(size_type *)((long)paVar15 + -8);\n        paVar15->_M_local_buf[0] = '\0';\n        *(size_type *)((long)paVar15 + -8) = 0;\n        sVar3 = *(size_type *)((long)paVar16 + -0x28);\n        __tmp.size_ = paVar15[1]._M_allocated_capacity;\n        paVar15[-3]._M_allocated_capacity = paVar16[-3]._M_allocated_capacity;\n        *(size_type *)((long)paVar15 + -0x28) = sVar3;\n        __tmp.addralign_ = *(size_type *)((long)paVar15 + 0x18);\n        (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)paVar15;\n        paVar15[-2]._M_allocated_capacity = paVar16[-2]._M_allocated_capacity;\n        *(undefined4 *)((long)paVar15 + -0x18) = *(undefined4 *)((long)paVar16 + -0x18);\n        pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar13 == paVar16) {\n          sVar6 = *(size_type *)((long)paVar16 + -8);\n          if (sVar6 != 0) {\n            if (sVar6 == 1) {\n              paVar15->_M_local_buf[0] = paVar16->_M_local_buf[0];\n              sVar6 = *(size_type *)((long)paVar16 + -8);\n            }\n            else {\n              memcpy(paVar15,paVar16,sVar6);\n              sVar6 = *(size_type *)((long)paVar16 + -8);\n            }\n          }\n          *(size_t *)((long)paVar15 + -8) = sVar6;\n          paVar15->_M_local_buf[sVar6] = '\0';\n          paVar4 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n        }\n        else {\n          (((string *)(paVar15 + -1))->_M_dataplus)._M_p = pcVar13;\n          *(size_type *)((long)paVar15 + -8) = *(size_type *)((long)paVar16 + -8);\n          paVar15->_M_allocated_capacity = paVar16->_M_allocated_capacity;\n          (((string *)(paVar16 + -1))->_M_dataplus)._M_p = (pointer)paVar16;\n          paVar4 = paVar16;\n        }\n        *(size_type *)((long)paVar16 + -8) = 0;\n        paVar4->_M_local_buf[0] = '\0';\n        paVar15[1]._M_allocated_capacity = paVar16[1]._M_allocated_capacity;\n        *(size_type *)((long)paVar15 + 0x18) = *(size_type *)((long)paVar16 + 0x18);\n        paVar16[-3]._M_allocated_capacity = __tmp.input_section_._0_8_;\n        *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar16 + -0x28) = __tmp.input_section_.u1_;\n        pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n        *(anon_union_8_4_139239c7_for_u2_ *)(paVar16 + -2) = __tmp.input_section_.u2_;\n        *(uint *)((long)paVar16 + -0x18) = __tmp.input_section_.section_order_index_;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p == paVar10) {\n          if (__tmp.section_name_._M_string_length != 0) {\n            if (__tmp.section_name_._M_string_length == 1) {\n              *pcVar13 = __tmp.section_name_.field_2._M_local_buf[0];\n              pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n            }\n            else {\n              memcpy(pcVar13,paVar10,__tmp.section_name_._M_string_length);\n              pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n            }\n          }\n          *(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length;\n          pcVar13[__tmp.section_name_._M_string_length] = '\0';\n          uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n        }\n        else {\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)pcVar13 == paVar16) {\n            (((string *)(paVar16 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n            *(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length;\n            paVar16->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n          }\n          else {\n            uVar2 = paVar16->_M_allocated_capacity;\n            (((string *)(paVar16 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n            *(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length;\n            paVar16->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n            __tmp.section_name_._M_dataplus._M_p = pcVar13;\n            if (pcVar13 != (pointer)0x0) goto LAB_0025f996;\n          }\n          __tmp.section_name_._M_dataplus._M_p = (pointer)paVar10;\n          uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n        }\nLAB_0025f996:\n        __tmp.section_name_.field_2._M_allocated_capacity = uVar2;\n        __tmp.section_name_._M_string_length = 0;\n        *__tmp.section_name_._M_dataplus._M_p = '\0';\n        paVar16[1]._M_allocated_capacity = __tmp.size_;\n        *(uint64_t *)((long)paVar16 + 0x18) = __tmp.addralign_;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p != paVar10) {\n          operator_delete(__tmp.section_name_._M_dataplus._M_p);\n        }\n        lVar7 = lVar7 + 1;\n        paVar15 = paVar15 + 5;\n        paVar16 = paVar16 + 5;\n      } while (lVar11 != lVar7);\n      local_a0 = local_a0 + lVar11;\n    }\n    if (local_a8 % lVar8 == 0) {\n      return (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n              )pIVar1;\n    }\n    lVar9 = lVar8 - local_a8 % lVar8;\n    lVar7 = lVar8;\n    while (lVar11 = lVar7 - lVar9, lVar8 = lVar9, local_a8 = lVar7, lVar11 <= lVar9) {\nLAB_0025fb1a:\n      lVar7 = lVar11;\n      pIVar12 = local_a0 + (local_a8 - lVar7);\n      if (0 < lVar9) {\n        paVar15 = &pIVar12[-1].section_name_.field_2;\n        paVar10 = &local_a0[local_a8 + -1].section_name_.field_2;\n        lVar8 = 0;\n        paVar16 = &__tmp.section_name_.field_2;\n        do {\n          __tmp.input_section_._0_8_ = *(undefined8 *)(paVar15 + -3);\n          __tmp.input_section_.u1_ = *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar15 + -0x28);\n          __tmp.input_section_.u2_ = *(anon_union_8_4_139239c7_for_u2_ *)(paVar15 + -2);\n          __tmp.input_section_._24_8_ = *(undefined8 *)((long)paVar15 + -0x18);\n          __tmp.section_name_._M_dataplus._M_p = (((string *)(paVar15 + -1))->_M_dataplus)._M_p;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)__tmp.section_name_._M_dataplus._M_p == paVar15) {\n            __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n            __tmp.section_name_.field_2._8_8_ = *(undefined8 *)((long)paVar15 + 8);\n            __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n          }\n          else {\n            __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n          }\n          __tmp.section_name_._M_string_length = *(size_type *)((long)paVar15 + -8);\n          paVar15->_M_local_buf[0] = '\0';\n          *(size_type *)((long)paVar15 + -8) = 0;\n          sVar3 = *(size_type *)((long)paVar10 + -0x28);\n          __tmp.size_ = paVar15[1]._M_allocated_capacity;\n          paVar15[-3]._M_allocated_capacity = paVar10[-3]._M_allocated_capacity;\n          *(size_type *)((long)paVar15 + -0x28) = sVar3;\n          __tmp.addralign_ = *(uint64_t *)((long)paVar15 + 0x18);\n          (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)paVar15;\n          paVar15[-2]._M_allocated_capacity = paVar10[-2]._M_allocated_capacity;\n          *(undefined4 *)((long)paVar15 + -0x18) = *(undefined4 *)((long)paVar10 + -0x18);\n          psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)psVar14 == paVar10) {\n            sVar6 = *(size_type *)((long)paVar10 + -8);\n            if (sVar6 != 0) {\n              if (sVar6 == 1) {\n                paVar15->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                sVar6 = *(size_type *)((long)paVar10 + -8);\n              }\n              else {\n                memcpy(paVar15,paVar10,sVar6);\n                sVar6 = *(size_type *)((long)paVar10 + -8);\n              }\n            }\n            pcVar13 = (((string *)(paVar15 + -1))->_M_dataplus)._M_p;\n            *(size_t *)((long)paVar15 + -8) = sVar6;\n            pcVar13[sVar6] = '\0';\n          }\n          else {\n            (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)psVar14;\n            *(size_type *)((long)paVar15 + -8) = *(size_type *)((long)paVar10 + -8);\n            paVar15->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n            (((string *)(paVar10 + -1))->_M_dataplus)._M_p = (pointer)paVar10;\n          }\n          *(size_type *)((long)paVar10 + -8) = 0;\n          *(((string *)(paVar10 + -1))->_M_dataplus)._M_p = '\0';\n          paVar15[1]._M_allocated_capacity = paVar10[1]._M_allocated_capacity;\n          *(size_type *)((long)paVar15 + 0x18) = *(size_type *)((long)paVar10 + 0x18);\n          psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n          paVar10[-3]._M_allocated_capacity = __tmp.input_section_._0_8_;\n          *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar10 + -0x28) = __tmp.input_section_.u1_;\n          *(anon_union_8_4_139239c7_for_u2_ *)(paVar10 + -2) = __tmp.input_section_.u2_;\n          *(uint *)((long)paVar10 + -0x18) = __tmp.input_section_.section_order_index_;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)__tmp.section_name_._M_dataplus._M_p == paVar16) {\n            if (__tmp.section_name_._M_string_length != 0) {\n              if (__tmp.section_name_._M_string_length == 1) {\n                *(char *)psVar14 = __tmp.section_name_.field_2._M_local_buf[0];\n                psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n              }\n              else {\n                memcpy(psVar14,paVar16,__tmp.section_name_._M_string_length);\n                psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n              }\n            }\n            *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n            *(char *)((long)psVar14 + __tmp.section_name_._M_string_length) = '\0';\n            uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n          }\n          else {\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)psVar14 == paVar10) {\n              (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n              *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n              paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n            }\n            else {\n              uVar2 = paVar10->_M_allocated_capacity;\n              (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n              *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n              paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n              __tmp.section_name_._M_dataplus._M_p = (pointer)psVar14;\n              if (psVar14 != (size_type *)0x0) goto LAB_0025fc78;\n            }\n            __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n            uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n          }\nLAB_0025fc78:\n          __tmp.section_name_.field_2._M_allocated_capacity = uVar2;\n          __tmp.section_name_._M_string_length = 0;\n          *__tmp.section_name_._M_dataplus._M_p = '\0';\n          paVar10[1]._M_allocated_capacity = __tmp.size_;\n          *(uint64_t *)((long)paVar10 + 0x18) = __tmp.addralign_;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)__tmp.section_name_._M_dataplus._M_p != paVar16) {\n            operator_delete(__tmp.section_name_._M_dataplus._M_p);\n          }\n          lVar8 = lVar8 + 1;\n          paVar15 = paVar15 + -5;\n          paVar10 = paVar10 + -5;\n        } while (lVar8 != lVar9);\n        pIVar12 = pIVar12 + -lVar8;\n      }\n      local_a0 = pIVar12;\n      lVar9 = local_a8 % lVar7;\n      if (lVar9 == 0) {\n        return (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n                )pIVar1;\n      }\n    }\n  } while( true );" do (compound_statement "{\n    if (0 < lVar11) {\n      lVar7 = 0;\n      paVar16 = &local_a0[lVar8].section_name_.field_2;\n      paVar15 = &(local_a0->section_name_).field_2;\n      paVar10 = &__tmp.section_name_.field_2;\n      do {\n        __tmp.input_section_._0_8_ = *(undefined8 *)(paVar15 + -3);\n        __tmp.input_section_.u1_ = *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar15 + -0x28);\n        __tmp.input_section_.u2_ = *(anon_union_8_4_139239c7_for_u2_ *)(paVar15 + -2);\n        __tmp.input_section_._24_8_ = *(size_type *)((long)paVar15 + -0x18);\n        __tmp.section_name_._M_dataplus._M_p = (((string *)(paVar15 + -1))->_M_dataplus)._M_p;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p == paVar15) {\n          __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n          __tmp.section_name_.field_2._8_8_ = *(size_type *)((long)paVar15 + 8);\n          __tmp.section_name_._M_dataplus._M_p = (pointer)paVar10;\n        }\n        else {\n          __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n        }\n        __tmp.section_name_._M_string_length = *(size_type *)((long)paVar15 + -8);\n        paVar15->_M_local_buf[0] = '\0';\n        *(size_type *)((long)paVar15 + -8) = 0;\n        sVar3 = *(size_type *)((long)paVar16 + -0x28);\n        __tmp.size_ = paVar15[1]._M_allocated_capacity;\n        paVar15[-3]._M_allocated_capacity = paVar16[-3]._M_allocated_capacity;\n        *(size_type *)((long)paVar15 + -0x28) = sVar3;\n        __tmp.addralign_ = *(size_type *)((long)paVar15 + 0x18);\n        (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)paVar15;\n        paVar15[-2]._M_allocated_capacity = paVar16[-2]._M_allocated_capacity;\n        *(undefined4 *)((long)paVar15 + -0x18) = *(undefined4 *)((long)paVar16 + -0x18);\n        pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar13 == paVar16) {\n          sVar6 = *(size_type *)((long)paVar16 + -8);\n          if (sVar6 != 0) {\n            if (sVar6 == 1) {\n              paVar15->_M_local_buf[0] = paVar16->_M_local_buf[0];\n              sVar6 = *(size_type *)((long)paVar16 + -8);\n            }\n            else {\n              memcpy(paVar15,paVar16,sVar6);\n              sVar6 = *(size_type *)((long)paVar16 + -8);\n            }\n          }\n          *(size_t *)((long)paVar15 + -8) = sVar6;\n          paVar15->_M_local_buf[sVar6] = '\0';\n          paVar4 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n        }\n        else {\n          (((string *)(paVar15 + -1))->_M_dataplus)._M_p = pcVar13;\n          *(size_type *)((long)paVar15 + -8) = *(size_type *)((long)paVar16 + -8);\n          paVar15->_M_allocated_capacity = paVar16->_M_allocated_capacity;\n          (((string *)(paVar16 + -1))->_M_dataplus)._M_p = (pointer)paVar16;\n          paVar4 = paVar16;\n        }\n        *(size_type *)((long)paVar16 + -8) = 0;\n        paVar4->_M_local_buf[0] = '\0';\n        paVar15[1]._M_allocated_capacity = paVar16[1]._M_allocated_capacity;\n        *(size_type *)((long)paVar15 + 0x18) = *(size_type *)((long)paVar16 + 0x18);\n        paVar16[-3]._M_allocated_capacity = __tmp.input_section_._0_8_;\n        *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar16 + -0x28) = __tmp.input_section_.u1_;\n        pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n        *(anon_union_8_4_139239c7_for_u2_ *)(paVar16 + -2) = __tmp.input_section_.u2_;\n        *(uint *)((long)paVar16 + -0x18) = __tmp.input_section_.section_order_index_;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p == paVar10) {\n          if (__tmp.section_name_._M_string_length != 0) {\n            if (__tmp.section_name_._M_string_length == 1) {\n              *pcVar13 = __tmp.section_name_.field_2._M_local_buf[0];\n              pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n            }\n            else {\n              memcpy(pcVar13,paVar10,__tmp.section_name_._M_string_length);\n              pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n            }\n          }\n          *(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length;\n          pcVar13[__tmp.section_name_._M_string_length] = '\0';\n          uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n        }\n        else {\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)pcVar13 == paVar16) {\n            (((string *)(paVar16 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n            *(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length;\n            paVar16->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n          }\n          else {\n            uVar2 = paVar16->_M_allocated_capacity;\n            (((string *)(paVar16 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n            *(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length;\n            paVar16->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n            __tmp.section_name_._M_dataplus._M_p = pcVar13;\n            if (pcVar13 != (pointer)0x0) goto LAB_0025f996;\n          }\n          __tmp.section_name_._M_dataplus._M_p = (pointer)paVar10;\n          uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n        }\nLAB_0025f996:\n        __tmp.section_name_.field_2._M_allocated_capacity = uVar2;\n        __tmp.section_name_._M_string_length = 0;\n        *__tmp.section_name_._M_dataplus._M_p = '\0';\n        paVar16[1]._M_allocated_capacity = __tmp.size_;\n        *(uint64_t *)((long)paVar16 + 0x18) = __tmp.addralign_;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p != paVar10) {\n          operator_delete(__tmp.section_name_._M_dataplus._M_p);\n        }\n        lVar7 = lVar7 + 1;\n        paVar15 = paVar15 + 5;\n        paVar16 = paVar16 + 5;\n      } while (lVar11 != lVar7);\n      local_a0 = local_a0 + lVar11;\n    }\n    if (local_a8 % lVar8 == 0) {\n      return (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n              )pIVar1;\n    }\n    lVar9 = lVar8 - local_a8 % lVar8;\n    lVar7 = lVar8;\n    while (lVar11 = lVar7 - lVar9, lVar8 = lVar9, local_a8 = lVar7, lVar11 <= lVar9) {\nLAB_0025fb1a:\n      lVar7 = lVar11;\n      pIVar12 = local_a0 + (local_a8 - lVar7);\n      if (0 < lVar9) {\n        paVar15 = &pIVar12[-1].section_name_.field_2;\n        paVar10 = &local_a0[local_a8 + -1].section_name_.field_2;\n        lVar8 = 0;\n        paVar16 = &__tmp.section_name_.field_2;\n        do {\n          __tmp.input_section_._0_8_ = *(undefined8 *)(paVar15 + -3);\n          __tmp.input_section_.u1_ = *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar15 + -0x28);\n          __tmp.input_section_.u2_ = *(anon_union_8_4_139239c7_for_u2_ *)(paVar15 + -2);\n          __tmp.input_section_._24_8_ = *(undefined8 *)((long)paVar15 + -0x18);\n          __tmp.section_name_._M_dataplus._M_p = (((string *)(paVar15 + -1))->_M_dataplus)._M_p;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)__tmp.section_name_._M_dataplus._M_p == paVar15) {\n            __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n            __tmp.section_name_.field_2._8_8_ = *(undefined8 *)((long)paVar15 + 8);\n            __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n          }\n          else {\n            __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n          }\n          __tmp.section_name_._M_string_length = *(size_type *)((long)paVar15 + -8);\n          paVar15->_M_local_buf[0] = '\0';\n          *(size_type *)((long)paVar15 + -8) = 0;\n          sVar3 = *(size_type *)((long)paVar10 + -0x28);\n          __tmp.size_ = paVar15[1]._M_allocated_capacity;\n          paVar15[-3]._M_allocated_capacity = paVar10[-3]._M_allocated_capacity;\n          *(size_type *)((long)paVar15 + -0x28) = sVar3;\n          __tmp.addralign_ = *(uint64_t *)((long)paVar15 + 0x18);\n          (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)paVar15;\n          paVar15[-2]._M_allocated_capacity = paVar10[-2]._M_allocated_capacity;\n          *(undefined4 *)((long)paVar15 + -0x18) = *(undefined4 *)((long)paVar10 + -0x18);\n          psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)psVar14 == paVar10) {\n            sVar6 = *(size_type *)((long)paVar10 + -8);\n            if (sVar6 != 0) {\n              if (sVar6 == 1) {\n                paVar15->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                sVar6 = *(size_type *)((long)paVar10 + -8);\n              }\n              else {\n                memcpy(paVar15,paVar10,sVar6);\n                sVar6 = *(size_type *)((long)paVar10 + -8);\n              }\n            }\n            pcVar13 = (((string *)(paVar15 + -1))->_M_dataplus)._M_p;\n            *(size_t *)((long)paVar15 + -8) = sVar6;\n            pcVar13[sVar6] = '\0';\n          }\n          else {\n            (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)psVar14;\n            *(size_type *)((long)paVar15 + -8) = *(size_type *)((long)paVar10 + -8);\n            paVar15->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n            (((string *)(paVar10 + -1))->_M_dataplus)._M_p = (pointer)paVar10;\n          }\n          *(size_type *)((long)paVar10 + -8) = 0;\n          *(((string *)(paVar10 + -1))->_M_dataplus)._M_p = '\0';\n          paVar15[1]._M_allocated_capacity = paVar10[1]._M_allocated_capacity;\n          *(size_type *)((long)paVar15 + 0x18) = *(size_type *)((long)paVar10 + 0x18);\n          psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n          paVar10[-3]._M_allocated_capacity = __tmp.input_section_._0_8_;\n          *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar10 + -0x28) = __tmp.input_section_.u1_;\n          *(anon_union_8_4_139239c7_for_u2_ *)(paVar10 + -2) = __tmp.input_section_.u2_;\n          *(uint *)((long)paVar10 + -0x18) = __tmp.input_section_.section_order_index_;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)__tmp.section_name_._M_dataplus._M_p == paVar16) {\n            if (__tmp.section_name_._M_string_length != 0) {\n              if (__tmp.section_name_._M_string_length == 1) {\n                *(char *)psVar14 = __tmp.section_name_.field_2._M_local_buf[0];\n                psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n              }\n              else {\n                memcpy(psVar14,paVar16,__tmp.section_name_._M_string_length);\n                psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n              }\n            }\n            *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n            *(char *)((long)psVar14 + __tmp.section_name_._M_string_length) = '\0';\n            uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n          }\n          else {\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)psVar14 == paVar10) {\n              (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n              *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n              paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n            }\n            else {\n              uVar2 = paVar10->_M_allocated_capacity;\n              (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n              *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n              paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n              __tmp.section_name_._M_dataplus._M_p = (pointer)psVar14;\n              if (psVar14 != (size_type *)0x0) goto LAB_0025fc78;\n            }\n            __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n            uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n          }\nLAB_0025fc78:\n          __tmp.section_name_.field_2._M_allocated_capacity = uVar2;\n          __tmp.section_name_._M_string_length = 0;\n          *__tmp.section_name_._M_dataplus._M_p = '\0';\n          paVar10[1]._M_allocated_capacity = __tmp.size_;\n          *(uint64_t *)((long)paVar10 + 0x18) = __tmp.addralign_;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)__tmp.section_name_._M_dataplus._M_p != paVar16) {\n            operator_delete(__tmp.section_name_._M_dataplus._M_p);\n          }\n          lVar8 = lVar8 + 1;\n          paVar15 = paVar15 + -5;\n          paVar10 = paVar10 + -5;\n        } while (lVar8 != lVar9);\n        pIVar12 = pIVar12 + -lVar8;\n      }\n      local_a0 = pIVar12;\n      lVar9 = local_a8 % lVar7;\n      if (lVar9 == 0) {\n        return (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n                )pIVar1;\n      }\n    }\n  }" { (if_statement "if (0 < lVar11) {\n      lVar7 = 0;\n      paVar16 = &local_a0[lVar8].section_name_.field_2;\n      paVar15 = &(local_a0->section_name_).field_2;\n      paVar10 = &__tmp.section_name_.field_2;\n      do {\n        __tmp.input_section_._0_8_ = *(undefined8 *)(paVar15 + -3);\n        __tmp.input_section_.u1_ = *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar15 + -0x28);\n        __tmp.input_section_.u2_ = *(anon_union_8_4_139239c7_for_u2_ *)(paVar15 + -2);\n        __tmp.input_section_._24_8_ = *(size_type *)((long)paVar15 + -0x18);\n        __tmp.section_name_._M_dataplus._M_p = (((string *)(paVar15 + -1))->_M_dataplus)._M_p;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p == paVar15) {\n          __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n          __tmp.section_name_.field_2._8_8_ = *(size_type *)((long)paVar15 + 8);\n          __tmp.section_name_._M_dataplus._M_p = (pointer)paVar10;\n        }\n        else {\n          __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n        }\n        __tmp.section_name_._M_string_length = *(size_type *)((long)paVar15 + -8);\n        paVar15->_M_local_buf[0] = '\0';\n        *(size_type *)((long)paVar15 + -8) = 0;\n        sVar3 = *(size_type *)((long)paVar16 + -0x28);\n        __tmp.size_ = paVar15[1]._M_allocated_capacity;\n        paVar15[-3]._M_allocated_capacity = paVar16[-3]._M_allocated_capacity;\n        *(size_type *)((long)paVar15 + -0x28) = sVar3;\n        __tmp.addralign_ = *(size_type *)((long)paVar15 + 0x18);\n        (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)paVar15;\n        paVar15[-2]._M_allocated_capacity = paVar16[-2]._M_allocated_capacity;\n        *(undefined4 *)((long)paVar15 + -0x18) = *(undefined4 *)((long)paVar16 + -0x18);\n        pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar13 == paVar16) {\n          sVar6 = *(size_type *)((long)paVar16 + -8);\n          if (sVar6 != 0) {\n            if (sVar6 == 1) {\n              paVar15->_M_local_buf[0] = paVar16->_M_local_buf[0];\n              sVar6 = *(size_type *)((long)paVar16 + -8);\n            }\n            else {\n              memcpy(paVar15,paVar16,sVar6);\n              sVar6 = *(size_type *)((long)paVar16 + -8);\n            }\n          }\n          *(size_t *)((long)paVar15 + -8) = sVar6;\n          paVar15->_M_local_buf[sVar6] = '\0';\n          paVar4 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n        }\n        else {\n          (((string *)(paVar15 + -1))->_M_dataplus)._M_p = pcVar13;\n          *(size_type *)((long)paVar15 + -8) = *(size_type *)((long)paVar16 + -8);\n          paVar15->_M_allocated_capacity = paVar16->_M_allocated_capacity;\n          (((string *)(paVar16 + -1))->_M_dataplus)._M_p = (pointer)paVar16;\n          paVar4 = paVar16;\n        }\n        *(size_type *)((long)paVar16 + -8) = 0;\n        paVar4->_M_local_buf[0] = '\0';\n        paVar15[1]._M_allocated_capacity = paVar16[1]._M_allocated_capacity;\n        *(size_type *)((long)paVar15 + 0x18) = *(size_type *)((long)paVar16 + 0x18);\n        paVar16[-3]._M_allocated_capacity = __tmp.input_section_._0_8_;\n        *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar16 + -0x28) = __tmp.input_section_.u1_;\n        pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n        *(anon_union_8_4_139239c7_for_u2_ *)(paVar16 + -2) = __tmp.input_section_.u2_;\n        *(uint *)((long)paVar16 + -0x18) = __tmp.input_section_.section_order_index_;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p == paVar10) {\n          if (__tmp.section_name_._M_string_length != 0) {\n            if (__tmp.section_name_._M_string_length == 1) {\n              *pcVar13 = __tmp.section_name_.field_2._M_local_buf[0];\n              pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n            }\n            else {\n              memcpy(pcVar13,paVar10,__tmp.section_name_._M_string_length);\n              pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n            }\n          }\n          *(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length;\n          pcVar13[__tmp.section_name_._M_string_length] = '\0';\n          uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n        }\n        else {\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)pcVar13 == paVar16) {\n            (((string *)(paVar16 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n            *(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length;\n            paVar16->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n          }\n          else {\n            uVar2 = paVar16->_M_allocated_capacity;\n            (((string *)(paVar16 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n            *(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length;\n            paVar16->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n            __tmp.section_name_._M_dataplus._M_p = pcVar13;\n            if (pcVar13 != (pointer)0x0) goto LAB_0025f996;\n          }\n          __tmp.section_name_._M_dataplus._M_p = (pointer)paVar10;\n          uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n        }\nLAB_0025f996:\n        __tmp.section_name_.field_2._M_allocated_capacity = uVar2;\n        __tmp.section_name_._M_string_length = 0;\n        *__tmp.section_name_._M_dataplus._M_p = '\0';\n        paVar16[1]._M_allocated_capacity = __tmp.size_;\n        *(uint64_t *)((long)paVar16 + 0x18) = __tmp.addralign_;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p != paVar10) {\n          operator_delete(__tmp.section_name_._M_dataplus._M_p);\n        }\n        lVar7 = lVar7 + 1;\n        paVar15 = paVar15 + 5;\n        paVar16 = paVar16 + 5;\n      } while (lVar11 != lVar7);\n      local_a0 = local_a0 + lVar11;\n    }" if (parenthesized_expression "(0 < lVar11)" ( (binary_expression "0 < lVar11" number_literal < identifier) )) (compound_statement "{\n      lVar7 = 0;\n      paVar16 = &local_a0[lVar8].section_name_.field_2;\n      paVar15 = &(local_a0->section_name_).field_2;\n      paVar10 = &__tmp.section_name_.field_2;\n      do {\n        __tmp.input_section_._0_8_ = *(undefined8 *)(paVar15 + -3);\n        __tmp.input_section_.u1_ = *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar15 + -0x28);\n        __tmp.input_section_.u2_ = *(anon_union_8_4_139239c7_for_u2_ *)(paVar15 + -2);\n        __tmp.input_section_._24_8_ = *(size_type *)((long)paVar15 + -0x18);\n        __tmp.section_name_._M_dataplus._M_p = (((string *)(paVar15 + -1))->_M_dataplus)._M_p;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p == paVar15) {\n          __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n          __tmp.section_name_.field_2._8_8_ = *(size_type *)((long)paVar15 + 8);\n          __tmp.section_name_._M_dataplus._M_p = (pointer)paVar10;\n        }\n        else {\n          __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n        }\n        __tmp.section_name_._M_string_length = *(size_type *)((long)paVar15 + -8);\n        paVar15->_M_local_buf[0] = '\0';\n        *(size_type *)((long)paVar15 + -8) = 0;\n        sVar3 = *(size_type *)((long)paVar16 + -0x28);\n        __tmp.size_ = paVar15[1]._M_allocated_capacity;\n        paVar15[-3]._M_allocated_capacity = paVar16[-3]._M_allocated_capacity;\n        *(size_type *)((long)paVar15 + -0x28) = sVar3;\n        __tmp.addralign_ = *(size_type *)((long)paVar15 + 0x18);\n        (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)paVar15;\n        paVar15[-2]._M_allocated_capacity = paVar16[-2]._M_allocated_capacity;\n        *(undefined4 *)((long)paVar15 + -0x18) = *(undefined4 *)((long)paVar16 + -0x18);\n        pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar13 == paVar16) {\n          sVar6 = *(size_type *)((long)paVar16 + -8);\n          if (sVar6 != 0) {\n            if (sVar6 == 1) {\n              paVar15->_M_local_buf[0] = paVar16->_M_local_buf[0];\n              sVar6 = *(size_type *)((long)paVar16 + -8);\n            }\n            else {\n              memcpy(paVar15,paVar16,sVar6);\n              sVar6 = *(size_type *)((long)paVar16 + -8);\n            }\n          }\n          *(size_t *)((long)paVar15 + -8) = sVar6;\n          paVar15->_M_local_buf[sVar6] = '\0';\n          paVar4 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n        }\n        else {\n          (((string *)(paVar15 + -1))->_M_dataplus)._M_p = pcVar13;\n          *(size_type *)((long)paVar15 + -8) = *(size_type *)((long)paVar16 + -8);\n          paVar15->_M_allocated_capacity = paVar16->_M_allocated_capacity;\n          (((string *)(paVar16 + -1))->_M_dataplus)._M_p = (pointer)paVar16;\n          paVar4 = paVar16;\n        }\n        *(size_type *)((long)paVar16 + -8) = 0;\n        paVar4->_M_local_buf[0] = '\0';\n        paVar15[1]._M_allocated_capacity = paVar16[1]._M_allocated_capacity;\n        *(size_type *)((long)paVar15 + 0x18) = *(size_type *)((long)paVar16 + 0x18);\n        paVar16[-3]._M_allocated_capacity = __tmp.input_section_._0_8_;\n        *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar16 + -0x28) = __tmp.input_section_.u1_;\n        pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n        *(anon_union_8_4_139239c7_for_u2_ *)(paVar16 + -2) = __tmp.input_section_.u2_;\n        *(uint *)((long)paVar16 + -0x18) = __tmp.input_section_.section_order_index_;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p == paVar10) {\n          if (__tmp.section_name_._M_string_length != 0) {\n            if (__tmp.section_name_._M_string_length == 1) {\n              *pcVar13 = __tmp.section_name_.field_2._M_local_buf[0];\n              pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n            }\n            else {\n              memcpy(pcVar13,paVar10,__tmp.section_name_._M_string_length);\n              pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n            }\n          }\n          *(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length;\n          pcVar13[__tmp.section_name_._M_string_length] = '\0';\n          uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n        }\n        else {\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)pcVar13 == paVar16) {\n            (((string *)(paVar16 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n            *(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length;\n            paVar16->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n          }\n          else {\n            uVar2 = paVar16->_M_allocated_capacity;\n            (((string *)(paVar16 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n            *(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length;\n            paVar16->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n            __tmp.section_name_._M_dataplus._M_p = pcVar13;\n            if (pcVar13 != (pointer)0x0) goto LAB_0025f996;\n          }\n          __tmp.section_name_._M_dataplus._M_p = (pointer)paVar10;\n          uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n        }\nLAB_0025f996:\n        __tmp.section_name_.field_2._M_allocated_capacity = uVar2;\n        __tmp.section_name_._M_string_length = 0;\n        *__tmp.section_name_._M_dataplus._M_p = '\0';\n        paVar16[1]._M_allocated_capacity = __tmp.size_;\n        *(uint64_t *)((long)paVar16 + 0x18) = __tmp.addralign_;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p != paVar10) {\n          operator_delete(__tmp.section_name_._M_dataplus._M_p);\n        }\n        lVar7 = lVar7 + 1;\n        paVar15 = paVar15 + 5;\n        paVar16 = paVar16 + 5;\n      } while (lVar11 != lVar7);\n      local_a0 = local_a0 + lVar11;\n    }" { (expression_statement "lVar7 = 0;" (assignment_expression "lVar7 = 0" identifier = number_literal) ;) (expression_statement "paVar16 = &local_a0[lVar8].section_name_.field_2;" (assignment_expression "paVar16 = &local_a0[lVar8].section_name_.field_2" identifier = (pointer_expression "&local_a0[lVar8].section_name_.field_2" & (field_expression "local_a0[lVar8].section_name_.field_2" (field_expression "local_a0[lVar8].section_name_" (subscript_expression "local_a0[lVar8]" identifier [ identifier ]) . field_identifier) . field_identifier))) ;) (expression_statement "paVar15 = &(local_a0->section_name_).field_2;" (assignment_expression "paVar15 = &(local_a0->section_name_).field_2" identifier = (pointer_expression "&(local_a0->section_name_).field_2" & (field_expression "(local_a0->section_name_).field_2" (parenthesized_expression "(local_a0->section_name_)" ( (field_expression "local_a0->section_name_" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "paVar10 = &__tmp.section_name_.field_2;" (assignment_expression "paVar10 = &__tmp.section_name_.field_2" identifier = (pointer_expression "&__tmp.section_name_.field_2" & (field_expression "__tmp.section_name_.field_2" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier))) ;) (do_statement "do {\n        __tmp.input_section_._0_8_ = *(undefined8 *)(paVar15 + -3);\n        __tmp.input_section_.u1_ = *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar15 + -0x28);\n        __tmp.input_section_.u2_ = *(anon_union_8_4_139239c7_for_u2_ *)(paVar15 + -2);\n        __tmp.input_section_._24_8_ = *(size_type *)((long)paVar15 + -0x18);\n        __tmp.section_name_._M_dataplus._M_p = (((string *)(paVar15 + -1))->_M_dataplus)._M_p;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p == paVar15) {\n          __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n          __tmp.section_name_.field_2._8_8_ = *(size_type *)((long)paVar15 + 8);\n          __tmp.section_name_._M_dataplus._M_p = (pointer)paVar10;\n        }\n        else {\n          __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n        }\n        __tmp.section_name_._M_string_length = *(size_type *)((long)paVar15 + -8);\n        paVar15->_M_local_buf[0] = '\0';\n        *(size_type *)((long)paVar15 + -8) = 0;\n        sVar3 = *(size_type *)((long)paVar16 + -0x28);\n        __tmp.size_ = paVar15[1]._M_allocated_capacity;\n        paVar15[-3]._M_allocated_capacity = paVar16[-3]._M_allocated_capacity;\n        *(size_type *)((long)paVar15 + -0x28) = sVar3;\n        __tmp.addralign_ = *(size_type *)((long)paVar15 + 0x18);\n        (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)paVar15;\n        paVar15[-2]._M_allocated_capacity = paVar16[-2]._M_allocated_capacity;\n        *(undefined4 *)((long)paVar15 + -0x18) = *(undefined4 *)((long)paVar16 + -0x18);\n        pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar13 == paVar16) {\n          sVar6 = *(size_type *)((long)paVar16 + -8);\n          if (sVar6 != 0) {\n            if (sVar6 == 1) {\n              paVar15->_M_local_buf[0] = paVar16->_M_local_buf[0];\n              sVar6 = *(size_type *)((long)paVar16 + -8);\n            }\n            else {\n              memcpy(paVar15,paVar16,sVar6);\n              sVar6 = *(size_type *)((long)paVar16 + -8);\n            }\n          }\n          *(size_t *)((long)paVar15 + -8) = sVar6;\n          paVar15->_M_local_buf[sVar6] = '\0';\n          paVar4 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n        }\n        else {\n          (((string *)(paVar15 + -1))->_M_dataplus)._M_p = pcVar13;\n          *(size_type *)((long)paVar15 + -8) = *(size_type *)((long)paVar16 + -8);\n          paVar15->_M_allocated_capacity = paVar16->_M_allocated_capacity;\n          (((string *)(paVar16 + -1))->_M_dataplus)._M_p = (pointer)paVar16;\n          paVar4 = paVar16;\n        }\n        *(size_type *)((long)paVar16 + -8) = 0;\n        paVar4->_M_local_buf[0] = '\0';\n        paVar15[1]._M_allocated_capacity = paVar16[1]._M_allocated_capacity;\n        *(size_type *)((long)paVar15 + 0x18) = *(size_type *)((long)paVar16 + 0x18);\n        paVar16[-3]._M_allocated_capacity = __tmp.input_section_._0_8_;\n        *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar16 + -0x28) = __tmp.input_section_.u1_;\n        pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n        *(anon_union_8_4_139239c7_for_u2_ *)(paVar16 + -2) = __tmp.input_section_.u2_;\n        *(uint *)((long)paVar16 + -0x18) = __tmp.input_section_.section_order_index_;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p == paVar10) {\n          if (__tmp.section_name_._M_string_length != 0) {\n            if (__tmp.section_name_._M_string_length == 1) {\n              *pcVar13 = __tmp.section_name_.field_2._M_local_buf[0];\n              pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n            }\n            else {\n              memcpy(pcVar13,paVar10,__tmp.section_name_._M_string_length);\n              pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n            }\n          }\n          *(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length;\n          pcVar13[__tmp.section_name_._M_string_length] = '\0';\n          uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n        }\n        else {\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)pcVar13 == paVar16) {\n            (((string *)(paVar16 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n            *(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length;\n            paVar16->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n          }\n          else {\n            uVar2 = paVar16->_M_allocated_capacity;\n            (((string *)(paVar16 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n            *(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length;\n            paVar16->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n            __tmp.section_name_._M_dataplus._M_p = pcVar13;\n            if (pcVar13 != (pointer)0x0) goto LAB_0025f996;\n          }\n          __tmp.section_name_._M_dataplus._M_p = (pointer)paVar10;\n          uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n        }\nLAB_0025f996:\n        __tmp.section_name_.field_2._M_allocated_capacity = uVar2;\n        __tmp.section_name_._M_string_length = 0;\n        *__tmp.section_name_._M_dataplus._M_p = '\0';\n        paVar16[1]._M_allocated_capacity = __tmp.size_;\n        *(uint64_t *)((long)paVar16 + 0x18) = __tmp.addralign_;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p != paVar10) {\n          operator_delete(__tmp.section_name_._M_dataplus._M_p);\n        }\n        lVar7 = lVar7 + 1;\n        paVar15 = paVar15 + 5;\n        paVar16 = paVar16 + 5;\n      } while (lVar11 != lVar7);" do (compound_statement "{\n        __tmp.input_section_._0_8_ = *(undefined8 *)(paVar15 + -3);\n        __tmp.input_section_.u1_ = *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar15 + -0x28);\n        __tmp.input_section_.u2_ = *(anon_union_8_4_139239c7_for_u2_ *)(paVar15 + -2);\n        __tmp.input_section_._24_8_ = *(size_type *)((long)paVar15 + -0x18);\n        __tmp.section_name_._M_dataplus._M_p = (((string *)(paVar15 + -1))->_M_dataplus)._M_p;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p == paVar15) {\n          __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n          __tmp.section_name_.field_2._8_8_ = *(size_type *)((long)paVar15 + 8);\n          __tmp.section_name_._M_dataplus._M_p = (pointer)paVar10;\n        }\n        else {\n          __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n        }\n        __tmp.section_name_._M_string_length = *(size_type *)((long)paVar15 + -8);\n        paVar15->_M_local_buf[0] = '\0';\n        *(size_type *)((long)paVar15 + -8) = 0;\n        sVar3 = *(size_type *)((long)paVar16 + -0x28);\n        __tmp.size_ = paVar15[1]._M_allocated_capacity;\n        paVar15[-3]._M_allocated_capacity = paVar16[-3]._M_allocated_capacity;\n        *(size_type *)((long)paVar15 + -0x28) = sVar3;\n        __tmp.addralign_ = *(size_type *)((long)paVar15 + 0x18);\n        (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)paVar15;\n        paVar15[-2]._M_allocated_capacity = paVar16[-2]._M_allocated_capacity;\n        *(undefined4 *)((long)paVar15 + -0x18) = *(undefined4 *)((long)paVar16 + -0x18);\n        pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar13 == paVar16) {\n          sVar6 = *(size_type *)((long)paVar16 + -8);\n          if (sVar6 != 0) {\n            if (sVar6 == 1) {\n              paVar15->_M_local_buf[0] = paVar16->_M_local_buf[0];\n              sVar6 = *(size_type *)((long)paVar16 + -8);\n            }\n            else {\n              memcpy(paVar15,paVar16,sVar6);\n              sVar6 = *(size_type *)((long)paVar16 + -8);\n            }\n          }\n          *(size_t *)((long)paVar15 + -8) = sVar6;\n          paVar15->_M_local_buf[sVar6] = '\0';\n          paVar4 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n        }\n        else {\n          (((string *)(paVar15 + -1))->_M_dataplus)._M_p = pcVar13;\n          *(size_type *)((long)paVar15 + -8) = *(size_type *)((long)paVar16 + -8);\n          paVar15->_M_allocated_capacity = paVar16->_M_allocated_capacity;\n          (((string *)(paVar16 + -1))->_M_dataplus)._M_p = (pointer)paVar16;\n          paVar4 = paVar16;\n        }\n        *(size_type *)((long)paVar16 + -8) = 0;\n        paVar4->_M_local_buf[0] = '\0';\n        paVar15[1]._M_allocated_capacity = paVar16[1]._M_allocated_capacity;\n        *(size_type *)((long)paVar15 + 0x18) = *(size_type *)((long)paVar16 + 0x18);\n        paVar16[-3]._M_allocated_capacity = __tmp.input_section_._0_8_;\n        *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar16 + -0x28) = __tmp.input_section_.u1_;\n        pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n        *(anon_union_8_4_139239c7_for_u2_ *)(paVar16 + -2) = __tmp.input_section_.u2_;\n        *(uint *)((long)paVar16 + -0x18) = __tmp.input_section_.section_order_index_;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p == paVar10) {\n          if (__tmp.section_name_._M_string_length != 0) {\n            if (__tmp.section_name_._M_string_length == 1) {\n              *pcVar13 = __tmp.section_name_.field_2._M_local_buf[0];\n              pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n            }\n            else {\n              memcpy(pcVar13,paVar10,__tmp.section_name_._M_string_length);\n              pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n            }\n          }\n          *(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length;\n          pcVar13[__tmp.section_name_._M_string_length] = '\0';\n          uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n        }\n        else {\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)pcVar13 == paVar16) {\n            (((string *)(paVar16 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n            *(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length;\n            paVar16->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n          }\n          else {\n            uVar2 = paVar16->_M_allocated_capacity;\n            (((string *)(paVar16 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n            *(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length;\n            paVar16->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n            __tmp.section_name_._M_dataplus._M_p = pcVar13;\n            if (pcVar13 != (pointer)0x0) goto LAB_0025f996;\n          }\n          __tmp.section_name_._M_dataplus._M_p = (pointer)paVar10;\n          uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n        }\nLAB_0025f996:\n        __tmp.section_name_.field_2._M_allocated_capacity = uVar2;\n        __tmp.section_name_._M_string_length = 0;\n        *__tmp.section_name_._M_dataplus._M_p = '\0';\n        paVar16[1]._M_allocated_capacity = __tmp.size_;\n        *(uint64_t *)((long)paVar16 + 0x18) = __tmp.addralign_;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p != paVar10) {\n          operator_delete(__tmp.section_name_._M_dataplus._M_p);\n        }\n        lVar7 = lVar7 + 1;\n        paVar15 = paVar15 + 5;\n        paVar16 = paVar16 + 5;\n      }" { (expression_statement "__tmp.input_section_._0_8_ = *(undefined8 *)(paVar15 + -3);" (assignment_expression "__tmp.input_section_._0_8_ = *(undefined8 *)(paVar15 + -3)" (field_expression "__tmp.input_section_._0_8_" (field_expression "__tmp.input_section_" identifier . field_identifier) . field_identifier) = (pointer_expression "*(undefined8 *)(paVar15 + -3)" * (cast_expression "(undefined8 *)(paVar15 + -3)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar15 + -3)" ( (binary_expression "paVar15 + -3" identifier + number_literal) ))))) ;) (expression_statement "__tmp.input_section_.u1_ = *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar15 + -0x28);" (assignment_expression "__tmp.input_section_.u1_ = *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar15 + -0x28)" (field_expression "__tmp.input_section_.u1_" (field_expression "__tmp.input_section_" identifier . field_identifier) . field_identifier) = (pointer_expression "*(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar15 + -0x28)" * (cast_expression "(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar15 + -0x28)" ( (type_descriptor "anon_union_8_2_227b06d7_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar15 + -0x28)" ( (binary_expression "(long)paVar15 + -0x28" (cast_expression "(long)paVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "__tmp.input_section_.u2_ = *(anon_union_8_4_139239c7_for_u2_ *)(paVar15 + -2);" (assignment_expression "__tmp.input_section_.u2_ = *(anon_union_8_4_139239c7_for_u2_ *)(paVar15 + -2)" (field_expression "__tmp.input_section_.u2_" (field_expression "__tmp.input_section_" identifier . field_identifier) . field_identifier) = (pointer_expression "*(anon_union_8_4_139239c7_for_u2_ *)(paVar15 + -2)" * (cast_expression "(anon_union_8_4_139239c7_for_u2_ *)(paVar15 + -2)" ( (type_descriptor "anon_union_8_4_139239c7_for_u2_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar15 + -2)" ( (binary_expression "paVar15 + -2" identifier + number_literal) ))))) ;) (expression_statement "__tmp.input_section_._24_8_ = *(size_type *)((long)paVar15 + -0x18);" (assignment_expression "__tmp.input_section_._24_8_ = *(size_type *)((long)paVar15 + -0x18)" (field_expression "__tmp.input_section_._24_8_" (field_expression "__tmp.input_section_" identifier . field_identifier) . field_identifier) = (pointer_expression "*(size_type *)((long)paVar15 + -0x18)" * (cast_expression "(size_type *)((long)paVar15 + -0x18)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar15 + -0x18)" ( (binary_expression "(long)paVar15 + -0x18" (cast_expression "(long)paVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "__tmp.section_name_._M_dataplus._M_p = (((string *)(paVar15 + -1))->_M_dataplus)._M_p;" (assignment_expression "__tmp.section_name_._M_dataplus._M_p = (((string *)(paVar15 + -1))->_M_dataplus)._M_p" (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (field_expression "(((string *)(paVar15 + -1))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)(paVar15 + -1))->_M_dataplus)" ( (field_expression "((string *)(paVar15 + -1))->_M_dataplus" (parenthesized_expression "((string *)(paVar15 + -1))" ( (cast_expression "(string *)(paVar15 + -1)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar15 + -1)" ( (binary_expression "paVar15 + -1" identifier + number_literal) ))) )) -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p == paVar15) {\n          __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n          __tmp.section_name_.field_2._8_8_ = *(size_type *)((long)paVar15 + 8);\n          __tmp.section_name_._M_dataplus._M_p = (pointer)paVar10;\n        }\n        else {\n          __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n        }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p == paVar15)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p == paVar15)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p == paVar15" (binary_expression "allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n             *)__tmp.section_name_._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier))) == identifier) )) )) (compound_statement "{\n          __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n          __tmp.section_name_.field_2._8_8_ = *(size_type *)((long)paVar15 + 8);\n          __tmp.section_name_._M_dataplus._M_p = (pointer)paVar10;\n        }" { (expression_statement "__tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;" (assignment_expression "__tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity" (field_expression "__tmp.section_name_.field_2._M_allocated_capacity" (field_expression "__tmp.section_name_.field_2" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (field_expression "paVar15->_M_allocated_capacity" identifier -> field_identifier)) ;) (expression_statement "__tmp.section_name_.field_2._8_8_ = *(size_type *)((long)paVar15 + 8);" (assignment_expression "__tmp.section_name_.field_2._8_8_ = *(size_type *)((long)paVar15 + 8)" (field_expression "__tmp.section_name_.field_2._8_8_" (field_expression "__tmp.section_name_.field_2" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (pointer_expression "*(size_type *)((long)paVar15 + 8)" * (cast_expression "(size_type *)((long)paVar15 + 8)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar15 + 8)" ( (binary_expression "(long)paVar15 + 8" (cast_expression "(long)paVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "__tmp.section_name_._M_dataplus._M_p = (pointer)paVar10;" (assignment_expression "__tmp.section_name_._M_dataplus._M_p = (pointer)paVar10" (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar10" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) }) (else_clause "else {\n          __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n        }" else (compound_statement "{\n          __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n        }" { (expression_statement "__tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;" (assignment_expression "__tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity" (field_expression "__tmp.section_name_.field_2._M_allocated_capacity" (field_expression "__tmp.section_name_.field_2" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (field_expression "paVar15->_M_allocated_capacity" identifier -> field_identifier)) ;) }))) (expression_statement "__tmp.section_name_._M_string_length = *(size_type *)((long)paVar15 + -8);" (assignment_expression "__tmp.section_name_._M_string_length = *(size_type *)((long)paVar15 + -8)" (field_expression "__tmp.section_name_._M_string_length" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) = (pointer_expression "*(size_type *)((long)paVar15 + -8)" * (cast_expression "(size_type *)((long)paVar15 + -8)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar15 + -8)" ( (binary_expression "(long)paVar15 + -8" (cast_expression "(long)paVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "paVar15->_M_local_buf[0] = '\0';" (assignment_expression "paVar15->_M_local_buf[0] = '\0'" (subscript_expression "paVar15->_M_local_buf[0]" (field_expression "paVar15->_M_local_buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "*(size_type *)((long)paVar15 + -8) = 0;" (assignment_expression "*(size_type *)((long)paVar15 + -8) = 0" (pointer_expression "*(size_type *)((long)paVar15 + -8)" * (cast_expression "(size_type *)((long)paVar15 + -8)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar15 + -8)" ( (binary_expression "(long)paVar15 + -8" (cast_expression "(long)paVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "sVar3 = *(size_type *)((long)paVar16 + -0x28);" (assignment_expression "sVar3 = *(size_type *)((long)paVar16 + -0x28)" identifier = (pointer_expression "*(size_type *)((long)paVar16 + -0x28)" * (cast_expression "(size_type *)((long)paVar16 + -0x28)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar16 + -0x28)" ( (binary_expression "(long)paVar16 + -0x28" (cast_expression "(long)paVar16" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "__tmp.size_ = paVar15[1]._M_allocated_capacity;" (assignment_expression "__tmp.size_ = paVar15[1]._M_allocated_capacity" (field_expression "__tmp.size_" identifier . field_identifier) = (field_expression "paVar15[1]._M_allocated_capacity" (subscript_expression "paVar15[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "paVar15[-3]._M_allocated_capacity = paVar16[-3]._M_allocated_capacity;" (assignment_expression "paVar15[-3]._M_allocated_capacity = paVar16[-3]._M_allocated_capacity" (field_expression "paVar15[-3]._M_allocated_capacity" (subscript_expression "paVar15[-3]" identifier [ number_literal ]) . field_identifier) = (field_expression "paVar16[-3]._M_allocated_capacity" (subscript_expression "paVar16[-3]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "*(size_type *)((long)paVar15 + -0x28) = sVar3;" (assignment_expression "*(size_type *)((long)paVar15 + -0x28) = sVar3" (pointer_expression "*(size_type *)((long)paVar15 + -0x28)" * (cast_expression "(size_type *)((long)paVar15 + -0x28)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar15 + -0x28)" ( (binary_expression "(long)paVar15 + -0x28" (cast_expression "(long)paVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "__tmp.addralign_ = *(size_type *)((long)paVar15 + 0x18);" (assignment_expression "__tmp.addralign_ = *(size_type *)((long)paVar15 + 0x18)" (field_expression "__tmp.addralign_" identifier . field_identifier) = (pointer_expression "*(size_type *)((long)paVar15 + 0x18)" * (cast_expression "(size_type *)((long)paVar15 + 0x18)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar15 + 0x18)" ( (binary_expression "(long)paVar15 + 0x18" (cast_expression "(long)paVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "(((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)paVar15;" (assignment_expression "(((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)paVar15" (field_expression "(((string *)(paVar15 + -1))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)(paVar15 + -1))->_M_dataplus)" ( (field_expression "((string *)(paVar15 + -1))->_M_dataplus" (parenthesized_expression "((string *)(paVar15 + -1))" ( (cast_expression "(string *)(paVar15 + -1)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar15 + -1)" ( (binary_expression "paVar15 + -1" identifier + number_literal) ))) )) -> field_identifier) )) . field_identifier) = (cast_expression "(pointer)paVar15" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "paVar15[-2]._M_allocated_capacity = paVar16[-2]._M_allocated_capacity;" (assignment_expression "paVar15[-2]._M_allocated_capacity = paVar16[-2]._M_allocated_capacity" (field_expression "paVar15[-2]._M_allocated_capacity" (subscript_expression "paVar15[-2]" identifier [ number_literal ]) . field_identifier) = (field_expression "paVar16[-2]._M_allocated_capacity" (subscript_expression "paVar16[-2]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "*(undefined4 *)((long)paVar15 + -0x18) = *(undefined4 *)((long)paVar16 + -0x18);" (assignment_expression "*(undefined4 *)((long)paVar15 + -0x18) = *(undefined4 *)((long)paVar16 + -0x18)" (pointer_expression "*(undefined4 *)((long)paVar15 + -0x18)" * (cast_expression "(undefined4 *)((long)paVar15 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar15 + -0x18)" ( (binary_expression "(long)paVar15 + -0x18" (cast_expression "(long)paVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((long)paVar16 + -0x18)" * (cast_expression "(undefined4 *)((long)paVar16 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar16 + -0x18)" ( (binary_expression "(long)paVar16 + -0x18" (cast_expression "(long)paVar16" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;" (assignment_expression "pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p" identifier = (field_expression "(((string *)(paVar16 + -1))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)(paVar16 + -1))->_M_dataplus)" ( (field_expression "((string *)(paVar16 + -1))->_M_dataplus" (parenthesized_expression "((string *)(paVar16 + -1))" ( (cast_expression "(string *)(paVar16 + -1)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar16 + -1)" ( (binary_expression "paVar16 + -1" identifier + number_literal) ))) )) -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar13 == paVar16) {\n          sVar6 = *(size_type *)((long)paVar16 + -8);\n          if (sVar6 != 0) {\n            if (sVar6 == 1) {\n              paVar15->_M_local_buf[0] = paVar16->_M_local_buf[0];\n              sVar6 = *(size_type *)((long)paVar16 + -8);\n            }\n            else {\n              memcpy(paVar15,paVar16,sVar6);\n              sVar6 = *(size_type *)((long)paVar16 + -8);\n            }\n          }\n          *(size_t *)((long)paVar15 + -8) = sVar6;\n          paVar15->_M_local_buf[sVar6] = '\0';\n          paVar4 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n        }\n        else {\n          (((string *)(paVar15 + -1))->_M_dataplus)._M_p = pcVar13;\n          *(size_type *)((long)paVar15 + -8) = *(size_type *)((long)paVar16 + -8);\n          paVar15->_M_allocated_capacity = paVar16->_M_allocated_capacity;\n          (((string *)(paVar16 + -1))->_M_dataplus)._M_p = (pointer)paVar16;\n          paVar4 = paVar16;\n        }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar13 == paVar16)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar13 == paVar16)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n             *)pcVar13 == paVar16" (binary_expression "allocator<char>_>_9\n             *)pcVar13" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n             *)pcVar13" identifier * (ERROR ")" )) identifier)) == identifier) )) )) (compound_statement "{\n          sVar6 = *(size_type *)((long)paVar16 + -8);\n          if (sVar6 != 0) {\n            if (sVar6 == 1) {\n              paVar15->_M_local_buf[0] = paVar16->_M_local_buf[0];\n              sVar6 = *(size_type *)((long)paVar16 + -8);\n            }\n            else {\n              memcpy(paVar15,paVar16,sVar6);\n              sVar6 = *(size_type *)((long)paVar16 + -8);\n            }\n          }\n          *(size_t *)((long)paVar15 + -8) = sVar6;\n          paVar15->_M_local_buf[sVar6] = '\0';\n          paVar4 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n        }" { (expression_statement "sVar6 = *(size_type *)((long)paVar16 + -8);" (assignment_expression "sVar6 = *(size_type *)((long)paVar16 + -8)" identifier = (pointer_expression "*(size_type *)((long)paVar16 + -8)" * (cast_expression "(size_type *)((long)paVar16 + -8)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar16 + -8)" ( (binary_expression "(long)paVar16 + -8" (cast_expression "(long)paVar16" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (if_statement "if (sVar6 != 0) {\n            if (sVar6 == 1) {\n              paVar15->_M_local_buf[0] = paVar16->_M_local_buf[0];\n              sVar6 = *(size_type *)((long)paVar16 + -8);\n            }\n            else {\n              memcpy(paVar15,paVar16,sVar6);\n              sVar6 = *(size_type *)((long)paVar16 + -8);\n            }\n          }" if (parenthesized_expression "(sVar6 != 0)" ( (binary_expression "sVar6 != 0" identifier != number_literal) )) (compound_statement "{\n            if (sVar6 == 1) {\n              paVar15->_M_local_buf[0] = paVar16->_M_local_buf[0];\n              sVar6 = *(size_type *)((long)paVar16 + -8);\n            }\n            else {\n              memcpy(paVar15,paVar16,sVar6);\n              sVar6 = *(size_type *)((long)paVar16 + -8);\n            }\n          }" { (if_statement "if (sVar6 == 1) {\n              paVar15->_M_local_buf[0] = paVar16->_M_local_buf[0];\n              sVar6 = *(size_type *)((long)paVar16 + -8);\n            }\n            else {\n              memcpy(paVar15,paVar16,sVar6);\n              sVar6 = *(size_type *)((long)paVar16 + -8);\n            }" if (parenthesized_expression "(sVar6 == 1)" ( (binary_expression "sVar6 == 1" identifier == number_literal) )) (compound_statement "{\n              paVar15->_M_local_buf[0] = paVar16->_M_local_buf[0];\n              sVar6 = *(size_type *)((long)paVar16 + -8);\n            }" { (expression_statement "paVar15->_M_local_buf[0] = paVar16->_M_local_buf[0];" (assignment_expression "paVar15->_M_local_buf[0] = paVar16->_M_local_buf[0]" (subscript_expression "paVar15->_M_local_buf[0]" (field_expression "paVar15->_M_local_buf" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "paVar16->_M_local_buf[0]" (field_expression "paVar16->_M_local_buf" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "sVar6 = *(size_type *)((long)paVar16 + -8);" (assignment_expression "sVar6 = *(size_type *)((long)paVar16 + -8)" identifier = (pointer_expression "*(size_type *)((long)paVar16 + -8)" * (cast_expression "(size_type *)((long)paVar16 + -8)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar16 + -8)" ( (binary_expression "(long)paVar16 + -8" (cast_expression "(long)paVar16" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) }) (else_clause "else {\n              memcpy(paVar15,paVar16,sVar6);\n              sVar6 = *(size_type *)((long)paVar16 + -8);\n            }" else (compound_statement "{\n              memcpy(paVar15,paVar16,sVar6);\n              sVar6 = *(size_type *)((long)paVar16 + -8);\n            }" { (expression_statement "memcpy(paVar15,paVar16,sVar6);" (call_expression "memcpy(paVar15,paVar16,sVar6)" identifier (argument_list "(paVar15,paVar16,sVar6)" ( identifier , identifier , identifier ))) ;) (expression_statement "sVar6 = *(size_type *)((long)paVar16 + -8);" (assignment_expression "sVar6 = *(size_type *)((long)paVar16 + -8)" identifier = (pointer_expression "*(size_type *)((long)paVar16 + -8)" * (cast_expression "(size_type *)((long)paVar16 + -8)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar16 + -8)" ( (binary_expression "(long)paVar16 + -8" (cast_expression "(long)paVar16" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) }))) })) (expression_statement "*(size_t *)((long)paVar15 + -8) = sVar6;" (assignment_expression "*(size_t *)((long)paVar15 + -8) = sVar6" (pointer_expression "*(size_t *)((long)paVar15 + -8)" * (cast_expression "(size_t *)((long)paVar15 + -8)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar15 + -8)" ( (binary_expression "(long)paVar15 + -8" (cast_expression "(long)paVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "paVar15->_M_local_buf[sVar6] = '\0';" (assignment_expression "paVar15->_M_local_buf[sVar6] = '\0'" (subscript_expression "paVar15->_M_local_buf[sVar6]" (field_expression "paVar15->_M_local_buf" identifier -> field_identifier) [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "paVar4 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(((string *)(paVar16 + -1))->_M_dataplus)._M_p;" (assignment_expression "paVar4 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(((string *)(paVar16 + -1))->_M_dataplus)._M_p" identifier = (field_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(((string *)(paVar16 + -1))->_M_dataplus)._M_p" (call_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)(((string *)(paVar16 + -1))->_M_dataplus)" (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                    *)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) (ERROR "*" *) )) (argument_list "(((string *)(paVar16 + -1))->_M_dataplus)" ( (field_expression "((string *)(paVar16 + -1))->_M_dataplus" (parenthesized_expression "((string *)(paVar16 + -1))" ( (cast_expression "(string *)(paVar16 + -1)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar16 + -1)" ( (binary_expression "paVar16 + -1" identifier + number_literal) ))) )) -> field_identifier) ))) . field_identifier)) ;) }) (else_clause "else {\n          (((string *)(paVar15 + -1))->_M_dataplus)._M_p = pcVar13;\n          *(size_type *)((long)paVar15 + -8) = *(size_type *)((long)paVar16 + -8);\n          paVar15->_M_allocated_capacity = paVar16->_M_allocated_capacity;\n          (((string *)(paVar16 + -1))->_M_dataplus)._M_p = (pointer)paVar16;\n          paVar4 = paVar16;\n        }" else (compound_statement "{\n          (((string *)(paVar15 + -1))->_M_dataplus)._M_p = pcVar13;\n          *(size_type *)((long)paVar15 + -8) = *(size_type *)((long)paVar16 + -8);\n          paVar15->_M_allocated_capacity = paVar16->_M_allocated_capacity;\n          (((string *)(paVar16 + -1))->_M_dataplus)._M_p = (pointer)paVar16;\n          paVar4 = paVar16;\n        }" { (expression_statement "(((string *)(paVar15 + -1))->_M_dataplus)._M_p = pcVar13;" (assignment_expression "(((string *)(paVar15 + -1))->_M_dataplus)._M_p = pcVar13" (field_expression "(((string *)(paVar15 + -1))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)(paVar15 + -1))->_M_dataplus)" ( (field_expression "((string *)(paVar15 + -1))->_M_dataplus" (parenthesized_expression "((string *)(paVar15 + -1))" ( (cast_expression "(string *)(paVar15 + -1)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar15 + -1)" ( (binary_expression "paVar15 + -1" identifier + number_literal) ))) )) -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "*(size_type *)((long)paVar15 + -8) = *(size_type *)((long)paVar16 + -8);" (assignment_expression "*(size_type *)((long)paVar15 + -8) = *(size_type *)((long)paVar16 + -8)" (pointer_expression "*(size_type *)((long)paVar15 + -8)" * (cast_expression "(size_type *)((long)paVar15 + -8)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar15 + -8)" ( (binary_expression "(long)paVar15 + -8" (cast_expression "(long)paVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (pointer_expression "*(size_type *)((long)paVar16 + -8)" * (cast_expression "(size_type *)((long)paVar16 + -8)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar16 + -8)" ( (binary_expression "(long)paVar16 + -8" (cast_expression "(long)paVar16" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "paVar15->_M_allocated_capacity = paVar16->_M_allocated_capacity;" (assignment_expression "paVar15->_M_allocated_capacity = paVar16->_M_allocated_capacity" (field_expression "paVar15->_M_allocated_capacity" identifier -> field_identifier) = (field_expression "paVar16->_M_allocated_capacity" identifier -> field_identifier)) ;) (expression_statement "(((string *)(paVar16 + -1))->_M_dataplus)._M_p = (pointer)paVar16;" (assignment_expression "(((string *)(paVar16 + -1))->_M_dataplus)._M_p = (pointer)paVar16" (field_expression "(((string *)(paVar16 + -1))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)(paVar16 + -1))->_M_dataplus)" ( (field_expression "((string *)(paVar16 + -1))->_M_dataplus" (parenthesized_expression "((string *)(paVar16 + -1))" ( (cast_expression "(string *)(paVar16 + -1)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar16 + -1)" ( (binary_expression "paVar16 + -1" identifier + number_literal) ))) )) -> field_identifier) )) . field_identifier) = (cast_expression "(pointer)paVar16" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "paVar4 = paVar16;" (assignment_expression "paVar4 = paVar16" identifier = identifier) ;) }))) (expression_statement "*(size_type *)((long)paVar16 + -8) = 0;" (assignment_expression "*(size_type *)((long)paVar16 + -8) = 0" (pointer_expression "*(size_type *)((long)paVar16 + -8)" * (cast_expression "(size_type *)((long)paVar16 + -8)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar16 + -8)" ( (binary_expression "(long)paVar16 + -8" (cast_expression "(long)paVar16" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "paVar4->_M_local_buf[0] = '\0';" (assignment_expression "paVar4->_M_local_buf[0] = '\0'" (subscript_expression "paVar4->_M_local_buf[0]" (field_expression "paVar4->_M_local_buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "paVar15[1]._M_allocated_capacity = paVar16[1]._M_allocated_capacity;" (assignment_expression "paVar15[1]._M_allocated_capacity = paVar16[1]._M_allocated_capacity" (field_expression "paVar15[1]._M_allocated_capacity" (subscript_expression "paVar15[1]" identifier [ number_literal ]) . field_identifier) = (field_expression "paVar16[1]._M_allocated_capacity" (subscript_expression "paVar16[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "*(size_type *)((long)paVar15 + 0x18) = *(size_type *)((long)paVar16 + 0x18);" (assignment_expression "*(size_type *)((long)paVar15 + 0x18) = *(size_type *)((long)paVar16 + 0x18)" (pointer_expression "*(size_type *)((long)paVar15 + 0x18)" * (cast_expression "(size_type *)((long)paVar15 + 0x18)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar15 + 0x18)" ( (binary_expression "(long)paVar15 + 0x18" (cast_expression "(long)paVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (pointer_expression "*(size_type *)((long)paVar16 + 0x18)" * (cast_expression "(size_type *)((long)paVar16 + 0x18)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar16 + 0x18)" ( (binary_expression "(long)paVar16 + 0x18" (cast_expression "(long)paVar16" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "paVar16[-3]._M_allocated_capacity = __tmp.input_section_._0_8_;" (assignment_expression "paVar16[-3]._M_allocated_capacity = __tmp.input_section_._0_8_" (field_expression "paVar16[-3]._M_allocated_capacity" (subscript_expression "paVar16[-3]" identifier [ number_literal ]) . field_identifier) = (field_expression "__tmp.input_section_._0_8_" (field_expression "__tmp.input_section_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "*(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar16 + -0x28) = __tmp.input_section_.u1_;" (assignment_expression "*(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar16 + -0x28) = __tmp.input_section_.u1_" (pointer_expression "*(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar16 + -0x28)" * (cast_expression "(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar16 + -0x28)" ( (type_descriptor "anon_union_8_2_227b06d7_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar16 + -0x28)" ( (binary_expression "(long)paVar16 + -0x28" (cast_expression "(long)paVar16" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (field_expression "__tmp.input_section_.u1_" (field_expression "__tmp.input_section_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;" (assignment_expression "pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p" identifier = (field_expression "(((string *)(paVar16 + -1))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)(paVar16 + -1))->_M_dataplus)" ( (field_expression "((string *)(paVar16 + -1))->_M_dataplus" (parenthesized_expression "((string *)(paVar16 + -1))" ( (cast_expression "(string *)(paVar16 + -1)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar16 + -1)" ( (binary_expression "paVar16 + -1" identifier + number_literal) ))) )) -> field_identifier) )) . field_identifier)) ;) (expression_statement "*(anon_union_8_4_139239c7_for_u2_ *)(paVar16 + -2) = __tmp.input_section_.u2_;" (assignment_expression "*(anon_union_8_4_139239c7_for_u2_ *)(paVar16 + -2) = __tmp.input_section_.u2_" (pointer_expression "*(anon_union_8_4_139239c7_for_u2_ *)(paVar16 + -2)" * (cast_expression "(anon_union_8_4_139239c7_for_u2_ *)(paVar16 + -2)" ( (type_descriptor "anon_union_8_4_139239c7_for_u2_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar16 + -2)" ( (binary_expression "paVar16 + -2" identifier + number_literal) )))) = (field_expression "__tmp.input_section_.u2_" (field_expression "__tmp.input_section_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "*(uint *)((long)paVar16 + -0x18) = __tmp.input_section_.section_order_index_;" (assignment_expression "*(uint *)((long)paVar16 + -0x18) = __tmp.input_section_.section_order_index_" (pointer_expression "*(uint *)((long)paVar16 + -0x18)" * (cast_expression "(uint *)((long)paVar16 + -0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar16 + -0x18)" ( (binary_expression "(long)paVar16 + -0x18" (cast_expression "(long)paVar16" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (field_expression "__tmp.input_section_.section_order_index_" (field_expression "__tmp.input_section_" identifier . field_identifier) . field_identifier)) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p == paVar10) {\n          if (__tmp.section_name_._M_string_length != 0) {\n            if (__tmp.section_name_._M_string_length == 1) {\n              *pcVar13 = __tmp.section_name_.field_2._M_local_buf[0];\n              pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n            }\n            else {\n              memcpy(pcVar13,paVar10,__tmp.section_name_._M_string_length);\n              pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n            }\n          }\n          *(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length;\n          pcVar13[__tmp.section_name_._M_string_length] = '\0';\n          uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n        }\n        else {\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)pcVar13 == paVar16) {\n            (((string *)(paVar16 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n            *(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length;\n            paVar16->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n          }\n          else {\n            uVar2 = paVar16->_M_allocated_capacity;\n            (((string *)(paVar16 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n            *(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length;\n            paVar16->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n            __tmp.section_name_._M_dataplus._M_p = pcVar13;\n            if (pcVar13 != (pointer)0x0) goto LAB_0025f996;\n          }\n          __tmp.section_name_._M_dataplus._M_p = (pointer)paVar10;\n          uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n        }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p == paVar10)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p == paVar10)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p == paVar10" (binary_expression "allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n             *)__tmp.section_name_._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier))) == identifier) )) )) (compound_statement "{\n          if (__tmp.section_name_._M_string_length != 0) {\n            if (__tmp.section_name_._M_string_length == 1) {\n              *pcVar13 = __tmp.section_name_.field_2._M_local_buf[0];\n              pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n            }\n            else {\n              memcpy(pcVar13,paVar10,__tmp.section_name_._M_string_length);\n              pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n            }\n          }\n          *(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length;\n          pcVar13[__tmp.section_name_._M_string_length] = '\0';\n          uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n        }" { (if_statement "if (__tmp.section_name_._M_string_length != 0) {\n            if (__tmp.section_name_._M_string_length == 1) {\n              *pcVar13 = __tmp.section_name_.field_2._M_local_buf[0];\n              pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n            }\n            else {\n              memcpy(pcVar13,paVar10,__tmp.section_name_._M_string_length);\n              pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n            }\n          }" if (parenthesized_expression "(__tmp.section_name_._M_string_length != 0)" ( (binary_expression "__tmp.section_name_._M_string_length != 0" (field_expression "__tmp.section_name_._M_string_length" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) != number_literal) )) (compound_statement "{\n            if (__tmp.section_name_._M_string_length == 1) {\n              *pcVar13 = __tmp.section_name_.field_2._M_local_buf[0];\n              pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n            }\n            else {\n              memcpy(pcVar13,paVar10,__tmp.section_name_._M_string_length);\n              pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n            }\n          }" { (if_statement "if (__tmp.section_name_._M_string_length == 1) {\n              *pcVar13 = __tmp.section_name_.field_2._M_local_buf[0];\n              pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n            }\n            else {\n              memcpy(pcVar13,paVar10,__tmp.section_name_._M_string_length);\n              pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n            }" if (parenthesized_expression "(__tmp.section_name_._M_string_length == 1)" ( (binary_expression "__tmp.section_name_._M_string_length == 1" (field_expression "__tmp.section_name_._M_string_length" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) == number_literal) )) (compound_statement "{\n              *pcVar13 = __tmp.section_name_.field_2._M_local_buf[0];\n              pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n            }" { (expression_statement "*pcVar13 = __tmp.section_name_.field_2._M_local_buf[0];" (assignment_expression "*pcVar13 = __tmp.section_name_.field_2._M_local_buf[0]" (pointer_expression "*pcVar13" * identifier) = (subscript_expression "__tmp.section_name_.field_2._M_local_buf[0]" (field_expression "__tmp.section_name_.field_2._M_local_buf" (field_expression "__tmp.section_name_.field_2" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) [ number_literal ])) ;) (expression_statement "pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;" (assignment_expression "pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p" identifier = (field_expression "(((string *)(paVar16 + -1))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)(paVar16 + -1))->_M_dataplus)" ( (field_expression "((string *)(paVar16 + -1))->_M_dataplus" (parenthesized_expression "((string *)(paVar16 + -1))" ( (cast_expression "(string *)(paVar16 + -1)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar16 + -1)" ( (binary_expression "paVar16 + -1" identifier + number_literal) ))) )) -> field_identifier) )) . field_identifier)) ;) }) (else_clause "else {\n              memcpy(pcVar13,paVar10,__tmp.section_name_._M_string_length);\n              pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n            }" else (compound_statement "{\n              memcpy(pcVar13,paVar10,__tmp.section_name_._M_string_length);\n              pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;\n            }" { (expression_statement "memcpy(pcVar13,paVar10,__tmp.section_name_._M_string_length);" (call_expression "memcpy(pcVar13,paVar10,__tmp.section_name_._M_string_length)" identifier (argument_list "(pcVar13,paVar10,__tmp.section_name_._M_string_length)" ( identifier , identifier , (field_expression "__tmp.section_name_._M_string_length" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) ))) ;) (expression_statement "pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p;" (assignment_expression "pcVar13 = (((string *)(paVar16 + -1))->_M_dataplus)._M_p" identifier = (field_expression "(((string *)(paVar16 + -1))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)(paVar16 + -1))->_M_dataplus)" ( (field_expression "((string *)(paVar16 + -1))->_M_dataplus" (parenthesized_expression "((string *)(paVar16 + -1))" ( (cast_expression "(string *)(paVar16 + -1)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar16 + -1)" ( (binary_expression "paVar16 + -1" identifier + number_literal) ))) )) -> field_identifier) )) . field_identifier)) ;) }))) })) (expression_statement "*(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length;" (assignment_expression "*(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length" (pointer_expression "*(size_type *)((long)paVar16 + -8)" * (cast_expression "(size_type *)((long)paVar16 + -8)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar16 + -8)" ( (binary_expression "(long)paVar16 + -8" (cast_expression "(long)paVar16" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (field_expression "__tmp.section_name_._M_string_length" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "pcVar13[__tmp.section_name_._M_string_length] = '\0';" (assignment_expression "pcVar13[__tmp.section_name_._M_string_length] = '\0'" (subscript_expression "pcVar13[__tmp.section_name_._M_string_length]" identifier [ (field_expression "__tmp.section_name_._M_string_length" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;" (assignment_expression "uVar2 = __tmp.section_name_.field_2._M_allocated_capacity" identifier = (field_expression "__tmp.section_name_.field_2._M_allocated_capacity" (field_expression "__tmp.section_name_.field_2" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier)) ;) }) (else_clause "else {\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)pcVar13 == paVar16) {\n            (((string *)(paVar16 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n            *(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length;\n            paVar16->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n          }\n          else {\n            uVar2 = paVar16->_M_allocated_capacity;\n            (((string *)(paVar16 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n            *(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length;\n            paVar16->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n            __tmp.section_name_._M_dataplus._M_p = pcVar13;\n            if (pcVar13 != (pointer)0x0) goto LAB_0025f996;\n          }\n          __tmp.section_name_._M_dataplus._M_p = (pointer)paVar10;\n          uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n        }" else (compound_statement "{\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)pcVar13 == paVar16) {\n            (((string *)(paVar16 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n            *(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length;\n            paVar16->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n          }\n          else {\n            uVar2 = paVar16->_M_allocated_capacity;\n            (((string *)(paVar16 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n            *(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length;\n            paVar16->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n            __tmp.section_name_._M_dataplus._M_p = pcVar13;\n            if (pcVar13 != (pointer)0x0) goto LAB_0025f996;\n          }\n          __tmp.section_name_._M_dataplus._M_p = (pointer)paVar10;\n          uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n        }" { (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)pcVar13 == paVar16) {\n            (((string *)(paVar16 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n            *(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length;\n            paVar16->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n          }\n          else {\n            uVar2 = paVar16->_M_allocated_capacity;\n            (((string *)(paVar16 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n            *(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length;\n            paVar16->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n            __tmp.section_name_._M_dataplus._M_p = pcVar13;\n            if (pcVar13 != (pointer)0x0) goto LAB_0025f996;\n          }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)pcVar13 == paVar16)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)pcVar13 == paVar16)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n               *)pcVar13 == paVar16" (binary_expression "allocator<char>_>_9\n               *)pcVar13" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n               *)pcVar13" identifier * (ERROR ")" )) identifier)) == identifier) )) )) (compound_statement "{\n            (((string *)(paVar16 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n            *(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length;\n            paVar16->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n          }" { (expression_statement "(((string *)(paVar16 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;" (assignment_expression "(((string *)(paVar16 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p" (field_expression "(((string *)(paVar16 + -1))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)(paVar16 + -1))->_M_dataplus)" ( (field_expression "((string *)(paVar16 + -1))->_M_dataplus" (parenthesized_expression "((string *)(paVar16 + -1))" ( (cast_expression "(string *)(paVar16 + -1)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar16 + -1)" ( (binary_expression "paVar16 + -1" identifier + number_literal) ))) )) -> field_identifier) )) . field_identifier) = (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "*(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length;" (assignment_expression "*(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length" (pointer_expression "*(size_type *)((long)paVar16 + -8)" * (cast_expression "(size_type *)((long)paVar16 + -8)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar16 + -8)" ( (binary_expression "(long)paVar16 + -8" (cast_expression "(long)paVar16" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (field_expression "__tmp.section_name_._M_string_length" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "paVar16->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;" (assignment_expression "paVar16->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity" (field_expression "paVar16->_M_allocated_capacity" identifier -> field_identifier) = (field_expression "__tmp.section_name_.field_2._M_allocated_capacity" (field_expression "__tmp.section_name_.field_2" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier)) ;) }) (else_clause "else {\n            uVar2 = paVar16->_M_allocated_capacity;\n            (((string *)(paVar16 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n            *(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length;\n            paVar16->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n            __tmp.section_name_._M_dataplus._M_p = pcVar13;\n            if (pcVar13 != (pointer)0x0) goto LAB_0025f996;\n          }" else (compound_statement "{\n            uVar2 = paVar16->_M_allocated_capacity;\n            (((string *)(paVar16 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n            *(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length;\n            paVar16->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n            __tmp.section_name_._M_dataplus._M_p = pcVar13;\n            if (pcVar13 != (pointer)0x0) goto LAB_0025f996;\n          }" { (expression_statement "uVar2 = paVar16->_M_allocated_capacity;" (assignment_expression "uVar2 = paVar16->_M_allocated_capacity" identifier = (field_expression "paVar16->_M_allocated_capacity" identifier -> field_identifier)) ;) (expression_statement "(((string *)(paVar16 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;" (assignment_expression "(((string *)(paVar16 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p" (field_expression "(((string *)(paVar16 + -1))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)(paVar16 + -1))->_M_dataplus)" ( (field_expression "((string *)(paVar16 + -1))->_M_dataplus" (parenthesized_expression "((string *)(paVar16 + -1))" ( (cast_expression "(string *)(paVar16 + -1)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar16 + -1)" ( (binary_expression "paVar16 + -1" identifier + number_literal) ))) )) -> field_identifier) )) . field_identifier) = (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "*(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length;" (assignment_expression "*(size_type *)((long)paVar16 + -8) = __tmp.section_name_._M_string_length" (pointer_expression "*(size_type *)((long)paVar16 + -8)" * (cast_expression "(size_type *)((long)paVar16 + -8)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar16 + -8)" ( (binary_expression "(long)paVar16 + -8" (cast_expression "(long)paVar16" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (field_expression "__tmp.section_name_._M_string_length" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "paVar16->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;" (assignment_expression "paVar16->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity" (field_expression "paVar16->_M_allocated_capacity" identifier -> field_identifier) = (field_expression "__tmp.section_name_.field_2._M_allocated_capacity" (field_expression "__tmp.section_name_.field_2" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "__tmp.section_name_._M_dataplus._M_p = pcVar13;" (assignment_expression "__tmp.section_name_._M_dataplus._M_p = pcVar13" (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (if_statement "if (pcVar13 != (pointer)0x0) goto LAB_0025f996;" if (parenthesized_expression "(pcVar13 != (pointer)0x0)" ( (binary_expression "pcVar13 != (pointer)0x0" identifier != (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_0025f996;" goto statement_identifier ;)) }))) (expression_statement "__tmp.section_name_._M_dataplus._M_p = (pointer)paVar10;" (assignment_expression "__tmp.section_name_._M_dataplus._M_p = (pointer)paVar10" (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar10" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;" (assignment_expression "uVar2 = __tmp.section_name_.field_2._M_allocated_capacity" identifier = (field_expression "__tmp.section_name_.field_2._M_allocated_capacity" (field_expression "__tmp.section_name_.field_2" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier)) ;) }))) (labeled_statement "LAB_0025f996:\n        __tmp.section_name_.field_2._M_allocated_capacity = uVar2;" statement_identifier : (expression_statement "__tmp.section_name_.field_2._M_allocated_capacity = uVar2;" (assignment_expression "__tmp.section_name_.field_2._M_allocated_capacity = uVar2" (field_expression "__tmp.section_name_.field_2._M_allocated_capacity" (field_expression "__tmp.section_name_.field_2" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = identifier) ;)) (expression_statement "__tmp.section_name_._M_string_length = 0;" (assignment_expression "__tmp.section_name_._M_string_length = 0" (field_expression "__tmp.section_name_._M_string_length" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "*__tmp.section_name_._M_dataplus._M_p = '\0';" (assignment_expression "*__tmp.section_name_._M_dataplus._M_p = '\0'" (pointer_expression "*__tmp.section_name_._M_dataplus._M_p" * (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier)) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "paVar16[1]._M_allocated_capacity = __tmp.size_;" (assignment_expression "paVar16[1]._M_allocated_capacity = __tmp.size_" (field_expression "paVar16[1]._M_allocated_capacity" (subscript_expression "paVar16[1]" identifier [ number_literal ]) . field_identifier) = (field_expression "__tmp.size_" identifier . field_identifier)) ;) (expression_statement "*(uint64_t *)((long)paVar16 + 0x18) = __tmp.addralign_;" (assignment_expression "*(uint64_t *)((long)paVar16 + 0x18) = __tmp.addralign_" (pointer_expression "*(uint64_t *)((long)paVar16 + 0x18)" * (cast_expression "(uint64_t *)((long)paVar16 + 0x18)" ( (type_descriptor "uint64_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar16 + 0x18)" ( (binary_expression "(long)paVar16 + 0x18" (cast_expression "(long)paVar16" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (field_expression "__tmp.addralign_" identifier . field_identifier)) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p != paVar10) {\n          operator_delete(__tmp.section_name_._M_dataplus._M_p);\n        }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p != paVar10)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p != paVar10)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p != paVar10" (binary_expression "allocator<char>_>_9\n             *)__tmp.section_name_._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n             *)__tmp.section_name_._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier))) != identifier) )) )) (compound_statement "{\n          operator_delete(__tmp.section_name_._M_dataplus._M_p);\n        }" { (expression_statement "operator_delete(__tmp.section_name_._M_dataplus._M_p);" (call_expression "operator_delete(__tmp.section_name_._M_dataplus._M_p)" identifier (argument_list "(__tmp.section_name_._M_dataplus._M_p)" ( (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) ))) ;) })) (expression_statement "lVar7 = lVar7 + 1;" (assignment_expression "lVar7 = lVar7 + 1" identifier = (binary_expression "lVar7 + 1" identifier + number_literal)) ;) (expression_statement "paVar15 = paVar15 + 5;" (assignment_expression "paVar15 = paVar15 + 5" identifier = (binary_expression "paVar15 + 5" identifier + number_literal)) ;) (expression_statement "paVar16 = paVar16 + 5;" (assignment_expression "paVar16 = paVar16 + 5" identifier = (binary_expression "paVar16 + 5" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar11 != lVar7)" ( (binary_expression "lVar11 != lVar7" identifier != identifier) )) ;) (expression_statement "local_a0 = local_a0 + lVar11;" (assignment_expression "local_a0 = local_a0 + lVar11" identifier = (binary_expression "local_a0 + lVar11" identifier + identifier)) ;) })) (if_statement "if (local_a8 % lVar8 == 0) {\n      return (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n              )pIVar1;\n    }" if (parenthesized_expression "(local_a8 % lVar8 == 0)" ( (binary_expression "local_a8 % lVar8 == 0" (binary_expression "local_a8 % lVar8" identifier % identifier) == number_literal) )) (compound_statement "{\n      return (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n              )pIVar1;\n    }" { (return_statement "return (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n              )pIVar1;" return (parenthesized_expression "(__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n              )pIVar1" ( (ERROR "__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::" (comma_expression "__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std" (binary_expression "__normal_iterator<gold::Input_section_info*,_std::vector<gold" (binary_expression "__normal_iterator<gold::Input_section_info*,_std" (binary_expression "__normal_iterator<gold" identifier < identifier) (ERROR "::Input_section_info" : : identifier) * (ERROR "," ,) identifier) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Input_section_info" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Input_section_info>_>_>\n              )pIVar1" (binary_expression "Input_section_info>_>_" (binary_expression "Input_section_info>_" identifier > identifier) > identifier) > (ERROR ")" )) identifier) )) ;) })) (expression_statement "lVar9 = lVar8 - local_a8 % lVar8;" (assignment_expression "lVar9 = lVar8 - local_a8 % lVar8" identifier = (binary_expression "lVar8 - local_a8 % lVar8" identifier - (binary_expression "local_a8 % lVar8" identifier % identifier))) ;) (expression_statement "lVar7 = lVar8;" (assignment_expression "lVar7 = lVar8" identifier = identifier) ;) (while_statement "while (lVar11 = lVar7 - lVar9, lVar8 = lVar9, local_a8 = lVar7, lVar11 <= lVar9) {\nLAB_0025fb1a:\n      lVar7 = lVar11;\n      pIVar12 = local_a0 + (local_a8 - lVar7);\n      if (0 < lVar9) {\n        paVar15 = &pIVar12[-1].section_name_.field_2;\n        paVar10 = &local_a0[local_a8 + -1].section_name_.field_2;\n        lVar8 = 0;\n        paVar16 = &__tmp.section_name_.field_2;\n        do {\n          __tmp.input_section_._0_8_ = *(undefined8 *)(paVar15 + -3);\n          __tmp.input_section_.u1_ = *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar15 + -0x28);\n          __tmp.input_section_.u2_ = *(anon_union_8_4_139239c7_for_u2_ *)(paVar15 + -2);\n          __tmp.input_section_._24_8_ = *(undefined8 *)((long)paVar15 + -0x18);\n          __tmp.section_name_._M_dataplus._M_p = (((string *)(paVar15 + -1))->_M_dataplus)._M_p;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)__tmp.section_name_._M_dataplus._M_p == paVar15) {\n            __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n            __tmp.section_name_.field_2._8_8_ = *(undefined8 *)((long)paVar15 + 8);\n            __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n          }\n          else {\n            __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n          }\n          __tmp.section_name_._M_string_length = *(size_type *)((long)paVar15 + -8);\n          paVar15->_M_local_buf[0] = '\0';\n          *(size_type *)((long)paVar15 + -8) = 0;\n          sVar3 = *(size_type *)((long)paVar10 + -0x28);\n          __tmp.size_ = paVar15[1]._M_allocated_capacity;\n          paVar15[-3]._M_allocated_capacity = paVar10[-3]._M_allocated_capacity;\n          *(size_type *)((long)paVar15 + -0x28) = sVar3;\n          __tmp.addralign_ = *(uint64_t *)((long)paVar15 + 0x18);\n          (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)paVar15;\n          paVar15[-2]._M_allocated_capacity = paVar10[-2]._M_allocated_capacity;\n          *(undefined4 *)((long)paVar15 + -0x18) = *(undefined4 *)((long)paVar10 + -0x18);\n          psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)psVar14 == paVar10) {\n            sVar6 = *(size_type *)((long)paVar10 + -8);\n            if (sVar6 != 0) {\n              if (sVar6 == 1) {\n                paVar15->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                sVar6 = *(size_type *)((long)paVar10 + -8);\n              }\n              else {\n                memcpy(paVar15,paVar10,sVar6);\n                sVar6 = *(size_type *)((long)paVar10 + -8);\n              }\n            }\n            pcVar13 = (((string *)(paVar15 + -1))->_M_dataplus)._M_p;\n            *(size_t *)((long)paVar15 + -8) = sVar6;\n            pcVar13[sVar6] = '\0';\n          }\n          else {\n            (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)psVar14;\n            *(size_type *)((long)paVar15 + -8) = *(size_type *)((long)paVar10 + -8);\n            paVar15->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n            (((string *)(paVar10 + -1))->_M_dataplus)._M_p = (pointer)paVar10;\n          }\n          *(size_type *)((long)paVar10 + -8) = 0;\n          *(((string *)(paVar10 + -1))->_M_dataplus)._M_p = '\0';\n          paVar15[1]._M_allocated_capacity = paVar10[1]._M_allocated_capacity;\n          *(size_type *)((long)paVar15 + 0x18) = *(size_type *)((long)paVar10 + 0x18);\n          psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n          paVar10[-3]._M_allocated_capacity = __tmp.input_section_._0_8_;\n          *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar10 + -0x28) = __tmp.input_section_.u1_;\n          *(anon_union_8_4_139239c7_for_u2_ *)(paVar10 + -2) = __tmp.input_section_.u2_;\n          *(uint *)((long)paVar10 + -0x18) = __tmp.input_section_.section_order_index_;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)__tmp.section_name_._M_dataplus._M_p == paVar16) {\n            if (__tmp.section_name_._M_string_length != 0) {\n              if (__tmp.section_name_._M_string_length == 1) {\n                *(char *)psVar14 = __tmp.section_name_.field_2._M_local_buf[0];\n                psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n              }\n              else {\n                memcpy(psVar14,paVar16,__tmp.section_name_._M_string_length);\n                psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n              }\n            }\n            *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n            *(char *)((long)psVar14 + __tmp.section_name_._M_string_length) = '\0';\n            uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n          }\n          else {\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)psVar14 == paVar10) {\n              (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n              *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n              paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n            }\n            else {\n              uVar2 = paVar10->_M_allocated_capacity;\n              (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n              *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n              paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n              __tmp.section_name_._M_dataplus._M_p = (pointer)psVar14;\n              if (psVar14 != (size_type *)0x0) goto LAB_0025fc78;\n            }\n            __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n            uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n          }\nLAB_0025fc78:\n          __tmp.section_name_.field_2._M_allocated_capacity = uVar2;\n          __tmp.section_name_._M_string_length = 0;\n          *__tmp.section_name_._M_dataplus._M_p = '\0';\n          paVar10[1]._M_allocated_capacity = __tmp.size_;\n          *(uint64_t *)((long)paVar10 + 0x18) = __tmp.addralign_;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)__tmp.section_name_._M_dataplus._M_p != paVar16) {\n            operator_delete(__tmp.section_name_._M_dataplus._M_p);\n          }\n          lVar8 = lVar8 + 1;\n          paVar15 = paVar15 + -5;\n          paVar10 = paVar10 + -5;\n        } while (lVar8 != lVar9);\n        pIVar12 = pIVar12 + -lVar8;\n      }\n      local_a0 = pIVar12;\n      lVar9 = local_a8 % lVar7;\n      if (lVar9 == 0) {\n        return (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n                )pIVar1;\n      }\n    }" while (parenthesized_expression "(lVar11 = lVar7 - lVar9, lVar8 = lVar9, local_a8 = lVar7, lVar11 <= lVar9)" ( (comma_expression "lVar11 = lVar7 - lVar9, lVar8 = lVar9, local_a8 = lVar7, lVar11 <= lVar9" (assignment_expression "lVar11 = lVar7 - lVar9" identifier = (binary_expression "lVar7 - lVar9" identifier - identifier)) , (comma_expression "lVar8 = lVar9, local_a8 = lVar7, lVar11 <= lVar9" (assignment_expression "lVar8 = lVar9" identifier = identifier) , (comma_expression "local_a8 = lVar7, lVar11 <= lVar9" (assignment_expression "local_a8 = lVar7" identifier = identifier) , (binary_expression "lVar11 <= lVar9" identifier <= identifier)))) )) (compound_statement "{\nLAB_0025fb1a:\n      lVar7 = lVar11;\n      pIVar12 = local_a0 + (local_a8 - lVar7);\n      if (0 < lVar9) {\n        paVar15 = &pIVar12[-1].section_name_.field_2;\n        paVar10 = &local_a0[local_a8 + -1].section_name_.field_2;\n        lVar8 = 0;\n        paVar16 = &__tmp.section_name_.field_2;\n        do {\n          __tmp.input_section_._0_8_ = *(undefined8 *)(paVar15 + -3);\n          __tmp.input_section_.u1_ = *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar15 + -0x28);\n          __tmp.input_section_.u2_ = *(anon_union_8_4_139239c7_for_u2_ *)(paVar15 + -2);\n          __tmp.input_section_._24_8_ = *(undefined8 *)((long)paVar15 + -0x18);\n          __tmp.section_name_._M_dataplus._M_p = (((string *)(paVar15 + -1))->_M_dataplus)._M_p;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)__tmp.section_name_._M_dataplus._M_p == paVar15) {\n            __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n            __tmp.section_name_.field_2._8_8_ = *(undefined8 *)((long)paVar15 + 8);\n            __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n          }\n          else {\n            __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n          }\n          __tmp.section_name_._M_string_length = *(size_type *)((long)paVar15 + -8);\n          paVar15->_M_local_buf[0] = '\0';\n          *(size_type *)((long)paVar15 + -8) = 0;\n          sVar3 = *(size_type *)((long)paVar10 + -0x28);\n          __tmp.size_ = paVar15[1]._M_allocated_capacity;\n          paVar15[-3]._M_allocated_capacity = paVar10[-3]._M_allocated_capacity;\n          *(size_type *)((long)paVar15 + -0x28) = sVar3;\n          __tmp.addralign_ = *(uint64_t *)((long)paVar15 + 0x18);\n          (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)paVar15;\n          paVar15[-2]._M_allocated_capacity = paVar10[-2]._M_allocated_capacity;\n          *(undefined4 *)((long)paVar15 + -0x18) = *(undefined4 *)((long)paVar10 + -0x18);\n          psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)psVar14 == paVar10) {\n            sVar6 = *(size_type *)((long)paVar10 + -8);\n            if (sVar6 != 0) {\n              if (sVar6 == 1) {\n                paVar15->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                sVar6 = *(size_type *)((long)paVar10 + -8);\n              }\n              else {\n                memcpy(paVar15,paVar10,sVar6);\n                sVar6 = *(size_type *)((long)paVar10 + -8);\n              }\n            }\n            pcVar13 = (((string *)(paVar15 + -1))->_M_dataplus)._M_p;\n            *(size_t *)((long)paVar15 + -8) = sVar6;\n            pcVar13[sVar6] = '\0';\n          }\n          else {\n            (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)psVar14;\n            *(size_type *)((long)paVar15 + -8) = *(size_type *)((long)paVar10 + -8);\n            paVar15->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n            (((string *)(paVar10 + -1))->_M_dataplus)._M_p = (pointer)paVar10;\n          }\n          *(size_type *)((long)paVar10 + -8) = 0;\n          *(((string *)(paVar10 + -1))->_M_dataplus)._M_p = '\0';\n          paVar15[1]._M_allocated_capacity = paVar10[1]._M_allocated_capacity;\n          *(size_type *)((long)paVar15 + 0x18) = *(size_type *)((long)paVar10 + 0x18);\n          psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n          paVar10[-3]._M_allocated_capacity = __tmp.input_section_._0_8_;\n          *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar10 + -0x28) = __tmp.input_section_.u1_;\n          *(anon_union_8_4_139239c7_for_u2_ *)(paVar10 + -2) = __tmp.input_section_.u2_;\n          *(uint *)((long)paVar10 + -0x18) = __tmp.input_section_.section_order_index_;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)__tmp.section_name_._M_dataplus._M_p == paVar16) {\n            if (__tmp.section_name_._M_string_length != 0) {\n              if (__tmp.section_name_._M_string_length == 1) {\n                *(char *)psVar14 = __tmp.section_name_.field_2._M_local_buf[0];\n                psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n              }\n              else {\n                memcpy(psVar14,paVar16,__tmp.section_name_._M_string_length);\n                psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n              }\n            }\n            *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n            *(char *)((long)psVar14 + __tmp.section_name_._M_string_length) = '\0';\n            uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n          }\n          else {\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)psVar14 == paVar10) {\n              (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n              *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n              paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n            }\n            else {\n              uVar2 = paVar10->_M_allocated_capacity;\n              (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n              *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n              paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n              __tmp.section_name_._M_dataplus._M_p = (pointer)psVar14;\n              if (psVar14 != (size_type *)0x0) goto LAB_0025fc78;\n            }\n            __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n            uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n          }\nLAB_0025fc78:\n          __tmp.section_name_.field_2._M_allocated_capacity = uVar2;\n          __tmp.section_name_._M_string_length = 0;\n          *__tmp.section_name_._M_dataplus._M_p = '\0';\n          paVar10[1]._M_allocated_capacity = __tmp.size_;\n          *(uint64_t *)((long)paVar10 + 0x18) = __tmp.addralign_;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)__tmp.section_name_._M_dataplus._M_p != paVar16) {\n            operator_delete(__tmp.section_name_._M_dataplus._M_p);\n          }\n          lVar8 = lVar8 + 1;\n          paVar15 = paVar15 + -5;\n          paVar10 = paVar10 + -5;\n        } while (lVar8 != lVar9);\n        pIVar12 = pIVar12 + -lVar8;\n      }\n      local_a0 = pIVar12;\n      lVar9 = local_a8 % lVar7;\n      if (lVar9 == 0) {\n        return (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n                )pIVar1;\n      }\n    }" { (labeled_statement "LAB_0025fb1a:\n      lVar7 = lVar11;" statement_identifier : (expression_statement "lVar7 = lVar11;" (assignment_expression "lVar7 = lVar11" identifier = identifier) ;)) (expression_statement "pIVar12 = local_a0 + (local_a8 - lVar7);" (assignment_expression "pIVar12 = local_a0 + (local_a8 - lVar7)" identifier = (binary_expression "local_a0 + (local_a8 - lVar7)" identifier + (parenthesized_expression "(local_a8 - lVar7)" ( (binary_expression "local_a8 - lVar7" identifier - identifier) )))) ;) (if_statement "if (0 < lVar9) {\n        paVar15 = &pIVar12[-1].section_name_.field_2;\n        paVar10 = &local_a0[local_a8 + -1].section_name_.field_2;\n        lVar8 = 0;\n        paVar16 = &__tmp.section_name_.field_2;\n        do {\n          __tmp.input_section_._0_8_ = *(undefined8 *)(paVar15 + -3);\n          __tmp.input_section_.u1_ = *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar15 + -0x28);\n          __tmp.input_section_.u2_ = *(anon_union_8_4_139239c7_for_u2_ *)(paVar15 + -2);\n          __tmp.input_section_._24_8_ = *(undefined8 *)((long)paVar15 + -0x18);\n          __tmp.section_name_._M_dataplus._M_p = (((string *)(paVar15 + -1))->_M_dataplus)._M_p;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)__tmp.section_name_._M_dataplus._M_p == paVar15) {\n            __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n            __tmp.section_name_.field_2._8_8_ = *(undefined8 *)((long)paVar15 + 8);\n            __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n          }\n          else {\n            __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n          }\n          __tmp.section_name_._M_string_length = *(size_type *)((long)paVar15 + -8);\n          paVar15->_M_local_buf[0] = '\0';\n          *(size_type *)((long)paVar15 + -8) = 0;\n          sVar3 = *(size_type *)((long)paVar10 + -0x28);\n          __tmp.size_ = paVar15[1]._M_allocated_capacity;\n          paVar15[-3]._M_allocated_capacity = paVar10[-3]._M_allocated_capacity;\n          *(size_type *)((long)paVar15 + -0x28) = sVar3;\n          __tmp.addralign_ = *(uint64_t *)((long)paVar15 + 0x18);\n          (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)paVar15;\n          paVar15[-2]._M_allocated_capacity = paVar10[-2]._M_allocated_capacity;\n          *(undefined4 *)((long)paVar15 + -0x18) = *(undefined4 *)((long)paVar10 + -0x18);\n          psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)psVar14 == paVar10) {\n            sVar6 = *(size_type *)((long)paVar10 + -8);\n            if (sVar6 != 0) {\n              if (sVar6 == 1) {\n                paVar15->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                sVar6 = *(size_type *)((long)paVar10 + -8);\n              }\n              else {\n                memcpy(paVar15,paVar10,sVar6);\n                sVar6 = *(size_type *)((long)paVar10 + -8);\n              }\n            }\n            pcVar13 = (((string *)(paVar15 + -1))->_M_dataplus)._M_p;\n            *(size_t *)((long)paVar15 + -8) = sVar6;\n            pcVar13[sVar6] = '\0';\n          }\n          else {\n            (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)psVar14;\n            *(size_type *)((long)paVar15 + -8) = *(size_type *)((long)paVar10 + -8);\n            paVar15->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n            (((string *)(paVar10 + -1))->_M_dataplus)._M_p = (pointer)paVar10;\n          }\n          *(size_type *)((long)paVar10 + -8) = 0;\n          *(((string *)(paVar10 + -1))->_M_dataplus)._M_p = '\0';\n          paVar15[1]._M_allocated_capacity = paVar10[1]._M_allocated_capacity;\n          *(size_type *)((long)paVar15 + 0x18) = *(size_type *)((long)paVar10 + 0x18);\n          psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n          paVar10[-3]._M_allocated_capacity = __tmp.input_section_._0_8_;\n          *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar10 + -0x28) = __tmp.input_section_.u1_;\n          *(anon_union_8_4_139239c7_for_u2_ *)(paVar10 + -2) = __tmp.input_section_.u2_;\n          *(uint *)((long)paVar10 + -0x18) = __tmp.input_section_.section_order_index_;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)__tmp.section_name_._M_dataplus._M_p == paVar16) {\n            if (__tmp.section_name_._M_string_length != 0) {\n              if (__tmp.section_name_._M_string_length == 1) {\n                *(char *)psVar14 = __tmp.section_name_.field_2._M_local_buf[0];\n                psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n              }\n              else {\n                memcpy(psVar14,paVar16,__tmp.section_name_._M_string_length);\n                psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n              }\n            }\n            *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n            *(char *)((long)psVar14 + __tmp.section_name_._M_string_length) = '\0';\n            uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n          }\n          else {\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)psVar14 == paVar10) {\n              (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n              *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n              paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n            }\n            else {\n              uVar2 = paVar10->_M_allocated_capacity;\n              (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n              *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n              paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n              __tmp.section_name_._M_dataplus._M_p = (pointer)psVar14;\n              if (psVar14 != (size_type *)0x0) goto LAB_0025fc78;\n            }\n            __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n            uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n          }\nLAB_0025fc78:\n          __tmp.section_name_.field_2._M_allocated_capacity = uVar2;\n          __tmp.section_name_._M_string_length = 0;\n          *__tmp.section_name_._M_dataplus._M_p = '\0';\n          paVar10[1]._M_allocated_capacity = __tmp.size_;\n          *(uint64_t *)((long)paVar10 + 0x18) = __tmp.addralign_;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)__tmp.section_name_._M_dataplus._M_p != paVar16) {\n            operator_delete(__tmp.section_name_._M_dataplus._M_p);\n          }\n          lVar8 = lVar8 + 1;\n          paVar15 = paVar15 + -5;\n          paVar10 = paVar10 + -5;\n        } while (lVar8 != lVar9);\n        pIVar12 = pIVar12 + -lVar8;\n      }" if (parenthesized_expression "(0 < lVar9)" ( (binary_expression "0 < lVar9" number_literal < identifier) )) (compound_statement "{\n        paVar15 = &pIVar12[-1].section_name_.field_2;\n        paVar10 = &local_a0[local_a8 + -1].section_name_.field_2;\n        lVar8 = 0;\n        paVar16 = &__tmp.section_name_.field_2;\n        do {\n          __tmp.input_section_._0_8_ = *(undefined8 *)(paVar15 + -3);\n          __tmp.input_section_.u1_ = *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar15 + -0x28);\n          __tmp.input_section_.u2_ = *(anon_union_8_4_139239c7_for_u2_ *)(paVar15 + -2);\n          __tmp.input_section_._24_8_ = *(undefined8 *)((long)paVar15 + -0x18);\n          __tmp.section_name_._M_dataplus._M_p = (((string *)(paVar15 + -1))->_M_dataplus)._M_p;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)__tmp.section_name_._M_dataplus._M_p == paVar15) {\n            __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n            __tmp.section_name_.field_2._8_8_ = *(undefined8 *)((long)paVar15 + 8);\n            __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n          }\n          else {\n            __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n          }\n          __tmp.section_name_._M_string_length = *(size_type *)((long)paVar15 + -8);\n          paVar15->_M_local_buf[0] = '\0';\n          *(size_type *)((long)paVar15 + -8) = 0;\n          sVar3 = *(size_type *)((long)paVar10 + -0x28);\n          __tmp.size_ = paVar15[1]._M_allocated_capacity;\n          paVar15[-3]._M_allocated_capacity = paVar10[-3]._M_allocated_capacity;\n          *(size_type *)((long)paVar15 + -0x28) = sVar3;\n          __tmp.addralign_ = *(uint64_t *)((long)paVar15 + 0x18);\n          (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)paVar15;\n          paVar15[-2]._M_allocated_capacity = paVar10[-2]._M_allocated_capacity;\n          *(undefined4 *)((long)paVar15 + -0x18) = *(undefined4 *)((long)paVar10 + -0x18);\n          psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)psVar14 == paVar10) {\n            sVar6 = *(size_type *)((long)paVar10 + -8);\n            if (sVar6 != 0) {\n              if (sVar6 == 1) {\n                paVar15->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                sVar6 = *(size_type *)((long)paVar10 + -8);\n              }\n              else {\n                memcpy(paVar15,paVar10,sVar6);\n                sVar6 = *(size_type *)((long)paVar10 + -8);\n              }\n            }\n            pcVar13 = (((string *)(paVar15 + -1))->_M_dataplus)._M_p;\n            *(size_t *)((long)paVar15 + -8) = sVar6;\n            pcVar13[sVar6] = '\0';\n          }\n          else {\n            (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)psVar14;\n            *(size_type *)((long)paVar15 + -8) = *(size_type *)((long)paVar10 + -8);\n            paVar15->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n            (((string *)(paVar10 + -1))->_M_dataplus)._M_p = (pointer)paVar10;\n          }\n          *(size_type *)((long)paVar10 + -8) = 0;\n          *(((string *)(paVar10 + -1))->_M_dataplus)._M_p = '\0';\n          paVar15[1]._M_allocated_capacity = paVar10[1]._M_allocated_capacity;\n          *(size_type *)((long)paVar15 + 0x18) = *(size_type *)((long)paVar10 + 0x18);\n          psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n          paVar10[-3]._M_allocated_capacity = __tmp.input_section_._0_8_;\n          *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar10 + -0x28) = __tmp.input_section_.u1_;\n          *(anon_union_8_4_139239c7_for_u2_ *)(paVar10 + -2) = __tmp.input_section_.u2_;\n          *(uint *)((long)paVar10 + -0x18) = __tmp.input_section_.section_order_index_;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)__tmp.section_name_._M_dataplus._M_p == paVar16) {\n            if (__tmp.section_name_._M_string_length != 0) {\n              if (__tmp.section_name_._M_string_length == 1) {\n                *(char *)psVar14 = __tmp.section_name_.field_2._M_local_buf[0];\n                psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n              }\n              else {\n                memcpy(psVar14,paVar16,__tmp.section_name_._M_string_length);\n                psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n              }\n            }\n            *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n            *(char *)((long)psVar14 + __tmp.section_name_._M_string_length) = '\0';\n            uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n          }\n          else {\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)psVar14 == paVar10) {\n              (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n              *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n              paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n            }\n            else {\n              uVar2 = paVar10->_M_allocated_capacity;\n              (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n              *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n              paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n              __tmp.section_name_._M_dataplus._M_p = (pointer)psVar14;\n              if (psVar14 != (size_type *)0x0) goto LAB_0025fc78;\n            }\n            __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n            uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n          }\nLAB_0025fc78:\n          __tmp.section_name_.field_2._M_allocated_capacity = uVar2;\n          __tmp.section_name_._M_string_length = 0;\n          *__tmp.section_name_._M_dataplus._M_p = '\0';\n          paVar10[1]._M_allocated_capacity = __tmp.size_;\n          *(uint64_t *)((long)paVar10 + 0x18) = __tmp.addralign_;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)__tmp.section_name_._M_dataplus._M_p != paVar16) {\n            operator_delete(__tmp.section_name_._M_dataplus._M_p);\n          }\n          lVar8 = lVar8 + 1;\n          paVar15 = paVar15 + -5;\n          paVar10 = paVar10 + -5;\n        } while (lVar8 != lVar9);\n        pIVar12 = pIVar12 + -lVar8;\n      }" { (expression_statement "paVar15 = &pIVar12[-1].section_name_.field_2;" (assignment_expression "paVar15 = &pIVar12[-1].section_name_.field_2" identifier = (pointer_expression "&pIVar12[-1].section_name_.field_2" & (field_expression "pIVar12[-1].section_name_.field_2" (field_expression "pIVar12[-1].section_name_" (subscript_expression "pIVar12[-1]" identifier [ number_literal ]) . field_identifier) . field_identifier))) ;) (expression_statement "paVar10 = &local_a0[local_a8 + -1].section_name_.field_2;" (assignment_expression "paVar10 = &local_a0[local_a8 + -1].section_name_.field_2" identifier = (pointer_expression "&local_a0[local_a8 + -1].section_name_.field_2" & (field_expression "local_a0[local_a8 + -1].section_name_.field_2" (field_expression "local_a0[local_a8 + -1].section_name_" (subscript_expression "local_a0[local_a8 + -1]" identifier [ (binary_expression "local_a8 + -1" identifier + number_literal) ]) . field_identifier) . field_identifier))) ;) (expression_statement "lVar8 = 0;" (assignment_expression "lVar8 = 0" identifier = number_literal) ;) (expression_statement "paVar16 = &__tmp.section_name_.field_2;" (assignment_expression "paVar16 = &__tmp.section_name_.field_2" identifier = (pointer_expression "&__tmp.section_name_.field_2" & (field_expression "__tmp.section_name_.field_2" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier))) ;) (do_statement "do {\n          __tmp.input_section_._0_8_ = *(undefined8 *)(paVar15 + -3);\n          __tmp.input_section_.u1_ = *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar15 + -0x28);\n          __tmp.input_section_.u2_ = *(anon_union_8_4_139239c7_for_u2_ *)(paVar15 + -2);\n          __tmp.input_section_._24_8_ = *(undefined8 *)((long)paVar15 + -0x18);\n          __tmp.section_name_._M_dataplus._M_p = (((string *)(paVar15 + -1))->_M_dataplus)._M_p;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)__tmp.section_name_._M_dataplus._M_p == paVar15) {\n            __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n            __tmp.section_name_.field_2._8_8_ = *(undefined8 *)((long)paVar15 + 8);\n            __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n          }\n          else {\n            __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n          }\n          __tmp.section_name_._M_string_length = *(size_type *)((long)paVar15 + -8);\n          paVar15->_M_local_buf[0] = '\0';\n          *(size_type *)((long)paVar15 + -8) = 0;\n          sVar3 = *(size_type *)((long)paVar10 + -0x28);\n          __tmp.size_ = paVar15[1]._M_allocated_capacity;\n          paVar15[-3]._M_allocated_capacity = paVar10[-3]._M_allocated_capacity;\n          *(size_type *)((long)paVar15 + -0x28) = sVar3;\n          __tmp.addralign_ = *(uint64_t *)((long)paVar15 + 0x18);\n          (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)paVar15;\n          paVar15[-2]._M_allocated_capacity = paVar10[-2]._M_allocated_capacity;\n          *(undefined4 *)((long)paVar15 + -0x18) = *(undefined4 *)((long)paVar10 + -0x18);\n          psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)psVar14 == paVar10) {\n            sVar6 = *(size_type *)((long)paVar10 + -8);\n            if (sVar6 != 0) {\n              if (sVar6 == 1) {\n                paVar15->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                sVar6 = *(size_type *)((long)paVar10 + -8);\n              }\n              else {\n                memcpy(paVar15,paVar10,sVar6);\n                sVar6 = *(size_type *)((long)paVar10 + -8);\n              }\n            }\n            pcVar13 = (((string *)(paVar15 + -1))->_M_dataplus)._M_p;\n            *(size_t *)((long)paVar15 + -8) = sVar6;\n            pcVar13[sVar6] = '\0';\n          }\n          else {\n            (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)psVar14;\n            *(size_type *)((long)paVar15 + -8) = *(size_type *)((long)paVar10 + -8);\n            paVar15->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n            (((string *)(paVar10 + -1))->_M_dataplus)._M_p = (pointer)paVar10;\n          }\n          *(size_type *)((long)paVar10 + -8) = 0;\n          *(((string *)(paVar10 + -1))->_M_dataplus)._M_p = '\0';\n          paVar15[1]._M_allocated_capacity = paVar10[1]._M_allocated_capacity;\n          *(size_type *)((long)paVar15 + 0x18) = *(size_type *)((long)paVar10 + 0x18);\n          psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n          paVar10[-3]._M_allocated_capacity = __tmp.input_section_._0_8_;\n          *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar10 + -0x28) = __tmp.input_section_.u1_;\n          *(anon_union_8_4_139239c7_for_u2_ *)(paVar10 + -2) = __tmp.input_section_.u2_;\n          *(uint *)((long)paVar10 + -0x18) = __tmp.input_section_.section_order_index_;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)__tmp.section_name_._M_dataplus._M_p == paVar16) {\n            if (__tmp.section_name_._M_string_length != 0) {\n              if (__tmp.section_name_._M_string_length == 1) {\n                *(char *)psVar14 = __tmp.section_name_.field_2._M_local_buf[0];\n                psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n              }\n              else {\n                memcpy(psVar14,paVar16,__tmp.section_name_._M_string_length);\n                psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n              }\n            }\n            *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n            *(char *)((long)psVar14 + __tmp.section_name_._M_string_length) = '\0';\n            uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n          }\n          else {\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)psVar14 == paVar10) {\n              (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n              *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n              paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n            }\n            else {\n              uVar2 = paVar10->_M_allocated_capacity;\n              (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n              *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n              paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n              __tmp.section_name_._M_dataplus._M_p = (pointer)psVar14;\n              if (psVar14 != (size_type *)0x0) goto LAB_0025fc78;\n            }\n            __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n            uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n          }\nLAB_0025fc78:\n          __tmp.section_name_.field_2._M_allocated_capacity = uVar2;\n          __tmp.section_name_._M_string_length = 0;\n          *__tmp.section_name_._M_dataplus._M_p = '\0';\n          paVar10[1]._M_allocated_capacity = __tmp.size_;\n          *(uint64_t *)((long)paVar10 + 0x18) = __tmp.addralign_;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)__tmp.section_name_._M_dataplus._M_p != paVar16) {\n            operator_delete(__tmp.section_name_._M_dataplus._M_p);\n          }\n          lVar8 = lVar8 + 1;\n          paVar15 = paVar15 + -5;\n          paVar10 = paVar10 + -5;\n        } while (lVar8 != lVar9);" do (compound_statement "{\n          __tmp.input_section_._0_8_ = *(undefined8 *)(paVar15 + -3);\n          __tmp.input_section_.u1_ = *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar15 + -0x28);\n          __tmp.input_section_.u2_ = *(anon_union_8_4_139239c7_for_u2_ *)(paVar15 + -2);\n          __tmp.input_section_._24_8_ = *(undefined8 *)((long)paVar15 + -0x18);\n          __tmp.section_name_._M_dataplus._M_p = (((string *)(paVar15 + -1))->_M_dataplus)._M_p;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)__tmp.section_name_._M_dataplus._M_p == paVar15) {\n            __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n            __tmp.section_name_.field_2._8_8_ = *(undefined8 *)((long)paVar15 + 8);\n            __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n          }\n          else {\n            __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n          }\n          __tmp.section_name_._M_string_length = *(size_type *)((long)paVar15 + -8);\n          paVar15->_M_local_buf[0] = '\0';\n          *(size_type *)((long)paVar15 + -8) = 0;\n          sVar3 = *(size_type *)((long)paVar10 + -0x28);\n          __tmp.size_ = paVar15[1]._M_allocated_capacity;\n          paVar15[-3]._M_allocated_capacity = paVar10[-3]._M_allocated_capacity;\n          *(size_type *)((long)paVar15 + -0x28) = sVar3;\n          __tmp.addralign_ = *(uint64_t *)((long)paVar15 + 0x18);\n          (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)paVar15;\n          paVar15[-2]._M_allocated_capacity = paVar10[-2]._M_allocated_capacity;\n          *(undefined4 *)((long)paVar15 + -0x18) = *(undefined4 *)((long)paVar10 + -0x18);\n          psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)psVar14 == paVar10) {\n            sVar6 = *(size_type *)((long)paVar10 + -8);\n            if (sVar6 != 0) {\n              if (sVar6 == 1) {\n                paVar15->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                sVar6 = *(size_type *)((long)paVar10 + -8);\n              }\n              else {\n                memcpy(paVar15,paVar10,sVar6);\n                sVar6 = *(size_type *)((long)paVar10 + -8);\n              }\n            }\n            pcVar13 = (((string *)(paVar15 + -1))->_M_dataplus)._M_p;\n            *(size_t *)((long)paVar15 + -8) = sVar6;\n            pcVar13[sVar6] = '\0';\n          }\n          else {\n            (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)psVar14;\n            *(size_type *)((long)paVar15 + -8) = *(size_type *)((long)paVar10 + -8);\n            paVar15->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n            (((string *)(paVar10 + -1))->_M_dataplus)._M_p = (pointer)paVar10;\n          }\n          *(size_type *)((long)paVar10 + -8) = 0;\n          *(((string *)(paVar10 + -1))->_M_dataplus)._M_p = '\0';\n          paVar15[1]._M_allocated_capacity = paVar10[1]._M_allocated_capacity;\n          *(size_type *)((long)paVar15 + 0x18) = *(size_type *)((long)paVar10 + 0x18);\n          psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n          paVar10[-3]._M_allocated_capacity = __tmp.input_section_._0_8_;\n          *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar10 + -0x28) = __tmp.input_section_.u1_;\n          *(anon_union_8_4_139239c7_for_u2_ *)(paVar10 + -2) = __tmp.input_section_.u2_;\n          *(uint *)((long)paVar10 + -0x18) = __tmp.input_section_.section_order_index_;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)__tmp.section_name_._M_dataplus._M_p == paVar16) {\n            if (__tmp.section_name_._M_string_length != 0) {\n              if (__tmp.section_name_._M_string_length == 1) {\n                *(char *)psVar14 = __tmp.section_name_.field_2._M_local_buf[0];\n                psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n              }\n              else {\n                memcpy(psVar14,paVar16,__tmp.section_name_._M_string_length);\n                psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n              }\n            }\n            *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n            *(char *)((long)psVar14 + __tmp.section_name_._M_string_length) = '\0';\n            uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n          }\n          else {\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)psVar14 == paVar10) {\n              (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n              *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n              paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n            }\n            else {\n              uVar2 = paVar10->_M_allocated_capacity;\n              (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n              *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n              paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n              __tmp.section_name_._M_dataplus._M_p = (pointer)psVar14;\n              if (psVar14 != (size_type *)0x0) goto LAB_0025fc78;\n            }\n            __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n            uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n          }\nLAB_0025fc78:\n          __tmp.section_name_.field_2._M_allocated_capacity = uVar2;\n          __tmp.section_name_._M_string_length = 0;\n          *__tmp.section_name_._M_dataplus._M_p = '\0';\n          paVar10[1]._M_allocated_capacity = __tmp.size_;\n          *(uint64_t *)((long)paVar10 + 0x18) = __tmp.addralign_;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)__tmp.section_name_._M_dataplus._M_p != paVar16) {\n            operator_delete(__tmp.section_name_._M_dataplus._M_p);\n          }\n          lVar8 = lVar8 + 1;\n          paVar15 = paVar15 + -5;\n          paVar10 = paVar10 + -5;\n        }" { (expression_statement "__tmp.input_section_._0_8_ = *(undefined8 *)(paVar15 + -3);" (assignment_expression "__tmp.input_section_._0_8_ = *(undefined8 *)(paVar15 + -3)" (field_expression "__tmp.input_section_._0_8_" (field_expression "__tmp.input_section_" identifier . field_identifier) . field_identifier) = (pointer_expression "*(undefined8 *)(paVar15 + -3)" * (cast_expression "(undefined8 *)(paVar15 + -3)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar15 + -3)" ( (binary_expression "paVar15 + -3" identifier + number_literal) ))))) ;) (expression_statement "__tmp.input_section_.u1_ = *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar15 + -0x28);" (assignment_expression "__tmp.input_section_.u1_ = *(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar15 + -0x28)" (field_expression "__tmp.input_section_.u1_" (field_expression "__tmp.input_section_" identifier . field_identifier) . field_identifier) = (pointer_expression "*(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar15 + -0x28)" * (cast_expression "(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar15 + -0x28)" ( (type_descriptor "anon_union_8_2_227b06d7_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar15 + -0x28)" ( (binary_expression "(long)paVar15 + -0x28" (cast_expression "(long)paVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "__tmp.input_section_.u2_ = *(anon_union_8_4_139239c7_for_u2_ *)(paVar15 + -2);" (assignment_expression "__tmp.input_section_.u2_ = *(anon_union_8_4_139239c7_for_u2_ *)(paVar15 + -2)" (field_expression "__tmp.input_section_.u2_" (field_expression "__tmp.input_section_" identifier . field_identifier) . field_identifier) = (pointer_expression "*(anon_union_8_4_139239c7_for_u2_ *)(paVar15 + -2)" * (cast_expression "(anon_union_8_4_139239c7_for_u2_ *)(paVar15 + -2)" ( (type_descriptor "anon_union_8_4_139239c7_for_u2_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar15 + -2)" ( (binary_expression "paVar15 + -2" identifier + number_literal) ))))) ;) (expression_statement "__tmp.input_section_._24_8_ = *(undefined8 *)((long)paVar15 + -0x18);" (assignment_expression "__tmp.input_section_._24_8_ = *(undefined8 *)((long)paVar15 + -0x18)" (field_expression "__tmp.input_section_._24_8_" (field_expression "__tmp.input_section_" identifier . field_identifier) . field_identifier) = (pointer_expression "*(undefined8 *)((long)paVar15 + -0x18)" * (cast_expression "(undefined8 *)((long)paVar15 + -0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar15 + -0x18)" ( (binary_expression "(long)paVar15 + -0x18" (cast_expression "(long)paVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "__tmp.section_name_._M_dataplus._M_p = (((string *)(paVar15 + -1))->_M_dataplus)._M_p;" (assignment_expression "__tmp.section_name_._M_dataplus._M_p = (((string *)(paVar15 + -1))->_M_dataplus)._M_p" (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (field_expression "(((string *)(paVar15 + -1))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)(paVar15 + -1))->_M_dataplus)" ( (field_expression "((string *)(paVar15 + -1))->_M_dataplus" (parenthesized_expression "((string *)(paVar15 + -1))" ( (cast_expression "(string *)(paVar15 + -1)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar15 + -1)" ( (binary_expression "paVar15 + -1" identifier + number_literal) ))) )) -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)__tmp.section_name_._M_dataplus._M_p == paVar15) {\n            __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n            __tmp.section_name_.field_2._8_8_ = *(undefined8 *)((long)paVar15 + 8);\n            __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n          }\n          else {\n            __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n          }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)__tmp.section_name_._M_dataplus._M_p == paVar15)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)__tmp.section_name_._M_dataplus._M_p == paVar15)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n               *)__tmp.section_name_._M_dataplus._M_p == paVar15" (binary_expression "allocator<char>_>_9\n               *)__tmp.section_name_._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n               *)__tmp.section_name_._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier))) == identifier) )) )) (compound_statement "{\n            __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n            __tmp.section_name_.field_2._8_8_ = *(undefined8 *)((long)paVar15 + 8);\n            __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n          }" { (expression_statement "__tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;" (assignment_expression "__tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity" (field_expression "__tmp.section_name_.field_2._M_allocated_capacity" (field_expression "__tmp.section_name_.field_2" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (field_expression "paVar15->_M_allocated_capacity" identifier -> field_identifier)) ;) (expression_statement "__tmp.section_name_.field_2._8_8_ = *(undefined8 *)((long)paVar15 + 8);" (assignment_expression "__tmp.section_name_.field_2._8_8_ = *(undefined8 *)((long)paVar15 + 8)" (field_expression "__tmp.section_name_.field_2._8_8_" (field_expression "__tmp.section_name_.field_2" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (pointer_expression "*(undefined8 *)((long)paVar15 + 8)" * (cast_expression "(undefined8 *)((long)paVar15 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar15 + 8)" ( (binary_expression "(long)paVar15 + 8" (cast_expression "(long)paVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "__tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;" (assignment_expression "__tmp.section_name_._M_dataplus._M_p = (pointer)paVar16" (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar16" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) }) (else_clause "else {\n            __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n          }" else (compound_statement "{\n            __tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;\n          }" { (expression_statement "__tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity;" (assignment_expression "__tmp.section_name_.field_2._M_allocated_capacity = paVar15->_M_allocated_capacity" (field_expression "__tmp.section_name_.field_2._M_allocated_capacity" (field_expression "__tmp.section_name_.field_2" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (field_expression "paVar15->_M_allocated_capacity" identifier -> field_identifier)) ;) }))) (expression_statement "__tmp.section_name_._M_string_length = *(size_type *)((long)paVar15 + -8);" (assignment_expression "__tmp.section_name_._M_string_length = *(size_type *)((long)paVar15 + -8)" (field_expression "__tmp.section_name_._M_string_length" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) = (pointer_expression "*(size_type *)((long)paVar15 + -8)" * (cast_expression "(size_type *)((long)paVar15 + -8)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar15 + -8)" ( (binary_expression "(long)paVar15 + -8" (cast_expression "(long)paVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "paVar15->_M_local_buf[0] = '\0';" (assignment_expression "paVar15->_M_local_buf[0] = '\0'" (subscript_expression "paVar15->_M_local_buf[0]" (field_expression "paVar15->_M_local_buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "*(size_type *)((long)paVar15 + -8) = 0;" (assignment_expression "*(size_type *)((long)paVar15 + -8) = 0" (pointer_expression "*(size_type *)((long)paVar15 + -8)" * (cast_expression "(size_type *)((long)paVar15 + -8)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar15 + -8)" ( (binary_expression "(long)paVar15 + -8" (cast_expression "(long)paVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "sVar3 = *(size_type *)((long)paVar10 + -0x28);" (assignment_expression "sVar3 = *(size_type *)((long)paVar10 + -0x28)" identifier = (pointer_expression "*(size_type *)((long)paVar10 + -0x28)" * (cast_expression "(size_type *)((long)paVar10 + -0x28)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar10 + -0x28)" ( (binary_expression "(long)paVar10 + -0x28" (cast_expression "(long)paVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "__tmp.size_ = paVar15[1]._M_allocated_capacity;" (assignment_expression "__tmp.size_ = paVar15[1]._M_allocated_capacity" (field_expression "__tmp.size_" identifier . field_identifier) = (field_expression "paVar15[1]._M_allocated_capacity" (subscript_expression "paVar15[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "paVar15[-3]._M_allocated_capacity = paVar10[-3]._M_allocated_capacity;" (assignment_expression "paVar15[-3]._M_allocated_capacity = paVar10[-3]._M_allocated_capacity" (field_expression "paVar15[-3]._M_allocated_capacity" (subscript_expression "paVar15[-3]" identifier [ number_literal ]) . field_identifier) = (field_expression "paVar10[-3]._M_allocated_capacity" (subscript_expression "paVar10[-3]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "*(size_type *)((long)paVar15 + -0x28) = sVar3;" (assignment_expression "*(size_type *)((long)paVar15 + -0x28) = sVar3" (pointer_expression "*(size_type *)((long)paVar15 + -0x28)" * (cast_expression "(size_type *)((long)paVar15 + -0x28)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar15 + -0x28)" ( (binary_expression "(long)paVar15 + -0x28" (cast_expression "(long)paVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "__tmp.addralign_ = *(uint64_t *)((long)paVar15 + 0x18);" (assignment_expression "__tmp.addralign_ = *(uint64_t *)((long)paVar15 + 0x18)" (field_expression "__tmp.addralign_" identifier . field_identifier) = (pointer_expression "*(uint64_t *)((long)paVar15 + 0x18)" * (cast_expression "(uint64_t *)((long)paVar15 + 0x18)" ( (type_descriptor "uint64_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar15 + 0x18)" ( (binary_expression "(long)paVar15 + 0x18" (cast_expression "(long)paVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "(((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)paVar15;" (assignment_expression "(((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)paVar15" (field_expression "(((string *)(paVar15 + -1))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)(paVar15 + -1))->_M_dataplus)" ( (field_expression "((string *)(paVar15 + -1))->_M_dataplus" (parenthesized_expression "((string *)(paVar15 + -1))" ( (cast_expression "(string *)(paVar15 + -1)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar15 + -1)" ( (binary_expression "paVar15 + -1" identifier + number_literal) ))) )) -> field_identifier) )) . field_identifier) = (cast_expression "(pointer)paVar15" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "paVar15[-2]._M_allocated_capacity = paVar10[-2]._M_allocated_capacity;" (assignment_expression "paVar15[-2]._M_allocated_capacity = paVar10[-2]._M_allocated_capacity" (field_expression "paVar15[-2]._M_allocated_capacity" (subscript_expression "paVar15[-2]" identifier [ number_literal ]) . field_identifier) = (field_expression "paVar10[-2]._M_allocated_capacity" (subscript_expression "paVar10[-2]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "*(undefined4 *)((long)paVar15 + -0x18) = *(undefined4 *)((long)paVar10 + -0x18);" (assignment_expression "*(undefined4 *)((long)paVar15 + -0x18) = *(undefined4 *)((long)paVar10 + -0x18)" (pointer_expression "*(undefined4 *)((long)paVar15 + -0x18)" * (cast_expression "(undefined4 *)((long)paVar15 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar15 + -0x18)" ( (binary_expression "(long)paVar15 + -0x18" (cast_expression "(long)paVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((long)paVar10 + -0x18)" * (cast_expression "(undefined4 *)((long)paVar10 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar10 + -0x18)" ( (binary_expression "(long)paVar10 + -0x18" (cast_expression "(long)paVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;" (assignment_expression "psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p" identifier = (cast_expression "(size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(((string *)(paVar10 + -1))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)(paVar10 + -1))->_M_dataplus)" ( (field_expression "((string *)(paVar10 + -1))->_M_dataplus" (parenthesized_expression "((string *)(paVar10 + -1))" ( (cast_expression "(string *)(paVar10 + -1)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar10 + -1)" ( (binary_expression "paVar10 + -1" identifier + number_literal) ))) )) -> field_identifier) )) . field_identifier))) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)psVar14 == paVar10) {\n            sVar6 = *(size_type *)((long)paVar10 + -8);\n            if (sVar6 != 0) {\n              if (sVar6 == 1) {\n                paVar15->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                sVar6 = *(size_type *)((long)paVar10 + -8);\n              }\n              else {\n                memcpy(paVar15,paVar10,sVar6);\n                sVar6 = *(size_type *)((long)paVar10 + -8);\n              }\n            }\n            pcVar13 = (((string *)(paVar15 + -1))->_M_dataplus)._M_p;\n            *(size_t *)((long)paVar15 + -8) = sVar6;\n            pcVar13[sVar6] = '\0';\n          }\n          else {\n            (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)psVar14;\n            *(size_type *)((long)paVar15 + -8) = *(size_type *)((long)paVar10 + -8);\n            paVar15->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n            (((string *)(paVar10 + -1))->_M_dataplus)._M_p = (pointer)paVar10;\n          }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)psVar14 == paVar10)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)psVar14 == paVar10)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n               *)psVar14 == paVar10" (binary_expression "allocator<char>_>_9\n               *)psVar14" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n               *)psVar14" identifier * (ERROR ")" )) identifier)) == identifier) )) )) (compound_statement "{\n            sVar6 = *(size_type *)((long)paVar10 + -8);\n            if (sVar6 != 0) {\n              if (sVar6 == 1) {\n                paVar15->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                sVar6 = *(size_type *)((long)paVar10 + -8);\n              }\n              else {\n                memcpy(paVar15,paVar10,sVar6);\n                sVar6 = *(size_type *)((long)paVar10 + -8);\n              }\n            }\n            pcVar13 = (((string *)(paVar15 + -1))->_M_dataplus)._M_p;\n            *(size_t *)((long)paVar15 + -8) = sVar6;\n            pcVar13[sVar6] = '\0';\n          }" { (expression_statement "sVar6 = *(size_type *)((long)paVar10 + -8);" (assignment_expression "sVar6 = *(size_type *)((long)paVar10 + -8)" identifier = (pointer_expression "*(size_type *)((long)paVar10 + -8)" * (cast_expression "(size_type *)((long)paVar10 + -8)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar10 + -8)" ( (binary_expression "(long)paVar10 + -8" (cast_expression "(long)paVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (if_statement "if (sVar6 != 0) {\n              if (sVar6 == 1) {\n                paVar15->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                sVar6 = *(size_type *)((long)paVar10 + -8);\n              }\n              else {\n                memcpy(paVar15,paVar10,sVar6);\n                sVar6 = *(size_type *)((long)paVar10 + -8);\n              }\n            }" if (parenthesized_expression "(sVar6 != 0)" ( (binary_expression "sVar6 != 0" identifier != number_literal) )) (compound_statement "{\n              if (sVar6 == 1) {\n                paVar15->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                sVar6 = *(size_type *)((long)paVar10 + -8);\n              }\n              else {\n                memcpy(paVar15,paVar10,sVar6);\n                sVar6 = *(size_type *)((long)paVar10 + -8);\n              }\n            }" { (if_statement "if (sVar6 == 1) {\n                paVar15->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                sVar6 = *(size_type *)((long)paVar10 + -8);\n              }\n              else {\n                memcpy(paVar15,paVar10,sVar6);\n                sVar6 = *(size_type *)((long)paVar10 + -8);\n              }" if (parenthesized_expression "(sVar6 == 1)" ( (binary_expression "sVar6 == 1" identifier == number_literal) )) (compound_statement "{\n                paVar15->_M_local_buf[0] = paVar10->_M_local_buf[0];\n                sVar6 = *(size_type *)((long)paVar10 + -8);\n              }" { (expression_statement "paVar15->_M_local_buf[0] = paVar10->_M_local_buf[0];" (assignment_expression "paVar15->_M_local_buf[0] = paVar10->_M_local_buf[0]" (subscript_expression "paVar15->_M_local_buf[0]" (field_expression "paVar15->_M_local_buf" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "paVar10->_M_local_buf[0]" (field_expression "paVar10->_M_local_buf" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "sVar6 = *(size_type *)((long)paVar10 + -8);" (assignment_expression "sVar6 = *(size_type *)((long)paVar10 + -8)" identifier = (pointer_expression "*(size_type *)((long)paVar10 + -8)" * (cast_expression "(size_type *)((long)paVar10 + -8)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar10 + -8)" ( (binary_expression "(long)paVar10 + -8" (cast_expression "(long)paVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) }) (else_clause "else {\n                memcpy(paVar15,paVar10,sVar6);\n                sVar6 = *(size_type *)((long)paVar10 + -8);\n              }" else (compound_statement "{\n                memcpy(paVar15,paVar10,sVar6);\n                sVar6 = *(size_type *)((long)paVar10 + -8);\n              }" { (expression_statement "memcpy(paVar15,paVar10,sVar6);" (call_expression "memcpy(paVar15,paVar10,sVar6)" identifier (argument_list "(paVar15,paVar10,sVar6)" ( identifier , identifier , identifier ))) ;) (expression_statement "sVar6 = *(size_type *)((long)paVar10 + -8);" (assignment_expression "sVar6 = *(size_type *)((long)paVar10 + -8)" identifier = (pointer_expression "*(size_type *)((long)paVar10 + -8)" * (cast_expression "(size_type *)((long)paVar10 + -8)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar10 + -8)" ( (binary_expression "(long)paVar10 + -8" (cast_expression "(long)paVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) }))) })) (expression_statement "pcVar13 = (((string *)(paVar15 + -1))->_M_dataplus)._M_p;" (assignment_expression "pcVar13 = (((string *)(paVar15 + -1))->_M_dataplus)._M_p" identifier = (field_expression "(((string *)(paVar15 + -1))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)(paVar15 + -1))->_M_dataplus)" ( (field_expression "((string *)(paVar15 + -1))->_M_dataplus" (parenthesized_expression "((string *)(paVar15 + -1))" ( (cast_expression "(string *)(paVar15 + -1)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar15 + -1)" ( (binary_expression "paVar15 + -1" identifier + number_literal) ))) )) -> field_identifier) )) . field_identifier)) ;) (expression_statement "*(size_t *)((long)paVar15 + -8) = sVar6;" (assignment_expression "*(size_t *)((long)paVar15 + -8) = sVar6" (pointer_expression "*(size_t *)((long)paVar15 + -8)" * (cast_expression "(size_t *)((long)paVar15 + -8)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar15 + -8)" ( (binary_expression "(long)paVar15 + -8" (cast_expression "(long)paVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar13[sVar6] = '\0';" (assignment_expression "pcVar13[sVar6] = '\0'" (subscript_expression "pcVar13[sVar6]" identifier [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else {\n            (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)psVar14;\n            *(size_type *)((long)paVar15 + -8) = *(size_type *)((long)paVar10 + -8);\n            paVar15->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n            (((string *)(paVar10 + -1))->_M_dataplus)._M_p = (pointer)paVar10;\n          }" else (compound_statement "{\n            (((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)psVar14;\n            *(size_type *)((long)paVar15 + -8) = *(size_type *)((long)paVar10 + -8);\n            paVar15->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n            (((string *)(paVar10 + -1))->_M_dataplus)._M_p = (pointer)paVar10;\n          }" { (expression_statement "(((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)psVar14;" (assignment_expression "(((string *)(paVar15 + -1))->_M_dataplus)._M_p = (pointer)psVar14" (field_expression "(((string *)(paVar15 + -1))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)(paVar15 + -1))->_M_dataplus)" ( (field_expression "((string *)(paVar15 + -1))->_M_dataplus" (parenthesized_expression "((string *)(paVar15 + -1))" ( (cast_expression "(string *)(paVar15 + -1)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar15 + -1)" ( (binary_expression "paVar15 + -1" identifier + number_literal) ))) )) -> field_identifier) )) . field_identifier) = (cast_expression "(pointer)psVar14" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "*(size_type *)((long)paVar15 + -8) = *(size_type *)((long)paVar10 + -8);" (assignment_expression "*(size_type *)((long)paVar15 + -8) = *(size_type *)((long)paVar10 + -8)" (pointer_expression "*(size_type *)((long)paVar15 + -8)" * (cast_expression "(size_type *)((long)paVar15 + -8)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar15 + -8)" ( (binary_expression "(long)paVar15 + -8" (cast_expression "(long)paVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (pointer_expression "*(size_type *)((long)paVar10 + -8)" * (cast_expression "(size_type *)((long)paVar10 + -8)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar10 + -8)" ( (binary_expression "(long)paVar10 + -8" (cast_expression "(long)paVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "paVar15->_M_allocated_capacity = paVar10->_M_allocated_capacity;" (assignment_expression "paVar15->_M_allocated_capacity = paVar10->_M_allocated_capacity" (field_expression "paVar15->_M_allocated_capacity" identifier -> field_identifier) = (field_expression "paVar10->_M_allocated_capacity" identifier -> field_identifier)) ;) (expression_statement "(((string *)(paVar10 + -1))->_M_dataplus)._M_p = (pointer)paVar10;" (assignment_expression "(((string *)(paVar10 + -1))->_M_dataplus)._M_p = (pointer)paVar10" (field_expression "(((string *)(paVar10 + -1))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)(paVar10 + -1))->_M_dataplus)" ( (field_expression "((string *)(paVar10 + -1))->_M_dataplus" (parenthesized_expression "((string *)(paVar10 + -1))" ( (cast_expression "(string *)(paVar10 + -1)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar10 + -1)" ( (binary_expression "paVar10 + -1" identifier + number_literal) ))) )) -> field_identifier) )) . field_identifier) = (cast_expression "(pointer)paVar10" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) }))) (expression_statement "*(size_type *)((long)paVar10 + -8) = 0;" (assignment_expression "*(size_type *)((long)paVar10 + -8) = 0" (pointer_expression "*(size_type *)((long)paVar10 + -8)" * (cast_expression "(size_type *)((long)paVar10 + -8)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar10 + -8)" ( (binary_expression "(long)paVar10 + -8" (cast_expression "(long)paVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(((string *)(paVar10 + -1))->_M_dataplus)._M_p = '\0';" (assignment_expression "*(((string *)(paVar10 + -1))->_M_dataplus)._M_p = '\0'" (pointer_expression "*(((string *)(paVar10 + -1))->_M_dataplus)._M_p" * (field_expression "(((string *)(paVar10 + -1))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)(paVar10 + -1))->_M_dataplus)" ( (field_expression "((string *)(paVar10 + -1))->_M_dataplus" (parenthesized_expression "((string *)(paVar10 + -1))" ( (cast_expression "(string *)(paVar10 + -1)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar10 + -1)" ( (binary_expression "paVar10 + -1" identifier + number_literal) ))) )) -> field_identifier) )) . field_identifier)) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "paVar15[1]._M_allocated_capacity = paVar10[1]._M_allocated_capacity;" (assignment_expression "paVar15[1]._M_allocated_capacity = paVar10[1]._M_allocated_capacity" (field_expression "paVar15[1]._M_allocated_capacity" (subscript_expression "paVar15[1]" identifier [ number_literal ]) . field_identifier) = (field_expression "paVar10[1]._M_allocated_capacity" (subscript_expression "paVar10[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "*(size_type *)((long)paVar15 + 0x18) = *(size_type *)((long)paVar10 + 0x18);" (assignment_expression "*(size_type *)((long)paVar15 + 0x18) = *(size_type *)((long)paVar10 + 0x18)" (pointer_expression "*(size_type *)((long)paVar15 + 0x18)" * (cast_expression "(size_type *)((long)paVar15 + 0x18)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar15 + 0x18)" ( (binary_expression "(long)paVar15 + 0x18" (cast_expression "(long)paVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (pointer_expression "*(size_type *)((long)paVar10 + 0x18)" * (cast_expression "(size_type *)((long)paVar10 + 0x18)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar10 + 0x18)" ( (binary_expression "(long)paVar10 + 0x18" (cast_expression "(long)paVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;" (assignment_expression "psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p" identifier = (cast_expression "(size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(((string *)(paVar10 + -1))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)(paVar10 + -1))->_M_dataplus)" ( (field_expression "((string *)(paVar10 + -1))->_M_dataplus" (parenthesized_expression "((string *)(paVar10 + -1))" ( (cast_expression "(string *)(paVar10 + -1)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar10 + -1)" ( (binary_expression "paVar10 + -1" identifier + number_literal) ))) )) -> field_identifier) )) . field_identifier))) ;) (expression_statement "paVar10[-3]._M_allocated_capacity = __tmp.input_section_._0_8_;" (assignment_expression "paVar10[-3]._M_allocated_capacity = __tmp.input_section_._0_8_" (field_expression "paVar10[-3]._M_allocated_capacity" (subscript_expression "paVar10[-3]" identifier [ number_literal ]) . field_identifier) = (field_expression "__tmp.input_section_._0_8_" (field_expression "__tmp.input_section_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "*(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar10 + -0x28) = __tmp.input_section_.u1_;" (assignment_expression "*(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar10 + -0x28) = __tmp.input_section_.u1_" (pointer_expression "*(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar10 + -0x28)" * (cast_expression "(anon_union_8_2_227b06d7_for_u1_ *)((long)paVar10 + -0x28)" ( (type_descriptor "anon_union_8_2_227b06d7_for_u1_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar10 + -0x28)" ( (binary_expression "(long)paVar10 + -0x28" (cast_expression "(long)paVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (field_expression "__tmp.input_section_.u1_" (field_expression "__tmp.input_section_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "*(anon_union_8_4_139239c7_for_u2_ *)(paVar10 + -2) = __tmp.input_section_.u2_;" (assignment_expression "*(anon_union_8_4_139239c7_for_u2_ *)(paVar10 + -2) = __tmp.input_section_.u2_" (pointer_expression "*(anon_union_8_4_139239c7_for_u2_ *)(paVar10 + -2)" * (cast_expression "(anon_union_8_4_139239c7_for_u2_ *)(paVar10 + -2)" ( (type_descriptor "anon_union_8_4_139239c7_for_u2_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar10 + -2)" ( (binary_expression "paVar10 + -2" identifier + number_literal) )))) = (field_expression "__tmp.input_section_.u2_" (field_expression "__tmp.input_section_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "*(uint *)((long)paVar10 + -0x18) = __tmp.input_section_.section_order_index_;" (assignment_expression "*(uint *)((long)paVar10 + -0x18) = __tmp.input_section_.section_order_index_" (pointer_expression "*(uint *)((long)paVar10 + -0x18)" * (cast_expression "(uint *)((long)paVar10 + -0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar10 + -0x18)" ( (binary_expression "(long)paVar10 + -0x18" (cast_expression "(long)paVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (field_expression "__tmp.input_section_.section_order_index_" (field_expression "__tmp.input_section_" identifier . field_identifier) . field_identifier)) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)__tmp.section_name_._M_dataplus._M_p == paVar16) {\n            if (__tmp.section_name_._M_string_length != 0) {\n              if (__tmp.section_name_._M_string_length == 1) {\n                *(char *)psVar14 = __tmp.section_name_.field_2._M_local_buf[0];\n                psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n              }\n              else {\n                memcpy(psVar14,paVar16,__tmp.section_name_._M_string_length);\n                psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n              }\n            }\n            *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n            *(char *)((long)psVar14 + __tmp.section_name_._M_string_length) = '\0';\n            uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n          }\n          else {\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)psVar14 == paVar10) {\n              (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n              *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n              paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n            }\n            else {\n              uVar2 = paVar10->_M_allocated_capacity;\n              (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n              *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n              paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n              __tmp.section_name_._M_dataplus._M_p = (pointer)psVar14;\n              if (psVar14 != (size_type *)0x0) goto LAB_0025fc78;\n            }\n            __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n            uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n          }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)__tmp.section_name_._M_dataplus._M_p == paVar16)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)__tmp.section_name_._M_dataplus._M_p == paVar16)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n               *)__tmp.section_name_._M_dataplus._M_p == paVar16" (binary_expression "allocator<char>_>_9\n               *)__tmp.section_name_._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n               *)__tmp.section_name_._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier))) == identifier) )) )) (compound_statement "{\n            if (__tmp.section_name_._M_string_length != 0) {\n              if (__tmp.section_name_._M_string_length == 1) {\n                *(char *)psVar14 = __tmp.section_name_.field_2._M_local_buf[0];\n                psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n              }\n              else {\n                memcpy(psVar14,paVar16,__tmp.section_name_._M_string_length);\n                psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n              }\n            }\n            *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n            *(char *)((long)psVar14 + __tmp.section_name_._M_string_length) = '\0';\n            uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n          }" { (if_statement "if (__tmp.section_name_._M_string_length != 0) {\n              if (__tmp.section_name_._M_string_length == 1) {\n                *(char *)psVar14 = __tmp.section_name_.field_2._M_local_buf[0];\n                psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n              }\n              else {\n                memcpy(psVar14,paVar16,__tmp.section_name_._M_string_length);\n                psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n              }\n            }" if (parenthesized_expression "(__tmp.section_name_._M_string_length != 0)" ( (binary_expression "__tmp.section_name_._M_string_length != 0" (field_expression "__tmp.section_name_._M_string_length" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) != number_literal) )) (compound_statement "{\n              if (__tmp.section_name_._M_string_length == 1) {\n                *(char *)psVar14 = __tmp.section_name_.field_2._M_local_buf[0];\n                psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n              }\n              else {\n                memcpy(psVar14,paVar16,__tmp.section_name_._M_string_length);\n                psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n              }\n            }" { (if_statement "if (__tmp.section_name_._M_string_length == 1) {\n                *(char *)psVar14 = __tmp.section_name_.field_2._M_local_buf[0];\n                psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n              }\n              else {\n                memcpy(psVar14,paVar16,__tmp.section_name_._M_string_length);\n                psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n              }" if (parenthesized_expression "(__tmp.section_name_._M_string_length == 1)" ( (binary_expression "__tmp.section_name_._M_string_length == 1" (field_expression "__tmp.section_name_._M_string_length" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) == number_literal) )) (compound_statement "{\n                *(char *)psVar14 = __tmp.section_name_.field_2._M_local_buf[0];\n                psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n              }" { (expression_statement "*(char *)psVar14 = __tmp.section_name_.field_2._M_local_buf[0];" (assignment_expression "*(char *)psVar14 = __tmp.section_name_.field_2._M_local_buf[0]" (pointer_expression "*(char *)psVar14" * (cast_expression "(char *)psVar14" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (subscript_expression "__tmp.section_name_.field_2._M_local_buf[0]" (field_expression "__tmp.section_name_.field_2._M_local_buf" (field_expression "__tmp.section_name_.field_2" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) [ number_literal ])) ;) (expression_statement "psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;" (assignment_expression "psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p" identifier = (cast_expression "(size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(((string *)(paVar10 + -1))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)(paVar10 + -1))->_M_dataplus)" ( (field_expression "((string *)(paVar10 + -1))->_M_dataplus" (parenthesized_expression "((string *)(paVar10 + -1))" ( (cast_expression "(string *)(paVar10 + -1)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar10 + -1)" ( (binary_expression "paVar10 + -1" identifier + number_literal) ))) )) -> field_identifier) )) . field_identifier))) ;) }) (else_clause "else {\n                memcpy(psVar14,paVar16,__tmp.section_name_._M_string_length);\n                psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n              }" else (compound_statement "{\n                memcpy(psVar14,paVar16,__tmp.section_name_._M_string_length);\n                psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;\n              }" { (expression_statement "memcpy(psVar14,paVar16,__tmp.section_name_._M_string_length);" (call_expression "memcpy(psVar14,paVar16,__tmp.section_name_._M_string_length)" identifier (argument_list "(psVar14,paVar16,__tmp.section_name_._M_string_length)" ( identifier , identifier , (field_expression "__tmp.section_name_._M_string_length" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) ))) ;) (expression_statement "psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p;" (assignment_expression "psVar14 = (size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p" identifier = (cast_expression "(size_type *)(((string *)(paVar10 + -1))->_M_dataplus)._M_p" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(((string *)(paVar10 + -1))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)(paVar10 + -1))->_M_dataplus)" ( (field_expression "((string *)(paVar10 + -1))->_M_dataplus" (parenthesized_expression "((string *)(paVar10 + -1))" ( (cast_expression "(string *)(paVar10 + -1)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar10 + -1)" ( (binary_expression "paVar10 + -1" identifier + number_literal) ))) )) -> field_identifier) )) . field_identifier))) ;) }))) })) (expression_statement "*(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;" (assignment_expression "*(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length" (pointer_expression "*(size_type *)((long)paVar10 + -8)" * (cast_expression "(size_type *)((long)paVar10 + -8)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar10 + -8)" ( (binary_expression "(long)paVar10 + -8" (cast_expression "(long)paVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (field_expression "__tmp.section_name_._M_string_length" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "*(char *)((long)psVar14 + __tmp.section_name_._M_string_length) = '\0';" (assignment_expression "*(char *)((long)psVar14 + __tmp.section_name_._M_string_length) = '\0'" (pointer_expression "*(char *)((long)psVar14 + __tmp.section_name_._M_string_length)" * (cast_expression "(char *)((long)psVar14 + __tmp.section_name_._M_string_length)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)psVar14 + __tmp.section_name_._M_string_length)" ( (binary_expression "(long)psVar14 + __tmp.section_name_._M_string_length" (cast_expression "(long)psVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (field_expression "__tmp.section_name_._M_string_length" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier)) )))) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;" (assignment_expression "uVar2 = __tmp.section_name_.field_2._M_allocated_capacity" identifier = (field_expression "__tmp.section_name_.field_2._M_allocated_capacity" (field_expression "__tmp.section_name_.field_2" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier)) ;) }) (else_clause "else {\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)psVar14 == paVar10) {\n              (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n              *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n              paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n            }\n            else {\n              uVar2 = paVar10->_M_allocated_capacity;\n              (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n              *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n              paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n              __tmp.section_name_._M_dataplus._M_p = (pointer)psVar14;\n              if (psVar14 != (size_type *)0x0) goto LAB_0025fc78;\n            }\n            __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n            uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n          }" else (compound_statement "{\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)psVar14 == paVar10) {\n              (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n              *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n              paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n            }\n            else {\n              uVar2 = paVar10->_M_allocated_capacity;\n              (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n              *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n              paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n              __tmp.section_name_._M_dataplus._M_p = (pointer)psVar14;\n              if (psVar14 != (size_type *)0x0) goto LAB_0025fc78;\n            }\n            __tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;\n            uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;\n          }" { (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)psVar14 == paVar10) {\n              (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n              *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n              paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n            }\n            else {\n              uVar2 = paVar10->_M_allocated_capacity;\n              (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n              *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n              paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n              __tmp.section_name_._M_dataplus._M_p = (pointer)psVar14;\n              if (psVar14 != (size_type *)0x0) goto LAB_0025fc78;\n            }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)psVar14 == paVar10)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)psVar14 == paVar10)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n                 *)psVar14 == paVar10" (binary_expression "allocator<char>_>_9\n                 *)psVar14" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                 *)psVar14" identifier * (ERROR ")" )) identifier)) == identifier) )) )) (compound_statement "{\n              (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n              *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n              paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n            }" { (expression_statement "(((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;" (assignment_expression "(((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p" (field_expression "(((string *)(paVar10 + -1))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)(paVar10 + -1))->_M_dataplus)" ( (field_expression "((string *)(paVar10 + -1))->_M_dataplus" (parenthesized_expression "((string *)(paVar10 + -1))" ( (cast_expression "(string *)(paVar10 + -1)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar10 + -1)" ( (binary_expression "paVar10 + -1" identifier + number_literal) ))) )) -> field_identifier) )) . field_identifier) = (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "*(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;" (assignment_expression "*(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length" (pointer_expression "*(size_type *)((long)paVar10 + -8)" * (cast_expression "(size_type *)((long)paVar10 + -8)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar10 + -8)" ( (binary_expression "(long)paVar10 + -8" (cast_expression "(long)paVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (field_expression "__tmp.section_name_._M_string_length" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;" (assignment_expression "paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity" (field_expression "paVar10->_M_allocated_capacity" identifier -> field_identifier) = (field_expression "__tmp.section_name_.field_2._M_allocated_capacity" (field_expression "__tmp.section_name_.field_2" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier)) ;) }) (else_clause "else {\n              uVar2 = paVar10->_M_allocated_capacity;\n              (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n              *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n              paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n              __tmp.section_name_._M_dataplus._M_p = (pointer)psVar14;\n              if (psVar14 != (size_type *)0x0) goto LAB_0025fc78;\n            }" else (compound_statement "{\n              uVar2 = paVar10->_M_allocated_capacity;\n              (((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;\n              *(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;\n              paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;\n              __tmp.section_name_._M_dataplus._M_p = (pointer)psVar14;\n              if (psVar14 != (size_type *)0x0) goto LAB_0025fc78;\n            }" { (expression_statement "uVar2 = paVar10->_M_allocated_capacity;" (assignment_expression "uVar2 = paVar10->_M_allocated_capacity" identifier = (field_expression "paVar10->_M_allocated_capacity" identifier -> field_identifier)) ;) (expression_statement "(((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;" (assignment_expression "(((string *)(paVar10 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p" (field_expression "(((string *)(paVar10 + -1))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)(paVar10 + -1))->_M_dataplus)" ( (field_expression "((string *)(paVar10 + -1))->_M_dataplus" (parenthesized_expression "((string *)(paVar10 + -1))" ( (cast_expression "(string *)(paVar10 + -1)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar10 + -1)" ( (binary_expression "paVar10 + -1" identifier + number_literal) ))) )) -> field_identifier) )) . field_identifier) = (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "*(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length;" (assignment_expression "*(size_type *)((long)paVar10 + -8) = __tmp.section_name_._M_string_length" (pointer_expression "*(size_type *)((long)paVar10 + -8)" * (cast_expression "(size_type *)((long)paVar10 + -8)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar10 + -8)" ( (binary_expression "(long)paVar10 + -8" (cast_expression "(long)paVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (field_expression "__tmp.section_name_._M_string_length" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;" (assignment_expression "paVar10->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity" (field_expression "paVar10->_M_allocated_capacity" identifier -> field_identifier) = (field_expression "__tmp.section_name_.field_2._M_allocated_capacity" (field_expression "__tmp.section_name_.field_2" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "__tmp.section_name_._M_dataplus._M_p = (pointer)psVar14;" (assignment_expression "__tmp.section_name_._M_dataplus._M_p = (pointer)psVar14" (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(pointer)psVar14" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (if_statement "if (psVar14 != (size_type *)0x0) goto LAB_0025fc78;" if (parenthesized_expression "(psVar14 != (size_type *)0x0)" ( (binary_expression "psVar14 != (size_type *)0x0" identifier != (cast_expression "(size_type *)0x0" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0025fc78;" goto statement_identifier ;)) }))) (expression_statement "__tmp.section_name_._M_dataplus._M_p = (pointer)paVar16;" (assignment_expression "__tmp.section_name_._M_dataplus._M_p = (pointer)paVar16" (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar16" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;" (assignment_expression "uVar2 = __tmp.section_name_.field_2._M_allocated_capacity" identifier = (field_expression "__tmp.section_name_.field_2._M_allocated_capacity" (field_expression "__tmp.section_name_.field_2" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier)) ;) }))) (labeled_statement "LAB_0025fc78:\n          __tmp.section_name_.field_2._M_allocated_capacity = uVar2;" statement_identifier : (expression_statement "__tmp.section_name_.field_2._M_allocated_capacity = uVar2;" (assignment_expression "__tmp.section_name_.field_2._M_allocated_capacity = uVar2" (field_expression "__tmp.section_name_.field_2._M_allocated_capacity" (field_expression "__tmp.section_name_.field_2" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) = identifier) ;)) (expression_statement "__tmp.section_name_._M_string_length = 0;" (assignment_expression "__tmp.section_name_._M_string_length = 0" (field_expression "__tmp.section_name_._M_string_length" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "*__tmp.section_name_._M_dataplus._M_p = '\0';" (assignment_expression "*__tmp.section_name_._M_dataplus._M_p = '\0'" (pointer_expression "*__tmp.section_name_._M_dataplus._M_p" * (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier)) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "paVar10[1]._M_allocated_capacity = __tmp.size_;" (assignment_expression "paVar10[1]._M_allocated_capacity = __tmp.size_" (field_expression "paVar10[1]._M_allocated_capacity" (subscript_expression "paVar10[1]" identifier [ number_literal ]) . field_identifier) = (field_expression "__tmp.size_" identifier . field_identifier)) ;) (expression_statement "*(uint64_t *)((long)paVar10 + 0x18) = __tmp.addralign_;" (assignment_expression "*(uint64_t *)((long)paVar10 + 0x18) = __tmp.addralign_" (pointer_expression "*(uint64_t *)((long)paVar10 + 0x18)" * (cast_expression "(uint64_t *)((long)paVar10 + 0x18)" ( (type_descriptor "uint64_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar10 + 0x18)" ( (binary_expression "(long)paVar10 + 0x18" (cast_expression "(long)paVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (field_expression "__tmp.addralign_" identifier . field_identifier)) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)__tmp.section_name_._M_dataplus._M_p != paVar16) {\n            operator_delete(__tmp.section_name_._M_dataplus._M_p);\n          }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)__tmp.section_name_._M_dataplus._M_p != paVar16)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)__tmp.section_name_._M_dataplus._M_p != paVar16)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n               *)__tmp.section_name_._M_dataplus._M_p != paVar16" (binary_expression "allocator<char>_>_9\n               *)__tmp.section_name_._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n               *)__tmp.section_name_._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier))) != identifier) )) )) (compound_statement "{\n            operator_delete(__tmp.section_name_._M_dataplus._M_p);\n          }" { (expression_statement "operator_delete(__tmp.section_name_._M_dataplus._M_p);" (call_expression "operator_delete(__tmp.section_name_._M_dataplus._M_p)" identifier (argument_list "(__tmp.section_name_._M_dataplus._M_p)" ( (field_expression "__tmp.section_name_._M_dataplus._M_p" (field_expression "__tmp.section_name_._M_dataplus" (field_expression "__tmp.section_name_" identifier . field_identifier) . field_identifier) . field_identifier) ))) ;) })) (expression_statement "lVar8 = lVar8 + 1;" (assignment_expression "lVar8 = lVar8 + 1" identifier = (binary_expression "lVar8 + 1" identifier + number_literal)) ;) (expression_statement "paVar15 = paVar15 + -5;" (assignment_expression "paVar15 = paVar15 + -5" identifier = (binary_expression "paVar15 + -5" identifier + number_literal)) ;) (expression_statement "paVar10 = paVar10 + -5;" (assignment_expression "paVar10 = paVar10 + -5" identifier = (binary_expression "paVar10 + -5" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar8 != lVar9)" ( (binary_expression "lVar8 != lVar9" identifier != identifier) )) ;) (expression_statement "pIVar12 = pIVar12 + -lVar8;" (assignment_expression "pIVar12 = pIVar12 + -lVar8" identifier = (binary_expression "pIVar12 + -lVar8" identifier + (unary_expression "-lVar8" - identifier))) ;) })) (expression_statement "local_a0 = pIVar12;" (assignment_expression "local_a0 = pIVar12" identifier = identifier) ;) (expression_statement "lVar9 = local_a8 % lVar7;" (assignment_expression "lVar9 = local_a8 % lVar7" identifier = (binary_expression "local_a8 % lVar7" identifier % identifier)) ;) (if_statement "if (lVar9 == 0) {\n        return (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n                )pIVar1;\n      }" if (parenthesized_expression "(lVar9 == 0)" ( (binary_expression "lVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        return (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n                )pIVar1;\n      }" { (return_statement "return (__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n                )pIVar1;" return (parenthesized_expression "(__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::Input_section_info>_>_>\n                )pIVar1" ( (ERROR "__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std::allocator<gold::" (comma_expression "__normal_iterator<gold::Input_section_info*,_std::vector<gold::Input_section_info,_std" (binary_expression "__normal_iterator<gold::Input_section_info*,_std::vector<gold" (binary_expression "__normal_iterator<gold::Input_section_info*,_std" (binary_expression "__normal_iterator<gold" identifier < identifier) (ERROR "::Input_section_info" : : identifier) * (ERROR "," ,) identifier) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Input_section_info" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Input_section_info>_>_>\n                )pIVar1" (binary_expression "Input_section_info>_>_" (binary_expression "Input_section_info>_" identifier > identifier) > identifier) > (ERROR ")" )) identifier) )) ;) })) })) }) while (parenthesized_expression "( true )" ( true )) ;) }))
(translation_unit "long FUN_0025f7d0(long param_1,long param_2,long param_3)\n\n{\n  size_t sVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  undefined8 uVar6;\n  undefined8 *puVar7;\n  long lVar8;\n  size_t sVar9;\n  long lVar10;\n  long lVar11;\n  long lVar12;\n  undefined8 *puVar13;\n  long lVar14;\n  undefined8 *puVar15;\n  long local_a8;\n  long local_a0;\n  undefined4 uStack_70;\n  undefined8 *local_68;\n  undefined8 local_58;\n  undefined8 uStack_50;\n  undefined8 local_48;\n  undefined8 local_40;\n  \n  lVar8 = param_3;\n  if ((param_1 == param_2) || (lVar8 = param_1, param_3 == param_2)) {\n    return lVar8;\n  }\n  lVar10 = param_2 - param_1 >> 4;\n  local_a8 = (param_3 - param_1 >> 4) * -0x3333333333333333;\n  lVar11 = lVar10 * -0x3333333333333333;\n  lVar8 = param_1 + (param_3 - param_2);\n  if (local_a8 + lVar10 * 0x3333333333333333 == lVar11) {\n    puVar15 = (undefined8 *)(param_1 + 0x30);\n    puVar13 = (undefined8 *)(param_2 + 0x30);\n    do {\n      uVar2 = puVar15[-6];\n      uVar4 = puVar15[-5];\n      local_68 = (undefined8 *)puVar15[-2];\n      uVar5 = puVar15[-4];\n      uVar6 = puVar15[-3];\n      if (puVar15 == local_68) {\n        local_58 = *puVar15;\n        uStack_50 = puVar15[1];\n        local_68 = &local_58;\n      }\n      else {\n        local_58 = *puVar15;\n      }\n      sVar1 = puVar15[-1];\n      *(undefined1 *)puVar15 = 0;\n      puVar15[-1] = 0;\n      uVar3 = puVar13[-5];\n      local_48 = puVar15[2];\n      puVar15[-6] = puVar13[-6];\n      puVar15[-5] = uVar3;\n      local_40 = puVar15[3];\n      puVar15[-2] = puVar15;\n      puVar15[-4] = puVar13[-4];\n      *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n      puVar7 = (undefined8 *)puVar13[-2];\n      if (puVar13 == puVar7) {\n        sVar9 = puVar13[-1];\n        if (sVar9 != 0) {\n          if (sVar9 == 1) {\n            *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n            sVar9 = puVar13[-1];\n          }\n          else {\n            memcpy(puVar15,puVar13,sVar9);\n            sVar9 = puVar13[-1];\n          }\n        }\n        puVar15[-1] = sVar9;\n        *(undefined1 *)((long)puVar15 + sVar9) = 0;\n        puVar7 = (undefined8 *)puVar7[-2];\n      }\n      else {\n        puVar15[-2] = puVar7;\n        puVar15[-1] = puVar13[-1];\n        *puVar15 = *puVar13;\n        puVar13[-2] = puVar13;\n        puVar7 = puVar13;\n      }\n      puVar13[-1] = 0;\n      *(undefined1 *)puVar7 = 0;\n      puVar15[2] = puVar13[2];\n      puVar15[3] = puVar13[3];\n      puVar13[-6] = uVar2;\n      puVar13[-5] = uVar4;\n      puVar7 = (undefined8 *)puVar13[-2];\n      puVar13[-4] = uVar5;\n      uStack_70 = (undefined4)uVar6;\n      *(undefined4 *)(puVar13 + -3) = uStack_70;\n      if (local_68 == &local_58) {\n        if (sVar1 != 0) {\n          if (sVar1 == 1) {\n            *(undefined1 *)puVar7 = (undefined1)local_58;\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n          else {\n            memcpy(puVar7,&local_58,sVar1);\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n        }\n        puVar13[-1] = sVar1;\n        *(undefined1 *)((long)puVar7 + sVar1) = 0;\n      }\n      else if (puVar7 == puVar13) {\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n      }\n      else {\n        uVar2 = *puVar13;\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n        if (puVar7 != (undefined8 *)0x0) {\n          local_68 = puVar7;\n          local_58 = uVar2;\n        }\n      }\n      *(undefined1 *)local_68 = 0;\n      puVar13[2] = local_48;\n      puVar13[3] = local_40;\n      if (local_68 != &local_58) {\n        FUN_002dac60();\n      }\n      puVar13 = puVar13 + 10;\n      puVar15 = puVar15 + 10;\n    } while (puVar13 !=\n             (undefined8 *)(param_2 + 0x80 + ((param_2 + -0x50) - param_1 & 0xfffffffffffffff0U)));\n    return param_2;\n  }\n  lVar14 = local_a8 + lVar10 * 0x3333333333333333;\n  lVar12 = lVar11;\n  local_a0 = param_1;\n  if (lVar14 == lVar11 || SBORROW8(lVar14,lVar11) != lVar14 + lVar10 * 0x3333333333333333 < 0)\n  goto LAB_0025fb1a;\n  do {\n    if (0 < lVar14) {\n      lVar10 = 0;\n      puVar13 = (undefined8 *)(local_a0 + 0x30 + lVar11 * 0x50);\n      puVar15 = (undefined8 *)(local_a0 + 0x30);\n      do {\n        uVar2 = puVar15[-6];\n        uVar4 = puVar15[-5];\n        uVar5 = puVar15[-4];\n        uVar6 = puVar15[-3];\n        local_68 = (undefined8 *)puVar15[-2];\n        if (local_68 == puVar15) {\n          local_58 = *puVar15;\n          uStack_50 = puVar15[1];\n          local_68 = &local_58;\n        }\n        else {\n          local_58 = *puVar15;\n        }\n        sVar1 = puVar15[-1];\n        *(undefined1 *)puVar15 = 0;\n        puVar15[-1] = 0;\n        uVar3 = puVar13[-5];\n        local_48 = puVar15[2];\n        puVar15[-6] = puVar13[-6];\n        puVar15[-5] = uVar3;\n        local_40 = puVar15[3];\n        puVar15[-2] = puVar15;\n        puVar15[-4] = puVar13[-4];\n        *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n        if ((undefined8 *)puVar13[-2] == puVar13) {\n          sVar9 = puVar13[-1];\n          if (sVar9 != 0) {\n            if (sVar9 == 1) {\n              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n              sVar9 = puVar13[-1];\n            }\n            else {\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }\n          }\n          puVar15[-1] = sVar9;\n          *(undefined1 *)((long)puVar15 + sVar9) = 0;\n          puVar7 = (undefined8 *)puVar13[-2];\n        }\n        else {\n          puVar15[-2] = (undefined8 *)puVar13[-2];\n          puVar15[-1] = puVar13[-1];\n          *puVar15 = *puVar13;\n          puVar13[-2] = puVar13;\n          puVar7 = puVar13;\n        }\n        puVar13[-1] = 0;\n        *(undefined1 *)puVar7 = 0;\n        puVar15[2] = puVar13[2];\n        puVar15[3] = puVar13[3];\n        puVar13[-6] = uVar2;\n        puVar13[-5] = uVar4;\n        puVar7 = (undefined8 *)puVar13[-2];\n        puVar13[-4] = uVar5;\n        uStack_70 = (undefined4)uVar6;\n        *(undefined4 *)(puVar13 + -3) = uStack_70;\n        if (local_68 == &local_58) {\n          if (sVar1 != 0) {\n            if (sVar1 == 1) {\n              *(undefined1 *)puVar7 = (undefined1)local_58;\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n            else {\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n          }\n          puVar13[-1] = sVar1;\n          *(undefined1 *)((long)puVar7 + sVar1) = 0;\n          uVar2 = local_58;\n        }\n        else {\n          if (puVar7 == puVar13) {\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n          }\n          else {\n            uVar2 = *puVar13;\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n            local_68 = puVar7;\n            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;\n          }\n          local_68 = &local_58;\n          uVar2 = local_58;\n        }\nLAB_0025f996:\n        local_58 = uVar2;\n        *(undefined1 *)local_68 = 0;\n        puVar13[2] = local_48;\n        puVar13[3] = local_40;\n        if (local_68 != &local_58) {\n          FUN_002dac60();\n        }\n        lVar10 = lVar10 + 1;\n        puVar15 = puVar15 + 10;\n        puVar13 = puVar13 + 10;\n      } while (lVar14 != lVar10);\n      local_a0 = local_a0 + lVar14 * 0x50;\n    }\n    if (local_a8 % lVar11 == 0) {\n      return lVar8;\n    }\n    lVar12 = lVar11 - local_a8 % lVar11;\n    lVar10 = lVar11;\n    while (lVar14 = lVar10 - lVar12, lVar11 = lVar12, local_a8 = lVar10, lVar14 <= lVar12) {\nLAB_0025fb1a:\n      lVar10 = lVar14;\n      lVar11 = local_a8 * 0x50 + local_a0;\n      local_a0 = lVar11 + lVar10 * -0x50;\n      if (0 < lVar12) {\n        puVar15 = (undefined8 *)(local_a0 + -0x20);\n        puVar13 = (undefined8 *)(lVar11 + -0x20);\n        lVar11 = 0;\n        do {\n          uVar2 = puVar15[-6];\n          uVar4 = puVar15[-5];\n          uVar5 = puVar15[-4];\n          uVar6 = puVar15[-3];\n          local_68 = (undefined8 *)puVar15[-2];\n          if (local_68 == puVar15) {\n            local_58 = *puVar15;\n            uStack_50 = puVar15[1];\n            local_68 = &local_58;\n          }\n          else {\n            local_58 = *puVar15;\n          }\n          sVar1 = puVar15[-1];\n          *(undefined1 *)puVar15 = 0;\n          puVar15[-1] = 0;\n          uVar3 = puVar13[-5];\n          local_48 = puVar15[2];\n          puVar15[-6] = puVar13[-6];\n          puVar15[-5] = uVar3;\n          local_40 = puVar15[3];\n          puVar15[-2] = puVar15;\n          puVar15[-4] = puVar13[-4];\n          *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n          if ((undefined8 *)puVar13[-2] == puVar13) {\n            sVar9 = puVar13[-1];\n            if (sVar9 != 0) {\n              if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }\n            }\n            puVar15[-1] = sVar9;\n            *(undefined1 *)(puVar15[-2] + sVar9) = 0;\n          }\n          else {\n            puVar15[-2] = (undefined8 *)puVar13[-2];\n            puVar15[-1] = puVar13[-1];\n            *puVar15 = *puVar13;\n            puVar13[-2] = puVar13;\n          }\n          puVar13[-1] = 0;\n          *(undefined1 *)puVar13[-2] = 0;\n          puVar15[2] = puVar13[2];\n          puVar15[3] = puVar13[3];\n          puVar7 = (undefined8 *)puVar13[-2];\n          puVar13[-6] = uVar2;\n          puVar13[-5] = uVar4;\n          puVar13[-4] = uVar5;\n          uStack_70 = (undefined4)uVar6;\n          *(undefined4 *)(puVar13 + -3) = uStack_70;\n          if (local_68 == &local_58) {\n            if (sVar1 != 0) {\n              if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n            }\n            puVar13[-1] = sVar1;\n            *(undefined1 *)((long)puVar7 + sVar1) = 0;\n            uVar2 = local_58;\n          }\n          else {\n            if (puVar7 == puVar13) {\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }\n            else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }\n            local_68 = &local_58;\n            uVar2 = local_58;\n          }\nLAB_0025fc78:\n          local_58 = uVar2;\n          *(undefined1 *)local_68 = 0;\n          puVar13[2] = local_48;\n          puVar13[3] = local_40;\n          if (local_68 != &local_58) {\n            FUN_002dac60();\n          }\n          lVar11 = lVar11 + 1;\n          puVar15 = puVar15 + -10;\n          puVar13 = puVar13 + -10;\n        } while (lVar11 != lVar12);\n        local_a0 = local_a0 + lVar11 * -0x50;\n      }\n      lVar12 = local_a8 % lVar10;\n      if (lVar12 == 0) {\n        return lVar8;\n      }\n    }\n  } while( true );\n}\n\n" (function_definition "long FUN_0025f7d0(long param_1,long param_2,long param_3)\n\n{\n  size_t sVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  undefined8 uVar6;\n  undefined8 *puVar7;\n  long lVar8;\n  size_t sVar9;\n  long lVar10;\n  long lVar11;\n  long lVar12;\n  undefined8 *puVar13;\n  long lVar14;\n  undefined8 *puVar15;\n  long local_a8;\n  long local_a0;\n  undefined4 uStack_70;\n  undefined8 *local_68;\n  undefined8 local_58;\n  undefined8 uStack_50;\n  undefined8 local_48;\n  undefined8 local_40;\n  \n  lVar8 = param_3;\n  if ((param_1 == param_2) || (lVar8 = param_1, param_3 == param_2)) {\n    return lVar8;\n  }\n  lVar10 = param_2 - param_1 >> 4;\n  local_a8 = (param_3 - param_1 >> 4) * -0x3333333333333333;\n  lVar11 = lVar10 * -0x3333333333333333;\n  lVar8 = param_1 + (param_3 - param_2);\n  if (local_a8 + lVar10 * 0x3333333333333333 == lVar11) {\n    puVar15 = (undefined8 *)(param_1 + 0x30);\n    puVar13 = (undefined8 *)(param_2 + 0x30);\n    do {\n      uVar2 = puVar15[-6];\n      uVar4 = puVar15[-5];\n      local_68 = (undefined8 *)puVar15[-2];\n      uVar5 = puVar15[-4];\n      uVar6 = puVar15[-3];\n      if (puVar15 == local_68) {\n        local_58 = *puVar15;\n        uStack_50 = puVar15[1];\n        local_68 = &local_58;\n      }\n      else {\n        local_58 = *puVar15;\n      }\n      sVar1 = puVar15[-1];\n      *(undefined1 *)puVar15 = 0;\n      puVar15[-1] = 0;\n      uVar3 = puVar13[-5];\n      local_48 = puVar15[2];\n      puVar15[-6] = puVar13[-6];\n      puVar15[-5] = uVar3;\n      local_40 = puVar15[3];\n      puVar15[-2] = puVar15;\n      puVar15[-4] = puVar13[-4];\n      *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n      puVar7 = (undefined8 *)puVar13[-2];\n      if (puVar13 == puVar7) {\n        sVar9 = puVar13[-1];\n        if (sVar9 != 0) {\n          if (sVar9 == 1) {\n            *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n            sVar9 = puVar13[-1];\n          }\n          else {\n            memcpy(puVar15,puVar13,sVar9);\n            sVar9 = puVar13[-1];\n          }\n        }\n        puVar15[-1] = sVar9;\n        *(undefined1 *)((long)puVar15 + sVar9) = 0;\n        puVar7 = (undefined8 *)puVar7[-2];\n      }\n      else {\n        puVar15[-2] = puVar7;\n        puVar15[-1] = puVar13[-1];\n        *puVar15 = *puVar13;\n        puVar13[-2] = puVar13;\n        puVar7 = puVar13;\n      }\n      puVar13[-1] = 0;\n      *(undefined1 *)puVar7 = 0;\n      puVar15[2] = puVar13[2];\n      puVar15[3] = puVar13[3];\n      puVar13[-6] = uVar2;\n      puVar13[-5] = uVar4;\n      puVar7 = (undefined8 *)puVar13[-2];\n      puVar13[-4] = uVar5;\n      uStack_70 = (undefined4)uVar6;\n      *(undefined4 *)(puVar13 + -3) = uStack_70;\n      if (local_68 == &local_58) {\n        if (sVar1 != 0) {\n          if (sVar1 == 1) {\n            *(undefined1 *)puVar7 = (undefined1)local_58;\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n          else {\n            memcpy(puVar7,&local_58,sVar1);\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n        }\n        puVar13[-1] = sVar1;\n        *(undefined1 *)((long)puVar7 + sVar1) = 0;\n      }\n      else if (puVar7 == puVar13) {\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n      }\n      else {\n        uVar2 = *puVar13;\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n        if (puVar7 != (undefined8 *)0x0) {\n          local_68 = puVar7;\n          local_58 = uVar2;\n        }\n      }\n      *(undefined1 *)local_68 = 0;\n      puVar13[2] = local_48;\n      puVar13[3] = local_40;\n      if (local_68 != &local_58) {\n        FUN_002dac60();\n      }\n      puVar13 = puVar13 + 10;\n      puVar15 = puVar15 + 10;\n    } while (puVar13 !=\n             (undefined8 *)(param_2 + 0x80 + ((param_2 + -0x50) - param_1 & 0xfffffffffffffff0U)));\n    return param_2;\n  }\n  lVar14 = local_a8 + lVar10 * 0x3333333333333333;\n  lVar12 = lVar11;\n  local_a0 = param_1;\n  if (lVar14 == lVar11 || SBORROW8(lVar14,lVar11) != lVar14 + lVar10 * 0x3333333333333333 < 0)\n  goto LAB_0025fb1a;\n  do {\n    if (0 < lVar14) {\n      lVar10 = 0;\n      puVar13 = (undefined8 *)(local_a0 + 0x30 + lVar11 * 0x50);\n      puVar15 = (undefined8 *)(local_a0 + 0x30);\n      do {\n        uVar2 = puVar15[-6];\n        uVar4 = puVar15[-5];\n        uVar5 = puVar15[-4];\n        uVar6 = puVar15[-3];\n        local_68 = (undefined8 *)puVar15[-2];\n        if (local_68 == puVar15) {\n          local_58 = *puVar15;\n          uStack_50 = puVar15[1];\n          local_68 = &local_58;\n        }\n        else {\n          local_58 = *puVar15;\n        }\n        sVar1 = puVar15[-1];\n        *(undefined1 *)puVar15 = 0;\n        puVar15[-1] = 0;\n        uVar3 = puVar13[-5];\n        local_48 = puVar15[2];\n        puVar15[-6] = puVar13[-6];\n        puVar15[-5] = uVar3;\n        local_40 = puVar15[3];\n        puVar15[-2] = puVar15;\n        puVar15[-4] = puVar13[-4];\n        *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n        if ((undefined8 *)puVar13[-2] == puVar13) {\n          sVar9 = puVar13[-1];\n          if (sVar9 != 0) {\n            if (sVar9 == 1) {\n              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n              sVar9 = puVar13[-1];\n            }\n            else {\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }\n          }\n          puVar15[-1] = sVar9;\n          *(undefined1 *)((long)puVar15 + sVar9) = 0;\n          puVar7 = (undefined8 *)puVar13[-2];\n        }\n        else {\n          puVar15[-2] = (undefined8 *)puVar13[-2];\n          puVar15[-1] = puVar13[-1];\n          *puVar15 = *puVar13;\n          puVar13[-2] = puVar13;\n          puVar7 = puVar13;\n        }\n        puVar13[-1] = 0;\n        *(undefined1 *)puVar7 = 0;\n        puVar15[2] = puVar13[2];\n        puVar15[3] = puVar13[3];\n        puVar13[-6] = uVar2;\n        puVar13[-5] = uVar4;\n        puVar7 = (undefined8 *)puVar13[-2];\n        puVar13[-4] = uVar5;\n        uStack_70 = (undefined4)uVar6;\n        *(undefined4 *)(puVar13 + -3) = uStack_70;\n        if (local_68 == &local_58) {\n          if (sVar1 != 0) {\n            if (sVar1 == 1) {\n              *(undefined1 *)puVar7 = (undefined1)local_58;\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n            else {\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n          }\n          puVar13[-1] = sVar1;\n          *(undefined1 *)((long)puVar7 + sVar1) = 0;\n          uVar2 = local_58;\n        }\n        else {\n          if (puVar7 == puVar13) {\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n          }\n          else {\n            uVar2 = *puVar13;\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n            local_68 = puVar7;\n            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;\n          }\n          local_68 = &local_58;\n          uVar2 = local_58;\n        }\nLAB_0025f996:\n        local_58 = uVar2;\n        *(undefined1 *)local_68 = 0;\n        puVar13[2] = local_48;\n        puVar13[3] = local_40;\n        if (local_68 != &local_58) {\n          FUN_002dac60();\n        }\n        lVar10 = lVar10 + 1;\n        puVar15 = puVar15 + 10;\n        puVar13 = puVar13 + 10;\n      } while (lVar14 != lVar10);\n      local_a0 = local_a0 + lVar14 * 0x50;\n    }\n    if (local_a8 % lVar11 == 0) {\n      return lVar8;\n    }\n    lVar12 = lVar11 - local_a8 % lVar11;\n    lVar10 = lVar11;\n    while (lVar14 = lVar10 - lVar12, lVar11 = lVar12, local_a8 = lVar10, lVar14 <= lVar12) {\nLAB_0025fb1a:\n      lVar10 = lVar14;\n      lVar11 = local_a8 * 0x50 + local_a0;\n      local_a0 = lVar11 + lVar10 * -0x50;\n      if (0 < lVar12) {\n        puVar15 = (undefined8 *)(local_a0 + -0x20);\n        puVar13 = (undefined8 *)(lVar11 + -0x20);\n        lVar11 = 0;\n        do {\n          uVar2 = puVar15[-6];\n          uVar4 = puVar15[-5];\n          uVar5 = puVar15[-4];\n          uVar6 = puVar15[-3];\n          local_68 = (undefined8 *)puVar15[-2];\n          if (local_68 == puVar15) {\n            local_58 = *puVar15;\n            uStack_50 = puVar15[1];\n            local_68 = &local_58;\n          }\n          else {\n            local_58 = *puVar15;\n          }\n          sVar1 = puVar15[-1];\n          *(undefined1 *)puVar15 = 0;\n          puVar15[-1] = 0;\n          uVar3 = puVar13[-5];\n          local_48 = puVar15[2];\n          puVar15[-6] = puVar13[-6];\n          puVar15[-5] = uVar3;\n          local_40 = puVar15[3];\n          puVar15[-2] = puVar15;\n          puVar15[-4] = puVar13[-4];\n          *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n          if ((undefined8 *)puVar13[-2] == puVar13) {\n            sVar9 = puVar13[-1];\n            if (sVar9 != 0) {\n              if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }\n            }\n            puVar15[-1] = sVar9;\n            *(undefined1 *)(puVar15[-2] + sVar9) = 0;\n          }\n          else {\n            puVar15[-2] = (undefined8 *)puVar13[-2];\n            puVar15[-1] = puVar13[-1];\n            *puVar15 = *puVar13;\n            puVar13[-2] = puVar13;\n          }\n          puVar13[-1] = 0;\n          *(undefined1 *)puVar13[-2] = 0;\n          puVar15[2] = puVar13[2];\n          puVar15[3] = puVar13[3];\n          puVar7 = (undefined8 *)puVar13[-2];\n          puVar13[-6] = uVar2;\n          puVar13[-5] = uVar4;\n          puVar13[-4] = uVar5;\n          uStack_70 = (undefined4)uVar6;\n          *(undefined4 *)(puVar13 + -3) = uStack_70;\n          if (local_68 == &local_58) {\n            if (sVar1 != 0) {\n              if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n            }\n            puVar13[-1] = sVar1;\n            *(undefined1 *)((long)puVar7 + sVar1) = 0;\n            uVar2 = local_58;\n          }\n          else {\n            if (puVar7 == puVar13) {\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }\n            else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }\n            local_68 = &local_58;\n            uVar2 = local_58;\n          }\nLAB_0025fc78:\n          local_58 = uVar2;\n          *(undefined1 *)local_68 = 0;\n          puVar13[2] = local_48;\n          puVar13[3] = local_40;\n          if (local_68 != &local_58) {\n            FUN_002dac60();\n          }\n          lVar11 = lVar11 + 1;\n          puVar15 = puVar15 + -10;\n          puVar13 = puVar13 + -10;\n        } while (lVar11 != lVar12);\n        local_a0 = local_a0 + lVar11 * -0x50;\n      }\n      lVar12 = local_a8 % lVar10;\n      if (lVar12 == 0) {\n        return lVar8;\n      }\n    }\n  } while( true );\n}" (sized_type_specifier "long" long) (function_declarator "FUN_0025f7d0(long param_1,long param_2,long param_3)" identifier (parameter_list "(long param_1,long param_2,long param_3)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  size_t sVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  undefined8 uVar6;\n  undefined8 *puVar7;\n  long lVar8;\n  size_t sVar9;\n  long lVar10;\n  long lVar11;\n  long lVar12;\n  undefined8 *puVar13;\n  long lVar14;\n  undefined8 *puVar15;\n  long local_a8;\n  long local_a0;\n  undefined4 uStack_70;\n  undefined8 *local_68;\n  undefined8 local_58;\n  undefined8 uStack_50;\n  undefined8 local_48;\n  undefined8 local_40;\n  \n  lVar8 = param_3;\n  if ((param_1 == param_2) || (lVar8 = param_1, param_3 == param_2)) {\n    return lVar8;\n  }\n  lVar10 = param_2 - param_1 >> 4;\n  local_a8 = (param_3 - param_1 >> 4) * -0x3333333333333333;\n  lVar11 = lVar10 * -0x3333333333333333;\n  lVar8 = param_1 + (param_3 - param_2);\n  if (local_a8 + lVar10 * 0x3333333333333333 == lVar11) {\n    puVar15 = (undefined8 *)(param_1 + 0x30);\n    puVar13 = (undefined8 *)(param_2 + 0x30);\n    do {\n      uVar2 = puVar15[-6];\n      uVar4 = puVar15[-5];\n      local_68 = (undefined8 *)puVar15[-2];\n      uVar5 = puVar15[-4];\n      uVar6 = puVar15[-3];\n      if (puVar15 == local_68) {\n        local_58 = *puVar15;\n        uStack_50 = puVar15[1];\n        local_68 = &local_58;\n      }\n      else {\n        local_58 = *puVar15;\n      }\n      sVar1 = puVar15[-1];\n      *(undefined1 *)puVar15 = 0;\n      puVar15[-1] = 0;\n      uVar3 = puVar13[-5];\n      local_48 = puVar15[2];\n      puVar15[-6] = puVar13[-6];\n      puVar15[-5] = uVar3;\n      local_40 = puVar15[3];\n      puVar15[-2] = puVar15;\n      puVar15[-4] = puVar13[-4];\n      *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n      puVar7 = (undefined8 *)puVar13[-2];\n      if (puVar13 == puVar7) {\n        sVar9 = puVar13[-1];\n        if (sVar9 != 0) {\n          if (sVar9 == 1) {\n            *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n            sVar9 = puVar13[-1];\n          }\n          else {\n            memcpy(puVar15,puVar13,sVar9);\n            sVar9 = puVar13[-1];\n          }\n        }\n        puVar15[-1] = sVar9;\n        *(undefined1 *)((long)puVar15 + sVar9) = 0;\n        puVar7 = (undefined8 *)puVar7[-2];\n      }\n      else {\n        puVar15[-2] = puVar7;\n        puVar15[-1] = puVar13[-1];\n        *puVar15 = *puVar13;\n        puVar13[-2] = puVar13;\n        puVar7 = puVar13;\n      }\n      puVar13[-1] = 0;\n      *(undefined1 *)puVar7 = 0;\n      puVar15[2] = puVar13[2];\n      puVar15[3] = puVar13[3];\n      puVar13[-6] = uVar2;\n      puVar13[-5] = uVar4;\n      puVar7 = (undefined8 *)puVar13[-2];\n      puVar13[-4] = uVar5;\n      uStack_70 = (undefined4)uVar6;\n      *(undefined4 *)(puVar13 + -3) = uStack_70;\n      if (local_68 == &local_58) {\n        if (sVar1 != 0) {\n          if (sVar1 == 1) {\n            *(undefined1 *)puVar7 = (undefined1)local_58;\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n          else {\n            memcpy(puVar7,&local_58,sVar1);\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n        }\n        puVar13[-1] = sVar1;\n        *(undefined1 *)((long)puVar7 + sVar1) = 0;\n      }\n      else if (puVar7 == puVar13) {\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n      }\n      else {\n        uVar2 = *puVar13;\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n        if (puVar7 != (undefined8 *)0x0) {\n          local_68 = puVar7;\n          local_58 = uVar2;\n        }\n      }\n      *(undefined1 *)local_68 = 0;\n      puVar13[2] = local_48;\n      puVar13[3] = local_40;\n      if (local_68 != &local_58) {\n        FUN_002dac60();\n      }\n      puVar13 = puVar13 + 10;\n      puVar15 = puVar15 + 10;\n    } while (puVar13 !=\n             (undefined8 *)(param_2 + 0x80 + ((param_2 + -0x50) - param_1 & 0xfffffffffffffff0U)));\n    return param_2;\n  }\n  lVar14 = local_a8 + lVar10 * 0x3333333333333333;\n  lVar12 = lVar11;\n  local_a0 = param_1;\n  if (lVar14 == lVar11 || SBORROW8(lVar14,lVar11) != lVar14 + lVar10 * 0x3333333333333333 < 0)\n  goto LAB_0025fb1a;\n  do {\n    if (0 < lVar14) {\n      lVar10 = 0;\n      puVar13 = (undefined8 *)(local_a0 + 0x30 + lVar11 * 0x50);\n      puVar15 = (undefined8 *)(local_a0 + 0x30);\n      do {\n        uVar2 = puVar15[-6];\n        uVar4 = puVar15[-5];\n        uVar5 = puVar15[-4];\n        uVar6 = puVar15[-3];\n        local_68 = (undefined8 *)puVar15[-2];\n        if (local_68 == puVar15) {\n          local_58 = *puVar15;\n          uStack_50 = puVar15[1];\n          local_68 = &local_58;\n        }\n        else {\n          local_58 = *puVar15;\n        }\n        sVar1 = puVar15[-1];\n        *(undefined1 *)puVar15 = 0;\n        puVar15[-1] = 0;\n        uVar3 = puVar13[-5];\n        local_48 = puVar15[2];\n        puVar15[-6] = puVar13[-6];\n        puVar15[-5] = uVar3;\n        local_40 = puVar15[3];\n        puVar15[-2] = puVar15;\n        puVar15[-4] = puVar13[-4];\n        *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n        if ((undefined8 *)puVar13[-2] == puVar13) {\n          sVar9 = puVar13[-1];\n          if (sVar9 != 0) {\n            if (sVar9 == 1) {\n              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n              sVar9 = puVar13[-1];\n            }\n            else {\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }\n          }\n          puVar15[-1] = sVar9;\n          *(undefined1 *)((long)puVar15 + sVar9) = 0;\n          puVar7 = (undefined8 *)puVar13[-2];\n        }\n        else {\n          puVar15[-2] = (undefined8 *)puVar13[-2];\n          puVar15[-1] = puVar13[-1];\n          *puVar15 = *puVar13;\n          puVar13[-2] = puVar13;\n          puVar7 = puVar13;\n        }\n        puVar13[-1] = 0;\n        *(undefined1 *)puVar7 = 0;\n        puVar15[2] = puVar13[2];\n        puVar15[3] = puVar13[3];\n        puVar13[-6] = uVar2;\n        puVar13[-5] = uVar4;\n        puVar7 = (undefined8 *)puVar13[-2];\n        puVar13[-4] = uVar5;\n        uStack_70 = (undefined4)uVar6;\n        *(undefined4 *)(puVar13 + -3) = uStack_70;\n        if (local_68 == &local_58) {\n          if (sVar1 != 0) {\n            if (sVar1 == 1) {\n              *(undefined1 *)puVar7 = (undefined1)local_58;\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n            else {\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n          }\n          puVar13[-1] = sVar1;\n          *(undefined1 *)((long)puVar7 + sVar1) = 0;\n          uVar2 = local_58;\n        }\n        else {\n          if (puVar7 == puVar13) {\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n          }\n          else {\n            uVar2 = *puVar13;\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n            local_68 = puVar7;\n            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;\n          }\n          local_68 = &local_58;\n          uVar2 = local_58;\n        }\nLAB_0025f996:\n        local_58 = uVar2;\n        *(undefined1 *)local_68 = 0;\n        puVar13[2] = local_48;\n        puVar13[3] = local_40;\n        if (local_68 != &local_58) {\n          FUN_002dac60();\n        }\n        lVar10 = lVar10 + 1;\n        puVar15 = puVar15 + 10;\n        puVar13 = puVar13 + 10;\n      } while (lVar14 != lVar10);\n      local_a0 = local_a0 + lVar14 * 0x50;\n    }\n    if (local_a8 % lVar11 == 0) {\n      return lVar8;\n    }\n    lVar12 = lVar11 - local_a8 % lVar11;\n    lVar10 = lVar11;\n    while (lVar14 = lVar10 - lVar12, lVar11 = lVar12, local_a8 = lVar10, lVar14 <= lVar12) {\nLAB_0025fb1a:\n      lVar10 = lVar14;\n      lVar11 = local_a8 * 0x50 + local_a0;\n      local_a0 = lVar11 + lVar10 * -0x50;\n      if (0 < lVar12) {\n        puVar15 = (undefined8 *)(local_a0 + -0x20);\n        puVar13 = (undefined8 *)(lVar11 + -0x20);\n        lVar11 = 0;\n        do {\n          uVar2 = puVar15[-6];\n          uVar4 = puVar15[-5];\n          uVar5 = puVar15[-4];\n          uVar6 = puVar15[-3];\n          local_68 = (undefined8 *)puVar15[-2];\n          if (local_68 == puVar15) {\n            local_58 = *puVar15;\n            uStack_50 = puVar15[1];\n            local_68 = &local_58;\n          }\n          else {\n            local_58 = *puVar15;\n          }\n          sVar1 = puVar15[-1];\n          *(undefined1 *)puVar15 = 0;\n          puVar15[-1] = 0;\n          uVar3 = puVar13[-5];\n          local_48 = puVar15[2];\n          puVar15[-6] = puVar13[-6];\n          puVar15[-5] = uVar3;\n          local_40 = puVar15[3];\n          puVar15[-2] = puVar15;\n          puVar15[-4] = puVar13[-4];\n          *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n          if ((undefined8 *)puVar13[-2] == puVar13) {\n            sVar9 = puVar13[-1];\n            if (sVar9 != 0) {\n              if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }\n            }\n            puVar15[-1] = sVar9;\n            *(undefined1 *)(puVar15[-2] + sVar9) = 0;\n          }\n          else {\n            puVar15[-2] = (undefined8 *)puVar13[-2];\n            puVar15[-1] = puVar13[-1];\n            *puVar15 = *puVar13;\n            puVar13[-2] = puVar13;\n          }\n          puVar13[-1] = 0;\n          *(undefined1 *)puVar13[-2] = 0;\n          puVar15[2] = puVar13[2];\n          puVar15[3] = puVar13[3];\n          puVar7 = (undefined8 *)puVar13[-2];\n          puVar13[-6] = uVar2;\n          puVar13[-5] = uVar4;\n          puVar13[-4] = uVar5;\n          uStack_70 = (undefined4)uVar6;\n          *(undefined4 *)(puVar13 + -3) = uStack_70;\n          if (local_68 == &local_58) {\n            if (sVar1 != 0) {\n              if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n            }\n            puVar13[-1] = sVar1;\n            *(undefined1 *)((long)puVar7 + sVar1) = 0;\n            uVar2 = local_58;\n          }\n          else {\n            if (puVar7 == puVar13) {\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }\n            else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }\n            local_68 = &local_58;\n            uVar2 = local_58;\n          }\nLAB_0025fc78:\n          local_58 = uVar2;\n          *(undefined1 *)local_68 = 0;\n          puVar13[2] = local_48;\n          puVar13[3] = local_40;\n          if (local_68 != &local_58) {\n            FUN_002dac60();\n          }\n          lVar11 = lVar11 + 1;\n          puVar15 = puVar15 + -10;\n          puVar13 = puVar13 + -10;\n        } while (lVar11 != lVar12);\n        local_a0 = local_a0 + lVar11 * -0x50;\n      }\n      lVar12 = local_a8 % lVar10;\n      if (lVar12 == 0) {\n        return lVar8;\n      }\n    }\n  } while( true );\n}" { (declaration "size_t sVar1;" primitive_type identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "undefined8 uVar6;" type_identifier identifier ;) (declaration "undefined8 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "size_t sVar9;" primitive_type identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "long lVar14;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "long local_a8;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_a0;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined4 uStack_70;" type_identifier identifier ;) (declaration "undefined8 *local_68;" type_identifier (pointer_declarator "*local_68" * identifier) ;) (declaration "undefined8 local_58;" type_identifier identifier ;) (declaration "undefined8 uStack_50;" type_identifier identifier ;) (declaration "undefined8 local_48;" type_identifier identifier ;) (declaration "undefined8 local_40;" type_identifier identifier ;) (expression_statement "lVar8 = param_3;" (assignment_expression "lVar8 = param_3" identifier = identifier) ;) (if_statement "if ((param_1 == param_2) || (lVar8 = param_1, param_3 == param_2)) {\n    return lVar8;\n  }" if (parenthesized_expression "((param_1 == param_2) || (lVar8 = param_1, param_3 == param_2))" ( (binary_expression "(param_1 == param_2) || (lVar8 = param_1, param_3 == param_2)" (parenthesized_expression "(param_1 == param_2)" ( (binary_expression "param_1 == param_2" identifier == identifier) )) || (parenthesized_expression "(lVar8 = param_1, param_3 == param_2)" ( (comma_expression "lVar8 = param_1, param_3 == param_2" (assignment_expression "lVar8 = param_1" identifier = identifier) , (binary_expression "param_3 == param_2" identifier == identifier)) ))) )) (compound_statement "{\n    return lVar8;\n  }" { (return_statement "return lVar8;" return identifier ;) })) (expression_statement "lVar10 = param_2 - param_1 >> 4;" (assignment_expression "lVar10 = param_2 - param_1 >> 4" identifier = (binary_expression "param_2 - param_1 >> 4" (binary_expression "param_2 - param_1" identifier - identifier) >> number_literal)) ;) (expression_statement "local_a8 = (param_3 - param_1 >> 4) * -0x3333333333333333;" (assignment_expression "local_a8 = (param_3 - param_1 >> 4) * -0x3333333333333333" identifier = (binary_expression "(param_3 - param_1 >> 4) * -0x3333333333333333" (parenthesized_expression "(param_3 - param_1 >> 4)" ( (binary_expression "param_3 - param_1 >> 4" (binary_expression "param_3 - param_1" identifier - identifier) >> number_literal) )) * number_literal)) ;) (expression_statement "lVar11 = lVar10 * -0x3333333333333333;" (assignment_expression "lVar11 = lVar10 * -0x3333333333333333" identifier = (binary_expression "lVar10 * -0x3333333333333333" identifier * number_literal)) ;) (expression_statement "lVar8 = param_1 + (param_3 - param_2);" (assignment_expression "lVar8 = param_1 + (param_3 - param_2)" identifier = (binary_expression "param_1 + (param_3 - param_2)" identifier + (parenthesized_expression "(param_3 - param_2)" ( (binary_expression "param_3 - param_2" identifier - identifier) )))) ;) (if_statement "if (local_a8 + lVar10 * 0x3333333333333333 == lVar11) {\n    puVar15 = (undefined8 *)(param_1 + 0x30);\n    puVar13 = (undefined8 *)(param_2 + 0x30);\n    do {\n      uVar2 = puVar15[-6];\n      uVar4 = puVar15[-5];\n      local_68 = (undefined8 *)puVar15[-2];\n      uVar5 = puVar15[-4];\n      uVar6 = puVar15[-3];\n      if (puVar15 == local_68) {\n        local_58 = *puVar15;\n        uStack_50 = puVar15[1];\n        local_68 = &local_58;\n      }\n      else {\n        local_58 = *puVar15;\n      }\n      sVar1 = puVar15[-1];\n      *(undefined1 *)puVar15 = 0;\n      puVar15[-1] = 0;\n      uVar3 = puVar13[-5];\n      local_48 = puVar15[2];\n      puVar15[-6] = puVar13[-6];\n      puVar15[-5] = uVar3;\n      local_40 = puVar15[3];\n      puVar15[-2] = puVar15;\n      puVar15[-4] = puVar13[-4];\n      *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n      puVar7 = (undefined8 *)puVar13[-2];\n      if (puVar13 == puVar7) {\n        sVar9 = puVar13[-1];\n        if (sVar9 != 0) {\n          if (sVar9 == 1) {\n            *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n            sVar9 = puVar13[-1];\n          }\n          else {\n            memcpy(puVar15,puVar13,sVar9);\n            sVar9 = puVar13[-1];\n          }\n        }\n        puVar15[-1] = sVar9;\n        *(undefined1 *)((long)puVar15 + sVar9) = 0;\n        puVar7 = (undefined8 *)puVar7[-2];\n      }\n      else {\n        puVar15[-2] = puVar7;\n        puVar15[-1] = puVar13[-1];\n        *puVar15 = *puVar13;\n        puVar13[-2] = puVar13;\n        puVar7 = puVar13;\n      }\n      puVar13[-1] = 0;\n      *(undefined1 *)puVar7 = 0;\n      puVar15[2] = puVar13[2];\n      puVar15[3] = puVar13[3];\n      puVar13[-6] = uVar2;\n      puVar13[-5] = uVar4;\n      puVar7 = (undefined8 *)puVar13[-2];\n      puVar13[-4] = uVar5;\n      uStack_70 = (undefined4)uVar6;\n      *(undefined4 *)(puVar13 + -3) = uStack_70;\n      if (local_68 == &local_58) {\n        if (sVar1 != 0) {\n          if (sVar1 == 1) {\n            *(undefined1 *)puVar7 = (undefined1)local_58;\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n          else {\n            memcpy(puVar7,&local_58,sVar1);\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n        }\n        puVar13[-1] = sVar1;\n        *(undefined1 *)((long)puVar7 + sVar1) = 0;\n      }\n      else if (puVar7 == puVar13) {\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n      }\n      else {\n        uVar2 = *puVar13;\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n        if (puVar7 != (undefined8 *)0x0) {\n          local_68 = puVar7;\n          local_58 = uVar2;\n        }\n      }\n      *(undefined1 *)local_68 = 0;\n      puVar13[2] = local_48;\n      puVar13[3] = local_40;\n      if (local_68 != &local_58) {\n        FUN_002dac60();\n      }\n      puVar13 = puVar13 + 10;\n      puVar15 = puVar15 + 10;\n    } while (puVar13 !=\n             (undefined8 *)(param_2 + 0x80 + ((param_2 + -0x50) - param_1 & 0xfffffffffffffff0U)));\n    return param_2;\n  }" if (parenthesized_expression "(local_a8 + lVar10 * 0x3333333333333333 == lVar11)" ( (binary_expression "local_a8 + lVar10 * 0x3333333333333333 == lVar11" (binary_expression "local_a8 + lVar10 * 0x3333333333333333" identifier + (binary_expression "lVar10 * 0x3333333333333333" identifier * number_literal)) == identifier) )) (compound_statement "{\n    puVar15 = (undefined8 *)(param_1 + 0x30);\n    puVar13 = (undefined8 *)(param_2 + 0x30);\n    do {\n      uVar2 = puVar15[-6];\n      uVar4 = puVar15[-5];\n      local_68 = (undefined8 *)puVar15[-2];\n      uVar5 = puVar15[-4];\n      uVar6 = puVar15[-3];\n      if (puVar15 == local_68) {\n        local_58 = *puVar15;\n        uStack_50 = puVar15[1];\n        local_68 = &local_58;\n      }\n      else {\n        local_58 = *puVar15;\n      }\n      sVar1 = puVar15[-1];\n      *(undefined1 *)puVar15 = 0;\n      puVar15[-1] = 0;\n      uVar3 = puVar13[-5];\n      local_48 = puVar15[2];\n      puVar15[-6] = puVar13[-6];\n      puVar15[-5] = uVar3;\n      local_40 = puVar15[3];\n      puVar15[-2] = puVar15;\n      puVar15[-4] = puVar13[-4];\n      *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n      puVar7 = (undefined8 *)puVar13[-2];\n      if (puVar13 == puVar7) {\n        sVar9 = puVar13[-1];\n        if (sVar9 != 0) {\n          if (sVar9 == 1) {\n            *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n            sVar9 = puVar13[-1];\n          }\n          else {\n            memcpy(puVar15,puVar13,sVar9);\n            sVar9 = puVar13[-1];\n          }\n        }\n        puVar15[-1] = sVar9;\n        *(undefined1 *)((long)puVar15 + sVar9) = 0;\n        puVar7 = (undefined8 *)puVar7[-2];\n      }\n      else {\n        puVar15[-2] = puVar7;\n        puVar15[-1] = puVar13[-1];\n        *puVar15 = *puVar13;\n        puVar13[-2] = puVar13;\n        puVar7 = puVar13;\n      }\n      puVar13[-1] = 0;\n      *(undefined1 *)puVar7 = 0;\n      puVar15[2] = puVar13[2];\n      puVar15[3] = puVar13[3];\n      puVar13[-6] = uVar2;\n      puVar13[-5] = uVar4;\n      puVar7 = (undefined8 *)puVar13[-2];\n      puVar13[-4] = uVar5;\n      uStack_70 = (undefined4)uVar6;\n      *(undefined4 *)(puVar13 + -3) = uStack_70;\n      if (local_68 == &local_58) {\n        if (sVar1 != 0) {\n          if (sVar1 == 1) {\n            *(undefined1 *)puVar7 = (undefined1)local_58;\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n          else {\n            memcpy(puVar7,&local_58,sVar1);\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n        }\n        puVar13[-1] = sVar1;\n        *(undefined1 *)((long)puVar7 + sVar1) = 0;\n      }\n      else if (puVar7 == puVar13) {\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n      }\n      else {\n        uVar2 = *puVar13;\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n        if (puVar7 != (undefined8 *)0x0) {\n          local_68 = puVar7;\n          local_58 = uVar2;\n        }\n      }\n      *(undefined1 *)local_68 = 0;\n      puVar13[2] = local_48;\n      puVar13[3] = local_40;\n      if (local_68 != &local_58) {\n        FUN_002dac60();\n      }\n      puVar13 = puVar13 + 10;\n      puVar15 = puVar15 + 10;\n    } while (puVar13 !=\n             (undefined8 *)(param_2 + 0x80 + ((param_2 + -0x50) - param_1 & 0xfffffffffffffff0U)));\n    return param_2;\n  }" { (expression_statement "puVar15 = (undefined8 *)(param_1 + 0x30);" (assignment_expression "puVar15 = (undefined8 *)(param_1 + 0x30)" identifier = (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) )))) ;) (expression_statement "puVar13 = (undefined8 *)(param_2 + 0x30);" (assignment_expression "puVar13 = (undefined8 *)(param_2 + 0x30)" identifier = (cast_expression "(undefined8 *)(param_2 + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) )))) ;) (do_statement "do {\n      uVar2 = puVar15[-6];\n      uVar4 = puVar15[-5];\n      local_68 = (undefined8 *)puVar15[-2];\n      uVar5 = puVar15[-4];\n      uVar6 = puVar15[-3];\n      if (puVar15 == local_68) {\n        local_58 = *puVar15;\n        uStack_50 = puVar15[1];\n        local_68 = &local_58;\n      }\n      else {\n        local_58 = *puVar15;\n      }\n      sVar1 = puVar15[-1];\n      *(undefined1 *)puVar15 = 0;\n      puVar15[-1] = 0;\n      uVar3 = puVar13[-5];\n      local_48 = puVar15[2];\n      puVar15[-6] = puVar13[-6];\n      puVar15[-5] = uVar3;\n      local_40 = puVar15[3];\n      puVar15[-2] = puVar15;\n      puVar15[-4] = puVar13[-4];\n      *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n      puVar7 = (undefined8 *)puVar13[-2];\n      if (puVar13 == puVar7) {\n        sVar9 = puVar13[-1];\n        if (sVar9 != 0) {\n          if (sVar9 == 1) {\n            *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n            sVar9 = puVar13[-1];\n          }\n          else {\n            memcpy(puVar15,puVar13,sVar9);\n            sVar9 = puVar13[-1];\n          }\n        }\n        puVar15[-1] = sVar9;\n        *(undefined1 *)((long)puVar15 + sVar9) = 0;\n        puVar7 = (undefined8 *)puVar7[-2];\n      }\n      else {\n        puVar15[-2] = puVar7;\n        puVar15[-1] = puVar13[-1];\n        *puVar15 = *puVar13;\n        puVar13[-2] = puVar13;\n        puVar7 = puVar13;\n      }\n      puVar13[-1] = 0;\n      *(undefined1 *)puVar7 = 0;\n      puVar15[2] = puVar13[2];\n      puVar15[3] = puVar13[3];\n      puVar13[-6] = uVar2;\n      puVar13[-5] = uVar4;\n      puVar7 = (undefined8 *)puVar13[-2];\n      puVar13[-4] = uVar5;\n      uStack_70 = (undefined4)uVar6;\n      *(undefined4 *)(puVar13 + -3) = uStack_70;\n      if (local_68 == &local_58) {\n        if (sVar1 != 0) {\n          if (sVar1 == 1) {\n            *(undefined1 *)puVar7 = (undefined1)local_58;\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n          else {\n            memcpy(puVar7,&local_58,sVar1);\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n        }\n        puVar13[-1] = sVar1;\n        *(undefined1 *)((long)puVar7 + sVar1) = 0;\n      }\n      else if (puVar7 == puVar13) {\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n      }\n      else {\n        uVar2 = *puVar13;\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n        if (puVar7 != (undefined8 *)0x0) {\n          local_68 = puVar7;\n          local_58 = uVar2;\n        }\n      }\n      *(undefined1 *)local_68 = 0;\n      puVar13[2] = local_48;\n      puVar13[3] = local_40;\n      if (local_68 != &local_58) {\n        FUN_002dac60();\n      }\n      puVar13 = puVar13 + 10;\n      puVar15 = puVar15 + 10;\n    } while (puVar13 !=\n             (undefined8 *)(param_2 + 0x80 + ((param_2 + -0x50) - param_1 & 0xfffffffffffffff0U)));" do (compound_statement "{\n      uVar2 = puVar15[-6];\n      uVar4 = puVar15[-5];\n      local_68 = (undefined8 *)puVar15[-2];\n      uVar5 = puVar15[-4];\n      uVar6 = puVar15[-3];\n      if (puVar15 == local_68) {\n        local_58 = *puVar15;\n        uStack_50 = puVar15[1];\n        local_68 = &local_58;\n      }\n      else {\n        local_58 = *puVar15;\n      }\n      sVar1 = puVar15[-1];\n      *(undefined1 *)puVar15 = 0;\n      puVar15[-1] = 0;\n      uVar3 = puVar13[-5];\n      local_48 = puVar15[2];\n      puVar15[-6] = puVar13[-6];\n      puVar15[-5] = uVar3;\n      local_40 = puVar15[3];\n      puVar15[-2] = puVar15;\n      puVar15[-4] = puVar13[-4];\n      *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n      puVar7 = (undefined8 *)puVar13[-2];\n      if (puVar13 == puVar7) {\n        sVar9 = puVar13[-1];\n        if (sVar9 != 0) {\n          if (sVar9 == 1) {\n            *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n            sVar9 = puVar13[-1];\n          }\n          else {\n            memcpy(puVar15,puVar13,sVar9);\n            sVar9 = puVar13[-1];\n          }\n        }\n        puVar15[-1] = sVar9;\n        *(undefined1 *)((long)puVar15 + sVar9) = 0;\n        puVar7 = (undefined8 *)puVar7[-2];\n      }\n      else {\n        puVar15[-2] = puVar7;\n        puVar15[-1] = puVar13[-1];\n        *puVar15 = *puVar13;\n        puVar13[-2] = puVar13;\n        puVar7 = puVar13;\n      }\n      puVar13[-1] = 0;\n      *(undefined1 *)puVar7 = 0;\n      puVar15[2] = puVar13[2];\n      puVar15[3] = puVar13[3];\n      puVar13[-6] = uVar2;\n      puVar13[-5] = uVar4;\n      puVar7 = (undefined8 *)puVar13[-2];\n      puVar13[-4] = uVar5;\n      uStack_70 = (undefined4)uVar6;\n      *(undefined4 *)(puVar13 + -3) = uStack_70;\n      if (local_68 == &local_58) {\n        if (sVar1 != 0) {\n          if (sVar1 == 1) {\n            *(undefined1 *)puVar7 = (undefined1)local_58;\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n          else {\n            memcpy(puVar7,&local_58,sVar1);\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n        }\n        puVar13[-1] = sVar1;\n        *(undefined1 *)((long)puVar7 + sVar1) = 0;\n      }\n      else if (puVar7 == puVar13) {\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n      }\n      else {\n        uVar2 = *puVar13;\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n        if (puVar7 != (undefined8 *)0x0) {\n          local_68 = puVar7;\n          local_58 = uVar2;\n        }\n      }\n      *(undefined1 *)local_68 = 0;\n      puVar13[2] = local_48;\n      puVar13[3] = local_40;\n      if (local_68 != &local_58) {\n        FUN_002dac60();\n      }\n      puVar13 = puVar13 + 10;\n      puVar15 = puVar15 + 10;\n    }" { (expression_statement "uVar2 = puVar15[-6];" (assignment_expression "uVar2 = puVar15[-6]" identifier = (subscript_expression "puVar15[-6]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = puVar15[-5];" (assignment_expression "uVar4 = puVar15[-5]" identifier = (subscript_expression "puVar15[-5]" identifier [ number_literal ])) ;) (expression_statement "local_68 = (undefined8 *)puVar15[-2];" (assignment_expression "local_68 = (undefined8 *)puVar15[-2]" identifier = (cast_expression "(undefined8 *)puVar15[-2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar15[-2]" identifier [ number_literal ]))) ;) (expression_statement "uVar5 = puVar15[-4];" (assignment_expression "uVar5 = puVar15[-4]" identifier = (subscript_expression "puVar15[-4]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = puVar15[-3];" (assignment_expression "uVar6 = puVar15[-3]" identifier = (subscript_expression "puVar15[-3]" identifier [ number_literal ])) ;) (if_statement "if (puVar15 == local_68) {\n        local_58 = *puVar15;\n        uStack_50 = puVar15[1];\n        local_68 = &local_58;\n      }\n      else {\n        local_58 = *puVar15;\n      }" if (parenthesized_expression "(puVar15 == local_68)" ( (binary_expression "puVar15 == local_68" identifier == identifier) )) (compound_statement "{\n        local_58 = *puVar15;\n        uStack_50 = puVar15[1];\n        local_68 = &local_58;\n      }" { (expression_statement "local_58 = *puVar15;" (assignment_expression "local_58 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;) (expression_statement "uStack_50 = puVar15[1];" (assignment_expression "uStack_50 = puVar15[1]" identifier = (subscript_expression "puVar15[1]" identifier [ number_literal ])) ;) (expression_statement "local_68 = &local_58;" (assignment_expression "local_68 = &local_58" identifier = (pointer_expression "&local_58" & identifier)) ;) }) (else_clause "else {\n        local_58 = *puVar15;\n      }" else (compound_statement "{\n        local_58 = *puVar15;\n      }" { (expression_statement "local_58 = *puVar15;" (assignment_expression "local_58 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;) }))) (expression_statement "sVar1 = puVar15[-1];" (assignment_expression "sVar1 = puVar15[-1]" identifier = (subscript_expression "puVar15[-1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)puVar15 = 0;" (assignment_expression "*(undefined1 *)puVar15 = 0" (pointer_expression "*(undefined1 *)puVar15" * (cast_expression "(undefined1 *)puVar15" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar15[-1] = 0;" (assignment_expression "puVar15[-1] = 0" (subscript_expression "puVar15[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar3 = puVar13[-5];" (assignment_expression "uVar3 = puVar13[-5]" identifier = (subscript_expression "puVar13[-5]" identifier [ number_literal ])) ;) (expression_statement "local_48 = puVar15[2];" (assignment_expression "local_48 = puVar15[2]" identifier = (subscript_expression "puVar15[2]" identifier [ number_literal ])) ;) (expression_statement "puVar15[-6] = puVar13[-6];" (assignment_expression "puVar15[-6] = puVar13[-6]" (subscript_expression "puVar15[-6]" identifier [ number_literal ]) = (subscript_expression "puVar13[-6]" identifier [ number_literal ])) ;) (expression_statement "puVar15[-5] = uVar3;" (assignment_expression "puVar15[-5] = uVar3" (subscript_expression "puVar15[-5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_40 = puVar15[3];" (assignment_expression "local_40 = puVar15[3]" identifier = (subscript_expression "puVar15[3]" identifier [ number_literal ])) ;) (expression_statement "puVar15[-2] = puVar15;" (assignment_expression "puVar15[-2] = puVar15" (subscript_expression "puVar15[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[-4] = puVar13[-4];" (assignment_expression "puVar15[-4] = puVar13[-4]" (subscript_expression "puVar15[-4]" identifier [ number_literal ]) = (subscript_expression "puVar13[-4]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);" (assignment_expression "*(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3)" (pointer_expression "*(undefined4 *)(puVar15 + -3)" * (cast_expression "(undefined4 *)(puVar15 + -3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -3)" ( (binary_expression "puVar15 + -3" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar13 + -3)" * (cast_expression "(undefined4 *)(puVar13 + -3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -3)" ( (binary_expression "puVar13 + -3" identifier + number_literal) ))))) ;) (expression_statement "puVar7 = (undefined8 *)puVar13[-2];" (assignment_expression "puVar7 = (undefined8 *)puVar13[-2]" identifier = (cast_expression "(undefined8 *)puVar13[-2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[-2]" identifier [ number_literal ]))) ;) (if_statement "if (puVar13 == puVar7) {\n        sVar9 = puVar13[-1];\n        if (sVar9 != 0) {\n          if (sVar9 == 1) {\n            *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n            sVar9 = puVar13[-1];\n          }\n          else {\n            memcpy(puVar15,puVar13,sVar9);\n            sVar9 = puVar13[-1];\n          }\n        }\n        puVar15[-1] = sVar9;\n        *(undefined1 *)((long)puVar15 + sVar9) = 0;\n        puVar7 = (undefined8 *)puVar7[-2];\n      }\n      else {\n        puVar15[-2] = puVar7;\n        puVar15[-1] = puVar13[-1];\n        *puVar15 = *puVar13;\n        puVar13[-2] = puVar13;\n        puVar7 = puVar13;\n      }" if (parenthesized_expression "(puVar13 == puVar7)" ( (binary_expression "puVar13 == puVar7" identifier == identifier) )) (compound_statement "{\n        sVar9 = puVar13[-1];\n        if (sVar9 != 0) {\n          if (sVar9 == 1) {\n            *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n            sVar9 = puVar13[-1];\n          }\n          else {\n            memcpy(puVar15,puVar13,sVar9);\n            sVar9 = puVar13[-1];\n          }\n        }\n        puVar15[-1] = sVar9;\n        *(undefined1 *)((long)puVar15 + sVar9) = 0;\n        puVar7 = (undefined8 *)puVar7[-2];\n      }" { (expression_statement "sVar9 = puVar13[-1];" (assignment_expression "sVar9 = puVar13[-1]" identifier = (subscript_expression "puVar13[-1]" identifier [ number_literal ])) ;) (if_statement "if (sVar9 != 0) {\n          if (sVar9 == 1) {\n            *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n            sVar9 = puVar13[-1];\n          }\n          else {\n            memcpy(puVar15,puVar13,sVar9);\n            sVar9 = puVar13[-1];\n          }\n        }" if (parenthesized_expression "(sVar9 != 0)" ( (binary_expression "sVar9 != 0" identifier != number_literal) )) (compound_statement "{\n          if (sVar9 == 1) {\n            *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n            sVar9 = puVar13[-1];\n          }\n          else {\n            memcpy(puVar15,puVar13,sVar9);\n            sVar9 = puVar13[-1];\n          }\n        }" { (if_statement "if (sVar9 == 1) {\n            *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n            sVar9 = puVar13[-1];\n          }\n          else {\n            memcpy(puVar15,puVar13,sVar9);\n            sVar9 = puVar13[-1];\n          }" if (parenthesized_expression "(sVar9 == 1)" ( (binary_expression "sVar9 == 1" identifier == number_literal) )) (compound_statement "{\n            *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n            sVar9 = puVar13[-1];\n          }" { (expression_statement "*(undefined1 *)puVar15 = *(undefined1 *)puVar13;" (assignment_expression "*(undefined1 *)puVar15 = *(undefined1 *)puVar13" (pointer_expression "*(undefined1 *)puVar15" * (cast_expression "(undefined1 *)puVar15" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined1 *)puVar13" * (cast_expression "(undefined1 *)puVar13" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "sVar9 = puVar13[-1];" (assignment_expression "sVar9 = puVar13[-1]" identifier = (subscript_expression "puVar13[-1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n            memcpy(puVar15,puVar13,sVar9);\n            sVar9 = puVar13[-1];\n          }" else (compound_statement "{\n            memcpy(puVar15,puVar13,sVar9);\n            sVar9 = puVar13[-1];\n          }" { (expression_statement "memcpy(puVar15,puVar13,sVar9);" (call_expression "memcpy(puVar15,puVar13,sVar9)" identifier (argument_list "(puVar15,puVar13,sVar9)" ( identifier , identifier , identifier ))) ;) (expression_statement "sVar9 = puVar13[-1];" (assignment_expression "sVar9 = puVar13[-1]" identifier = (subscript_expression "puVar13[-1]" identifier [ number_literal ])) ;) }))) })) (expression_statement "puVar15[-1] = sVar9;" (assignment_expression "puVar15[-1] = sVar9" (subscript_expression "puVar15[-1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((long)puVar15 + sVar9) = 0;" (assignment_expression "*(undefined1 *)((long)puVar15 + sVar9) = 0" (pointer_expression "*(undefined1 *)((long)puVar15 + sVar9)" * (cast_expression "(undefined1 *)((long)puVar15 + sVar9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar15 + sVar9)" ( (binary_expression "(long)puVar15 + sVar9" (cast_expression "(long)puVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "puVar7 = (undefined8 *)puVar7[-2];" (assignment_expression "puVar7 = (undefined8 *)puVar7[-2]" identifier = (cast_expression "(undefined8 *)puVar7[-2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar7[-2]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n        puVar15[-2] = puVar7;\n        puVar15[-1] = puVar13[-1];\n        *puVar15 = *puVar13;\n        puVar13[-2] = puVar13;\n        puVar7 = puVar13;\n      }" else (compound_statement "{\n        puVar15[-2] = puVar7;\n        puVar15[-1] = puVar13[-1];\n        *puVar15 = *puVar13;\n        puVar13[-2] = puVar13;\n        puVar7 = puVar13;\n      }" { (expression_statement "puVar15[-2] = puVar7;" (assignment_expression "puVar15[-2] = puVar7" (subscript_expression "puVar15[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[-1] = puVar13[-1];" (assignment_expression "puVar15[-1] = puVar13[-1]" (subscript_expression "puVar15[-1]" identifier [ number_literal ]) = (subscript_expression "puVar13[-1]" identifier [ number_literal ])) ;) (expression_statement "*puVar15 = *puVar13;" (assignment_expression "*puVar15 = *puVar13" (pointer_expression "*puVar15" * identifier) = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "puVar13[-2] = puVar13;" (assignment_expression "puVar13[-2] = puVar13" (subscript_expression "puVar13[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7 = puVar13;" (assignment_expression "puVar7 = puVar13" identifier = identifier) ;) }))) (expression_statement "puVar13[-1] = 0;" (assignment_expression "puVar13[-1] = 0" (subscript_expression "puVar13[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)puVar7 = 0;" (assignment_expression "*(undefined1 *)puVar7 = 0" (pointer_expression "*(undefined1 *)puVar7" * (cast_expression "(undefined1 *)puVar7" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar15[2] = puVar13[2];" (assignment_expression "puVar15[2] = puVar13[2]" (subscript_expression "puVar15[2]" identifier [ number_literal ]) = (subscript_expression "puVar13[2]" identifier [ number_literal ])) ;) (expression_statement "puVar15[3] = puVar13[3];" (assignment_expression "puVar15[3] = puVar13[3]" (subscript_expression "puVar15[3]" identifier [ number_literal ]) = (subscript_expression "puVar13[3]" identifier [ number_literal ])) ;) (expression_statement "puVar13[-6] = uVar2;" (assignment_expression "puVar13[-6] = uVar2" (subscript_expression "puVar13[-6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[-5] = uVar4;" (assignment_expression "puVar13[-5] = uVar4" (subscript_expression "puVar13[-5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7 = (undefined8 *)puVar13[-2];" (assignment_expression "puVar7 = (undefined8 *)puVar13[-2]" identifier = (cast_expression "(undefined8 *)puVar13[-2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[-2]" identifier [ number_literal ]))) ;) (expression_statement "puVar13[-4] = uVar5;" (assignment_expression "puVar13[-4] = uVar5" (subscript_expression "puVar13[-4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uStack_70 = (undefined4)uVar6;" (assignment_expression "uStack_70 = (undefined4)uVar6" identifier = (cast_expression "(undefined4)uVar6" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) (expression_statement "*(undefined4 *)(puVar13 + -3) = uStack_70;" (assignment_expression "*(undefined4 *)(puVar13 + -3) = uStack_70" (pointer_expression "*(undefined4 *)(puVar13 + -3)" * (cast_expression "(undefined4 *)(puVar13 + -3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -3)" ( (binary_expression "puVar13 + -3" identifier + number_literal) )))) = identifier) ;) (if_statement "if (local_68 == &local_58) {\n        if (sVar1 != 0) {\n          if (sVar1 == 1) {\n            *(undefined1 *)puVar7 = (undefined1)local_58;\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n          else {\n            memcpy(puVar7,&local_58,sVar1);\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n        }\n        puVar13[-1] = sVar1;\n        *(undefined1 *)((long)puVar7 + sVar1) = 0;\n      }\n      else if (puVar7 == puVar13) {\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n      }\n      else {\n        uVar2 = *puVar13;\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n        if (puVar7 != (undefined8 *)0x0) {\n          local_68 = puVar7;\n          local_58 = uVar2;\n        }\n      }" if (parenthesized_expression "(local_68 == &local_58)" ( (binary_expression "local_68 == &local_58" identifier == (pointer_expression "&local_58" & identifier)) )) (compound_statement "{\n        if (sVar1 != 0) {\n          if (sVar1 == 1) {\n            *(undefined1 *)puVar7 = (undefined1)local_58;\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n          else {\n            memcpy(puVar7,&local_58,sVar1);\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n        }\n        puVar13[-1] = sVar1;\n        *(undefined1 *)((long)puVar7 + sVar1) = 0;\n      }" { (if_statement "if (sVar1 != 0) {\n          if (sVar1 == 1) {\n            *(undefined1 *)puVar7 = (undefined1)local_58;\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n          else {\n            memcpy(puVar7,&local_58,sVar1);\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n        }" if (parenthesized_expression "(sVar1 != 0)" ( (binary_expression "sVar1 != 0" identifier != number_literal) )) (compound_statement "{\n          if (sVar1 == 1) {\n            *(undefined1 *)puVar7 = (undefined1)local_58;\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n          else {\n            memcpy(puVar7,&local_58,sVar1);\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n        }" { (if_statement "if (sVar1 == 1) {\n            *(undefined1 *)puVar7 = (undefined1)local_58;\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n          else {\n            memcpy(puVar7,&local_58,sVar1);\n            puVar7 = (undefined8 *)puVar13[-2];\n          }" if (parenthesized_expression "(sVar1 == 1)" ( (binary_expression "sVar1 == 1" identifier == number_literal) )) (compound_statement "{\n            *(undefined1 *)puVar7 = (undefined1)local_58;\n            puVar7 = (undefined8 *)puVar13[-2];\n          }" { (expression_statement "*(undefined1 *)puVar7 = (undefined1)local_58;" (assignment_expression "*(undefined1 *)puVar7 = (undefined1)local_58" (pointer_expression "*(undefined1 *)puVar7" * (cast_expression "(undefined1 *)puVar7" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(undefined1)local_58" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "puVar7 = (undefined8 *)puVar13[-2];" (assignment_expression "puVar7 = (undefined8 *)puVar13[-2]" identifier = (cast_expression "(undefined8 *)puVar13[-2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[-2]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n            memcpy(puVar7,&local_58,sVar1);\n            puVar7 = (undefined8 *)puVar13[-2];\n          }" else (compound_statement "{\n            memcpy(puVar7,&local_58,sVar1);\n            puVar7 = (undefined8 *)puVar13[-2];\n          }" { (expression_statement "memcpy(puVar7,&local_58,sVar1);" (call_expression "memcpy(puVar7,&local_58,sVar1)" identifier (argument_list "(puVar7,&local_58,sVar1)" ( identifier , (pointer_expression "&local_58" & identifier) , identifier ))) ;) (expression_statement "puVar7 = (undefined8 *)puVar13[-2];" (assignment_expression "puVar7 = (undefined8 *)puVar13[-2]" identifier = (cast_expression "(undefined8 *)puVar13[-2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[-2]" identifier [ number_literal ]))) ;) }))) })) (expression_statement "puVar13[-1] = sVar1;" (assignment_expression "puVar13[-1] = sVar1" (subscript_expression "puVar13[-1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((long)puVar7 + sVar1) = 0;" (assignment_expression "*(undefined1 *)((long)puVar7 + sVar1) = 0" (pointer_expression "*(undefined1 *)((long)puVar7 + sVar1)" * (cast_expression "(undefined1 *)((long)puVar7 + sVar1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar7 + sVar1)" ( (binary_expression "(long)puVar7 + sVar1" (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = number_literal) ;) }) (else_clause "else if (puVar7 == puVar13) {\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n      }\n      else {\n        uVar2 = *puVar13;\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n        if (puVar7 != (undefined8 *)0x0) {\n          local_68 = puVar7;\n          local_58 = uVar2;\n        }\n      }" else (if_statement "if (puVar7 == puVar13) {\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n      }\n      else {\n        uVar2 = *puVar13;\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n        if (puVar7 != (undefined8 *)0x0) {\n          local_68 = puVar7;\n          local_58 = uVar2;\n        }\n      }" if (parenthesized_expression "(puVar7 == puVar13)" ( (binary_expression "puVar7 == puVar13" identifier == identifier) )) (compound_statement "{\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n      }" { (expression_statement "puVar13[-2] = local_68;" (assignment_expression "puVar13[-2] = local_68" (subscript_expression "puVar13[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[-1] = sVar1;" (assignment_expression "puVar13[-1] = sVar1" (subscript_expression "puVar13[-1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar13 = local_58;" (assignment_expression "*puVar13 = local_58" (pointer_expression "*puVar13" * identifier) = identifier) ;) (expression_statement "local_68 = &local_58;" (assignment_expression "local_68 = &local_58" identifier = (pointer_expression "&local_58" & identifier)) ;) }) (else_clause "else {\n        uVar2 = *puVar13;\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n        if (puVar7 != (undefined8 *)0x0) {\n          local_68 = puVar7;\n          local_58 = uVar2;\n        }\n      }" else (compound_statement "{\n        uVar2 = *puVar13;\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n        if (puVar7 != (undefined8 *)0x0) {\n          local_68 = puVar7;\n          local_58 = uVar2;\n        }\n      }" { (expression_statement "uVar2 = *puVar13;" (assignment_expression "uVar2 = *puVar13" identifier = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "puVar13[-2] = local_68;" (assignment_expression "puVar13[-2] = local_68" (subscript_expression "puVar13[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[-1] = sVar1;" (assignment_expression "puVar13[-1] = sVar1" (subscript_expression "puVar13[-1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar13 = local_58;" (assignment_expression "*puVar13 = local_58" (pointer_expression "*puVar13" * identifier) = identifier) ;) (expression_statement "local_68 = &local_58;" (assignment_expression "local_68 = &local_58" identifier = (pointer_expression "&local_58" & identifier)) ;) (if_statement "if (puVar7 != (undefined8 *)0x0) {\n          local_68 = puVar7;\n          local_58 = uVar2;\n        }" if (parenthesized_expression "(puVar7 != (undefined8 *)0x0)" ( (binary_expression "puVar7 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_68 = puVar7;\n          local_58 = uVar2;\n        }" { (expression_statement "local_68 = puVar7;" (assignment_expression "local_68 = puVar7" identifier = identifier) ;) (expression_statement "local_58 = uVar2;" (assignment_expression "local_58 = uVar2" identifier = identifier) ;) })) }))))) (expression_statement "*(undefined1 *)local_68 = 0;" (assignment_expression "*(undefined1 *)local_68 = 0" (pointer_expression "*(undefined1 *)local_68" * (cast_expression "(undefined1 *)local_68" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar13[2] = local_48;" (assignment_expression "puVar13[2] = local_48" (subscript_expression "puVar13[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[3] = local_40;" (assignment_expression "puVar13[3] = local_40" (subscript_expression "puVar13[3]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (local_68 != &local_58) {\n        FUN_002dac60();\n      }" if (parenthesized_expression "(local_68 != &local_58)" ( (binary_expression "local_68 != &local_58" identifier != (pointer_expression "&local_58" & identifier)) )) (compound_statement "{\n        FUN_002dac60();\n      }" { (expression_statement "FUN_002dac60();" (call_expression "FUN_002dac60()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "puVar13 = puVar13 + 10;" (assignment_expression "puVar13 = puVar13 + 10" identifier = (binary_expression "puVar13 + 10" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar15 + 10;" (assignment_expression "puVar15 = puVar15 + 10" identifier = (binary_expression "puVar15 + 10" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar13 !=\n             (undefined8 *)(param_2 + 0x80 + ((param_2 + -0x50) - param_1 & 0xfffffffffffffff0U)))" ( (binary_expression "puVar13 !=\n             (undefined8 *)(param_2 + 0x80 + ((param_2 + -0x50) - param_1 & 0xfffffffffffffff0U))" identifier != (cast_expression "(undefined8 *)(param_2 + 0x80 + ((param_2 + -0x50) - param_1 & 0xfffffffffffffff0U))" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x80 + ((param_2 + -0x50) - param_1 & 0xfffffffffffffff0U))" ( (binary_expression "param_2 + 0x80 + ((param_2 + -0x50) - param_1 & 0xfffffffffffffff0U)" (binary_expression "param_2 + 0x80" identifier + number_literal) + (parenthesized_expression "((param_2 + -0x50) - param_1 & 0xfffffffffffffff0U)" ( (binary_expression "(param_2 + -0x50) - param_1 & 0xfffffffffffffff0U" (binary_expression "(param_2 + -0x50) - param_1" (parenthesized_expression "(param_2 + -0x50)" ( (binary_expression "param_2 + -0x50" identifier + number_literal) )) - identifier) & number_literal) ))) )))) )) ;) (return_statement "return param_2;" return identifier ;) })) (expression_statement "lVar14 = local_a8 + lVar10 * 0x3333333333333333;" (assignment_expression "lVar14 = local_a8 + lVar10 * 0x3333333333333333" identifier = (binary_expression "local_a8 + lVar10 * 0x3333333333333333" identifier + (binary_expression "lVar10 * 0x3333333333333333" identifier * number_literal))) ;) (expression_statement "lVar12 = lVar11;" (assignment_expression "lVar12 = lVar11" identifier = identifier) ;) (expression_statement "local_a0 = param_1;" (assignment_expression "local_a0 = param_1" identifier = identifier) ;) (if_statement "if (lVar14 == lVar11 || SBORROW8(lVar14,lVar11) != lVar14 + lVar10 * 0x3333333333333333 < 0)\n  goto LAB_0025fb1a;" if (parenthesized_expression "(lVar14 == lVar11 || SBORROW8(lVar14,lVar11) != lVar14 + lVar10 * 0x3333333333333333 < 0)" ( (binary_expression "lVar14 == lVar11 || SBORROW8(lVar14,lVar11) != lVar14 + lVar10 * 0x3333333333333333 < 0" (binary_expression "lVar14 == lVar11" identifier == identifier) || (binary_expression "SBORROW8(lVar14,lVar11) != lVar14 + lVar10 * 0x3333333333333333 < 0" (call_expression "SBORROW8(lVar14,lVar11)" identifier (argument_list "(lVar14,lVar11)" ( identifier , identifier ))) != (binary_expression "lVar14 + lVar10 * 0x3333333333333333 < 0" (binary_expression "lVar14 + lVar10 * 0x3333333333333333" identifier + (binary_expression "lVar10 * 0x3333333333333333" identifier * number_literal)) < number_literal))) )) (goto_statement "goto LAB_0025fb1a;" goto statement_identifier ;)) (do_statement "do {\n    if (0 < lVar14) {\n      lVar10 = 0;\n      puVar13 = (undefined8 *)(local_a0 + 0x30 + lVar11 * 0x50);\n      puVar15 = (undefined8 *)(local_a0 + 0x30);\n      do {\n        uVar2 = puVar15[-6];\n        uVar4 = puVar15[-5];\n        uVar5 = puVar15[-4];\n        uVar6 = puVar15[-3];\n        local_68 = (undefined8 *)puVar15[-2];\n        if (local_68 == puVar15) {\n          local_58 = *puVar15;\n          uStack_50 = puVar15[1];\n          local_68 = &local_58;\n        }\n        else {\n          local_58 = *puVar15;\n        }\n        sVar1 = puVar15[-1];\n        *(undefined1 *)puVar15 = 0;\n        puVar15[-1] = 0;\n        uVar3 = puVar13[-5];\n        local_48 = puVar15[2];\n        puVar15[-6] = puVar13[-6];\n        puVar15[-5] = uVar3;\n        local_40 = puVar15[3];\n        puVar15[-2] = puVar15;\n        puVar15[-4] = puVar13[-4];\n        *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n        if ((undefined8 *)puVar13[-2] == puVar13) {\n          sVar9 = puVar13[-1];\n          if (sVar9 != 0) {\n            if (sVar9 == 1) {\n              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n              sVar9 = puVar13[-1];\n            }\n            else {\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }\n          }\n          puVar15[-1] = sVar9;\n          *(undefined1 *)((long)puVar15 + sVar9) = 0;\n          puVar7 = (undefined8 *)puVar13[-2];\n        }\n        else {\n          puVar15[-2] = (undefined8 *)puVar13[-2];\n          puVar15[-1] = puVar13[-1];\n          *puVar15 = *puVar13;\n          puVar13[-2] = puVar13;\n          puVar7 = puVar13;\n        }\n        puVar13[-1] = 0;\n        *(undefined1 *)puVar7 = 0;\n        puVar15[2] = puVar13[2];\n        puVar15[3] = puVar13[3];\n        puVar13[-6] = uVar2;\n        puVar13[-5] = uVar4;\n        puVar7 = (undefined8 *)puVar13[-2];\n        puVar13[-4] = uVar5;\n        uStack_70 = (undefined4)uVar6;\n        *(undefined4 *)(puVar13 + -3) = uStack_70;\n        if (local_68 == &local_58) {\n          if (sVar1 != 0) {\n            if (sVar1 == 1) {\n              *(undefined1 *)puVar7 = (undefined1)local_58;\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n            else {\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n          }\n          puVar13[-1] = sVar1;\n          *(undefined1 *)((long)puVar7 + sVar1) = 0;\n          uVar2 = local_58;\n        }\n        else {\n          if (puVar7 == puVar13) {\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n          }\n          else {\n            uVar2 = *puVar13;\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n            local_68 = puVar7;\n            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;\n          }\n          local_68 = &local_58;\n          uVar2 = local_58;\n        }\nLAB_0025f996:\n        local_58 = uVar2;\n        *(undefined1 *)local_68 = 0;\n        puVar13[2] = local_48;\n        puVar13[3] = local_40;\n        if (local_68 != &local_58) {\n          FUN_002dac60();\n        }\n        lVar10 = lVar10 + 1;\n        puVar15 = puVar15 + 10;\n        puVar13 = puVar13 + 10;\n      } while (lVar14 != lVar10);\n      local_a0 = local_a0 + lVar14 * 0x50;\n    }\n    if (local_a8 % lVar11 == 0) {\n      return lVar8;\n    }\n    lVar12 = lVar11 - local_a8 % lVar11;\n    lVar10 = lVar11;\n    while (lVar14 = lVar10 - lVar12, lVar11 = lVar12, local_a8 = lVar10, lVar14 <= lVar12) {\nLAB_0025fb1a:\n      lVar10 = lVar14;\n      lVar11 = local_a8 * 0x50 + local_a0;\n      local_a0 = lVar11 + lVar10 * -0x50;\n      if (0 < lVar12) {\n        puVar15 = (undefined8 *)(local_a0 + -0x20);\n        puVar13 = (undefined8 *)(lVar11 + -0x20);\n        lVar11 = 0;\n        do {\n          uVar2 = puVar15[-6];\n          uVar4 = puVar15[-5];\n          uVar5 = puVar15[-4];\n          uVar6 = puVar15[-3];\n          local_68 = (undefined8 *)puVar15[-2];\n          if (local_68 == puVar15) {\n            local_58 = *puVar15;\n            uStack_50 = puVar15[1];\n            local_68 = &local_58;\n          }\n          else {\n            local_58 = *puVar15;\n          }\n          sVar1 = puVar15[-1];\n          *(undefined1 *)puVar15 = 0;\n          puVar15[-1] = 0;\n          uVar3 = puVar13[-5];\n          local_48 = puVar15[2];\n          puVar15[-6] = puVar13[-6];\n          puVar15[-5] = uVar3;\n          local_40 = puVar15[3];\n          puVar15[-2] = puVar15;\n          puVar15[-4] = puVar13[-4];\n          *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n          if ((undefined8 *)puVar13[-2] == puVar13) {\n            sVar9 = puVar13[-1];\n            if (sVar9 != 0) {\n              if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }\n            }\n            puVar15[-1] = sVar9;\n            *(undefined1 *)(puVar15[-2] + sVar9) = 0;\n          }\n          else {\n            puVar15[-2] = (undefined8 *)puVar13[-2];\n            puVar15[-1] = puVar13[-1];\n            *puVar15 = *puVar13;\n            puVar13[-2] = puVar13;\n          }\n          puVar13[-1] = 0;\n          *(undefined1 *)puVar13[-2] = 0;\n          puVar15[2] = puVar13[2];\n          puVar15[3] = puVar13[3];\n          puVar7 = (undefined8 *)puVar13[-2];\n          puVar13[-6] = uVar2;\n          puVar13[-5] = uVar4;\n          puVar13[-4] = uVar5;\n          uStack_70 = (undefined4)uVar6;\n          *(undefined4 *)(puVar13 + -3) = uStack_70;\n          if (local_68 == &local_58) {\n            if (sVar1 != 0) {\n              if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n            }\n            puVar13[-1] = sVar1;\n            *(undefined1 *)((long)puVar7 + sVar1) = 0;\n            uVar2 = local_58;\n          }\n          else {\n            if (puVar7 == puVar13) {\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }\n            else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }\n            local_68 = &local_58;\n            uVar2 = local_58;\n          }\nLAB_0025fc78:\n          local_58 = uVar2;\n          *(undefined1 *)local_68 = 0;\n          puVar13[2] = local_48;\n          puVar13[3] = local_40;\n          if (local_68 != &local_58) {\n            FUN_002dac60();\n          }\n          lVar11 = lVar11 + 1;\n          puVar15 = puVar15 + -10;\n          puVar13 = puVar13 + -10;\n        } while (lVar11 != lVar12);\n        local_a0 = local_a0 + lVar11 * -0x50;\n      }\n      lVar12 = local_a8 % lVar10;\n      if (lVar12 == 0) {\n        return lVar8;\n      }\n    }\n  } while( true );" do (compound_statement "{\n    if (0 < lVar14) {\n      lVar10 = 0;\n      puVar13 = (undefined8 *)(local_a0 + 0x30 + lVar11 * 0x50);\n      puVar15 = (undefined8 *)(local_a0 + 0x30);\n      do {\n        uVar2 = puVar15[-6];\n        uVar4 = puVar15[-5];\n        uVar5 = puVar15[-4];\n        uVar6 = puVar15[-3];\n        local_68 = (undefined8 *)puVar15[-2];\n        if (local_68 == puVar15) {\n          local_58 = *puVar15;\n          uStack_50 = puVar15[1];\n          local_68 = &local_58;\n        }\n        else {\n          local_58 = *puVar15;\n        }\n        sVar1 = puVar15[-1];\n        *(undefined1 *)puVar15 = 0;\n        puVar15[-1] = 0;\n        uVar3 = puVar13[-5];\n        local_48 = puVar15[2];\n        puVar15[-6] = puVar13[-6];\n        puVar15[-5] = uVar3;\n        local_40 = puVar15[3];\n        puVar15[-2] = puVar15;\n        puVar15[-4] = puVar13[-4];\n        *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n        if ((undefined8 *)puVar13[-2] == puVar13) {\n          sVar9 = puVar13[-1];\n          if (sVar9 != 0) {\n            if (sVar9 == 1) {\n              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n              sVar9 = puVar13[-1];\n            }\n            else {\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }\n          }\n          puVar15[-1] = sVar9;\n          *(undefined1 *)((long)puVar15 + sVar9) = 0;\n          puVar7 = (undefined8 *)puVar13[-2];\n        }\n        else {\n          puVar15[-2] = (undefined8 *)puVar13[-2];\n          puVar15[-1] = puVar13[-1];\n          *puVar15 = *puVar13;\n          puVar13[-2] = puVar13;\n          puVar7 = puVar13;\n        }\n        puVar13[-1] = 0;\n        *(undefined1 *)puVar7 = 0;\n        puVar15[2] = puVar13[2];\n        puVar15[3] = puVar13[3];\n        puVar13[-6] = uVar2;\n        puVar13[-5] = uVar4;\n        puVar7 = (undefined8 *)puVar13[-2];\n        puVar13[-4] = uVar5;\n        uStack_70 = (undefined4)uVar6;\n        *(undefined4 *)(puVar13 + -3) = uStack_70;\n        if (local_68 == &local_58) {\n          if (sVar1 != 0) {\n            if (sVar1 == 1) {\n              *(undefined1 *)puVar7 = (undefined1)local_58;\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n            else {\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n          }\n          puVar13[-1] = sVar1;\n          *(undefined1 *)((long)puVar7 + sVar1) = 0;\n          uVar2 = local_58;\n        }\n        else {\n          if (puVar7 == puVar13) {\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n          }\n          else {\n            uVar2 = *puVar13;\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n            local_68 = puVar7;\n            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;\n          }\n          local_68 = &local_58;\n          uVar2 = local_58;\n        }\nLAB_0025f996:\n        local_58 = uVar2;\n        *(undefined1 *)local_68 = 0;\n        puVar13[2] = local_48;\n        puVar13[3] = local_40;\n        if (local_68 != &local_58) {\n          FUN_002dac60();\n        }\n        lVar10 = lVar10 + 1;\n        puVar15 = puVar15 + 10;\n        puVar13 = puVar13 + 10;\n      } while (lVar14 != lVar10);\n      local_a0 = local_a0 + lVar14 * 0x50;\n    }\n    if (local_a8 % lVar11 == 0) {\n      return lVar8;\n    }\n    lVar12 = lVar11 - local_a8 % lVar11;\n    lVar10 = lVar11;\n    while (lVar14 = lVar10 - lVar12, lVar11 = lVar12, local_a8 = lVar10, lVar14 <= lVar12) {\nLAB_0025fb1a:\n      lVar10 = lVar14;\n      lVar11 = local_a8 * 0x50 + local_a0;\n      local_a0 = lVar11 + lVar10 * -0x50;\n      if (0 < lVar12) {\n        puVar15 = (undefined8 *)(local_a0 + -0x20);\n        puVar13 = (undefined8 *)(lVar11 + -0x20);\n        lVar11 = 0;\n        do {\n          uVar2 = puVar15[-6];\n          uVar4 = puVar15[-5];\n          uVar5 = puVar15[-4];\n          uVar6 = puVar15[-3];\n          local_68 = (undefined8 *)puVar15[-2];\n          if (local_68 == puVar15) {\n            local_58 = *puVar15;\n            uStack_50 = puVar15[1];\n            local_68 = &local_58;\n          }\n          else {\n            local_58 = *puVar15;\n          }\n          sVar1 = puVar15[-1];\n          *(undefined1 *)puVar15 = 0;\n          puVar15[-1] = 0;\n          uVar3 = puVar13[-5];\n          local_48 = puVar15[2];\n          puVar15[-6] = puVar13[-6];\n          puVar15[-5] = uVar3;\n          local_40 = puVar15[3];\n          puVar15[-2] = puVar15;\n          puVar15[-4] = puVar13[-4];\n          *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n          if ((undefined8 *)puVar13[-2] == puVar13) {\n            sVar9 = puVar13[-1];\n            if (sVar9 != 0) {\n              if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }\n            }\n            puVar15[-1] = sVar9;\n            *(undefined1 *)(puVar15[-2] + sVar9) = 0;\n          }\n          else {\n            puVar15[-2] = (undefined8 *)puVar13[-2];\n            puVar15[-1] = puVar13[-1];\n            *puVar15 = *puVar13;\n            puVar13[-2] = puVar13;\n          }\n          puVar13[-1] = 0;\n          *(undefined1 *)puVar13[-2] = 0;\n          puVar15[2] = puVar13[2];\n          puVar15[3] = puVar13[3];\n          puVar7 = (undefined8 *)puVar13[-2];\n          puVar13[-6] = uVar2;\n          puVar13[-5] = uVar4;\n          puVar13[-4] = uVar5;\n          uStack_70 = (undefined4)uVar6;\n          *(undefined4 *)(puVar13 + -3) = uStack_70;\n          if (local_68 == &local_58) {\n            if (sVar1 != 0) {\n              if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n            }\n            puVar13[-1] = sVar1;\n            *(undefined1 *)((long)puVar7 + sVar1) = 0;\n            uVar2 = local_58;\n          }\n          else {\n            if (puVar7 == puVar13) {\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }\n            else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }\n            local_68 = &local_58;\n            uVar2 = local_58;\n          }\nLAB_0025fc78:\n          local_58 = uVar2;\n          *(undefined1 *)local_68 = 0;\n          puVar13[2] = local_48;\n          puVar13[3] = local_40;\n          if (local_68 != &local_58) {\n            FUN_002dac60();\n          }\n          lVar11 = lVar11 + 1;\n          puVar15 = puVar15 + -10;\n          puVar13 = puVar13 + -10;\n        } while (lVar11 != lVar12);\n        local_a0 = local_a0 + lVar11 * -0x50;\n      }\n      lVar12 = local_a8 % lVar10;\n      if (lVar12 == 0) {\n        return lVar8;\n      }\n    }\n  }" { (if_statement "if (0 < lVar14) {\n      lVar10 = 0;\n      puVar13 = (undefined8 *)(local_a0 + 0x30 + lVar11 * 0x50);\n      puVar15 = (undefined8 *)(local_a0 + 0x30);\n      do {\n        uVar2 = puVar15[-6];\n        uVar4 = puVar15[-5];\n        uVar5 = puVar15[-4];\n        uVar6 = puVar15[-3];\n        local_68 = (undefined8 *)puVar15[-2];\n        if (local_68 == puVar15) {\n          local_58 = *puVar15;\n          uStack_50 = puVar15[1];\n          local_68 = &local_58;\n        }\n        else {\n          local_58 = *puVar15;\n        }\n        sVar1 = puVar15[-1];\n        *(undefined1 *)puVar15 = 0;\n        puVar15[-1] = 0;\n        uVar3 = puVar13[-5];\n        local_48 = puVar15[2];\n        puVar15[-6] = puVar13[-6];\n        puVar15[-5] = uVar3;\n        local_40 = puVar15[3];\n        puVar15[-2] = puVar15;\n        puVar15[-4] = puVar13[-4];\n        *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n        if ((undefined8 *)puVar13[-2] == puVar13) {\n          sVar9 = puVar13[-1];\n          if (sVar9 != 0) {\n            if (sVar9 == 1) {\n              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n              sVar9 = puVar13[-1];\n            }\n            else {\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }\n          }\n          puVar15[-1] = sVar9;\n          *(undefined1 *)((long)puVar15 + sVar9) = 0;\n          puVar7 = (undefined8 *)puVar13[-2];\n        }\n        else {\n          puVar15[-2] = (undefined8 *)puVar13[-2];\n          puVar15[-1] = puVar13[-1];\n          *puVar15 = *puVar13;\n          puVar13[-2] = puVar13;\n          puVar7 = puVar13;\n        }\n        puVar13[-1] = 0;\n        *(undefined1 *)puVar7 = 0;\n        puVar15[2] = puVar13[2];\n        puVar15[3] = puVar13[3];\n        puVar13[-6] = uVar2;\n        puVar13[-5] = uVar4;\n        puVar7 = (undefined8 *)puVar13[-2];\n        puVar13[-4] = uVar5;\n        uStack_70 = (undefined4)uVar6;\n        *(undefined4 *)(puVar13 + -3) = uStack_70;\n        if (local_68 == &local_58) {\n          if (sVar1 != 0) {\n            if (sVar1 == 1) {\n              *(undefined1 *)puVar7 = (undefined1)local_58;\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n            else {\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n          }\n          puVar13[-1] = sVar1;\n          *(undefined1 *)((long)puVar7 + sVar1) = 0;\n          uVar2 = local_58;\n        }\n        else {\n          if (puVar7 == puVar13) {\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n          }\n          else {\n            uVar2 = *puVar13;\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n            local_68 = puVar7;\n            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;\n          }\n          local_68 = &local_58;\n          uVar2 = local_58;\n        }\nLAB_0025f996:\n        local_58 = uVar2;\n        *(undefined1 *)local_68 = 0;\n        puVar13[2] = local_48;\n        puVar13[3] = local_40;\n        if (local_68 != &local_58) {\n          FUN_002dac60();\n        }\n        lVar10 = lVar10 + 1;\n        puVar15 = puVar15 + 10;\n        puVar13 = puVar13 + 10;\n      } while (lVar14 != lVar10);\n      local_a0 = local_a0 + lVar14 * 0x50;\n    }" if (parenthesized_expression "(0 < lVar14)" ( (binary_expression "0 < lVar14" number_literal < identifier) )) (compound_statement "{\n      lVar10 = 0;\n      puVar13 = (undefined8 *)(local_a0 + 0x30 + lVar11 * 0x50);\n      puVar15 = (undefined8 *)(local_a0 + 0x30);\n      do {\n        uVar2 = puVar15[-6];\n        uVar4 = puVar15[-5];\n        uVar5 = puVar15[-4];\n        uVar6 = puVar15[-3];\n        local_68 = (undefined8 *)puVar15[-2];\n        if (local_68 == puVar15) {\n          local_58 = *puVar15;\n          uStack_50 = puVar15[1];\n          local_68 = &local_58;\n        }\n        else {\n          local_58 = *puVar15;\n        }\n        sVar1 = puVar15[-1];\n        *(undefined1 *)puVar15 = 0;\n        puVar15[-1] = 0;\n        uVar3 = puVar13[-5];\n        local_48 = puVar15[2];\n        puVar15[-6] = puVar13[-6];\n        puVar15[-5] = uVar3;\n        local_40 = puVar15[3];\n        puVar15[-2] = puVar15;\n        puVar15[-4] = puVar13[-4];\n        *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n        if ((undefined8 *)puVar13[-2] == puVar13) {\n          sVar9 = puVar13[-1];\n          if (sVar9 != 0) {\n            if (sVar9 == 1) {\n              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n              sVar9 = puVar13[-1];\n            }\n            else {\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }\n          }\n          puVar15[-1] = sVar9;\n          *(undefined1 *)((long)puVar15 + sVar9) = 0;\n          puVar7 = (undefined8 *)puVar13[-2];\n        }\n        else {\n          puVar15[-2] = (undefined8 *)puVar13[-2];\n          puVar15[-1] = puVar13[-1];\n          *puVar15 = *puVar13;\n          puVar13[-2] = puVar13;\n          puVar7 = puVar13;\n        }\n        puVar13[-1] = 0;\n        *(undefined1 *)puVar7 = 0;\n        puVar15[2] = puVar13[2];\n        puVar15[3] = puVar13[3];\n        puVar13[-6] = uVar2;\n        puVar13[-5] = uVar4;\n        puVar7 = (undefined8 *)puVar13[-2];\n        puVar13[-4] = uVar5;\n        uStack_70 = (undefined4)uVar6;\n        *(undefined4 *)(puVar13 + -3) = uStack_70;\n        if (local_68 == &local_58) {\n          if (sVar1 != 0) {\n            if (sVar1 == 1) {\n              *(undefined1 *)puVar7 = (undefined1)local_58;\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n            else {\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n          }\n          puVar13[-1] = sVar1;\n          *(undefined1 *)((long)puVar7 + sVar1) = 0;\n          uVar2 = local_58;\n        }\n        else {\n          if (puVar7 == puVar13) {\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n          }\n          else {\n            uVar2 = *puVar13;\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n            local_68 = puVar7;\n            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;\n          }\n          local_68 = &local_58;\n          uVar2 = local_58;\n        }\nLAB_0025f996:\n        local_58 = uVar2;\n        *(undefined1 *)local_68 = 0;\n        puVar13[2] = local_48;\n        puVar13[3] = local_40;\n        if (local_68 != &local_58) {\n          FUN_002dac60();\n        }\n        lVar10 = lVar10 + 1;\n        puVar15 = puVar15 + 10;\n        puVar13 = puVar13 + 10;\n      } while (lVar14 != lVar10);\n      local_a0 = local_a0 + lVar14 * 0x50;\n    }" { (expression_statement "lVar10 = 0;" (assignment_expression "lVar10 = 0" identifier = number_literal) ;) (expression_statement "puVar13 = (undefined8 *)(local_a0 + 0x30 + lVar11 * 0x50);" (assignment_expression "puVar13 = (undefined8 *)(local_a0 + 0x30 + lVar11 * 0x50)" identifier = (cast_expression "(undefined8 *)(local_a0 + 0x30 + lVar11 * 0x50)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a0 + 0x30 + lVar11 * 0x50)" ( (binary_expression "local_a0 + 0x30 + lVar11 * 0x50" (binary_expression "local_a0 + 0x30" identifier + number_literal) + (binary_expression "lVar11 * 0x50" identifier * number_literal)) )))) ;) (expression_statement "puVar15 = (undefined8 *)(local_a0 + 0x30);" (assignment_expression "puVar15 = (undefined8 *)(local_a0 + 0x30)" identifier = (cast_expression "(undefined8 *)(local_a0 + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a0 + 0x30)" ( (binary_expression "local_a0 + 0x30" identifier + number_literal) )))) ;) (do_statement "do {\n        uVar2 = puVar15[-6];\n        uVar4 = puVar15[-5];\n        uVar5 = puVar15[-4];\n        uVar6 = puVar15[-3];\n        local_68 = (undefined8 *)puVar15[-2];\n        if (local_68 == puVar15) {\n          local_58 = *puVar15;\n          uStack_50 = puVar15[1];\n          local_68 = &local_58;\n        }\n        else {\n          local_58 = *puVar15;\n        }\n        sVar1 = puVar15[-1];\n        *(undefined1 *)puVar15 = 0;\n        puVar15[-1] = 0;\n        uVar3 = puVar13[-5];\n        local_48 = puVar15[2];\n        puVar15[-6] = puVar13[-6];\n        puVar15[-5] = uVar3;\n        local_40 = puVar15[3];\n        puVar15[-2] = puVar15;\n        puVar15[-4] = puVar13[-4];\n        *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n        if ((undefined8 *)puVar13[-2] == puVar13) {\n          sVar9 = puVar13[-1];\n          if (sVar9 != 0) {\n            if (sVar9 == 1) {\n              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n              sVar9 = puVar13[-1];\n            }\n            else {\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }\n          }\n          puVar15[-1] = sVar9;\n          *(undefined1 *)((long)puVar15 + sVar9) = 0;\n          puVar7 = (undefined8 *)puVar13[-2];\n        }\n        else {\n          puVar15[-2] = (undefined8 *)puVar13[-2];\n          puVar15[-1] = puVar13[-1];\n          *puVar15 = *puVar13;\n          puVar13[-2] = puVar13;\n          puVar7 = puVar13;\n        }\n        puVar13[-1] = 0;\n        *(undefined1 *)puVar7 = 0;\n        puVar15[2] = puVar13[2];\n        puVar15[3] = puVar13[3];\n        puVar13[-6] = uVar2;\n        puVar13[-5] = uVar4;\n        puVar7 = (undefined8 *)puVar13[-2];\n        puVar13[-4] = uVar5;\n        uStack_70 = (undefined4)uVar6;\n        *(undefined4 *)(puVar13 + -3) = uStack_70;\n        if (local_68 == &local_58) {\n          if (sVar1 != 0) {\n            if (sVar1 == 1) {\n              *(undefined1 *)puVar7 = (undefined1)local_58;\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n            else {\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n          }\n          puVar13[-1] = sVar1;\n          *(undefined1 *)((long)puVar7 + sVar1) = 0;\n          uVar2 = local_58;\n        }\n        else {\n          if (puVar7 == puVar13) {\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n          }\n          else {\n            uVar2 = *puVar13;\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n            local_68 = puVar7;\n            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;\n          }\n          local_68 = &local_58;\n          uVar2 = local_58;\n        }\nLAB_0025f996:\n        local_58 = uVar2;\n        *(undefined1 *)local_68 = 0;\n        puVar13[2] = local_48;\n        puVar13[3] = local_40;\n        if (local_68 != &local_58) {\n          FUN_002dac60();\n        }\n        lVar10 = lVar10 + 1;\n        puVar15 = puVar15 + 10;\n        puVar13 = puVar13 + 10;\n      } while (lVar14 != lVar10);" do (compound_statement "{\n        uVar2 = puVar15[-6];\n        uVar4 = puVar15[-5];\n        uVar5 = puVar15[-4];\n        uVar6 = puVar15[-3];\n        local_68 = (undefined8 *)puVar15[-2];\n        if (local_68 == puVar15) {\n          local_58 = *puVar15;\n          uStack_50 = puVar15[1];\n          local_68 = &local_58;\n        }\n        else {\n          local_58 = *puVar15;\n        }\n        sVar1 = puVar15[-1];\n        *(undefined1 *)puVar15 = 0;\n        puVar15[-1] = 0;\n        uVar3 = puVar13[-5];\n        local_48 = puVar15[2];\n        puVar15[-6] = puVar13[-6];\n        puVar15[-5] = uVar3;\n        local_40 = puVar15[3];\n        puVar15[-2] = puVar15;\n        puVar15[-4] = puVar13[-4];\n        *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n        if ((undefined8 *)puVar13[-2] == puVar13) {\n          sVar9 = puVar13[-1];\n          if (sVar9 != 0) {\n            if (sVar9 == 1) {\n              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n              sVar9 = puVar13[-1];\n            }\n            else {\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }\n          }\n          puVar15[-1] = sVar9;\n          *(undefined1 *)((long)puVar15 + sVar9) = 0;\n          puVar7 = (undefined8 *)puVar13[-2];\n        }\n        else {\n          puVar15[-2] = (undefined8 *)puVar13[-2];\n          puVar15[-1] = puVar13[-1];\n          *puVar15 = *puVar13;\n          puVar13[-2] = puVar13;\n          puVar7 = puVar13;\n        }\n        puVar13[-1] = 0;\n        *(undefined1 *)puVar7 = 0;\n        puVar15[2] = puVar13[2];\n        puVar15[3] = puVar13[3];\n        puVar13[-6] = uVar2;\n        puVar13[-5] = uVar4;\n        puVar7 = (undefined8 *)puVar13[-2];\n        puVar13[-4] = uVar5;\n        uStack_70 = (undefined4)uVar6;\n        *(undefined4 *)(puVar13 + -3) = uStack_70;\n        if (local_68 == &local_58) {\n          if (sVar1 != 0) {\n            if (sVar1 == 1) {\n              *(undefined1 *)puVar7 = (undefined1)local_58;\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n            else {\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n          }\n          puVar13[-1] = sVar1;\n          *(undefined1 *)((long)puVar7 + sVar1) = 0;\n          uVar2 = local_58;\n        }\n        else {\n          if (puVar7 == puVar13) {\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n          }\n          else {\n            uVar2 = *puVar13;\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n            local_68 = puVar7;\n            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;\n          }\n          local_68 = &local_58;\n          uVar2 = local_58;\n        }\nLAB_0025f996:\n        local_58 = uVar2;\n        *(undefined1 *)local_68 = 0;\n        puVar13[2] = local_48;\n        puVar13[3] = local_40;\n        if (local_68 != &local_58) {\n          FUN_002dac60();\n        }\n        lVar10 = lVar10 + 1;\n        puVar15 = puVar15 + 10;\n        puVar13 = puVar13 + 10;\n      }" { (expression_statement "uVar2 = puVar15[-6];" (assignment_expression "uVar2 = puVar15[-6]" identifier = (subscript_expression "puVar15[-6]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = puVar15[-5];" (assignment_expression "uVar4 = puVar15[-5]" identifier = (subscript_expression "puVar15[-5]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = puVar15[-4];" (assignment_expression "uVar5 = puVar15[-4]" identifier = (subscript_expression "puVar15[-4]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = puVar15[-3];" (assignment_expression "uVar6 = puVar15[-3]" identifier = (subscript_expression "puVar15[-3]" identifier [ number_literal ])) ;) (expression_statement "local_68 = (undefined8 *)puVar15[-2];" (assignment_expression "local_68 = (undefined8 *)puVar15[-2]" identifier = (cast_expression "(undefined8 *)puVar15[-2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar15[-2]" identifier [ number_literal ]))) ;) (if_statement "if (local_68 == puVar15) {\n          local_58 = *puVar15;\n          uStack_50 = puVar15[1];\n          local_68 = &local_58;\n        }\n        else {\n          local_58 = *puVar15;\n        }" if (parenthesized_expression "(local_68 == puVar15)" ( (binary_expression "local_68 == puVar15" identifier == identifier) )) (compound_statement "{\n          local_58 = *puVar15;\n          uStack_50 = puVar15[1];\n          local_68 = &local_58;\n        }" { (expression_statement "local_58 = *puVar15;" (assignment_expression "local_58 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;) (expression_statement "uStack_50 = puVar15[1];" (assignment_expression "uStack_50 = puVar15[1]" identifier = (subscript_expression "puVar15[1]" identifier [ number_literal ])) ;) (expression_statement "local_68 = &local_58;" (assignment_expression "local_68 = &local_58" identifier = (pointer_expression "&local_58" & identifier)) ;) }) (else_clause "else {\n          local_58 = *puVar15;\n        }" else (compound_statement "{\n          local_58 = *puVar15;\n        }" { (expression_statement "local_58 = *puVar15;" (assignment_expression "local_58 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;) }))) (expression_statement "sVar1 = puVar15[-1];" (assignment_expression "sVar1 = puVar15[-1]" identifier = (subscript_expression "puVar15[-1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)puVar15 = 0;" (assignment_expression "*(undefined1 *)puVar15 = 0" (pointer_expression "*(undefined1 *)puVar15" * (cast_expression "(undefined1 *)puVar15" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar15[-1] = 0;" (assignment_expression "puVar15[-1] = 0" (subscript_expression "puVar15[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar3 = puVar13[-5];" (assignment_expression "uVar3 = puVar13[-5]" identifier = (subscript_expression "puVar13[-5]" identifier [ number_literal ])) ;) (expression_statement "local_48 = puVar15[2];" (assignment_expression "local_48 = puVar15[2]" identifier = (subscript_expression "puVar15[2]" identifier [ number_literal ])) ;) (expression_statement "puVar15[-6] = puVar13[-6];" (assignment_expression "puVar15[-6] = puVar13[-6]" (subscript_expression "puVar15[-6]" identifier [ number_literal ]) = (subscript_expression "puVar13[-6]" identifier [ number_literal ])) ;) (expression_statement "puVar15[-5] = uVar3;" (assignment_expression "puVar15[-5] = uVar3" (subscript_expression "puVar15[-5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_40 = puVar15[3];" (assignment_expression "local_40 = puVar15[3]" identifier = (subscript_expression "puVar15[3]" identifier [ number_literal ])) ;) (expression_statement "puVar15[-2] = puVar15;" (assignment_expression "puVar15[-2] = puVar15" (subscript_expression "puVar15[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[-4] = puVar13[-4];" (assignment_expression "puVar15[-4] = puVar13[-4]" (subscript_expression "puVar15[-4]" identifier [ number_literal ]) = (subscript_expression "puVar13[-4]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);" (assignment_expression "*(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3)" (pointer_expression "*(undefined4 *)(puVar15 + -3)" * (cast_expression "(undefined4 *)(puVar15 + -3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -3)" ( (binary_expression "puVar15 + -3" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar13 + -3)" * (cast_expression "(undefined4 *)(puVar13 + -3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -3)" ( (binary_expression "puVar13 + -3" identifier + number_literal) ))))) ;) (if_statement "if ((undefined8 *)puVar13[-2] == puVar13) {\n          sVar9 = puVar13[-1];\n          if (sVar9 != 0) {\n            if (sVar9 == 1) {\n              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n              sVar9 = puVar13[-1];\n            }\n            else {\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }\n          }\n          puVar15[-1] = sVar9;\n          *(undefined1 *)((long)puVar15 + sVar9) = 0;\n          puVar7 = (undefined8 *)puVar13[-2];\n        }\n        else {\n          puVar15[-2] = (undefined8 *)puVar13[-2];\n          puVar15[-1] = puVar13[-1];\n          *puVar15 = *puVar13;\n          puVar13[-2] = puVar13;\n          puVar7 = puVar13;\n        }" if (parenthesized_expression "((undefined8 *)puVar13[-2] == puVar13)" ( (binary_expression "(undefined8 *)puVar13[-2] == puVar13" (cast_expression "(undefined8 *)puVar13[-2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[-2]" identifier [ number_literal ])) == identifier) )) (compound_statement "{\n          sVar9 = puVar13[-1];\n          if (sVar9 != 0) {\n            if (sVar9 == 1) {\n              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n              sVar9 = puVar13[-1];\n            }\n            else {\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }\n          }\n          puVar15[-1] = sVar9;\n          *(undefined1 *)((long)puVar15 + sVar9) = 0;\n          puVar7 = (undefined8 *)puVar13[-2];\n        }" { (expression_statement "sVar9 = puVar13[-1];" (assignment_expression "sVar9 = puVar13[-1]" identifier = (subscript_expression "puVar13[-1]" identifier [ number_literal ])) ;) (if_statement "if (sVar9 != 0) {\n            if (sVar9 == 1) {\n              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n              sVar9 = puVar13[-1];\n            }\n            else {\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }\n          }" if (parenthesized_expression "(sVar9 != 0)" ( (binary_expression "sVar9 != 0" identifier != number_literal) )) (compound_statement "{\n            if (sVar9 == 1) {\n              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n              sVar9 = puVar13[-1];\n            }\n            else {\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }\n          }" { (if_statement "if (sVar9 == 1) {\n              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n              sVar9 = puVar13[-1];\n            }\n            else {\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }" if (parenthesized_expression "(sVar9 == 1)" ( (binary_expression "sVar9 == 1" identifier == number_literal) )) (compound_statement "{\n              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n              sVar9 = puVar13[-1];\n            }" { (expression_statement "*(undefined1 *)puVar15 = *(undefined1 *)puVar13;" (assignment_expression "*(undefined1 *)puVar15 = *(undefined1 *)puVar13" (pointer_expression "*(undefined1 *)puVar15" * (cast_expression "(undefined1 *)puVar15" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined1 *)puVar13" * (cast_expression "(undefined1 *)puVar13" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "sVar9 = puVar13[-1];" (assignment_expression "sVar9 = puVar13[-1]" identifier = (subscript_expression "puVar13[-1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }" else (compound_statement "{\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }" { (expression_statement "memcpy(puVar15,puVar13,sVar9);" (call_expression "memcpy(puVar15,puVar13,sVar9)" identifier (argument_list "(puVar15,puVar13,sVar9)" ( identifier , identifier , identifier ))) ;) (expression_statement "sVar9 = puVar13[-1];" (assignment_expression "sVar9 = puVar13[-1]" identifier = (subscript_expression "puVar13[-1]" identifier [ number_literal ])) ;) }))) })) (expression_statement "puVar15[-1] = sVar9;" (assignment_expression "puVar15[-1] = sVar9" (subscript_expression "puVar15[-1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((long)puVar15 + sVar9) = 0;" (assignment_expression "*(undefined1 *)((long)puVar15 + sVar9) = 0" (pointer_expression "*(undefined1 *)((long)puVar15 + sVar9)" * (cast_expression "(undefined1 *)((long)puVar15 + sVar9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar15 + sVar9)" ( (binary_expression "(long)puVar15 + sVar9" (cast_expression "(long)puVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "puVar7 = (undefined8 *)puVar13[-2];" (assignment_expression "puVar7 = (undefined8 *)puVar13[-2]" identifier = (cast_expression "(undefined8 *)puVar13[-2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[-2]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n          puVar15[-2] = (undefined8 *)puVar13[-2];\n          puVar15[-1] = puVar13[-1];\n          *puVar15 = *puVar13;\n          puVar13[-2] = puVar13;\n          puVar7 = puVar13;\n        }" else (compound_statement "{\n          puVar15[-2] = (undefined8 *)puVar13[-2];\n          puVar15[-1] = puVar13[-1];\n          *puVar15 = *puVar13;\n          puVar13[-2] = puVar13;\n          puVar7 = puVar13;\n        }" { (expression_statement "puVar15[-2] = (undefined8 *)puVar13[-2];" (assignment_expression "puVar15[-2] = (undefined8 *)puVar13[-2]" (subscript_expression "puVar15[-2]" identifier [ number_literal ]) = (cast_expression "(undefined8 *)puVar13[-2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[-2]" identifier [ number_literal ]))) ;) (expression_statement "puVar15[-1] = puVar13[-1];" (assignment_expression "puVar15[-1] = puVar13[-1]" (subscript_expression "puVar15[-1]" identifier [ number_literal ]) = (subscript_expression "puVar13[-1]" identifier [ number_literal ])) ;) (expression_statement "*puVar15 = *puVar13;" (assignment_expression "*puVar15 = *puVar13" (pointer_expression "*puVar15" * identifier) = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "puVar13[-2] = puVar13;" (assignment_expression "puVar13[-2] = puVar13" (subscript_expression "puVar13[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7 = puVar13;" (assignment_expression "puVar7 = puVar13" identifier = identifier) ;) }))) (expression_statement "puVar13[-1] = 0;" (assignment_expression "puVar13[-1] = 0" (subscript_expression "puVar13[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)puVar7 = 0;" (assignment_expression "*(undefined1 *)puVar7 = 0" (pointer_expression "*(undefined1 *)puVar7" * (cast_expression "(undefined1 *)puVar7" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar15[2] = puVar13[2];" (assignment_expression "puVar15[2] = puVar13[2]" (subscript_expression "puVar15[2]" identifier [ number_literal ]) = (subscript_expression "puVar13[2]" identifier [ number_literal ])) ;) (expression_statement "puVar15[3] = puVar13[3];" (assignment_expression "puVar15[3] = puVar13[3]" (subscript_expression "puVar15[3]" identifier [ number_literal ]) = (subscript_expression "puVar13[3]" identifier [ number_literal ])) ;) (expression_statement "puVar13[-6] = uVar2;" (assignment_expression "puVar13[-6] = uVar2" (subscript_expression "puVar13[-6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[-5] = uVar4;" (assignment_expression "puVar13[-5] = uVar4" (subscript_expression "puVar13[-5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7 = (undefined8 *)puVar13[-2];" (assignment_expression "puVar7 = (undefined8 *)puVar13[-2]" identifier = (cast_expression "(undefined8 *)puVar13[-2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[-2]" identifier [ number_literal ]))) ;) (expression_statement "puVar13[-4] = uVar5;" (assignment_expression "puVar13[-4] = uVar5" (subscript_expression "puVar13[-4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uStack_70 = (undefined4)uVar6;" (assignment_expression "uStack_70 = (undefined4)uVar6" identifier = (cast_expression "(undefined4)uVar6" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) (expression_statement "*(undefined4 *)(puVar13 + -3) = uStack_70;" (assignment_expression "*(undefined4 *)(puVar13 + -3) = uStack_70" (pointer_expression "*(undefined4 *)(puVar13 + -3)" * (cast_expression "(undefined4 *)(puVar13 + -3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -3)" ( (binary_expression "puVar13 + -3" identifier + number_literal) )))) = identifier) ;) (if_statement "if (local_68 == &local_58) {\n          if (sVar1 != 0) {\n            if (sVar1 == 1) {\n              *(undefined1 *)puVar7 = (undefined1)local_58;\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n            else {\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n          }\n          puVar13[-1] = sVar1;\n          *(undefined1 *)((long)puVar7 + sVar1) = 0;\n          uVar2 = local_58;\n        }\n        else {\n          if (puVar7 == puVar13) {\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n          }\n          else {\n            uVar2 = *puVar13;\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n            local_68 = puVar7;\n            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;\n          }\n          local_68 = &local_58;\n          uVar2 = local_58;\n        }" if (parenthesized_expression "(local_68 == &local_58)" ( (binary_expression "local_68 == &local_58" identifier == (pointer_expression "&local_58" & identifier)) )) (compound_statement "{\n          if (sVar1 != 0) {\n            if (sVar1 == 1) {\n              *(undefined1 *)puVar7 = (undefined1)local_58;\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n            else {\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n          }\n          puVar13[-1] = sVar1;\n          *(undefined1 *)((long)puVar7 + sVar1) = 0;\n          uVar2 = local_58;\n        }" { (if_statement "if (sVar1 != 0) {\n            if (sVar1 == 1) {\n              *(undefined1 *)puVar7 = (undefined1)local_58;\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n            else {\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n          }" if (parenthesized_expression "(sVar1 != 0)" ( (binary_expression "sVar1 != 0" identifier != number_literal) )) (compound_statement "{\n            if (sVar1 == 1) {\n              *(undefined1 *)puVar7 = (undefined1)local_58;\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n            else {\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n          }" { (if_statement "if (sVar1 == 1) {\n              *(undefined1 *)puVar7 = (undefined1)local_58;\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n            else {\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }" if (parenthesized_expression "(sVar1 == 1)" ( (binary_expression "sVar1 == 1" identifier == number_literal) )) (compound_statement "{\n              *(undefined1 *)puVar7 = (undefined1)local_58;\n              puVar7 = (undefined8 *)puVar13[-2];\n            }" { (expression_statement "*(undefined1 *)puVar7 = (undefined1)local_58;" (assignment_expression "*(undefined1 *)puVar7 = (undefined1)local_58" (pointer_expression "*(undefined1 *)puVar7" * (cast_expression "(undefined1 *)puVar7" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(undefined1)local_58" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "puVar7 = (undefined8 *)puVar13[-2];" (assignment_expression "puVar7 = (undefined8 *)puVar13[-2]" identifier = (cast_expression "(undefined8 *)puVar13[-2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[-2]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }" else (compound_statement "{\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }" { (expression_statement "memcpy(puVar7,&local_58,sVar1);" (call_expression "memcpy(puVar7,&local_58,sVar1)" identifier (argument_list "(puVar7,&local_58,sVar1)" ( identifier , (pointer_expression "&local_58" & identifier) , identifier ))) ;) (expression_statement "puVar7 = (undefined8 *)puVar13[-2];" (assignment_expression "puVar7 = (undefined8 *)puVar13[-2]" identifier = (cast_expression "(undefined8 *)puVar13[-2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[-2]" identifier [ number_literal ]))) ;) }))) })) (expression_statement "puVar13[-1] = sVar1;" (assignment_expression "puVar13[-1] = sVar1" (subscript_expression "puVar13[-1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((long)puVar7 + sVar1) = 0;" (assignment_expression "*(undefined1 *)((long)puVar7 + sVar1) = 0" (pointer_expression "*(undefined1 *)((long)puVar7 + sVar1)" * (cast_expression "(undefined1 *)((long)puVar7 + sVar1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar7 + sVar1)" ( (binary_expression "(long)puVar7 + sVar1" (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "uVar2 = local_58;" (assignment_expression "uVar2 = local_58" identifier = identifier) ;) }) (else_clause "else {\n          if (puVar7 == puVar13) {\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n          }\n          else {\n            uVar2 = *puVar13;\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n            local_68 = puVar7;\n            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;\n          }\n          local_68 = &local_58;\n          uVar2 = local_58;\n        }" else (compound_statement "{\n          if (puVar7 == puVar13) {\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n          }\n          else {\n            uVar2 = *puVar13;\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n            local_68 = puVar7;\n            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;\n          }\n          local_68 = &local_58;\n          uVar2 = local_58;\n        }" { (if_statement "if (puVar7 == puVar13) {\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n          }\n          else {\n            uVar2 = *puVar13;\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n            local_68 = puVar7;\n            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;\n          }" if (parenthesized_expression "(puVar7 == puVar13)" ( (binary_expression "puVar7 == puVar13" identifier == identifier) )) (compound_statement "{\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n          }" { (expression_statement "puVar13[-2] = local_68;" (assignment_expression "puVar13[-2] = local_68" (subscript_expression "puVar13[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[-1] = sVar1;" (assignment_expression "puVar13[-1] = sVar1" (subscript_expression "puVar13[-1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar13 = local_58;" (assignment_expression "*puVar13 = local_58" (pointer_expression "*puVar13" * identifier) = identifier) ;) }) (else_clause "else {\n            uVar2 = *puVar13;\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n            local_68 = puVar7;\n            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;\n          }" else (compound_statement "{\n            uVar2 = *puVar13;\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n            local_68 = puVar7;\n            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;\n          }" { (expression_statement "uVar2 = *puVar13;" (assignment_expression "uVar2 = *puVar13" identifier = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "puVar13[-2] = local_68;" (assignment_expression "puVar13[-2] = local_68" (subscript_expression "puVar13[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[-1] = sVar1;" (assignment_expression "puVar13[-1] = sVar1" (subscript_expression "puVar13[-1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar13 = local_58;" (assignment_expression "*puVar13 = local_58" (pointer_expression "*puVar13" * identifier) = identifier) ;) (expression_statement "local_68 = puVar7;" (assignment_expression "local_68 = puVar7" identifier = identifier) ;) (if_statement "if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;" if (parenthesized_expression "(puVar7 != (undefined8 *)0x0)" ( (binary_expression "puVar7 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0025f996;" goto statement_identifier ;)) }))) (expression_statement "local_68 = &local_58;" (assignment_expression "local_68 = &local_58" identifier = (pointer_expression "&local_58" & identifier)) ;) (expression_statement "uVar2 = local_58;" (assignment_expression "uVar2 = local_58" identifier = identifier) ;) }))) (labeled_statement "LAB_0025f996:\n        local_58 = uVar2;" statement_identifier : (expression_statement "local_58 = uVar2;" (assignment_expression "local_58 = uVar2" identifier = identifier) ;)) (expression_statement "*(undefined1 *)local_68 = 0;" (assignment_expression "*(undefined1 *)local_68 = 0" (pointer_expression "*(undefined1 *)local_68" * (cast_expression "(undefined1 *)local_68" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar13[2] = local_48;" (assignment_expression "puVar13[2] = local_48" (subscript_expression "puVar13[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[3] = local_40;" (assignment_expression "puVar13[3] = local_40" (subscript_expression "puVar13[3]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (local_68 != &local_58) {\n          FUN_002dac60();\n        }" if (parenthesized_expression "(local_68 != &local_58)" ( (binary_expression "local_68 != &local_58" identifier != (pointer_expression "&local_58" & identifier)) )) (compound_statement "{\n          FUN_002dac60();\n        }" { (expression_statement "FUN_002dac60();" (call_expression "FUN_002dac60()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "lVar10 = lVar10 + 1;" (assignment_expression "lVar10 = lVar10 + 1" identifier = (binary_expression "lVar10 + 1" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar15 + 10;" (assignment_expression "puVar15 = puVar15 + 10" identifier = (binary_expression "puVar15 + 10" identifier + number_literal)) ;) (expression_statement "puVar13 = puVar13 + 10;" (assignment_expression "puVar13 = puVar13 + 10" identifier = (binary_expression "puVar13 + 10" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar14 != lVar10)" ( (binary_expression "lVar14 != lVar10" identifier != identifier) )) ;) (expression_statement "local_a0 = local_a0 + lVar14 * 0x50;" (assignment_expression "local_a0 = local_a0 + lVar14 * 0x50" identifier = (binary_expression "local_a0 + lVar14 * 0x50" identifier + (binary_expression "lVar14 * 0x50" identifier * number_literal))) ;) })) (if_statement "if (local_a8 % lVar11 == 0) {\n      return lVar8;\n    }" if (parenthesized_expression "(local_a8 % lVar11 == 0)" ( (binary_expression "local_a8 % lVar11 == 0" (binary_expression "local_a8 % lVar11" identifier % identifier) == number_literal) )) (compound_statement "{\n      return lVar8;\n    }" { (return_statement "return lVar8;" return identifier ;) })) (expression_statement "lVar12 = lVar11 - local_a8 % lVar11;" (assignment_expression "lVar12 = lVar11 - local_a8 % lVar11" identifier = (binary_expression "lVar11 - local_a8 % lVar11" identifier - (binary_expression "local_a8 % lVar11" identifier % identifier))) ;) (expression_statement "lVar10 = lVar11;" (assignment_expression "lVar10 = lVar11" identifier = identifier) ;) (while_statement "while (lVar14 = lVar10 - lVar12, lVar11 = lVar12, local_a8 = lVar10, lVar14 <= lVar12) {\nLAB_0025fb1a:\n      lVar10 = lVar14;\n      lVar11 = local_a8 * 0x50 + local_a0;\n      local_a0 = lVar11 + lVar10 * -0x50;\n      if (0 < lVar12) {\n        puVar15 = (undefined8 *)(local_a0 + -0x20);\n        puVar13 = (undefined8 *)(lVar11 + -0x20);\n        lVar11 = 0;\n        do {\n          uVar2 = puVar15[-6];\n          uVar4 = puVar15[-5];\n          uVar5 = puVar15[-4];\n          uVar6 = puVar15[-3];\n          local_68 = (undefined8 *)puVar15[-2];\n          if (local_68 == puVar15) {\n            local_58 = *puVar15;\n            uStack_50 = puVar15[1];\n            local_68 = &local_58;\n          }\n          else {\n            local_58 = *puVar15;\n          }\n          sVar1 = puVar15[-1];\n          *(undefined1 *)puVar15 = 0;\n          puVar15[-1] = 0;\n          uVar3 = puVar13[-5];\n          local_48 = puVar15[2];\n          puVar15[-6] = puVar13[-6];\n          puVar15[-5] = uVar3;\n          local_40 = puVar15[3];\n          puVar15[-2] = puVar15;\n          puVar15[-4] = puVar13[-4];\n          *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n          if ((undefined8 *)puVar13[-2] == puVar13) {\n            sVar9 = puVar13[-1];\n            if (sVar9 != 0) {\n              if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }\n            }\n            puVar15[-1] = sVar9;\n            *(undefined1 *)(puVar15[-2] + sVar9) = 0;\n          }\n          else {\n            puVar15[-2] = (undefined8 *)puVar13[-2];\n            puVar15[-1] = puVar13[-1];\n            *puVar15 = *puVar13;\n            puVar13[-2] = puVar13;\n          }\n          puVar13[-1] = 0;\n          *(undefined1 *)puVar13[-2] = 0;\n          puVar15[2] = puVar13[2];\n          puVar15[3] = puVar13[3];\n          puVar7 = (undefined8 *)puVar13[-2];\n          puVar13[-6] = uVar2;\n          puVar13[-5] = uVar4;\n          puVar13[-4] = uVar5;\n          uStack_70 = (undefined4)uVar6;\n          *(undefined4 *)(puVar13 + -3) = uStack_70;\n          if (local_68 == &local_58) {\n            if (sVar1 != 0) {\n              if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n            }\n            puVar13[-1] = sVar1;\n            *(undefined1 *)((long)puVar7 + sVar1) = 0;\n            uVar2 = local_58;\n          }\n          else {\n            if (puVar7 == puVar13) {\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }\n            else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }\n            local_68 = &local_58;\n            uVar2 = local_58;\n          }\nLAB_0025fc78:\n          local_58 = uVar2;\n          *(undefined1 *)local_68 = 0;\n          puVar13[2] = local_48;\n          puVar13[3] = local_40;\n          if (local_68 != &local_58) {\n            FUN_002dac60();\n          }\n          lVar11 = lVar11 + 1;\n          puVar15 = puVar15 + -10;\n          puVar13 = puVar13 + -10;\n        } while (lVar11 != lVar12);\n        local_a0 = local_a0 + lVar11 * -0x50;\n      }\n      lVar12 = local_a8 % lVar10;\n      if (lVar12 == 0) {\n        return lVar8;\n      }\n    }" while (parenthesized_expression "(lVar14 = lVar10 - lVar12, lVar11 = lVar12, local_a8 = lVar10, lVar14 <= lVar12)" ( (comma_expression "lVar14 = lVar10 - lVar12, lVar11 = lVar12, local_a8 = lVar10, lVar14 <= lVar12" (assignment_expression "lVar14 = lVar10 - lVar12" identifier = (binary_expression "lVar10 - lVar12" identifier - identifier)) , (comma_expression "lVar11 = lVar12, local_a8 = lVar10, lVar14 <= lVar12" (assignment_expression "lVar11 = lVar12" identifier = identifier) , (comma_expression "local_a8 = lVar10, lVar14 <= lVar12" (assignment_expression "local_a8 = lVar10" identifier = identifier) , (binary_expression "lVar14 <= lVar12" identifier <= identifier)))) )) (compound_statement "{\nLAB_0025fb1a:\n      lVar10 = lVar14;\n      lVar11 = local_a8 * 0x50 + local_a0;\n      local_a0 = lVar11 + lVar10 * -0x50;\n      if (0 < lVar12) {\n        puVar15 = (undefined8 *)(local_a0 + -0x20);\n        puVar13 = (undefined8 *)(lVar11 + -0x20);\n        lVar11 = 0;\n        do {\n          uVar2 = puVar15[-6];\n          uVar4 = puVar15[-5];\n          uVar5 = puVar15[-4];\n          uVar6 = puVar15[-3];\n          local_68 = (undefined8 *)puVar15[-2];\n          if (local_68 == puVar15) {\n            local_58 = *puVar15;\n            uStack_50 = puVar15[1];\n            local_68 = &local_58;\n          }\n          else {\n            local_58 = *puVar15;\n          }\n          sVar1 = puVar15[-1];\n          *(undefined1 *)puVar15 = 0;\n          puVar15[-1] = 0;\n          uVar3 = puVar13[-5];\n          local_48 = puVar15[2];\n          puVar15[-6] = puVar13[-6];\n          puVar15[-5] = uVar3;\n          local_40 = puVar15[3];\n          puVar15[-2] = puVar15;\n          puVar15[-4] = puVar13[-4];\n          *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n          if ((undefined8 *)puVar13[-2] == puVar13) {\n            sVar9 = puVar13[-1];\n            if (sVar9 != 0) {\n              if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }\n            }\n            puVar15[-1] = sVar9;\n            *(undefined1 *)(puVar15[-2] + sVar9) = 0;\n          }\n          else {\n            puVar15[-2] = (undefined8 *)puVar13[-2];\n            puVar15[-1] = puVar13[-1];\n            *puVar15 = *puVar13;\n            puVar13[-2] = puVar13;\n          }\n          puVar13[-1] = 0;\n          *(undefined1 *)puVar13[-2] = 0;\n          puVar15[2] = puVar13[2];\n          puVar15[3] = puVar13[3];\n          puVar7 = (undefined8 *)puVar13[-2];\n          puVar13[-6] = uVar2;\n          puVar13[-5] = uVar4;\n          puVar13[-4] = uVar5;\n          uStack_70 = (undefined4)uVar6;\n          *(undefined4 *)(puVar13 + -3) = uStack_70;\n          if (local_68 == &local_58) {\n            if (sVar1 != 0) {\n              if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n            }\n            puVar13[-1] = sVar1;\n            *(undefined1 *)((long)puVar7 + sVar1) = 0;\n            uVar2 = local_58;\n          }\n          else {\n            if (puVar7 == puVar13) {\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }\n            else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }\n            local_68 = &local_58;\n            uVar2 = local_58;\n          }\nLAB_0025fc78:\n          local_58 = uVar2;\n          *(undefined1 *)local_68 = 0;\n          puVar13[2] = local_48;\n          puVar13[3] = local_40;\n          if (local_68 != &local_58) {\n            FUN_002dac60();\n          }\n          lVar11 = lVar11 + 1;\n          puVar15 = puVar15 + -10;\n          puVar13 = puVar13 + -10;\n        } while (lVar11 != lVar12);\n        local_a0 = local_a0 + lVar11 * -0x50;\n      }\n      lVar12 = local_a8 % lVar10;\n      if (lVar12 == 0) {\n        return lVar8;\n      }\n    }" { (labeled_statement "LAB_0025fb1a:\n      lVar10 = lVar14;" statement_identifier : (expression_statement "lVar10 = lVar14;" (assignment_expression "lVar10 = lVar14" identifier = identifier) ;)) (expression_statement "lVar11 = local_a8 * 0x50 + local_a0;" (assignment_expression "lVar11 = local_a8 * 0x50 + local_a0" identifier = (binary_expression "local_a8 * 0x50 + local_a0" (binary_expression "local_a8 * 0x50" identifier * number_literal) + identifier)) ;) (expression_statement "local_a0 = lVar11 + lVar10 * -0x50;" (assignment_expression "local_a0 = lVar11 + lVar10 * -0x50" identifier = (binary_expression "lVar11 + lVar10 * -0x50" identifier + (binary_expression "lVar10 * -0x50" identifier * number_literal))) ;) (if_statement "if (0 < lVar12) {\n        puVar15 = (undefined8 *)(local_a0 + -0x20);\n        puVar13 = (undefined8 *)(lVar11 + -0x20);\n        lVar11 = 0;\n        do {\n          uVar2 = puVar15[-6];\n          uVar4 = puVar15[-5];\n          uVar5 = puVar15[-4];\n          uVar6 = puVar15[-3];\n          local_68 = (undefined8 *)puVar15[-2];\n          if (local_68 == puVar15) {\n            local_58 = *puVar15;\n            uStack_50 = puVar15[1];\n            local_68 = &local_58;\n          }\n          else {\n            local_58 = *puVar15;\n          }\n          sVar1 = puVar15[-1];\n          *(undefined1 *)puVar15 = 0;\n          puVar15[-1] = 0;\n          uVar3 = puVar13[-5];\n          local_48 = puVar15[2];\n          puVar15[-6] = puVar13[-6];\n          puVar15[-5] = uVar3;\n          local_40 = puVar15[3];\n          puVar15[-2] = puVar15;\n          puVar15[-4] = puVar13[-4];\n          *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n          if ((undefined8 *)puVar13[-2] == puVar13) {\n            sVar9 = puVar13[-1];\n            if (sVar9 != 0) {\n              if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }\n            }\n            puVar15[-1] = sVar9;\n            *(undefined1 *)(puVar15[-2] + sVar9) = 0;\n          }\n          else {\n            puVar15[-2] = (undefined8 *)puVar13[-2];\n            puVar15[-1] = puVar13[-1];\n            *puVar15 = *puVar13;\n            puVar13[-2] = puVar13;\n          }\n          puVar13[-1] = 0;\n          *(undefined1 *)puVar13[-2] = 0;\n          puVar15[2] = puVar13[2];\n          puVar15[3] = puVar13[3];\n          puVar7 = (undefined8 *)puVar13[-2];\n          puVar13[-6] = uVar2;\n          puVar13[-5] = uVar4;\n          puVar13[-4] = uVar5;\n          uStack_70 = (undefined4)uVar6;\n          *(undefined4 *)(puVar13 + -3) = uStack_70;\n          if (local_68 == &local_58) {\n            if (sVar1 != 0) {\n              if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n            }\n            puVar13[-1] = sVar1;\n            *(undefined1 *)((long)puVar7 + sVar1) = 0;\n            uVar2 = local_58;\n          }\n          else {\n            if (puVar7 == puVar13) {\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }\n            else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }\n            local_68 = &local_58;\n            uVar2 = local_58;\n          }\nLAB_0025fc78:\n          local_58 = uVar2;\n          *(undefined1 *)local_68 = 0;\n          puVar13[2] = local_48;\n          puVar13[3] = local_40;\n          if (local_68 != &local_58) {\n            FUN_002dac60();\n          }\n          lVar11 = lVar11 + 1;\n          puVar15 = puVar15 + -10;\n          puVar13 = puVar13 + -10;\n        } while (lVar11 != lVar12);\n        local_a0 = local_a0 + lVar11 * -0x50;\n      }" if (parenthesized_expression "(0 < lVar12)" ( (binary_expression "0 < lVar12" number_literal < identifier) )) (compound_statement "{\n        puVar15 = (undefined8 *)(local_a0 + -0x20);\n        puVar13 = (undefined8 *)(lVar11 + -0x20);\n        lVar11 = 0;\n        do {\n          uVar2 = puVar15[-6];\n          uVar4 = puVar15[-5];\n          uVar5 = puVar15[-4];\n          uVar6 = puVar15[-3];\n          local_68 = (undefined8 *)puVar15[-2];\n          if (local_68 == puVar15) {\n            local_58 = *puVar15;\n            uStack_50 = puVar15[1];\n            local_68 = &local_58;\n          }\n          else {\n            local_58 = *puVar15;\n          }\n          sVar1 = puVar15[-1];\n          *(undefined1 *)puVar15 = 0;\n          puVar15[-1] = 0;\n          uVar3 = puVar13[-5];\n          local_48 = puVar15[2];\n          puVar15[-6] = puVar13[-6];\n          puVar15[-5] = uVar3;\n          local_40 = puVar15[3];\n          puVar15[-2] = puVar15;\n          puVar15[-4] = puVar13[-4];\n          *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n          if ((undefined8 *)puVar13[-2] == puVar13) {\n            sVar9 = puVar13[-1];\n            if (sVar9 != 0) {\n              if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }\n            }\n            puVar15[-1] = sVar9;\n            *(undefined1 *)(puVar15[-2] + sVar9) = 0;\n          }\n          else {\n            puVar15[-2] = (undefined8 *)puVar13[-2];\n            puVar15[-1] = puVar13[-1];\n            *puVar15 = *puVar13;\n            puVar13[-2] = puVar13;\n          }\n          puVar13[-1] = 0;\n          *(undefined1 *)puVar13[-2] = 0;\n          puVar15[2] = puVar13[2];\n          puVar15[3] = puVar13[3];\n          puVar7 = (undefined8 *)puVar13[-2];\n          puVar13[-6] = uVar2;\n          puVar13[-5] = uVar4;\n          puVar13[-4] = uVar5;\n          uStack_70 = (undefined4)uVar6;\n          *(undefined4 *)(puVar13 + -3) = uStack_70;\n          if (local_68 == &local_58) {\n            if (sVar1 != 0) {\n              if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n            }\n            puVar13[-1] = sVar1;\n            *(undefined1 *)((long)puVar7 + sVar1) = 0;\n            uVar2 = local_58;\n          }\n          else {\n            if (puVar7 == puVar13) {\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }\n            else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }\n            local_68 = &local_58;\n            uVar2 = local_58;\n          }\nLAB_0025fc78:\n          local_58 = uVar2;\n          *(undefined1 *)local_68 = 0;\n          puVar13[2] = local_48;\n          puVar13[3] = local_40;\n          if (local_68 != &local_58) {\n            FUN_002dac60();\n          }\n          lVar11 = lVar11 + 1;\n          puVar15 = puVar15 + -10;\n          puVar13 = puVar13 + -10;\n        } while (lVar11 != lVar12);\n        local_a0 = local_a0 + lVar11 * -0x50;\n      }" { (expression_statement "puVar15 = (undefined8 *)(local_a0 + -0x20);" (assignment_expression "puVar15 = (undefined8 *)(local_a0 + -0x20)" identifier = (cast_expression "(undefined8 *)(local_a0 + -0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a0 + -0x20)" ( (binary_expression "local_a0 + -0x20" identifier + number_literal) )))) ;) (expression_statement "puVar13 = (undefined8 *)(lVar11 + -0x20);" (assignment_expression "puVar13 = (undefined8 *)(lVar11 + -0x20)" identifier = (cast_expression "(undefined8 *)(lVar11 + -0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + -0x20)" ( (binary_expression "lVar11 + -0x20" identifier + number_literal) )))) ;) (expression_statement "lVar11 = 0;" (assignment_expression "lVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n          uVar2 = puVar15[-6];\n          uVar4 = puVar15[-5];\n          uVar5 = puVar15[-4];\n          uVar6 = puVar15[-3];\n          local_68 = (undefined8 *)puVar15[-2];\n          if (local_68 == puVar15) {\n            local_58 = *puVar15;\n            uStack_50 = puVar15[1];\n            local_68 = &local_58;\n          }\n          else {\n            local_58 = *puVar15;\n          }\n          sVar1 = puVar15[-1];\n          *(undefined1 *)puVar15 = 0;\n          puVar15[-1] = 0;\n          uVar3 = puVar13[-5];\n          local_48 = puVar15[2];\n          puVar15[-6] = puVar13[-6];\n          puVar15[-5] = uVar3;\n          local_40 = puVar15[3];\n          puVar15[-2] = puVar15;\n          puVar15[-4] = puVar13[-4];\n          *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n          if ((undefined8 *)puVar13[-2] == puVar13) {\n            sVar9 = puVar13[-1];\n            if (sVar9 != 0) {\n              if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }\n            }\n            puVar15[-1] = sVar9;\n            *(undefined1 *)(puVar15[-2] + sVar9) = 0;\n          }\n          else {\n            puVar15[-2] = (undefined8 *)puVar13[-2];\n            puVar15[-1] = puVar13[-1];\n            *puVar15 = *puVar13;\n            puVar13[-2] = puVar13;\n          }\n          puVar13[-1] = 0;\n          *(undefined1 *)puVar13[-2] = 0;\n          puVar15[2] = puVar13[2];\n          puVar15[3] = puVar13[3];\n          puVar7 = (undefined8 *)puVar13[-2];\n          puVar13[-6] = uVar2;\n          puVar13[-5] = uVar4;\n          puVar13[-4] = uVar5;\n          uStack_70 = (undefined4)uVar6;\n          *(undefined4 *)(puVar13 + -3) = uStack_70;\n          if (local_68 == &local_58) {\n            if (sVar1 != 0) {\n              if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n            }\n            puVar13[-1] = sVar1;\n            *(undefined1 *)((long)puVar7 + sVar1) = 0;\n            uVar2 = local_58;\n          }\n          else {\n            if (puVar7 == puVar13) {\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }\n            else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }\n            local_68 = &local_58;\n            uVar2 = local_58;\n          }\nLAB_0025fc78:\n          local_58 = uVar2;\n          *(undefined1 *)local_68 = 0;\n          puVar13[2] = local_48;\n          puVar13[3] = local_40;\n          if (local_68 != &local_58) {\n            FUN_002dac60();\n          }\n          lVar11 = lVar11 + 1;\n          puVar15 = puVar15 + -10;\n          puVar13 = puVar13 + -10;\n        } while (lVar11 != lVar12);" do (compound_statement "{\n          uVar2 = puVar15[-6];\n          uVar4 = puVar15[-5];\n          uVar5 = puVar15[-4];\n          uVar6 = puVar15[-3];\n          local_68 = (undefined8 *)puVar15[-2];\n          if (local_68 == puVar15) {\n            local_58 = *puVar15;\n            uStack_50 = puVar15[1];\n            local_68 = &local_58;\n          }\n          else {\n            local_58 = *puVar15;\n          }\n          sVar1 = puVar15[-1];\n          *(undefined1 *)puVar15 = 0;\n          puVar15[-1] = 0;\n          uVar3 = puVar13[-5];\n          local_48 = puVar15[2];\n          puVar15[-6] = puVar13[-6];\n          puVar15[-5] = uVar3;\n          local_40 = puVar15[3];\n          puVar15[-2] = puVar15;\n          puVar15[-4] = puVar13[-4];\n          *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n          if ((undefined8 *)puVar13[-2] == puVar13) {\n            sVar9 = puVar13[-1];\n            if (sVar9 != 0) {\n              if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }\n            }\n            puVar15[-1] = sVar9;\n            *(undefined1 *)(puVar15[-2] + sVar9) = 0;\n          }\n          else {\n            puVar15[-2] = (undefined8 *)puVar13[-2];\n            puVar15[-1] = puVar13[-1];\n            *puVar15 = *puVar13;\n            puVar13[-2] = puVar13;\n          }\n          puVar13[-1] = 0;\n          *(undefined1 *)puVar13[-2] = 0;\n          puVar15[2] = puVar13[2];\n          puVar15[3] = puVar13[3];\n          puVar7 = (undefined8 *)puVar13[-2];\n          puVar13[-6] = uVar2;\n          puVar13[-5] = uVar4;\n          puVar13[-4] = uVar5;\n          uStack_70 = (undefined4)uVar6;\n          *(undefined4 *)(puVar13 + -3) = uStack_70;\n          if (local_68 == &local_58) {\n            if (sVar1 != 0) {\n              if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n            }\n            puVar13[-1] = sVar1;\n            *(undefined1 *)((long)puVar7 + sVar1) = 0;\n            uVar2 = local_58;\n          }\n          else {\n            if (puVar7 == puVar13) {\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }\n            else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }\n            local_68 = &local_58;\n            uVar2 = local_58;\n          }\nLAB_0025fc78:\n          local_58 = uVar2;\n          *(undefined1 *)local_68 = 0;\n          puVar13[2] = local_48;\n          puVar13[3] = local_40;\n          if (local_68 != &local_58) {\n            FUN_002dac60();\n          }\n          lVar11 = lVar11 + 1;\n          puVar15 = puVar15 + -10;\n          puVar13 = puVar13 + -10;\n        }" { (expression_statement "uVar2 = puVar15[-6];" (assignment_expression "uVar2 = puVar15[-6]" identifier = (subscript_expression "puVar15[-6]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = puVar15[-5];" (assignment_expression "uVar4 = puVar15[-5]" identifier = (subscript_expression "puVar15[-5]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = puVar15[-4];" (assignment_expression "uVar5 = puVar15[-4]" identifier = (subscript_expression "puVar15[-4]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = puVar15[-3];" (assignment_expression "uVar6 = puVar15[-3]" identifier = (subscript_expression "puVar15[-3]" identifier [ number_literal ])) ;) (expression_statement "local_68 = (undefined8 *)puVar15[-2];" (assignment_expression "local_68 = (undefined8 *)puVar15[-2]" identifier = (cast_expression "(undefined8 *)puVar15[-2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar15[-2]" identifier [ number_literal ]))) ;) (if_statement "if (local_68 == puVar15) {\n            local_58 = *puVar15;\n            uStack_50 = puVar15[1];\n            local_68 = &local_58;\n          }\n          else {\n            local_58 = *puVar15;\n          }" if (parenthesized_expression "(local_68 == puVar15)" ( (binary_expression "local_68 == puVar15" identifier == identifier) )) (compound_statement "{\n            local_58 = *puVar15;\n            uStack_50 = puVar15[1];\n            local_68 = &local_58;\n          }" { (expression_statement "local_58 = *puVar15;" (assignment_expression "local_58 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;) (expression_statement "uStack_50 = puVar15[1];" (assignment_expression "uStack_50 = puVar15[1]" identifier = (subscript_expression "puVar15[1]" identifier [ number_literal ])) ;) (expression_statement "local_68 = &local_58;" (assignment_expression "local_68 = &local_58" identifier = (pointer_expression "&local_58" & identifier)) ;) }) (else_clause "else {\n            local_58 = *puVar15;\n          }" else (compound_statement "{\n            local_58 = *puVar15;\n          }" { (expression_statement "local_58 = *puVar15;" (assignment_expression "local_58 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;) }))) (expression_statement "sVar1 = puVar15[-1];" (assignment_expression "sVar1 = puVar15[-1]" identifier = (subscript_expression "puVar15[-1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)puVar15 = 0;" (assignment_expression "*(undefined1 *)puVar15 = 0" (pointer_expression "*(undefined1 *)puVar15" * (cast_expression "(undefined1 *)puVar15" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar15[-1] = 0;" (assignment_expression "puVar15[-1] = 0" (subscript_expression "puVar15[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar3 = puVar13[-5];" (assignment_expression "uVar3 = puVar13[-5]" identifier = (subscript_expression "puVar13[-5]" identifier [ number_literal ])) ;) (expression_statement "local_48 = puVar15[2];" (assignment_expression "local_48 = puVar15[2]" identifier = (subscript_expression "puVar15[2]" identifier [ number_literal ])) ;) (expression_statement "puVar15[-6] = puVar13[-6];" (assignment_expression "puVar15[-6] = puVar13[-6]" (subscript_expression "puVar15[-6]" identifier [ number_literal ]) = (subscript_expression "puVar13[-6]" identifier [ number_literal ])) ;) (expression_statement "puVar15[-5] = uVar3;" (assignment_expression "puVar15[-5] = uVar3" (subscript_expression "puVar15[-5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_40 = puVar15[3];" (assignment_expression "local_40 = puVar15[3]" identifier = (subscript_expression "puVar15[3]" identifier [ number_literal ])) ;) (expression_statement "puVar15[-2] = puVar15;" (assignment_expression "puVar15[-2] = puVar15" (subscript_expression "puVar15[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[-4] = puVar13[-4];" (assignment_expression "puVar15[-4] = puVar13[-4]" (subscript_expression "puVar15[-4]" identifier [ number_literal ]) = (subscript_expression "puVar13[-4]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);" (assignment_expression "*(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3)" (pointer_expression "*(undefined4 *)(puVar15 + -3)" * (cast_expression "(undefined4 *)(puVar15 + -3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -3)" ( (binary_expression "puVar15 + -3" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar13 + -3)" * (cast_expression "(undefined4 *)(puVar13 + -3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -3)" ( (binary_expression "puVar13 + -3" identifier + number_literal) ))))) ;) (if_statement "if ((undefined8 *)puVar13[-2] == puVar13) {\n            sVar9 = puVar13[-1];\n            if (sVar9 != 0) {\n              if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }\n            }\n            puVar15[-1] = sVar9;\n            *(undefined1 *)(puVar15[-2] + sVar9) = 0;\n          }\n          else {\n            puVar15[-2] = (undefined8 *)puVar13[-2];\n            puVar15[-1] = puVar13[-1];\n            *puVar15 = *puVar13;\n            puVar13[-2] = puVar13;\n          }" if (parenthesized_expression "((undefined8 *)puVar13[-2] == puVar13)" ( (binary_expression "(undefined8 *)puVar13[-2] == puVar13" (cast_expression "(undefined8 *)puVar13[-2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[-2]" identifier [ number_literal ])) == identifier) )) (compound_statement "{\n            sVar9 = puVar13[-1];\n            if (sVar9 != 0) {\n              if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }\n            }\n            puVar15[-1] = sVar9;\n            *(undefined1 *)(puVar15[-2] + sVar9) = 0;\n          }" { (expression_statement "sVar9 = puVar13[-1];" (assignment_expression "sVar9 = puVar13[-1]" identifier = (subscript_expression "puVar13[-1]" identifier [ number_literal ])) ;) (if_statement "if (sVar9 != 0) {\n              if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }\n            }" if (parenthesized_expression "(sVar9 != 0)" ( (binary_expression "sVar9 != 0" identifier != number_literal) )) (compound_statement "{\n              if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }\n            }" { (if_statement "if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }" if (parenthesized_expression "(sVar9 == 1)" ( (binary_expression "sVar9 == 1" identifier == number_literal) )) (compound_statement "{\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }" { (expression_statement "*(undefined1 *)puVar15 = *(undefined1 *)puVar13;" (assignment_expression "*(undefined1 *)puVar15 = *(undefined1 *)puVar13" (pointer_expression "*(undefined1 *)puVar15" * (cast_expression "(undefined1 *)puVar15" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined1 *)puVar13" * (cast_expression "(undefined1 *)puVar13" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "sVar9 = puVar13[-1];" (assignment_expression "sVar9 = puVar13[-1]" identifier = (subscript_expression "puVar13[-1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }" else (compound_statement "{\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }" { (expression_statement "memcpy(puVar15,puVar13,sVar9);" (call_expression "memcpy(puVar15,puVar13,sVar9)" identifier (argument_list "(puVar15,puVar13,sVar9)" ( identifier , identifier , identifier ))) ;) (expression_statement "sVar9 = puVar13[-1];" (assignment_expression "sVar9 = puVar13[-1]" identifier = (subscript_expression "puVar13[-1]" identifier [ number_literal ])) ;) }))) })) (expression_statement "puVar15[-1] = sVar9;" (assignment_expression "puVar15[-1] = sVar9" (subscript_expression "puVar15[-1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(puVar15[-2] + sVar9) = 0;" (assignment_expression "*(undefined1 *)(puVar15[-2] + sVar9) = 0" (pointer_expression "*(undefined1 *)(puVar15[-2] + sVar9)" * (cast_expression "(undefined1 *)(puVar15[-2] + sVar9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15[-2] + sVar9)" ( (binary_expression "puVar15[-2] + sVar9" (subscript_expression "puVar15[-2]" identifier [ number_literal ]) + identifier) )))) = number_literal) ;) }) (else_clause "else {\n            puVar15[-2] = (undefined8 *)puVar13[-2];\n            puVar15[-1] = puVar13[-1];\n            *puVar15 = *puVar13;\n            puVar13[-2] = puVar13;\n          }" else (compound_statement "{\n            puVar15[-2] = (undefined8 *)puVar13[-2];\n            puVar15[-1] = puVar13[-1];\n            *puVar15 = *puVar13;\n            puVar13[-2] = puVar13;\n          }" { (expression_statement "puVar15[-2] = (undefined8 *)puVar13[-2];" (assignment_expression "puVar15[-2] = (undefined8 *)puVar13[-2]" (subscript_expression "puVar15[-2]" identifier [ number_literal ]) = (cast_expression "(undefined8 *)puVar13[-2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[-2]" identifier [ number_literal ]))) ;) (expression_statement "puVar15[-1] = puVar13[-1];" (assignment_expression "puVar15[-1] = puVar13[-1]" (subscript_expression "puVar15[-1]" identifier [ number_literal ]) = (subscript_expression "puVar13[-1]" identifier [ number_literal ])) ;) (expression_statement "*puVar15 = *puVar13;" (assignment_expression "*puVar15 = *puVar13" (pointer_expression "*puVar15" * identifier) = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "puVar13[-2] = puVar13;" (assignment_expression "puVar13[-2] = puVar13" (subscript_expression "puVar13[-2]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "puVar13[-1] = 0;" (assignment_expression "puVar13[-1] = 0" (subscript_expression "puVar13[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)puVar13[-2] = 0;" (assignment_expression "*(undefined1 *)puVar13[-2] = 0" (pointer_expression "*(undefined1 *)puVar13[-2]" * (cast_expression "(undefined1 *)puVar13[-2]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[-2]" identifier [ number_literal ]))) = number_literal) ;) (expression_statement "puVar15[2] = puVar13[2];" (assignment_expression "puVar15[2] = puVar13[2]" (subscript_expression "puVar15[2]" identifier [ number_literal ]) = (subscript_expression "puVar13[2]" identifier [ number_literal ])) ;) (expression_statement "puVar15[3] = puVar13[3];" (assignment_expression "puVar15[3] = puVar13[3]" (subscript_expression "puVar15[3]" identifier [ number_literal ]) = (subscript_expression "puVar13[3]" identifier [ number_literal ])) ;) (expression_statement "puVar7 = (undefined8 *)puVar13[-2];" (assignment_expression "puVar7 = (undefined8 *)puVar13[-2]" identifier = (cast_expression "(undefined8 *)puVar13[-2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[-2]" identifier [ number_literal ]))) ;) (expression_statement "puVar13[-6] = uVar2;" (assignment_expression "puVar13[-6] = uVar2" (subscript_expression "puVar13[-6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[-5] = uVar4;" (assignment_expression "puVar13[-5] = uVar4" (subscript_expression "puVar13[-5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[-4] = uVar5;" (assignment_expression "puVar13[-4] = uVar5" (subscript_expression "puVar13[-4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uStack_70 = (undefined4)uVar6;" (assignment_expression "uStack_70 = (undefined4)uVar6" identifier = (cast_expression "(undefined4)uVar6" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) (expression_statement "*(undefined4 *)(puVar13 + -3) = uStack_70;" (assignment_expression "*(undefined4 *)(puVar13 + -3) = uStack_70" (pointer_expression "*(undefined4 *)(puVar13 + -3)" * (cast_expression "(undefined4 *)(puVar13 + -3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -3)" ( (binary_expression "puVar13 + -3" identifier + number_literal) )))) = identifier) ;) (if_statement "if (local_68 == &local_58) {\n            if (sVar1 != 0) {\n              if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n            }\n            puVar13[-1] = sVar1;\n            *(undefined1 *)((long)puVar7 + sVar1) = 0;\n            uVar2 = local_58;\n          }\n          else {\n            if (puVar7 == puVar13) {\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }\n            else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }\n            local_68 = &local_58;\n            uVar2 = local_58;\n          }" if (parenthesized_expression "(local_68 == &local_58)" ( (binary_expression "local_68 == &local_58" identifier == (pointer_expression "&local_58" & identifier)) )) (compound_statement "{\n            if (sVar1 != 0) {\n              if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n            }\n            puVar13[-1] = sVar1;\n            *(undefined1 *)((long)puVar7 + sVar1) = 0;\n            uVar2 = local_58;\n          }" { (if_statement "if (sVar1 != 0) {\n              if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n            }" if (parenthesized_expression "(sVar1 != 0)" ( (binary_expression "sVar1 != 0" identifier != number_literal) )) (compound_statement "{\n              if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n            }" { (if_statement "if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }" if (parenthesized_expression "(sVar1 == 1)" ( (binary_expression "sVar1 == 1" identifier == number_literal) )) (compound_statement "{\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }" { (expression_statement "*(undefined1 *)puVar7 = (undefined1)local_58;" (assignment_expression "*(undefined1 *)puVar7 = (undefined1)local_58" (pointer_expression "*(undefined1 *)puVar7" * (cast_expression "(undefined1 *)puVar7" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(undefined1)local_58" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "puVar7 = (undefined8 *)puVar13[-2];" (assignment_expression "puVar7 = (undefined8 *)puVar13[-2]" identifier = (cast_expression "(undefined8 *)puVar13[-2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[-2]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }" else (compound_statement "{\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }" { (expression_statement "memcpy(puVar7,&local_58,sVar1);" (call_expression "memcpy(puVar7,&local_58,sVar1)" identifier (argument_list "(puVar7,&local_58,sVar1)" ( identifier , (pointer_expression "&local_58" & identifier) , identifier ))) ;) (expression_statement "puVar7 = (undefined8 *)puVar13[-2];" (assignment_expression "puVar7 = (undefined8 *)puVar13[-2]" identifier = (cast_expression "(undefined8 *)puVar13[-2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[-2]" identifier [ number_literal ]))) ;) }))) })) (expression_statement "puVar13[-1] = sVar1;" (assignment_expression "puVar13[-1] = sVar1" (subscript_expression "puVar13[-1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((long)puVar7 + sVar1) = 0;" (assignment_expression "*(undefined1 *)((long)puVar7 + sVar1) = 0" (pointer_expression "*(undefined1 *)((long)puVar7 + sVar1)" * (cast_expression "(undefined1 *)((long)puVar7 + sVar1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar7 + sVar1)" ( (binary_expression "(long)puVar7 + sVar1" (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "uVar2 = local_58;" (assignment_expression "uVar2 = local_58" identifier = identifier) ;) }) (else_clause "else {\n            if (puVar7 == puVar13) {\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }\n            else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }\n            local_68 = &local_58;\n            uVar2 = local_58;\n          }" else (compound_statement "{\n            if (puVar7 == puVar13) {\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }\n            else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }\n            local_68 = &local_58;\n            uVar2 = local_58;\n          }" { (if_statement "if (puVar7 == puVar13) {\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }\n            else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }" if (parenthesized_expression "(puVar7 == puVar13)" ( (binary_expression "puVar7 == puVar13" identifier == identifier) )) (compound_statement "{\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }" { (expression_statement "puVar13[-2] = local_68;" (assignment_expression "puVar13[-2] = local_68" (subscript_expression "puVar13[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[-1] = sVar1;" (assignment_expression "puVar13[-1] = sVar1" (subscript_expression "puVar13[-1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar13 = local_58;" (assignment_expression "*puVar13 = local_58" (pointer_expression "*puVar13" * identifier) = identifier) ;) }) (else_clause "else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }" else (compound_statement "{\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }" { (expression_statement "uVar2 = *puVar13;" (assignment_expression "uVar2 = *puVar13" identifier = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "puVar13[-2] = local_68;" (assignment_expression "puVar13[-2] = local_68" (subscript_expression "puVar13[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[-1] = sVar1;" (assignment_expression "puVar13[-1] = sVar1" (subscript_expression "puVar13[-1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar13 = local_58;" (assignment_expression "*puVar13 = local_58" (pointer_expression "*puVar13" * identifier) = identifier) ;) (expression_statement "local_68 = puVar7;" (assignment_expression "local_68 = puVar7" identifier = identifier) ;) (if_statement "if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;" if (parenthesized_expression "(puVar7 != (undefined8 *)0x0)" ( (binary_expression "puVar7 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0025fc78;" goto statement_identifier ;)) }))) (expression_statement "local_68 = &local_58;" (assignment_expression "local_68 = &local_58" identifier = (pointer_expression "&local_58" & identifier)) ;) (expression_statement "uVar2 = local_58;" (assignment_expression "uVar2 = local_58" identifier = identifier) ;) }))) (labeled_statement "LAB_0025fc78:\n          local_58 = uVar2;" statement_identifier : (expression_statement "local_58 = uVar2;" (assignment_expression "local_58 = uVar2" identifier = identifier) ;)) (expression_statement "*(undefined1 *)local_68 = 0;" (assignment_expression "*(undefined1 *)local_68 = 0" (pointer_expression "*(undefined1 *)local_68" * (cast_expression "(undefined1 *)local_68" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar13[2] = local_48;" (assignment_expression "puVar13[2] = local_48" (subscript_expression "puVar13[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[3] = local_40;" (assignment_expression "puVar13[3] = local_40" (subscript_expression "puVar13[3]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (local_68 != &local_58) {\n            FUN_002dac60();\n          }" if (parenthesized_expression "(local_68 != &local_58)" ( (binary_expression "local_68 != &local_58" identifier != (pointer_expression "&local_58" & identifier)) )) (compound_statement "{\n            FUN_002dac60();\n          }" { (expression_statement "FUN_002dac60();" (call_expression "FUN_002dac60()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "lVar11 = lVar11 + 1;" (assignment_expression "lVar11 = lVar11 + 1" identifier = (binary_expression "lVar11 + 1" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar15 + -10;" (assignment_expression "puVar15 = puVar15 + -10" identifier = (binary_expression "puVar15 + -10" identifier + number_literal)) ;) (expression_statement "puVar13 = puVar13 + -10;" (assignment_expression "puVar13 = puVar13 + -10" identifier = (binary_expression "puVar13 + -10" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar11 != lVar12)" ( (binary_expression "lVar11 != lVar12" identifier != identifier) )) ;) (expression_statement "local_a0 = local_a0 + lVar11 * -0x50;" (assignment_expression "local_a0 = local_a0 + lVar11 * -0x50" identifier = (binary_expression "local_a0 + lVar11 * -0x50" identifier + (binary_expression "lVar11 * -0x50" identifier * number_literal))) ;) })) (expression_statement "lVar12 = local_a8 % lVar10;" (assignment_expression "lVar12 = local_a8 % lVar10" identifier = (binary_expression "local_a8 % lVar10" identifier % identifier)) ;) (if_statement "if (lVar12 == 0) {\n        return lVar8;\n      }" if (parenthesized_expression "(lVar12 == 0)" ( (binary_expression "lVar12 == 0" identifier == number_literal) )) (compound_statement "{\n        return lVar8;\n      }" { (return_statement "return lVar8;" return identifier ;) })) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit (function_definition (sized_type_specifier long) (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) 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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == IDENT)) ))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT - IDENT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - IDENT) >> LIT) )) * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (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 { (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 *)) ) IDENT)) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (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) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression & IDENT)) )) (compound_statement { (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 *)) ) IDENT)) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }))) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (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) + IDENT) )))) = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }))))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) - IDENT) & LIT) ))) )))) )) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == IDENT) || (binary_expression (call_expression IDENT (argument_list ( IDENT , IDENT ))) != (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) < LIT))) )) (goto_statement goto statement_identifier ;)) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == IDENT) )) (compound_statement { (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 IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (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) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression & IDENT)) )) (compound_statement { (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 *)) ) IDENT)) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }))) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (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) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT % IDENT) == LIT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (binary_expression IDENT % IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT - IDENT)) , (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT <= IDENT)))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == IDENT) )) (compound_statement { (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 IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) )))) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression & IDENT)) )) (compound_statement { (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 *)) ) IDENT)) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }))) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (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) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT % IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return IDENT ;) })) })) }) while (parenthesized_expression ( BOOL )) ;) })))
(function_definition "long FUN_0025f7d0(long param_1,long param_2,long param_3)\n\n{\n  size_t sVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  undefined8 uVar6;\n  undefined8 *puVar7;\n  long lVar8;\n  size_t sVar9;\n  long lVar10;\n  long lVar11;\n  long lVar12;\n  undefined8 *puVar13;\n  long lVar14;\n  undefined8 *puVar15;\n  long local_a8;\n  long local_a0;\n  undefined4 uStack_70;\n  undefined8 *local_68;\n  undefined8 local_58;\n  undefined8 uStack_50;\n  undefined8 local_48;\n  undefined8 local_40;\n  \n  lVar8 = param_3;\n  if ((param_1 == param_2) || (lVar8 = param_1, param_3 == param_2)) {\n    return lVar8;\n  }\n  lVar10 = param_2 - param_1 >> 4;\n  local_a8 = (param_3 - param_1 >> 4) * -0x3333333333333333;\n  lVar11 = lVar10 * -0x3333333333333333;\n  lVar8 = param_1 + (param_3 - param_2);\n  if (local_a8 + lVar10 * 0x3333333333333333 == lVar11) {\n    puVar15 = (undefined8 *)(param_1 + 0x30);\n    puVar13 = (undefined8 *)(param_2 + 0x30);\n    do {\n      uVar2 = puVar15[-6];\n      uVar4 = puVar15[-5];\n      local_68 = (undefined8 *)puVar15[-2];\n      uVar5 = puVar15[-4];\n      uVar6 = puVar15[-3];\n      if (puVar15 == local_68) {\n        local_58 = *puVar15;\n        uStack_50 = puVar15[1];\n        local_68 = &local_58;\n      }\n      else {\n        local_58 = *puVar15;\n      }\n      sVar1 = puVar15[-1];\n      *(undefined1 *)puVar15 = 0;\n      puVar15[-1] = 0;\n      uVar3 = puVar13[-5];\n      local_48 = puVar15[2];\n      puVar15[-6] = puVar13[-6];\n      puVar15[-5] = uVar3;\n      local_40 = puVar15[3];\n      puVar15[-2] = puVar15;\n      puVar15[-4] = puVar13[-4];\n      *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n      puVar7 = (undefined8 *)puVar13[-2];\n      if (puVar13 == puVar7) {\n        sVar9 = puVar13[-1];\n        if (sVar9 != 0) {\n          if (sVar9 == 1) {\n            *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n            sVar9 = puVar13[-1];\n          }\n          else {\n            memcpy(puVar15,puVar13,sVar9);\n            sVar9 = puVar13[-1];\n          }\n        }\n        puVar15[-1] = sVar9;\n        *(undefined1 *)((long)puVar15 + sVar9) = 0;\n        puVar7 = (undefined8 *)puVar7[-2];\n      }\n      else {\n        puVar15[-2] = puVar7;\n        puVar15[-1] = puVar13[-1];\n        *puVar15 = *puVar13;\n        puVar13[-2] = puVar13;\n        puVar7 = puVar13;\n      }\n      puVar13[-1] = 0;\n      *(undefined1 *)puVar7 = 0;\n      puVar15[2] = puVar13[2];\n      puVar15[3] = puVar13[3];\n      puVar13[-6] = uVar2;\n      puVar13[-5] = uVar4;\n      puVar7 = (undefined8 *)puVar13[-2];\n      puVar13[-4] = uVar5;\n      uStack_70 = (undefined4)uVar6;\n      *(undefined4 *)(puVar13 + -3) = uStack_70;\n      if (local_68 == &local_58) {\n        if (sVar1 != 0) {\n          if (sVar1 == 1) {\n            *(undefined1 *)puVar7 = (undefined1)local_58;\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n          else {\n            memcpy(puVar7,&local_58,sVar1);\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n        }\n        puVar13[-1] = sVar1;\n        *(undefined1 *)((long)puVar7 + sVar1) = 0;\n      }\n      else if (puVar7 == puVar13) {\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n      }\n      else {\n        uVar2 = *puVar13;\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n        if (puVar7 != (undefined8 *)0x0) {\n          local_68 = puVar7;\n          local_58 = uVar2;\n        }\n      }\n      *(undefined1 *)local_68 = 0;\n      puVar13[2] = local_48;\n      puVar13[3] = local_40;\n      if (local_68 != &local_58) {\n        FUN_002dac60();\n      }\n      puVar13 = puVar13 + 10;\n      puVar15 = puVar15 + 10;\n    } while (puVar13 !=\n             (undefined8 *)(param_2 + 0x80 + ((param_2 + -0x50) - param_1 & 0xfffffffffffffff0U)));\n    return param_2;\n  }\n  lVar14 = local_a8 + lVar10 * 0x3333333333333333;\n  lVar12 = lVar11;\n  local_a0 = param_1;\n  if (lVar14 == lVar11 || SBORROW8(lVar14,lVar11) != lVar14 + lVar10 * 0x3333333333333333 < 0)\n  goto LAB_0025fb1a;\n  do {\n    if (0 < lVar14) {\n      lVar10 = 0;\n      puVar13 = (undefined8 *)(local_a0 + 0x30 + lVar11 * 0x50);\n      puVar15 = (undefined8 *)(local_a0 + 0x30);\n      do {\n        uVar2 = puVar15[-6];\n        uVar4 = puVar15[-5];\n        uVar5 = puVar15[-4];\n        uVar6 = puVar15[-3];\n        local_68 = (undefined8 *)puVar15[-2];\n        if (local_68 == puVar15) {\n          local_58 = *puVar15;\n          uStack_50 = puVar15[1];\n          local_68 = &local_58;\n        }\n        else {\n          local_58 = *puVar15;\n        }\n        sVar1 = puVar15[-1];\n        *(undefined1 *)puVar15 = 0;\n        puVar15[-1] = 0;\n        uVar3 = puVar13[-5];\n        local_48 = puVar15[2];\n        puVar15[-6] = puVar13[-6];\n        puVar15[-5] = uVar3;\n        local_40 = puVar15[3];\n        puVar15[-2] = puVar15;\n        puVar15[-4] = puVar13[-4];\n        *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n        if ((undefined8 *)puVar13[-2] == puVar13) {\n          sVar9 = puVar13[-1];\n          if (sVar9 != 0) {\n            if (sVar9 == 1) {\n              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n              sVar9 = puVar13[-1];\n            }\n            else {\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }\n          }\n          puVar15[-1] = sVar9;\n          *(undefined1 *)((long)puVar15 + sVar9) = 0;\n          puVar7 = (undefined8 *)puVar13[-2];\n        }\n        else {\n          puVar15[-2] = (undefined8 *)puVar13[-2];\n          puVar15[-1] = puVar13[-1];\n          *puVar15 = *puVar13;\n          puVar13[-2] = puVar13;\n          puVar7 = puVar13;\n        }\n        puVar13[-1] = 0;\n        *(undefined1 *)puVar7 = 0;\n        puVar15[2] = puVar13[2];\n        puVar15[3] = puVar13[3];\n        puVar13[-6] = uVar2;\n        puVar13[-5] = uVar4;\n        puVar7 = (undefined8 *)puVar13[-2];\n        puVar13[-4] = uVar5;\n        uStack_70 = (undefined4)uVar6;\n        *(undefined4 *)(puVar13 + -3) = uStack_70;\n        if (local_68 == &local_58) {\n          if (sVar1 != 0) {\n            if (sVar1 == 1) {\n              *(undefined1 *)puVar7 = (undefined1)local_58;\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n            else {\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n          }\n          puVar13[-1] = sVar1;\n          *(undefined1 *)((long)puVar7 + sVar1) = 0;\n          uVar2 = local_58;\n        }\n        else {\n          if (puVar7 == puVar13) {\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n          }\n          else {\n            uVar2 = *puVar13;\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n            local_68 = puVar7;\n            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;\n          }\n          local_68 = &local_58;\n          uVar2 = local_58;\n        }\nLAB_0025f996:\n        local_58 = uVar2;\n        *(undefined1 *)local_68 = 0;\n        puVar13[2] = local_48;\n        puVar13[3] = local_40;\n        if (local_68 != &local_58) {\n          FUN_002dac60();\n        }\n        lVar10 = lVar10 + 1;\n        puVar15 = puVar15 + 10;\n        puVar13 = puVar13 + 10;\n      } while (lVar14 != lVar10);\n      local_a0 = local_a0 + lVar14 * 0x50;\n    }\n    if (local_a8 % lVar11 == 0) {\n      return lVar8;\n    }\n    lVar12 = lVar11 - local_a8 % lVar11;\n    lVar10 = lVar11;\n    while (lVar14 = lVar10 - lVar12, lVar11 = lVar12, local_a8 = lVar10, lVar14 <= lVar12) {\nLAB_0025fb1a:\n      lVar10 = lVar14;\n      lVar11 = local_a8 * 0x50 + local_a0;\n      local_a0 = lVar11 + lVar10 * -0x50;\n      if (0 < lVar12) {\n        puVar15 = (undefined8 *)(local_a0 + -0x20);\n        puVar13 = (undefined8 *)(lVar11 + -0x20);\n        lVar11 = 0;\n        do {\n          uVar2 = puVar15[-6];\n          uVar4 = puVar15[-5];\n          uVar5 = puVar15[-4];\n          uVar6 = puVar15[-3];\n          local_68 = (undefined8 *)puVar15[-2];\n          if (local_68 == puVar15) {\n            local_58 = *puVar15;\n            uStack_50 = puVar15[1];\n            local_68 = &local_58;\n          }\n          else {\n            local_58 = *puVar15;\n          }\n          sVar1 = puVar15[-1];\n          *(undefined1 *)puVar15 = 0;\n          puVar15[-1] = 0;\n          uVar3 = puVar13[-5];\n          local_48 = puVar15[2];\n          puVar15[-6] = puVar13[-6];\n          puVar15[-5] = uVar3;\n          local_40 = puVar15[3];\n          puVar15[-2] = puVar15;\n          puVar15[-4] = puVar13[-4];\n          *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n          if ((undefined8 *)puVar13[-2] == puVar13) {\n            sVar9 = puVar13[-1];\n            if (sVar9 != 0) {\n              if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }\n            }\n            puVar15[-1] = sVar9;\n            *(undefined1 *)(puVar15[-2] + sVar9) = 0;\n          }\n          else {\n            puVar15[-2] = (undefined8 *)puVar13[-2];\n            puVar15[-1] = puVar13[-1];\n            *puVar15 = *puVar13;\n            puVar13[-2] = puVar13;\n          }\n          puVar13[-1] = 0;\n          *(undefined1 *)puVar13[-2] = 0;\n          puVar15[2] = puVar13[2];\n          puVar15[3] = puVar13[3];\n          puVar7 = (undefined8 *)puVar13[-2];\n          puVar13[-6] = uVar2;\n          puVar13[-5] = uVar4;\n          puVar13[-4] = uVar5;\n          uStack_70 = (undefined4)uVar6;\n          *(undefined4 *)(puVar13 + -3) = uStack_70;\n          if (local_68 == &local_58) {\n            if (sVar1 != 0) {\n              if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n            }\n            puVar13[-1] = sVar1;\n            *(undefined1 *)((long)puVar7 + sVar1) = 0;\n            uVar2 = local_58;\n          }\n          else {\n            if (puVar7 == puVar13) {\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }\n            else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }\n            local_68 = &local_58;\n            uVar2 = local_58;\n          }\nLAB_0025fc78:\n          local_58 = uVar2;\n          *(undefined1 *)local_68 = 0;\n          puVar13[2] = local_48;\n          puVar13[3] = local_40;\n          if (local_68 != &local_58) {\n            FUN_002dac60();\n          }\n          lVar11 = lVar11 + 1;\n          puVar15 = puVar15 + -10;\n          puVar13 = puVar13 + -10;\n        } while (lVar11 != lVar12);\n        local_a0 = local_a0 + lVar11 * -0x50;\n      }\n      lVar12 = local_a8 % lVar10;\n      if (lVar12 == 0) {\n        return lVar8;\n      }\n    }\n  } while( true );\n}" (sized_type_specifier "long" (long "long")) (function_declarator "FUN_0025f7d0(long param_1,long param_2,long param_3)" (identifier "FUN_0025f7d0") (parameter_list "(long param_1,long param_2,long param_3)" (( "(") (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")) (identifier "param_2")) (, ",") (parameter_declaration "long param_3" (sized_type_specifier "long" (long "long")) (identifier "param_3")) () ")"))) (compound_statement "{\n  size_t sVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  undefined8 uVar6;\n  undefined8 *puVar7;\n  long lVar8;\n  size_t sVar9;\n  long lVar10;\n  long lVar11;\n  long lVar12;\n  undefined8 *puVar13;\n  long lVar14;\n  undefined8 *puVar15;\n  long local_a8;\n  long local_a0;\n  undefined4 uStack_70;\n  undefined8 *local_68;\n  undefined8 local_58;\n  undefined8 uStack_50;\n  undefined8 local_48;\n  undefined8 local_40;\n  \n  lVar8 = param_3;\n  if ((param_1 == param_2) || (lVar8 = param_1, param_3 == param_2)) {\n    return lVar8;\n  }\n  lVar10 = param_2 - param_1 >> 4;\n  local_a8 = (param_3 - param_1 >> 4) * -0x3333333333333333;\n  lVar11 = lVar10 * -0x3333333333333333;\n  lVar8 = param_1 + (param_3 - param_2);\n  if (local_a8 + lVar10 * 0x3333333333333333 == lVar11) {\n    puVar15 = (undefined8 *)(param_1 + 0x30);\n    puVar13 = (undefined8 *)(param_2 + 0x30);\n    do {\n      uVar2 = puVar15[-6];\n      uVar4 = puVar15[-5];\n      local_68 = (undefined8 *)puVar15[-2];\n      uVar5 = puVar15[-4];\n      uVar6 = puVar15[-3];\n      if (puVar15 == local_68) {\n        local_58 = *puVar15;\n        uStack_50 = puVar15[1];\n        local_68 = &local_58;\n      }\n      else {\n        local_58 = *puVar15;\n      }\n      sVar1 = puVar15[-1];\n      *(undefined1 *)puVar15 = 0;\n      puVar15[-1] = 0;\n      uVar3 = puVar13[-5];\n      local_48 = puVar15[2];\n      puVar15[-6] = puVar13[-6];\n      puVar15[-5] = uVar3;\n      local_40 = puVar15[3];\n      puVar15[-2] = puVar15;\n      puVar15[-4] = puVar13[-4];\n      *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n      puVar7 = (undefined8 *)puVar13[-2];\n      if (puVar13 == puVar7) {\n        sVar9 = puVar13[-1];\n        if (sVar9 != 0) {\n          if (sVar9 == 1) {\n            *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n            sVar9 = puVar13[-1];\n          }\n          else {\n            memcpy(puVar15,puVar13,sVar9);\n            sVar9 = puVar13[-1];\n          }\n        }\n        puVar15[-1] = sVar9;\n        *(undefined1 *)((long)puVar15 + sVar9) = 0;\n        puVar7 = (undefined8 *)puVar7[-2];\n      }\n      else {\n        puVar15[-2] = puVar7;\n        puVar15[-1] = puVar13[-1];\n        *puVar15 = *puVar13;\n        puVar13[-2] = puVar13;\n        puVar7 = puVar13;\n      }\n      puVar13[-1] = 0;\n      *(undefined1 *)puVar7 = 0;\n      puVar15[2] = puVar13[2];\n      puVar15[3] = puVar13[3];\n      puVar13[-6] = uVar2;\n      puVar13[-5] = uVar4;\n      puVar7 = (undefined8 *)puVar13[-2];\n      puVar13[-4] = uVar5;\n      uStack_70 = (undefined4)uVar6;\n      *(undefined4 *)(puVar13 + -3) = uStack_70;\n      if (local_68 == &local_58) {\n        if (sVar1 != 0) {\n          if (sVar1 == 1) {\n            *(undefined1 *)puVar7 = (undefined1)local_58;\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n          else {\n            memcpy(puVar7,&local_58,sVar1);\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n        }\n        puVar13[-1] = sVar1;\n        *(undefined1 *)((long)puVar7 + sVar1) = 0;\n      }\n      else if (puVar7 == puVar13) {\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n      }\n      else {\n        uVar2 = *puVar13;\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n        if (puVar7 != (undefined8 *)0x0) {\n          local_68 = puVar7;\n          local_58 = uVar2;\n        }\n      }\n      *(undefined1 *)local_68 = 0;\n      puVar13[2] = local_48;\n      puVar13[3] = local_40;\n      if (local_68 != &local_58) {\n        FUN_002dac60();\n      }\n      puVar13 = puVar13 + 10;\n      puVar15 = puVar15 + 10;\n    } while (puVar13 !=\n             (undefined8 *)(param_2 + 0x80 + ((param_2 + -0x50) - param_1 & 0xfffffffffffffff0U)));\n    return param_2;\n  }\n  lVar14 = local_a8 + lVar10 * 0x3333333333333333;\n  lVar12 = lVar11;\n  local_a0 = param_1;\n  if (lVar14 == lVar11 || SBORROW8(lVar14,lVar11) != lVar14 + lVar10 * 0x3333333333333333 < 0)\n  goto LAB_0025fb1a;\n  do {\n    if (0 < lVar14) {\n      lVar10 = 0;\n      puVar13 = (undefined8 *)(local_a0 + 0x30 + lVar11 * 0x50);\n      puVar15 = (undefined8 *)(local_a0 + 0x30);\n      do {\n        uVar2 = puVar15[-6];\n        uVar4 = puVar15[-5];\n        uVar5 = puVar15[-4];\n        uVar6 = puVar15[-3];\n        local_68 = (undefined8 *)puVar15[-2];\n        if (local_68 == puVar15) {\n          local_58 = *puVar15;\n          uStack_50 = puVar15[1];\n          local_68 = &local_58;\n        }\n        else {\n          local_58 = *puVar15;\n        }\n        sVar1 = puVar15[-1];\n        *(undefined1 *)puVar15 = 0;\n        puVar15[-1] = 0;\n        uVar3 = puVar13[-5];\n        local_48 = puVar15[2];\n        puVar15[-6] = puVar13[-6];\n        puVar15[-5] = uVar3;\n        local_40 = puVar15[3];\n        puVar15[-2] = puVar15;\n        puVar15[-4] = puVar13[-4];\n        *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n        if ((undefined8 *)puVar13[-2] == puVar13) {\n          sVar9 = puVar13[-1];\n          if (sVar9 != 0) {\n            if (sVar9 == 1) {\n              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n              sVar9 = puVar13[-1];\n            }\n            else {\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }\n          }\n          puVar15[-1] = sVar9;\n          *(undefined1 *)((long)puVar15 + sVar9) = 0;\n          puVar7 = (undefined8 *)puVar13[-2];\n        }\n        else {\n          puVar15[-2] = (undefined8 *)puVar13[-2];\n          puVar15[-1] = puVar13[-1];\n          *puVar15 = *puVar13;\n          puVar13[-2] = puVar13;\n          puVar7 = puVar13;\n        }\n        puVar13[-1] = 0;\n        *(undefined1 *)puVar7 = 0;\n        puVar15[2] = puVar13[2];\n        puVar15[3] = puVar13[3];\n        puVar13[-6] = uVar2;\n        puVar13[-5] = uVar4;\n        puVar7 = (undefined8 *)puVar13[-2];\n        puVar13[-4] = uVar5;\n        uStack_70 = (undefined4)uVar6;\n        *(undefined4 *)(puVar13 + -3) = uStack_70;\n        if (local_68 == &local_58) {\n          if (sVar1 != 0) {\n            if (sVar1 == 1) {\n              *(undefined1 *)puVar7 = (undefined1)local_58;\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n            else {\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n          }\n          puVar13[-1] = sVar1;\n          *(undefined1 *)((long)puVar7 + sVar1) = 0;\n          uVar2 = local_58;\n        }\n        else {\n          if (puVar7 == puVar13) {\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n          }\n          else {\n            uVar2 = *puVar13;\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n            local_68 = puVar7;\n            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;\n          }\n          local_68 = &local_58;\n          uVar2 = local_58;\n        }\nLAB_0025f996:\n        local_58 = uVar2;\n        *(undefined1 *)local_68 = 0;\n        puVar13[2] = local_48;\n        puVar13[3] = local_40;\n        if (local_68 != &local_58) {\n          FUN_002dac60();\n        }\n        lVar10 = lVar10 + 1;\n        puVar15 = puVar15 + 10;\n        puVar13 = puVar13 + 10;\n      } while (lVar14 != lVar10);\n      local_a0 = local_a0 + lVar14 * 0x50;\n    }\n    if (local_a8 % lVar11 == 0) {\n      return lVar8;\n    }\n    lVar12 = lVar11 - local_a8 % lVar11;\n    lVar10 = lVar11;\n    while (lVar14 = lVar10 - lVar12, lVar11 = lVar12, local_a8 = lVar10, lVar14 <= lVar12) {\nLAB_0025fb1a:\n      lVar10 = lVar14;\n      lVar11 = local_a8 * 0x50 + local_a0;\n      local_a0 = lVar11 + lVar10 * -0x50;\n      if (0 < lVar12) {\n        puVar15 = (undefined8 *)(local_a0 + -0x20);\n        puVar13 = (undefined8 *)(lVar11 + -0x20);\n        lVar11 = 0;\n        do {\n          uVar2 = puVar15[-6];\n          uVar4 = puVar15[-5];\n          uVar5 = puVar15[-4];\n          uVar6 = puVar15[-3];\n          local_68 = (undefined8 *)puVar15[-2];\n          if (local_68 == puVar15) {\n            local_58 = *puVar15;\n            uStack_50 = puVar15[1];\n            local_68 = &local_58;\n          }\n          else {\n            local_58 = *puVar15;\n          }\n          sVar1 = puVar15[-1];\n          *(undefined1 *)puVar15 = 0;\n          puVar15[-1] = 0;\n          uVar3 = puVar13[-5];\n          local_48 = puVar15[2];\n          puVar15[-6] = puVar13[-6];\n          puVar15[-5] = uVar3;\n          local_40 = puVar15[3];\n          puVar15[-2] = puVar15;\n          puVar15[-4] = puVar13[-4];\n          *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n          if ((undefined8 *)puVar13[-2] == puVar13) {\n            sVar9 = puVar13[-1];\n            if (sVar9 != 0) {\n              if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }\n            }\n            puVar15[-1] = sVar9;\n            *(undefined1 *)(puVar15[-2] + sVar9) = 0;\n          }\n          else {\n            puVar15[-2] = (undefined8 *)puVar13[-2];\n            puVar15[-1] = puVar13[-1];\n            *puVar15 = *puVar13;\n            puVar13[-2] = puVar13;\n          }\n          puVar13[-1] = 0;\n          *(undefined1 *)puVar13[-2] = 0;\n          puVar15[2] = puVar13[2];\n          puVar15[3] = puVar13[3];\n          puVar7 = (undefined8 *)puVar13[-2];\n          puVar13[-6] = uVar2;\n          puVar13[-5] = uVar4;\n          puVar13[-4] = uVar5;\n          uStack_70 = (undefined4)uVar6;\n          *(undefined4 *)(puVar13 + -3) = uStack_70;\n          if (local_68 == &local_58) {\n            if (sVar1 != 0) {\n              if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n            }\n            puVar13[-1] = sVar1;\n            *(undefined1 *)((long)puVar7 + sVar1) = 0;\n            uVar2 = local_58;\n          }\n          else {\n            if (puVar7 == puVar13) {\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }\n            else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }\n            local_68 = &local_58;\n            uVar2 = local_58;\n          }\nLAB_0025fc78:\n          local_58 = uVar2;\n          *(undefined1 *)local_68 = 0;\n          puVar13[2] = local_48;\n          puVar13[3] = local_40;\n          if (local_68 != &local_58) {\n            FUN_002dac60();\n          }\n          lVar11 = lVar11 + 1;\n          puVar15 = puVar15 + -10;\n          puVar13 = puVar13 + -10;\n        } while (lVar11 != lVar12);\n        local_a0 = local_a0 + lVar11 * -0x50;\n      }\n      lVar12 = local_a8 % lVar10;\n      if (lVar12 == 0) {\n        return lVar8;\n      }\n    }\n  } while( true );\n}" ({ "{") (declaration "size_t sVar1;" (primitive_type "size_t") (identifier "sVar1") (; ";")) (declaration "undefined8 uVar2;" (type_identifier "undefined8") (identifier "uVar2") (; ";")) (declaration "undefined8 uVar3;" (type_identifier "undefined8") (identifier "uVar3") (; ";")) (declaration "undefined8 uVar4;" (type_identifier "undefined8") (identifier "uVar4") (; ";")) (declaration "undefined8 uVar5;" (type_identifier "undefined8") (identifier "uVar5") (; ";")) (declaration "undefined8 uVar6;" (type_identifier "undefined8") (identifier "uVar6") (; ";")) (declaration "undefined8 *puVar7;" (type_identifier "undefined8") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "long lVar8;" (sized_type_specifier "long" (long "long")) (identifier "lVar8") (; ";")) (declaration "size_t sVar9;" (primitive_type "size_t") (identifier "sVar9") (; ";")) (declaration "long lVar10;" (sized_type_specifier "long" (long "long")) (identifier "lVar10") (; ";")) (declaration "long lVar11;" (sized_type_specifier "long" (long "long")) (identifier "lVar11") (; ";")) (declaration "long lVar12;" (sized_type_specifier "long" (long "long")) (identifier "lVar12") (; ";")) (declaration "undefined8 *puVar13;" (type_identifier "undefined8") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "long lVar14;" (sized_type_specifier "long" (long "long")) (identifier "lVar14") (; ";")) (declaration "undefined8 *puVar15;" (type_identifier "undefined8") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "long local_a8;" (sized_type_specifier "long" (long "long")) (identifier "local_a8") (; ";")) (declaration "long local_a0;" (sized_type_specifier "long" (long "long")) (identifier "local_a0") (; ";")) (declaration "undefined4 uStack_70;" (type_identifier "undefined4") (identifier "uStack_70") (; ";")) (declaration "undefined8 *local_68;" (type_identifier "undefined8") (pointer_declarator "*local_68" (* "*") (identifier "local_68")) (; ";")) (declaration "undefined8 local_58;" (type_identifier "undefined8") (identifier "local_58") (; ";")) (declaration "undefined8 uStack_50;" (type_identifier "undefined8") (identifier "uStack_50") (; ";")) (declaration "undefined8 local_48;" (type_identifier "undefined8") (identifier "local_48") (; ";")) (declaration "undefined8 local_40;" (type_identifier "undefined8") (identifier "local_40") (; ";")) (expression_statement "lVar8 = param_3;" (assignment_expression "lVar8 = param_3" (identifier "lVar8") (= "=") (identifier "param_3")) (; ";")) (if_statement "if ((param_1 == param_2) || (lVar8 = param_1, param_3 == param_2)) {\n    return lVar8;\n  }" (if "if") (parenthesized_expression "((param_1 == param_2) || (lVar8 = param_1, param_3 == param_2))" (( "(") (binary_expression "(param_1 == param_2) || (lVar8 = param_1, param_3 == param_2)" (parenthesized_expression "(param_1 == param_2)" (( "(") (binary_expression "param_1 == param_2" (identifier "param_1") (== "==") (identifier "param_2")) () ")")) (|| "||") (parenthesized_expression "(lVar8 = param_1, param_3 == param_2)" (( "(") (comma_expression "lVar8 = param_1, param_3 == param_2" (assignment_expression "lVar8 = param_1" (identifier "lVar8") (= "=") (identifier "param_1")) (, ",") (binary_expression "param_3 == param_2" (identifier "param_3") (== "==") (identifier "param_2"))) () ")"))) () ")")) (compound_statement "{\n    return lVar8;\n  }" ({ "{") (return_statement "return lVar8;" (return "return") (identifier "lVar8") (; ";")) (} "}"))) (expression_statement "lVar10 = param_2 - param_1 >> 4;" (assignment_expression "lVar10 = param_2 - param_1 >> 4" (identifier "lVar10") (= "=") (binary_expression "param_2 - param_1 >> 4" (binary_expression "param_2 - param_1" (identifier "param_2") (- "-") (identifier "param_1")) (>> ">>") (number_literal "4"))) (; ";")) (expression_statement "local_a8 = (param_3 - param_1 >> 4) * -0x3333333333333333;" (assignment_expression "local_a8 = (param_3 - param_1 >> 4) * -0x3333333333333333" (identifier "local_a8") (= "=") (binary_expression "(param_3 - param_1 >> 4) * -0x3333333333333333" (parenthesized_expression "(param_3 - param_1 >> 4)" (( "(") (binary_expression "param_3 - param_1 >> 4" (binary_expression "param_3 - param_1" (identifier "param_3") (- "-") (identifier "param_1")) (>> ">>") (number_literal "4")) () ")")) (* "*") (number_literal "-0x3333333333333333"))) (; ";")) (expression_statement "lVar11 = lVar10 * -0x3333333333333333;" (assignment_expression "lVar11 = lVar10 * -0x3333333333333333" (identifier "lVar11") (= "=") (binary_expression "lVar10 * -0x3333333333333333" (identifier "lVar10") (* "*") (number_literal "-0x3333333333333333"))) (; ";")) (expression_statement "lVar8 = param_1 + (param_3 - param_2);" (assignment_expression "lVar8 = param_1 + (param_3 - param_2)" (identifier "lVar8") (= "=") (binary_expression "param_1 + (param_3 - param_2)" (identifier "param_1") (+ "+") (parenthesized_expression "(param_3 - param_2)" (( "(") (binary_expression "param_3 - param_2" (identifier "param_3") (- "-") (identifier "param_2")) () ")")))) (; ";")) (if_statement "if (local_a8 + lVar10 * 0x3333333333333333 == lVar11) {\n    puVar15 = (undefined8 *)(param_1 + 0x30);\n    puVar13 = (undefined8 *)(param_2 + 0x30);\n    do {\n      uVar2 = puVar15[-6];\n      uVar4 = puVar15[-5];\n      local_68 = (undefined8 *)puVar15[-2];\n      uVar5 = puVar15[-4];\n      uVar6 = puVar15[-3];\n      if (puVar15 == local_68) {\n        local_58 = *puVar15;\n        uStack_50 = puVar15[1];\n        local_68 = &local_58;\n      }\n      else {\n        local_58 = *puVar15;\n      }\n      sVar1 = puVar15[-1];\n      *(undefined1 *)puVar15 = 0;\n      puVar15[-1] = 0;\n      uVar3 = puVar13[-5];\n      local_48 = puVar15[2];\n      puVar15[-6] = puVar13[-6];\n      puVar15[-5] = uVar3;\n      local_40 = puVar15[3];\n      puVar15[-2] = puVar15;\n      puVar15[-4] = puVar13[-4];\n      *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n      puVar7 = (undefined8 *)puVar13[-2];\n      if (puVar13 == puVar7) {\n        sVar9 = puVar13[-1];\n        if (sVar9 != 0) {\n          if (sVar9 == 1) {\n            *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n            sVar9 = puVar13[-1];\n          }\n          else {\n            memcpy(puVar15,puVar13,sVar9);\n            sVar9 = puVar13[-1];\n          }\n        }\n        puVar15[-1] = sVar9;\n        *(undefined1 *)((long)puVar15 + sVar9) = 0;\n        puVar7 = (undefined8 *)puVar7[-2];\n      }\n      else {\n        puVar15[-2] = puVar7;\n        puVar15[-1] = puVar13[-1];\n        *puVar15 = *puVar13;\n        puVar13[-2] = puVar13;\n        puVar7 = puVar13;\n      }\n      puVar13[-1] = 0;\n      *(undefined1 *)puVar7 = 0;\n      puVar15[2] = puVar13[2];\n      puVar15[3] = puVar13[3];\n      puVar13[-6] = uVar2;\n      puVar13[-5] = uVar4;\n      puVar7 = (undefined8 *)puVar13[-2];\n      puVar13[-4] = uVar5;\n      uStack_70 = (undefined4)uVar6;\n      *(undefined4 *)(puVar13 + -3) = uStack_70;\n      if (local_68 == &local_58) {\n        if (sVar1 != 0) {\n          if (sVar1 == 1) {\n            *(undefined1 *)puVar7 = (undefined1)local_58;\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n          else {\n            memcpy(puVar7,&local_58,sVar1);\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n        }\n        puVar13[-1] = sVar1;\n        *(undefined1 *)((long)puVar7 + sVar1) = 0;\n      }\n      else if (puVar7 == puVar13) {\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n      }\n      else {\n        uVar2 = *puVar13;\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n        if (puVar7 != (undefined8 *)0x0) {\n          local_68 = puVar7;\n          local_58 = uVar2;\n        }\n      }\n      *(undefined1 *)local_68 = 0;\n      puVar13[2] = local_48;\n      puVar13[3] = local_40;\n      if (local_68 != &local_58) {\n        FUN_002dac60();\n      }\n      puVar13 = puVar13 + 10;\n      puVar15 = puVar15 + 10;\n    } while (puVar13 !=\n             (undefined8 *)(param_2 + 0x80 + ((param_2 + -0x50) - param_1 & 0xfffffffffffffff0U)));\n    return param_2;\n  }" (if "if") (parenthesized_expression "(local_a8 + lVar10 * 0x3333333333333333 == lVar11)" (( "(") (binary_expression "local_a8 + lVar10 * 0x3333333333333333 == lVar11" (binary_expression "local_a8 + lVar10 * 0x3333333333333333" (identifier "local_a8") (+ "+") (binary_expression "lVar10 * 0x3333333333333333" (identifier "lVar10") (* "*") (number_literal "0x3333333333333333"))) (== "==") (identifier "lVar11")) () ")")) (compound_statement "{\n    puVar15 = (undefined8 *)(param_1 + 0x30);\n    puVar13 = (undefined8 *)(param_2 + 0x30);\n    do {\n      uVar2 = puVar15[-6];\n      uVar4 = puVar15[-5];\n      local_68 = (undefined8 *)puVar15[-2];\n      uVar5 = puVar15[-4];\n      uVar6 = puVar15[-3];\n      if (puVar15 == local_68) {\n        local_58 = *puVar15;\n        uStack_50 = puVar15[1];\n        local_68 = &local_58;\n      }\n      else {\n        local_58 = *puVar15;\n      }\n      sVar1 = puVar15[-1];\n      *(undefined1 *)puVar15 = 0;\n      puVar15[-1] = 0;\n      uVar3 = puVar13[-5];\n      local_48 = puVar15[2];\n      puVar15[-6] = puVar13[-6];\n      puVar15[-5] = uVar3;\n      local_40 = puVar15[3];\n      puVar15[-2] = puVar15;\n      puVar15[-4] = puVar13[-4];\n      *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n      puVar7 = (undefined8 *)puVar13[-2];\n      if (puVar13 == puVar7) {\n        sVar9 = puVar13[-1];\n        if (sVar9 != 0) {\n          if (sVar9 == 1) {\n            *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n            sVar9 = puVar13[-1];\n          }\n          else {\n            memcpy(puVar15,puVar13,sVar9);\n            sVar9 = puVar13[-1];\n          }\n        }\n        puVar15[-1] = sVar9;\n        *(undefined1 *)((long)puVar15 + sVar9) = 0;\n        puVar7 = (undefined8 *)puVar7[-2];\n      }\n      else {\n        puVar15[-2] = puVar7;\n        puVar15[-1] = puVar13[-1];\n        *puVar15 = *puVar13;\n        puVar13[-2] = puVar13;\n        puVar7 = puVar13;\n      }\n      puVar13[-1] = 0;\n      *(undefined1 *)puVar7 = 0;\n      puVar15[2] = puVar13[2];\n      puVar15[3] = puVar13[3];\n      puVar13[-6] = uVar2;\n      puVar13[-5] = uVar4;\n      puVar7 = (undefined8 *)puVar13[-2];\n      puVar13[-4] = uVar5;\n      uStack_70 = (undefined4)uVar6;\n      *(undefined4 *)(puVar13 + -3) = uStack_70;\n      if (local_68 == &local_58) {\n        if (sVar1 != 0) {\n          if (sVar1 == 1) {\n            *(undefined1 *)puVar7 = (undefined1)local_58;\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n          else {\n            memcpy(puVar7,&local_58,sVar1);\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n        }\n        puVar13[-1] = sVar1;\n        *(undefined1 *)((long)puVar7 + sVar1) = 0;\n      }\n      else if (puVar7 == puVar13) {\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n      }\n      else {\n        uVar2 = *puVar13;\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n        if (puVar7 != (undefined8 *)0x0) {\n          local_68 = puVar7;\n          local_58 = uVar2;\n        }\n      }\n      *(undefined1 *)local_68 = 0;\n      puVar13[2] = local_48;\n      puVar13[3] = local_40;\n      if (local_68 != &local_58) {\n        FUN_002dac60();\n      }\n      puVar13 = puVar13 + 10;\n      puVar15 = puVar15 + 10;\n    } while (puVar13 !=\n             (undefined8 *)(param_2 + 0x80 + ((param_2 + -0x50) - param_1 & 0xfffffffffffffff0U)));\n    return param_2;\n  }" ({ "{") (expression_statement "puVar15 = (undefined8 *)(param_1 + 0x30);" (assignment_expression "puVar15 = (undefined8 *)(param_1 + 0x30)" (identifier "puVar15") (= "=") (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")) () ")")))) (; ";")) (expression_statement "puVar13 = (undefined8 *)(param_2 + 0x30);" (assignment_expression "puVar13 = (undefined8 *)(param_2 + 0x30)" (identifier "puVar13") (= "=") (cast_expression "(undefined8 *)(param_2 + 0x30)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x30)" (( "(") (binary_expression "param_2 + 0x30" (identifier "param_2") (+ "+") (number_literal "0x30")) () ")")))) (; ";")) (do_statement "do {\n      uVar2 = puVar15[-6];\n      uVar4 = puVar15[-5];\n      local_68 = (undefined8 *)puVar15[-2];\n      uVar5 = puVar15[-4];\n      uVar6 = puVar15[-3];\n      if (puVar15 == local_68) {\n        local_58 = *puVar15;\n        uStack_50 = puVar15[1];\n        local_68 = &local_58;\n      }\n      else {\n        local_58 = *puVar15;\n      }\n      sVar1 = puVar15[-1];\n      *(undefined1 *)puVar15 = 0;\n      puVar15[-1] = 0;\n      uVar3 = puVar13[-5];\n      local_48 = puVar15[2];\n      puVar15[-6] = puVar13[-6];\n      puVar15[-5] = uVar3;\n      local_40 = puVar15[3];\n      puVar15[-2] = puVar15;\n      puVar15[-4] = puVar13[-4];\n      *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n      puVar7 = (undefined8 *)puVar13[-2];\n      if (puVar13 == puVar7) {\n        sVar9 = puVar13[-1];\n        if (sVar9 != 0) {\n          if (sVar9 == 1) {\n            *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n            sVar9 = puVar13[-1];\n          }\n          else {\n            memcpy(puVar15,puVar13,sVar9);\n            sVar9 = puVar13[-1];\n          }\n        }\n        puVar15[-1] = sVar9;\n        *(undefined1 *)((long)puVar15 + sVar9) = 0;\n        puVar7 = (undefined8 *)puVar7[-2];\n      }\n      else {\n        puVar15[-2] = puVar7;\n        puVar15[-1] = puVar13[-1];\n        *puVar15 = *puVar13;\n        puVar13[-2] = puVar13;\n        puVar7 = puVar13;\n      }\n      puVar13[-1] = 0;\n      *(undefined1 *)puVar7 = 0;\n      puVar15[2] = puVar13[2];\n      puVar15[3] = puVar13[3];\n      puVar13[-6] = uVar2;\n      puVar13[-5] = uVar4;\n      puVar7 = (undefined8 *)puVar13[-2];\n      puVar13[-4] = uVar5;\n      uStack_70 = (undefined4)uVar6;\n      *(undefined4 *)(puVar13 + -3) = uStack_70;\n      if (local_68 == &local_58) {\n        if (sVar1 != 0) {\n          if (sVar1 == 1) {\n            *(undefined1 *)puVar7 = (undefined1)local_58;\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n          else {\n            memcpy(puVar7,&local_58,sVar1);\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n        }\n        puVar13[-1] = sVar1;\n        *(undefined1 *)((long)puVar7 + sVar1) = 0;\n      }\n      else if (puVar7 == puVar13) {\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n      }\n      else {\n        uVar2 = *puVar13;\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n        if (puVar7 != (undefined8 *)0x0) {\n          local_68 = puVar7;\n          local_58 = uVar2;\n        }\n      }\n      *(undefined1 *)local_68 = 0;\n      puVar13[2] = local_48;\n      puVar13[3] = local_40;\n      if (local_68 != &local_58) {\n        FUN_002dac60();\n      }\n      puVar13 = puVar13 + 10;\n      puVar15 = puVar15 + 10;\n    } while (puVar13 !=\n             (undefined8 *)(param_2 + 0x80 + ((param_2 + -0x50) - param_1 & 0xfffffffffffffff0U)));" (do "do") (compound_statement "{\n      uVar2 = puVar15[-6];\n      uVar4 = puVar15[-5];\n      local_68 = (undefined8 *)puVar15[-2];\n      uVar5 = puVar15[-4];\n      uVar6 = puVar15[-3];\n      if (puVar15 == local_68) {\n        local_58 = *puVar15;\n        uStack_50 = puVar15[1];\n        local_68 = &local_58;\n      }\n      else {\n        local_58 = *puVar15;\n      }\n      sVar1 = puVar15[-1];\n      *(undefined1 *)puVar15 = 0;\n      puVar15[-1] = 0;\n      uVar3 = puVar13[-5];\n      local_48 = puVar15[2];\n      puVar15[-6] = puVar13[-6];\n      puVar15[-5] = uVar3;\n      local_40 = puVar15[3];\n      puVar15[-2] = puVar15;\n      puVar15[-4] = puVar13[-4];\n      *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n      puVar7 = (undefined8 *)puVar13[-2];\n      if (puVar13 == puVar7) {\n        sVar9 = puVar13[-1];\n        if (sVar9 != 0) {\n          if (sVar9 == 1) {\n            *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n            sVar9 = puVar13[-1];\n          }\n          else {\n            memcpy(puVar15,puVar13,sVar9);\n            sVar9 = puVar13[-1];\n          }\n        }\n        puVar15[-1] = sVar9;\n        *(undefined1 *)((long)puVar15 + sVar9) = 0;\n        puVar7 = (undefined8 *)puVar7[-2];\n      }\n      else {\n        puVar15[-2] = puVar7;\n        puVar15[-1] = puVar13[-1];\n        *puVar15 = *puVar13;\n        puVar13[-2] = puVar13;\n        puVar7 = puVar13;\n      }\n      puVar13[-1] = 0;\n      *(undefined1 *)puVar7 = 0;\n      puVar15[2] = puVar13[2];\n      puVar15[3] = puVar13[3];\n      puVar13[-6] = uVar2;\n      puVar13[-5] = uVar4;\n      puVar7 = (undefined8 *)puVar13[-2];\n      puVar13[-4] = uVar5;\n      uStack_70 = (undefined4)uVar6;\n      *(undefined4 *)(puVar13 + -3) = uStack_70;\n      if (local_68 == &local_58) {\n        if (sVar1 != 0) {\n          if (sVar1 == 1) {\n            *(undefined1 *)puVar7 = (undefined1)local_58;\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n          else {\n            memcpy(puVar7,&local_58,sVar1);\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n        }\n        puVar13[-1] = sVar1;\n        *(undefined1 *)((long)puVar7 + sVar1) = 0;\n      }\n      else if (puVar7 == puVar13) {\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n      }\n      else {\n        uVar2 = *puVar13;\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n        if (puVar7 != (undefined8 *)0x0) {\n          local_68 = puVar7;\n          local_58 = uVar2;\n        }\n      }\n      *(undefined1 *)local_68 = 0;\n      puVar13[2] = local_48;\n      puVar13[3] = local_40;\n      if (local_68 != &local_58) {\n        FUN_002dac60();\n      }\n      puVar13 = puVar13 + 10;\n      puVar15 = puVar15 + 10;\n    }" ({ "{") (expression_statement "uVar2 = puVar15[-6];" (assignment_expression "uVar2 = puVar15[-6]" (identifier "uVar2") (= "=") (subscript_expression "puVar15[-6]" (identifier "puVar15") ([ "[") (number_literal "-6") (] "]"))) (; ";")) (expression_statement "uVar4 = puVar15[-5];" (assignment_expression "uVar4 = puVar15[-5]" (identifier "uVar4") (= "=") (subscript_expression "puVar15[-5]" (identifier "puVar15") ([ "[") (number_literal "-5") (] "]"))) (; ";")) (expression_statement "local_68 = (undefined8 *)puVar15[-2];" (assignment_expression "local_68 = (undefined8 *)puVar15[-2]" (identifier "local_68") (= "=") (cast_expression "(undefined8 *)puVar15[-2]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar15[-2]" (identifier "puVar15") ([ "[") (number_literal "-2") (] "]")))) (; ";")) (expression_statement "uVar5 = puVar15[-4];" (assignment_expression "uVar5 = puVar15[-4]" (identifier "uVar5") (= "=") (subscript_expression "puVar15[-4]" (identifier "puVar15") ([ "[") (number_literal "-4") (] "]"))) (; ";")) (expression_statement "uVar6 = puVar15[-3];" (assignment_expression "uVar6 = puVar15[-3]" (identifier "uVar6") (= "=") (subscript_expression "puVar15[-3]" (identifier "puVar15") ([ "[") (number_literal "-3") (] "]"))) (; ";")) (if_statement "if (puVar15 == local_68) {\n        local_58 = *puVar15;\n        uStack_50 = puVar15[1];\n        local_68 = &local_58;\n      }\n      else {\n        local_58 = *puVar15;\n      }" (if "if") (parenthesized_expression "(puVar15 == local_68)" (( "(") (binary_expression "puVar15 == local_68" (identifier "puVar15") (== "==") (identifier "local_68")) () ")")) (compound_statement "{\n        local_58 = *puVar15;\n        uStack_50 = puVar15[1];\n        local_68 = &local_58;\n      }" ({ "{") (expression_statement "local_58 = *puVar15;" (assignment_expression "local_58 = *puVar15" (identifier "local_58") (= "=") (pointer_expression "*puVar15" (* "*") (identifier "puVar15"))) (; ";")) (expression_statement "uStack_50 = puVar15[1];" (assignment_expression "uStack_50 = puVar15[1]" (identifier "uStack_50") (= "=") (subscript_expression "puVar15[1]" (identifier "puVar15") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_68 = &local_58;" (assignment_expression "local_68 = &local_58" (identifier "local_68") (= "=") (pointer_expression "&local_58" (& "&") (identifier "local_58"))) (; ";")) (} "}")) (else_clause "else {\n        local_58 = *puVar15;\n      }" (else "else") (compound_statement "{\n        local_58 = *puVar15;\n      }" ({ "{") (expression_statement "local_58 = *puVar15;" (assignment_expression "local_58 = *puVar15" (identifier "local_58") (= "=") (pointer_expression "*puVar15" (* "*") (identifier "puVar15"))) (; ";")) (} "}")))) (expression_statement "sVar1 = puVar15[-1];" (assignment_expression "sVar1 = puVar15[-1]" (identifier "sVar1") (= "=") (subscript_expression "puVar15[-1]" (identifier "puVar15") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "*(undefined1 *)puVar15 = 0;" (assignment_expression "*(undefined1 *)puVar15 = 0" (pointer_expression "*(undefined1 *)puVar15" (* "*") (cast_expression "(undefined1 *)puVar15" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar15"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar15[-1] = 0;" (assignment_expression "puVar15[-1] = 0" (subscript_expression "puVar15[-1]" (identifier "puVar15") ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar3 = puVar13[-5];" (assignment_expression "uVar3 = puVar13[-5]" (identifier "uVar3") (= "=") (subscript_expression "puVar13[-5]" (identifier "puVar13") ([ "[") (number_literal "-5") (] "]"))) (; ";")) (expression_statement "local_48 = puVar15[2];" (assignment_expression "local_48 = puVar15[2]" (identifier "local_48") (= "=") (subscript_expression "puVar15[2]" (identifier "puVar15") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "puVar15[-6] = puVar13[-6];" (assignment_expression "puVar15[-6] = puVar13[-6]" (subscript_expression "puVar15[-6]" (identifier "puVar15") ([ "[") (number_literal "-6") (] "]")) (= "=") (subscript_expression "puVar13[-6]" (identifier "puVar13") ([ "[") (number_literal "-6") (] "]"))) (; ";")) (expression_statement "puVar15[-5] = uVar3;" (assignment_expression "puVar15[-5] = uVar3" (subscript_expression "puVar15[-5]" (identifier "puVar15") ([ "[") (number_literal "-5") (] "]")) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "local_40 = puVar15[3];" (assignment_expression "local_40 = puVar15[3]" (identifier "local_40") (= "=") (subscript_expression "puVar15[3]" (identifier "puVar15") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar15[-2] = puVar15;" (assignment_expression "puVar15[-2] = puVar15" (subscript_expression "puVar15[-2]" (identifier "puVar15") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "puVar15")) (; ";")) (expression_statement "puVar15[-4] = puVar13[-4];" (assignment_expression "puVar15[-4] = puVar13[-4]" (subscript_expression "puVar15[-4]" (identifier "puVar15") ([ "[") (number_literal "-4") (] "]")) (= "=") (subscript_expression "puVar13[-4]" (identifier "puVar13") ([ "[") (number_literal "-4") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);" (assignment_expression "*(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3)" (pointer_expression "*(undefined4 *)(puVar15 + -3)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -3)" (( "(") (binary_expression "puVar15 + -3" (identifier "puVar15") (+ "+") (number_literal "-3")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar13 + -3)" (* "*") (cast_expression "(undefined4 *)(puVar13 + -3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -3)" (( "(") (binary_expression "puVar13 + -3" (identifier "puVar13") (+ "+") (number_literal "-3")) () ")"))))) (; ";")) (expression_statement "puVar7 = (undefined8 *)puVar13[-2];" (assignment_expression "puVar7 = (undefined8 *)puVar13[-2]" (identifier "puVar7") (= "=") (cast_expression "(undefined8 *)puVar13[-2]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar13[-2]" (identifier "puVar13") ([ "[") (number_literal "-2") (] "]")))) (; ";")) (if_statement "if (puVar13 == puVar7) {\n        sVar9 = puVar13[-1];\n        if (sVar9 != 0) {\n          if (sVar9 == 1) {\n            *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n            sVar9 = puVar13[-1];\n          }\n          else {\n            memcpy(puVar15,puVar13,sVar9);\n            sVar9 = puVar13[-1];\n          }\n        }\n        puVar15[-1] = sVar9;\n        *(undefined1 *)((long)puVar15 + sVar9) = 0;\n        puVar7 = (undefined8 *)puVar7[-2];\n      }\n      else {\n        puVar15[-2] = puVar7;\n        puVar15[-1] = puVar13[-1];\n        *puVar15 = *puVar13;\n        puVar13[-2] = puVar13;\n        puVar7 = puVar13;\n      }" (if "if") (parenthesized_expression "(puVar13 == puVar7)" (( "(") (binary_expression "puVar13 == puVar7" (identifier "puVar13") (== "==") (identifier "puVar7")) () ")")) (compound_statement "{\n        sVar9 = puVar13[-1];\n        if (sVar9 != 0) {\n          if (sVar9 == 1) {\n            *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n            sVar9 = puVar13[-1];\n          }\n          else {\n            memcpy(puVar15,puVar13,sVar9);\n            sVar9 = puVar13[-1];\n          }\n        }\n        puVar15[-1] = sVar9;\n        *(undefined1 *)((long)puVar15 + sVar9) = 0;\n        puVar7 = (undefined8 *)puVar7[-2];\n      }" ({ "{") (expression_statement "sVar9 = puVar13[-1];" (assignment_expression "sVar9 = puVar13[-1]" (identifier "sVar9") (= "=") (subscript_expression "puVar13[-1]" (identifier "puVar13") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (if_statement "if (sVar9 != 0) {\n          if (sVar9 == 1) {\n            *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n            sVar9 = puVar13[-1];\n          }\n          else {\n            memcpy(puVar15,puVar13,sVar9);\n            sVar9 = puVar13[-1];\n          }\n        }" (if "if") (parenthesized_expression "(sVar9 != 0)" (( "(") (binary_expression "sVar9 != 0" (identifier "sVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          if (sVar9 == 1) {\n            *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n            sVar9 = puVar13[-1];\n          }\n          else {\n            memcpy(puVar15,puVar13,sVar9);\n            sVar9 = puVar13[-1];\n          }\n        }" ({ "{") (if_statement "if (sVar9 == 1) {\n            *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n            sVar9 = puVar13[-1];\n          }\n          else {\n            memcpy(puVar15,puVar13,sVar9);\n            sVar9 = puVar13[-1];\n          }" (if "if") (parenthesized_expression "(sVar9 == 1)" (( "(") (binary_expression "sVar9 == 1" (identifier "sVar9") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n            *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n            sVar9 = puVar13[-1];\n          }" ({ "{") (expression_statement "*(undefined1 *)puVar15 = *(undefined1 *)puVar13;" (assignment_expression "*(undefined1 *)puVar15 = *(undefined1 *)puVar13" (pointer_expression "*(undefined1 *)puVar15" (* "*") (cast_expression "(undefined1 *)puVar15" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar15"))) (= "=") (pointer_expression "*(undefined1 *)puVar13" (* "*") (cast_expression "(undefined1 *)puVar13" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar13")))) (; ";")) (expression_statement "sVar9 = puVar13[-1];" (assignment_expression "sVar9 = puVar13[-1]" (identifier "sVar9") (= "=") (subscript_expression "puVar13[-1]" (identifier "puVar13") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n            memcpy(puVar15,puVar13,sVar9);\n            sVar9 = puVar13[-1];\n          }" (else "else") (compound_statement "{\n            memcpy(puVar15,puVar13,sVar9);\n            sVar9 = puVar13[-1];\n          }" ({ "{") (expression_statement "memcpy(puVar15,puVar13,sVar9);" (call_expression "memcpy(puVar15,puVar13,sVar9)" (identifier "memcpy") (argument_list "(puVar15,puVar13,sVar9)" (( "(") (identifier "puVar15") (, ",") (identifier "puVar13") (, ",") (identifier "sVar9") () ")"))) (; ";")) (expression_statement "sVar9 = puVar13[-1];" (assignment_expression "sVar9 = puVar13[-1]" (identifier "sVar9") (= "=") (subscript_expression "puVar13[-1]" (identifier "puVar13") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "puVar15[-1] = sVar9;" (assignment_expression "puVar15[-1] = sVar9" (subscript_expression "puVar15[-1]" (identifier "puVar15") ([ "[") (number_literal "-1") (] "]")) (= "=") (identifier "sVar9")) (; ";")) (expression_statement "*(undefined1 *)((long)puVar15 + sVar9) = 0;" (assignment_expression "*(undefined1 *)((long)puVar15 + sVar9) = 0" (pointer_expression "*(undefined1 *)((long)puVar15 + sVar9)" (* "*") (cast_expression "(undefined1 *)((long)puVar15 + sVar9)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar15 + sVar9)" (( "(") (binary_expression "(long)puVar15 + sVar9" (cast_expression "(long)puVar15" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar15")) (+ "+") (identifier "sVar9")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7 = (undefined8 *)puVar7[-2];" (assignment_expression "puVar7 = (undefined8 *)puVar7[-2]" (identifier "puVar7") (= "=") (cast_expression "(undefined8 *)puVar7[-2]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar7[-2]" (identifier "puVar7") ([ "[") (number_literal "-2") (] "]")))) (; ";")) (} "}")) (else_clause "else {\n        puVar15[-2] = puVar7;\n        puVar15[-1] = puVar13[-1];\n        *puVar15 = *puVar13;\n        puVar13[-2] = puVar13;\n        puVar7 = puVar13;\n      }" (else "else") (compound_statement "{\n        puVar15[-2] = puVar7;\n        puVar15[-1] = puVar13[-1];\n        *puVar15 = *puVar13;\n        puVar13[-2] = puVar13;\n        puVar7 = puVar13;\n      }" ({ "{") (expression_statement "puVar15[-2] = puVar7;" (assignment_expression "puVar15[-2] = puVar7" (subscript_expression "puVar15[-2]" (identifier "puVar15") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "puVar7")) (; ";")) (expression_statement "puVar15[-1] = puVar13[-1];" (assignment_expression "puVar15[-1] = puVar13[-1]" (subscript_expression "puVar15[-1]" (identifier "puVar15") ([ "[") (number_literal "-1") (] "]")) (= "=") (subscript_expression "puVar13[-1]" (identifier "puVar13") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "*puVar15 = *puVar13;" (assignment_expression "*puVar15 = *puVar13" (pointer_expression "*puVar15" (* "*") (identifier "puVar15")) (= "=") (pointer_expression "*puVar13" (* "*") (identifier "puVar13"))) (; ";")) (expression_statement "puVar13[-2] = puVar13;" (assignment_expression "puVar13[-2] = puVar13" (subscript_expression "puVar13[-2]" (identifier "puVar13") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "puVar13")) (; ";")) (expression_statement "puVar7 = puVar13;" (assignment_expression "puVar7 = puVar13" (identifier "puVar7") (= "=") (identifier "puVar13")) (; ";")) (} "}")))) (expression_statement "puVar13[-1] = 0;" (assignment_expression "puVar13[-1] = 0" (subscript_expression "puVar13[-1]" (identifier "puVar13") ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)puVar7 = 0;" (assignment_expression "*(undefined1 *)puVar7 = 0" (pointer_expression "*(undefined1 *)puVar7" (* "*") (cast_expression "(undefined1 *)puVar7" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar7"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar15[2] = puVar13[2];" (assignment_expression "puVar15[2] = puVar13[2]" (subscript_expression "puVar15[2]" (identifier "puVar15") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "puVar13[2]" (identifier "puVar13") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "puVar15[3] = puVar13[3];" (assignment_expression "puVar15[3] = puVar13[3]" (subscript_expression "puVar15[3]" (identifier "puVar15") ([ "[") (number_literal "3") (] "]")) (= "=") (subscript_expression "puVar13[3]" (identifier "puVar13") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar13[-6] = uVar2;" (assignment_expression "puVar13[-6] = uVar2" (subscript_expression "puVar13[-6]" (identifier "puVar13") ([ "[") (number_literal "-6") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "puVar13[-5] = uVar4;" (assignment_expression "puVar13[-5] = uVar4" (subscript_expression "puVar13[-5]" (identifier "puVar13") ([ "[") (number_literal "-5") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "puVar7 = (undefined8 *)puVar13[-2];" (assignment_expression "puVar7 = (undefined8 *)puVar13[-2]" (identifier "puVar7") (= "=") (cast_expression "(undefined8 *)puVar13[-2]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar13[-2]" (identifier "puVar13") ([ "[") (number_literal "-2") (] "]")))) (; ";")) (expression_statement "puVar13[-4] = uVar5;" (assignment_expression "puVar13[-4] = uVar5" (subscript_expression "puVar13[-4]" (identifier "puVar13") ([ "[") (number_literal "-4") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "uStack_70 = (undefined4)uVar6;" (assignment_expression "uStack_70 = (undefined4)uVar6" (identifier "uStack_70") (= "=") (cast_expression "(undefined4)uVar6" (( "(") (type_descriptor "undefined4" (type_identifier "undefined4")) () ")") (identifier "uVar6"))) (; ";")) (expression_statement "*(undefined4 *)(puVar13 + -3) = uStack_70;" (assignment_expression "*(undefined4 *)(puVar13 + -3) = uStack_70" (pointer_expression "*(undefined4 *)(puVar13 + -3)" (* "*") (cast_expression "(undefined4 *)(puVar13 + -3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -3)" (( "(") (binary_expression "puVar13 + -3" (identifier "puVar13") (+ "+") (number_literal "-3")) () ")")))) (= "=") (identifier "uStack_70")) (; ";")) (if_statement "if (local_68 == &local_58) {\n        if (sVar1 != 0) {\n          if (sVar1 == 1) {\n            *(undefined1 *)puVar7 = (undefined1)local_58;\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n          else {\n            memcpy(puVar7,&local_58,sVar1);\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n        }\n        puVar13[-1] = sVar1;\n        *(undefined1 *)((long)puVar7 + sVar1) = 0;\n      }\n      else if (puVar7 == puVar13) {\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n      }\n      else {\n        uVar2 = *puVar13;\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n        if (puVar7 != (undefined8 *)0x0) {\n          local_68 = puVar7;\n          local_58 = uVar2;\n        }\n      }" (if "if") (parenthesized_expression "(local_68 == &local_58)" (( "(") (binary_expression "local_68 == &local_58" (identifier "local_68") (== "==") (pointer_expression "&local_58" (& "&") (identifier "local_58"))) () ")")) (compound_statement "{\n        if (sVar1 != 0) {\n          if (sVar1 == 1) {\n            *(undefined1 *)puVar7 = (undefined1)local_58;\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n          else {\n            memcpy(puVar7,&local_58,sVar1);\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n        }\n        puVar13[-1] = sVar1;\n        *(undefined1 *)((long)puVar7 + sVar1) = 0;\n      }" ({ "{") (if_statement "if (sVar1 != 0) {\n          if (sVar1 == 1) {\n            *(undefined1 *)puVar7 = (undefined1)local_58;\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n          else {\n            memcpy(puVar7,&local_58,sVar1);\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n        }" (if "if") (parenthesized_expression "(sVar1 != 0)" (( "(") (binary_expression "sVar1 != 0" (identifier "sVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          if (sVar1 == 1) {\n            *(undefined1 *)puVar7 = (undefined1)local_58;\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n          else {\n            memcpy(puVar7,&local_58,sVar1);\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n        }" ({ "{") (if_statement "if (sVar1 == 1) {\n            *(undefined1 *)puVar7 = (undefined1)local_58;\n            puVar7 = (undefined8 *)puVar13[-2];\n          }\n          else {\n            memcpy(puVar7,&local_58,sVar1);\n            puVar7 = (undefined8 *)puVar13[-2];\n          }" (if "if") (parenthesized_expression "(sVar1 == 1)" (( "(") (binary_expression "sVar1 == 1" (identifier "sVar1") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n            *(undefined1 *)puVar7 = (undefined1)local_58;\n            puVar7 = (undefined8 *)puVar13[-2];\n          }" ({ "{") (expression_statement "*(undefined1 *)puVar7 = (undefined1)local_58;" (assignment_expression "*(undefined1 *)puVar7 = (undefined1)local_58" (pointer_expression "*(undefined1 *)puVar7" (* "*") (cast_expression "(undefined1 *)puVar7" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar7"))) (= "=") (cast_expression "(undefined1)local_58" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "local_58"))) (; ";")) (expression_statement "puVar7 = (undefined8 *)puVar13[-2];" (assignment_expression "puVar7 = (undefined8 *)puVar13[-2]" (identifier "puVar7") (= "=") (cast_expression "(undefined8 *)puVar13[-2]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar13[-2]" (identifier "puVar13") ([ "[") (number_literal "-2") (] "]")))) (; ";")) (} "}")) (else_clause "else {\n            memcpy(puVar7,&local_58,sVar1);\n            puVar7 = (undefined8 *)puVar13[-2];\n          }" (else "else") (compound_statement "{\n            memcpy(puVar7,&local_58,sVar1);\n            puVar7 = (undefined8 *)puVar13[-2];\n          }" ({ "{") (expression_statement "memcpy(puVar7,&local_58,sVar1);" (call_expression "memcpy(puVar7,&local_58,sVar1)" (identifier "memcpy") (argument_list "(puVar7,&local_58,sVar1)" (( "(") (identifier "puVar7") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) (, ",") (identifier "sVar1") () ")"))) (; ";")) (expression_statement "puVar7 = (undefined8 *)puVar13[-2];" (assignment_expression "puVar7 = (undefined8 *)puVar13[-2]" (identifier "puVar7") (= "=") (cast_expression "(undefined8 *)puVar13[-2]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar13[-2]" (identifier "puVar13") ([ "[") (number_literal "-2") (] "]")))) (; ";")) (} "}")))) (} "}"))) (expression_statement "puVar13[-1] = sVar1;" (assignment_expression "puVar13[-1] = sVar1" (subscript_expression "puVar13[-1]" (identifier "puVar13") ([ "[") (number_literal "-1") (] "]")) (= "=") (identifier "sVar1")) (; ";")) (expression_statement "*(undefined1 *)((long)puVar7 + sVar1) = 0;" (assignment_expression "*(undefined1 *)((long)puVar7 + sVar1) = 0" (pointer_expression "*(undefined1 *)((long)puVar7 + sVar1)" (* "*") (cast_expression "(undefined1 *)((long)puVar7 + sVar1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar7 + sVar1)" (( "(") (binary_expression "(long)puVar7 + sVar1" (cast_expression "(long)puVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar7")) (+ "+") (identifier "sVar1")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else if (puVar7 == puVar13) {\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n      }\n      else {\n        uVar2 = *puVar13;\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n        if (puVar7 != (undefined8 *)0x0) {\n          local_68 = puVar7;\n          local_58 = uVar2;\n        }\n      }" (else "else") (if_statement "if (puVar7 == puVar13) {\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n      }\n      else {\n        uVar2 = *puVar13;\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n        if (puVar7 != (undefined8 *)0x0) {\n          local_68 = puVar7;\n          local_58 = uVar2;\n        }\n      }" (if "if") (parenthesized_expression "(puVar7 == puVar13)" (( "(") (binary_expression "puVar7 == puVar13" (identifier "puVar7") (== "==") (identifier "puVar13")) () ")")) (compound_statement "{\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n      }" ({ "{") (expression_statement "puVar13[-2] = local_68;" (assignment_expression "puVar13[-2] = local_68" (subscript_expression "puVar13[-2]" (identifier "puVar13") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "local_68")) (; ";")) (expression_statement "puVar13[-1] = sVar1;" (assignment_expression "puVar13[-1] = sVar1" (subscript_expression "puVar13[-1]" (identifier "puVar13") ([ "[") (number_literal "-1") (] "]")) (= "=") (identifier "sVar1")) (; ";")) (expression_statement "*puVar13 = local_58;" (assignment_expression "*puVar13 = local_58" (pointer_expression "*puVar13" (* "*") (identifier "puVar13")) (= "=") (identifier "local_58")) (; ";")) (expression_statement "local_68 = &local_58;" (assignment_expression "local_68 = &local_58" (identifier "local_68") (= "=") (pointer_expression "&local_58" (& "&") (identifier "local_58"))) (; ";")) (} "}")) (else_clause "else {\n        uVar2 = *puVar13;\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n        if (puVar7 != (undefined8 *)0x0) {\n          local_68 = puVar7;\n          local_58 = uVar2;\n        }\n      }" (else "else") (compound_statement "{\n        uVar2 = *puVar13;\n        puVar13[-2] = local_68;\n        puVar13[-1] = sVar1;\n        *puVar13 = local_58;\n        local_68 = &local_58;\n        if (puVar7 != (undefined8 *)0x0) {\n          local_68 = puVar7;\n          local_58 = uVar2;\n        }\n      }" ({ "{") (expression_statement "uVar2 = *puVar13;" (assignment_expression "uVar2 = *puVar13" (identifier "uVar2") (= "=") (pointer_expression "*puVar13" (* "*") (identifier "puVar13"))) (; ";")) (expression_statement "puVar13[-2] = local_68;" (assignment_expression "puVar13[-2] = local_68" (subscript_expression "puVar13[-2]" (identifier "puVar13") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "local_68")) (; ";")) (expression_statement "puVar13[-1] = sVar1;" (assignment_expression "puVar13[-1] = sVar1" (subscript_expression "puVar13[-1]" (identifier "puVar13") ([ "[") (number_literal "-1") (] "]")) (= "=") (identifier "sVar1")) (; ";")) (expression_statement "*puVar13 = local_58;" (assignment_expression "*puVar13 = local_58" (pointer_expression "*puVar13" (* "*") (identifier "puVar13")) (= "=") (identifier "local_58")) (; ";")) (expression_statement "local_68 = &local_58;" (assignment_expression "local_68 = &local_58" (identifier "local_68") (= "=") (pointer_expression "&local_58" (& "&") (identifier "local_58"))) (; ";")) (if_statement "if (puVar7 != (undefined8 *)0x0) {\n          local_68 = puVar7;\n          local_58 = uVar2;\n        }" (if "if") (parenthesized_expression "(puVar7 != (undefined8 *)0x0)" (( "(") (binary_expression "puVar7 != (undefined8 *)0x0" (identifier "puVar7") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          local_68 = puVar7;\n          local_58 = uVar2;\n        }" ({ "{") (expression_statement "local_68 = puVar7;" (assignment_expression "local_68 = puVar7" (identifier "local_68") (= "=") (identifier "puVar7")) (; ";")) (expression_statement "local_58 = uVar2;" (assignment_expression "local_58 = uVar2" (identifier "local_58") (= "=") (identifier "uVar2")) (; ";")) (} "}"))) (} "}")))))) (expression_statement "*(undefined1 *)local_68 = 0;" (assignment_expression "*(undefined1 *)local_68 = 0" (pointer_expression "*(undefined1 *)local_68" (* "*") (cast_expression "(undefined1 *)local_68" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_68"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar13[2] = local_48;" (assignment_expression "puVar13[2] = local_48" (subscript_expression "puVar13[2]" (identifier "puVar13") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_48")) (; ";")) (expression_statement "puVar13[3] = local_40;" (assignment_expression "puVar13[3] = local_40" (subscript_expression "puVar13[3]" (identifier "puVar13") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_40")) (; ";")) (if_statement "if (local_68 != &local_58) {\n        FUN_002dac60();\n      }" (if "if") (parenthesized_expression "(local_68 != &local_58)" (( "(") (binary_expression "local_68 != &local_58" (identifier "local_68") (!= "!=") (pointer_expression "&local_58" (& "&") (identifier "local_58"))) () ")")) (compound_statement "{\n        FUN_002dac60();\n      }" ({ "{") (expression_statement "FUN_002dac60();" (call_expression "FUN_002dac60()" (identifier "FUN_002dac60") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar13 = puVar13 + 10;" (assignment_expression "puVar13 = puVar13 + 10" (identifier "puVar13") (= "=") (binary_expression "puVar13 + 10" (identifier "puVar13") (+ "+") (number_literal "10"))) (; ";")) (expression_statement "puVar15 = puVar15 + 10;" (assignment_expression "puVar15 = puVar15 + 10" (identifier "puVar15") (= "=") (binary_expression "puVar15 + 10" (identifier "puVar15") (+ "+") (number_literal "10"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar13 !=\n             (undefined8 *)(param_2 + 0x80 + ((param_2 + -0x50) - param_1 & 0xfffffffffffffff0U)))" (( "(") (binary_expression "puVar13 !=\n             (undefined8 *)(param_2 + 0x80 + ((param_2 + -0x50) - param_1 & 0xfffffffffffffff0U))" (identifier "puVar13") (!= "!=") (cast_expression "(undefined8 *)(param_2 + 0x80 + ((param_2 + -0x50) - param_1 & 0xfffffffffffffff0U))" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x80 + ((param_2 + -0x50) - param_1 & 0xfffffffffffffff0U))" (( "(") (binary_expression "param_2 + 0x80 + ((param_2 + -0x50) - param_1 & 0xfffffffffffffff0U)" (binary_expression "param_2 + 0x80" (identifier "param_2") (+ "+") (number_literal "0x80")) (+ "+") (parenthesized_expression "((param_2 + -0x50) - param_1 & 0xfffffffffffffff0U)" (( "(") (binary_expression "(param_2 + -0x50) - param_1 & 0xfffffffffffffff0U" (binary_expression "(param_2 + -0x50) - param_1" (parenthesized_expression "(param_2 + -0x50)" (( "(") (binary_expression "param_2 + -0x50" (identifier "param_2") (+ "+") (number_literal "-0x50")) () ")")) (- "-") (identifier "param_1")) (& "&") (number_literal "0xfffffffffffffff0U")) () ")"))) () ")")))) () ")")) (; ";")) (return_statement "return param_2;" (return "return") (identifier "param_2") (; ";")) (} "}"))) (expression_statement "lVar14 = local_a8 + lVar10 * 0x3333333333333333;" (assignment_expression "lVar14 = local_a8 + lVar10 * 0x3333333333333333" (identifier "lVar14") (= "=") (binary_expression "local_a8 + lVar10 * 0x3333333333333333" (identifier "local_a8") (+ "+") (binary_expression "lVar10 * 0x3333333333333333" (identifier "lVar10") (* "*") (number_literal "0x3333333333333333")))) (; ";")) (expression_statement "lVar12 = lVar11;" (assignment_expression "lVar12 = lVar11" (identifier "lVar12") (= "=") (identifier "lVar11")) (; ";")) (expression_statement "local_a0 = param_1;" (assignment_expression "local_a0 = param_1" (identifier "local_a0") (= "=") (identifier "param_1")) (; ";")) (if_statement "if (lVar14 == lVar11 || SBORROW8(lVar14,lVar11) != lVar14 + lVar10 * 0x3333333333333333 < 0)\n  goto LAB_0025fb1a;" (if "if") (parenthesized_expression "(lVar14 == lVar11 || SBORROW8(lVar14,lVar11) != lVar14 + lVar10 * 0x3333333333333333 < 0)" (( "(") (binary_expression "lVar14 == lVar11 || SBORROW8(lVar14,lVar11) != lVar14 + lVar10 * 0x3333333333333333 < 0" (binary_expression "lVar14 == lVar11" (identifier "lVar14") (== "==") (identifier "lVar11")) (|| "||") (binary_expression "SBORROW8(lVar14,lVar11) != lVar14 + lVar10 * 0x3333333333333333 < 0" (call_expression "SBORROW8(lVar14,lVar11)" (identifier "SBORROW8") (argument_list "(lVar14,lVar11)" (( "(") (identifier "lVar14") (, ",") (identifier "lVar11") () ")"))) (!= "!=") (binary_expression "lVar14 + lVar10 * 0x3333333333333333 < 0" (binary_expression "lVar14 + lVar10 * 0x3333333333333333" (identifier "lVar14") (+ "+") (binary_expression "lVar10 * 0x3333333333333333" (identifier "lVar10") (* "*") (number_literal "0x3333333333333333"))) (< "<") (number_literal "0")))) () ")")) (goto_statement "goto LAB_0025fb1a;" (goto "goto") (statement_identifier "LAB_0025fb1a") (; ";"))) (do_statement "do {\n    if (0 < lVar14) {\n      lVar10 = 0;\n      puVar13 = (undefined8 *)(local_a0 + 0x30 + lVar11 * 0x50);\n      puVar15 = (undefined8 *)(local_a0 + 0x30);\n      do {\n        uVar2 = puVar15[-6];\n        uVar4 = puVar15[-5];\n        uVar5 = puVar15[-4];\n        uVar6 = puVar15[-3];\n        local_68 = (undefined8 *)puVar15[-2];\n        if (local_68 == puVar15) {\n          local_58 = *puVar15;\n          uStack_50 = puVar15[1];\n          local_68 = &local_58;\n        }\n        else {\n          local_58 = *puVar15;\n        }\n        sVar1 = puVar15[-1];\n        *(undefined1 *)puVar15 = 0;\n        puVar15[-1] = 0;\n        uVar3 = puVar13[-5];\n        local_48 = puVar15[2];\n        puVar15[-6] = puVar13[-6];\n        puVar15[-5] = uVar3;\n        local_40 = puVar15[3];\n        puVar15[-2] = puVar15;\n        puVar15[-4] = puVar13[-4];\n        *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n        if ((undefined8 *)puVar13[-2] == puVar13) {\n          sVar9 = puVar13[-1];\n          if (sVar9 != 0) {\n            if (sVar9 == 1) {\n              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n              sVar9 = puVar13[-1];\n            }\n            else {\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }\n          }\n          puVar15[-1] = sVar9;\n          *(undefined1 *)((long)puVar15 + sVar9) = 0;\n          puVar7 = (undefined8 *)puVar13[-2];\n        }\n        else {\n          puVar15[-2] = (undefined8 *)puVar13[-2];\n          puVar15[-1] = puVar13[-1];\n          *puVar15 = *puVar13;\n          puVar13[-2] = puVar13;\n          puVar7 = puVar13;\n        }\n        puVar13[-1] = 0;\n        *(undefined1 *)puVar7 = 0;\n        puVar15[2] = puVar13[2];\n        puVar15[3] = puVar13[3];\n        puVar13[-6] = uVar2;\n        puVar13[-5] = uVar4;\n        puVar7 = (undefined8 *)puVar13[-2];\n        puVar13[-4] = uVar5;\n        uStack_70 = (undefined4)uVar6;\n        *(undefined4 *)(puVar13 + -3) = uStack_70;\n        if (local_68 == &local_58) {\n          if (sVar1 != 0) {\n            if (sVar1 == 1) {\n              *(undefined1 *)puVar7 = (undefined1)local_58;\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n            else {\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n          }\n          puVar13[-1] = sVar1;\n          *(undefined1 *)((long)puVar7 + sVar1) = 0;\n          uVar2 = local_58;\n        }\n        else {\n          if (puVar7 == puVar13) {\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n          }\n          else {\n            uVar2 = *puVar13;\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n            local_68 = puVar7;\n            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;\n          }\n          local_68 = &local_58;\n          uVar2 = local_58;\n        }\nLAB_0025f996:\n        local_58 = uVar2;\n        *(undefined1 *)local_68 = 0;\n        puVar13[2] = local_48;\n        puVar13[3] = local_40;\n        if (local_68 != &local_58) {\n          FUN_002dac60();\n        }\n        lVar10 = lVar10 + 1;\n        puVar15 = puVar15 + 10;\n        puVar13 = puVar13 + 10;\n      } while (lVar14 != lVar10);\n      local_a0 = local_a0 + lVar14 * 0x50;\n    }\n    if (local_a8 % lVar11 == 0) {\n      return lVar8;\n    }\n    lVar12 = lVar11 - local_a8 % lVar11;\n    lVar10 = lVar11;\n    while (lVar14 = lVar10 - lVar12, lVar11 = lVar12, local_a8 = lVar10, lVar14 <= lVar12) {\nLAB_0025fb1a:\n      lVar10 = lVar14;\n      lVar11 = local_a8 * 0x50 + local_a0;\n      local_a0 = lVar11 + lVar10 * -0x50;\n      if (0 < lVar12) {\n        puVar15 = (undefined8 *)(local_a0 + -0x20);\n        puVar13 = (undefined8 *)(lVar11 + -0x20);\n        lVar11 = 0;\n        do {\n          uVar2 = puVar15[-6];\n          uVar4 = puVar15[-5];\n          uVar5 = puVar15[-4];\n          uVar6 = puVar15[-3];\n          local_68 = (undefined8 *)puVar15[-2];\n          if (local_68 == puVar15) {\n            local_58 = *puVar15;\n            uStack_50 = puVar15[1];\n            local_68 = &local_58;\n          }\n          else {\n            local_58 = *puVar15;\n          }\n          sVar1 = puVar15[-1];\n          *(undefined1 *)puVar15 = 0;\n          puVar15[-1] = 0;\n          uVar3 = puVar13[-5];\n          local_48 = puVar15[2];\n          puVar15[-6] = puVar13[-6];\n          puVar15[-5] = uVar3;\n          local_40 = puVar15[3];\n          puVar15[-2] = puVar15;\n          puVar15[-4] = puVar13[-4];\n          *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n          if ((undefined8 *)puVar13[-2] == puVar13) {\n            sVar9 = puVar13[-1];\n            if (sVar9 != 0) {\n              if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }\n            }\n            puVar15[-1] = sVar9;\n            *(undefined1 *)(puVar15[-2] + sVar9) = 0;\n          }\n          else {\n            puVar15[-2] = (undefined8 *)puVar13[-2];\n            puVar15[-1] = puVar13[-1];\n            *puVar15 = *puVar13;\n            puVar13[-2] = puVar13;\n          }\n          puVar13[-1] = 0;\n          *(undefined1 *)puVar13[-2] = 0;\n          puVar15[2] = puVar13[2];\n          puVar15[3] = puVar13[3];\n          puVar7 = (undefined8 *)puVar13[-2];\n          puVar13[-6] = uVar2;\n          puVar13[-5] = uVar4;\n          puVar13[-4] = uVar5;\n          uStack_70 = (undefined4)uVar6;\n          *(undefined4 *)(puVar13 + -3) = uStack_70;\n          if (local_68 == &local_58) {\n            if (sVar1 != 0) {\n              if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n            }\n            puVar13[-1] = sVar1;\n            *(undefined1 *)((long)puVar7 + sVar1) = 0;\n            uVar2 = local_58;\n          }\n          else {\n            if (puVar7 == puVar13) {\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }\n            else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }\n            local_68 = &local_58;\n            uVar2 = local_58;\n          }\nLAB_0025fc78:\n          local_58 = uVar2;\n          *(undefined1 *)local_68 = 0;\n          puVar13[2] = local_48;\n          puVar13[3] = local_40;\n          if (local_68 != &local_58) {\n            FUN_002dac60();\n          }\n          lVar11 = lVar11 + 1;\n          puVar15 = puVar15 + -10;\n          puVar13 = puVar13 + -10;\n        } while (lVar11 != lVar12);\n        local_a0 = local_a0 + lVar11 * -0x50;\n      }\n      lVar12 = local_a8 % lVar10;\n      if (lVar12 == 0) {\n        return lVar8;\n      }\n    }\n  } while( true );" (do "do") (compound_statement "{\n    if (0 < lVar14) {\n      lVar10 = 0;\n      puVar13 = (undefined8 *)(local_a0 + 0x30 + lVar11 * 0x50);\n      puVar15 = (undefined8 *)(local_a0 + 0x30);\n      do {\n        uVar2 = puVar15[-6];\n        uVar4 = puVar15[-5];\n        uVar5 = puVar15[-4];\n        uVar6 = puVar15[-3];\n        local_68 = (undefined8 *)puVar15[-2];\n        if (local_68 == puVar15) {\n          local_58 = *puVar15;\n          uStack_50 = puVar15[1];\n          local_68 = &local_58;\n        }\n        else {\n          local_58 = *puVar15;\n        }\n        sVar1 = puVar15[-1];\n        *(undefined1 *)puVar15 = 0;\n        puVar15[-1] = 0;\n        uVar3 = puVar13[-5];\n        local_48 = puVar15[2];\n        puVar15[-6] = puVar13[-6];\n        puVar15[-5] = uVar3;\n        local_40 = puVar15[3];\n        puVar15[-2] = puVar15;\n        puVar15[-4] = puVar13[-4];\n        *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n        if ((undefined8 *)puVar13[-2] == puVar13) {\n          sVar9 = puVar13[-1];\n          if (sVar9 != 0) {\n            if (sVar9 == 1) {\n              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n              sVar9 = puVar13[-1];\n            }\n            else {\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }\n          }\n          puVar15[-1] = sVar9;\n          *(undefined1 *)((long)puVar15 + sVar9) = 0;\n          puVar7 = (undefined8 *)puVar13[-2];\n        }\n        else {\n          puVar15[-2] = (undefined8 *)puVar13[-2];\n          puVar15[-1] = puVar13[-1];\n          *puVar15 = *puVar13;\n          puVar13[-2] = puVar13;\n          puVar7 = puVar13;\n        }\n        puVar13[-1] = 0;\n        *(undefined1 *)puVar7 = 0;\n        puVar15[2] = puVar13[2];\n        puVar15[3] = puVar13[3];\n        puVar13[-6] = uVar2;\n        puVar13[-5] = uVar4;\n        puVar7 = (undefined8 *)puVar13[-2];\n        puVar13[-4] = uVar5;\n        uStack_70 = (undefined4)uVar6;\n        *(undefined4 *)(puVar13 + -3) = uStack_70;\n        if (local_68 == &local_58) {\n          if (sVar1 != 0) {\n            if (sVar1 == 1) {\n              *(undefined1 *)puVar7 = (undefined1)local_58;\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n            else {\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n          }\n          puVar13[-1] = sVar1;\n          *(undefined1 *)((long)puVar7 + sVar1) = 0;\n          uVar2 = local_58;\n        }\n        else {\n          if (puVar7 == puVar13) {\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n          }\n          else {\n            uVar2 = *puVar13;\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n            local_68 = puVar7;\n            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;\n          }\n          local_68 = &local_58;\n          uVar2 = local_58;\n        }\nLAB_0025f996:\n        local_58 = uVar2;\n        *(undefined1 *)local_68 = 0;\n        puVar13[2] = local_48;\n        puVar13[3] = local_40;\n        if (local_68 != &local_58) {\n          FUN_002dac60();\n        }\n        lVar10 = lVar10 + 1;\n        puVar15 = puVar15 + 10;\n        puVar13 = puVar13 + 10;\n      } while (lVar14 != lVar10);\n      local_a0 = local_a0 + lVar14 * 0x50;\n    }\n    if (local_a8 % lVar11 == 0) {\n      return lVar8;\n    }\n    lVar12 = lVar11 - local_a8 % lVar11;\n    lVar10 = lVar11;\n    while (lVar14 = lVar10 - lVar12, lVar11 = lVar12, local_a8 = lVar10, lVar14 <= lVar12) {\nLAB_0025fb1a:\n      lVar10 = lVar14;\n      lVar11 = local_a8 * 0x50 + local_a0;\n      local_a0 = lVar11 + lVar10 * -0x50;\n      if (0 < lVar12) {\n        puVar15 = (undefined8 *)(local_a0 + -0x20);\n        puVar13 = (undefined8 *)(lVar11 + -0x20);\n        lVar11 = 0;\n        do {\n          uVar2 = puVar15[-6];\n          uVar4 = puVar15[-5];\n          uVar5 = puVar15[-4];\n          uVar6 = puVar15[-3];\n          local_68 = (undefined8 *)puVar15[-2];\n          if (local_68 == puVar15) {\n            local_58 = *puVar15;\n            uStack_50 = puVar15[1];\n            local_68 = &local_58;\n          }\n          else {\n            local_58 = *puVar15;\n          }\n          sVar1 = puVar15[-1];\n          *(undefined1 *)puVar15 = 0;\n          puVar15[-1] = 0;\n          uVar3 = puVar13[-5];\n          local_48 = puVar15[2];\n          puVar15[-6] = puVar13[-6];\n          puVar15[-5] = uVar3;\n          local_40 = puVar15[3];\n          puVar15[-2] = puVar15;\n          puVar15[-4] = puVar13[-4];\n          *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n          if ((undefined8 *)puVar13[-2] == puVar13) {\n            sVar9 = puVar13[-1];\n            if (sVar9 != 0) {\n              if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }\n            }\n            puVar15[-1] = sVar9;\n            *(undefined1 *)(puVar15[-2] + sVar9) = 0;\n          }\n          else {\n            puVar15[-2] = (undefined8 *)puVar13[-2];\n            puVar15[-1] = puVar13[-1];\n            *puVar15 = *puVar13;\n            puVar13[-2] = puVar13;\n          }\n          puVar13[-1] = 0;\n          *(undefined1 *)puVar13[-2] = 0;\n          puVar15[2] = puVar13[2];\n          puVar15[3] = puVar13[3];\n          puVar7 = (undefined8 *)puVar13[-2];\n          puVar13[-6] = uVar2;\n          puVar13[-5] = uVar4;\n          puVar13[-4] = uVar5;\n          uStack_70 = (undefined4)uVar6;\n          *(undefined4 *)(puVar13 + -3) = uStack_70;\n          if (local_68 == &local_58) {\n            if (sVar1 != 0) {\n              if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n            }\n            puVar13[-1] = sVar1;\n            *(undefined1 *)((long)puVar7 + sVar1) = 0;\n            uVar2 = local_58;\n          }\n          else {\n            if (puVar7 == puVar13) {\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }\n            else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }\n            local_68 = &local_58;\n            uVar2 = local_58;\n          }\nLAB_0025fc78:\n          local_58 = uVar2;\n          *(undefined1 *)local_68 = 0;\n          puVar13[2] = local_48;\n          puVar13[3] = local_40;\n          if (local_68 != &local_58) {\n            FUN_002dac60();\n          }\n          lVar11 = lVar11 + 1;\n          puVar15 = puVar15 + -10;\n          puVar13 = puVar13 + -10;\n        } while (lVar11 != lVar12);\n        local_a0 = local_a0 + lVar11 * -0x50;\n      }\n      lVar12 = local_a8 % lVar10;\n      if (lVar12 == 0) {\n        return lVar8;\n      }\n    }\n  }" ({ "{") (if_statement "if (0 < lVar14) {\n      lVar10 = 0;\n      puVar13 = (undefined8 *)(local_a0 + 0x30 + lVar11 * 0x50);\n      puVar15 = (undefined8 *)(local_a0 + 0x30);\n      do {\n        uVar2 = puVar15[-6];\n        uVar4 = puVar15[-5];\n        uVar5 = puVar15[-4];\n        uVar6 = puVar15[-3];\n        local_68 = (undefined8 *)puVar15[-2];\n        if (local_68 == puVar15) {\n          local_58 = *puVar15;\n          uStack_50 = puVar15[1];\n          local_68 = &local_58;\n        }\n        else {\n          local_58 = *puVar15;\n        }\n        sVar1 = puVar15[-1];\n        *(undefined1 *)puVar15 = 0;\n        puVar15[-1] = 0;\n        uVar3 = puVar13[-5];\n        local_48 = puVar15[2];\n        puVar15[-6] = puVar13[-6];\n        puVar15[-5] = uVar3;\n        local_40 = puVar15[3];\n        puVar15[-2] = puVar15;\n        puVar15[-4] = puVar13[-4];\n        *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n        if ((undefined8 *)puVar13[-2] == puVar13) {\n          sVar9 = puVar13[-1];\n          if (sVar9 != 0) {\n            if (sVar9 == 1) {\n              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n              sVar9 = puVar13[-1];\n            }\n            else {\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }\n          }\n          puVar15[-1] = sVar9;\n          *(undefined1 *)((long)puVar15 + sVar9) = 0;\n          puVar7 = (undefined8 *)puVar13[-2];\n        }\n        else {\n          puVar15[-2] = (undefined8 *)puVar13[-2];\n          puVar15[-1] = puVar13[-1];\n          *puVar15 = *puVar13;\n          puVar13[-2] = puVar13;\n          puVar7 = puVar13;\n        }\n        puVar13[-1] = 0;\n        *(undefined1 *)puVar7 = 0;\n        puVar15[2] = puVar13[2];\n        puVar15[3] = puVar13[3];\n        puVar13[-6] = uVar2;\n        puVar13[-5] = uVar4;\n        puVar7 = (undefined8 *)puVar13[-2];\n        puVar13[-4] = uVar5;\n        uStack_70 = (undefined4)uVar6;\n        *(undefined4 *)(puVar13 + -3) = uStack_70;\n        if (local_68 == &local_58) {\n          if (sVar1 != 0) {\n            if (sVar1 == 1) {\n              *(undefined1 *)puVar7 = (undefined1)local_58;\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n            else {\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n          }\n          puVar13[-1] = sVar1;\n          *(undefined1 *)((long)puVar7 + sVar1) = 0;\n          uVar2 = local_58;\n        }\n        else {\n          if (puVar7 == puVar13) {\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n          }\n          else {\n            uVar2 = *puVar13;\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n            local_68 = puVar7;\n            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;\n          }\n          local_68 = &local_58;\n          uVar2 = local_58;\n        }\nLAB_0025f996:\n        local_58 = uVar2;\n        *(undefined1 *)local_68 = 0;\n        puVar13[2] = local_48;\n        puVar13[3] = local_40;\n        if (local_68 != &local_58) {\n          FUN_002dac60();\n        }\n        lVar10 = lVar10 + 1;\n        puVar15 = puVar15 + 10;\n        puVar13 = puVar13 + 10;\n      } while (lVar14 != lVar10);\n      local_a0 = local_a0 + lVar14 * 0x50;\n    }" (if "if") (parenthesized_expression "(0 < lVar14)" (( "(") (binary_expression "0 < lVar14" (number_literal "0") (< "<") (identifier "lVar14")) () ")")) (compound_statement "{\n      lVar10 = 0;\n      puVar13 = (undefined8 *)(local_a0 + 0x30 + lVar11 * 0x50);\n      puVar15 = (undefined8 *)(local_a0 + 0x30);\n      do {\n        uVar2 = puVar15[-6];\n        uVar4 = puVar15[-5];\n        uVar5 = puVar15[-4];\n        uVar6 = puVar15[-3];\n        local_68 = (undefined8 *)puVar15[-2];\n        if (local_68 == puVar15) {\n          local_58 = *puVar15;\n          uStack_50 = puVar15[1];\n          local_68 = &local_58;\n        }\n        else {\n          local_58 = *puVar15;\n        }\n        sVar1 = puVar15[-1];\n        *(undefined1 *)puVar15 = 0;\n        puVar15[-1] = 0;\n        uVar3 = puVar13[-5];\n        local_48 = puVar15[2];\n        puVar15[-6] = puVar13[-6];\n        puVar15[-5] = uVar3;\n        local_40 = puVar15[3];\n        puVar15[-2] = puVar15;\n        puVar15[-4] = puVar13[-4];\n        *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n        if ((undefined8 *)puVar13[-2] == puVar13) {\n          sVar9 = puVar13[-1];\n          if (sVar9 != 0) {\n            if (sVar9 == 1) {\n              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n              sVar9 = puVar13[-1];\n            }\n            else {\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }\n          }\n          puVar15[-1] = sVar9;\n          *(undefined1 *)((long)puVar15 + sVar9) = 0;\n          puVar7 = (undefined8 *)puVar13[-2];\n        }\n        else {\n          puVar15[-2] = (undefined8 *)puVar13[-2];\n          puVar15[-1] = puVar13[-1];\n          *puVar15 = *puVar13;\n          puVar13[-2] = puVar13;\n          puVar7 = puVar13;\n        }\n        puVar13[-1] = 0;\n        *(undefined1 *)puVar7 = 0;\n        puVar15[2] = puVar13[2];\n        puVar15[3] = puVar13[3];\n        puVar13[-6] = uVar2;\n        puVar13[-5] = uVar4;\n        puVar7 = (undefined8 *)puVar13[-2];\n        puVar13[-4] = uVar5;\n        uStack_70 = (undefined4)uVar6;\n        *(undefined4 *)(puVar13 + -3) = uStack_70;\n        if (local_68 == &local_58) {\n          if (sVar1 != 0) {\n            if (sVar1 == 1) {\n              *(undefined1 *)puVar7 = (undefined1)local_58;\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n            else {\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n          }\n          puVar13[-1] = sVar1;\n          *(undefined1 *)((long)puVar7 + sVar1) = 0;\n          uVar2 = local_58;\n        }\n        else {\n          if (puVar7 == puVar13) {\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n          }\n          else {\n            uVar2 = *puVar13;\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n            local_68 = puVar7;\n            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;\n          }\n          local_68 = &local_58;\n          uVar2 = local_58;\n        }\nLAB_0025f996:\n        local_58 = uVar2;\n        *(undefined1 *)local_68 = 0;\n        puVar13[2] = local_48;\n        puVar13[3] = local_40;\n        if (local_68 != &local_58) {\n          FUN_002dac60();\n        }\n        lVar10 = lVar10 + 1;\n        puVar15 = puVar15 + 10;\n        puVar13 = puVar13 + 10;\n      } while (lVar14 != lVar10);\n      local_a0 = local_a0 + lVar14 * 0x50;\n    }" ({ "{") (expression_statement "lVar10 = 0;" (assignment_expression "lVar10 = 0" (identifier "lVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar13 = (undefined8 *)(local_a0 + 0x30 + lVar11 * 0x50);" (assignment_expression "puVar13 = (undefined8 *)(local_a0 + 0x30 + lVar11 * 0x50)" (identifier "puVar13") (= "=") (cast_expression "(undefined8 *)(local_a0 + 0x30 + lVar11 * 0x50)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_a0 + 0x30 + lVar11 * 0x50)" (( "(") (binary_expression "local_a0 + 0x30 + lVar11 * 0x50" (binary_expression "local_a0 + 0x30" (identifier "local_a0") (+ "+") (number_literal "0x30")) (+ "+") (binary_expression "lVar11 * 0x50" (identifier "lVar11") (* "*") (number_literal "0x50"))) () ")")))) (; ";")) (expression_statement "puVar15 = (undefined8 *)(local_a0 + 0x30);" (assignment_expression "puVar15 = (undefined8 *)(local_a0 + 0x30)" (identifier "puVar15") (= "=") (cast_expression "(undefined8 *)(local_a0 + 0x30)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_a0 + 0x30)" (( "(") (binary_expression "local_a0 + 0x30" (identifier "local_a0") (+ "+") (number_literal "0x30")) () ")")))) (; ";")) (do_statement "do {\n        uVar2 = puVar15[-6];\n        uVar4 = puVar15[-5];\n        uVar5 = puVar15[-4];\n        uVar6 = puVar15[-3];\n        local_68 = (undefined8 *)puVar15[-2];\n        if (local_68 == puVar15) {\n          local_58 = *puVar15;\n          uStack_50 = puVar15[1];\n          local_68 = &local_58;\n        }\n        else {\n          local_58 = *puVar15;\n        }\n        sVar1 = puVar15[-1];\n        *(undefined1 *)puVar15 = 0;\n        puVar15[-1] = 0;\n        uVar3 = puVar13[-5];\n        local_48 = puVar15[2];\n        puVar15[-6] = puVar13[-6];\n        puVar15[-5] = uVar3;\n        local_40 = puVar15[3];\n        puVar15[-2] = puVar15;\n        puVar15[-4] = puVar13[-4];\n        *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n        if ((undefined8 *)puVar13[-2] == puVar13) {\n          sVar9 = puVar13[-1];\n          if (sVar9 != 0) {\n            if (sVar9 == 1) {\n              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n              sVar9 = puVar13[-1];\n            }\n            else {\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }\n          }\n          puVar15[-1] = sVar9;\n          *(undefined1 *)((long)puVar15 + sVar9) = 0;\n          puVar7 = (undefined8 *)puVar13[-2];\n        }\n        else {\n          puVar15[-2] = (undefined8 *)puVar13[-2];\n          puVar15[-1] = puVar13[-1];\n          *puVar15 = *puVar13;\n          puVar13[-2] = puVar13;\n          puVar7 = puVar13;\n        }\n        puVar13[-1] = 0;\n        *(undefined1 *)puVar7 = 0;\n        puVar15[2] = puVar13[2];\n        puVar15[3] = puVar13[3];\n        puVar13[-6] = uVar2;\n        puVar13[-5] = uVar4;\n        puVar7 = (undefined8 *)puVar13[-2];\n        puVar13[-4] = uVar5;\n        uStack_70 = (undefined4)uVar6;\n        *(undefined4 *)(puVar13 + -3) = uStack_70;\n        if (local_68 == &local_58) {\n          if (sVar1 != 0) {\n            if (sVar1 == 1) {\n              *(undefined1 *)puVar7 = (undefined1)local_58;\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n            else {\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n          }\n          puVar13[-1] = sVar1;\n          *(undefined1 *)((long)puVar7 + sVar1) = 0;\n          uVar2 = local_58;\n        }\n        else {\n          if (puVar7 == puVar13) {\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n          }\n          else {\n            uVar2 = *puVar13;\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n            local_68 = puVar7;\n            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;\n          }\n          local_68 = &local_58;\n          uVar2 = local_58;\n        }\nLAB_0025f996:\n        local_58 = uVar2;\n        *(undefined1 *)local_68 = 0;\n        puVar13[2] = local_48;\n        puVar13[3] = local_40;\n        if (local_68 != &local_58) {\n          FUN_002dac60();\n        }\n        lVar10 = lVar10 + 1;\n        puVar15 = puVar15 + 10;\n        puVar13 = puVar13 + 10;\n      } while (lVar14 != lVar10);" (do "do") (compound_statement "{\n        uVar2 = puVar15[-6];\n        uVar4 = puVar15[-5];\n        uVar5 = puVar15[-4];\n        uVar6 = puVar15[-3];\n        local_68 = (undefined8 *)puVar15[-2];\n        if (local_68 == puVar15) {\n          local_58 = *puVar15;\n          uStack_50 = puVar15[1];\n          local_68 = &local_58;\n        }\n        else {\n          local_58 = *puVar15;\n        }\n        sVar1 = puVar15[-1];\n        *(undefined1 *)puVar15 = 0;\n        puVar15[-1] = 0;\n        uVar3 = puVar13[-5];\n        local_48 = puVar15[2];\n        puVar15[-6] = puVar13[-6];\n        puVar15[-5] = uVar3;\n        local_40 = puVar15[3];\n        puVar15[-2] = puVar15;\n        puVar15[-4] = puVar13[-4];\n        *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n        if ((undefined8 *)puVar13[-2] == puVar13) {\n          sVar9 = puVar13[-1];\n          if (sVar9 != 0) {\n            if (sVar9 == 1) {\n              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n              sVar9 = puVar13[-1];\n            }\n            else {\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }\n          }\n          puVar15[-1] = sVar9;\n          *(undefined1 *)((long)puVar15 + sVar9) = 0;\n          puVar7 = (undefined8 *)puVar13[-2];\n        }\n        else {\n          puVar15[-2] = (undefined8 *)puVar13[-2];\n          puVar15[-1] = puVar13[-1];\n          *puVar15 = *puVar13;\n          puVar13[-2] = puVar13;\n          puVar7 = puVar13;\n        }\n        puVar13[-1] = 0;\n        *(undefined1 *)puVar7 = 0;\n        puVar15[2] = puVar13[2];\n        puVar15[3] = puVar13[3];\n        puVar13[-6] = uVar2;\n        puVar13[-5] = uVar4;\n        puVar7 = (undefined8 *)puVar13[-2];\n        puVar13[-4] = uVar5;\n        uStack_70 = (undefined4)uVar6;\n        *(undefined4 *)(puVar13 + -3) = uStack_70;\n        if (local_68 == &local_58) {\n          if (sVar1 != 0) {\n            if (sVar1 == 1) {\n              *(undefined1 *)puVar7 = (undefined1)local_58;\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n            else {\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n          }\n          puVar13[-1] = sVar1;\n          *(undefined1 *)((long)puVar7 + sVar1) = 0;\n          uVar2 = local_58;\n        }\n        else {\n          if (puVar7 == puVar13) {\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n          }\n          else {\n            uVar2 = *puVar13;\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n            local_68 = puVar7;\n            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;\n          }\n          local_68 = &local_58;\n          uVar2 = local_58;\n        }\nLAB_0025f996:\n        local_58 = uVar2;\n        *(undefined1 *)local_68 = 0;\n        puVar13[2] = local_48;\n        puVar13[3] = local_40;\n        if (local_68 != &local_58) {\n          FUN_002dac60();\n        }\n        lVar10 = lVar10 + 1;\n        puVar15 = puVar15 + 10;\n        puVar13 = puVar13 + 10;\n      }" ({ "{") (expression_statement "uVar2 = puVar15[-6];" (assignment_expression "uVar2 = puVar15[-6]" (identifier "uVar2") (= "=") (subscript_expression "puVar15[-6]" (identifier "puVar15") ([ "[") (number_literal "-6") (] "]"))) (; ";")) (expression_statement "uVar4 = puVar15[-5];" (assignment_expression "uVar4 = puVar15[-5]" (identifier "uVar4") (= "=") (subscript_expression "puVar15[-5]" (identifier "puVar15") ([ "[") (number_literal "-5") (] "]"))) (; ";")) (expression_statement "uVar5 = puVar15[-4];" (assignment_expression "uVar5 = puVar15[-4]" (identifier "uVar5") (= "=") (subscript_expression "puVar15[-4]" (identifier "puVar15") ([ "[") (number_literal "-4") (] "]"))) (; ";")) (expression_statement "uVar6 = puVar15[-3];" (assignment_expression "uVar6 = puVar15[-3]" (identifier "uVar6") (= "=") (subscript_expression "puVar15[-3]" (identifier "puVar15") ([ "[") (number_literal "-3") (] "]"))) (; ";")) (expression_statement "local_68 = (undefined8 *)puVar15[-2];" (assignment_expression "local_68 = (undefined8 *)puVar15[-2]" (identifier "local_68") (= "=") (cast_expression "(undefined8 *)puVar15[-2]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar15[-2]" (identifier "puVar15") ([ "[") (number_literal "-2") (] "]")))) (; ";")) (if_statement "if (local_68 == puVar15) {\n          local_58 = *puVar15;\n          uStack_50 = puVar15[1];\n          local_68 = &local_58;\n        }\n        else {\n          local_58 = *puVar15;\n        }" (if "if") (parenthesized_expression "(local_68 == puVar15)" (( "(") (binary_expression "local_68 == puVar15" (identifier "local_68") (== "==") (identifier "puVar15")) () ")")) (compound_statement "{\n          local_58 = *puVar15;\n          uStack_50 = puVar15[1];\n          local_68 = &local_58;\n        }" ({ "{") (expression_statement "local_58 = *puVar15;" (assignment_expression "local_58 = *puVar15" (identifier "local_58") (= "=") (pointer_expression "*puVar15" (* "*") (identifier "puVar15"))) (; ";")) (expression_statement "uStack_50 = puVar15[1];" (assignment_expression "uStack_50 = puVar15[1]" (identifier "uStack_50") (= "=") (subscript_expression "puVar15[1]" (identifier "puVar15") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_68 = &local_58;" (assignment_expression "local_68 = &local_58" (identifier "local_68") (= "=") (pointer_expression "&local_58" (& "&") (identifier "local_58"))) (; ";")) (} "}")) (else_clause "else {\n          local_58 = *puVar15;\n        }" (else "else") (compound_statement "{\n          local_58 = *puVar15;\n        }" ({ "{") (expression_statement "local_58 = *puVar15;" (assignment_expression "local_58 = *puVar15" (identifier "local_58") (= "=") (pointer_expression "*puVar15" (* "*") (identifier "puVar15"))) (; ";")) (} "}")))) (expression_statement "sVar1 = puVar15[-1];" (assignment_expression "sVar1 = puVar15[-1]" (identifier "sVar1") (= "=") (subscript_expression "puVar15[-1]" (identifier "puVar15") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "*(undefined1 *)puVar15 = 0;" (assignment_expression "*(undefined1 *)puVar15 = 0" (pointer_expression "*(undefined1 *)puVar15" (* "*") (cast_expression "(undefined1 *)puVar15" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar15"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar15[-1] = 0;" (assignment_expression "puVar15[-1] = 0" (subscript_expression "puVar15[-1]" (identifier "puVar15") ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar3 = puVar13[-5];" (assignment_expression "uVar3 = puVar13[-5]" (identifier "uVar3") (= "=") (subscript_expression "puVar13[-5]" (identifier "puVar13") ([ "[") (number_literal "-5") (] "]"))) (; ";")) (expression_statement "local_48 = puVar15[2];" (assignment_expression "local_48 = puVar15[2]" (identifier "local_48") (= "=") (subscript_expression "puVar15[2]" (identifier "puVar15") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "puVar15[-6] = puVar13[-6];" (assignment_expression "puVar15[-6] = puVar13[-6]" (subscript_expression "puVar15[-6]" (identifier "puVar15") ([ "[") (number_literal "-6") (] "]")) (= "=") (subscript_expression "puVar13[-6]" (identifier "puVar13") ([ "[") (number_literal "-6") (] "]"))) (; ";")) (expression_statement "puVar15[-5] = uVar3;" (assignment_expression "puVar15[-5] = uVar3" (subscript_expression "puVar15[-5]" (identifier "puVar15") ([ "[") (number_literal "-5") (] "]")) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "local_40 = puVar15[3];" (assignment_expression "local_40 = puVar15[3]" (identifier "local_40") (= "=") (subscript_expression "puVar15[3]" (identifier "puVar15") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar15[-2] = puVar15;" (assignment_expression "puVar15[-2] = puVar15" (subscript_expression "puVar15[-2]" (identifier "puVar15") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "puVar15")) (; ";")) (expression_statement "puVar15[-4] = puVar13[-4];" (assignment_expression "puVar15[-4] = puVar13[-4]" (subscript_expression "puVar15[-4]" (identifier "puVar15") ([ "[") (number_literal "-4") (] "]")) (= "=") (subscript_expression "puVar13[-4]" (identifier "puVar13") ([ "[") (number_literal "-4") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);" (assignment_expression "*(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3)" (pointer_expression "*(undefined4 *)(puVar15 + -3)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -3)" (( "(") (binary_expression "puVar15 + -3" (identifier "puVar15") (+ "+") (number_literal "-3")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar13 + -3)" (* "*") (cast_expression "(undefined4 *)(puVar13 + -3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -3)" (( "(") (binary_expression "puVar13 + -3" (identifier "puVar13") (+ "+") (number_literal "-3")) () ")"))))) (; ";")) (if_statement "if ((undefined8 *)puVar13[-2] == puVar13) {\n          sVar9 = puVar13[-1];\n          if (sVar9 != 0) {\n            if (sVar9 == 1) {\n              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n              sVar9 = puVar13[-1];\n            }\n            else {\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }\n          }\n          puVar15[-1] = sVar9;\n          *(undefined1 *)((long)puVar15 + sVar9) = 0;\n          puVar7 = (undefined8 *)puVar13[-2];\n        }\n        else {\n          puVar15[-2] = (undefined8 *)puVar13[-2];\n          puVar15[-1] = puVar13[-1];\n          *puVar15 = *puVar13;\n          puVar13[-2] = puVar13;\n          puVar7 = puVar13;\n        }" (if "if") (parenthesized_expression "((undefined8 *)puVar13[-2] == puVar13)" (( "(") (binary_expression "(undefined8 *)puVar13[-2] == puVar13" (cast_expression "(undefined8 *)puVar13[-2]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar13[-2]" (identifier "puVar13") ([ "[") (number_literal "-2") (] "]"))) (== "==") (identifier "puVar13")) () ")")) (compound_statement "{\n          sVar9 = puVar13[-1];\n          if (sVar9 != 0) {\n            if (sVar9 == 1) {\n              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n              sVar9 = puVar13[-1];\n            }\n            else {\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }\n          }\n          puVar15[-1] = sVar9;\n          *(undefined1 *)((long)puVar15 + sVar9) = 0;\n          puVar7 = (undefined8 *)puVar13[-2];\n        }" ({ "{") (expression_statement "sVar9 = puVar13[-1];" (assignment_expression "sVar9 = puVar13[-1]" (identifier "sVar9") (= "=") (subscript_expression "puVar13[-1]" (identifier "puVar13") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (if_statement "if (sVar9 != 0) {\n            if (sVar9 == 1) {\n              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n              sVar9 = puVar13[-1];\n            }\n            else {\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }\n          }" (if "if") (parenthesized_expression "(sVar9 != 0)" (( "(") (binary_expression "sVar9 != 0" (identifier "sVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            if (sVar9 == 1) {\n              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n              sVar9 = puVar13[-1];\n            }\n            else {\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }\n          }" ({ "{") (if_statement "if (sVar9 == 1) {\n              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n              sVar9 = puVar13[-1];\n            }\n            else {\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }" (if "if") (parenthesized_expression "(sVar9 == 1)" (( "(") (binary_expression "sVar9 == 1" (identifier "sVar9") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n              sVar9 = puVar13[-1];\n            }" ({ "{") (expression_statement "*(undefined1 *)puVar15 = *(undefined1 *)puVar13;" (assignment_expression "*(undefined1 *)puVar15 = *(undefined1 *)puVar13" (pointer_expression "*(undefined1 *)puVar15" (* "*") (cast_expression "(undefined1 *)puVar15" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar15"))) (= "=") (pointer_expression "*(undefined1 *)puVar13" (* "*") (cast_expression "(undefined1 *)puVar13" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar13")))) (; ";")) (expression_statement "sVar9 = puVar13[-1];" (assignment_expression "sVar9 = puVar13[-1]" (identifier "sVar9") (= "=") (subscript_expression "puVar13[-1]" (identifier "puVar13") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }" (else "else") (compound_statement "{\n              memcpy(puVar15,puVar13,sVar9);\n              sVar9 = puVar13[-1];\n            }" ({ "{") (expression_statement "memcpy(puVar15,puVar13,sVar9);" (call_expression "memcpy(puVar15,puVar13,sVar9)" (identifier "memcpy") (argument_list "(puVar15,puVar13,sVar9)" (( "(") (identifier "puVar15") (, ",") (identifier "puVar13") (, ",") (identifier "sVar9") () ")"))) (; ";")) (expression_statement "sVar9 = puVar13[-1];" (assignment_expression "sVar9 = puVar13[-1]" (identifier "sVar9") (= "=") (subscript_expression "puVar13[-1]" (identifier "puVar13") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "puVar15[-1] = sVar9;" (assignment_expression "puVar15[-1] = sVar9" (subscript_expression "puVar15[-1]" (identifier "puVar15") ([ "[") (number_literal "-1") (] "]")) (= "=") (identifier "sVar9")) (; ";")) (expression_statement "*(undefined1 *)((long)puVar15 + sVar9) = 0;" (assignment_expression "*(undefined1 *)((long)puVar15 + sVar9) = 0" (pointer_expression "*(undefined1 *)((long)puVar15 + sVar9)" (* "*") (cast_expression "(undefined1 *)((long)puVar15 + sVar9)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar15 + sVar9)" (( "(") (binary_expression "(long)puVar15 + sVar9" (cast_expression "(long)puVar15" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar15")) (+ "+") (identifier "sVar9")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7 = (undefined8 *)puVar13[-2];" (assignment_expression "puVar7 = (undefined8 *)puVar13[-2]" (identifier "puVar7") (= "=") (cast_expression "(undefined8 *)puVar13[-2]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar13[-2]" (identifier "puVar13") ([ "[") (number_literal "-2") (] "]")))) (; ";")) (} "}")) (else_clause "else {\n          puVar15[-2] = (undefined8 *)puVar13[-2];\n          puVar15[-1] = puVar13[-1];\n          *puVar15 = *puVar13;\n          puVar13[-2] = puVar13;\n          puVar7 = puVar13;\n        }" (else "else") (compound_statement "{\n          puVar15[-2] = (undefined8 *)puVar13[-2];\n          puVar15[-1] = puVar13[-1];\n          *puVar15 = *puVar13;\n          puVar13[-2] = puVar13;\n          puVar7 = puVar13;\n        }" ({ "{") (expression_statement "puVar15[-2] = (undefined8 *)puVar13[-2];" (assignment_expression "puVar15[-2] = (undefined8 *)puVar13[-2]" (subscript_expression "puVar15[-2]" (identifier "puVar15") ([ "[") (number_literal "-2") (] "]")) (= "=") (cast_expression "(undefined8 *)puVar13[-2]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar13[-2]" (identifier "puVar13") ([ "[") (number_literal "-2") (] "]")))) (; ";")) (expression_statement "puVar15[-1] = puVar13[-1];" (assignment_expression "puVar15[-1] = puVar13[-1]" (subscript_expression "puVar15[-1]" (identifier "puVar15") ([ "[") (number_literal "-1") (] "]")) (= "=") (subscript_expression "puVar13[-1]" (identifier "puVar13") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "*puVar15 = *puVar13;" (assignment_expression "*puVar15 = *puVar13" (pointer_expression "*puVar15" (* "*") (identifier "puVar15")) (= "=") (pointer_expression "*puVar13" (* "*") (identifier "puVar13"))) (; ";")) (expression_statement "puVar13[-2] = puVar13;" (assignment_expression "puVar13[-2] = puVar13" (subscript_expression "puVar13[-2]" (identifier "puVar13") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "puVar13")) (; ";")) (expression_statement "puVar7 = puVar13;" (assignment_expression "puVar7 = puVar13" (identifier "puVar7") (= "=") (identifier "puVar13")) (; ";")) (} "}")))) (expression_statement "puVar13[-1] = 0;" (assignment_expression "puVar13[-1] = 0" (subscript_expression "puVar13[-1]" (identifier "puVar13") ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)puVar7 = 0;" (assignment_expression "*(undefined1 *)puVar7 = 0" (pointer_expression "*(undefined1 *)puVar7" (* "*") (cast_expression "(undefined1 *)puVar7" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar7"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar15[2] = puVar13[2];" (assignment_expression "puVar15[2] = puVar13[2]" (subscript_expression "puVar15[2]" (identifier "puVar15") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "puVar13[2]" (identifier "puVar13") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "puVar15[3] = puVar13[3];" (assignment_expression "puVar15[3] = puVar13[3]" (subscript_expression "puVar15[3]" (identifier "puVar15") ([ "[") (number_literal "3") (] "]")) (= "=") (subscript_expression "puVar13[3]" (identifier "puVar13") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar13[-6] = uVar2;" (assignment_expression "puVar13[-6] = uVar2" (subscript_expression "puVar13[-6]" (identifier "puVar13") ([ "[") (number_literal "-6") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "puVar13[-5] = uVar4;" (assignment_expression "puVar13[-5] = uVar4" (subscript_expression "puVar13[-5]" (identifier "puVar13") ([ "[") (number_literal "-5") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "puVar7 = (undefined8 *)puVar13[-2];" (assignment_expression "puVar7 = (undefined8 *)puVar13[-2]" (identifier "puVar7") (= "=") (cast_expression "(undefined8 *)puVar13[-2]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar13[-2]" (identifier "puVar13") ([ "[") (number_literal "-2") (] "]")))) (; ";")) (expression_statement "puVar13[-4] = uVar5;" (assignment_expression "puVar13[-4] = uVar5" (subscript_expression "puVar13[-4]" (identifier "puVar13") ([ "[") (number_literal "-4") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "uStack_70 = (undefined4)uVar6;" (assignment_expression "uStack_70 = (undefined4)uVar6" (identifier "uStack_70") (= "=") (cast_expression "(undefined4)uVar6" (( "(") (type_descriptor "undefined4" (type_identifier "undefined4")) () ")") (identifier "uVar6"))) (; ";")) (expression_statement "*(undefined4 *)(puVar13 + -3) = uStack_70;" (assignment_expression "*(undefined4 *)(puVar13 + -3) = uStack_70" (pointer_expression "*(undefined4 *)(puVar13 + -3)" (* "*") (cast_expression "(undefined4 *)(puVar13 + -3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -3)" (( "(") (binary_expression "puVar13 + -3" (identifier "puVar13") (+ "+") (number_literal "-3")) () ")")))) (= "=") (identifier "uStack_70")) (; ";")) (if_statement "if (local_68 == &local_58) {\n          if (sVar1 != 0) {\n            if (sVar1 == 1) {\n              *(undefined1 *)puVar7 = (undefined1)local_58;\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n            else {\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n          }\n          puVar13[-1] = sVar1;\n          *(undefined1 *)((long)puVar7 + sVar1) = 0;\n          uVar2 = local_58;\n        }\n        else {\n          if (puVar7 == puVar13) {\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n          }\n          else {\n            uVar2 = *puVar13;\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n            local_68 = puVar7;\n            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;\n          }\n          local_68 = &local_58;\n          uVar2 = local_58;\n        }" (if "if") (parenthesized_expression "(local_68 == &local_58)" (( "(") (binary_expression "local_68 == &local_58" (identifier "local_68") (== "==") (pointer_expression "&local_58" (& "&") (identifier "local_58"))) () ")")) (compound_statement "{\n          if (sVar1 != 0) {\n            if (sVar1 == 1) {\n              *(undefined1 *)puVar7 = (undefined1)local_58;\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n            else {\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n          }\n          puVar13[-1] = sVar1;\n          *(undefined1 *)((long)puVar7 + sVar1) = 0;\n          uVar2 = local_58;\n        }" ({ "{") (if_statement "if (sVar1 != 0) {\n            if (sVar1 == 1) {\n              *(undefined1 *)puVar7 = (undefined1)local_58;\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n            else {\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n          }" (if "if") (parenthesized_expression "(sVar1 != 0)" (( "(") (binary_expression "sVar1 != 0" (identifier "sVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            if (sVar1 == 1) {\n              *(undefined1 *)puVar7 = (undefined1)local_58;\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n            else {\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n          }" ({ "{") (if_statement "if (sVar1 == 1) {\n              *(undefined1 *)puVar7 = (undefined1)local_58;\n              puVar7 = (undefined8 *)puVar13[-2];\n            }\n            else {\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }" (if "if") (parenthesized_expression "(sVar1 == 1)" (( "(") (binary_expression "sVar1 == 1" (identifier "sVar1") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n              *(undefined1 *)puVar7 = (undefined1)local_58;\n              puVar7 = (undefined8 *)puVar13[-2];\n            }" ({ "{") (expression_statement "*(undefined1 *)puVar7 = (undefined1)local_58;" (assignment_expression "*(undefined1 *)puVar7 = (undefined1)local_58" (pointer_expression "*(undefined1 *)puVar7" (* "*") (cast_expression "(undefined1 *)puVar7" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar7"))) (= "=") (cast_expression "(undefined1)local_58" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "local_58"))) (; ";")) (expression_statement "puVar7 = (undefined8 *)puVar13[-2];" (assignment_expression "puVar7 = (undefined8 *)puVar13[-2]" (identifier "puVar7") (= "=") (cast_expression "(undefined8 *)puVar13[-2]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar13[-2]" (identifier "puVar13") ([ "[") (number_literal "-2") (] "]")))) (; ";")) (} "}")) (else_clause "else {\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }" (else "else") (compound_statement "{\n              memcpy(puVar7,&local_58,sVar1);\n              puVar7 = (undefined8 *)puVar13[-2];\n            }" ({ "{") (expression_statement "memcpy(puVar7,&local_58,sVar1);" (call_expression "memcpy(puVar7,&local_58,sVar1)" (identifier "memcpy") (argument_list "(puVar7,&local_58,sVar1)" (( "(") (identifier "puVar7") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) (, ",") (identifier "sVar1") () ")"))) (; ";")) (expression_statement "puVar7 = (undefined8 *)puVar13[-2];" (assignment_expression "puVar7 = (undefined8 *)puVar13[-2]" (identifier "puVar7") (= "=") (cast_expression "(undefined8 *)puVar13[-2]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar13[-2]" (identifier "puVar13") ([ "[") (number_literal "-2") (] "]")))) (; ";")) (} "}")))) (} "}"))) (expression_statement "puVar13[-1] = sVar1;" (assignment_expression "puVar13[-1] = sVar1" (subscript_expression "puVar13[-1]" (identifier "puVar13") ([ "[") (number_literal "-1") (] "]")) (= "=") (identifier "sVar1")) (; ";")) (expression_statement "*(undefined1 *)((long)puVar7 + sVar1) = 0;" (assignment_expression "*(undefined1 *)((long)puVar7 + sVar1) = 0" (pointer_expression "*(undefined1 *)((long)puVar7 + sVar1)" (* "*") (cast_expression "(undefined1 *)((long)puVar7 + sVar1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar7 + sVar1)" (( "(") (binary_expression "(long)puVar7 + sVar1" (cast_expression "(long)puVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar7")) (+ "+") (identifier "sVar1")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar2 = local_58;" (assignment_expression "uVar2 = local_58" (identifier "uVar2") (= "=") (identifier "local_58")) (; ";")) (} "}")) (else_clause "else {\n          if (puVar7 == puVar13) {\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n          }\n          else {\n            uVar2 = *puVar13;\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n            local_68 = puVar7;\n            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;\n          }\n          local_68 = &local_58;\n          uVar2 = local_58;\n        }" (else "else") (compound_statement "{\n          if (puVar7 == puVar13) {\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n          }\n          else {\n            uVar2 = *puVar13;\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n            local_68 = puVar7;\n            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;\n          }\n          local_68 = &local_58;\n          uVar2 = local_58;\n        }" ({ "{") (if_statement "if (puVar7 == puVar13) {\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n          }\n          else {\n            uVar2 = *puVar13;\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n            local_68 = puVar7;\n            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;\n          }" (if "if") (parenthesized_expression "(puVar7 == puVar13)" (( "(") (binary_expression "puVar7 == puVar13" (identifier "puVar7") (== "==") (identifier "puVar13")) () ")")) (compound_statement "{\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n          }" ({ "{") (expression_statement "puVar13[-2] = local_68;" (assignment_expression "puVar13[-2] = local_68" (subscript_expression "puVar13[-2]" (identifier "puVar13") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "local_68")) (; ";")) (expression_statement "puVar13[-1] = sVar1;" (assignment_expression "puVar13[-1] = sVar1" (subscript_expression "puVar13[-1]" (identifier "puVar13") ([ "[") (number_literal "-1") (] "]")) (= "=") (identifier "sVar1")) (; ";")) (expression_statement "*puVar13 = local_58;" (assignment_expression "*puVar13 = local_58" (pointer_expression "*puVar13" (* "*") (identifier "puVar13")) (= "=") (identifier "local_58")) (; ";")) (} "}")) (else_clause "else {\n            uVar2 = *puVar13;\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n            local_68 = puVar7;\n            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;\n          }" (else "else") (compound_statement "{\n            uVar2 = *puVar13;\n            puVar13[-2] = local_68;\n            puVar13[-1] = sVar1;\n            *puVar13 = local_58;\n            local_68 = puVar7;\n            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;\n          }" ({ "{") (expression_statement "uVar2 = *puVar13;" (assignment_expression "uVar2 = *puVar13" (identifier "uVar2") (= "=") (pointer_expression "*puVar13" (* "*") (identifier "puVar13"))) (; ";")) (expression_statement "puVar13[-2] = local_68;" (assignment_expression "puVar13[-2] = local_68" (subscript_expression "puVar13[-2]" (identifier "puVar13") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "local_68")) (; ";")) (expression_statement "puVar13[-1] = sVar1;" (assignment_expression "puVar13[-1] = sVar1" (subscript_expression "puVar13[-1]" (identifier "puVar13") ([ "[") (number_literal "-1") (] "]")) (= "=") (identifier "sVar1")) (; ";")) (expression_statement "*puVar13 = local_58;" (assignment_expression "*puVar13 = local_58" (pointer_expression "*puVar13" (* "*") (identifier "puVar13")) (= "=") (identifier "local_58")) (; ";")) (expression_statement "local_68 = puVar7;" (assignment_expression "local_68 = puVar7" (identifier "local_68") (= "=") (identifier "puVar7")) (; ";")) (if_statement "if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;" (if "if") (parenthesized_expression "(puVar7 != (undefined8 *)0x0)" (( "(") (binary_expression "puVar7 != (undefined8 *)0x0" (identifier "puVar7") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0025f996;" (goto "goto") (statement_identifier "LAB_0025f996") (; ";"))) (} "}")))) (expression_statement "local_68 = &local_58;" (assignment_expression "local_68 = &local_58" (identifier "local_68") (= "=") (pointer_expression "&local_58" (& "&") (identifier "local_58"))) (; ";")) (expression_statement "uVar2 = local_58;" (assignment_expression "uVar2 = local_58" (identifier "uVar2") (= "=") (identifier "local_58")) (; ";")) (} "}")))) (labeled_statement "LAB_0025f996:\n        local_58 = uVar2;" (statement_identifier "LAB_0025f996") (: ":") (expression_statement "local_58 = uVar2;" (assignment_expression "local_58 = uVar2" (identifier "local_58") (= "=") (identifier "uVar2")) (; ";"))) (expression_statement "*(undefined1 *)local_68 = 0;" (assignment_expression "*(undefined1 *)local_68 = 0" (pointer_expression "*(undefined1 *)local_68" (* "*") (cast_expression "(undefined1 *)local_68" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_68"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar13[2] = local_48;" (assignment_expression "puVar13[2] = local_48" (subscript_expression "puVar13[2]" (identifier "puVar13") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_48")) (; ";")) (expression_statement "puVar13[3] = local_40;" (assignment_expression "puVar13[3] = local_40" (subscript_expression "puVar13[3]" (identifier "puVar13") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_40")) (; ";")) (if_statement "if (local_68 != &local_58) {\n          FUN_002dac60();\n        }" (if "if") (parenthesized_expression "(local_68 != &local_58)" (( "(") (binary_expression "local_68 != &local_58" (identifier "local_68") (!= "!=") (pointer_expression "&local_58" (& "&") (identifier "local_58"))) () ")")) (compound_statement "{\n          FUN_002dac60();\n        }" ({ "{") (expression_statement "FUN_002dac60();" (call_expression "FUN_002dac60()" (identifier "FUN_002dac60") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "lVar10 = lVar10 + 1;" (assignment_expression "lVar10 = lVar10 + 1" (identifier "lVar10") (= "=") (binary_expression "lVar10 + 1" (identifier "lVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar15 = puVar15 + 10;" (assignment_expression "puVar15 = puVar15 + 10" (identifier "puVar15") (= "=") (binary_expression "puVar15 + 10" (identifier "puVar15") (+ "+") (number_literal "10"))) (; ";")) (expression_statement "puVar13 = puVar13 + 10;" (assignment_expression "puVar13 = puVar13 + 10" (identifier "puVar13") (= "=") (binary_expression "puVar13 + 10" (identifier "puVar13") (+ "+") (number_literal "10"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(lVar14 != lVar10)" (( "(") (binary_expression "lVar14 != lVar10" (identifier "lVar14") (!= "!=") (identifier "lVar10")) () ")")) (; ";")) (expression_statement "local_a0 = local_a0 + lVar14 * 0x50;" (assignment_expression "local_a0 = local_a0 + lVar14 * 0x50" (identifier "local_a0") (= "=") (binary_expression "local_a0 + lVar14 * 0x50" (identifier "local_a0") (+ "+") (binary_expression "lVar14 * 0x50" (identifier "lVar14") (* "*") (number_literal "0x50")))) (; ";")) (} "}"))) (if_statement "if (local_a8 % lVar11 == 0) {\n      return lVar8;\n    }" (if "if") (parenthesized_expression "(local_a8 % lVar11 == 0)" (( "(") (binary_expression "local_a8 % lVar11 == 0" (binary_expression "local_a8 % lVar11" (identifier "local_a8") (% "%") (identifier "lVar11")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return lVar8;\n    }" ({ "{") (return_statement "return lVar8;" (return "return") (identifier "lVar8") (; ";")) (} "}"))) (expression_statement "lVar12 = lVar11 - local_a8 % lVar11;" (assignment_expression "lVar12 = lVar11 - local_a8 % lVar11" (identifier "lVar12") (= "=") (binary_expression "lVar11 - local_a8 % lVar11" (identifier "lVar11") (- "-") (binary_expression "local_a8 % lVar11" (identifier "local_a8") (% "%") (identifier "lVar11")))) (; ";")) (expression_statement "lVar10 = lVar11;" (assignment_expression "lVar10 = lVar11" (identifier "lVar10") (= "=") (identifier "lVar11")) (; ";")) (while_statement "while (lVar14 = lVar10 - lVar12, lVar11 = lVar12, local_a8 = lVar10, lVar14 <= lVar12) {\nLAB_0025fb1a:\n      lVar10 = lVar14;\n      lVar11 = local_a8 * 0x50 + local_a0;\n      local_a0 = lVar11 + lVar10 * -0x50;\n      if (0 < lVar12) {\n        puVar15 = (undefined8 *)(local_a0 + -0x20);\n        puVar13 = (undefined8 *)(lVar11 + -0x20);\n        lVar11 = 0;\n        do {\n          uVar2 = puVar15[-6];\n          uVar4 = puVar15[-5];\n          uVar5 = puVar15[-4];\n          uVar6 = puVar15[-3];\n          local_68 = (undefined8 *)puVar15[-2];\n          if (local_68 == puVar15) {\n            local_58 = *puVar15;\n            uStack_50 = puVar15[1];\n            local_68 = &local_58;\n          }\n          else {\n            local_58 = *puVar15;\n          }\n          sVar1 = puVar15[-1];\n          *(undefined1 *)puVar15 = 0;\n          puVar15[-1] = 0;\n          uVar3 = puVar13[-5];\n          local_48 = puVar15[2];\n          puVar15[-6] = puVar13[-6];\n          puVar15[-5] = uVar3;\n          local_40 = puVar15[3];\n          puVar15[-2] = puVar15;\n          puVar15[-4] = puVar13[-4];\n          *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n          if ((undefined8 *)puVar13[-2] == puVar13) {\n            sVar9 = puVar13[-1];\n            if (sVar9 != 0) {\n              if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }\n            }\n            puVar15[-1] = sVar9;\n            *(undefined1 *)(puVar15[-2] + sVar9) = 0;\n          }\n          else {\n            puVar15[-2] = (undefined8 *)puVar13[-2];\n            puVar15[-1] = puVar13[-1];\n            *puVar15 = *puVar13;\n            puVar13[-2] = puVar13;\n          }\n          puVar13[-1] = 0;\n          *(undefined1 *)puVar13[-2] = 0;\n          puVar15[2] = puVar13[2];\n          puVar15[3] = puVar13[3];\n          puVar7 = (undefined8 *)puVar13[-2];\n          puVar13[-6] = uVar2;\n          puVar13[-5] = uVar4;\n          puVar13[-4] = uVar5;\n          uStack_70 = (undefined4)uVar6;\n          *(undefined4 *)(puVar13 + -3) = uStack_70;\n          if (local_68 == &local_58) {\n            if (sVar1 != 0) {\n              if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n            }\n            puVar13[-1] = sVar1;\n            *(undefined1 *)((long)puVar7 + sVar1) = 0;\n            uVar2 = local_58;\n          }\n          else {\n            if (puVar7 == puVar13) {\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }\n            else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }\n            local_68 = &local_58;\n            uVar2 = local_58;\n          }\nLAB_0025fc78:\n          local_58 = uVar2;\n          *(undefined1 *)local_68 = 0;\n          puVar13[2] = local_48;\n          puVar13[3] = local_40;\n          if (local_68 != &local_58) {\n            FUN_002dac60();\n          }\n          lVar11 = lVar11 + 1;\n          puVar15 = puVar15 + -10;\n          puVar13 = puVar13 + -10;\n        } while (lVar11 != lVar12);\n        local_a0 = local_a0 + lVar11 * -0x50;\n      }\n      lVar12 = local_a8 % lVar10;\n      if (lVar12 == 0) {\n        return lVar8;\n      }\n    }" (while "while") (parenthesized_expression "(lVar14 = lVar10 - lVar12, lVar11 = lVar12, local_a8 = lVar10, lVar14 <= lVar12)" (( "(") (comma_expression "lVar14 = lVar10 - lVar12, lVar11 = lVar12, local_a8 = lVar10, lVar14 <= lVar12" (assignment_expression "lVar14 = lVar10 - lVar12" (identifier "lVar14") (= "=") (binary_expression "lVar10 - lVar12" (identifier "lVar10") (- "-") (identifier "lVar12"))) (, ",") (comma_expression "lVar11 = lVar12, local_a8 = lVar10, lVar14 <= lVar12" (assignment_expression "lVar11 = lVar12" (identifier "lVar11") (= "=") (identifier "lVar12")) (, ",") (comma_expression "local_a8 = lVar10, lVar14 <= lVar12" (assignment_expression "local_a8 = lVar10" (identifier "local_a8") (= "=") (identifier "lVar10")) (, ",") (binary_expression "lVar14 <= lVar12" (identifier "lVar14") (<= "<=") (identifier "lVar12"))))) () ")")) (compound_statement "{\nLAB_0025fb1a:\n      lVar10 = lVar14;\n      lVar11 = local_a8 * 0x50 + local_a0;\n      local_a0 = lVar11 + lVar10 * -0x50;\n      if (0 < lVar12) {\n        puVar15 = (undefined8 *)(local_a0 + -0x20);\n        puVar13 = (undefined8 *)(lVar11 + -0x20);\n        lVar11 = 0;\n        do {\n          uVar2 = puVar15[-6];\n          uVar4 = puVar15[-5];\n          uVar5 = puVar15[-4];\n          uVar6 = puVar15[-3];\n          local_68 = (undefined8 *)puVar15[-2];\n          if (local_68 == puVar15) {\n            local_58 = *puVar15;\n            uStack_50 = puVar15[1];\n            local_68 = &local_58;\n          }\n          else {\n            local_58 = *puVar15;\n          }\n          sVar1 = puVar15[-1];\n          *(undefined1 *)puVar15 = 0;\n          puVar15[-1] = 0;\n          uVar3 = puVar13[-5];\n          local_48 = puVar15[2];\n          puVar15[-6] = puVar13[-6];\n          puVar15[-5] = uVar3;\n          local_40 = puVar15[3];\n          puVar15[-2] = puVar15;\n          puVar15[-4] = puVar13[-4];\n          *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n          if ((undefined8 *)puVar13[-2] == puVar13) {\n            sVar9 = puVar13[-1];\n            if (sVar9 != 0) {\n              if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }\n            }\n            puVar15[-1] = sVar9;\n            *(undefined1 *)(puVar15[-2] + sVar9) = 0;\n          }\n          else {\n            puVar15[-2] = (undefined8 *)puVar13[-2];\n            puVar15[-1] = puVar13[-1];\n            *puVar15 = *puVar13;\n            puVar13[-2] = puVar13;\n          }\n          puVar13[-1] = 0;\n          *(undefined1 *)puVar13[-2] = 0;\n          puVar15[2] = puVar13[2];\n          puVar15[3] = puVar13[3];\n          puVar7 = (undefined8 *)puVar13[-2];\n          puVar13[-6] = uVar2;\n          puVar13[-5] = uVar4;\n          puVar13[-4] = uVar5;\n          uStack_70 = (undefined4)uVar6;\n          *(undefined4 *)(puVar13 + -3) = uStack_70;\n          if (local_68 == &local_58) {\n            if (sVar1 != 0) {\n              if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n            }\n            puVar13[-1] = sVar1;\n            *(undefined1 *)((long)puVar7 + sVar1) = 0;\n            uVar2 = local_58;\n          }\n          else {\n            if (puVar7 == puVar13) {\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }\n            else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }\n            local_68 = &local_58;\n            uVar2 = local_58;\n          }\nLAB_0025fc78:\n          local_58 = uVar2;\n          *(undefined1 *)local_68 = 0;\n          puVar13[2] = local_48;\n          puVar13[3] = local_40;\n          if (local_68 != &local_58) {\n            FUN_002dac60();\n          }\n          lVar11 = lVar11 + 1;\n          puVar15 = puVar15 + -10;\n          puVar13 = puVar13 + -10;\n        } while (lVar11 != lVar12);\n        local_a0 = local_a0 + lVar11 * -0x50;\n      }\n      lVar12 = local_a8 % lVar10;\n      if (lVar12 == 0) {\n        return lVar8;\n      }\n    }" ({ "{") (labeled_statement "LAB_0025fb1a:\n      lVar10 = lVar14;" (statement_identifier "LAB_0025fb1a") (: ":") (expression_statement "lVar10 = lVar14;" (assignment_expression "lVar10 = lVar14" (identifier "lVar10") (= "=") (identifier "lVar14")) (; ";"))) (expression_statement "lVar11 = local_a8 * 0x50 + local_a0;" (assignment_expression "lVar11 = local_a8 * 0x50 + local_a0" (identifier "lVar11") (= "=") (binary_expression "local_a8 * 0x50 + local_a0" (binary_expression "local_a8 * 0x50" (identifier "local_a8") (* "*") (number_literal "0x50")) (+ "+") (identifier "local_a0"))) (; ";")) (expression_statement "local_a0 = lVar11 + lVar10 * -0x50;" (assignment_expression "local_a0 = lVar11 + lVar10 * -0x50" (identifier "local_a0") (= "=") (binary_expression "lVar11 + lVar10 * -0x50" (identifier "lVar11") (+ "+") (binary_expression "lVar10 * -0x50" (identifier "lVar10") (* "*") (number_literal "-0x50")))) (; ";")) (if_statement "if (0 < lVar12) {\n        puVar15 = (undefined8 *)(local_a0 + -0x20);\n        puVar13 = (undefined8 *)(lVar11 + -0x20);\n        lVar11 = 0;\n        do {\n          uVar2 = puVar15[-6];\n          uVar4 = puVar15[-5];\n          uVar5 = puVar15[-4];\n          uVar6 = puVar15[-3];\n          local_68 = (undefined8 *)puVar15[-2];\n          if (local_68 == puVar15) {\n            local_58 = *puVar15;\n            uStack_50 = puVar15[1];\n            local_68 = &local_58;\n          }\n          else {\n            local_58 = *puVar15;\n          }\n          sVar1 = puVar15[-1];\n          *(undefined1 *)puVar15 = 0;\n          puVar15[-1] = 0;\n          uVar3 = puVar13[-5];\n          local_48 = puVar15[2];\n          puVar15[-6] = puVar13[-6];\n          puVar15[-5] = uVar3;\n          local_40 = puVar15[3];\n          puVar15[-2] = puVar15;\n          puVar15[-4] = puVar13[-4];\n          *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n          if ((undefined8 *)puVar13[-2] == puVar13) {\n            sVar9 = puVar13[-1];\n            if (sVar9 != 0) {\n              if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }\n            }\n            puVar15[-1] = sVar9;\n            *(undefined1 *)(puVar15[-2] + sVar9) = 0;\n          }\n          else {\n            puVar15[-2] = (undefined8 *)puVar13[-2];\n            puVar15[-1] = puVar13[-1];\n            *puVar15 = *puVar13;\n            puVar13[-2] = puVar13;\n          }\n          puVar13[-1] = 0;\n          *(undefined1 *)puVar13[-2] = 0;\n          puVar15[2] = puVar13[2];\n          puVar15[3] = puVar13[3];\n          puVar7 = (undefined8 *)puVar13[-2];\n          puVar13[-6] = uVar2;\n          puVar13[-5] = uVar4;\n          puVar13[-4] = uVar5;\n          uStack_70 = (undefined4)uVar6;\n          *(undefined4 *)(puVar13 + -3) = uStack_70;\n          if (local_68 == &local_58) {\n            if (sVar1 != 0) {\n              if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n            }\n            puVar13[-1] = sVar1;\n            *(undefined1 *)((long)puVar7 + sVar1) = 0;\n            uVar2 = local_58;\n          }\n          else {\n            if (puVar7 == puVar13) {\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }\n            else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }\n            local_68 = &local_58;\n            uVar2 = local_58;\n          }\nLAB_0025fc78:\n          local_58 = uVar2;\n          *(undefined1 *)local_68 = 0;\n          puVar13[2] = local_48;\n          puVar13[3] = local_40;\n          if (local_68 != &local_58) {\n            FUN_002dac60();\n          }\n          lVar11 = lVar11 + 1;\n          puVar15 = puVar15 + -10;\n          puVar13 = puVar13 + -10;\n        } while (lVar11 != lVar12);\n        local_a0 = local_a0 + lVar11 * -0x50;\n      }" (if "if") (parenthesized_expression "(0 < lVar12)" (( "(") (binary_expression "0 < lVar12" (number_literal "0") (< "<") (identifier "lVar12")) () ")")) (compound_statement "{\n        puVar15 = (undefined8 *)(local_a0 + -0x20);\n        puVar13 = (undefined8 *)(lVar11 + -0x20);\n        lVar11 = 0;\n        do {\n          uVar2 = puVar15[-6];\n          uVar4 = puVar15[-5];\n          uVar5 = puVar15[-4];\n          uVar6 = puVar15[-3];\n          local_68 = (undefined8 *)puVar15[-2];\n          if (local_68 == puVar15) {\n            local_58 = *puVar15;\n            uStack_50 = puVar15[1];\n            local_68 = &local_58;\n          }\n          else {\n            local_58 = *puVar15;\n          }\n          sVar1 = puVar15[-1];\n          *(undefined1 *)puVar15 = 0;\n          puVar15[-1] = 0;\n          uVar3 = puVar13[-5];\n          local_48 = puVar15[2];\n          puVar15[-6] = puVar13[-6];\n          puVar15[-5] = uVar3;\n          local_40 = puVar15[3];\n          puVar15[-2] = puVar15;\n          puVar15[-4] = puVar13[-4];\n          *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n          if ((undefined8 *)puVar13[-2] == puVar13) {\n            sVar9 = puVar13[-1];\n            if (sVar9 != 0) {\n              if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }\n            }\n            puVar15[-1] = sVar9;\n            *(undefined1 *)(puVar15[-2] + sVar9) = 0;\n          }\n          else {\n            puVar15[-2] = (undefined8 *)puVar13[-2];\n            puVar15[-1] = puVar13[-1];\n            *puVar15 = *puVar13;\n            puVar13[-2] = puVar13;\n          }\n          puVar13[-1] = 0;\n          *(undefined1 *)puVar13[-2] = 0;\n          puVar15[2] = puVar13[2];\n          puVar15[3] = puVar13[3];\n          puVar7 = (undefined8 *)puVar13[-2];\n          puVar13[-6] = uVar2;\n          puVar13[-5] = uVar4;\n          puVar13[-4] = uVar5;\n          uStack_70 = (undefined4)uVar6;\n          *(undefined4 *)(puVar13 + -3) = uStack_70;\n          if (local_68 == &local_58) {\n            if (sVar1 != 0) {\n              if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n            }\n            puVar13[-1] = sVar1;\n            *(undefined1 *)((long)puVar7 + sVar1) = 0;\n            uVar2 = local_58;\n          }\n          else {\n            if (puVar7 == puVar13) {\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }\n            else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }\n            local_68 = &local_58;\n            uVar2 = local_58;\n          }\nLAB_0025fc78:\n          local_58 = uVar2;\n          *(undefined1 *)local_68 = 0;\n          puVar13[2] = local_48;\n          puVar13[3] = local_40;\n          if (local_68 != &local_58) {\n            FUN_002dac60();\n          }\n          lVar11 = lVar11 + 1;\n          puVar15 = puVar15 + -10;\n          puVar13 = puVar13 + -10;\n        } while (lVar11 != lVar12);\n        local_a0 = local_a0 + lVar11 * -0x50;\n      }" ({ "{") (expression_statement "puVar15 = (undefined8 *)(local_a0 + -0x20);" (assignment_expression "puVar15 = (undefined8 *)(local_a0 + -0x20)" (identifier "puVar15") (= "=") (cast_expression "(undefined8 *)(local_a0 + -0x20)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_a0 + -0x20)" (( "(") (binary_expression "local_a0 + -0x20" (identifier "local_a0") (+ "+") (number_literal "-0x20")) () ")")))) (; ";")) (expression_statement "puVar13 = (undefined8 *)(lVar11 + -0x20);" (assignment_expression "puVar13 = (undefined8 *)(lVar11 + -0x20)" (identifier "puVar13") (= "=") (cast_expression "(undefined8 *)(lVar11 + -0x20)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar11 + -0x20)" (( "(") (binary_expression "lVar11 + -0x20" (identifier "lVar11") (+ "+") (number_literal "-0x20")) () ")")))) (; ";")) (expression_statement "lVar11 = 0;" (assignment_expression "lVar11 = 0" (identifier "lVar11") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          uVar2 = puVar15[-6];\n          uVar4 = puVar15[-5];\n          uVar5 = puVar15[-4];\n          uVar6 = puVar15[-3];\n          local_68 = (undefined8 *)puVar15[-2];\n          if (local_68 == puVar15) {\n            local_58 = *puVar15;\n            uStack_50 = puVar15[1];\n            local_68 = &local_58;\n          }\n          else {\n            local_58 = *puVar15;\n          }\n          sVar1 = puVar15[-1];\n          *(undefined1 *)puVar15 = 0;\n          puVar15[-1] = 0;\n          uVar3 = puVar13[-5];\n          local_48 = puVar15[2];\n          puVar15[-6] = puVar13[-6];\n          puVar15[-5] = uVar3;\n          local_40 = puVar15[3];\n          puVar15[-2] = puVar15;\n          puVar15[-4] = puVar13[-4];\n          *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n          if ((undefined8 *)puVar13[-2] == puVar13) {\n            sVar9 = puVar13[-1];\n            if (sVar9 != 0) {\n              if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }\n            }\n            puVar15[-1] = sVar9;\n            *(undefined1 *)(puVar15[-2] + sVar9) = 0;\n          }\n          else {\n            puVar15[-2] = (undefined8 *)puVar13[-2];\n            puVar15[-1] = puVar13[-1];\n            *puVar15 = *puVar13;\n            puVar13[-2] = puVar13;\n          }\n          puVar13[-1] = 0;\n          *(undefined1 *)puVar13[-2] = 0;\n          puVar15[2] = puVar13[2];\n          puVar15[3] = puVar13[3];\n          puVar7 = (undefined8 *)puVar13[-2];\n          puVar13[-6] = uVar2;\n          puVar13[-5] = uVar4;\n          puVar13[-4] = uVar5;\n          uStack_70 = (undefined4)uVar6;\n          *(undefined4 *)(puVar13 + -3) = uStack_70;\n          if (local_68 == &local_58) {\n            if (sVar1 != 0) {\n              if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n            }\n            puVar13[-1] = sVar1;\n            *(undefined1 *)((long)puVar7 + sVar1) = 0;\n            uVar2 = local_58;\n          }\n          else {\n            if (puVar7 == puVar13) {\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }\n            else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }\n            local_68 = &local_58;\n            uVar2 = local_58;\n          }\nLAB_0025fc78:\n          local_58 = uVar2;\n          *(undefined1 *)local_68 = 0;\n          puVar13[2] = local_48;\n          puVar13[3] = local_40;\n          if (local_68 != &local_58) {\n            FUN_002dac60();\n          }\n          lVar11 = lVar11 + 1;\n          puVar15 = puVar15 + -10;\n          puVar13 = puVar13 + -10;\n        } while (lVar11 != lVar12);" (do "do") (compound_statement "{\n          uVar2 = puVar15[-6];\n          uVar4 = puVar15[-5];\n          uVar5 = puVar15[-4];\n          uVar6 = puVar15[-3];\n          local_68 = (undefined8 *)puVar15[-2];\n          if (local_68 == puVar15) {\n            local_58 = *puVar15;\n            uStack_50 = puVar15[1];\n            local_68 = &local_58;\n          }\n          else {\n            local_58 = *puVar15;\n          }\n          sVar1 = puVar15[-1];\n          *(undefined1 *)puVar15 = 0;\n          puVar15[-1] = 0;\n          uVar3 = puVar13[-5];\n          local_48 = puVar15[2];\n          puVar15[-6] = puVar13[-6];\n          puVar15[-5] = uVar3;\n          local_40 = puVar15[3];\n          puVar15[-2] = puVar15;\n          puVar15[-4] = puVar13[-4];\n          *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);\n          if ((undefined8 *)puVar13[-2] == puVar13) {\n            sVar9 = puVar13[-1];\n            if (sVar9 != 0) {\n              if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }\n            }\n            puVar15[-1] = sVar9;\n            *(undefined1 *)(puVar15[-2] + sVar9) = 0;\n          }\n          else {\n            puVar15[-2] = (undefined8 *)puVar13[-2];\n            puVar15[-1] = puVar13[-1];\n            *puVar15 = *puVar13;\n            puVar13[-2] = puVar13;\n          }\n          puVar13[-1] = 0;\n          *(undefined1 *)puVar13[-2] = 0;\n          puVar15[2] = puVar13[2];\n          puVar15[3] = puVar13[3];\n          puVar7 = (undefined8 *)puVar13[-2];\n          puVar13[-6] = uVar2;\n          puVar13[-5] = uVar4;\n          puVar13[-4] = uVar5;\n          uStack_70 = (undefined4)uVar6;\n          *(undefined4 *)(puVar13 + -3) = uStack_70;\n          if (local_68 == &local_58) {\n            if (sVar1 != 0) {\n              if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n            }\n            puVar13[-1] = sVar1;\n            *(undefined1 *)((long)puVar7 + sVar1) = 0;\n            uVar2 = local_58;\n          }\n          else {\n            if (puVar7 == puVar13) {\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }\n            else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }\n            local_68 = &local_58;\n            uVar2 = local_58;\n          }\nLAB_0025fc78:\n          local_58 = uVar2;\n          *(undefined1 *)local_68 = 0;\n          puVar13[2] = local_48;\n          puVar13[3] = local_40;\n          if (local_68 != &local_58) {\n            FUN_002dac60();\n          }\n          lVar11 = lVar11 + 1;\n          puVar15 = puVar15 + -10;\n          puVar13 = puVar13 + -10;\n        }" ({ "{") (expression_statement "uVar2 = puVar15[-6];" (assignment_expression "uVar2 = puVar15[-6]" (identifier "uVar2") (= "=") (subscript_expression "puVar15[-6]" (identifier "puVar15") ([ "[") (number_literal "-6") (] "]"))) (; ";")) (expression_statement "uVar4 = puVar15[-5];" (assignment_expression "uVar4 = puVar15[-5]" (identifier "uVar4") (= "=") (subscript_expression "puVar15[-5]" (identifier "puVar15") ([ "[") (number_literal "-5") (] "]"))) (; ";")) (expression_statement "uVar5 = puVar15[-4];" (assignment_expression "uVar5 = puVar15[-4]" (identifier "uVar5") (= "=") (subscript_expression "puVar15[-4]" (identifier "puVar15") ([ "[") (number_literal "-4") (] "]"))) (; ";")) (expression_statement "uVar6 = puVar15[-3];" (assignment_expression "uVar6 = puVar15[-3]" (identifier "uVar6") (= "=") (subscript_expression "puVar15[-3]" (identifier "puVar15") ([ "[") (number_literal "-3") (] "]"))) (; ";")) (expression_statement "local_68 = (undefined8 *)puVar15[-2];" (assignment_expression "local_68 = (undefined8 *)puVar15[-2]" (identifier "local_68") (= "=") (cast_expression "(undefined8 *)puVar15[-2]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar15[-2]" (identifier "puVar15") ([ "[") (number_literal "-2") (] "]")))) (; ";")) (if_statement "if (local_68 == puVar15) {\n            local_58 = *puVar15;\n            uStack_50 = puVar15[1];\n            local_68 = &local_58;\n          }\n          else {\n            local_58 = *puVar15;\n          }" (if "if") (parenthesized_expression "(local_68 == puVar15)" (( "(") (binary_expression "local_68 == puVar15" (identifier "local_68") (== "==") (identifier "puVar15")) () ")")) (compound_statement "{\n            local_58 = *puVar15;\n            uStack_50 = puVar15[1];\n            local_68 = &local_58;\n          }" ({ "{") (expression_statement "local_58 = *puVar15;" (assignment_expression "local_58 = *puVar15" (identifier "local_58") (= "=") (pointer_expression "*puVar15" (* "*") (identifier "puVar15"))) (; ";")) (expression_statement "uStack_50 = puVar15[1];" (assignment_expression "uStack_50 = puVar15[1]" (identifier "uStack_50") (= "=") (subscript_expression "puVar15[1]" (identifier "puVar15") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_68 = &local_58;" (assignment_expression "local_68 = &local_58" (identifier "local_68") (= "=") (pointer_expression "&local_58" (& "&") (identifier "local_58"))) (; ";")) (} "}")) (else_clause "else {\n            local_58 = *puVar15;\n          }" (else "else") (compound_statement "{\n            local_58 = *puVar15;\n          }" ({ "{") (expression_statement "local_58 = *puVar15;" (assignment_expression "local_58 = *puVar15" (identifier "local_58") (= "=") (pointer_expression "*puVar15" (* "*") (identifier "puVar15"))) (; ";")) (} "}")))) (expression_statement "sVar1 = puVar15[-1];" (assignment_expression "sVar1 = puVar15[-1]" (identifier "sVar1") (= "=") (subscript_expression "puVar15[-1]" (identifier "puVar15") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "*(undefined1 *)puVar15 = 0;" (assignment_expression "*(undefined1 *)puVar15 = 0" (pointer_expression "*(undefined1 *)puVar15" (* "*") (cast_expression "(undefined1 *)puVar15" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar15"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar15[-1] = 0;" (assignment_expression "puVar15[-1] = 0" (subscript_expression "puVar15[-1]" (identifier "puVar15") ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar3 = puVar13[-5];" (assignment_expression "uVar3 = puVar13[-5]" (identifier "uVar3") (= "=") (subscript_expression "puVar13[-5]" (identifier "puVar13") ([ "[") (number_literal "-5") (] "]"))) (; ";")) (expression_statement "local_48 = puVar15[2];" (assignment_expression "local_48 = puVar15[2]" (identifier "local_48") (= "=") (subscript_expression "puVar15[2]" (identifier "puVar15") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "puVar15[-6] = puVar13[-6];" (assignment_expression "puVar15[-6] = puVar13[-6]" (subscript_expression "puVar15[-6]" (identifier "puVar15") ([ "[") (number_literal "-6") (] "]")) (= "=") (subscript_expression "puVar13[-6]" (identifier "puVar13") ([ "[") (number_literal "-6") (] "]"))) (; ";")) (expression_statement "puVar15[-5] = uVar3;" (assignment_expression "puVar15[-5] = uVar3" (subscript_expression "puVar15[-5]" (identifier "puVar15") ([ "[") (number_literal "-5") (] "]")) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "local_40 = puVar15[3];" (assignment_expression "local_40 = puVar15[3]" (identifier "local_40") (= "=") (subscript_expression "puVar15[3]" (identifier "puVar15") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar15[-2] = puVar15;" (assignment_expression "puVar15[-2] = puVar15" (subscript_expression "puVar15[-2]" (identifier "puVar15") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "puVar15")) (; ";")) (expression_statement "puVar15[-4] = puVar13[-4];" (assignment_expression "puVar15[-4] = puVar13[-4]" (subscript_expression "puVar15[-4]" (identifier "puVar15") ([ "[") (number_literal "-4") (] "]")) (= "=") (subscript_expression "puVar13[-4]" (identifier "puVar13") ([ "[") (number_literal "-4") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);" (assignment_expression "*(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3)" (pointer_expression "*(undefined4 *)(puVar15 + -3)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -3)" (( "(") (binary_expression "puVar15 + -3" (identifier "puVar15") (+ "+") (number_literal "-3")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar13 + -3)" (* "*") (cast_expression "(undefined4 *)(puVar13 + -3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -3)" (( "(") (binary_expression "puVar13 + -3" (identifier "puVar13") (+ "+") (number_literal "-3")) () ")"))))) (; ";")) (if_statement "if ((undefined8 *)puVar13[-2] == puVar13) {\n            sVar9 = puVar13[-1];\n            if (sVar9 != 0) {\n              if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }\n            }\n            puVar15[-1] = sVar9;\n            *(undefined1 *)(puVar15[-2] + sVar9) = 0;\n          }\n          else {\n            puVar15[-2] = (undefined8 *)puVar13[-2];\n            puVar15[-1] = puVar13[-1];\n            *puVar15 = *puVar13;\n            puVar13[-2] = puVar13;\n          }" (if "if") (parenthesized_expression "((undefined8 *)puVar13[-2] == puVar13)" (( "(") (binary_expression "(undefined8 *)puVar13[-2] == puVar13" (cast_expression "(undefined8 *)puVar13[-2]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar13[-2]" (identifier "puVar13") ([ "[") (number_literal "-2") (] "]"))) (== "==") (identifier "puVar13")) () ")")) (compound_statement "{\n            sVar9 = puVar13[-1];\n            if (sVar9 != 0) {\n              if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }\n            }\n            puVar15[-1] = sVar9;\n            *(undefined1 *)(puVar15[-2] + sVar9) = 0;\n          }" ({ "{") (expression_statement "sVar9 = puVar13[-1];" (assignment_expression "sVar9 = puVar13[-1]" (identifier "sVar9") (= "=") (subscript_expression "puVar13[-1]" (identifier "puVar13") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (if_statement "if (sVar9 != 0) {\n              if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }\n            }" (if "if") (parenthesized_expression "(sVar9 != 0)" (( "(") (binary_expression "sVar9 != 0" (identifier "sVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }\n            }" ({ "{") (if_statement "if (sVar9 == 1) {\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }\n              else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }" (if "if") (parenthesized_expression "(sVar9 == 1)" (( "(") (binary_expression "sVar9 == 1" (identifier "sVar9") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;\n                sVar9 = puVar13[-1];\n              }" ({ "{") (expression_statement "*(undefined1 *)puVar15 = *(undefined1 *)puVar13;" (assignment_expression "*(undefined1 *)puVar15 = *(undefined1 *)puVar13" (pointer_expression "*(undefined1 *)puVar15" (* "*") (cast_expression "(undefined1 *)puVar15" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar15"))) (= "=") (pointer_expression "*(undefined1 *)puVar13" (* "*") (cast_expression "(undefined1 *)puVar13" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar13")))) (; ";")) (expression_statement "sVar9 = puVar13[-1];" (assignment_expression "sVar9 = puVar13[-1]" (identifier "sVar9") (= "=") (subscript_expression "puVar13[-1]" (identifier "puVar13") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }" (else "else") (compound_statement "{\n                memcpy(puVar15,puVar13,sVar9);\n                sVar9 = puVar13[-1];\n              }" ({ "{") (expression_statement "memcpy(puVar15,puVar13,sVar9);" (call_expression "memcpy(puVar15,puVar13,sVar9)" (identifier "memcpy") (argument_list "(puVar15,puVar13,sVar9)" (( "(") (identifier "puVar15") (, ",") (identifier "puVar13") (, ",") (identifier "sVar9") () ")"))) (; ";")) (expression_statement "sVar9 = puVar13[-1];" (assignment_expression "sVar9 = puVar13[-1]" (identifier "sVar9") (= "=") (subscript_expression "puVar13[-1]" (identifier "puVar13") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "puVar15[-1] = sVar9;" (assignment_expression "puVar15[-1] = sVar9" (subscript_expression "puVar15[-1]" (identifier "puVar15") ([ "[") (number_literal "-1") (] "]")) (= "=") (identifier "sVar9")) (; ";")) (expression_statement "*(undefined1 *)(puVar15[-2] + sVar9) = 0;" (assignment_expression "*(undefined1 *)(puVar15[-2] + sVar9) = 0" (pointer_expression "*(undefined1 *)(puVar15[-2] + sVar9)" (* "*") (cast_expression "(undefined1 *)(puVar15[-2] + sVar9)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15[-2] + sVar9)" (( "(") (binary_expression "puVar15[-2] + sVar9" (subscript_expression "puVar15[-2]" (identifier "puVar15") ([ "[") (number_literal "-2") (] "]")) (+ "+") (identifier "sVar9")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n            puVar15[-2] = (undefined8 *)puVar13[-2];\n            puVar15[-1] = puVar13[-1];\n            *puVar15 = *puVar13;\n            puVar13[-2] = puVar13;\n          }" (else "else") (compound_statement "{\n            puVar15[-2] = (undefined8 *)puVar13[-2];\n            puVar15[-1] = puVar13[-1];\n            *puVar15 = *puVar13;\n            puVar13[-2] = puVar13;\n          }" ({ "{") (expression_statement "puVar15[-2] = (undefined8 *)puVar13[-2];" (assignment_expression "puVar15[-2] = (undefined8 *)puVar13[-2]" (subscript_expression "puVar15[-2]" (identifier "puVar15") ([ "[") (number_literal "-2") (] "]")) (= "=") (cast_expression "(undefined8 *)puVar13[-2]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar13[-2]" (identifier "puVar13") ([ "[") (number_literal "-2") (] "]")))) (; ";")) (expression_statement "puVar15[-1] = puVar13[-1];" (assignment_expression "puVar15[-1] = puVar13[-1]" (subscript_expression "puVar15[-1]" (identifier "puVar15") ([ "[") (number_literal "-1") (] "]")) (= "=") (subscript_expression "puVar13[-1]" (identifier "puVar13") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "*puVar15 = *puVar13;" (assignment_expression "*puVar15 = *puVar13" (pointer_expression "*puVar15" (* "*") (identifier "puVar15")) (= "=") (pointer_expression "*puVar13" (* "*") (identifier "puVar13"))) (; ";")) (expression_statement "puVar13[-2] = puVar13;" (assignment_expression "puVar13[-2] = puVar13" (subscript_expression "puVar13[-2]" (identifier "puVar13") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "puVar13")) (; ";")) (} "}")))) (expression_statement "puVar13[-1] = 0;" (assignment_expression "puVar13[-1] = 0" (subscript_expression "puVar13[-1]" (identifier "puVar13") ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)puVar13[-2] = 0;" (assignment_expression "*(undefined1 *)puVar13[-2] = 0" (pointer_expression "*(undefined1 *)puVar13[-2]" (* "*") (cast_expression "(undefined1 *)puVar13[-2]" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar13[-2]" (identifier "puVar13") ([ "[") (number_literal "-2") (] "]")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar15[2] = puVar13[2];" (assignment_expression "puVar15[2] = puVar13[2]" (subscript_expression "puVar15[2]" (identifier "puVar15") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "puVar13[2]" (identifier "puVar13") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "puVar15[3] = puVar13[3];" (assignment_expression "puVar15[3] = puVar13[3]" (subscript_expression "puVar15[3]" (identifier "puVar15") ([ "[") (number_literal "3") (] "]")) (= "=") (subscript_expression "puVar13[3]" (identifier "puVar13") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar7 = (undefined8 *)puVar13[-2];" (assignment_expression "puVar7 = (undefined8 *)puVar13[-2]" (identifier "puVar7") (= "=") (cast_expression "(undefined8 *)puVar13[-2]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar13[-2]" (identifier "puVar13") ([ "[") (number_literal "-2") (] "]")))) (; ";")) (expression_statement "puVar13[-6] = uVar2;" (assignment_expression "puVar13[-6] = uVar2" (subscript_expression "puVar13[-6]" (identifier "puVar13") ([ "[") (number_literal "-6") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "puVar13[-5] = uVar4;" (assignment_expression "puVar13[-5] = uVar4" (subscript_expression "puVar13[-5]" (identifier "puVar13") ([ "[") (number_literal "-5") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "puVar13[-4] = uVar5;" (assignment_expression "puVar13[-4] = uVar5" (subscript_expression "puVar13[-4]" (identifier "puVar13") ([ "[") (number_literal "-4") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "uStack_70 = (undefined4)uVar6;" (assignment_expression "uStack_70 = (undefined4)uVar6" (identifier "uStack_70") (= "=") (cast_expression "(undefined4)uVar6" (( "(") (type_descriptor "undefined4" (type_identifier "undefined4")) () ")") (identifier "uVar6"))) (; ";")) (expression_statement "*(undefined4 *)(puVar13 + -3) = uStack_70;" (assignment_expression "*(undefined4 *)(puVar13 + -3) = uStack_70" (pointer_expression "*(undefined4 *)(puVar13 + -3)" (* "*") (cast_expression "(undefined4 *)(puVar13 + -3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -3)" (( "(") (binary_expression "puVar13 + -3" (identifier "puVar13") (+ "+") (number_literal "-3")) () ")")))) (= "=") (identifier "uStack_70")) (; ";")) (if_statement "if (local_68 == &local_58) {\n            if (sVar1 != 0) {\n              if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n            }\n            puVar13[-1] = sVar1;\n            *(undefined1 *)((long)puVar7 + sVar1) = 0;\n            uVar2 = local_58;\n          }\n          else {\n            if (puVar7 == puVar13) {\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }\n            else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }\n            local_68 = &local_58;\n            uVar2 = local_58;\n          }" (if "if") (parenthesized_expression "(local_68 == &local_58)" (( "(") (binary_expression "local_68 == &local_58" (identifier "local_68") (== "==") (pointer_expression "&local_58" (& "&") (identifier "local_58"))) () ")")) (compound_statement "{\n            if (sVar1 != 0) {\n              if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n            }\n            puVar13[-1] = sVar1;\n            *(undefined1 *)((long)puVar7 + sVar1) = 0;\n            uVar2 = local_58;\n          }" ({ "{") (if_statement "if (sVar1 != 0) {\n              if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n            }" (if "if") (parenthesized_expression "(sVar1 != 0)" (( "(") (binary_expression "sVar1 != 0" (identifier "sVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n            }" ({ "{") (if_statement "if (sVar1 == 1) {\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }\n              else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }" (if "if") (parenthesized_expression "(sVar1 == 1)" (( "(") (binary_expression "sVar1 == 1" (identifier "sVar1") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                *(undefined1 *)puVar7 = (undefined1)local_58;\n                puVar7 = (undefined8 *)puVar13[-2];\n              }" ({ "{") (expression_statement "*(undefined1 *)puVar7 = (undefined1)local_58;" (assignment_expression "*(undefined1 *)puVar7 = (undefined1)local_58" (pointer_expression "*(undefined1 *)puVar7" (* "*") (cast_expression "(undefined1 *)puVar7" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar7"))) (= "=") (cast_expression "(undefined1)local_58" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "local_58"))) (; ";")) (expression_statement "puVar7 = (undefined8 *)puVar13[-2];" (assignment_expression "puVar7 = (undefined8 *)puVar13[-2]" (identifier "puVar7") (= "=") (cast_expression "(undefined8 *)puVar13[-2]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar13[-2]" (identifier "puVar13") ([ "[") (number_literal "-2") (] "]")))) (; ";")) (} "}")) (else_clause "else {\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }" (else "else") (compound_statement "{\n                memcpy(puVar7,&local_58,sVar1);\n                puVar7 = (undefined8 *)puVar13[-2];\n              }" ({ "{") (expression_statement "memcpy(puVar7,&local_58,sVar1);" (call_expression "memcpy(puVar7,&local_58,sVar1)" (identifier "memcpy") (argument_list "(puVar7,&local_58,sVar1)" (( "(") (identifier "puVar7") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) (, ",") (identifier "sVar1") () ")"))) (; ";")) (expression_statement "puVar7 = (undefined8 *)puVar13[-2];" (assignment_expression "puVar7 = (undefined8 *)puVar13[-2]" (identifier "puVar7") (= "=") (cast_expression "(undefined8 *)puVar13[-2]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar13[-2]" (identifier "puVar13") ([ "[") (number_literal "-2") (] "]")))) (; ";")) (} "}")))) (} "}"))) (expression_statement "puVar13[-1] = sVar1;" (assignment_expression "puVar13[-1] = sVar1" (subscript_expression "puVar13[-1]" (identifier "puVar13") ([ "[") (number_literal "-1") (] "]")) (= "=") (identifier "sVar1")) (; ";")) (expression_statement "*(undefined1 *)((long)puVar7 + sVar1) = 0;" (assignment_expression "*(undefined1 *)((long)puVar7 + sVar1) = 0" (pointer_expression "*(undefined1 *)((long)puVar7 + sVar1)" (* "*") (cast_expression "(undefined1 *)((long)puVar7 + sVar1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar7 + sVar1)" (( "(") (binary_expression "(long)puVar7 + sVar1" (cast_expression "(long)puVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar7")) (+ "+") (identifier "sVar1")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar2 = local_58;" (assignment_expression "uVar2 = local_58" (identifier "uVar2") (= "=") (identifier "local_58")) (; ";")) (} "}")) (else_clause "else {\n            if (puVar7 == puVar13) {\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }\n            else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }\n            local_68 = &local_58;\n            uVar2 = local_58;\n          }" (else "else") (compound_statement "{\n            if (puVar7 == puVar13) {\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }\n            else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }\n            local_68 = &local_58;\n            uVar2 = local_58;\n          }" ({ "{") (if_statement "if (puVar7 == puVar13) {\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }\n            else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }" (if "if") (parenthesized_expression "(puVar7 == puVar13)" (( "(") (binary_expression "puVar7 == puVar13" (identifier "puVar7") (== "==") (identifier "puVar13")) () ")")) (compound_statement "{\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n            }" ({ "{") (expression_statement "puVar13[-2] = local_68;" (assignment_expression "puVar13[-2] = local_68" (subscript_expression "puVar13[-2]" (identifier "puVar13") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "local_68")) (; ";")) (expression_statement "puVar13[-1] = sVar1;" (assignment_expression "puVar13[-1] = sVar1" (subscript_expression "puVar13[-1]" (identifier "puVar13") ([ "[") (number_literal "-1") (] "]")) (= "=") (identifier "sVar1")) (; ";")) (expression_statement "*puVar13 = local_58;" (assignment_expression "*puVar13 = local_58" (pointer_expression "*puVar13" (* "*") (identifier "puVar13")) (= "=") (identifier "local_58")) (; ";")) (} "}")) (else_clause "else {\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }" (else "else") (compound_statement "{\n              uVar2 = *puVar13;\n              puVar13[-2] = local_68;\n              puVar13[-1] = sVar1;\n              *puVar13 = local_58;\n              local_68 = puVar7;\n              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;\n            }" ({ "{") (expression_statement "uVar2 = *puVar13;" (assignment_expression "uVar2 = *puVar13" (identifier "uVar2") (= "=") (pointer_expression "*puVar13" (* "*") (identifier "puVar13"))) (; ";")) (expression_statement "puVar13[-2] = local_68;" (assignment_expression "puVar13[-2] = local_68" (subscript_expression "puVar13[-2]" (identifier "puVar13") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "local_68")) (; ";")) (expression_statement "puVar13[-1] = sVar1;" (assignment_expression "puVar13[-1] = sVar1" (subscript_expression "puVar13[-1]" (identifier "puVar13") ([ "[") (number_literal "-1") (] "]")) (= "=") (identifier "sVar1")) (; ";")) (expression_statement "*puVar13 = local_58;" (assignment_expression "*puVar13 = local_58" (pointer_expression "*puVar13" (* "*") (identifier "puVar13")) (= "=") (identifier "local_58")) (; ";")) (expression_statement "local_68 = puVar7;" (assignment_expression "local_68 = puVar7" (identifier "local_68") (= "=") (identifier "puVar7")) (; ";")) (if_statement "if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;" (if "if") (parenthesized_expression "(puVar7 != (undefined8 *)0x0)" (( "(") (binary_expression "puVar7 != (undefined8 *)0x0" (identifier "puVar7") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0025fc78;" (goto "goto") (statement_identifier "LAB_0025fc78") (; ";"))) (} "}")))) (expression_statement "local_68 = &local_58;" (assignment_expression "local_68 = &local_58" (identifier "local_68") (= "=") (pointer_expression "&local_58" (& "&") (identifier "local_58"))) (; ";")) (expression_statement "uVar2 = local_58;" (assignment_expression "uVar2 = local_58" (identifier "uVar2") (= "=") (identifier "local_58")) (; ";")) (} "}")))) (labeled_statement "LAB_0025fc78:\n          local_58 = uVar2;" (statement_identifier "LAB_0025fc78") (: ":") (expression_statement "local_58 = uVar2;" (assignment_expression "local_58 = uVar2" (identifier "local_58") (= "=") (identifier "uVar2")) (; ";"))) (expression_statement "*(undefined1 *)local_68 = 0;" (assignment_expression "*(undefined1 *)local_68 = 0" (pointer_expression "*(undefined1 *)local_68" (* "*") (cast_expression "(undefined1 *)local_68" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_68"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar13[2] = local_48;" (assignment_expression "puVar13[2] = local_48" (subscript_expression "puVar13[2]" (identifier "puVar13") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_48")) (; ";")) (expression_statement "puVar13[3] = local_40;" (assignment_expression "puVar13[3] = local_40" (subscript_expression "puVar13[3]" (identifier "puVar13") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_40")) (; ";")) (if_statement "if (local_68 != &local_58) {\n            FUN_002dac60();\n          }" (if "if") (parenthesized_expression "(local_68 != &local_58)" (( "(") (binary_expression "local_68 != &local_58" (identifier "local_68") (!= "!=") (pointer_expression "&local_58" (& "&") (identifier "local_58"))) () ")")) (compound_statement "{\n            FUN_002dac60();\n          }" ({ "{") (expression_statement "FUN_002dac60();" (call_expression "FUN_002dac60()" (identifier "FUN_002dac60") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "lVar11 = lVar11 + 1;" (assignment_expression "lVar11 = lVar11 + 1" (identifier "lVar11") (= "=") (binary_expression "lVar11 + 1" (identifier "lVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar15 = puVar15 + -10;" (assignment_expression "puVar15 = puVar15 + -10" (identifier "puVar15") (= "=") (binary_expression "puVar15 + -10" (identifier "puVar15") (+ "+") (number_literal "-10"))) (; ";")) (expression_statement "puVar13 = puVar13 + -10;" (assignment_expression "puVar13 = puVar13 + -10" (identifier "puVar13") (= "=") (binary_expression "puVar13 + -10" (identifier "puVar13") (+ "+") (number_literal "-10"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(lVar11 != lVar12)" (( "(") (binary_expression "lVar11 != lVar12" (identifier "lVar11") (!= "!=") (identifier "lVar12")) () ")")) (; ";")) (expression_statement "local_a0 = local_a0 + lVar11 * -0x50;" (assignment_expression "local_a0 = local_a0 + lVar11 * -0x50" (identifier "local_a0") (= "=") (binary_expression "local_a0 + lVar11 * -0x50" (identifier "local_a0") (+ "+") (binary_expression "lVar11 * -0x50" (identifier "lVar11") (* "*") (number_literal "-0x50")))) (; ";")) (} "}"))) (expression_statement "lVar12 = local_a8 % lVar10;" (assignment_expression "lVar12 = local_a8 % lVar10" (identifier "lVar12") (= "=") (binary_expression "local_a8 % lVar10" (identifier "local_a8") (% "%") (identifier "lVar10"))) (; ";")) (if_statement "if (lVar12 == 0) {\n        return lVar8;\n      }" (if "if") (parenthesized_expression "(lVar12 == 0)" (( "(") (binary_expression "lVar12 == 0" (identifier "lVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        return lVar8;\n      }" ({ "{") (return_statement "return lVar8;" (return "return") (identifier "lVar8") (; ";")) (} "}"))) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))

/* WARNING: Type propagation algorithm not settling */
/* DWARF original name: __rotate<__gnu_cxx::__normal_iterator<gold::Input_section_info*,
   std::vector<gold::Input_section_info> > > */

__normal_iterator<gold::var_1*,_std::vector<gold::var_1,_std::var_6<gold::var_1>var_2>var_2>
 std::_V2::
 __rotate<__gnu_cxx::__normal_iterator<gold::var_1*,_std::vector<gold::var_1>var_2>var_2>
           (var_1 *var_3,var_1 *var_4,var_1 *var_5)

{
  var_1 *var_25;
  type_1 uVar2;
  type_2 sVar3;
  anon_union_16_2_edb7204a_for_basic_string<var_7,_std::char_traits<var_7>,_std::var_6<var_7>var_2>var_8
  *var_9;
  __normal_iterator<gold::var_1*,_std::vector<gold::var_1,_std::var_6<gold::var_1>var_2>var_2>
  var_10;
  size_t var_18;
  long var_14;
  long var_16;
  long var_26;
  anon_union_16_2_edb7204a_for_basic_string<var_7,_std::char_traits<var_7>,_std::var_6<var_7>var_2>var_8
  *var_11;
  long var_21;
  var_1 *var_27;
  type_3 var_23;
  type_2 *var_17;
  anon_union_16_2_edb7204a_for_basic_string<var_7,_std::char_traits<var_7>,_std::var_6<var_7>var_2>var_8
  *var_12;
  anon_union_16_2_edb7204a_for_basic_string<var_7,_std::char_traits<var_7>,_std::var_6<var_7>var_2>var_8
  *var_13;
  long var_15;
  var_1 *var_24;
  var_1 __tmp;
  
  var_10._M_current = var_5;
  if ((var_3 == var_4) || (var_10._M_current = var_3, var_5 == var_4)) {
    return (__normal_iterator<gold::var_1*,_std::vector<gold::var_1,_std::var_6<gold::var_1>var_2>var_2>
            )var_10._M_current;
  }
  var_14 = (long)var_4 - (long)var_3 >> 4;
  var_15 = ((long)var_5 - (long)var_3 >> 4) * -0x3333333333333333;
  var_16 = var_14 * -0x3333333333333333;
  var_25 = (var_1 *)((long)var_3 + ((long)var_5 - (long)var_4));
  if (var_15 + var_14 * 0x3333333333333333 == var_16) {
    var_12 = &(var_3->section_name_).field_2;
    var_11 = &(var_4->section_name_).field_2;
    var_13 = &__tmp.section_name_.field_2;
    do {
      __tmp.input_section_._0_8_ = *(type_1 *)(var_12 + -3);
      __tmp.input_section_.u1_ = *(type_4 *)((long)var_12 + -0x28);
      __tmp.section_name_._M_dataplus._M_p = (((type_5 *)(var_12 + -1))->_M_dataplus)._M_p;
      __tmp.input_section_.u2_ = *(type_6 *)(var_12 + -2);
      __tmp.input_section_._24_8_ = *(type_1 *)((long)var_12 + -0x18);
      if (var_12 ==
          (anon_union_16_2_edb7204a_for_basic_string<var_7,_std::char_traits<var_7>,_std::var_6<var_7>var_2>var_8
           *)__tmp.section_name_._M_dataplus._M_p) {
        __tmp.section_name_.field_2._M_allocated_capacity = var_12->_M_allocated_capacity;
        __tmp.section_name_.field_2._8_8_ = *(type_1 *)((long)var_12 + 8);
        __tmp.section_name_._M_dataplus._M_p = (type_3)var_13;
      }
      else {
        __tmp.section_name_.field_2._M_allocated_capacity = var_12->_M_allocated_capacity;
      }
      __tmp.section_name_._M_string_length = *(type_2 *)((long)var_12 + -8);
      var_12->_M_local_buf[0] = '\0';
      *(type_2 *)((long)var_12 + -8) = 0;
      sVar3 = *(type_2 *)((long)var_11 + -0x28);
      __tmp.size_ = var_12[1]._M_allocated_capacity;
      var_12[-3]._M_allocated_capacity = var_11[-3]._M_allocated_capacity;
      *(type_2 *)((long)var_12 + -0x28) = sVar3;
      __tmp.addralign_ = *(uint64_t *)((long)var_12 + 0x18);
      (((type_5 *)(var_12 + -1))->_M_dataplus)._M_p = (type_3)var_12;
      var_12[-2]._M_allocated_capacity = var_11[-2]._M_allocated_capacity;
      *(type_7 *)((long)var_12 + -0x18) = *(type_7 *)((long)var_11 + -0x18);
      var_17 = (type_2 *)(((type_5 *)(var_11 + -1))->_M_dataplus)._M_p;
      if (var_11 ==
          (anon_union_16_2_edb7204a_for_basic_string<var_7,_std::char_traits<var_7>,_std::var_6<var_7>var_2>var_8
           *)var_17) {
        var_18 = *(type_2 *)((long)var_11 + -8);
        if (var_18 != 0) {
          if (var_18 == 1) {
            var_12->_M_local_buf[0] = var_11->_M_local_buf[0];
            var_18 = *(type_2 *)((long)var_11 + -8);
          }
          else {
            var_19(var_12,var_11,var_18);
            var_18 = *(type_2 *)((long)var_11 + -8);
          }
        }
        *(size_t *)((long)var_12 + -8) = var_18;
        var_12->_M_local_buf[var_18] = '\0';
        var_9 = (anon_union_16_2_edb7204a_for_basic_string<var_7,_std::char_traits<var_7>,_std::var_6<var_7>var_2>var_8
                  *)var_17[-2];
      }
      else {
        (((type_5 *)(var_12 + -1))->_M_dataplus)._M_p = (type_3)var_17;
        *(type_2 *)((long)var_12 + -8) = *(type_2 *)((long)var_11 + -8);
        var_12->_M_allocated_capacity = var_11->_M_allocated_capacity;
        (((type_5 *)(var_11 + -1))->_M_dataplus)._M_p = (type_3)var_11;
        var_9 = var_11;
      }
      *(type_2 *)((long)var_11 + -8) = 0;
      var_9->_M_local_buf[0] = '\0';
      var_12[1]._M_allocated_capacity = var_11[1]._M_allocated_capacity;
      *(type_2 *)((long)var_12 + 0x18) = *(type_2 *)((long)var_11 + 0x18);
      var_11[-3]._M_allocated_capacity = __tmp.input_section_._0_8_;
      *(type_4 *)((long)var_11 + -0x28) = __tmp.input_section_.u1_;
      var_17 = (type_2 *)(((type_5 *)(var_11 + -1))->_M_dataplus)._M_p;
      *(type_6 *)(var_11 + -2) = __tmp.input_section_.u2_;
      *(type_8 *)((long)var_11 + -0x18) = __tmp.input_section_.section_order_index_;
      if ((anon_union_16_2_edb7204a_for_basic_string<var_7,_std::char_traits<var_7>,_std::var_6<var_7>var_2>var_8
           *)__tmp.section_name_._M_dataplus._M_p == var_13) {
        if (__tmp.section_name_._M_string_length != 0) {
          if (__tmp.section_name_._M_string_length == 1) {
            *(char *)var_17 = __tmp.section_name_.field_2._M_local_buf[0];
            var_17 = (type_2 *)(((type_5 *)(var_11 + -1))->_M_dataplus)._M_p;
          }
          else {
            var_19(var_17,var_13,__tmp.section_name_._M_string_length);
            var_17 = (type_2 *)(((type_5 *)(var_11 + -1))->_M_dataplus)._M_p;
          }
        }
        *(type_2 *)((long)var_11 + -8) = __tmp.section_name_._M_string_length;
        *(char *)((long)var_17 + __tmp.section_name_._M_string_length) = '\0';
      }
      else if ((anon_union_16_2_edb7204a_for_basic_string<var_7,_std::char_traits<var_7>,_std::var_6<var_7>var_2>var_8
                *)var_17 == var_11) {
        (((type_5 *)(var_11 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;
        *(type_2 *)((long)var_11 + -8) = __tmp.section_name_._M_string_length;
        var_11->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;
        __tmp.section_name_._M_dataplus._M_p = (type_3)var_13;
      }
      else {
        sVar3 = var_11->_M_allocated_capacity;
        (((type_5 *)(var_11 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;
        *(type_2 *)((long)var_11 + -8) = __tmp.section_name_._M_string_length;
        var_11->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;
        __tmp.section_name_._M_dataplus._M_p = (type_3)var_13;
        if (var_17 != (type_2 *)0x0) {
          __tmp.section_name_._M_dataplus._M_p = (type_3)var_17;
          __tmp.section_name_.field_2._M_allocated_capacity = sVar3;
        }
      }
      __tmp.section_name_._M_string_length = 0;
      *__tmp.section_name_._M_dataplus._M_p = '\0';
      var_11[1]._M_allocated_capacity = __tmp.size_;
      *(uint64_t *)((long)var_11 + 0x18) = __tmp.addralign_;
      if ((anon_union_16_2_edb7204a_for_basic_string<var_7,_std::char_traits<var_7>,_std::var_6<var_7>var_2>var_8
           *)__tmp.section_name_._M_dataplus._M_p != var_13) {
        var_20(__tmp.section_name_._M_dataplus._M_p);
      }
      var_11 = var_11 + 5;
      var_12 = var_12 + 5;
    } while (var_11 !=
             (anon_union_16_2_edb7204a_for_basic_string<var_7,_std::char_traits<var_7>,_std::var_6<var_7>var_2>var_8
              *)(var_4[1].section_name_.field_2._M_local_buf +
                ((long)var_4 + (-0x50 - (long)var_3) & 0xfffffffffffffff0)));
    return (__normal_iterator<gold::var_1*,_std::vector<gold::var_1,_std::var_6<gold::var_1>var_2>var_2>
            )var_4;
  }
  var_21 = var_15 + var_14 * 0x3333333333333333;
  var_26 = var_16;
  var_24 = var_3;
  if (var_21 == var_16 || var_22(var_21,var_16) != var_21 + var_14 * 0x3333333333333333 < 0)
  goto LAB_0025fb1a;
  do {
    if (0 < var_21) {
      var_14 = 0;
      var_13 = &var_24[var_16].section_name_.field_2;
      var_12 = &(var_24->section_name_).field_2;
      var_11 = &__tmp.section_name_.field_2;
      do {
        __tmp.input_section_._0_8_ = *(type_1 *)(var_12 + -3);
        __tmp.input_section_.u1_ = *(type_4 *)((long)var_12 + -0x28);
        __tmp.input_section_.u2_ = *(type_6 *)(var_12 + -2);
        __tmp.input_section_._24_8_ = *(type_2 *)((long)var_12 + -0x18);
        __tmp.section_name_._M_dataplus._M_p = (((type_5 *)(var_12 + -1))->_M_dataplus)._M_p;
        if ((anon_union_16_2_edb7204a_for_basic_string<var_7,_std::char_traits<var_7>,_std::var_6<var_7>var_2>var_8
             *)__tmp.section_name_._M_dataplus._M_p == var_12) {
          __tmp.section_name_.field_2._M_allocated_capacity = var_12->_M_allocated_capacity;
          __tmp.section_name_.field_2._8_8_ = *(type_2 *)((long)var_12 + 8);
          __tmp.section_name_._M_dataplus._M_p = (type_3)var_11;
        }
        else {
          __tmp.section_name_.field_2._M_allocated_capacity = var_12->_M_allocated_capacity;
        }
        __tmp.section_name_._M_string_length = *(type_2 *)((long)var_12 + -8);
        var_12->_M_local_buf[0] = '\0';
        *(type_2 *)((long)var_12 + -8) = 0;
        sVar3 = *(type_2 *)((long)var_13 + -0x28);
        __tmp.size_ = var_12[1]._M_allocated_capacity;
        var_12[-3]._M_allocated_capacity = var_13[-3]._M_allocated_capacity;
        *(type_2 *)((long)var_12 + -0x28) = sVar3;
        __tmp.addralign_ = *(type_2 *)((long)var_12 + 0x18);
        (((type_5 *)(var_12 + -1))->_M_dataplus)._M_p = (type_3)var_12;
        var_12[-2]._M_allocated_capacity = var_13[-2]._M_allocated_capacity;
        *(type_7 *)((long)var_12 + -0x18) = *(type_7 *)((long)var_13 + -0x18);
        var_23 = (((type_5 *)(var_13 + -1))->_M_dataplus)._M_p;
        if ((anon_union_16_2_edb7204a_for_basic_string<var_7,_std::char_traits<var_7>,_std::var_6<var_7>var_2>var_8
             *)var_23 == var_13) {
          var_18 = *(type_2 *)((long)var_13 + -8);
          if (var_18 != 0) {
            if (var_18 == 1) {
              var_12->_M_local_buf[0] = var_13->_M_local_buf[0];
              var_18 = *(type_2 *)((long)var_13 + -8);
            }
            else {
              var_19(var_12,var_13,var_18);
              var_18 = *(type_2 *)((long)var_13 + -8);
            }
          }
          *(size_t *)((long)var_12 + -8) = var_18;
          var_12->_M_local_buf[var_18] = '\0';
          var_9 = (anon_union_16_2_edb7204a_for_basic_string<var_7,_std::char_traits<var_7>,_std::var_6<var_7>var_2>var_8
                    *)(((type_5 *)(var_13 + -1))->_M_dataplus)._M_p;
        }
        else {
          (((type_5 *)(var_12 + -1))->_M_dataplus)._M_p = var_23;
          *(type_2 *)((long)var_12 + -8) = *(type_2 *)((long)var_13 + -8);
          var_12->_M_allocated_capacity = var_13->_M_allocated_capacity;
          (((type_5 *)(var_13 + -1))->_M_dataplus)._M_p = (type_3)var_13;
          var_9 = var_13;
        }
        *(type_2 *)((long)var_13 + -8) = 0;
        var_9->_M_local_buf[0] = '\0';
        var_12[1]._M_allocated_capacity = var_13[1]._M_allocated_capacity;
        *(type_2 *)((long)var_12 + 0x18) = *(type_2 *)((long)var_13 + 0x18);
        var_13[-3]._M_allocated_capacity = __tmp.input_section_._0_8_;
        *(type_4 *)((long)var_13 + -0x28) = __tmp.input_section_.u1_;
        var_23 = (((type_5 *)(var_13 + -1))->_M_dataplus)._M_p;
        *(type_6 *)(var_13 + -2) = __tmp.input_section_.u2_;
        *(type_8 *)((long)var_13 + -0x18) = __tmp.input_section_.section_order_index_;
        if ((anon_union_16_2_edb7204a_for_basic_string<var_7,_std::char_traits<var_7>,_std::var_6<var_7>var_2>var_8
             *)__tmp.section_name_._M_dataplus._M_p == var_11) {
          if (__tmp.section_name_._M_string_length != 0) {
            if (__tmp.section_name_._M_string_length == 1) {
              *var_23 = __tmp.section_name_.field_2._M_local_buf[0];
              var_23 = (((type_5 *)(var_13 + -1))->_M_dataplus)._M_p;
            }
            else {
              var_19(var_23,var_11,__tmp.section_name_._M_string_length);
              var_23 = (((type_5 *)(var_13 + -1))->_M_dataplus)._M_p;
            }
          }
          *(type_2 *)((long)var_13 + -8) = __tmp.section_name_._M_string_length;
          var_23[__tmp.section_name_._M_string_length] = '\0';
          uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;
        }
        else {
          if ((anon_union_16_2_edb7204a_for_basic_string<var_7,_std::char_traits<var_7>,_std::var_6<var_7>var_2>var_8
               *)var_23 == var_13) {
            (((type_5 *)(var_13 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;
            *(type_2 *)((long)var_13 + -8) = __tmp.section_name_._M_string_length;
            var_13->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;
          }
          else {
            uVar2 = var_13->_M_allocated_capacity;
            (((type_5 *)(var_13 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;
            *(type_2 *)((long)var_13 + -8) = __tmp.section_name_._M_string_length;
            var_13->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;
            __tmp.section_name_._M_dataplus._M_p = var_23;
            if (var_23 != (type_3)0x0) goto LAB_0025f996;
          }
          __tmp.section_name_._M_dataplus._M_p = (type_3)var_11;
          uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;
        }
LAB_0025f996:
        __tmp.section_name_.field_2._M_allocated_capacity = uVar2;
        __tmp.section_name_._M_string_length = 0;
        *__tmp.section_name_._M_dataplus._M_p = '\0';
        var_13[1]._M_allocated_capacity = __tmp.size_;
        *(uint64_t *)((long)var_13 + 0x18) = __tmp.addralign_;
        if ((anon_union_16_2_edb7204a_for_basic_string<var_7,_std::char_traits<var_7>,_std::var_6<var_7>var_2>var_8
             *)__tmp.section_name_._M_dataplus._M_p != var_11) {
          var_20(__tmp.section_name_._M_dataplus._M_p);
        }
        var_14 = var_14 + 1;
        var_12 = var_12 + 5;
        var_13 = var_13 + 5;
      } while (var_21 != var_14);
      var_24 = var_24 + var_21;
    }
    if (var_15 % var_16 == 0) {
      return (__normal_iterator<gold::var_1*,_std::vector<gold::var_1,_std::var_6<gold::var_1>var_2>var_2>
              )var_25;
    }
    var_26 = var_16 - var_15 % var_16;
    var_14 = var_16;
    while (var_21 = var_14 - var_26, var_16 = var_26, var_15 = var_14, var_21 <= var_26) {
LAB_0025fb1a:
      var_14 = var_21;
      var_27 = var_24 + (var_15 - var_14);
      if (0 < var_26) {
        var_12 = &var_27[-1].section_name_.field_2;
        var_11 = &var_24[var_15 + -1].section_name_.field_2;
        var_16 = 0;
        var_13 = &__tmp.section_name_.field_2;
        do {
          __tmp.input_section_._0_8_ = *(type_1 *)(var_12 + -3);
          __tmp.input_section_.u1_ = *(type_4 *)((long)var_12 + -0x28);
          __tmp.input_section_.u2_ = *(type_6 *)(var_12 + -2);
          __tmp.input_section_._24_8_ = *(type_1 *)((long)var_12 + -0x18);
          __tmp.section_name_._M_dataplus._M_p = (((type_5 *)(var_12 + -1))->_M_dataplus)._M_p;
          if ((anon_union_16_2_edb7204a_for_basic_string<var_7,_std::char_traits<var_7>,_std::var_6<var_7>var_2>var_8
               *)__tmp.section_name_._M_dataplus._M_p == var_12) {
            __tmp.section_name_.field_2._M_allocated_capacity = var_12->_M_allocated_capacity;
            __tmp.section_name_.field_2._8_8_ = *(type_1 *)((long)var_12 + 8);
            __tmp.section_name_._M_dataplus._M_p = (type_3)var_13;
          }
          else {
            __tmp.section_name_.field_2._M_allocated_capacity = var_12->_M_allocated_capacity;
          }
          __tmp.section_name_._M_string_length = *(type_2 *)((long)var_12 + -8);
          var_12->_M_local_buf[0] = '\0';
          *(type_2 *)((long)var_12 + -8) = 0;
          sVar3 = *(type_2 *)((long)var_11 + -0x28);
          __tmp.size_ = var_12[1]._M_allocated_capacity;
          var_12[-3]._M_allocated_capacity = var_11[-3]._M_allocated_capacity;
          *(type_2 *)((long)var_12 + -0x28) = sVar3;
          __tmp.addralign_ = *(uint64_t *)((long)var_12 + 0x18);
          (((type_5 *)(var_12 + -1))->_M_dataplus)._M_p = (type_3)var_12;
          var_12[-2]._M_allocated_capacity = var_11[-2]._M_allocated_capacity;
          *(type_7 *)((long)var_12 + -0x18) = *(type_7 *)((long)var_11 + -0x18);
          var_17 = (type_2 *)(((type_5 *)(var_11 + -1))->_M_dataplus)._M_p;
          if ((anon_union_16_2_edb7204a_for_basic_string<var_7,_std::char_traits<var_7>,_std::var_6<var_7>var_2>var_8
               *)var_17 == var_11) {
            var_18 = *(type_2 *)((long)var_11 + -8);
            if (var_18 != 0) {
              if (var_18 == 1) {
                var_12->_M_local_buf[0] = var_11->_M_local_buf[0];
                var_18 = *(type_2 *)((long)var_11 + -8);
              }
              else {
                var_19(var_12,var_11,var_18);
                var_18 = *(type_2 *)((long)var_11 + -8);
              }
            }
            var_23 = (((type_5 *)(var_12 + -1))->_M_dataplus)._M_p;
            *(size_t *)((long)var_12 + -8) = var_18;
            var_23[var_18] = '\0';
          }
          else {
            (((type_5 *)(var_12 + -1))->_M_dataplus)._M_p = (type_3)var_17;
            *(type_2 *)((long)var_12 + -8) = *(type_2 *)((long)var_11 + -8);
            var_12->_M_allocated_capacity = var_11->_M_allocated_capacity;
            (((type_5 *)(var_11 + -1))->_M_dataplus)._M_p = (type_3)var_11;
          }
          *(type_2 *)((long)var_11 + -8) = 0;
          *(((type_5 *)(var_11 + -1))->_M_dataplus)._M_p = '\0';
          var_12[1]._M_allocated_capacity = var_11[1]._M_allocated_capacity;
          *(type_2 *)((long)var_12 + 0x18) = *(type_2 *)((long)var_11 + 0x18);
          var_17 = (type_2 *)(((type_5 *)(var_11 + -1))->_M_dataplus)._M_p;
          var_11[-3]._M_allocated_capacity = __tmp.input_section_._0_8_;
          *(type_4 *)((long)var_11 + -0x28) = __tmp.input_section_.u1_;
          *(type_6 *)(var_11 + -2) = __tmp.input_section_.u2_;
          *(type_8 *)((long)var_11 + -0x18) = __tmp.input_section_.section_order_index_;
          if ((anon_union_16_2_edb7204a_for_basic_string<var_7,_std::char_traits<var_7>,_std::var_6<var_7>var_2>var_8
               *)__tmp.section_name_._M_dataplus._M_p == var_13) {
            if (__tmp.section_name_._M_string_length != 0) {
              if (__tmp.section_name_._M_string_length == 1) {
                *(char *)var_17 = __tmp.section_name_.field_2._M_local_buf[0];
                var_17 = (type_2 *)(((type_5 *)(var_11 + -1))->_M_dataplus)._M_p;
              }
              else {
                var_19(var_17,var_13,__tmp.section_name_._M_string_length);
                var_17 = (type_2 *)(((type_5 *)(var_11 + -1))->_M_dataplus)._M_p;
              }
            }
            *(type_2 *)((long)var_11 + -8) = __tmp.section_name_._M_string_length;
            *(char *)((long)var_17 + __tmp.section_name_._M_string_length) = '\0';
            uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;
          }
          else {
            if ((anon_union_16_2_edb7204a_for_basic_string<var_7,_std::char_traits<var_7>,_std::var_6<var_7>var_2>var_8
                 *)var_17 == var_11) {
              (((type_5 *)(var_11 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;
              *(type_2 *)((long)var_11 + -8) = __tmp.section_name_._M_string_length;
              var_11->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;
            }
            else {
              uVar2 = var_11->_M_allocated_capacity;
              (((type_5 *)(var_11 + -1))->_M_dataplus)._M_p = __tmp.section_name_._M_dataplus._M_p;
              *(type_2 *)((long)var_11 + -8) = __tmp.section_name_._M_string_length;
              var_11->_M_allocated_capacity = __tmp.section_name_.field_2._M_allocated_capacity;
              __tmp.section_name_._M_dataplus._M_p = (type_3)var_17;
              if (var_17 != (type_2 *)0x0) goto LAB_0025fc78;
            }
            __tmp.section_name_._M_dataplus._M_p = (type_3)var_13;
            uVar2 = __tmp.section_name_.field_2._M_allocated_capacity;
          }
LAB_0025fc78:
          __tmp.section_name_.field_2._M_allocated_capacity = uVar2;
          __tmp.section_name_._M_string_length = 0;
          *__tmp.section_name_._M_dataplus._M_p = '\0';
          var_11[1]._M_allocated_capacity = __tmp.size_;
          *(uint64_t *)((long)var_11 + 0x18) = __tmp.addralign_;
          if ((anon_union_16_2_edb7204a_for_basic_string<var_7,_std::char_traits<var_7>,_std::var_6<var_7>var_2>var_8
               *)__tmp.section_name_._M_dataplus._M_p != var_13) {
            var_20(__tmp.section_name_._M_dataplus._M_p);
          }
          var_16 = var_16 + 1;
          var_12 = var_12 + -5;
          var_11 = var_11 + -5;
        } while (var_16 != var_26);
        var_27 = var_27 + -var_16;
      }
      var_24 = var_27;
      var_26 = var_15 % var_14;
      if (var_26 == 0) {
        return (__normal_iterator<gold::var_1*,_std::vector<gold::var_1,_std::var_6<gold::var_1>var_2>var_2>
                )var_25;
      }
    }
  } while( true );
}


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

long MASKED(long param_1,long param_2,long param_3)

{
  size_t sVar1;
  undefined8 uVar2;
  undefined8 uVar3;
  undefined8 uVar4;
  undefined8 uVar5;
  undefined8 uVar6;
  undefined8 *puVar7;
  long lVar8;
  size_t sVar9;
  long lVar10;
  long lVar11;
  long lVar12;
  undefined8 *puVar13;
  long lVar14;
  undefined8 *puVar15;
  long local_a8;
  long local_a0;
  undefined4 uStack_70;
  undefined8 *local_68;
  undefined8 local_58;
  undefined8 uStack_50;
  undefined8 local_48;
  undefined8 local_40;
  
  lVar8 = param_3;
  if ((param_1 == param_2) || (lVar8 = param_1, param_3 == param_2)) {
    return lVar8;
  }
  lVar10 = param_2 - param_1 >> 4;
  local_a8 = (param_3 - param_1 >> 4) * -0x3333333333333333;
  lVar11 = lVar10 * -0x3333333333333333;
  lVar8 = param_1 + (param_3 - param_2);
  if (local_a8 + lVar10 * 0x3333333333333333 == lVar11) {
    puVar15 = (undefined8 *)(param_1 + 0x30);
    puVar13 = (undefined8 *)(param_2 + 0x30);
    do {
      uVar2 = puVar15[-6];
      uVar4 = puVar15[-5];
      local_68 = (undefined8 *)puVar15[-2];
      uVar5 = puVar15[-4];
      uVar6 = puVar15[-3];
      if (puVar15 == local_68) {
        local_58 = *puVar15;
        uStack_50 = puVar15[1];
        local_68 = &local_58;
      }
      else {
        local_58 = *puVar15;
      }
      sVar1 = puVar15[-1];
      *(undefined1 *)puVar15 = 0;
      puVar15[-1] = 0;
      uVar3 = puVar13[-5];
      local_48 = puVar15[2];
      puVar15[-6] = puVar13[-6];
      puVar15[-5] = uVar3;
      local_40 = puVar15[3];
      puVar15[-2] = puVar15;
      puVar15[-4] = puVar13[-4];
      *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);
      puVar7 = (undefined8 *)puVar13[-2];
      if (puVar13 == puVar7) {
        sVar9 = puVar13[-1];
        if (sVar9 != 0) {
          if (sVar9 == 1) {
            *(undefined1 *)puVar15 = *(undefined1 *)puVar13;
            sVar9 = puVar13[-1];
          }
          else {
            memcpy(puVar15,puVar13,sVar9);
            sVar9 = puVar13[-1];
          }
        }
        puVar15[-1] = sVar9;
        *(undefined1 *)((long)puVar15 + sVar9) = 0;
        puVar7 = (undefined8 *)puVar7[-2];
      }
      else {
        puVar15[-2] = puVar7;
        puVar15[-1] = puVar13[-1];
        *puVar15 = *puVar13;
        puVar13[-2] = puVar13;
        puVar7 = puVar13;
      }
      puVar13[-1] = 0;
      *(undefined1 *)puVar7 = 0;
      puVar15[2] = puVar13[2];
      puVar15[3] = puVar13[3];
      puVar13[-6] = uVar2;
      puVar13[-5] = uVar4;
      puVar7 = (undefined8 *)puVar13[-2];
      puVar13[-4] = uVar5;
      uStack_70 = (undefined4)uVar6;
      *(undefined4 *)(puVar13 + -3) = uStack_70;
      if (local_68 == &local_58) {
        if (sVar1 != 0) {
          if (sVar1 == 1) {
            *(undefined1 *)puVar7 = (undefined1)local_58;
            puVar7 = (undefined8 *)puVar13[-2];
          }
          else {
            memcpy(puVar7,&local_58,sVar1);
            puVar7 = (undefined8 *)puVar13[-2];
          }
        }
        puVar13[-1] = sVar1;
        *(undefined1 *)((long)puVar7 + sVar1) = 0;
      }
      else if (puVar7 == puVar13) {
        puVar13[-2] = local_68;
        puVar13[-1] = sVar1;
        *puVar13 = local_58;
        local_68 = &local_58;
      }
      else {
        uVar2 = *puVar13;
        puVar13[-2] = local_68;
        puVar13[-1] = sVar1;
        *puVar13 = local_58;
        local_68 = &local_58;
        if (puVar7 != (undefined8 *)0x0) {
          local_68 = puVar7;
          local_58 = uVar2;
        }
      }
      *(undefined1 *)local_68 = 0;
      puVar13[2] = local_48;
      puVar13[3] = local_40;
      if (local_68 != &local_58) {
        FUN_002dac60();
      }
      puVar13 = puVar13 + 10;
      puVar15 = puVar15 + 10;
    } while (puVar13 !=
             (undefined8 *)(param_2 + 0x80 + ((param_2 + -0x50) - param_1 & 0xfffffffffffffff0U)));
    return param_2;
  }
  lVar14 = local_a8 + lVar10 * 0x3333333333333333;
  lVar12 = lVar11;
  local_a0 = param_1;
  if (lVar14 == lVar11 || SBORROW8(lVar14,lVar11) != lVar14 + lVar10 * 0x3333333333333333 < 0)
  goto LAB_0025fb1a;
  do {
    if (0 < lVar14) {
      lVar10 = 0;
      puVar13 = (undefined8 *)(local_a0 + 0x30 + lVar11 * 0x50);
      puVar15 = (undefined8 *)(local_a0 + 0x30);
      do {
        uVar2 = puVar15[-6];
        uVar4 = puVar15[-5];
        uVar5 = puVar15[-4];
        uVar6 = puVar15[-3];
        local_68 = (undefined8 *)puVar15[-2];
        if (local_68 == puVar15) {
          local_58 = *puVar15;
          uStack_50 = puVar15[1];
          local_68 = &local_58;
        }
        else {
          local_58 = *puVar15;
        }
        sVar1 = puVar15[-1];
        *(undefined1 *)puVar15 = 0;
        puVar15[-1] = 0;
        uVar3 = puVar13[-5];
        local_48 = puVar15[2];
        puVar15[-6] = puVar13[-6];
        puVar15[-5] = uVar3;
        local_40 = puVar15[3];
        puVar15[-2] = puVar15;
        puVar15[-4] = puVar13[-4];
        *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);
        if ((undefined8 *)puVar13[-2] == puVar13) {
          sVar9 = puVar13[-1];
          if (sVar9 != 0) {
            if (sVar9 == 1) {
              *(undefined1 *)puVar15 = *(undefined1 *)puVar13;
              sVar9 = puVar13[-1];
            }
            else {
              memcpy(puVar15,puVar13,sVar9);
              sVar9 = puVar13[-1];
            }
          }
          puVar15[-1] = sVar9;
          *(undefined1 *)((long)puVar15 + sVar9) = 0;
          puVar7 = (undefined8 *)puVar13[-2];
        }
        else {
          puVar15[-2] = (undefined8 *)puVar13[-2];
          puVar15[-1] = puVar13[-1];
          *puVar15 = *puVar13;
          puVar13[-2] = puVar13;
          puVar7 = puVar13;
        }
        puVar13[-1] = 0;
        *(undefined1 *)puVar7 = 0;
        puVar15[2] = puVar13[2];
        puVar15[3] = puVar13[3];
        puVar13[-6] = uVar2;
        puVar13[-5] = uVar4;
        puVar7 = (undefined8 *)puVar13[-2];
        puVar13[-4] = uVar5;
        uStack_70 = (undefined4)uVar6;
        *(undefined4 *)(puVar13 + -3) = uStack_70;
        if (local_68 == &local_58) {
          if (sVar1 != 0) {
            if (sVar1 == 1) {
              *(undefined1 *)puVar7 = (undefined1)local_58;
              puVar7 = (undefined8 *)puVar13[-2];
            }
            else {
              memcpy(puVar7,&local_58,sVar1);
              puVar7 = (undefined8 *)puVar13[-2];
            }
          }
          puVar13[-1] = sVar1;
          *(undefined1 *)((long)puVar7 + sVar1) = 0;
          uVar2 = local_58;
        }
        else {
          if (puVar7 == puVar13) {
            puVar13[-2] = local_68;
            puVar13[-1] = sVar1;
            *puVar13 = local_58;
          }
          else {
            uVar2 = *puVar13;
            puVar13[-2] = local_68;
            puVar13[-1] = sVar1;
            *puVar13 = local_58;
            local_68 = puVar7;
            if (puVar7 != (undefined8 *)0x0) goto LAB_0025f996;
          }
          local_68 = &local_58;
          uVar2 = local_58;
        }
LAB_0025f996:
        local_58 = uVar2;
        *(undefined1 *)local_68 = 0;
        puVar13[2] = local_48;
        puVar13[3] = local_40;
        if (local_68 != &local_58) {
          FUN_002dac60();
        }
        lVar10 = lVar10 + 1;
        puVar15 = puVar15 + 10;
        puVar13 = puVar13 + 10;
      } while (lVar14 != lVar10);
      local_a0 = local_a0 + lVar14 * 0x50;
    }
    if (local_a8 % lVar11 == 0) {
      return lVar8;
    }
    lVar12 = lVar11 - local_a8 % lVar11;
    lVar10 = lVar11;
    while (lVar14 = lVar10 - lVar12, lVar11 = lVar12, local_a8 = lVar10, lVar14 <= lVar12) {
LAB_0025fb1a:
      lVar10 = lVar14;
      lVar11 = local_a8 * 0x50 + local_a0;
      local_a0 = lVar11 + lVar10 * -0x50;
      if (0 < lVar12) {
        puVar15 = (undefined8 *)(local_a0 + -0x20);
        puVar13 = (undefined8 *)(lVar11 + -0x20);
        lVar11 = 0;
        do {
          uVar2 = puVar15[-6];
          uVar4 = puVar15[-5];
          uVar5 = puVar15[-4];
          uVar6 = puVar15[-3];
          local_68 = (undefined8 *)puVar15[-2];
          if (local_68 == puVar15) {
            local_58 = *puVar15;
            uStack_50 = puVar15[1];
            local_68 = &local_58;
          }
          else {
            local_58 = *puVar15;
          }
          sVar1 = puVar15[-1];
          *(undefined1 *)puVar15 = 0;
          puVar15[-1] = 0;
          uVar3 = puVar13[-5];
          local_48 = puVar15[2];
          puVar15[-6] = puVar13[-6];
          puVar15[-5] = uVar3;
          local_40 = puVar15[3];
          puVar15[-2] = puVar15;
          puVar15[-4] = puVar13[-4];
          *(undefined4 *)(puVar15 + -3) = *(undefined4 *)(puVar13 + -3);
          if ((undefined8 *)puVar13[-2] == puVar13) {
            sVar9 = puVar13[-1];
            if (sVar9 != 0) {
              if (sVar9 == 1) {
                *(undefined1 *)puVar15 = *(undefined1 *)puVar13;
                sVar9 = puVar13[-1];
              }
              else {
                memcpy(puVar15,puVar13,sVar9);
                sVar9 = puVar13[-1];
              }
            }
            puVar15[-1] = sVar9;
            *(undefined1 *)(puVar15[-2] + sVar9) = 0;
          }
          else {
            puVar15[-2] = (undefined8 *)puVar13[-2];
            puVar15[-1] = puVar13[-1];
            *puVar15 = *puVar13;
            puVar13[-2] = puVar13;
          }
          puVar13[-1] = 0;
          *(undefined1 *)puVar13[-2] = 0;
          puVar15[2] = puVar13[2];
          puVar15[3] = puVar13[3];
          puVar7 = (undefined8 *)puVar13[-2];
          puVar13[-6] = uVar2;
          puVar13[-5] = uVar4;
          puVar13[-4] = uVar5;
          uStack_70 = (undefined4)uVar6;
          *(undefined4 *)(puVar13 + -3) = uStack_70;
          if (local_68 == &local_58) {
            if (sVar1 != 0) {
              if (sVar1 == 1) {
                *(undefined1 *)puVar7 = (undefined1)local_58;
                puVar7 = (undefined8 *)puVar13[-2];
              }
              else {
                memcpy(puVar7,&local_58,sVar1);
                puVar7 = (undefined8 *)puVar13[-2];
              }
            }
            puVar13[-1] = sVar1;
            *(undefined1 *)((long)puVar7 + sVar1) = 0;
            uVar2 = local_58;
          }
          else {
            if (puVar7 == puVar13) {
              puVar13[-2] = local_68;
              puVar13[-1] = sVar1;
              *puVar13 = local_58;
            }
            else {
              uVar2 = *puVar13;
              puVar13[-2] = local_68;
              puVar13[-1] = sVar1;
              *puVar13 = local_58;
              local_68 = puVar7;
              if (puVar7 != (undefined8 *)0x0) goto LAB_0025fc78;
            }
            local_68 = &local_58;
            uVar2 = local_58;
          }
LAB_0025fc78:
          local_58 = uVar2;
          *(undefined1 *)local_68 = 0;
          puVar13[2] = local_48;
          puVar13[3] = local_40;
          if (local_68 != &local_58) {
            FUN_002dac60();
          }
          lVar11 = lVar11 + 1;
          puVar15 = puVar15 + -10;
          puVar13 = puVar13 + -10;
        } while (lVar11 != lVar12);
        local_a0 = local_a0 + lVar11 * -0x50;
      }
      lVar12 = local_a8 % lVar10;
      if (lVar12 == 0) {
        return lVar8;
      }
    }
  } while( true );
}

