
/* DWARF original name: _M_range_insert<__gnu_cxx::__normal_iterator<gold::Version_expression*,
   std::vector<gold::Version_expression> > >
   DWARF original prototype: void
   _M_range_insert<__gnu_cxx::__normal_iterator<gold::Version_expression*,_std::vector<gold::Version_expression>_>_>(vector<gold::Version_expression,_std::allocator<gold::Version_expression>_>
   * this, iterator __position,
   __normal_iterator<gold::Version_expression*,_std::vector<gold::Version_expression,_std::allocator<gold::Version_expression>_>_>
   __first,
   __normal_iterator<gold::Version_expression*,_std::vector<gold::Version_expression,_std::allocator<gold::Version_expression>_>_>
   __last, forward_iterator_tag param_5) */

void __thiscall
std::vector<gold::Version_expression,_std::allocator<gold::Version_expression>_>::
_M_range_insert<__gnu_cxx::__normal_iterator<gold::Version_expression*,_std::vector<gold::Version_expression>_>_>
          (vector<gold::Version_expression,_std::allocator<gold::Version_expression>_> *this,
          pointer __position,int *__first,int *__last)

{
  bool bVar1;
  bool bVar2;
  code *pcVar3;
  undefined *puVar4;
  int iVar5;
  Language LVar6;
  pointer pVVar7;
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *paVar8;
  uint uVar9;
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *paVar10;
  size_type *psVar11;
  pointer pVVar12;
  size_type *psVar13;
  size_type sVar14;
  size_type sVar15;
  pointer pcVar16;
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *paVar17;
  undefined4 uVar18;
  size_type sVar19;
  undefined4 uVar20;
  undefined4 uVar21;
  pointer pVVar22;
  pointer pVVar23;
  undefined4 *puVar24;
  int *piVar25;
  int *piVar26;
  int iVar27;
  int iVar28;
  uint uVar29;
  uint uVar30;
  
  puVar4 = PTR__M_construct<char*>_0043248c;
  if (__first == __last) {
    return;
  }
  pVVar12 = (this->
            super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>)
            ._M_impl._M_finish;
  iVar27 = (int)__last - (int)__first;
  uVar29 = iVar27 >> 5;
  if (uVar29 <= (uint)((int)(this->
                            super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>
                            )._M_impl._M_end_of_storage - (int)pVVar12 >> 5)) {
    iVar5 = (int)pVVar12 - (int)__position;
    uVar30 = iVar5 >> 5;
    if (uVar29 < uVar30) {
      paVar10 = &(pVVar12->pattern).field_2;
      psVar13 = (size_type *)((int)pVVar12 + (8 - iVar27));
      pVVar7 = pVVar12;
      do {
        while( true ) {
          paVar17 = &(pVVar7->pattern).field_2;
          (pVVar7->pattern)._M_dataplus._M_p = (pointer)paVar17;
          if ((size_type *)psVar13[-2] != psVar13) break;
          sVar19 = psVar13[1];
          sVar15 = psVar13[2];
          sVar14 = psVar13[3];
          paVar17->_M_allocated_capacity = *psVar13;
          *(size_type *)((int)&(pVVar7->pattern).field_2 + 4) = sVar19;
          *(size_type *)((int)&(pVVar7->pattern).field_2 + 8) = sVar15;
          *(size_type *)((int)&(pVVar7->pattern).field_2 + 0xc) = sVar14;
          bVar1 = *(bool *)(psVar13 + 5);
          LVar6 = psVar13[4];
          (pVVar7->pattern)._M_string_length = psVar13[-1];
          psVar13[-2] = (size_type)psVar13;
          psVar11 = psVar13 + 8;
          psVar13[-1] = 0;
          *(char *)psVar13 = '\0';
          pVVar7->exact_match = bVar1;
          pVVar7->language = LVar6;
          pVVar7->was_matched_by_symbol = *(bool *)((int)psVar13 + 0x15);
          psVar13 = psVar11;
          pVVar7 = pVVar7 + 1;
          if (paVar10 ==
              (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
               *)psVar11) goto LAB_002247fc;
        }
        (pVVar7->pattern)._M_dataplus._M_p = (pointer)psVar13[-2];
        bVar1 = *(bool *)(psVar13 + 5);
        (pVVar7->pattern).field_2._M_allocated_capacity = *psVar13;
        LVar6 = psVar13[4];
        (pVVar7->pattern)._M_string_length = psVar13[-1];
        psVar13[-2] = (size_type)psVar13;
        psVar11 = psVar13 + 8;
        psVar13[-1] = 0;
        *(char *)psVar13 = '\0';
        pVVar7->exact_match = bVar1;
        pVVar7->language = LVar6;
        pVVar7->was_matched_by_symbol = *(bool *)((int)psVar13 + 0x15);
        psVar13 = psVar11;
        pVVar7 = pVVar7 + 1;
      } while (paVar10 !=
               (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                *)psVar11);
LAB_002247fc:
      iVar5 = (int)pVVar12 + (-(int)__position - iVar27);
      iVar28 = iVar5 >> 5;
      (this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>
      )._M_impl._M_finish =
           (pointer)((int)(this->
                          super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>
                          )._M_impl._M_finish + iVar27);
      if (0 < iVar5) {
        psVar13 = (size_type *)((int)pVVar12 + (-0x18 - iVar27));
        paVar10 = &pVVar12[-1].pattern.field_2;
        do {
          while( true ) {
            pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;
            if ((size_type *)psVar13[-2] != psVar13) break;
            sVar14 = psVar13[-1];
            if (sVar14 != 0) {
              if (sVar14 == 1) {
                *pcVar16 = *(char *)psVar13;
                pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;
                sVar14 = psVar13[-1];
              }
              else {
                (*(code *)PTR_memcpy_00436788)(pcVar16,psVar13);
                pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;
                sVar14 = psVar13[-1];
              }
            }
            *(size_type *)((int)paVar10 + -4) = sVar14;
            pcVar16[sVar14] = '\0';
            iVar28 = iVar28 + -1;
            psVar13[-1] = 0;
            *(undefined1 *)psVar13[-2] = 0;
            sVar14 = psVar13[4];
            *(char *)((int)paVar10 + 0x14) = *(char *)(psVar13 + 5);
            paVar10[1]._M_allocated_capacity = sVar14;
            *(char *)((int)paVar10 + 0x15) = *(char *)((int)psVar13 + 0x15);
            psVar13 = psVar13 + -8;
            paVar10 = paVar10 + -2;
            if (iVar28 == 0) goto LAB_002248f8;
          }
          (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)psVar13[-2];
          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
               *)pcVar16 == paVar10) {
            *(size_type *)((int)paVar10 + -4) = psVar13[-1];
            paVar10->_M_allocated_capacity = *psVar13;
LAB_0022497c:
            psVar13[-2] = (size_type)psVar13;
          }
          else {
            sVar14 = paVar10->_M_allocated_capacity;
            *(size_type *)((int)paVar10 + -4) = psVar13[-1];
            paVar10->_M_allocated_capacity = *psVar13;
            if (pcVar16 == (pointer)0x0) goto LAB_0022497c;
            psVar13[-2] = (size_type)pcVar16;
            *psVar13 = sVar14;
          }
          psVar13[-1] = 0;
          iVar28 = iVar28 + -1;
          *(undefined1 *)psVar13[-2] = 0;
          sVar14 = psVar13[4];
          *(char *)((int)paVar10 + 0x14) = *(char *)(psVar13 + 5);
          paVar10[1]._M_allocated_capacity = sVar14;
          *(char *)((int)paVar10 + 0x15) = *(char *)((int)psVar13 + 0x15);
          psVar13 = psVar13 + -8;
          paVar10 = paVar10 + -2;
        } while (iVar28 != 0);
      }
LAB_002248f8:
      if (0 < iVar27) {
        do {
          (*(code *)PTR__M_assign_00432d78)(__position,__first);
          uVar29 = uVar29 - 1;
          LVar6 = __first[6];
          __position->exact_match = *(bool *)(__first + 7);
          __position->language = LVar6;
          __position->was_matched_by_symbol = *(bool *)((int)__first + 0x1d);
          __first = __first + 8;
          __position = __position + 1;
        } while (uVar29 != 0);
        return;
      }
    }
    else {
      piVar25 = (int *)((int)__first + iVar5);
      pVVar7 = pVVar12;
      if (piVar25 != __last) {
        do {
          (pVVar7->pattern)._M_dataplus._M_p = (pointer)&(pVVar7->pattern).field_2;
                    /* try { // try from 002241f8 to 002241ff has its CatchHandler @ 002249d8 */
          (*(code *)puVar4)(pVVar7,*piVar25,*piVar25 + piVar25[1],0);
          piVar26 = piVar25 + 8;
          LVar6 = piVar25[6];
          pVVar7->exact_match = *(bool *)(piVar25 + 7);
          pVVar7->language = LVar6;
          pVVar7->was_matched_by_symbol = *(bool *)((int)piVar25 + 0x1d);
          piVar25 = piVar26;
          pVVar7 = pVVar7 + 1;
        } while (__last != piVar26);
        pVVar7 = (this->
                 super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>
                 )._M_impl._M_finish;
      }
      pVVar7 = pVVar7 + (uVar29 - uVar30);
      (this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>
      )._M_impl._M_finish = pVVar7;
      if (pVVar12 != __position) {
        paVar17 = &(pVVar12->pattern).field_2;
        paVar10 = &(__position->pattern).field_2;
        do {
          while( true ) {
            paVar8 = &(pVVar7->pattern).field_2;
            (pVVar7->pattern)._M_dataplus._M_p = (pointer)paVar8;
            psVar13 = (size_type *)(((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;
            if (paVar10 !=
                (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                 *)psVar13) break;
            sVar19 = *(size_type *)((int)paVar10 + 4);
            sVar15 = *(size_type *)((int)paVar10 + 8);
            sVar14 = *(size_type *)((int)paVar10 + 0xc);
            paVar8->_M_allocated_capacity = paVar10->_M_allocated_capacity;
            *(size_type *)((int)&(pVVar7->pattern).field_2 + 4) = sVar19;
            *(size_type *)((int)&(pVVar7->pattern).field_2 + 8) = sVar15;
            *(size_type *)((int)&(pVVar7->pattern).field_2 + 0xc) = sVar14;
            bVar1 = *(bool *)((int)paVar10 + 0x14);
            LVar6 = paVar10[1]._M_allocated_capacity;
            (pVVar7->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);
            (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;
            paVar8 = paVar10 + 2;
            *(size_type *)((int)paVar10 + -4) = 0;
            paVar10->_M_local_buf[0] = '\0';
            pVVar7->exact_match = bVar1;
            pVVar7->language = LVar6;
            pVVar7->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15);
            paVar10 = paVar8;
            pVVar7 = pVVar7 + 1;
            if (paVar17 == paVar8) goto LAB_00224324;
          }
          (pVVar7->pattern)._M_dataplus._M_p = (pointer)psVar13;
          bVar1 = *(bool *)((int)paVar10 + 0x14);
          (pVVar7->pattern).field_2._M_allocated_capacity = paVar10->_M_allocated_capacity;
          LVar6 = paVar10[1]._M_allocated_capacity;
          (pVVar7->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);
          (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;
          paVar8 = paVar10 + 2;
          *(size_type *)((int)paVar10 + -4) = 0;
          paVar10->_M_local_buf[0] = '\0';
          pVVar7->exact_match = bVar1;
          pVVar7->language = LVar6;
          pVVar7->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15);
          paVar10 = paVar8;
          pVVar7 = pVVar7 + 1;
        } while (paVar17 != paVar8);
LAB_00224324:
        pVVar7 = (this->
                 super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>
                 )._M_impl._M_finish;
      }
      (this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>
      )._M_impl._M_finish = (pointer)((int)pVVar7 + iVar5);
      if (0 < iVar5) {
        do {
          (*(code *)PTR__M_assign_00432d78)(__position,__first);
          uVar30 = uVar30 - 1;
          LVar6 = __first[6];
          __position->exact_match = *(bool *)(__first + 7);
          __position->language = LVar6;
          __position->was_matched_by_symbol = *(bool *)((int)__first + 0x1d);
          __first = __first + 8;
          __position = __position + 1;
        } while (uVar30 != 0);
      }
    }
    return;
  }
  pVVar7 = (this->
           super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>).
           _M_impl._M_start;
  uVar30 = 0x7ffffff;
  uVar9 = (int)pVVar12 - (int)pVVar7 >> 5;
  if (0x7ffffff - uVar9 < uVar29) {
    (*(code *)PTR___throw_length_error_00432480)(PTR_s__0043226c + -0x6b60);
    return;
  }
  if (uVar29 < uVar9) {
    uVar29 = uVar9;
  }
  uVar29 = uVar29 + uVar9;
  if ((uVar29 < uVar9) || (0x7ffffff < uVar29)) {
    iVar27 = -0x20;
  }
  else {
    pVVar12 = (pointer)0x0;
    uVar30 = uVar29;
    if (uVar29 == 0) goto LAB_00224414;
    iVar27 = uVar29 * 0x20;
  }
  pVVar12 = (pointer)(*(code *)PTR_operator_new_0043233c)(iVar27);
  pVVar7 = (this->
           super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>).
           _M_impl._M_start;
LAB_00224414:
  pVVar23 = pVVar12;
  pcVar3 = (code *)PTR__M_construct<char*>_0043248c;
  if (pVVar7 != __position) {
    paVar17 = &(__position->pattern).field_2;
    paVar10 = &(pVVar7->pattern).field_2;
    do {
      while( true ) {
        paVar8 = &(pVVar23->pattern).field_2;
        (pVVar23->pattern)._M_dataplus._M_p = (pointer)paVar8;
        pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;
        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
             *)pcVar16 != paVar10) break;
        uVar21 = *(undefined4 *)((int)paVar10 + 4);
        uVar20 = *(undefined4 *)((int)paVar10 + 8);
        uVar18 = *(undefined4 *)((int)paVar10 + 0xc);
        paVar8->_M_allocated_capacity = paVar10->_M_allocated_capacity;
        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 4) = uVar21;
        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 8) = uVar20;
        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 0xc) = uVar18;
        bVar1 = *(bool *)((int)paVar10 + 0x14);
        LVar6 = paVar10[1]._M_allocated_capacity;
        (pVVar23->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);
        (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;
        paVar8 = paVar10 + 2;
        *(size_type *)((int)paVar10 + -4) = 0;
        paVar10->_M_local_buf[0] = '\0';
        pVVar23->exact_match = bVar1;
        pVVar23->language = LVar6;
        pVVar23->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15);
        paVar10 = paVar8;
        pVVar23 = pVVar23 + 1;
        if (paVar8 == paVar17) goto LAB_00224504;
      }
      (pVVar23->pattern)._M_dataplus._M_p = pcVar16;
      bVar1 = *(bool *)((int)paVar10 + 0x14);
      (pVVar23->pattern).field_2._M_allocated_capacity = paVar10->_M_allocated_capacity;
      LVar6 = paVar10[1]._M_allocated_capacity;
      (pVVar23->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);
      (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;
      paVar8 = paVar10 + 2;
      *(size_type *)((int)paVar10 + -4) = 0;
      paVar10->_M_local_buf[0] = '\0';
      pVVar23->exact_match = bVar1;
      pVVar23->language = LVar6;
      pVVar23->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15);
      paVar10 = paVar8;
      pVVar23 = pVVar23 + 1;
    } while (paVar8 != paVar17);
LAB_00224504:
    pVVar23 = pVVar12 + ((uint)((int)__position + (-0x20 - (int)pVVar7)) >> 5) + 1;
    pcVar3 = (code *)PTR__M_construct<char*>_0043248c;
  }
  do {
    iVar27 = *__first;
    iVar5 = __first[1];
    (pVVar23->pattern)._M_dataplus._M_p = (pointer)&(pVVar23->pattern).field_2;
                    /* try { // try from 00224544 to 0022454b has its CatchHandler @ 002249b4 */
    (*pcVar3)(pVVar23,iVar27,iVar27 + iVar5,0);
    piVar25 = __first + 8;
    pVVar7 = pVVar23 + 1;
    bVar1 = *(bool *)(__first + 7);
    bVar2 = *(bool *)((int)__first + 0x1d);
    pVVar23->language = __first[6];
    pVVar23->exact_match = bVar1;
    pVVar23->was_matched_by_symbol = bVar2;
    __first = piVar25;
    pVVar23 = pVVar7;
  } while (__last != piVar25);
  pVVar23 = (this->
            super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>)
            ._M_impl._M_finish;
  if (pVVar23 != __position) {
    uVar29 = (int)pVVar23 + (-0x20 - (int)__position);
    puVar24 = (undefined4 *)((int)__position + uVar29 + 0x28);
    pVVar23 = pVVar7;
    paVar10 = &(__position->pattern).field_2;
    do {
      while( true ) {
        pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;
        paVar17 = &(pVVar23->pattern).field_2;
        (pVVar23->pattern)._M_dataplus._M_p = (pointer)paVar17;
        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
             *)pcVar16 != paVar10) break;
        uVar21 = *(undefined4 *)((int)paVar10 + 4);
        uVar20 = *(undefined4 *)((int)paVar10 + 8);
        uVar18 = *(undefined4 *)((int)paVar10 + 0xc);
        paVar17->_M_allocated_capacity = paVar10->_M_allocated_capacity;
        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 4) = uVar21;
        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 8) = uVar20;
        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 0xc) = uVar18;
        (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;
        paVar17 = paVar10 + 2;
        LVar6 = paVar10[1]._M_allocated_capacity;
        bVar1 = *(bool *)((int)paVar10 + 0x14);
        bVar2 = *(bool *)((int)paVar10 + 0x15);
        (pVVar23->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);
        pVVar23->language = LVar6;
        *(size_type *)((int)paVar10 + -4) = 0;
        paVar10->_M_local_buf[0] = '\0';
        pVVar23->exact_match = bVar1;
        pVVar23->was_matched_by_symbol = bVar2;
        pVVar23 = pVVar23 + 1;
        paVar10 = paVar17;
        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
             *)puVar24 == paVar17) goto LAB_00224668;
      }
      sVar14 = paVar10->_M_allocated_capacity;
      sVar15 = *(size_type *)((int)paVar10 + -4);
      LVar6 = paVar10[1]._M_allocated_capacity;
      (pVVar23->pattern)._M_dataplus._M_p = pcVar16;
      (pVVar23->pattern).field_2._M_allocated_capacity = sVar14;
      (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;
      paVar17 = paVar10 + 2;
      (pVVar23->pattern)._M_string_length = sVar15;
      pVVar23->language = LVar6;
      bVar1 = *(bool *)((int)paVar10 + 0x15);
      pVVar23->exact_match = *(bool *)((int)paVar10 + 0x14);
      *(size_type *)((int)paVar10 + -4) = 0;
      paVar10->_M_local_buf[0] = '\0';
      pVVar23->was_matched_by_symbol = bVar1;
      pVVar23 = pVVar23 + 1;
      paVar10 = paVar17;
    } while ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
              *)puVar24 != paVar17);
LAB_00224668:
    pVVar23 = (this->
              super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>
              )._M_impl._M_finish;
    pVVar7 = pVVar7 + (uVar29 >> 5) + 1;
  }
  pVVar22 = (this->
            super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>)
            ._M_impl._M_start;
  if (pVVar22 != pVVar23) {
    do {
      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
           *)(pVVar22->pattern)._M_dataplus._M_p != &(pVVar22->pattern).field_2) {
        (*(code *)PTR_operator_delete_0043228c)();
      }
      pVVar22 = pVVar22 + 1;
    } while (pVVar22 != pVVar23);
    pVVar23 = (this->
              super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>
              )._M_impl._M_start;
  }
  if (pVVar23 != (pointer)0x0) {
    (*(code *)PTR_operator_delete_0043228c)(pVVar23);
  }
  (this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>).
  _M_impl._M_start = pVVar12;
  (this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>).
  _M_impl._M_finish = pVVar7;
  (this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>).
  _M_impl._M_end_of_storage = pVVar12 + uVar30;
  return;
}



/* void std::vector<gold::Version_expression, std::allocator<gold::Version_expression>
   >::_M_range_insert<__normal_iterator<gold::Version_expression*,
   std::vector<gold::Version_expression, std::allocator<gold::Version_expression> > >
   >(__normal_iterator<gold::Version_expression*, std::vector<gold::Version_expression,
   std::allocator<gold::Version_expression> > >, __normal_iterator<gold::Version_expression*,
   std::vector<gold::Version_expression, std::allocator<gold::Version_expression> > >,
   __normal_iterator<gold::Version_expression*, std::vector<gold::Version_expression,
   std::allocator<gold::Version_expression> > >, std::forward_iterator_tag) */

void std::vector<gold::Version_expression,std::allocator<gold::Version_expression>>::
     _M_range_insert<__normal_iterator<gold::Version_expression*,std::vector<gold::Version_expression,std::allocator<gold::Version_expression>>>>
               (undefined4 *param_1,undefined4 *param_2,int *param_3,int *param_4)

{
  undefined1 uVar1;
  undefined1 uVar2;
  code *pcVar3;
  undefined *puVar4;
  int iVar5;
  undefined4 *puVar6;
  uint uVar7;
  undefined4 *puVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  undefined4 *puVar11;
  undefined4 *puVar12;
  undefined4 uVar13;
  undefined4 *puVar14;
  undefined4 *puVar15;
  int *piVar16;
  int *piVar17;
  int iVar18;
  int iVar19;
  uint uVar20;
  uint uVar21;
  
  puVar4 = PTR__M_construct<char*>_0043248c;
  if (param_3 == param_4) {
    return;
  }
  puVar8 = (undefined4 *)param_1[1];
  iVar18 = (int)param_4 - (int)param_3;
  uVar20 = iVar18 >> 5;
  if (uVar20 <= (uint)(param_1[2] - (int)puVar8 >> 5)) {
    iVar5 = (int)puVar8 - (int)param_2;
    uVar21 = iVar5 >> 5;
    if (uVar20 < uVar21) {
      puVar6 = (undefined4 *)((int)puVar8 + (8 - iVar18));
      puVar12 = puVar8;
      do {
        while( true ) {
          *puVar12 = puVar12 + 2;
          if ((undefined4 *)puVar6[-2] != puVar6) break;
          uVar13 = puVar6[1];
          uVar10 = puVar6[2];
          uVar9 = puVar6[3];
          puVar12[2] = *puVar6;
          puVar12[3] = uVar13;
          puVar12[4] = uVar10;
          puVar12[5] = uVar9;
          uVar1 = *(undefined1 *)(puVar6 + 5);
          uVar9 = puVar6[4];
          puVar12[1] = puVar6[-1];
          puVar6[-2] = puVar6;
          puVar14 = puVar6 + 8;
          puVar6[-1] = 0;
          *(undefined1 *)puVar6 = 0;
          *(undefined1 *)(puVar12 + 7) = uVar1;
          puVar12[6] = uVar9;
          *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);
          puVar6 = puVar14;
          puVar12 = puVar12 + 8;
          if (puVar8 + 2 == puVar14) goto LAB_002247fc;
        }
        *puVar12 = (undefined4 *)puVar6[-2];
        uVar1 = *(undefined1 *)(puVar6 + 5);
        puVar12[2] = *puVar6;
        uVar9 = puVar6[4];
        puVar12[1] = puVar6[-1];
        puVar6[-2] = puVar6;
        puVar14 = puVar6 + 8;
        puVar6[-1] = 0;
        *(undefined1 *)puVar6 = 0;
        *(undefined1 *)(puVar12 + 7) = uVar1;
        puVar12[6] = uVar9;
        *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);
        puVar6 = puVar14;
        puVar12 = puVar12 + 8;
      } while (puVar8 + 2 != puVar14);
LAB_002247fc:
      iVar5 = (int)puVar8 + (-(int)param_2 - iVar18);
      iVar19 = iVar5 >> 5;
      param_1[1] = param_1[1] + iVar18;
      if (0 < iVar5) {
        puVar6 = (undefined4 *)((int)puVar8 + (-0x18 - iVar18));
        puVar8 = puVar8 + -6;
        do {
          while( true ) {
            puVar12 = (undefined4 *)puVar8[-2];
            if ((undefined4 *)puVar6[-2] != puVar6) break;
            iVar5 = puVar6[-1];
            if (iVar5 != 0) {
              if (iVar5 == 1) {
                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;
                puVar12 = (undefined4 *)puVar8[-2];
                iVar5 = puVar6[-1];
              }
              else {
                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);
                puVar12 = (undefined4 *)puVar8[-2];
                iVar5 = puVar6[-1];
              }
            }
            puVar8[-1] = iVar5;
            *(undefined1 *)((int)puVar12 + iVar5) = 0;
            iVar19 = iVar19 + -1;
            puVar6[-1] = 0;
            *(undefined1 *)puVar6[-2] = 0;
            uVar9 = puVar6[4];
            *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);
            puVar8[4] = uVar9;
            *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);
            puVar6 = puVar6 + -8;
            puVar8 = puVar8 + -8;
            if (iVar19 == 0) goto LAB_002248f8;
          }
          puVar8[-2] = (undefined4 *)puVar6[-2];
          if (puVar12 == puVar8) {
            puVar8[-1] = puVar6[-1];
            *puVar8 = *puVar6;
LAB_0022497c:
            puVar6[-2] = puVar6;
          }
          else {
            uVar9 = *puVar8;
            puVar8[-1] = puVar6[-1];
            *puVar8 = *puVar6;
            if (puVar12 == (undefined4 *)0x0) goto LAB_0022497c;
            puVar6[-2] = puVar12;
            *puVar6 = uVar9;
          }
          puVar6[-1] = 0;
          iVar19 = iVar19 + -1;
          *(undefined1 *)puVar6[-2] = 0;
          uVar9 = puVar6[4];
          *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);
          puVar8[4] = uVar9;
          *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);
          puVar6 = puVar6 + -8;
          puVar8 = puVar8 + -8;
        } while (iVar19 != 0);
      }
LAB_002248f8:
      if (0 < iVar18) {
        do {
          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);
          uVar20 = uVar20 - 1;
          iVar18 = param_3[6];
          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);
          param_2[6] = iVar18;
          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);
          param_3 = param_3 + 8;
          param_2 = param_2 + 8;
        } while (uVar20 != 0);
        return;
      }
    }
    else {
      piVar16 = (int *)((int)param_3 + iVar5);
      puVar6 = puVar8;
      if (piVar16 != param_4) {
        do {
          *puVar6 = puVar6 + 2;
                    /* try { // try from 002241f8 to 002241ff has its CatchHandler @ 002249d8 */
          (*(code *)puVar4)(puVar6,*piVar16,*piVar16 + piVar16[1],0);
          piVar17 = piVar16 + 8;
          iVar18 = piVar16[6];
          *(undefined1 *)(puVar6 + 7) = *(undefined1 *)(piVar16 + 7);
          puVar6[6] = iVar18;
          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)piVar16 + 0x1d);
          piVar16 = piVar17;
          puVar6 = puVar6 + 8;
        } while (param_4 != piVar17);
        puVar6 = (undefined4 *)param_1[1];
      }
      puVar6 = puVar6 + (uVar20 - uVar21) * 8;
      param_1[1] = puVar6;
      if (puVar8 != param_2) {
        puVar12 = param_2 + 2;
        do {
          while( true ) {
            *puVar6 = puVar6 + 2;
            if (puVar12 != (undefined4 *)puVar12[-2]) break;
            uVar13 = puVar12[1];
            uVar10 = puVar12[2];
            uVar9 = puVar12[3];
            puVar6[2] = *puVar12;
            puVar6[3] = uVar13;
            puVar6[4] = uVar10;
            puVar6[5] = uVar9;
            uVar1 = *(undefined1 *)(puVar12 + 5);
            uVar9 = puVar12[4];
            puVar6[1] = puVar12[-1];
            puVar12[-2] = puVar12;
            puVar14 = puVar12 + 8;
            puVar12[-1] = 0;
            *(undefined1 *)puVar12 = 0;
            *(undefined1 *)(puVar6 + 7) = uVar1;
            puVar6[6] = uVar9;
            *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);
            puVar12 = puVar14;
            puVar6 = puVar6 + 8;
            if (puVar8 + 2 == puVar14) goto LAB_00224324;
          }
          *puVar6 = (undefined4 *)puVar12[-2];
          uVar1 = *(undefined1 *)(puVar12 + 5);
          puVar6[2] = *puVar12;
          uVar9 = puVar12[4];
          puVar6[1] = puVar12[-1];
          puVar12[-2] = puVar12;
          puVar14 = puVar12 + 8;
          puVar12[-1] = 0;
          *(undefined1 *)puVar12 = 0;
          *(undefined1 *)(puVar6 + 7) = uVar1;
          puVar6[6] = uVar9;
          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);
          puVar12 = puVar14;
          puVar6 = puVar6 + 8;
        } while (puVar8 + 2 != puVar14);
LAB_00224324:
        puVar6 = (undefined4 *)param_1[1];
      }
      param_1[1] = (int)puVar6 + iVar5;
      if (0 < iVar5) {
        do {
          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);
          uVar21 = uVar21 - 1;
          iVar18 = param_3[6];
          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);
          param_2[6] = iVar18;
          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);
          param_3 = param_3 + 8;
          param_2 = param_2 + 8;
        } while (uVar21 != 0);
      }
    }
    return;
  }
  puVar6 = (undefined4 *)*param_1;
  uVar21 = 0x7ffffff;
  uVar7 = (int)puVar8 - (int)puVar6 >> 5;
  if (0x7ffffff - uVar7 < uVar20) {
    (*(code *)PTR___throw_length_error_00432480)(PTR_DAT_0043226c + -0x6b60);
    return;
  }
  if (uVar20 < uVar7) {
    uVar20 = uVar7;
  }
  uVar20 = uVar20 + uVar7;
  if ((uVar20 < uVar7) || (0x7ffffff < uVar20)) {
    iVar18 = -0x20;
  }
  else {
    puVar8 = (undefined4 *)0x0;
    uVar21 = uVar20;
    if (uVar20 == 0) goto LAB_00224414;
    iVar18 = uVar20 * 0x20;
  }
  puVar8 = (undefined4 *)(*(code *)PTR_operator_new_0043233c)(iVar18);
  puVar6 = (undefined4 *)*param_1;
LAB_00224414:
  puVar12 = puVar8;
  pcVar3 = (code *)PTR__M_construct<char*>_0043248c;
  if (puVar6 != param_2) {
    puVar12 = puVar6 + 2;
    puVar14 = puVar8;
    do {
      while( true ) {
        *puVar14 = puVar14 + 2;
        if ((undefined4 *)puVar12[-2] != puVar12) break;
        uVar13 = puVar12[1];
        uVar10 = puVar12[2];
        uVar9 = puVar12[3];
        puVar14[2] = *puVar12;
        puVar14[3] = uVar13;
        puVar14[4] = uVar10;
        puVar14[5] = uVar9;
        uVar1 = *(undefined1 *)(puVar12 + 5);
        uVar9 = puVar12[4];
        puVar14[1] = puVar12[-1];
        puVar12[-2] = puVar12;
        puVar15 = puVar12 + 8;
        puVar12[-1] = 0;
        *(undefined1 *)puVar12 = 0;
        *(undefined1 *)(puVar14 + 7) = uVar1;
        puVar14[6] = uVar9;
        *(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);
        puVar12 = puVar15;
        puVar14 = puVar14 + 8;
        if (puVar15 == param_2 + 2) goto LAB_00224504;
      }
      *puVar14 = (undefined4 *)puVar12[-2];
      uVar1 = *(undefined1 *)(puVar12 + 5);
      puVar14[2] = *puVar12;
      uVar9 = puVar12[4];
      puVar14[1] = puVar12[-1];
      puVar12[-2] = puVar12;
      puVar15 = puVar12 + 8;
      puVar12[-1] = 0;
      *(undefined1 *)puVar12 = 0;
      *(undefined1 *)(puVar14 + 7) = uVar1;
      puVar14[6] = uVar9;
      *(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);
      puVar12 = puVar15;
      puVar14 = puVar14 + 8;
    } while (puVar15 != param_2 + 2);
LAB_00224504:
    puVar12 = puVar8 + (((uint)((int)param_2 + (-0x20 - (int)puVar6)) >> 5) + 1) * 8;
    pcVar3 = (code *)PTR__M_construct<char*>_0043248c;
  }
  do {
    iVar18 = *param_3;
    iVar5 = param_3[1];
    *puVar12 = puVar12 + 2;
                    /* try { // try from 00224544 to 0022454b has its CatchHandler @ 002249b4 */
    (*pcVar3)(puVar12,iVar18,iVar18 + iVar5,0);
    piVar16 = param_3 + 8;
    puVar6 = puVar12 + 8;
    uVar1 = *(undefined1 *)(param_3 + 7);
    uVar2 = *(undefined1 *)((int)param_3 + 0x1d);
    puVar12[6] = param_3[6];
    *(undefined1 *)(puVar12 + 7) = uVar1;
    *(undefined1 *)((int)puVar12 + 0x1d) = uVar2;
    param_3 = piVar16;
    puVar12 = puVar6;
  } while (param_4 != piVar16);
  puVar12 = (undefined4 *)param_1[1];
  if (puVar12 != param_2) {
    uVar20 = (int)puVar12 + (-0x20 - (int)param_2);
    puVar15 = (undefined4 *)((int)param_2 + uVar20 + 0x28);
    puVar12 = puVar6;
    puVar14 = param_2 + 2;
    do {
      while( true ) {
        puVar11 = (undefined4 *)puVar14[-2];
        *puVar12 = puVar12 + 2;
        if (puVar11 != puVar14) break;
        uVar13 = puVar14[1];
        uVar10 = puVar14[2];
        uVar9 = puVar14[3];
        puVar12[2] = *puVar14;
        puVar12[3] = uVar13;
        puVar12[4] = uVar10;
        puVar12[5] = uVar9;
        puVar14[-2] = puVar14;
        puVar11 = puVar14 + 8;
        uVar9 = puVar14[4];
        uVar1 = *(undefined1 *)(puVar14 + 5);
        uVar2 = *(undefined1 *)((int)puVar14 + 0x15);
        puVar12[1] = puVar14[-1];
        puVar12[6] = uVar9;
        puVar14[-1] = 0;
        *(undefined1 *)puVar14 = 0;
        *(undefined1 *)(puVar12 + 7) = uVar1;
        *(undefined1 *)((int)puVar12 + 0x1d) = uVar2;
        puVar12 = puVar12 + 8;
        puVar14 = puVar11;
        if (puVar15 == puVar11) goto LAB_00224668;
      }
      uVar9 = *puVar14;
      uVar13 = puVar14[-1];
      uVar10 = puVar14[4];
      *puVar12 = puVar11;
      puVar12[2] = uVar9;
      puVar14[-2] = puVar14;
      puVar11 = puVar14 + 8;
      puVar12[1] = uVar13;
      puVar12[6] = uVar10;
      uVar1 = *(undefined1 *)((int)puVar14 + 0x15);
      *(undefined1 *)(puVar12 + 7) = *(undefined1 *)(puVar14 + 5);
      puVar14[-1] = 0;
      *(undefined1 *)puVar14 = 0;
      *(undefined1 *)((int)puVar12 + 0x1d) = uVar1;
      puVar12 = puVar12 + 8;
      puVar14 = puVar11;
    } while (puVar15 != puVar11);
LAB_00224668:
    puVar12 = (undefined4 *)param_1[1];
    puVar6 = puVar6 + ((uVar20 >> 5) + 1) * 8;
  }
  puVar14 = (undefined4 *)*param_1;
  if (puVar14 != puVar12) {
    do {
      if ((undefined4 *)*puVar14 != puVar14 + 2) {
        (*(code *)PTR_operator_delete_0043228c)();
      }
      puVar14 = puVar14 + 8;
    } while (puVar14 != puVar12);
    puVar12 = (undefined4 *)*param_1;
  }
  if (puVar12 != (undefined4 *)0x0) {
    (*(code *)PTR_operator_delete_0043228c)(puVar12);
  }
  *param_1 = puVar8;
  param_1[1] = puVar6;
  param_1[2] = puVar8 + uVar21 * 8;
  return;
}


lui gp,0x21
addiu gp,gp,0x60b0
addu gp,gp,t9
beq a2,a3,0x00224704
_nop
addiu sp,sp,-0x50
lw v1,0x4(a0)
lw v0,0x8(a0)
sw s4,0x38(sp)
subu s4,a3,a2
subu v0,v0,v1
sw s6,0x40(sp)
sra s6,s4,0x5
sw gp,0x10(sp)
sra v0,v0,0x5
sw s8,0x48(sp)
sw s5,0x3c(sp)
or s8,a0,zero
sltu v0,v0,s6
sw s3,0x34(sp)
sw s2,0x30(sp)
or s5,a3,zero
sw s1,0x2c(sp)
or s3,a2,zero
sw s0,0x28(sp)
or s1,a2,zero
sw ra,0x4c(sp)
or s0,a1,zero
sw s7,0x44(sp)
or s2,a1,zero
bne v0,zero,0x002243a4
_sw v1,0x1c(sp)
subu v0,v1,a1
sra s7,v0,0x5
sw v0,0x20(sp)
sltu v0,s6,s7
bne v0,zero,0x00224718
_nop
lw v0,0x20(sp)
addu s3,a2,v0
beq s3,a3,0x0022422c
_lw v0,0x1c(sp)
lw v0,-0x7d44(gp)
lw s4,0x1c(sp)
sw v0,0x18(sp)
addiu v0,s4,0x8
lw t9,0x18(sp)
or a3,zero,zero
sw v0,0x0(s4)
or a0,s4,zero
lw v0,0x0(s3)
sll a3,a3,0x18
lw a2,0x4(s3)
or a1,v0,zero
jalr t9
_addu a2,v0,a2
lbu v1,0x1c(s3)
addiu s3,s3,0x20
addiu s4,s4,0x20
lw gp,0x10(sp)
lw v0,-0x8(s3)
sb v1,-0x4(s4)
sw v0,-0x8(s4)
lbu v0,-0x3(s3)
bne s5,s3,0x002241d4
_sb v0,-0x3(s4)
lw v0,0x4(s8)
subu s6,s6,s7
sll s6,s6,0x5
addu s6,v0,s6
lw v0,0x1c(sp)
beq v0,s0,0x00224328
_sw s6,0x4(s8)
lw v0,0x1c(sp)
addiu s0,s0,0x8
b 0x00224298
_addiu a1,v0,0x8
sw v1,0x0(s6)
addiu s6,s6,0x20
lw v0,0x0(s0)
lbu v1,0x14(s0)
sw v0,-0x18(s6)
lw a0,-0x4(s0)
lw v0,0x10(s0)
sw a0,-0x1c(s6)
sw s0,-0x8(s0)
addiu s0,s0,0x20
sw zero,-0x24(s0)
sb zero,-0x20(s0)
sb v1,-0x4(s6)
sw v0,-0x8(s6)
lbu v0,-0xb(s0)
beq a1,s0,0x00224324
_sb v0,-0x3(s6)
addiu v0,s6,0x8
sw v0,0x0(s6)
lw v1,-0x8(s0)
bne s0,v1,0x00224254
_nop
lwl a3,0x0(s0)
addiu s6,s6,0x20
lwl a2,0x4(s0)
lwl a0,0x8(s0)
lwl v1,0xc(s0)
lwr a3,0x3(s0)
lwr a2,0x7(s0)
lwr a0,0xb(s0)
lwr v1,0xf(s0)
swl a3,0x0(v0)
swr a3,0x3(v0)
swl a2,0x4(v0)
swr a2,0x7(v0)
swl a0,0x8(v0)
swr a0,0xb(v0)
swl v1,0xc(v0)
swr v1,0xf(v0)
lw a0,-0x4(s0)
lbu v1,0x14(s0)
lw v0,0x10(s0)
sw a0,-0x1c(s6)
sw s0,-0x8(s0)
addiu s0,s0,0x20
sw zero,-0x24(s0)
sb zero,-0x20(s0)
sb v1,-0x4(s6)
sw v0,-0x8(s6)
lbu v0,-0xb(s0)
bne a1,s0,0x00224298
_sb v0,-0x3(s6)
lw s6,0x4(s8)
lw v0,0x20(sp)
addu s6,s6,v0
blez v0,0x00224374
_sw s6,0x4(s8)
or a1,s1,zero
lw t9,-0x7458(gp)
addiu s1,s1,0x20
jalr t9
_or a0,s2,zero
addiu s2,s2,0x20
lbu v1,-0x4(s1)
addiu s7,s7,-0x1
lw v0,-0x8(s1)
lw gp,0x10(sp)
sb v1,-0x4(s2)
sw v0,-0x8(s2)
lbu v0,-0x3(s1)
bne s7,zero,0x00224338
_sb v0,-0x3(s2)
lw ra,0x4c(sp)
lw s8,0x48(sp)
lw s7,0x44(sp)
lw s6,0x40(sp)
lw s5,0x3c(sp)
lw s4,0x38(sp)
lw s3,0x34(sp)
lw s2,0x30(sp)
lw s1,0x2c(sp)
lw s0,0x28(sp)
jr ra
_addiu sp,sp,0x50
lw v1,0x0(a0)
lui a1,0x7ff
lw v0,0x1c(sp)
ori a1,a1,0xffff
subu v0,v0,v1
sra v0,v0,0x5
subu a0,a1,v0
sltu a0,a0,s6
bne a0,zero,0x002249a8
_lw a0,-0x7f64(gp)
sltu a0,s6,v0
movn s6,v0,a0
addu s6,s6,v0
sltu v0,s6,v0
bne v0,zero,0x0022470c
_lui v0,0x800
sltu v0,s6,v0
beq v0,zero,0x00224710
_li a0,-0x20
beq s6,zero,0x00224414
_or s2,zero,zero
sll a0,s6,0x5
lw t9,-0x7e94(gp)
jalr t9
_nop
lw gp,0x10(sp)
or s2,v0,zero
lw v1,0x0(s8)
beq v1,s0,0x002249a0
_addiu v0,v1,0x8
addiu s4,s0,-0x20
subu s4,s4,v1
addiu a3,s0,0x8
srl s4,s4,0x5
b 0x00224478
_or v1,s2,zero
sw a1,0x0(v1)
addiu v1,v1,0x20
lw a0,0x0(v0)
lbu a1,0x14(v0)
sw a0,-0x18(v1)
lw a2,-0x4(v0)
lw a0,0x10(v0)
sw a2,-0x1c(v1)
sw v0,-0x8(v0)
addiu v0,v0,0x20
sw zero,-0x24(v0)
sb zero,-0x20(v0)
sb a1,-0x4(v1)
sw a0,-0x8(v1)
lbu a0,-0xb(v0)
beq v0,a3,0x00224504
_sb a0,-0x3(v1)
addiu a0,v1,0x8
sw a0,0x0(v1)
lw a1,-0x8(v0)
bne a1,v0,0x00224434
_nop
lwl t1,0x0(v0)
addiu v1,v1,0x20
lwl t0,0x4(v0)
lwl a2,0x8(v0)
lwl a1,0xc(v0)
lwr t1,0x3(v0)
lwr t0,0x7(v0)
lwr a2,0xb(v0)
lwr a1,0xf(v0)
swl t1,0x0(a0)
swr t1,0x3(a0)
swl t0,0x4(a0)
swr t0,0x7(a0)
swl a2,0x8(a0)
swr a2,0xb(a0)
swl a1,0xc(a0)
swr a1,0xf(a0)
lw a2,-0x4(v0)
lbu a1,0x14(v0)
lw a0,0x10(v0)
sw a2,-0x1c(v1)
sw v0,-0x8(v0)
addiu v0,v0,0x20
sw zero,-0x24(v0)
sb zero,-0x20(v0)
sb a1,-0x4(v1)
sw a0,-0x8(v1)
lbu a0,-0xb(v0)
bne v0,a3,0x00224478
_sb a0,-0x3(v1)
addiu s4,s4,0x1
sll s4,s4,0x5
addu s4,s2,s4
lw v0,-0x7d44(gp)
or s1,s3,zero
or s3,s4,zero
sw v0,0x18(sp)
lw v0,0x0(s1)
or a3,zero,zero
lw a2,0x4(s1)
addiu v1,s3,0x8
lw t9,0x18(sp)
sll a3,a3,0x18
sw v1,0x0(s3)
or a1,v0,zero
addu a2,v0,a2
jalr t9
_or a0,s3,zero
lw a0,0x18(s1)
addiu s1,s1,0x20
addiu s3,s3,0x20
lw gp,0x10(sp)
lbu v1,-0x4(s1)
lbu v0,-0x3(s1)
sw a0,-0x8(s3)
sb v1,-0x4(s3)
bne s5,s1,0x00224520
_sb v0,-0x3(s3)
lw s1,0x4(s8)
beq s1,s0,0x00224678
_addiu v0,s0,0x28
subu s1,s1,s0
addiu s1,s1,-0x20
addiu s0,s0,0x8
srl t0,s1,0x5
addu s1,v0,s1
b 0x002245e0
_or v0,s3,zero
lw v1,0x0(s0)
addiu v0,v0,0x20
lw a2,-0x4(s0)
lw a1,0x10(s0)
sw a0,-0x20(v0)
sw v1,-0x18(v0)
sw s0,-0x8(s0)
addiu s0,s0,0x20
sw a2,-0x1c(v0)
sw a1,-0x8(v0)
lbu a0,-0xc(s0)
lbu v1,-0xb(s0)
sb a0,-0x4(v0)
sw zero,-0x24(s0)
sb zero,-0x20(s0)
beq s1,s0,0x00224668
_sb v1,-0x3(v0)
lw a0,-0x8(s0)
addiu v1,v0,0x8
bne a0,s0,0x0022459c
_sw v1,0x0(v0)
lwl a3,0x0(s0)
addiu v0,v0,0x20
lwl a2,0x4(s0)
lwl a1,0x8(s0)
lwl a0,0xc(s0)
lwr a3,0x3(s0)
lwr a2,0x7(s0)
lwr a1,0xb(s0)
lwr a0,0xf(s0)
swl a3,0x0(v1)
swr a3,0x3(v1)
swl a2,0x4(v1)
swr a2,0x7(v1)
swl a1,0x8(v1)
swr a1,0xb(v1)
swl a0,0xc(v1)
swr a0,0xf(v1)
sw s0,-0x8(s0)
addiu s0,s0,0x20
lw a2,-0x24(s0)
lw a1,-0x10(s0)
lbu a0,-0xc(s0)
lbu v1,-0xb(s0)
sw a2,-0x1c(v0)
sw a1,-0x8(v0)
sw zero,-0x24(s0)
sb zero,-0x20(s0)
sb a0,-0x4(v0)
bne s1,s0,0x002245e0
_sb v1,-0x3(v0)
addiu v0,t0,0x1
lw s1,0x4(s8)
sll v0,v0,0x5
addu s3,s3,v0
lw s0,0x0(s8)
beq s0,s1,0x002246b0
_nop
lw a0,0x0(s0)
addiu v0,s0,0x8
beq a0,v0,0x002246a0
_lw t9,-0x7f44(gp)
jalr t9
_nop
lw gp,0x10(sp)
addiu s0,s0,0x20
bne s0,s1,0x00224684
_nop
lw s1,0x0(s8)
beq s1,zero,0x002246c0
_lw t9,-0x7f44(gp)
jalr t9
_or a0,s1,zero
sll s6,s6,0x5
lw ra,0x4c(sp)
lw s7,0x44(sp)
lw s5,0x3c(sp)
lw s4,0x38(sp)
lw s1,0x2c(sp)
lw s0,0x28(sp)
sw s2,0x0(s8)
addu s2,s2,s6
sw s3,0x4(s8)
sw s2,0x8(s8)
lw s6,0x40(sp)
lw s8,0x48(sp)
lw s3,0x34(sp)
lw s2,0x30(sp)
jr ra
_addiu sp,sp,0x50
jr ra
_nop
li a0,-0x20
b 0x002243fc
_or s6,a1,zero
or a0,v1,zero
subu v1,v1,s4
addiu t0,a0,0x8
b 0x00224770
_addiu v0,v1,0x8
sw a2,0x0(a0)
addiu a0,a0,0x20
lw a1,0x0(v0)
lbu a2,0x14(v0)
sw a1,-0x18(a0)
lw a3,-0x4(v0)
lw a1,0x10(v0)
sw a3,-0x1c(a0)
sw v0,-0x8(v0)
addiu v0,v0,0x20
sw zero,-0x24(v0)
sb zero,-0x20(v0)
sb a2,-0x4(a0)
sw a1,-0x8(a0)
lbu a1,-0xb(v0)
beq t0,v0,0x002247fc
_sb a1,-0x3(a0)
addiu a1,a0,0x8
sw a1,0x0(a0)
lw a2,-0x8(v0)
bne a2,v0,0x0022472c
_nop
lwl t2,0x0(v0)
addiu a0,a0,0x20
lwl t1,0x4(v0)
lwl a3,0x8(v0)
lwl a2,0xc(v0)
lwr t2,0x3(v0)
lwr t1,0x7(v0)
lwr a3,0xb(v0)
lwr a2,0xf(v0)
swl t2,0x0(a1)
swr t2,0x3(a1)
swl t1,0x4(a1)
swr t1,0x7(a1)
swl a3,0x8(a1)
swr a3,0xb(a1)
swl a2,0xc(a1)
swr a2,0xf(a1)
lw a3,-0x4(v0)
lbu a2,0x14(v0)
lw a1,0x10(v0)
sw a3,-0x1c(a0)
sw v0,-0x8(v0)
addiu v0,v0,0x20
sw zero,-0x24(v0)
sb zero,-0x20(v0)
sb a2,-0x4(a0)
sw a1,-0x8(a0)
lbu a1,-0xb(v0)
bne t0,v0,0x00224770
_sb a1,-0x3(a0)
lw v0,0x4(s8)
subu s0,v1,s0
sra s5,s0,0x5
addu v0,v0,s4
blez s0,0x002248f8
_sw v0,0x4(s8)
lw v0,0x1c(sp)
addiu s0,v1,-0x18
li s7,0x1
b 0x00224884
_addiu s3,v0,-0x18
beq a0,s3,0x0022496c
_sw v0,-0x8(s3)
lw v1,-0x4(s0)
lw v0,0x0(s3)
sw v1,-0x4(s3)
lw v1,0x0(s0)
beq a0,zero,0x0022497c
_sw v1,0x0(s3)
sw a0,-0x8(s0)
sw v0,0x0(s0)
lw v0,-0x8(s0)
addiu s0,s0,-0x20
sw zero,0x1c(s0)
addiu s3,s3,-0x20
addiu s5,s5,-0x1
sb zero,0x0(v0)
lbu v1,0x34(s0)
lw v0,0x30(s0)
sb v1,0x34(s3)
sw v0,0x30(s3)
lbu v0,0x35(s0)
beq s5,zero,0x002248f8
_sb v0,0x35(s3)
lw v0,-0x8(s0)
bne v0,s0,0x00224828
_lw a0,-0x8(s3)
lw a2,-0x4(s0)
beq a2,zero,0x002248b8
_nop
beq a2,s7,0x00224984
_lw t9,-0x3a48(gp)
jalr t9
_or a1,s0,zero
lw gp,0x10(sp)
lw a0,-0x8(s3)
lw a2,-0x4(s0)
addu a0,a0,a2
sw a2,-0x4(s3)
addiu s0,s0,-0x20
addiu s3,s3,-0x20
sb zero,0x0(a0)
addiu s5,s5,-0x1
sw zero,0x1c(s0)
lw v0,0x18(s0)
sb zero,0x0(v0)
lbu v1,0x34(s0)
lw v0,0x30(s0)
sb v1,0x34(s3)
sw v0,0x30(s3)
lbu v0,0x35(s0)
bne s5,zero,0x00224884
_sb v0,0x35(s3)
blez s4,0x00224378
_lw ra,0x4c(sp)
or a1,s1,zero
lw t9,-0x7458(gp)
addiu s1,s1,0x20
jalr t9
_or a0,s2,zero
addiu s2,s2,0x20
lbu v1,-0x4(s1)
addiu s6,s6,-0x1
lw v0,-0x8(s1)
lw gp,0x10(sp)
sb v1,-0x4(s2)
sw v0,-0x8(s2)
lbu v0,-0x3(s1)
bne s6,zero,0x00224900
_sb v0,-0x3(s2)
lw ra,0x4c(sp)
lw s8,0x48(sp)
lw s7,0x44(sp)
lw s6,0x40(sp)
lw s5,0x3c(sp)
lw s4,0x38(sp)
lw s3,0x34(sp)
lw s2,0x30(sp)
lw s1,0x2c(sp)
lw s0,0x28(sp)
jr ra
_addiu sp,sp,0x50
lw v0,-0x4(s0)
sw v0,-0x4(s3)
lw v0,0x0(s0)
sw v0,0x0(s3)
b 0x00224850
_sw s0,-0x8(s0)
lb v0,0x0(s0)
sb v0,0x0(a0)
lw a0,-0x8(s3)
b 0x002248b8
_lw a2,-0x4(s0)
b 0x00224510
_or s4,s2,zero
lw t9,-0x7d50(gp)
jalr t9
_addiu a0,a0,-0x6b60
(translation_unit "/* void std::vector<gold::Version_expression, std::allocator<gold::Version_expression>\n   >::_M_range_insert<__normal_iterator<gold::Version_expression*,\n   std::vector<gold::Version_expression, std::allocator<gold::Version_expression> > >\n   >(__normal_iterator<gold::Version_expression*, std::vector<gold::Version_expression,\n   std::allocator<gold::Version_expression> > >, __normal_iterator<gold::Version_expression*,\n   std::vector<gold::Version_expression, std::allocator<gold::Version_expression> > >,\n   __normal_iterator<gold::Version_expression*, std::vector<gold::Version_expression,\n   std::allocator<gold::Version_expression> > >, std::forward_iterator_tag) */\n\nvoid std::vector<gold::Version_expression,std::allocator<gold::Version_expression>>::\n     _M_range_insert<__normal_iterator<gold::Version_expression*,std::vector<gold::Version_expression,std::allocator<gold::Version_expression>>>>\n               (undefined4 *param_1,undefined4 *param_2,int *param_3,int *param_4)\n\n{\n  undefined1 uVar1;\n  undefined1 uVar2;\n  code *pcVar3;\n  undefined *puVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  uint uVar7;\n  undefined4 *puVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  undefined4 *puVar11;\n  undefined4 *puVar12;\n  undefined4 uVar13;\n  undefined4 *puVar14;\n  undefined4 *puVar15;\n  int *piVar16;\n  int *piVar17;\n  int iVar18;\n  int iVar19;\n  uint uVar20;\n  uint uVar21;\n  \n  puVar4 = PTR__M_construct<char*>_0043248c;\n  if (param_3 == param_4) {\n    return;\n  }\n  puVar8 = (undefined4 *)param_1[1];\n  iVar18 = (int)param_4 - (int)param_3;\n  uVar20 = iVar18 >> 5;\n  if (uVar20 <= (uint)(param_1[2] - (int)puVar8 >> 5)) {\n    iVar5 = (int)puVar8 - (int)param_2;\n    uVar21 = iVar5 >> 5;\n    if (uVar20 < uVar21) {\n      puVar6 = (undefined4 *)((int)puVar8 + (8 - iVar18));\n      puVar12 = puVar8;\n      do {\n        while( true ) {\n          *puVar12 = puVar12 + 2;\n          if ((undefined4 *)puVar6[-2] != puVar6) break;\n          uVar13 = puVar6[1];\n          uVar10 = puVar6[2];\n          uVar9 = puVar6[3];\n          puVar12[2] = *puVar6;\n          puVar12[3] = uVar13;\n          puVar12[4] = uVar10;\n          puVar12[5] = uVar9;\n          uVar1 = *(undefined1 *)(puVar6 + 5);\n          uVar9 = puVar6[4];\n          puVar12[1] = puVar6[-1];\n          puVar6[-2] = puVar6;\n          puVar14 = puVar6 + 8;\n          puVar6[-1] = 0;\n          *(undefined1 *)puVar6 = 0;\n          *(undefined1 *)(puVar12 + 7) = uVar1;\n          puVar12[6] = uVar9;\n          *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar14;\n          puVar12 = puVar12 + 8;\n          if (puVar8 + 2 == puVar14) goto LAB_002247fc;\n        }\n        *puVar12 = (undefined4 *)puVar6[-2];\n        uVar1 = *(undefined1 *)(puVar6 + 5);\n        puVar12[2] = *puVar6;\n        uVar9 = puVar6[4];\n        puVar12[1] = puVar6[-1];\n        puVar6[-2] = puVar6;\n        puVar14 = puVar6 + 8;\n        puVar6[-1] = 0;\n        *(undefined1 *)puVar6 = 0;\n        *(undefined1 *)(puVar12 + 7) = uVar1;\n        puVar12[6] = uVar9;\n        *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n        puVar6 = puVar14;\n        puVar12 = puVar12 + 8;\n      } while (puVar8 + 2 != puVar14);\nLAB_002247fc:\n      iVar5 = (int)puVar8 + (-(int)param_2 - iVar18);\n      iVar19 = iVar5 >> 5;\n      param_1[1] = param_1[1] + iVar18;\n      if (0 < iVar5) {\n        puVar6 = (undefined4 *)((int)puVar8 + (-0x18 - iVar18));\n        puVar8 = puVar8 + -6;\n        do {\n          while( true ) {\n            puVar12 = (undefined4 *)puVar8[-2];\n            if ((undefined4 *)puVar6[-2] != puVar6) break;\n            iVar5 = puVar6[-1];\n            if (iVar5 != 0) {\n              if (iVar5 == 1) {\n                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n            }\n            puVar8[-1] = iVar5;\n            *(undefined1 *)((int)puVar12 + iVar5) = 0;\n            iVar19 = iVar19 + -1;\n            puVar6[-1] = 0;\n            *(undefined1 *)puVar6[-2] = 0;\n            uVar9 = puVar6[4];\n            *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n            puVar8[4] = uVar9;\n            *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n            puVar6 = puVar6 + -8;\n            puVar8 = puVar8 + -8;\n            if (iVar19 == 0) goto LAB_002248f8;\n          }\n          puVar8[-2] = (undefined4 *)puVar6[-2];\n          if (puVar12 == puVar8) {\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\nLAB_0022497c:\n            puVar6[-2] = puVar6;\n          }\n          else {\n            uVar9 = *puVar8;\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\n            if (puVar12 == (undefined4 *)0x0) goto LAB_0022497c;\n            puVar6[-2] = puVar12;\n            *puVar6 = uVar9;\n          }\n          puVar6[-1] = 0;\n          iVar19 = iVar19 + -1;\n          *(undefined1 *)puVar6[-2] = 0;\n          uVar9 = puVar6[4];\n          *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n          puVar8[4] = uVar9;\n          *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar6 + -8;\n          puVar8 = puVar8 + -8;\n        } while (iVar19 != 0);\n      }\nLAB_002248f8:\n      if (0 < iVar18) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar20 = uVar20 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar20 != 0);\n        return;\n      }\n    }\n    else {\n      piVar16 = (int *)((int)param_3 + iVar5);\n      puVar6 = puVar8;\n      if (piVar16 != param_4) {\n        do {\n          *puVar6 = puVar6 + 2;\n                    /* try { // try from 002241f8 to 002241ff has its CatchHandler @ 002249d8 */\n          (*(code *)puVar4)(puVar6,*piVar16,*piVar16 + piVar16[1],0);\n          piVar17 = piVar16 + 8;\n          iVar18 = piVar16[6];\n          *(undefined1 *)(puVar6 + 7) = *(undefined1 *)(piVar16 + 7);\n          puVar6[6] = iVar18;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)piVar16 + 0x1d);\n          piVar16 = piVar17;\n          puVar6 = puVar6 + 8;\n        } while (param_4 != piVar17);\n        puVar6 = (undefined4 *)param_1[1];\n      }\n      puVar6 = puVar6 + (uVar20 - uVar21) * 8;\n      param_1[1] = puVar6;\n      if (puVar8 != param_2) {\n        puVar12 = param_2 + 2;\n        do {\n          while( true ) {\n            *puVar6 = puVar6 + 2;\n            if (puVar12 != (undefined4 *)puVar12[-2]) break;\n            uVar13 = puVar12[1];\n            uVar10 = puVar12[2];\n            uVar9 = puVar12[3];\n            puVar6[2] = *puVar12;\n            puVar6[3] = uVar13;\n            puVar6[4] = uVar10;\n            puVar6[5] = uVar9;\n            uVar1 = *(undefined1 *)(puVar12 + 5);\n            uVar9 = puVar12[4];\n            puVar6[1] = puVar12[-1];\n            puVar12[-2] = puVar12;\n            puVar14 = puVar12 + 8;\n            puVar12[-1] = 0;\n            *(undefined1 *)puVar12 = 0;\n            *(undefined1 *)(puVar6 + 7) = uVar1;\n            puVar6[6] = uVar9;\n            *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n            puVar12 = puVar14;\n            puVar6 = puVar6 + 8;\n            if (puVar8 + 2 == puVar14) goto LAB_00224324;\n          }\n          *puVar6 = (undefined4 *)puVar12[-2];\n          uVar1 = *(undefined1 *)(puVar12 + 5);\n          puVar6[2] = *puVar12;\n          uVar9 = puVar12[4];\n          puVar6[1] = puVar12[-1];\n          puVar12[-2] = puVar12;\n          puVar14 = puVar12 + 8;\n          puVar12[-1] = 0;\n          *(undefined1 *)puVar12 = 0;\n          *(undefined1 *)(puVar6 + 7) = uVar1;\n          puVar6[6] = uVar9;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n          puVar12 = puVar14;\n          puVar6 = puVar6 + 8;\n        } while (puVar8 + 2 != puVar14);\nLAB_00224324:\n        puVar6 = (undefined4 *)param_1[1];\n      }\n      param_1[1] = (int)puVar6 + iVar5;\n      if (0 < iVar5) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar21 = uVar21 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar21 != 0);\n      }\n    }\n    return;\n  }\n  puVar6 = (undefined4 *)*param_1;\n  uVar21 = 0x7ffffff;\n  uVar7 = (int)puVar8 - (int)puVar6 >> 5;\n  if (0x7ffffff - uVar7 < uVar20) {\n    (*(code *)PTR___throw_length_error_00432480)(PTR_DAT_0043226c + -0x6b60);\n    return;\n  }\n  if (uVar20 < uVar7) {\n    uVar20 = uVar7;\n  }\n  uVar20 = uVar20 + uVar7;\n  if ((uVar20 < uVar7) || (0x7ffffff < uVar20)) {\n    iVar18 = -0x20;\n  }\n  else {\n    puVar8 = (undefined4 *)0x0;\n    uVar21 = uVar20;\n    if (uVar20 == 0) goto LAB_00224414;\n    iVar18 = uVar20 * 0x20;\n  }\n  puVar8 = (undefined4 *)(*(code *)PTR_operator_new_0043233c)(iVar18);\n  puVar6 = (undefined4 *)*param_1;\nLAB_00224414:\n  puVar12 = puVar8;\n  pcVar3 = (code *)PTR__M_construct<char*>_0043248c;\n  if (puVar6 != param_2) {\n    puVar12 = puVar6 + 2;\n    puVar14 = puVar8;\n    do {\n      while( true ) {\n        *puVar14 = puVar14 + 2;\n        if ((undefined4 *)puVar12[-2] != puVar12) break;\n        uVar13 = puVar12[1];\n        uVar10 = puVar12[2];\n        uVar9 = puVar12[3];\n        puVar14[2] = *puVar12;\n        puVar14[3] = uVar13;\n        puVar14[4] = uVar10;\n        puVar14[5] = uVar9;\n        uVar1 = *(undefined1 *)(puVar12 + 5);\n        uVar9 = puVar12[4];\n        puVar14[1] = puVar12[-1];\n        puVar12[-2] = puVar12;\n        puVar15 = puVar12 + 8;\n        puVar12[-1] = 0;\n        *(undefined1 *)puVar12 = 0;\n        *(undefined1 *)(puVar14 + 7) = uVar1;\n        puVar14[6] = uVar9;\n        *(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n        puVar12 = puVar15;\n        puVar14 = puVar14 + 8;\n        if (puVar15 == param_2 + 2) goto LAB_00224504;\n      }\n      *puVar14 = (undefined4 *)puVar12[-2];\n      uVar1 = *(undefined1 *)(puVar12 + 5);\n      puVar14[2] = *puVar12;\n      uVar9 = puVar12[4];\n      puVar14[1] = puVar12[-1];\n      puVar12[-2] = puVar12;\n      puVar15 = puVar12 + 8;\n      puVar12[-1] = 0;\n      *(undefined1 *)puVar12 = 0;\n      *(undefined1 *)(puVar14 + 7) = uVar1;\n      puVar14[6] = uVar9;\n      *(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n      puVar12 = puVar15;\n      puVar14 = puVar14 + 8;\n    } while (puVar15 != param_2 + 2);\nLAB_00224504:\n    puVar12 = puVar8 + (((uint)((int)param_2 + (-0x20 - (int)puVar6)) >> 5) + 1) * 8;\n    pcVar3 = (code *)PTR__M_construct<char*>_0043248c;\n  }\n  do {\n    iVar18 = *param_3;\n    iVar5 = param_3[1];\n    *puVar12 = puVar12 + 2;\n                    /* try { // try from 00224544 to 0022454b has its CatchHandler @ 002249b4 */\n    (*pcVar3)(puVar12,iVar18,iVar18 + iVar5,0);\n    piVar16 = param_3 + 8;\n    puVar6 = puVar12 + 8;\n    uVar1 = *(undefined1 *)(param_3 + 7);\n    uVar2 = *(undefined1 *)((int)param_3 + 0x1d);\n    puVar12[6] = param_3[6];\n    *(undefined1 *)(puVar12 + 7) = uVar1;\n    *(undefined1 *)((int)puVar12 + 0x1d) = uVar2;\n    param_3 = piVar16;\n    puVar12 = puVar6;\n  } while (param_4 != piVar16);\n  puVar12 = (undefined4 *)param_1[1];\n  if (puVar12 != param_2) {\n    uVar20 = (int)puVar12 + (-0x20 - (int)param_2);\n    puVar15 = (undefined4 *)((int)param_2 + uVar20 + 0x28);\n    puVar12 = puVar6;\n    puVar14 = param_2 + 2;\n    do {\n      while( true ) {\n        puVar11 = (undefined4 *)puVar14[-2];\n        *puVar12 = puVar12 + 2;\n        if (puVar11 != puVar14) break;\n        uVar13 = puVar14[1];\n        uVar10 = puVar14[2];\n        uVar9 = puVar14[3];\n        puVar12[2] = *puVar14;\n        puVar12[3] = uVar13;\n        puVar12[4] = uVar10;\n        puVar12[5] = uVar9;\n        puVar14[-2] = puVar14;\n        puVar11 = puVar14 + 8;\n        uVar9 = puVar14[4];\n        uVar1 = *(undefined1 *)(puVar14 + 5);\n        uVar2 = *(undefined1 *)((int)puVar14 + 0x15);\n        puVar12[1] = puVar14[-1];\n        puVar12[6] = uVar9;\n        puVar14[-1] = 0;\n        *(undefined1 *)puVar14 = 0;\n        *(undefined1 *)(puVar12 + 7) = uVar1;\n        *(undefined1 *)((int)puVar12 + 0x1d) = uVar2;\n        puVar12 = puVar12 + 8;\n        puVar14 = puVar11;\n        if (puVar15 == puVar11) goto LAB_00224668;\n      }\n      uVar9 = *puVar14;\n      uVar13 = puVar14[-1];\n      uVar10 = puVar14[4];\n      *puVar12 = puVar11;\n      puVar12[2] = uVar9;\n      puVar14[-2] = puVar14;\n      puVar11 = puVar14 + 8;\n      puVar12[1] = uVar13;\n      puVar12[6] = uVar10;\n      uVar1 = *(undefined1 *)((int)puVar14 + 0x15);\n      *(undefined1 *)(puVar12 + 7) = *(undefined1 *)(puVar14 + 5);\n      puVar14[-1] = 0;\n      *(undefined1 *)puVar14 = 0;\n      *(undefined1 *)((int)puVar12 + 0x1d) = uVar1;\n      puVar12 = puVar12 + 8;\n      puVar14 = puVar11;\n    } while (puVar15 != puVar11);\nLAB_00224668:\n    puVar12 = (undefined4 *)param_1[1];\n    puVar6 = puVar6 + ((uVar20 >> 5) + 1) * 8;\n  }\n  puVar14 = (undefined4 *)*param_1;\n  if (puVar14 != puVar12) {\n    do {\n      if ((undefined4 *)*puVar14 != puVar14 + 2) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      puVar14 = puVar14 + 8;\n    } while (puVar14 != puVar12);\n    puVar12 = (undefined4 *)*param_1;\n  }\n  if (puVar12 != (undefined4 *)0x0) {\n    (*(code *)PTR_operator_delete_0043228c)(puVar12);\n  }\n  *param_1 = puVar8;\n  param_1[1] = puVar6;\n  param_1[2] = puVar8 + uVar21 * 8;\n  return;\n}\n\n" comment (declaration "void std::vector<gold::Version_expression,std::allocator<gold::Version_expression>>::\n     _M_range_insert<__normal_iterator<gold::Version_expression*,std::vector<gold::Version_expression,std::allocator<gold::Version_expression>>>>\n               (undefined4 *param_1,undefined4 *param_2,int *param_3,int *param_4)\n\n{\n  undefined1 uVar1;" primitive_type (ERROR "std::vector<gold::" identifier : : identifier < identifier : :) identifier , (ERROR "std::allocator<gold::Version_expression>>::\n     _M_range_insert<__normal_iterator<gold::" identifier : : identifier < identifier : : identifier >> : : identifier < identifier < identifier : :) identifier (ERROR "*" *) , (ERROR "std::vector<gold::" identifier : : identifier < identifier : :) identifier , (ERROR "std::allocator<gold::Version_expression>>>>\n               (undefined4 *param_1,undefined4 *param_2,int *param_3,int *param_4)\n\n{\n  undefined1" identifier : : identifier < identifier : : (function_declarator "Version_expression>>>>\n               (undefined4 *param_1,undefined4 *param_2,int *param_3,int *param_4)" identifier (ERROR ">>>>" >> >>) (parameter_list "(undefined4 *param_1,undefined4 *param_2,int *param_3,int *param_4)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) ))) { identifier) identifier ;) (declaration "undefined1 uVar2;" type_identifier identifier ;) (declaration "code *pcVar3;" type_identifier (pointer_declarator "*pcVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "undefined4 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined4 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined4 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "uint uVar21;" type_identifier identifier ;) (expression_statement "puVar4 = PTR__M_construct<char*>_0043248c;" (assignment_expression "puVar4 = PTR__M_construct<char*>_0043248c" identifier = (binary_expression "PTR__M_construct<char*>_0043248c" (binary_expression "PTR__M_construct<char" identifier < identifier) (ERROR "*" *) > identifier)) ;) (if_statement "if (param_3 == param_4) {\n    return;\n  }" if (parenthesized_expression "(param_3 == param_4)" ( (binary_expression "param_3 == param_4" identifier == identifier) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "puVar8 = (undefined4 *)param_1[1];" (assignment_expression "puVar8 = (undefined4 *)param_1[1]" identifier = (cast_expression "(undefined4 *)param_1[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (expression_statement "iVar18 = (int)param_4 - (int)param_3;" (assignment_expression "iVar18 = (int)param_4 - (int)param_3" identifier = (binary_expression "(int)param_4 - (int)param_3" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar20 = iVar18 >> 5;" (assignment_expression "uVar20 = iVar18 >> 5" identifier = (binary_expression "iVar18 >> 5" identifier >> number_literal)) ;) (if_statement "if (uVar20 <= (uint)(param_1[2] - (int)puVar8 >> 5)) {\n    iVar5 = (int)puVar8 - (int)param_2;\n    uVar21 = iVar5 >> 5;\n    if (uVar20 < uVar21) {\n      puVar6 = (undefined4 *)((int)puVar8 + (8 - iVar18));\n      puVar12 = puVar8;\n      do {\n        while( true ) {\n          *puVar12 = puVar12 + 2;\n          if ((undefined4 *)puVar6[-2] != puVar6) break;\n          uVar13 = puVar6[1];\n          uVar10 = puVar6[2];\n          uVar9 = puVar6[3];\n          puVar12[2] = *puVar6;\n          puVar12[3] = uVar13;\n          puVar12[4] = uVar10;\n          puVar12[5] = uVar9;\n          uVar1 = *(undefined1 *)(puVar6 + 5);\n          uVar9 = puVar6[4];\n          puVar12[1] = puVar6[-1];\n          puVar6[-2] = puVar6;\n          puVar14 = puVar6 + 8;\n          puVar6[-1] = 0;\n          *(undefined1 *)puVar6 = 0;\n          *(undefined1 *)(puVar12 + 7) = uVar1;\n          puVar12[6] = uVar9;\n          *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar14;\n          puVar12 = puVar12 + 8;\n          if (puVar8 + 2 == puVar14) goto LAB_002247fc;\n        }\n        *puVar12 = (undefined4 *)puVar6[-2];\n        uVar1 = *(undefined1 *)(puVar6 + 5);\n        puVar12[2] = *puVar6;\n        uVar9 = puVar6[4];\n        puVar12[1] = puVar6[-1];\n        puVar6[-2] = puVar6;\n        puVar14 = puVar6 + 8;\n        puVar6[-1] = 0;\n        *(undefined1 *)puVar6 = 0;\n        *(undefined1 *)(puVar12 + 7) = uVar1;\n        puVar12[6] = uVar9;\n        *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n        puVar6 = puVar14;\n        puVar12 = puVar12 + 8;\n      } while (puVar8 + 2 != puVar14);\nLAB_002247fc:\n      iVar5 = (int)puVar8 + (-(int)param_2 - iVar18);\n      iVar19 = iVar5 >> 5;\n      param_1[1] = param_1[1] + iVar18;\n      if (0 < iVar5) {\n        puVar6 = (undefined4 *)((int)puVar8 + (-0x18 - iVar18));\n        puVar8 = puVar8 + -6;\n        do {\n          while( true ) {\n            puVar12 = (undefined4 *)puVar8[-2];\n            if ((undefined4 *)puVar6[-2] != puVar6) break;\n            iVar5 = puVar6[-1];\n            if (iVar5 != 0) {\n              if (iVar5 == 1) {\n                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n            }\n            puVar8[-1] = iVar5;\n            *(undefined1 *)((int)puVar12 + iVar5) = 0;\n            iVar19 = iVar19 + -1;\n            puVar6[-1] = 0;\n            *(undefined1 *)puVar6[-2] = 0;\n            uVar9 = puVar6[4];\n            *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n            puVar8[4] = uVar9;\n            *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n            puVar6 = puVar6 + -8;\n            puVar8 = puVar8 + -8;\n            if (iVar19 == 0) goto LAB_002248f8;\n          }\n          puVar8[-2] = (undefined4 *)puVar6[-2];\n          if (puVar12 == puVar8) {\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\nLAB_0022497c:\n            puVar6[-2] = puVar6;\n          }\n          else {\n            uVar9 = *puVar8;\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\n            if (puVar12 == (undefined4 *)0x0) goto LAB_0022497c;\n            puVar6[-2] = puVar12;\n            *puVar6 = uVar9;\n          }\n          puVar6[-1] = 0;\n          iVar19 = iVar19 + -1;\n          *(undefined1 *)puVar6[-2] = 0;\n          uVar9 = puVar6[4];\n          *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n          puVar8[4] = uVar9;\n          *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar6 + -8;\n          puVar8 = puVar8 + -8;\n        } while (iVar19 != 0);\n      }\nLAB_002248f8:\n      if (0 < iVar18) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar20 = uVar20 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar20 != 0);\n        return;\n      }\n    }\n    else {\n      piVar16 = (int *)((int)param_3 + iVar5);\n      puVar6 = puVar8;\n      if (piVar16 != param_4) {\n        do {\n          *puVar6 = puVar6 + 2;\n                    /* try { // try from 002241f8 to 002241ff has its CatchHandler @ 002249d8 */\n          (*(code *)puVar4)(puVar6,*piVar16,*piVar16 + piVar16[1],0);\n          piVar17 = piVar16 + 8;\n          iVar18 = piVar16[6];\n          *(undefined1 *)(puVar6 + 7) = *(undefined1 *)(piVar16 + 7);\n          puVar6[6] = iVar18;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)piVar16 + 0x1d);\n          piVar16 = piVar17;\n          puVar6 = puVar6 + 8;\n        } while (param_4 != piVar17);\n        puVar6 = (undefined4 *)param_1[1];\n      }\n      puVar6 = puVar6 + (uVar20 - uVar21) * 8;\n      param_1[1] = puVar6;\n      if (puVar8 != param_2) {\n        puVar12 = param_2 + 2;\n        do {\n          while( true ) {\n            *puVar6 = puVar6 + 2;\n            if (puVar12 != (undefined4 *)puVar12[-2]) break;\n            uVar13 = puVar12[1];\n            uVar10 = puVar12[2];\n            uVar9 = puVar12[3];\n            puVar6[2] = *puVar12;\n            puVar6[3] = uVar13;\n            puVar6[4] = uVar10;\n            puVar6[5] = uVar9;\n            uVar1 = *(undefined1 *)(puVar12 + 5);\n            uVar9 = puVar12[4];\n            puVar6[1] = puVar12[-1];\n            puVar12[-2] = puVar12;\n            puVar14 = puVar12 + 8;\n            puVar12[-1] = 0;\n            *(undefined1 *)puVar12 = 0;\n            *(undefined1 *)(puVar6 + 7) = uVar1;\n            puVar6[6] = uVar9;\n            *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n            puVar12 = puVar14;\n            puVar6 = puVar6 + 8;\n            if (puVar8 + 2 == puVar14) goto LAB_00224324;\n          }\n          *puVar6 = (undefined4 *)puVar12[-2];\n          uVar1 = *(undefined1 *)(puVar12 + 5);\n          puVar6[2] = *puVar12;\n          uVar9 = puVar12[4];\n          puVar6[1] = puVar12[-1];\n          puVar12[-2] = puVar12;\n          puVar14 = puVar12 + 8;\n          puVar12[-1] = 0;\n          *(undefined1 *)puVar12 = 0;\n          *(undefined1 *)(puVar6 + 7) = uVar1;\n          puVar6[6] = uVar9;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n          puVar12 = puVar14;\n          puVar6 = puVar6 + 8;\n        } while (puVar8 + 2 != puVar14);\nLAB_00224324:\n        puVar6 = (undefined4 *)param_1[1];\n      }\n      param_1[1] = (int)puVar6 + iVar5;\n      if (0 < iVar5) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar21 = uVar21 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar21 != 0);\n      }\n    }\n    return;\n  }" if (parenthesized_expression "(uVar20 <= (uint)(param_1[2] - (int)puVar8 >> 5))" ( (binary_expression "uVar20 <= (uint)(param_1[2] - (int)puVar8 >> 5)" identifier <= (call_expression "(uint)(param_1[2] - (int)puVar8 >> 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_1[2] - (int)puVar8 >> 5)" ( (binary_expression "param_1[2] - (int)puVar8 >> 5" (binary_expression "param_1[2] - (int)puVar8" (subscript_expression "param_1[2]" identifier [ number_literal ]) - (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )))) )) (compound_statement "{\n    iVar5 = (int)puVar8 - (int)param_2;\n    uVar21 = iVar5 >> 5;\n    if (uVar20 < uVar21) {\n      puVar6 = (undefined4 *)((int)puVar8 + (8 - iVar18));\n      puVar12 = puVar8;\n      do {\n        while( true ) {\n          *puVar12 = puVar12 + 2;\n          if ((undefined4 *)puVar6[-2] != puVar6) break;\n          uVar13 = puVar6[1];\n          uVar10 = puVar6[2];\n          uVar9 = puVar6[3];\n          puVar12[2] = *puVar6;\n          puVar12[3] = uVar13;\n          puVar12[4] = uVar10;\n          puVar12[5] = uVar9;\n          uVar1 = *(undefined1 *)(puVar6 + 5);\n          uVar9 = puVar6[4];\n          puVar12[1] = puVar6[-1];\n          puVar6[-2] = puVar6;\n          puVar14 = puVar6 + 8;\n          puVar6[-1] = 0;\n          *(undefined1 *)puVar6 = 0;\n          *(undefined1 *)(puVar12 + 7) = uVar1;\n          puVar12[6] = uVar9;\n          *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar14;\n          puVar12 = puVar12 + 8;\n          if (puVar8 + 2 == puVar14) goto LAB_002247fc;\n        }\n        *puVar12 = (undefined4 *)puVar6[-2];\n        uVar1 = *(undefined1 *)(puVar6 + 5);\n        puVar12[2] = *puVar6;\n        uVar9 = puVar6[4];\n        puVar12[1] = puVar6[-1];\n        puVar6[-2] = puVar6;\n        puVar14 = puVar6 + 8;\n        puVar6[-1] = 0;\n        *(undefined1 *)puVar6 = 0;\n        *(undefined1 *)(puVar12 + 7) = uVar1;\n        puVar12[6] = uVar9;\n        *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n        puVar6 = puVar14;\n        puVar12 = puVar12 + 8;\n      } while (puVar8 + 2 != puVar14);\nLAB_002247fc:\n      iVar5 = (int)puVar8 + (-(int)param_2 - iVar18);\n      iVar19 = iVar5 >> 5;\n      param_1[1] = param_1[1] + iVar18;\n      if (0 < iVar5) {\n        puVar6 = (undefined4 *)((int)puVar8 + (-0x18 - iVar18));\n        puVar8 = puVar8 + -6;\n        do {\n          while( true ) {\n            puVar12 = (undefined4 *)puVar8[-2];\n            if ((undefined4 *)puVar6[-2] != puVar6) break;\n            iVar5 = puVar6[-1];\n            if (iVar5 != 0) {\n              if (iVar5 == 1) {\n                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n            }\n            puVar8[-1] = iVar5;\n            *(undefined1 *)((int)puVar12 + iVar5) = 0;\n            iVar19 = iVar19 + -1;\n            puVar6[-1] = 0;\n            *(undefined1 *)puVar6[-2] = 0;\n            uVar9 = puVar6[4];\n            *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n            puVar8[4] = uVar9;\n            *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n            puVar6 = puVar6 + -8;\n            puVar8 = puVar8 + -8;\n            if (iVar19 == 0) goto LAB_002248f8;\n          }\n          puVar8[-2] = (undefined4 *)puVar6[-2];\n          if (puVar12 == puVar8) {\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\nLAB_0022497c:\n            puVar6[-2] = puVar6;\n          }\n          else {\n            uVar9 = *puVar8;\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\n            if (puVar12 == (undefined4 *)0x0) goto LAB_0022497c;\n            puVar6[-2] = puVar12;\n            *puVar6 = uVar9;\n          }\n          puVar6[-1] = 0;\n          iVar19 = iVar19 + -1;\n          *(undefined1 *)puVar6[-2] = 0;\n          uVar9 = puVar6[4];\n          *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n          puVar8[4] = uVar9;\n          *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar6 + -8;\n          puVar8 = puVar8 + -8;\n        } while (iVar19 != 0);\n      }\nLAB_002248f8:\n      if (0 < iVar18) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar20 = uVar20 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar20 != 0);\n        return;\n      }\n    }\n    else {\n      piVar16 = (int *)((int)param_3 + iVar5);\n      puVar6 = puVar8;\n      if (piVar16 != param_4) {\n        do {\n          *puVar6 = puVar6 + 2;\n                    /* try { // try from 002241f8 to 002241ff has its CatchHandler @ 002249d8 */\n          (*(code *)puVar4)(puVar6,*piVar16,*piVar16 + piVar16[1],0);\n          piVar17 = piVar16 + 8;\n          iVar18 = piVar16[6];\n          *(undefined1 *)(puVar6 + 7) = *(undefined1 *)(piVar16 + 7);\n          puVar6[6] = iVar18;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)piVar16 + 0x1d);\n          piVar16 = piVar17;\n          puVar6 = puVar6 + 8;\n        } while (param_4 != piVar17);\n        puVar6 = (undefined4 *)param_1[1];\n      }\n      puVar6 = puVar6 + (uVar20 - uVar21) * 8;\n      param_1[1] = puVar6;\n      if (puVar8 != param_2) {\n        puVar12 = param_2 + 2;\n        do {\n          while( true ) {\n            *puVar6 = puVar6 + 2;\n            if (puVar12 != (undefined4 *)puVar12[-2]) break;\n            uVar13 = puVar12[1];\n            uVar10 = puVar12[2];\n            uVar9 = puVar12[3];\n            puVar6[2] = *puVar12;\n            puVar6[3] = uVar13;\n            puVar6[4] = uVar10;\n            puVar6[5] = uVar9;\n            uVar1 = *(undefined1 *)(puVar12 + 5);\n            uVar9 = puVar12[4];\n            puVar6[1] = puVar12[-1];\n            puVar12[-2] = puVar12;\n            puVar14 = puVar12 + 8;\n            puVar12[-1] = 0;\n            *(undefined1 *)puVar12 = 0;\n            *(undefined1 *)(puVar6 + 7) = uVar1;\n            puVar6[6] = uVar9;\n            *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n            puVar12 = puVar14;\n            puVar6 = puVar6 + 8;\n            if (puVar8 + 2 == puVar14) goto LAB_00224324;\n          }\n          *puVar6 = (undefined4 *)puVar12[-2];\n          uVar1 = *(undefined1 *)(puVar12 + 5);\n          puVar6[2] = *puVar12;\n          uVar9 = puVar12[4];\n          puVar6[1] = puVar12[-1];\n          puVar12[-2] = puVar12;\n          puVar14 = puVar12 + 8;\n          puVar12[-1] = 0;\n          *(undefined1 *)puVar12 = 0;\n          *(undefined1 *)(puVar6 + 7) = uVar1;\n          puVar6[6] = uVar9;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n          puVar12 = puVar14;\n          puVar6 = puVar6 + 8;\n        } while (puVar8 + 2 != puVar14);\nLAB_00224324:\n        puVar6 = (undefined4 *)param_1[1];\n      }\n      param_1[1] = (int)puVar6 + iVar5;\n      if (0 < iVar5) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar21 = uVar21 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar21 != 0);\n      }\n    }\n    return;\n  }" { (expression_statement "iVar5 = (int)puVar8 - (int)param_2;" (assignment_expression "iVar5 = (int)puVar8 - (int)param_2" identifier = (binary_expression "(int)puVar8 - (int)param_2" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar21 = iVar5 >> 5;" (assignment_expression "uVar21 = iVar5 >> 5" identifier = (binary_expression "iVar5 >> 5" identifier >> number_literal)) ;) (if_statement "if (uVar20 < uVar21) {\n      puVar6 = (undefined4 *)((int)puVar8 + (8 - iVar18));\n      puVar12 = puVar8;\n      do {\n        while( true ) {\n          *puVar12 = puVar12 + 2;\n          if ((undefined4 *)puVar6[-2] != puVar6) break;\n          uVar13 = puVar6[1];\n          uVar10 = puVar6[2];\n          uVar9 = puVar6[3];\n          puVar12[2] = *puVar6;\n          puVar12[3] = uVar13;\n          puVar12[4] = uVar10;\n          puVar12[5] = uVar9;\n          uVar1 = *(undefined1 *)(puVar6 + 5);\n          uVar9 = puVar6[4];\n          puVar12[1] = puVar6[-1];\n          puVar6[-2] = puVar6;\n          puVar14 = puVar6 + 8;\n          puVar6[-1] = 0;\n          *(undefined1 *)puVar6 = 0;\n          *(undefined1 *)(puVar12 + 7) = uVar1;\n          puVar12[6] = uVar9;\n          *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar14;\n          puVar12 = puVar12 + 8;\n          if (puVar8 + 2 == puVar14) goto LAB_002247fc;\n        }\n        *puVar12 = (undefined4 *)puVar6[-2];\n        uVar1 = *(undefined1 *)(puVar6 + 5);\n        puVar12[2] = *puVar6;\n        uVar9 = puVar6[4];\n        puVar12[1] = puVar6[-1];\n        puVar6[-2] = puVar6;\n        puVar14 = puVar6 + 8;\n        puVar6[-1] = 0;\n        *(undefined1 *)puVar6 = 0;\n        *(undefined1 *)(puVar12 + 7) = uVar1;\n        puVar12[6] = uVar9;\n        *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n        puVar6 = puVar14;\n        puVar12 = puVar12 + 8;\n      } while (puVar8 + 2 != puVar14);\nLAB_002247fc:\n      iVar5 = (int)puVar8 + (-(int)param_2 - iVar18);\n      iVar19 = iVar5 >> 5;\n      param_1[1] = param_1[1] + iVar18;\n      if (0 < iVar5) {\n        puVar6 = (undefined4 *)((int)puVar8 + (-0x18 - iVar18));\n        puVar8 = puVar8 + -6;\n        do {\n          while( true ) {\n            puVar12 = (undefined4 *)puVar8[-2];\n            if ((undefined4 *)puVar6[-2] != puVar6) break;\n            iVar5 = puVar6[-1];\n            if (iVar5 != 0) {\n              if (iVar5 == 1) {\n                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n            }\n            puVar8[-1] = iVar5;\n            *(undefined1 *)((int)puVar12 + iVar5) = 0;\n            iVar19 = iVar19 + -1;\n            puVar6[-1] = 0;\n            *(undefined1 *)puVar6[-2] = 0;\n            uVar9 = puVar6[4];\n            *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n            puVar8[4] = uVar9;\n            *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n            puVar6 = puVar6 + -8;\n            puVar8 = puVar8 + -8;\n            if (iVar19 == 0) goto LAB_002248f8;\n          }\n          puVar8[-2] = (undefined4 *)puVar6[-2];\n          if (puVar12 == puVar8) {\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\nLAB_0022497c:\n            puVar6[-2] = puVar6;\n          }\n          else {\n            uVar9 = *puVar8;\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\n            if (puVar12 == (undefined4 *)0x0) goto LAB_0022497c;\n            puVar6[-2] = puVar12;\n            *puVar6 = uVar9;\n          }\n          puVar6[-1] = 0;\n          iVar19 = iVar19 + -1;\n          *(undefined1 *)puVar6[-2] = 0;\n          uVar9 = puVar6[4];\n          *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n          puVar8[4] = uVar9;\n          *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar6 + -8;\n          puVar8 = puVar8 + -8;\n        } while (iVar19 != 0);\n      }\nLAB_002248f8:\n      if (0 < iVar18) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar20 = uVar20 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar20 != 0);\n        return;\n      }\n    }\n    else {\n      piVar16 = (int *)((int)param_3 + iVar5);\n      puVar6 = puVar8;\n      if (piVar16 != param_4) {\n        do {\n          *puVar6 = puVar6 + 2;\n                    /* try { // try from 002241f8 to 002241ff has its CatchHandler @ 002249d8 */\n          (*(code *)puVar4)(puVar6,*piVar16,*piVar16 + piVar16[1],0);\n          piVar17 = piVar16 + 8;\n          iVar18 = piVar16[6];\n          *(undefined1 *)(puVar6 + 7) = *(undefined1 *)(piVar16 + 7);\n          puVar6[6] = iVar18;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)piVar16 + 0x1d);\n          piVar16 = piVar17;\n          puVar6 = puVar6 + 8;\n        } while (param_4 != piVar17);\n        puVar6 = (undefined4 *)param_1[1];\n      }\n      puVar6 = puVar6 + (uVar20 - uVar21) * 8;\n      param_1[1] = puVar6;\n      if (puVar8 != param_2) {\n        puVar12 = param_2 + 2;\n        do {\n          while( true ) {\n            *puVar6 = puVar6 + 2;\n            if (puVar12 != (undefined4 *)puVar12[-2]) break;\n            uVar13 = puVar12[1];\n            uVar10 = puVar12[2];\n            uVar9 = puVar12[3];\n            puVar6[2] = *puVar12;\n            puVar6[3] = uVar13;\n            puVar6[4] = uVar10;\n            puVar6[5] = uVar9;\n            uVar1 = *(undefined1 *)(puVar12 + 5);\n            uVar9 = puVar12[4];\n            puVar6[1] = puVar12[-1];\n            puVar12[-2] = puVar12;\n            puVar14 = puVar12 + 8;\n            puVar12[-1] = 0;\n            *(undefined1 *)puVar12 = 0;\n            *(undefined1 *)(puVar6 + 7) = uVar1;\n            puVar6[6] = uVar9;\n            *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n            puVar12 = puVar14;\n            puVar6 = puVar6 + 8;\n            if (puVar8 + 2 == puVar14) goto LAB_00224324;\n          }\n          *puVar6 = (undefined4 *)puVar12[-2];\n          uVar1 = *(undefined1 *)(puVar12 + 5);\n          puVar6[2] = *puVar12;\n          uVar9 = puVar12[4];\n          puVar6[1] = puVar12[-1];\n          puVar12[-2] = puVar12;\n          puVar14 = puVar12 + 8;\n          puVar12[-1] = 0;\n          *(undefined1 *)puVar12 = 0;\n          *(undefined1 *)(puVar6 + 7) = uVar1;\n          puVar6[6] = uVar9;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n          puVar12 = puVar14;\n          puVar6 = puVar6 + 8;\n        } while (puVar8 + 2 != puVar14);\nLAB_00224324:\n        puVar6 = (undefined4 *)param_1[1];\n      }\n      param_1[1] = (int)puVar6 + iVar5;\n      if (0 < iVar5) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar21 = uVar21 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar21 != 0);\n      }\n    }" if (parenthesized_expression "(uVar20 < uVar21)" ( (binary_expression "uVar20 < uVar21" identifier < identifier) )) (compound_statement "{\n      puVar6 = (undefined4 *)((int)puVar8 + (8 - iVar18));\n      puVar12 = puVar8;\n      do {\n        while( true ) {\n          *puVar12 = puVar12 + 2;\n          if ((undefined4 *)puVar6[-2] != puVar6) break;\n          uVar13 = puVar6[1];\n          uVar10 = puVar6[2];\n          uVar9 = puVar6[3];\n          puVar12[2] = *puVar6;\n          puVar12[3] = uVar13;\n          puVar12[4] = uVar10;\n          puVar12[5] = uVar9;\n          uVar1 = *(undefined1 *)(puVar6 + 5);\n          uVar9 = puVar6[4];\n          puVar12[1] = puVar6[-1];\n          puVar6[-2] = puVar6;\n          puVar14 = puVar6 + 8;\n          puVar6[-1] = 0;\n          *(undefined1 *)puVar6 = 0;\n          *(undefined1 *)(puVar12 + 7) = uVar1;\n          puVar12[6] = uVar9;\n          *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar14;\n          puVar12 = puVar12 + 8;\n          if (puVar8 + 2 == puVar14) goto LAB_002247fc;\n        }\n        *puVar12 = (undefined4 *)puVar6[-2];\n        uVar1 = *(undefined1 *)(puVar6 + 5);\n        puVar12[2] = *puVar6;\n        uVar9 = puVar6[4];\n        puVar12[1] = puVar6[-1];\n        puVar6[-2] = puVar6;\n        puVar14 = puVar6 + 8;\n        puVar6[-1] = 0;\n        *(undefined1 *)puVar6 = 0;\n        *(undefined1 *)(puVar12 + 7) = uVar1;\n        puVar12[6] = uVar9;\n        *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n        puVar6 = puVar14;\n        puVar12 = puVar12 + 8;\n      } while (puVar8 + 2 != puVar14);\nLAB_002247fc:\n      iVar5 = (int)puVar8 + (-(int)param_2 - iVar18);\n      iVar19 = iVar5 >> 5;\n      param_1[1] = param_1[1] + iVar18;\n      if (0 < iVar5) {\n        puVar6 = (undefined4 *)((int)puVar8 + (-0x18 - iVar18));\n        puVar8 = puVar8 + -6;\n        do {\n          while( true ) {\n            puVar12 = (undefined4 *)puVar8[-2];\n            if ((undefined4 *)puVar6[-2] != puVar6) break;\n            iVar5 = puVar6[-1];\n            if (iVar5 != 0) {\n              if (iVar5 == 1) {\n                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n            }\n            puVar8[-1] = iVar5;\n            *(undefined1 *)((int)puVar12 + iVar5) = 0;\n            iVar19 = iVar19 + -1;\n            puVar6[-1] = 0;\n            *(undefined1 *)puVar6[-2] = 0;\n            uVar9 = puVar6[4];\n            *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n            puVar8[4] = uVar9;\n            *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n            puVar6 = puVar6 + -8;\n            puVar8 = puVar8 + -8;\n            if (iVar19 == 0) goto LAB_002248f8;\n          }\n          puVar8[-2] = (undefined4 *)puVar6[-2];\n          if (puVar12 == puVar8) {\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\nLAB_0022497c:\n            puVar6[-2] = puVar6;\n          }\n          else {\n            uVar9 = *puVar8;\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\n            if (puVar12 == (undefined4 *)0x0) goto LAB_0022497c;\n            puVar6[-2] = puVar12;\n            *puVar6 = uVar9;\n          }\n          puVar6[-1] = 0;\n          iVar19 = iVar19 + -1;\n          *(undefined1 *)puVar6[-2] = 0;\n          uVar9 = puVar6[4];\n          *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n          puVar8[4] = uVar9;\n          *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar6 + -8;\n          puVar8 = puVar8 + -8;\n        } while (iVar19 != 0);\n      }\nLAB_002248f8:\n      if (0 < iVar18) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar20 = uVar20 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar20 != 0);\n        return;\n      }\n    }" { (expression_statement "puVar6 = (undefined4 *)((int)puVar8 + (8 - iVar18));" (assignment_expression "puVar6 = (undefined4 *)((int)puVar8 + (8 - iVar18))" identifier = (cast_expression "(undefined4 *)((int)puVar8 + (8 - iVar18))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + (8 - iVar18))" ( (binary_expression "(int)puVar8 + (8 - iVar18)" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(8 - iVar18)" ( (binary_expression "8 - iVar18" number_literal - identifier) ))) )))) ;) (expression_statement "puVar12 = puVar8;" (assignment_expression "puVar12 = puVar8" identifier = identifier) ;) (do_statement "do {\n        while( true ) {\n          *puVar12 = puVar12 + 2;\n          if ((undefined4 *)puVar6[-2] != puVar6) break;\n          uVar13 = puVar6[1];\n          uVar10 = puVar6[2];\n          uVar9 = puVar6[3];\n          puVar12[2] = *puVar6;\n          puVar12[3] = uVar13;\n          puVar12[4] = uVar10;\n          puVar12[5] = uVar9;\n          uVar1 = *(undefined1 *)(puVar6 + 5);\n          uVar9 = puVar6[4];\n          puVar12[1] = puVar6[-1];\n          puVar6[-2] = puVar6;\n          puVar14 = puVar6 + 8;\n          puVar6[-1] = 0;\n          *(undefined1 *)puVar6 = 0;\n          *(undefined1 *)(puVar12 + 7) = uVar1;\n          puVar12[6] = uVar9;\n          *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar14;\n          puVar12 = puVar12 + 8;\n          if (puVar8 + 2 == puVar14) goto LAB_002247fc;\n        }\n        *puVar12 = (undefined4 *)puVar6[-2];\n        uVar1 = *(undefined1 *)(puVar6 + 5);\n        puVar12[2] = *puVar6;\n        uVar9 = puVar6[4];\n        puVar12[1] = puVar6[-1];\n        puVar6[-2] = puVar6;\n        puVar14 = puVar6 + 8;\n        puVar6[-1] = 0;\n        *(undefined1 *)puVar6 = 0;\n        *(undefined1 *)(puVar12 + 7) = uVar1;\n        puVar12[6] = uVar9;\n        *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n        puVar6 = puVar14;\n        puVar12 = puVar12 + 8;\n      } while (puVar8 + 2 != puVar14);" do (compound_statement "{\n        while( true ) {\n          *puVar12 = puVar12 + 2;\n          if ((undefined4 *)puVar6[-2] != puVar6) break;\n          uVar13 = puVar6[1];\n          uVar10 = puVar6[2];\n          uVar9 = puVar6[3];\n          puVar12[2] = *puVar6;\n          puVar12[3] = uVar13;\n          puVar12[4] = uVar10;\n          puVar12[5] = uVar9;\n          uVar1 = *(undefined1 *)(puVar6 + 5);\n          uVar9 = puVar6[4];\n          puVar12[1] = puVar6[-1];\n          puVar6[-2] = puVar6;\n          puVar14 = puVar6 + 8;\n          puVar6[-1] = 0;\n          *(undefined1 *)puVar6 = 0;\n          *(undefined1 *)(puVar12 + 7) = uVar1;\n          puVar12[6] = uVar9;\n          *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar14;\n          puVar12 = puVar12 + 8;\n          if (puVar8 + 2 == puVar14) goto LAB_002247fc;\n        }\n        *puVar12 = (undefined4 *)puVar6[-2];\n        uVar1 = *(undefined1 *)(puVar6 + 5);\n        puVar12[2] = *puVar6;\n        uVar9 = puVar6[4];\n        puVar12[1] = puVar6[-1];\n        puVar6[-2] = puVar6;\n        puVar14 = puVar6 + 8;\n        puVar6[-1] = 0;\n        *(undefined1 *)puVar6 = 0;\n        *(undefined1 *)(puVar12 + 7) = uVar1;\n        puVar12[6] = uVar9;\n        *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n        puVar6 = puVar14;\n        puVar12 = puVar12 + 8;\n      }" { (while_statement "while( true ) {\n          *puVar12 = puVar12 + 2;\n          if ((undefined4 *)puVar6[-2] != puVar6) break;\n          uVar13 = puVar6[1];\n          uVar10 = puVar6[2];\n          uVar9 = puVar6[3];\n          puVar12[2] = *puVar6;\n          puVar12[3] = uVar13;\n          puVar12[4] = uVar10;\n          puVar12[5] = uVar9;\n          uVar1 = *(undefined1 *)(puVar6 + 5);\n          uVar9 = puVar6[4];\n          puVar12[1] = puVar6[-1];\n          puVar6[-2] = puVar6;\n          puVar14 = puVar6 + 8;\n          puVar6[-1] = 0;\n          *(undefined1 *)puVar6 = 0;\n          *(undefined1 *)(puVar12 + 7) = uVar1;\n          puVar12[6] = uVar9;\n          *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar14;\n          puVar12 = puVar12 + 8;\n          if (puVar8 + 2 == puVar14) goto LAB_002247fc;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          *puVar12 = puVar12 + 2;\n          if ((undefined4 *)puVar6[-2] != puVar6) break;\n          uVar13 = puVar6[1];\n          uVar10 = puVar6[2];\n          uVar9 = puVar6[3];\n          puVar12[2] = *puVar6;\n          puVar12[3] = uVar13;\n          puVar12[4] = uVar10;\n          puVar12[5] = uVar9;\n          uVar1 = *(undefined1 *)(puVar6 + 5);\n          uVar9 = puVar6[4];\n          puVar12[1] = puVar6[-1];\n          puVar6[-2] = puVar6;\n          puVar14 = puVar6 + 8;\n          puVar6[-1] = 0;\n          *(undefined1 *)puVar6 = 0;\n          *(undefined1 *)(puVar12 + 7) = uVar1;\n          puVar12[6] = uVar9;\n          *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar14;\n          puVar12 = puVar12 + 8;\n          if (puVar8 + 2 == puVar14) goto LAB_002247fc;\n        }" { (expression_statement "*puVar12 = puVar12 + 2;" (assignment_expression "*puVar12 = puVar12 + 2" (pointer_expression "*puVar12" * identifier) = (binary_expression "puVar12 + 2" identifier + number_literal)) ;) (if_statement "if ((undefined4 *)puVar6[-2] != puVar6) break;" if (parenthesized_expression "((undefined4 *)puVar6[-2] != puVar6)" ( (binary_expression "(undefined4 *)puVar6[-2] != puVar6" (cast_expression "(undefined4 *)puVar6[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[-2]" identifier [ number_literal ])) != identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = puVar6[1];" (assignment_expression "uVar13 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = puVar6[2];" (assignment_expression "uVar10 = puVar6[2]" identifier = (subscript_expression "puVar6[2]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = puVar6[3];" (assignment_expression "uVar9 = puVar6[3]" identifier = (subscript_expression "puVar6[3]" identifier [ number_literal ])) ;) (expression_statement "puVar12[2] = *puVar6;" (assignment_expression "puVar12[2] = *puVar6" (subscript_expression "puVar12[2]" identifier [ number_literal ]) = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "puVar12[3] = uVar13;" (assignment_expression "puVar12[3] = uVar13" (subscript_expression "puVar12[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[4] = uVar10;" (assignment_expression "puVar12[4] = uVar10" (subscript_expression "puVar12[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[5] = uVar9;" (assignment_expression "puVar12[5] = uVar9" (subscript_expression "puVar12[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar1 = *(undefined1 *)(puVar6 + 5);" (assignment_expression "uVar1 = *(undefined1 *)(puVar6 + 5)" identifier = (pointer_expression "*(undefined1 *)(puVar6 + 5)" * (cast_expression "(undefined1 *)(puVar6 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 5)" ( (binary_expression "puVar6 + 5" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = puVar6[4];" (assignment_expression "uVar9 = puVar6[4]" identifier = (subscript_expression "puVar6[4]" identifier [ number_literal ])) ;) (expression_statement "puVar12[1] = puVar6[-1];" (assignment_expression "puVar12[1] = puVar6[-1]" (subscript_expression "puVar12[1]" identifier [ number_literal ]) = (subscript_expression "puVar6[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar6[-2] = puVar6;" (assignment_expression "puVar6[-2] = puVar6" (subscript_expression "puVar6[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14 = puVar6 + 8;" (assignment_expression "puVar14 = puVar6 + 8" identifier = (binary_expression "puVar6 + 8" identifier + number_literal)) ;) (expression_statement "puVar6[-1] = 0;" (assignment_expression "puVar6[-1] = 0" (subscript_expression "puVar6[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)puVar6 = 0;" (assignment_expression "*(undefined1 *)puVar6 = 0" (pointer_expression "*(undefined1 *)puVar6" * (cast_expression "(undefined1 *)puVar6" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar12 + 7) = uVar1;" (assignment_expression "*(undefined1 *)(puVar12 + 7) = uVar1" (pointer_expression "*(undefined1 *)(puVar12 + 7)" * (cast_expression "(undefined1 *)(puVar12 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 7)" ( (binary_expression "puVar12 + 7" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar12[6] = uVar9;" (assignment_expression "puVar12[6] = uVar9" (subscript_expression "puVar12[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);" (assignment_expression "*(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15)" (pointer_expression "*(undefined1 *)((int)puVar12 + 0x1d)" * (cast_expression "(undefined1 *)((int)puVar12 + 0x1d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + 0x1d)" ( (binary_expression "(int)puVar12 + 0x1d" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((int)puVar6 + 0x15)" * (cast_expression "(undefined1 *)((int)puVar6 + 0x15)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar6 + 0x15)" ( (binary_expression "(int)puVar6 + 0x15" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar6 = puVar14;" (assignment_expression "puVar6 = puVar14" identifier = identifier) ;) (expression_statement "puVar12 = puVar12 + 8;" (assignment_expression "puVar12 = puVar12 + 8" identifier = (binary_expression "puVar12 + 8" identifier + number_literal)) ;) (if_statement "if (puVar8 + 2 == puVar14) goto LAB_002247fc;" if (parenthesized_expression "(puVar8 + 2 == puVar14)" ( (binary_expression "puVar8 + 2 == puVar14" (binary_expression "puVar8 + 2" identifier + number_literal) == identifier) )) (goto_statement "goto LAB_002247fc;" goto statement_identifier ;)) })) (expression_statement "*puVar12 = (undefined4 *)puVar6[-2];" (assignment_expression "*puVar12 = (undefined4 *)puVar6[-2]" (pointer_expression "*puVar12" * identifier) = (cast_expression "(undefined4 *)puVar6[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[-2]" identifier [ number_literal ]))) ;) (expression_statement "uVar1 = *(undefined1 *)(puVar6 + 5);" (assignment_expression "uVar1 = *(undefined1 *)(puVar6 + 5)" identifier = (pointer_expression "*(undefined1 *)(puVar6 + 5)" * (cast_expression "(undefined1 *)(puVar6 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 5)" ( (binary_expression "puVar6 + 5" identifier + number_literal) ))))) ;) (expression_statement "puVar12[2] = *puVar6;" (assignment_expression "puVar12[2] = *puVar6" (subscript_expression "puVar12[2]" identifier [ number_literal ]) = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "uVar9 = puVar6[4];" (assignment_expression "uVar9 = puVar6[4]" identifier = (subscript_expression "puVar6[4]" identifier [ number_literal ])) ;) (expression_statement "puVar12[1] = puVar6[-1];" (assignment_expression "puVar12[1] = puVar6[-1]" (subscript_expression "puVar12[1]" identifier [ number_literal ]) = (subscript_expression "puVar6[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar6[-2] = puVar6;" (assignment_expression "puVar6[-2] = puVar6" (subscript_expression "puVar6[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14 = puVar6 + 8;" (assignment_expression "puVar14 = puVar6 + 8" identifier = (binary_expression "puVar6 + 8" identifier + number_literal)) ;) (expression_statement "puVar6[-1] = 0;" (assignment_expression "puVar6[-1] = 0" (subscript_expression "puVar6[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)puVar6 = 0;" (assignment_expression "*(undefined1 *)puVar6 = 0" (pointer_expression "*(undefined1 *)puVar6" * (cast_expression "(undefined1 *)puVar6" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar12 + 7) = uVar1;" (assignment_expression "*(undefined1 *)(puVar12 + 7) = uVar1" (pointer_expression "*(undefined1 *)(puVar12 + 7)" * (cast_expression "(undefined1 *)(puVar12 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 7)" ( (binary_expression "puVar12 + 7" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar12[6] = uVar9;" (assignment_expression "puVar12[6] = uVar9" (subscript_expression "puVar12[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);" (assignment_expression "*(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15)" (pointer_expression "*(undefined1 *)((int)puVar12 + 0x1d)" * (cast_expression "(undefined1 *)((int)puVar12 + 0x1d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + 0x1d)" ( (binary_expression "(int)puVar12 + 0x1d" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((int)puVar6 + 0x15)" * (cast_expression "(undefined1 *)((int)puVar6 + 0x15)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar6 + 0x15)" ( (binary_expression "(int)puVar6 + 0x15" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar6 = puVar14;" (assignment_expression "puVar6 = puVar14" identifier = identifier) ;) (expression_statement "puVar12 = puVar12 + 8;" (assignment_expression "puVar12 = puVar12 + 8" identifier = (binary_expression "puVar12 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar8 + 2 != puVar14)" ( (binary_expression "puVar8 + 2 != puVar14" (binary_expression "puVar8 + 2" identifier + number_literal) != identifier) )) ;) (labeled_statement "LAB_002247fc:\n      iVar5 = (int)puVar8 + (-(int)param_2 - iVar18);" statement_identifier : (expression_statement "iVar5 = (int)puVar8 + (-(int)param_2 - iVar18);" (assignment_expression "iVar5 = (int)puVar8 + (-(int)param_2 - iVar18)" identifier = (binary_expression "(int)puVar8 + (-(int)param_2 - iVar18)" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-(int)param_2 - iVar18)" ( (binary_expression "-(int)param_2 - iVar18" (unary_expression "-(int)param_2" - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) - identifier) )))) ;)) (expression_statement "iVar19 = iVar5 >> 5;" (assignment_expression "iVar19 = iVar5 >> 5" identifier = (binary_expression "iVar5 >> 5" identifier >> number_literal)) ;) (expression_statement "param_1[1] = param_1[1] + iVar18;" (assignment_expression "param_1[1] = param_1[1] + iVar18" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (binary_expression "param_1[1] + iVar18" (subscript_expression "param_1[1]" identifier [ number_literal ]) + identifier)) ;) (if_statement "if (0 < iVar5) {\n        puVar6 = (undefined4 *)((int)puVar8 + (-0x18 - iVar18));\n        puVar8 = puVar8 + -6;\n        do {\n          while( true ) {\n            puVar12 = (undefined4 *)puVar8[-2];\n            if ((undefined4 *)puVar6[-2] != puVar6) break;\n            iVar5 = puVar6[-1];\n            if (iVar5 != 0) {\n              if (iVar5 == 1) {\n                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n            }\n            puVar8[-1] = iVar5;\n            *(undefined1 *)((int)puVar12 + iVar5) = 0;\n            iVar19 = iVar19 + -1;\n            puVar6[-1] = 0;\n            *(undefined1 *)puVar6[-2] = 0;\n            uVar9 = puVar6[4];\n            *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n            puVar8[4] = uVar9;\n            *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n            puVar6 = puVar6 + -8;\n            puVar8 = puVar8 + -8;\n            if (iVar19 == 0) goto LAB_002248f8;\n          }\n          puVar8[-2] = (undefined4 *)puVar6[-2];\n          if (puVar12 == puVar8) {\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\nLAB_0022497c:\n            puVar6[-2] = puVar6;\n          }\n          else {\n            uVar9 = *puVar8;\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\n            if (puVar12 == (undefined4 *)0x0) goto LAB_0022497c;\n            puVar6[-2] = puVar12;\n            *puVar6 = uVar9;\n          }\n          puVar6[-1] = 0;\n          iVar19 = iVar19 + -1;\n          *(undefined1 *)puVar6[-2] = 0;\n          uVar9 = puVar6[4];\n          *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n          puVar8[4] = uVar9;\n          *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar6 + -8;\n          puVar8 = puVar8 + -8;\n        } while (iVar19 != 0);\n      }" if (parenthesized_expression "(0 < iVar5)" ( (binary_expression "0 < iVar5" number_literal < identifier) )) (compound_statement "{\n        puVar6 = (undefined4 *)((int)puVar8 + (-0x18 - iVar18));\n        puVar8 = puVar8 + -6;\n        do {\n          while( true ) {\n            puVar12 = (undefined4 *)puVar8[-2];\n            if ((undefined4 *)puVar6[-2] != puVar6) break;\n            iVar5 = puVar6[-1];\n            if (iVar5 != 0) {\n              if (iVar5 == 1) {\n                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n            }\n            puVar8[-1] = iVar5;\n            *(undefined1 *)((int)puVar12 + iVar5) = 0;\n            iVar19 = iVar19 + -1;\n            puVar6[-1] = 0;\n            *(undefined1 *)puVar6[-2] = 0;\n            uVar9 = puVar6[4];\n            *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n            puVar8[4] = uVar9;\n            *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n            puVar6 = puVar6 + -8;\n            puVar8 = puVar8 + -8;\n            if (iVar19 == 0) goto LAB_002248f8;\n          }\n          puVar8[-2] = (undefined4 *)puVar6[-2];\n          if (puVar12 == puVar8) {\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\nLAB_0022497c:\n            puVar6[-2] = puVar6;\n          }\n          else {\n            uVar9 = *puVar8;\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\n            if (puVar12 == (undefined4 *)0x0) goto LAB_0022497c;\n            puVar6[-2] = puVar12;\n            *puVar6 = uVar9;\n          }\n          puVar6[-1] = 0;\n          iVar19 = iVar19 + -1;\n          *(undefined1 *)puVar6[-2] = 0;\n          uVar9 = puVar6[4];\n          *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n          puVar8[4] = uVar9;\n          *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar6 + -8;\n          puVar8 = puVar8 + -8;\n        } while (iVar19 != 0);\n      }" { (expression_statement "puVar6 = (undefined4 *)((int)puVar8 + (-0x18 - iVar18));" (assignment_expression "puVar6 = (undefined4 *)((int)puVar8 + (-0x18 - iVar18))" identifier = (cast_expression "(undefined4 *)((int)puVar8 + (-0x18 - iVar18))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + (-0x18 - iVar18))" ( (binary_expression "(int)puVar8 + (-0x18 - iVar18)" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-0x18 - iVar18)" ( (binary_expression "-0x18 - iVar18" number_literal - identifier) ))) )))) ;) (expression_statement "puVar8 = puVar8 + -6;" (assignment_expression "puVar8 = puVar8 + -6" identifier = (binary_expression "puVar8 + -6" identifier + number_literal)) ;) (do_statement "do {\n          while( true ) {\n            puVar12 = (undefined4 *)puVar8[-2];\n            if ((undefined4 *)puVar6[-2] != puVar6) break;\n            iVar5 = puVar6[-1];\n            if (iVar5 != 0) {\n              if (iVar5 == 1) {\n                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n            }\n            puVar8[-1] = iVar5;\n            *(undefined1 *)((int)puVar12 + iVar5) = 0;\n            iVar19 = iVar19 + -1;\n            puVar6[-1] = 0;\n            *(undefined1 *)puVar6[-2] = 0;\n            uVar9 = puVar6[4];\n            *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n            puVar8[4] = uVar9;\n            *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n            puVar6 = puVar6 + -8;\n            puVar8 = puVar8 + -8;\n            if (iVar19 == 0) goto LAB_002248f8;\n          }\n          puVar8[-2] = (undefined4 *)puVar6[-2];\n          if (puVar12 == puVar8) {\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\nLAB_0022497c:\n            puVar6[-2] = puVar6;\n          }\n          else {\n            uVar9 = *puVar8;\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\n            if (puVar12 == (undefined4 *)0x0) goto LAB_0022497c;\n            puVar6[-2] = puVar12;\n            *puVar6 = uVar9;\n          }\n          puVar6[-1] = 0;\n          iVar19 = iVar19 + -1;\n          *(undefined1 *)puVar6[-2] = 0;\n          uVar9 = puVar6[4];\n          *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n          puVar8[4] = uVar9;\n          *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar6 + -8;\n          puVar8 = puVar8 + -8;\n        } while (iVar19 != 0);" do (compound_statement "{\n          while( true ) {\n            puVar12 = (undefined4 *)puVar8[-2];\n            if ((undefined4 *)puVar6[-2] != puVar6) break;\n            iVar5 = puVar6[-1];\n            if (iVar5 != 0) {\n              if (iVar5 == 1) {\n                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n            }\n            puVar8[-1] = iVar5;\n            *(undefined1 *)((int)puVar12 + iVar5) = 0;\n            iVar19 = iVar19 + -1;\n            puVar6[-1] = 0;\n            *(undefined1 *)puVar6[-2] = 0;\n            uVar9 = puVar6[4];\n            *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n            puVar8[4] = uVar9;\n            *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n            puVar6 = puVar6 + -8;\n            puVar8 = puVar8 + -8;\n            if (iVar19 == 0) goto LAB_002248f8;\n          }\n          puVar8[-2] = (undefined4 *)puVar6[-2];\n          if (puVar12 == puVar8) {\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\nLAB_0022497c:\n            puVar6[-2] = puVar6;\n          }\n          else {\n            uVar9 = *puVar8;\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\n            if (puVar12 == (undefined4 *)0x0) goto LAB_0022497c;\n            puVar6[-2] = puVar12;\n            *puVar6 = uVar9;\n          }\n          puVar6[-1] = 0;\n          iVar19 = iVar19 + -1;\n          *(undefined1 *)puVar6[-2] = 0;\n          uVar9 = puVar6[4];\n          *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n          puVar8[4] = uVar9;\n          *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar6 + -8;\n          puVar8 = puVar8 + -8;\n        }" { (while_statement "while( true ) {\n            puVar12 = (undefined4 *)puVar8[-2];\n            if ((undefined4 *)puVar6[-2] != puVar6) break;\n            iVar5 = puVar6[-1];\n            if (iVar5 != 0) {\n              if (iVar5 == 1) {\n                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n            }\n            puVar8[-1] = iVar5;\n            *(undefined1 *)((int)puVar12 + iVar5) = 0;\n            iVar19 = iVar19 + -1;\n            puVar6[-1] = 0;\n            *(undefined1 *)puVar6[-2] = 0;\n            uVar9 = puVar6[4];\n            *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n            puVar8[4] = uVar9;\n            *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n            puVar6 = puVar6 + -8;\n            puVar8 = puVar8 + -8;\n            if (iVar19 == 0) goto LAB_002248f8;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            puVar12 = (undefined4 *)puVar8[-2];\n            if ((undefined4 *)puVar6[-2] != puVar6) break;\n            iVar5 = puVar6[-1];\n            if (iVar5 != 0) {\n              if (iVar5 == 1) {\n                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n            }\n            puVar8[-1] = iVar5;\n            *(undefined1 *)((int)puVar12 + iVar5) = 0;\n            iVar19 = iVar19 + -1;\n            puVar6[-1] = 0;\n            *(undefined1 *)puVar6[-2] = 0;\n            uVar9 = puVar6[4];\n            *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n            puVar8[4] = uVar9;\n            *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n            puVar6 = puVar6 + -8;\n            puVar8 = puVar8 + -8;\n            if (iVar19 == 0) goto LAB_002248f8;\n          }" { (expression_statement "puVar12 = (undefined4 *)puVar8[-2];" (assignment_expression "puVar12 = (undefined4 *)puVar8[-2]" identifier = (cast_expression "(undefined4 *)puVar8[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar8[-2]" identifier [ number_literal ]))) ;) (if_statement "if ((undefined4 *)puVar6[-2] != puVar6) break;" if (parenthesized_expression "((undefined4 *)puVar6[-2] != puVar6)" ( (binary_expression "(undefined4 *)puVar6[-2] != puVar6" (cast_expression "(undefined4 *)puVar6[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[-2]" identifier [ number_literal ])) != identifier) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = puVar6[-1];" (assignment_expression "iVar5 = puVar6[-1]" identifier = (subscript_expression "puVar6[-1]" identifier [ number_literal ])) ;) (if_statement "if (iVar5 != 0) {\n              if (iVar5 == 1) {\n                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n            }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n              if (iVar5 == 1) {\n                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n            }" { (if_statement "if (iVar5 == 1) {\n                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }" if (parenthesized_expression "(iVar5 == 1)" ( (binary_expression "iVar5 == 1" identifier == number_literal) )) (compound_statement "{\n                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }" { (expression_statement "*(undefined1 *)puVar12 = *(undefined1 *)puVar6;" (assignment_expression "*(undefined1 *)puVar12 = *(undefined1 *)puVar6" (pointer_expression "*(undefined1 *)puVar12" * (cast_expression "(undefined1 *)puVar12" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined1 *)puVar6" * (cast_expression "(undefined1 *)puVar6" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar12 = (undefined4 *)puVar8[-2];" (assignment_expression "puVar12 = (undefined4 *)puVar8[-2]" identifier = (cast_expression "(undefined4 *)puVar8[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar8[-2]" identifier [ number_literal ]))) ;) (expression_statement "iVar5 = puVar6[-1];" (assignment_expression "iVar5 = puVar6[-1]" identifier = (subscript_expression "puVar6[-1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }" else (compound_statement "{\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }" { (expression_statement "(*(code *)PTR_memcpy_00436788)(puVar12,puVar6);" (call_expression "(*(code *)PTR_memcpy_00436788)(puVar12,puVar6)" (parenthesized_expression "(*(code *)PTR_memcpy_00436788)" ( (pointer_expression "*(code *)PTR_memcpy_00436788" * (cast_expression "(code *)PTR_memcpy_00436788" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar12,puVar6)" ( identifier , identifier ))) ;) (expression_statement "puVar12 = (undefined4 *)puVar8[-2];" (assignment_expression "puVar12 = (undefined4 *)puVar8[-2]" identifier = (cast_expression "(undefined4 *)puVar8[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar8[-2]" identifier [ number_literal ]))) ;) (expression_statement "iVar5 = puVar6[-1];" (assignment_expression "iVar5 = puVar6[-1]" identifier = (subscript_expression "puVar6[-1]" identifier [ number_literal ])) ;) }))) })) (expression_statement "puVar8[-1] = iVar5;" (assignment_expression "puVar8[-1] = iVar5" (subscript_expression "puVar8[-1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar12 + iVar5) = 0;" (assignment_expression "*(undefined1 *)((int)puVar12 + iVar5) = 0" (pointer_expression "*(undefined1 *)((int)puVar12 + iVar5)" * (cast_expression "(undefined1 *)((int)puVar12 + iVar5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + iVar5)" ( (binary_expression "(int)puVar12 + iVar5" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "puVar6[-1] = 0;" (assignment_expression "puVar6[-1] = 0" (subscript_expression "puVar6[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)puVar6[-2] = 0;" (assignment_expression "*(undefined1 *)puVar6[-2] = 0" (pointer_expression "*(undefined1 *)puVar6[-2]" * (cast_expression "(undefined1 *)puVar6[-2]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[-2]" identifier [ number_literal ]))) = number_literal) ;) (expression_statement "uVar9 = puVar6[4];" (assignment_expression "uVar9 = puVar6[4]" identifier = (subscript_expression "puVar6[4]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);" (assignment_expression "*(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5)" (pointer_expression "*(undefined1 *)(puVar8 + 5)" * (cast_expression "(undefined1 *)(puVar8 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 5)" ( (binary_expression "puVar8 + 5" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)(puVar6 + 5)" * (cast_expression "(undefined1 *)(puVar6 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 5)" ( (binary_expression "puVar6 + 5" identifier + number_literal) ))))) ;) (expression_statement "puVar8[4] = uVar9;" (assignment_expression "puVar8[4] = uVar9" (subscript_expression "puVar8[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);" (assignment_expression "*(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15)" (pointer_expression "*(undefined1 *)((int)puVar8 + 0x15)" * (cast_expression "(undefined1 *)((int)puVar8 + 0x15)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + 0x15)" ( (binary_expression "(int)puVar8 + 0x15" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((int)puVar6 + 0x15)" * (cast_expression "(undefined1 *)((int)puVar6 + 0x15)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar6 + 0x15)" ( (binary_expression "(int)puVar6 + 0x15" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar6 = puVar6 + -8;" (assignment_expression "puVar6 = puVar6 + -8" identifier = (binary_expression "puVar6 + -8" identifier + number_literal)) ;) (expression_statement "puVar8 = puVar8 + -8;" (assignment_expression "puVar8 = puVar8 + -8" identifier = (binary_expression "puVar8 + -8" identifier + number_literal)) ;) (if_statement "if (iVar19 == 0) goto LAB_002248f8;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (goto_statement "goto LAB_002248f8;" goto statement_identifier ;)) })) (expression_statement "puVar8[-2] = (undefined4 *)puVar6[-2];" (assignment_expression "puVar8[-2] = (undefined4 *)puVar6[-2]" (subscript_expression "puVar8[-2]" identifier [ number_literal ]) = (cast_expression "(undefined4 *)puVar6[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[-2]" identifier [ number_literal ]))) ;) (if_statement "if (puVar12 == puVar8) {\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\nLAB_0022497c:\n            puVar6[-2] = puVar6;\n          }\n          else {\n            uVar9 = *puVar8;\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\n            if (puVar12 == (undefined4 *)0x0) goto LAB_0022497c;\n            puVar6[-2] = puVar12;\n            *puVar6 = uVar9;\n          }" if (parenthesized_expression "(puVar12 == puVar8)" ( (binary_expression "puVar12 == puVar8" identifier == identifier) )) (compound_statement "{\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\nLAB_0022497c:\n            puVar6[-2] = puVar6;\n          }" { (expression_statement "puVar8[-1] = puVar6[-1];" (assignment_expression "puVar8[-1] = puVar6[-1]" (subscript_expression "puVar8[-1]" identifier [ number_literal ]) = (subscript_expression "puVar6[-1]" identifier [ number_literal ])) ;) (expression_statement "*puVar8 = *puVar6;" (assignment_expression "*puVar8 = *puVar6" (pointer_expression "*puVar8" * identifier) = (pointer_expression "*puVar6" * identifier)) ;) (labeled_statement "LAB_0022497c:\n            puVar6[-2] = puVar6;" statement_identifier : (expression_statement "puVar6[-2] = puVar6;" (assignment_expression "puVar6[-2] = puVar6" (subscript_expression "puVar6[-2]" identifier [ number_literal ]) = identifier) ;)) }) (else_clause "else {\n            uVar9 = *puVar8;\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\n            if (puVar12 == (undefined4 *)0x0) goto LAB_0022497c;\n            puVar6[-2] = puVar12;\n            *puVar6 = uVar9;\n          }" else (compound_statement "{\n            uVar9 = *puVar8;\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\n            if (puVar12 == (undefined4 *)0x0) goto LAB_0022497c;\n            puVar6[-2] = puVar12;\n            *puVar6 = uVar9;\n          }" { (expression_statement "uVar9 = *puVar8;" (assignment_expression "uVar9 = *puVar8" identifier = (pointer_expression "*puVar8" * identifier)) ;) (expression_statement "puVar8[-1] = puVar6[-1];" (assignment_expression "puVar8[-1] = puVar6[-1]" (subscript_expression "puVar8[-1]" identifier [ number_literal ]) = (subscript_expression "puVar6[-1]" identifier [ number_literal ])) ;) (expression_statement "*puVar8 = *puVar6;" (assignment_expression "*puVar8 = *puVar6" (pointer_expression "*puVar8" * identifier) = (pointer_expression "*puVar6" * identifier)) ;) (if_statement "if (puVar12 == (undefined4 *)0x0) goto LAB_0022497c;" if (parenthesized_expression "(puVar12 == (undefined4 *)0x0)" ( (binary_expression "puVar12 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0022497c;" goto statement_identifier ;)) (expression_statement "puVar6[-2] = puVar12;" (assignment_expression "puVar6[-2] = puVar12" (subscript_expression "puVar6[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar6 = uVar9;" (assignment_expression "*puVar6 = uVar9" (pointer_expression "*puVar6" * identifier) = identifier) ;) }))) (expression_statement "puVar6[-1] = 0;" (assignment_expression "puVar6[-1] = 0" (subscript_expression "puVar6[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)puVar6[-2] = 0;" (assignment_expression "*(undefined1 *)puVar6[-2] = 0" (pointer_expression "*(undefined1 *)puVar6[-2]" * (cast_expression "(undefined1 *)puVar6[-2]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[-2]" identifier [ number_literal ]))) = number_literal) ;) (expression_statement "uVar9 = puVar6[4];" (assignment_expression "uVar9 = puVar6[4]" identifier = (subscript_expression "puVar6[4]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);" (assignment_expression "*(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5)" (pointer_expression "*(undefined1 *)(puVar8 + 5)" * (cast_expression "(undefined1 *)(puVar8 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 5)" ( (binary_expression "puVar8 + 5" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)(puVar6 + 5)" * (cast_expression "(undefined1 *)(puVar6 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 5)" ( (binary_expression "puVar6 + 5" identifier + number_literal) ))))) ;) (expression_statement "puVar8[4] = uVar9;" (assignment_expression "puVar8[4] = uVar9" (subscript_expression "puVar8[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);" (assignment_expression "*(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15)" (pointer_expression "*(undefined1 *)((int)puVar8 + 0x15)" * (cast_expression "(undefined1 *)((int)puVar8 + 0x15)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + 0x15)" ( (binary_expression "(int)puVar8 + 0x15" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((int)puVar6 + 0x15)" * (cast_expression "(undefined1 *)((int)puVar6 + 0x15)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar6 + 0x15)" ( (binary_expression "(int)puVar6 + 0x15" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar6 = puVar6 + -8;" (assignment_expression "puVar6 = puVar6 + -8" identifier = (binary_expression "puVar6 + -8" identifier + number_literal)) ;) (expression_statement "puVar8 = puVar8 + -8;" (assignment_expression "puVar8 = puVar8 + -8" identifier = (binary_expression "puVar8 + -8" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) ;) })) (labeled_statement "LAB_002248f8:\n      if (0 < iVar18) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar20 = uVar20 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar20 != 0);\n        return;\n      }" statement_identifier : (if_statement "if (0 < iVar18) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar20 = uVar20 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar20 != 0);\n        return;\n      }" if (parenthesized_expression "(0 < iVar18)" ( (binary_expression "0 < iVar18" number_literal < identifier) )) (compound_statement "{\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar20 = uVar20 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar20 != 0);\n        return;\n      }" { (do_statement "do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar20 = uVar20 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar20 != 0);" do (compound_statement "{\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar20 = uVar20 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        }" { (expression_statement "(*(code *)PTR__M_assign_00432d78)(param_2,param_3);" (call_expression "(*(code *)PTR__M_assign_00432d78)(param_2,param_3)" (parenthesized_expression "(*(code *)PTR__M_assign_00432d78)" ( (pointer_expression "*(code *)PTR__M_assign_00432d78" * (cast_expression "(code *)PTR__M_assign_00432d78" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2,param_3)" ( identifier , identifier ))) ;) (expression_statement "uVar20 = uVar20 - 1;" (assignment_expression "uVar20 = uVar20 - 1" identifier = (binary_expression "uVar20 - 1" identifier - number_literal)) ;) (expression_statement "iVar18 = param_3[6];" (assignment_expression "iVar18 = param_3[6]" identifier = (subscript_expression "param_3[6]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);" (assignment_expression "*(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7)" (pointer_expression "*(undefined1 *)(param_2 + 7)" * (cast_expression "(undefined1 *)(param_2 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)(param_3 + 7)" * (cast_expression "(undefined1 *)(param_3 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 7)" ( (binary_expression "param_3 + 7" identifier + number_literal) ))))) ;) (expression_statement "param_2[6] = iVar18;" (assignment_expression "param_2[6] = iVar18" (subscript_expression "param_2[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);" (assignment_expression "*(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d)" (pointer_expression "*(undefined1 *)((int)param_2 + 0x1d)" * (cast_expression "(undefined1 *)((int)param_2 + 0x1d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x1d)" ( (binary_expression "(int)param_2 + 0x1d" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((int)param_3 + 0x1d)" * (cast_expression "(undefined1 *)((int)param_3 + 0x1d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3 + 0x1d)" ( (binary_expression "(int)param_3 + 0x1d" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "param_3 = param_3 + 8;" (assignment_expression "param_3 = param_3 + 8" identifier = (binary_expression "param_3 + 8" identifier + number_literal)) ;) (expression_statement "param_2 = param_2 + 8;" (assignment_expression "param_2 = param_2 + 8" identifier = (binary_expression "param_2 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar20 != 0)" ( (binary_expression "uVar20 != 0" identifier != number_literal) )) ;) (return_statement "return;" return ;) }))) }) (else_clause "else {\n      piVar16 = (int *)((int)param_3 + iVar5);\n      puVar6 = puVar8;\n      if (piVar16 != param_4) {\n        do {\n          *puVar6 = puVar6 + 2;\n                    /* try { // try from 002241f8 to 002241ff has its CatchHandler @ 002249d8 */\n          (*(code *)puVar4)(puVar6,*piVar16,*piVar16 + piVar16[1],0);\n          piVar17 = piVar16 + 8;\n          iVar18 = piVar16[6];\n          *(undefined1 *)(puVar6 + 7) = *(undefined1 *)(piVar16 + 7);\n          puVar6[6] = iVar18;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)piVar16 + 0x1d);\n          piVar16 = piVar17;\n          puVar6 = puVar6 + 8;\n        } while (param_4 != piVar17);\n        puVar6 = (undefined4 *)param_1[1];\n      }\n      puVar6 = puVar6 + (uVar20 - uVar21) * 8;\n      param_1[1] = puVar6;\n      if (puVar8 != param_2) {\n        puVar12 = param_2 + 2;\n        do {\n          while( true ) {\n            *puVar6 = puVar6 + 2;\n            if (puVar12 != (undefined4 *)puVar12[-2]) break;\n            uVar13 = puVar12[1];\n            uVar10 = puVar12[2];\n            uVar9 = puVar12[3];\n            puVar6[2] = *puVar12;\n            puVar6[3] = uVar13;\n            puVar6[4] = uVar10;\n            puVar6[5] = uVar9;\n            uVar1 = *(undefined1 *)(puVar12 + 5);\n            uVar9 = puVar12[4];\n            puVar6[1] = puVar12[-1];\n            puVar12[-2] = puVar12;\n            puVar14 = puVar12 + 8;\n            puVar12[-1] = 0;\n            *(undefined1 *)puVar12 = 0;\n            *(undefined1 *)(puVar6 + 7) = uVar1;\n            puVar6[6] = uVar9;\n            *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n            puVar12 = puVar14;\n            puVar6 = puVar6 + 8;\n            if (puVar8 + 2 == puVar14) goto LAB_00224324;\n          }\n          *puVar6 = (undefined4 *)puVar12[-2];\n          uVar1 = *(undefined1 *)(puVar12 + 5);\n          puVar6[2] = *puVar12;\n          uVar9 = puVar12[4];\n          puVar6[1] = puVar12[-1];\n          puVar12[-2] = puVar12;\n          puVar14 = puVar12 + 8;\n          puVar12[-1] = 0;\n          *(undefined1 *)puVar12 = 0;\n          *(undefined1 *)(puVar6 + 7) = uVar1;\n          puVar6[6] = uVar9;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n          puVar12 = puVar14;\n          puVar6 = puVar6 + 8;\n        } while (puVar8 + 2 != puVar14);\nLAB_00224324:\n        puVar6 = (undefined4 *)param_1[1];\n      }\n      param_1[1] = (int)puVar6 + iVar5;\n      if (0 < iVar5) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar21 = uVar21 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar21 != 0);\n      }\n    }" else (compound_statement "{\n      piVar16 = (int *)((int)param_3 + iVar5);\n      puVar6 = puVar8;\n      if (piVar16 != param_4) {\n        do {\n          *puVar6 = puVar6 + 2;\n                    /* try { // try from 002241f8 to 002241ff has its CatchHandler @ 002249d8 */\n          (*(code *)puVar4)(puVar6,*piVar16,*piVar16 + piVar16[1],0);\n          piVar17 = piVar16 + 8;\n          iVar18 = piVar16[6];\n          *(undefined1 *)(puVar6 + 7) = *(undefined1 *)(piVar16 + 7);\n          puVar6[6] = iVar18;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)piVar16 + 0x1d);\n          piVar16 = piVar17;\n          puVar6 = puVar6 + 8;\n        } while (param_4 != piVar17);\n        puVar6 = (undefined4 *)param_1[1];\n      }\n      puVar6 = puVar6 + (uVar20 - uVar21) * 8;\n      param_1[1] = puVar6;\n      if (puVar8 != param_2) {\n        puVar12 = param_2 + 2;\n        do {\n          while( true ) {\n            *puVar6 = puVar6 + 2;\n            if (puVar12 != (undefined4 *)puVar12[-2]) break;\n            uVar13 = puVar12[1];\n            uVar10 = puVar12[2];\n            uVar9 = puVar12[3];\n            puVar6[2] = *puVar12;\n            puVar6[3] = uVar13;\n            puVar6[4] = uVar10;\n            puVar6[5] = uVar9;\n            uVar1 = *(undefined1 *)(puVar12 + 5);\n            uVar9 = puVar12[4];\n            puVar6[1] = puVar12[-1];\n            puVar12[-2] = puVar12;\n            puVar14 = puVar12 + 8;\n            puVar12[-1] = 0;\n            *(undefined1 *)puVar12 = 0;\n            *(undefined1 *)(puVar6 + 7) = uVar1;\n            puVar6[6] = uVar9;\n            *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n            puVar12 = puVar14;\n            puVar6 = puVar6 + 8;\n            if (puVar8 + 2 == puVar14) goto LAB_00224324;\n          }\n          *puVar6 = (undefined4 *)puVar12[-2];\n          uVar1 = *(undefined1 *)(puVar12 + 5);\n          puVar6[2] = *puVar12;\n          uVar9 = puVar12[4];\n          puVar6[1] = puVar12[-1];\n          puVar12[-2] = puVar12;\n          puVar14 = puVar12 + 8;\n          puVar12[-1] = 0;\n          *(undefined1 *)puVar12 = 0;\n          *(undefined1 *)(puVar6 + 7) = uVar1;\n          puVar6[6] = uVar9;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n          puVar12 = puVar14;\n          puVar6 = puVar6 + 8;\n        } while (puVar8 + 2 != puVar14);\nLAB_00224324:\n        puVar6 = (undefined4 *)param_1[1];\n      }\n      param_1[1] = (int)puVar6 + iVar5;\n      if (0 < iVar5) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar21 = uVar21 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar21 != 0);\n      }\n    }" { (expression_statement "piVar16 = (int *)((int)param_3 + iVar5);" (assignment_expression "piVar16 = (int *)((int)param_3 + iVar5)" identifier = (cast_expression "(int *)((int)param_3 + iVar5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3 + iVar5)" ( (binary_expression "(int)param_3 + iVar5" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "puVar6 = puVar8;" (assignment_expression "puVar6 = puVar8" identifier = identifier) ;) (if_statement "if (piVar16 != param_4) {\n        do {\n          *puVar6 = puVar6 + 2;\n                    /* try { // try from 002241f8 to 002241ff has its CatchHandler @ 002249d8 */\n          (*(code *)puVar4)(puVar6,*piVar16,*piVar16 + piVar16[1],0);\n          piVar17 = piVar16 + 8;\n          iVar18 = piVar16[6];\n          *(undefined1 *)(puVar6 + 7) = *(undefined1 *)(piVar16 + 7);\n          puVar6[6] = iVar18;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)piVar16 + 0x1d);\n          piVar16 = piVar17;\n          puVar6 = puVar6 + 8;\n        } while (param_4 != piVar17);\n        puVar6 = (undefined4 *)param_1[1];\n      }" if (parenthesized_expression "(piVar16 != param_4)" ( (binary_expression "piVar16 != param_4" identifier != identifier) )) (compound_statement "{\n        do {\n          *puVar6 = puVar6 + 2;\n                    /* try { // try from 002241f8 to 002241ff has its CatchHandler @ 002249d8 */\n          (*(code *)puVar4)(puVar6,*piVar16,*piVar16 + piVar16[1],0);\n          piVar17 = piVar16 + 8;\n          iVar18 = piVar16[6];\n          *(undefined1 *)(puVar6 + 7) = *(undefined1 *)(piVar16 + 7);\n          puVar6[6] = iVar18;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)piVar16 + 0x1d);\n          piVar16 = piVar17;\n          puVar6 = puVar6 + 8;\n        } while (param_4 != piVar17);\n        puVar6 = (undefined4 *)param_1[1];\n      }" { (do_statement "do {\n          *puVar6 = puVar6 + 2;\n                    /* try { // try from 002241f8 to 002241ff has its CatchHandler @ 002249d8 */\n          (*(code *)puVar4)(puVar6,*piVar16,*piVar16 + piVar16[1],0);\n          piVar17 = piVar16 + 8;\n          iVar18 = piVar16[6];\n          *(undefined1 *)(puVar6 + 7) = *(undefined1 *)(piVar16 + 7);\n          puVar6[6] = iVar18;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)piVar16 + 0x1d);\n          piVar16 = piVar17;\n          puVar6 = puVar6 + 8;\n        } while (param_4 != piVar17);" do (compound_statement "{\n          *puVar6 = puVar6 + 2;\n                    /* try { // try from 002241f8 to 002241ff has its CatchHandler @ 002249d8 */\n          (*(code *)puVar4)(puVar6,*piVar16,*piVar16 + piVar16[1],0);\n          piVar17 = piVar16 + 8;\n          iVar18 = piVar16[6];\n          *(undefined1 *)(puVar6 + 7) = *(undefined1 *)(piVar16 + 7);\n          puVar6[6] = iVar18;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)piVar16 + 0x1d);\n          piVar16 = piVar17;\n          puVar6 = puVar6 + 8;\n        }" { (expression_statement "*puVar6 = puVar6 + 2;" (assignment_expression "*puVar6 = puVar6 + 2" (pointer_expression "*puVar6" * identifier) = (binary_expression "puVar6 + 2" identifier + number_literal)) ;) comment (expression_statement "(*(code *)puVar4)(puVar6,*piVar16,*piVar16 + piVar16[1],0);" (call_expression "(*(code *)puVar4)(puVar6,*piVar16,*piVar16 + piVar16[1],0)" (parenthesized_expression "(*(code *)puVar4)" ( (pointer_expression "*(code *)puVar4" * (cast_expression "(code *)puVar4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar6,*piVar16,*piVar16 + piVar16[1],0)" ( identifier , (pointer_expression "*piVar16" * identifier) , (binary_expression "*piVar16 + piVar16[1]" (pointer_expression "*piVar16" * identifier) + (subscript_expression "piVar16[1]" identifier [ number_literal ])) , number_literal ))) ;) (expression_statement "piVar17 = piVar16 + 8;" (assignment_expression "piVar17 = piVar16 + 8" identifier = (binary_expression "piVar16 + 8" identifier + number_literal)) ;) (expression_statement "iVar18 = piVar16[6];" (assignment_expression "iVar18 = piVar16[6]" identifier = (subscript_expression "piVar16[6]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(puVar6 + 7) = *(undefined1 *)(piVar16 + 7);" (assignment_expression "*(undefined1 *)(puVar6 + 7) = *(undefined1 *)(piVar16 + 7)" (pointer_expression "*(undefined1 *)(puVar6 + 7)" * (cast_expression "(undefined1 *)(puVar6 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 7)" ( (binary_expression "puVar6 + 7" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)(piVar16 + 7)" * (cast_expression "(undefined1 *)(piVar16 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar16 + 7)" ( (binary_expression "piVar16 + 7" identifier + number_literal) ))))) ;) (expression_statement "puVar6[6] = iVar18;" (assignment_expression "puVar6[6] = iVar18" (subscript_expression "puVar6[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)piVar16 + 0x1d);" (assignment_expression "*(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)piVar16 + 0x1d)" (pointer_expression "*(undefined1 *)((int)puVar6 + 0x1d)" * (cast_expression "(undefined1 *)((int)puVar6 + 0x1d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar6 + 0x1d)" ( (binary_expression "(int)puVar6 + 0x1d" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((int)piVar16 + 0x1d)" * (cast_expression "(undefined1 *)((int)piVar16 + 0x1d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0x1d)" ( (binary_expression "(int)piVar16 + 0x1d" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "piVar16 = piVar17;" (assignment_expression "piVar16 = piVar17" identifier = identifier) ;) (expression_statement "puVar6 = puVar6 + 8;" (assignment_expression "puVar6 = puVar6 + 8" identifier = (binary_expression "puVar6 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(param_4 != piVar17)" ( (binary_expression "param_4 != piVar17" identifier != identifier) )) ;) (expression_statement "puVar6 = (undefined4 *)param_1[1];" (assignment_expression "puVar6 = (undefined4 *)param_1[1]" identifier = (cast_expression "(undefined4 *)param_1[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) })) (expression_statement "puVar6 = puVar6 + (uVar20 - uVar21) * 8;" (assignment_expression "puVar6 = puVar6 + (uVar20 - uVar21) * 8" identifier = (binary_expression "puVar6 + (uVar20 - uVar21) * 8" identifier + (binary_expression "(uVar20 - uVar21) * 8" (parenthesized_expression "(uVar20 - uVar21)" ( (binary_expression "uVar20 - uVar21" identifier - identifier) )) * number_literal))) ;) (expression_statement "param_1[1] = puVar6;" (assignment_expression "param_1[1] = puVar6" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (puVar8 != param_2) {\n        puVar12 = param_2 + 2;\n        do {\n          while( true ) {\n            *puVar6 = puVar6 + 2;\n            if (puVar12 != (undefined4 *)puVar12[-2]) break;\n            uVar13 = puVar12[1];\n            uVar10 = puVar12[2];\n            uVar9 = puVar12[3];\n            puVar6[2] = *puVar12;\n            puVar6[3] = uVar13;\n            puVar6[4] = uVar10;\n            puVar6[5] = uVar9;\n            uVar1 = *(undefined1 *)(puVar12 + 5);\n            uVar9 = puVar12[4];\n            puVar6[1] = puVar12[-1];\n            puVar12[-2] = puVar12;\n            puVar14 = puVar12 + 8;\n            puVar12[-1] = 0;\n            *(undefined1 *)puVar12 = 0;\n            *(undefined1 *)(puVar6 + 7) = uVar1;\n            puVar6[6] = uVar9;\n            *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n            puVar12 = puVar14;\n            puVar6 = puVar6 + 8;\n            if (puVar8 + 2 == puVar14) goto LAB_00224324;\n          }\n          *puVar6 = (undefined4 *)puVar12[-2];\n          uVar1 = *(undefined1 *)(puVar12 + 5);\n          puVar6[2] = *puVar12;\n          uVar9 = puVar12[4];\n          puVar6[1] = puVar12[-1];\n          puVar12[-2] = puVar12;\n          puVar14 = puVar12 + 8;\n          puVar12[-1] = 0;\n          *(undefined1 *)puVar12 = 0;\n          *(undefined1 *)(puVar6 + 7) = uVar1;\n          puVar6[6] = uVar9;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n          puVar12 = puVar14;\n          puVar6 = puVar6 + 8;\n        } while (puVar8 + 2 != puVar14);\nLAB_00224324:\n        puVar6 = (undefined4 *)param_1[1];\n      }" if (parenthesized_expression "(puVar8 != param_2)" ( (binary_expression "puVar8 != param_2" identifier != identifier) )) (compound_statement "{\n        puVar12 = param_2 + 2;\n        do {\n          while( true ) {\n            *puVar6 = puVar6 + 2;\n            if (puVar12 != (undefined4 *)puVar12[-2]) break;\n            uVar13 = puVar12[1];\n            uVar10 = puVar12[2];\n            uVar9 = puVar12[3];\n            puVar6[2] = *puVar12;\n            puVar6[3] = uVar13;\n            puVar6[4] = uVar10;\n            puVar6[5] = uVar9;\n            uVar1 = *(undefined1 *)(puVar12 + 5);\n            uVar9 = puVar12[4];\n            puVar6[1] = puVar12[-1];\n            puVar12[-2] = puVar12;\n            puVar14 = puVar12 + 8;\n            puVar12[-1] = 0;\n            *(undefined1 *)puVar12 = 0;\n            *(undefined1 *)(puVar6 + 7) = uVar1;\n            puVar6[6] = uVar9;\n            *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n            puVar12 = puVar14;\n            puVar6 = puVar6 + 8;\n            if (puVar8 + 2 == puVar14) goto LAB_00224324;\n          }\n          *puVar6 = (undefined4 *)puVar12[-2];\n          uVar1 = *(undefined1 *)(puVar12 + 5);\n          puVar6[2] = *puVar12;\n          uVar9 = puVar12[4];\n          puVar6[1] = puVar12[-1];\n          puVar12[-2] = puVar12;\n          puVar14 = puVar12 + 8;\n          puVar12[-1] = 0;\n          *(undefined1 *)puVar12 = 0;\n          *(undefined1 *)(puVar6 + 7) = uVar1;\n          puVar6[6] = uVar9;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n          puVar12 = puVar14;\n          puVar6 = puVar6 + 8;\n        } while (puVar8 + 2 != puVar14);\nLAB_00224324:\n        puVar6 = (undefined4 *)param_1[1];\n      }" { (expression_statement "puVar12 = param_2 + 2;" (assignment_expression "puVar12 = param_2 + 2" identifier = (binary_expression "param_2 + 2" identifier + number_literal)) ;) (do_statement "do {\n          while( true ) {\n            *puVar6 = puVar6 + 2;\n            if (puVar12 != (undefined4 *)puVar12[-2]) break;\n            uVar13 = puVar12[1];\n            uVar10 = puVar12[2];\n            uVar9 = puVar12[3];\n            puVar6[2] = *puVar12;\n            puVar6[3] = uVar13;\n            puVar6[4] = uVar10;\n            puVar6[5] = uVar9;\n            uVar1 = *(undefined1 *)(puVar12 + 5);\n            uVar9 = puVar12[4];\n            puVar6[1] = puVar12[-1];\n            puVar12[-2] = puVar12;\n            puVar14 = puVar12 + 8;\n            puVar12[-1] = 0;\n            *(undefined1 *)puVar12 = 0;\n            *(undefined1 *)(puVar6 + 7) = uVar1;\n            puVar6[6] = uVar9;\n            *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n            puVar12 = puVar14;\n            puVar6 = puVar6 + 8;\n            if (puVar8 + 2 == puVar14) goto LAB_00224324;\n          }\n          *puVar6 = (undefined4 *)puVar12[-2];\n          uVar1 = *(undefined1 *)(puVar12 + 5);\n          puVar6[2] = *puVar12;\n          uVar9 = puVar12[4];\n          puVar6[1] = puVar12[-1];\n          puVar12[-2] = puVar12;\n          puVar14 = puVar12 + 8;\n          puVar12[-1] = 0;\n          *(undefined1 *)puVar12 = 0;\n          *(undefined1 *)(puVar6 + 7) = uVar1;\n          puVar6[6] = uVar9;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n          puVar12 = puVar14;\n          puVar6 = puVar6 + 8;\n        } while (puVar8 + 2 != puVar14);" do (compound_statement "{\n          while( true ) {\n            *puVar6 = puVar6 + 2;\n            if (puVar12 != (undefined4 *)puVar12[-2]) break;\n            uVar13 = puVar12[1];\n            uVar10 = puVar12[2];\n            uVar9 = puVar12[3];\n            puVar6[2] = *puVar12;\n            puVar6[3] = uVar13;\n            puVar6[4] = uVar10;\n            puVar6[5] = uVar9;\n            uVar1 = *(undefined1 *)(puVar12 + 5);\n            uVar9 = puVar12[4];\n            puVar6[1] = puVar12[-1];\n            puVar12[-2] = puVar12;\n            puVar14 = puVar12 + 8;\n            puVar12[-1] = 0;\n            *(undefined1 *)puVar12 = 0;\n            *(undefined1 *)(puVar6 + 7) = uVar1;\n            puVar6[6] = uVar9;\n            *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n            puVar12 = puVar14;\n            puVar6 = puVar6 + 8;\n            if (puVar8 + 2 == puVar14) goto LAB_00224324;\n          }\n          *puVar6 = (undefined4 *)puVar12[-2];\n          uVar1 = *(undefined1 *)(puVar12 + 5);\n          puVar6[2] = *puVar12;\n          uVar9 = puVar12[4];\n          puVar6[1] = puVar12[-1];\n          puVar12[-2] = puVar12;\n          puVar14 = puVar12 + 8;\n          puVar12[-1] = 0;\n          *(undefined1 *)puVar12 = 0;\n          *(undefined1 *)(puVar6 + 7) = uVar1;\n          puVar6[6] = uVar9;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n          puVar12 = puVar14;\n          puVar6 = puVar6 + 8;\n        }" { (while_statement "while( true ) {\n            *puVar6 = puVar6 + 2;\n            if (puVar12 != (undefined4 *)puVar12[-2]) break;\n            uVar13 = puVar12[1];\n            uVar10 = puVar12[2];\n            uVar9 = puVar12[3];\n            puVar6[2] = *puVar12;\n            puVar6[3] = uVar13;\n            puVar6[4] = uVar10;\n            puVar6[5] = uVar9;\n            uVar1 = *(undefined1 *)(puVar12 + 5);\n            uVar9 = puVar12[4];\n            puVar6[1] = puVar12[-1];\n            puVar12[-2] = puVar12;\n            puVar14 = puVar12 + 8;\n            puVar12[-1] = 0;\n            *(undefined1 *)puVar12 = 0;\n            *(undefined1 *)(puVar6 + 7) = uVar1;\n            puVar6[6] = uVar9;\n            *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n            puVar12 = puVar14;\n            puVar6 = puVar6 + 8;\n            if (puVar8 + 2 == puVar14) goto LAB_00224324;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            *puVar6 = puVar6 + 2;\n            if (puVar12 != (undefined4 *)puVar12[-2]) break;\n            uVar13 = puVar12[1];\n            uVar10 = puVar12[2];\n            uVar9 = puVar12[3];\n            puVar6[2] = *puVar12;\n            puVar6[3] = uVar13;\n            puVar6[4] = uVar10;\n            puVar6[5] = uVar9;\n            uVar1 = *(undefined1 *)(puVar12 + 5);\n            uVar9 = puVar12[4];\n            puVar6[1] = puVar12[-1];\n            puVar12[-2] = puVar12;\n            puVar14 = puVar12 + 8;\n            puVar12[-1] = 0;\n            *(undefined1 *)puVar12 = 0;\n            *(undefined1 *)(puVar6 + 7) = uVar1;\n            puVar6[6] = uVar9;\n            *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n            puVar12 = puVar14;\n            puVar6 = puVar6 + 8;\n            if (puVar8 + 2 == puVar14) goto LAB_00224324;\n          }" { (expression_statement "*puVar6 = puVar6 + 2;" (assignment_expression "*puVar6 = puVar6 + 2" (pointer_expression "*puVar6" * identifier) = (binary_expression "puVar6 + 2" identifier + number_literal)) ;) (if_statement "if (puVar12 != (undefined4 *)puVar12[-2]) break;" if (parenthesized_expression "(puVar12 != (undefined4 *)puVar12[-2])" ( (binary_expression "puVar12 != (undefined4 *)puVar12[-2]" identifier != (cast_expression "(undefined4 *)puVar12[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar12[-2]" identifier [ number_literal ]))) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = puVar12[1];" (assignment_expression "uVar13 = puVar12[1]" identifier = (subscript_expression "puVar12[1]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = puVar12[2];" (assignment_expression "uVar10 = puVar12[2]" identifier = (subscript_expression "puVar12[2]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = puVar12[3];" (assignment_expression "uVar9 = puVar12[3]" identifier = (subscript_expression "puVar12[3]" identifier [ number_literal ])) ;) (expression_statement "puVar6[2] = *puVar12;" (assignment_expression "puVar6[2] = *puVar12" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "puVar6[3] = uVar13;" (assignment_expression "puVar6[3] = uVar13" (subscript_expression "puVar6[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[4] = uVar10;" (assignment_expression "puVar6[4] = uVar10" (subscript_expression "puVar6[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[5] = uVar9;" (assignment_expression "puVar6[5] = uVar9" (subscript_expression "puVar6[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar1 = *(undefined1 *)(puVar12 + 5);" (assignment_expression "uVar1 = *(undefined1 *)(puVar12 + 5)" identifier = (pointer_expression "*(undefined1 *)(puVar12 + 5)" * (cast_expression "(undefined1 *)(puVar12 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 5)" ( (binary_expression "puVar12 + 5" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = puVar12[4];" (assignment_expression "uVar9 = puVar12[4]" identifier = (subscript_expression "puVar12[4]" identifier [ number_literal ])) ;) (expression_statement "puVar6[1] = puVar12[-1];" (assignment_expression "puVar6[1] = puVar12[-1]" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = (subscript_expression "puVar12[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar12[-2] = puVar12;" (assignment_expression "puVar12[-2] = puVar12" (subscript_expression "puVar12[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14 = puVar12 + 8;" (assignment_expression "puVar14 = puVar12 + 8" identifier = (binary_expression "puVar12 + 8" identifier + number_literal)) ;) (expression_statement "puVar12[-1] = 0;" (assignment_expression "puVar12[-1] = 0" (subscript_expression "puVar12[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)puVar12 = 0;" (assignment_expression "*(undefined1 *)puVar12 = 0" (pointer_expression "*(undefined1 *)puVar12" * (cast_expression "(undefined1 *)puVar12" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar6 + 7) = uVar1;" (assignment_expression "*(undefined1 *)(puVar6 + 7) = uVar1" (pointer_expression "*(undefined1 *)(puVar6 + 7)" * (cast_expression "(undefined1 *)(puVar6 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 7)" ( (binary_expression "puVar6 + 7" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar6[6] = uVar9;" (assignment_expression "puVar6[6] = uVar9" (subscript_expression "puVar6[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);" (assignment_expression "*(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15)" (pointer_expression "*(undefined1 *)((int)puVar6 + 0x1d)" * (cast_expression "(undefined1 *)((int)puVar6 + 0x1d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar6 + 0x1d)" ( (binary_expression "(int)puVar6 + 0x1d" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((int)puVar12 + 0x15)" * (cast_expression "(undefined1 *)((int)puVar12 + 0x15)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + 0x15)" ( (binary_expression "(int)puVar12 + 0x15" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar12 = puVar14;" (assignment_expression "puVar12 = puVar14" identifier = identifier) ;) (expression_statement "puVar6 = puVar6 + 8;" (assignment_expression "puVar6 = puVar6 + 8" identifier = (binary_expression "puVar6 + 8" identifier + number_literal)) ;) (if_statement "if (puVar8 + 2 == puVar14) goto LAB_00224324;" if (parenthesized_expression "(puVar8 + 2 == puVar14)" ( (binary_expression "puVar8 + 2 == puVar14" (binary_expression "puVar8 + 2" identifier + number_literal) == identifier) )) (goto_statement "goto LAB_00224324;" goto statement_identifier ;)) })) (expression_statement "*puVar6 = (undefined4 *)puVar12[-2];" (assignment_expression "*puVar6 = (undefined4 *)puVar12[-2]" (pointer_expression "*puVar6" * identifier) = (cast_expression "(undefined4 *)puVar12[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar12[-2]" identifier [ number_literal ]))) ;) (expression_statement "uVar1 = *(undefined1 *)(puVar12 + 5);" (assignment_expression "uVar1 = *(undefined1 *)(puVar12 + 5)" identifier = (pointer_expression "*(undefined1 *)(puVar12 + 5)" * (cast_expression "(undefined1 *)(puVar12 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 5)" ( (binary_expression "puVar12 + 5" identifier + number_literal) ))))) ;) (expression_statement "puVar6[2] = *puVar12;" (assignment_expression "puVar6[2] = *puVar12" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "uVar9 = puVar12[4];" (assignment_expression "uVar9 = puVar12[4]" identifier = (subscript_expression "puVar12[4]" identifier [ number_literal ])) ;) (expression_statement "puVar6[1] = puVar12[-1];" (assignment_expression "puVar6[1] = puVar12[-1]" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = (subscript_expression "puVar12[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar12[-2] = puVar12;" (assignment_expression "puVar12[-2] = puVar12" (subscript_expression "puVar12[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14 = puVar12 + 8;" (assignment_expression "puVar14 = puVar12 + 8" identifier = (binary_expression "puVar12 + 8" identifier + number_literal)) ;) (expression_statement "puVar12[-1] = 0;" (assignment_expression "puVar12[-1] = 0" (subscript_expression "puVar12[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)puVar12 = 0;" (assignment_expression "*(undefined1 *)puVar12 = 0" (pointer_expression "*(undefined1 *)puVar12" * (cast_expression "(undefined1 *)puVar12" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar6 + 7) = uVar1;" (assignment_expression "*(undefined1 *)(puVar6 + 7) = uVar1" (pointer_expression "*(undefined1 *)(puVar6 + 7)" * (cast_expression "(undefined1 *)(puVar6 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 7)" ( (binary_expression "puVar6 + 7" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar6[6] = uVar9;" (assignment_expression "puVar6[6] = uVar9" (subscript_expression "puVar6[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);" (assignment_expression "*(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15)" (pointer_expression "*(undefined1 *)((int)puVar6 + 0x1d)" * (cast_expression "(undefined1 *)((int)puVar6 + 0x1d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar6 + 0x1d)" ( (binary_expression "(int)puVar6 + 0x1d" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((int)puVar12 + 0x15)" * (cast_expression "(undefined1 *)((int)puVar12 + 0x15)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + 0x15)" ( (binary_expression "(int)puVar12 + 0x15" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar12 = puVar14;" (assignment_expression "puVar12 = puVar14" identifier = identifier) ;) (expression_statement "puVar6 = puVar6 + 8;" (assignment_expression "puVar6 = puVar6 + 8" identifier = (binary_expression "puVar6 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar8 + 2 != puVar14)" ( (binary_expression "puVar8 + 2 != puVar14" (binary_expression "puVar8 + 2" identifier + number_literal) != identifier) )) ;) (labeled_statement "LAB_00224324:\n        puVar6 = (undefined4 *)param_1[1];" statement_identifier : (expression_statement "puVar6 = (undefined4 *)param_1[1];" (assignment_expression "puVar6 = (undefined4 *)param_1[1]" identifier = (cast_expression "(undefined4 *)param_1[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;)) })) (expression_statement "param_1[1] = (int)puVar6 + iVar5;" (assignment_expression "param_1[1] = (int)puVar6 + iVar5" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (binary_expression "(int)puVar6 + iVar5" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (if_statement "if (0 < iVar5) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar21 = uVar21 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar21 != 0);\n      }" if (parenthesized_expression "(0 < iVar5)" ( (binary_expression "0 < iVar5" number_literal < identifier) )) (compound_statement "{\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar21 = uVar21 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar21 != 0);\n      }" { (do_statement "do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar21 = uVar21 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar21 != 0);" do (compound_statement "{\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar21 = uVar21 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        }" { (expression_statement "(*(code *)PTR__M_assign_00432d78)(param_2,param_3);" (call_expression "(*(code *)PTR__M_assign_00432d78)(param_2,param_3)" (parenthesized_expression "(*(code *)PTR__M_assign_00432d78)" ( (pointer_expression "*(code *)PTR__M_assign_00432d78" * (cast_expression "(code *)PTR__M_assign_00432d78" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2,param_3)" ( identifier , identifier ))) ;) (expression_statement "uVar21 = uVar21 - 1;" (assignment_expression "uVar21 = uVar21 - 1" identifier = (binary_expression "uVar21 - 1" identifier - number_literal)) ;) (expression_statement "iVar18 = param_3[6];" (assignment_expression "iVar18 = param_3[6]" identifier = (subscript_expression "param_3[6]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);" (assignment_expression "*(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7)" (pointer_expression "*(undefined1 *)(param_2 + 7)" * (cast_expression "(undefined1 *)(param_2 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)(param_3 + 7)" * (cast_expression "(undefined1 *)(param_3 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 7)" ( (binary_expression "param_3 + 7" identifier + number_literal) ))))) ;) (expression_statement "param_2[6] = iVar18;" (assignment_expression "param_2[6] = iVar18" (subscript_expression "param_2[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);" (assignment_expression "*(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d)" (pointer_expression "*(undefined1 *)((int)param_2 + 0x1d)" * (cast_expression "(undefined1 *)((int)param_2 + 0x1d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x1d)" ( (binary_expression "(int)param_2 + 0x1d" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((int)param_3 + 0x1d)" * (cast_expression "(undefined1 *)((int)param_3 + 0x1d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3 + 0x1d)" ( (binary_expression "(int)param_3 + 0x1d" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "param_3 = param_3 + 8;" (assignment_expression "param_3 = param_3 + 8" identifier = (binary_expression "param_3 + 8" identifier + number_literal)) ;) (expression_statement "param_2 = param_2 + 8;" (assignment_expression "param_2 = param_2 + 8" identifier = (binary_expression "param_2 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar21 != 0)" ( (binary_expression "uVar21 != 0" identifier != number_literal) )) ;) })) }))) (return_statement "return;" return ;) })) (expression_statement "puVar6 = (undefined4 *)*param_1;" (assignment_expression "puVar6 = (undefined4 *)*param_1" identifier = (cast_expression "(undefined4 *)*param_1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "uVar21 = 0x7ffffff;" (assignment_expression "uVar21 = 0x7ffffff" identifier = number_literal) ;) (expression_statement "uVar7 = (int)puVar8 - (int)puVar6 >> 5;" (assignment_expression "uVar7 = (int)puVar8 - (int)puVar6 >> 5" identifier = (binary_expression "(int)puVar8 - (int)puVar6 >> 5" (binary_expression "(int)puVar8 - (int)puVar6" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (if_statement "if (0x7ffffff - uVar7 < uVar20) {\n    (*(code *)PTR___throw_length_error_00432480)(PTR_DAT_0043226c + -0x6b60);\n    return;\n  }" if (parenthesized_expression "(0x7ffffff - uVar7 < uVar20)" ( (binary_expression "0x7ffffff - uVar7 < uVar20" (binary_expression "0x7ffffff - uVar7" number_literal - identifier) < identifier) )) (compound_statement "{\n    (*(code *)PTR___throw_length_error_00432480)(PTR_DAT_0043226c + -0x6b60);\n    return;\n  }" { (expression_statement "(*(code *)PTR___throw_length_error_00432480)(PTR_DAT_0043226c + -0x6b60);" (call_expression "(*(code *)PTR___throw_length_error_00432480)(PTR_DAT_0043226c + -0x6b60)" (parenthesized_expression "(*(code *)PTR___throw_length_error_00432480)" ( (pointer_expression "*(code *)PTR___throw_length_error_00432480" * (cast_expression "(code *)PTR___throw_length_error_00432480" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0043226c + -0x6b60)" ( (binary_expression "PTR_DAT_0043226c + -0x6b60" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (if_statement "if (uVar20 < uVar7) {\n    uVar20 = uVar7;\n  }" if (parenthesized_expression "(uVar20 < uVar7)" ( (binary_expression "uVar20 < uVar7" identifier < identifier) )) (compound_statement "{\n    uVar20 = uVar7;\n  }" { (expression_statement "uVar20 = uVar7;" (assignment_expression "uVar20 = uVar7" identifier = identifier) ;) })) (expression_statement "uVar20 = uVar20 + uVar7;" (assignment_expression "uVar20 = uVar20 + uVar7" identifier = (binary_expression "uVar20 + uVar7" identifier + identifier)) ;) (if_statement "if ((uVar20 < uVar7) || (0x7ffffff < uVar20)) {\n    iVar18 = -0x20;\n  }\n  else {\n    puVar8 = (undefined4 *)0x0;\n    uVar21 = uVar20;\n    if (uVar20 == 0) goto LAB_00224414;\n    iVar18 = uVar20 * 0x20;\n  }" if (parenthesized_expression "((uVar20 < uVar7) || (0x7ffffff < uVar20))" ( (binary_expression "(uVar20 < uVar7) || (0x7ffffff < uVar20)" (parenthesized_expression "(uVar20 < uVar7)" ( (binary_expression "uVar20 < uVar7" identifier < identifier) )) || (parenthesized_expression "(0x7ffffff < uVar20)" ( (binary_expression "0x7ffffff < uVar20" number_literal < identifier) ))) )) (compound_statement "{\n    iVar18 = -0x20;\n  }" { (expression_statement "iVar18 = -0x20;" (assignment_expression "iVar18 = -0x20" identifier = number_literal) ;) }) (else_clause "else {\n    puVar8 = (undefined4 *)0x0;\n    uVar21 = uVar20;\n    if (uVar20 == 0) goto LAB_00224414;\n    iVar18 = uVar20 * 0x20;\n  }" else (compound_statement "{\n    puVar8 = (undefined4 *)0x0;\n    uVar21 = uVar20;\n    if (uVar20 == 0) goto LAB_00224414;\n    iVar18 = uVar20 * 0x20;\n  }" { (expression_statement "puVar8 = (undefined4 *)0x0;" (assignment_expression "puVar8 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar21 = uVar20;" (assignment_expression "uVar21 = uVar20" identifier = identifier) ;) (if_statement "if (uVar20 == 0) goto LAB_00224414;" if (parenthesized_expression "(uVar20 == 0)" ( (binary_expression "uVar20 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00224414;" goto statement_identifier ;)) (expression_statement "iVar18 = uVar20 * 0x20;" (assignment_expression "iVar18 = uVar20 * 0x20" identifier = (binary_expression "uVar20 * 0x20" identifier * number_literal)) ;) }))) (expression_statement "puVar8 = (undefined4 *)(*(code *)PTR_operator_new_0043233c)(iVar18);" (assignment_expression "puVar8 = (undefined4 *)(*(code *)PTR_operator_new_0043233c)(iVar18)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_operator_new_0043233c)(iVar18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_0043233c)(iVar18)" (parenthesized_expression "(*(code *)PTR_operator_new_0043233c)" ( (pointer_expression "*(code *)PTR_operator_new_0043233c" * (cast_expression "(code *)PTR_operator_new_0043233c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar18)" ( identifier ))))) ;) (expression_statement "puVar6 = (undefined4 *)*param_1;" (assignment_expression "puVar6 = (undefined4 *)*param_1" identifier = (cast_expression "(undefined4 *)*param_1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (labeled_statement "LAB_00224414:\n  puVar12 = puVar8;" statement_identifier : (expression_statement "puVar12 = puVar8;" (assignment_expression "puVar12 = puVar8" identifier = identifier) ;)) (expression_statement "pcVar3 = (code *)PTR__M_construct<char*>_0043248c;" (assignment_expression "pcVar3 = (code *)PTR__M_construct<char*>_0043248c" identifier = (binary_expression "(code *)PTR__M_construct<char*>_0043248c" (binary_expression "(code *)PTR__M_construct<char" (cast_expression "(code *)PTR__M_construct" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) < identifier) (ERROR "*" *) > identifier)) ;) (if_statement "if (puVar6 != param_2) {\n    puVar12 = puVar6 + 2;\n    puVar14 = puVar8;\n    do {\n      while( true ) {\n        *puVar14 = puVar14 + 2;\n        if ((undefined4 *)puVar12[-2] != puVar12) break;\n        uVar13 = puVar12[1];\n        uVar10 = puVar12[2];\n        uVar9 = puVar12[3];\n        puVar14[2] = *puVar12;\n        puVar14[3] = uVar13;\n        puVar14[4] = uVar10;\n        puVar14[5] = uVar9;\n        uVar1 = *(undefined1 *)(puVar12 + 5);\n        uVar9 = puVar12[4];\n        puVar14[1] = puVar12[-1];\n        puVar12[-2] = puVar12;\n        puVar15 = puVar12 + 8;\n        puVar12[-1] = 0;\n        *(undefined1 *)puVar12 = 0;\n        *(undefined1 *)(puVar14 + 7) = uVar1;\n        puVar14[6] = uVar9;\n        *(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n        puVar12 = puVar15;\n        puVar14 = puVar14 + 8;\n        if (puVar15 == param_2 + 2) goto LAB_00224504;\n      }\n      *puVar14 = (undefined4 *)puVar12[-2];\n      uVar1 = *(undefined1 *)(puVar12 + 5);\n      puVar14[2] = *puVar12;\n      uVar9 = puVar12[4];\n      puVar14[1] = puVar12[-1];\n      puVar12[-2] = puVar12;\n      puVar15 = puVar12 + 8;\n      puVar12[-1] = 0;\n      *(undefined1 *)puVar12 = 0;\n      *(undefined1 *)(puVar14 + 7) = uVar1;\n      puVar14[6] = uVar9;\n      *(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n      puVar12 = puVar15;\n      puVar14 = puVar14 + 8;\n    } while (puVar15 != param_2 + 2);\nLAB_00224504:\n    puVar12 = puVar8 + (((uint)((int)param_2 + (-0x20 - (int)puVar6)) >> 5) + 1) * 8;\n    pcVar3 = (code *)PTR__M_construct<char*>_0043248c;\n  }" if (parenthesized_expression "(puVar6 != param_2)" ( (binary_expression "puVar6 != param_2" identifier != identifier) )) (compound_statement "{\n    puVar12 = puVar6 + 2;\n    puVar14 = puVar8;\n    do {\n      while( true ) {\n        *puVar14 = puVar14 + 2;\n        if ((undefined4 *)puVar12[-2] != puVar12) break;\n        uVar13 = puVar12[1];\n        uVar10 = puVar12[2];\n        uVar9 = puVar12[3];\n        puVar14[2] = *puVar12;\n        puVar14[3] = uVar13;\n        puVar14[4] = uVar10;\n        puVar14[5] = uVar9;\n        uVar1 = *(undefined1 *)(puVar12 + 5);\n        uVar9 = puVar12[4];\n        puVar14[1] = puVar12[-1];\n        puVar12[-2] = puVar12;\n        puVar15 = puVar12 + 8;\n        puVar12[-1] = 0;\n        *(undefined1 *)puVar12 = 0;\n        *(undefined1 *)(puVar14 + 7) = uVar1;\n        puVar14[6] = uVar9;\n        *(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n        puVar12 = puVar15;\n        puVar14 = puVar14 + 8;\n        if (puVar15 == param_2 + 2) goto LAB_00224504;\n      }\n      *puVar14 = (undefined4 *)puVar12[-2];\n      uVar1 = *(undefined1 *)(puVar12 + 5);\n      puVar14[2] = *puVar12;\n      uVar9 = puVar12[4];\n      puVar14[1] = puVar12[-1];\n      puVar12[-2] = puVar12;\n      puVar15 = puVar12 + 8;\n      puVar12[-1] = 0;\n      *(undefined1 *)puVar12 = 0;\n      *(undefined1 *)(puVar14 + 7) = uVar1;\n      puVar14[6] = uVar9;\n      *(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n      puVar12 = puVar15;\n      puVar14 = puVar14 + 8;\n    } while (puVar15 != param_2 + 2);\nLAB_00224504:\n    puVar12 = puVar8 + (((uint)((int)param_2 + (-0x20 - (int)puVar6)) >> 5) + 1) * 8;\n    pcVar3 = (code *)PTR__M_construct<char*>_0043248c;\n  }" { (expression_statement "puVar12 = puVar6 + 2;" (assignment_expression "puVar12 = puVar6 + 2" identifier = (binary_expression "puVar6 + 2" identifier + number_literal)) ;) (expression_statement "puVar14 = puVar8;" (assignment_expression "puVar14 = puVar8" identifier = identifier) ;) (do_statement "do {\n      while( true ) {\n        *puVar14 = puVar14 + 2;\n        if ((undefined4 *)puVar12[-2] != puVar12) break;\n        uVar13 = puVar12[1];\n        uVar10 = puVar12[2];\n        uVar9 = puVar12[3];\n        puVar14[2] = *puVar12;\n        puVar14[3] = uVar13;\n        puVar14[4] = uVar10;\n        puVar14[5] = uVar9;\n        uVar1 = *(undefined1 *)(puVar12 + 5);\n        uVar9 = puVar12[4];\n        puVar14[1] = puVar12[-1];\n        puVar12[-2] = puVar12;\n        puVar15 = puVar12 + 8;\n        puVar12[-1] = 0;\n        *(undefined1 *)puVar12 = 0;\n        *(undefined1 *)(puVar14 + 7) = uVar1;\n        puVar14[6] = uVar9;\n        *(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n        puVar12 = puVar15;\n        puVar14 = puVar14 + 8;\n        if (puVar15 == param_2 + 2) goto LAB_00224504;\n      }\n      *puVar14 = (undefined4 *)puVar12[-2];\n      uVar1 = *(undefined1 *)(puVar12 + 5);\n      puVar14[2] = *puVar12;\n      uVar9 = puVar12[4];\n      puVar14[1] = puVar12[-1];\n      puVar12[-2] = puVar12;\n      puVar15 = puVar12 + 8;\n      puVar12[-1] = 0;\n      *(undefined1 *)puVar12 = 0;\n      *(undefined1 *)(puVar14 + 7) = uVar1;\n      puVar14[6] = uVar9;\n      *(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n      puVar12 = puVar15;\n      puVar14 = puVar14 + 8;\n    } while (puVar15 != param_2 + 2);" do (compound_statement "{\n      while( true ) {\n        *puVar14 = puVar14 + 2;\n        if ((undefined4 *)puVar12[-2] != puVar12) break;\n        uVar13 = puVar12[1];\n        uVar10 = puVar12[2];\n        uVar9 = puVar12[3];\n        puVar14[2] = *puVar12;\n        puVar14[3] = uVar13;\n        puVar14[4] = uVar10;\n        puVar14[5] = uVar9;\n        uVar1 = *(undefined1 *)(puVar12 + 5);\n        uVar9 = puVar12[4];\n        puVar14[1] = puVar12[-1];\n        puVar12[-2] = puVar12;\n        puVar15 = puVar12 + 8;\n        puVar12[-1] = 0;\n        *(undefined1 *)puVar12 = 0;\n        *(undefined1 *)(puVar14 + 7) = uVar1;\n        puVar14[6] = uVar9;\n        *(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n        puVar12 = puVar15;\n        puVar14 = puVar14 + 8;\n        if (puVar15 == param_2 + 2) goto LAB_00224504;\n      }\n      *puVar14 = (undefined4 *)puVar12[-2];\n      uVar1 = *(undefined1 *)(puVar12 + 5);\n      puVar14[2] = *puVar12;\n      uVar9 = puVar12[4];\n      puVar14[1] = puVar12[-1];\n      puVar12[-2] = puVar12;\n      puVar15 = puVar12 + 8;\n      puVar12[-1] = 0;\n      *(undefined1 *)puVar12 = 0;\n      *(undefined1 *)(puVar14 + 7) = uVar1;\n      puVar14[6] = uVar9;\n      *(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n      puVar12 = puVar15;\n      puVar14 = puVar14 + 8;\n    }" { (while_statement "while( true ) {\n        *puVar14 = puVar14 + 2;\n        if ((undefined4 *)puVar12[-2] != puVar12) break;\n        uVar13 = puVar12[1];\n        uVar10 = puVar12[2];\n        uVar9 = puVar12[3];\n        puVar14[2] = *puVar12;\n        puVar14[3] = uVar13;\n        puVar14[4] = uVar10;\n        puVar14[5] = uVar9;\n        uVar1 = *(undefined1 *)(puVar12 + 5);\n        uVar9 = puVar12[4];\n        puVar14[1] = puVar12[-1];\n        puVar12[-2] = puVar12;\n        puVar15 = puVar12 + 8;\n        puVar12[-1] = 0;\n        *(undefined1 *)puVar12 = 0;\n        *(undefined1 *)(puVar14 + 7) = uVar1;\n        puVar14[6] = uVar9;\n        *(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n        puVar12 = puVar15;\n        puVar14 = puVar14 + 8;\n        if (puVar15 == param_2 + 2) goto LAB_00224504;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        *puVar14 = puVar14 + 2;\n        if ((undefined4 *)puVar12[-2] != puVar12) break;\n        uVar13 = puVar12[1];\n        uVar10 = puVar12[2];\n        uVar9 = puVar12[3];\n        puVar14[2] = *puVar12;\n        puVar14[3] = uVar13;\n        puVar14[4] = uVar10;\n        puVar14[5] = uVar9;\n        uVar1 = *(undefined1 *)(puVar12 + 5);\n        uVar9 = puVar12[4];\n        puVar14[1] = puVar12[-1];\n        puVar12[-2] = puVar12;\n        puVar15 = puVar12 + 8;\n        puVar12[-1] = 0;\n        *(undefined1 *)puVar12 = 0;\n        *(undefined1 *)(puVar14 + 7) = uVar1;\n        puVar14[6] = uVar9;\n        *(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n        puVar12 = puVar15;\n        puVar14 = puVar14 + 8;\n        if (puVar15 == param_2 + 2) goto LAB_00224504;\n      }" { (expression_statement "*puVar14 = puVar14 + 2;" (assignment_expression "*puVar14 = puVar14 + 2" (pointer_expression "*puVar14" * identifier) = (binary_expression "puVar14 + 2" identifier + number_literal)) ;) (if_statement "if ((undefined4 *)puVar12[-2] != puVar12) break;" if (parenthesized_expression "((undefined4 *)puVar12[-2] != puVar12)" ( (binary_expression "(undefined4 *)puVar12[-2] != puVar12" (cast_expression "(undefined4 *)puVar12[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar12[-2]" identifier [ number_literal ])) != identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = puVar12[1];" (assignment_expression "uVar13 = puVar12[1]" identifier = (subscript_expression "puVar12[1]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = puVar12[2];" (assignment_expression "uVar10 = puVar12[2]" identifier = (subscript_expression "puVar12[2]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = puVar12[3];" (assignment_expression "uVar9 = puVar12[3]" identifier = (subscript_expression "puVar12[3]" identifier [ number_literal ])) ;) (expression_statement "puVar14[2] = *puVar12;" (assignment_expression "puVar14[2] = *puVar12" (subscript_expression "puVar14[2]" identifier [ number_literal ]) = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "puVar14[3] = uVar13;" (assignment_expression "puVar14[3] = uVar13" (subscript_expression "puVar14[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[4] = uVar10;" (assignment_expression "puVar14[4] = uVar10" (subscript_expression "puVar14[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[5] = uVar9;" (assignment_expression "puVar14[5] = uVar9" (subscript_expression "puVar14[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar1 = *(undefined1 *)(puVar12 + 5);" (assignment_expression "uVar1 = *(undefined1 *)(puVar12 + 5)" identifier = (pointer_expression "*(undefined1 *)(puVar12 + 5)" * (cast_expression "(undefined1 *)(puVar12 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 5)" ( (binary_expression "puVar12 + 5" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = puVar12[4];" (assignment_expression "uVar9 = puVar12[4]" identifier = (subscript_expression "puVar12[4]" identifier [ number_literal ])) ;) (expression_statement "puVar14[1] = puVar12[-1];" (assignment_expression "puVar14[1] = puVar12[-1]" (subscript_expression "puVar14[1]" identifier [ number_literal ]) = (subscript_expression "puVar12[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar12[-2] = puVar12;" (assignment_expression "puVar12[-2] = puVar12" (subscript_expression "puVar12[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15 = puVar12 + 8;" (assignment_expression "puVar15 = puVar12 + 8" identifier = (binary_expression "puVar12 + 8" identifier + number_literal)) ;) (expression_statement "puVar12[-1] = 0;" (assignment_expression "puVar12[-1] = 0" (subscript_expression "puVar12[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)puVar12 = 0;" (assignment_expression "*(undefined1 *)puVar12 = 0" (pointer_expression "*(undefined1 *)puVar12" * (cast_expression "(undefined1 *)puVar12" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar14 + 7) = uVar1;" (assignment_expression "*(undefined1 *)(puVar14 + 7) = uVar1" (pointer_expression "*(undefined1 *)(puVar14 + 7)" * (cast_expression "(undefined1 *)(puVar14 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 7)" ( (binary_expression "puVar14 + 7" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar14[6] = uVar9;" (assignment_expression "puVar14[6] = uVar9" (subscript_expression "puVar14[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);" (assignment_expression "*(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15)" (pointer_expression "*(undefined1 *)((int)puVar14 + 0x1d)" * (cast_expression "(undefined1 *)((int)puVar14 + 0x1d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar14 + 0x1d)" ( (binary_expression "(int)puVar14 + 0x1d" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((int)puVar12 + 0x15)" * (cast_expression "(undefined1 *)((int)puVar12 + 0x15)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + 0x15)" ( (binary_expression "(int)puVar12 + 0x15" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar12 = puVar15;" (assignment_expression "puVar12 = puVar15" identifier = identifier) ;) (expression_statement "puVar14 = puVar14 + 8;" (assignment_expression "puVar14 = puVar14 + 8" identifier = (binary_expression "puVar14 + 8" identifier + number_literal)) ;) (if_statement "if (puVar15 == param_2 + 2) goto LAB_00224504;" if (parenthesized_expression "(puVar15 == param_2 + 2)" ( (binary_expression "puVar15 == param_2 + 2" identifier == (binary_expression "param_2 + 2" identifier + number_literal)) )) (goto_statement "goto LAB_00224504;" goto statement_identifier ;)) })) (expression_statement "*puVar14 = (undefined4 *)puVar12[-2];" (assignment_expression "*puVar14 = (undefined4 *)puVar12[-2]" (pointer_expression "*puVar14" * identifier) = (cast_expression "(undefined4 *)puVar12[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar12[-2]" identifier [ number_literal ]))) ;) (expression_statement "uVar1 = *(undefined1 *)(puVar12 + 5);" (assignment_expression "uVar1 = *(undefined1 *)(puVar12 + 5)" identifier = (pointer_expression "*(undefined1 *)(puVar12 + 5)" * (cast_expression "(undefined1 *)(puVar12 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 5)" ( (binary_expression "puVar12 + 5" identifier + number_literal) ))))) ;) (expression_statement "puVar14[2] = *puVar12;" (assignment_expression "puVar14[2] = *puVar12" (subscript_expression "puVar14[2]" identifier [ number_literal ]) = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "uVar9 = puVar12[4];" (assignment_expression "uVar9 = puVar12[4]" identifier = (subscript_expression "puVar12[4]" identifier [ number_literal ])) ;) (expression_statement "puVar14[1] = puVar12[-1];" (assignment_expression "puVar14[1] = puVar12[-1]" (subscript_expression "puVar14[1]" identifier [ number_literal ]) = (subscript_expression "puVar12[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar12[-2] = puVar12;" (assignment_expression "puVar12[-2] = puVar12" (subscript_expression "puVar12[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15 = puVar12 + 8;" (assignment_expression "puVar15 = puVar12 + 8" identifier = (binary_expression "puVar12 + 8" identifier + number_literal)) ;) (expression_statement "puVar12[-1] = 0;" (assignment_expression "puVar12[-1] = 0" (subscript_expression "puVar12[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)puVar12 = 0;" (assignment_expression "*(undefined1 *)puVar12 = 0" (pointer_expression "*(undefined1 *)puVar12" * (cast_expression "(undefined1 *)puVar12" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar14 + 7) = uVar1;" (assignment_expression "*(undefined1 *)(puVar14 + 7) = uVar1" (pointer_expression "*(undefined1 *)(puVar14 + 7)" * (cast_expression "(undefined1 *)(puVar14 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 7)" ( (binary_expression "puVar14 + 7" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar14[6] = uVar9;" (assignment_expression "puVar14[6] = uVar9" (subscript_expression "puVar14[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);" (assignment_expression "*(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15)" (pointer_expression "*(undefined1 *)((int)puVar14 + 0x1d)" * (cast_expression "(undefined1 *)((int)puVar14 + 0x1d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar14 + 0x1d)" ( (binary_expression "(int)puVar14 + 0x1d" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((int)puVar12 + 0x15)" * (cast_expression "(undefined1 *)((int)puVar12 + 0x15)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + 0x15)" ( (binary_expression "(int)puVar12 + 0x15" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar12 = puVar15;" (assignment_expression "puVar12 = puVar15" identifier = identifier) ;) (expression_statement "puVar14 = puVar14 + 8;" (assignment_expression "puVar14 = puVar14 + 8" identifier = (binary_expression "puVar14 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar15 != param_2 + 2)" ( (binary_expression "puVar15 != param_2 + 2" identifier != (binary_expression "param_2 + 2" identifier + number_literal)) )) ;) (labeled_statement "LAB_00224504:\n    puVar12 = puVar8 + (((uint)((int)param_2 + (-0x20 - (int)puVar6)) >> 5) + 1) * 8;" statement_identifier : (expression_statement "puVar12 = puVar8 + (((uint)((int)param_2 + (-0x20 - (int)puVar6)) >> 5) + 1) * 8;" (assignment_expression "puVar12 = puVar8 + (((uint)((int)param_2 + (-0x20 - (int)puVar6)) >> 5) + 1) * 8" identifier = (binary_expression "puVar8 + (((uint)((int)param_2 + (-0x20 - (int)puVar6)) >> 5) + 1) * 8" identifier + (binary_expression "(((uint)((int)param_2 + (-0x20 - (int)puVar6)) >> 5) + 1) * 8" (parenthesized_expression "(((uint)((int)param_2 + (-0x20 - (int)puVar6)) >> 5) + 1)" ( (binary_expression "((uint)((int)param_2 + (-0x20 - (int)puVar6)) >> 5) + 1" (parenthesized_expression "((uint)((int)param_2 + (-0x20 - (int)puVar6)) >> 5)" ( (binary_expression "(uint)((int)param_2 + (-0x20 - (int)puVar6)) >> 5" (call_expression "(uint)((int)param_2 + (-0x20 - (int)puVar6))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)param_2 + (-0x20 - (int)puVar6))" ( (binary_expression "(int)param_2 + (-0x20 - (int)puVar6)" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-0x20 - (int)puVar6)" ( (binary_expression "-0x20 - (int)puVar6" number_literal - (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))) >> number_literal) )) + number_literal) )) * number_literal))) ;)) (expression_statement "pcVar3 = (code *)PTR__M_construct<char*>_0043248c;" (assignment_expression "pcVar3 = (code *)PTR__M_construct<char*>_0043248c" identifier = (binary_expression "(code *)PTR__M_construct<char*>_0043248c" (binary_expression "(code *)PTR__M_construct<char" (cast_expression "(code *)PTR__M_construct" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) < identifier) (ERROR "*" *) > identifier)) ;) })) (do_statement "do {\n    iVar18 = *param_3;\n    iVar5 = param_3[1];\n    *puVar12 = puVar12 + 2;\n                    /* try { // try from 00224544 to 0022454b has its CatchHandler @ 002249b4 */\n    (*pcVar3)(puVar12,iVar18,iVar18 + iVar5,0);\n    piVar16 = param_3 + 8;\n    puVar6 = puVar12 + 8;\n    uVar1 = *(undefined1 *)(param_3 + 7);\n    uVar2 = *(undefined1 *)((int)param_3 + 0x1d);\n    puVar12[6] = param_3[6];\n    *(undefined1 *)(puVar12 + 7) = uVar1;\n    *(undefined1 *)((int)puVar12 + 0x1d) = uVar2;\n    param_3 = piVar16;\n    puVar12 = puVar6;\n  } while (param_4 != piVar16);" do (compound_statement "{\n    iVar18 = *param_3;\n    iVar5 = param_3[1];\n    *puVar12 = puVar12 + 2;\n                    /* try { // try from 00224544 to 0022454b has its CatchHandler @ 002249b4 */\n    (*pcVar3)(puVar12,iVar18,iVar18 + iVar5,0);\n    piVar16 = param_3 + 8;\n    puVar6 = puVar12 + 8;\n    uVar1 = *(undefined1 *)(param_3 + 7);\n    uVar2 = *(undefined1 *)((int)param_3 + 0x1d);\n    puVar12[6] = param_3[6];\n    *(undefined1 *)(puVar12 + 7) = uVar1;\n    *(undefined1 *)((int)puVar12 + 0x1d) = uVar2;\n    param_3 = piVar16;\n    puVar12 = puVar6;\n  }" { (expression_statement "iVar18 = *param_3;" (assignment_expression "iVar18 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "iVar5 = param_3[1];" (assignment_expression "iVar5 = param_3[1]" identifier = (subscript_expression "param_3[1]" identifier [ number_literal ])) ;) (expression_statement "*puVar12 = puVar12 + 2;" (assignment_expression "*puVar12 = puVar12 + 2" (pointer_expression "*puVar12" * identifier) = (binary_expression "puVar12 + 2" identifier + number_literal)) ;) comment (expression_statement "(*pcVar3)(puVar12,iVar18,iVar18 + iVar5,0);" (call_expression "(*pcVar3)(puVar12,iVar18,iVar18 + iVar5,0)" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "(puVar12,iVar18,iVar18 + iVar5,0)" ( identifier , identifier , (binary_expression "iVar18 + iVar5" identifier + identifier) , number_literal ))) ;) (expression_statement "piVar16 = param_3 + 8;" (assignment_expression "piVar16 = param_3 + 8" identifier = (binary_expression "param_3 + 8" identifier + number_literal)) ;) (expression_statement "puVar6 = puVar12 + 8;" (assignment_expression "puVar6 = puVar12 + 8" identifier = (binary_expression "puVar12 + 8" identifier + number_literal)) ;) (expression_statement "uVar1 = *(undefined1 *)(param_3 + 7);" (assignment_expression "uVar1 = *(undefined1 *)(param_3 + 7)" identifier = (pointer_expression "*(undefined1 *)(param_3 + 7)" * (cast_expression "(undefined1 *)(param_3 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 7)" ( (binary_expression "param_3 + 7" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = *(undefined1 *)((int)param_3 + 0x1d);" (assignment_expression "uVar2 = *(undefined1 *)((int)param_3 + 0x1d)" identifier = (pointer_expression "*(undefined1 *)((int)param_3 + 0x1d)" * (cast_expression "(undefined1 *)((int)param_3 + 0x1d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3 + 0x1d)" ( (binary_expression "(int)param_3 + 0x1d" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar12[6] = param_3[6];" (assignment_expression "puVar12[6] = param_3[6]" (subscript_expression "puVar12[6]" identifier [ number_literal ]) = (subscript_expression "param_3[6]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(puVar12 + 7) = uVar1;" (assignment_expression "*(undefined1 *)(puVar12 + 7) = uVar1" (pointer_expression "*(undefined1 *)(puVar12 + 7)" * (cast_expression "(undefined1 *)(puVar12 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 7)" ( (binary_expression "puVar12 + 7" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar12 + 0x1d) = uVar2;" (assignment_expression "*(undefined1 *)((int)puVar12 + 0x1d) = uVar2" (pointer_expression "*(undefined1 *)((int)puVar12 + 0x1d)" * (cast_expression "(undefined1 *)((int)puVar12 + 0x1d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + 0x1d)" ( (binary_expression "(int)puVar12 + 0x1d" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "param_3 = piVar16;" (assignment_expression "param_3 = piVar16" identifier = identifier) ;) (expression_statement "puVar12 = puVar6;" (assignment_expression "puVar12 = puVar6" identifier = identifier) ;) }) while (parenthesized_expression "(param_4 != piVar16)" ( (binary_expression "param_4 != piVar16" identifier != identifier) )) ;) (expression_statement "puVar12 = (undefined4 *)param_1[1];" (assignment_expression "puVar12 = (undefined4 *)param_1[1]" identifier = (cast_expression "(undefined4 *)param_1[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (if_statement "if (puVar12 != param_2) {\n    uVar20 = (int)puVar12 + (-0x20 - (int)param_2);\n    puVar15 = (undefined4 *)((int)param_2 + uVar20 + 0x28);\n    puVar12 = puVar6;\n    puVar14 = param_2 + 2;\n    do {\n      while( true ) {\n        puVar11 = (undefined4 *)puVar14[-2];\n        *puVar12 = puVar12 + 2;\n        if (puVar11 != puVar14) break;\n        uVar13 = puVar14[1];\n        uVar10 = puVar14[2];\n        uVar9 = puVar14[3];\n        puVar12[2] = *puVar14;\n        puVar12[3] = uVar13;\n        puVar12[4] = uVar10;\n        puVar12[5] = uVar9;\n        puVar14[-2] = puVar14;\n        puVar11 = puVar14 + 8;\n        uVar9 = puVar14[4];\n        uVar1 = *(undefined1 *)(puVar14 + 5);\n        uVar2 = *(undefined1 *)((int)puVar14 + 0x15);\n        puVar12[1] = puVar14[-1];\n        puVar12[6] = uVar9;\n        puVar14[-1] = 0;\n        *(undefined1 *)puVar14 = 0;\n        *(undefined1 *)(puVar12 + 7) = uVar1;\n        *(undefined1 *)((int)puVar12 + 0x1d) = uVar2;\n        puVar12 = puVar12 + 8;\n        puVar14 = puVar11;\n        if (puVar15 == puVar11) goto LAB_00224668;\n      }\n      uVar9 = *puVar14;\n      uVar13 = puVar14[-1];\n      uVar10 = puVar14[4];\n      *puVar12 = puVar11;\n      puVar12[2] = uVar9;\n      puVar14[-2] = puVar14;\n      puVar11 = puVar14 + 8;\n      puVar12[1] = uVar13;\n      puVar12[6] = uVar10;\n      uVar1 = *(undefined1 *)((int)puVar14 + 0x15);\n      *(undefined1 *)(puVar12 + 7) = *(undefined1 *)(puVar14 + 5);\n      puVar14[-1] = 0;\n      *(undefined1 *)puVar14 = 0;\n      *(undefined1 *)((int)puVar12 + 0x1d) = uVar1;\n      puVar12 = puVar12 + 8;\n      puVar14 = puVar11;\n    } while (puVar15 != puVar11);\nLAB_00224668:\n    puVar12 = (undefined4 *)param_1[1];\n    puVar6 = puVar6 + ((uVar20 >> 5) + 1) * 8;\n  }" if (parenthesized_expression "(puVar12 != param_2)" ( (binary_expression "puVar12 != param_2" identifier != identifier) )) (compound_statement "{\n    uVar20 = (int)puVar12 + (-0x20 - (int)param_2);\n    puVar15 = (undefined4 *)((int)param_2 + uVar20 + 0x28);\n    puVar12 = puVar6;\n    puVar14 = param_2 + 2;\n    do {\n      while( true ) {\n        puVar11 = (undefined4 *)puVar14[-2];\n        *puVar12 = puVar12 + 2;\n        if (puVar11 != puVar14) break;\n        uVar13 = puVar14[1];\n        uVar10 = puVar14[2];\n        uVar9 = puVar14[3];\n        puVar12[2] = *puVar14;\n        puVar12[3] = uVar13;\n        puVar12[4] = uVar10;\n        puVar12[5] = uVar9;\n        puVar14[-2] = puVar14;\n        puVar11 = puVar14 + 8;\n        uVar9 = puVar14[4];\n        uVar1 = *(undefined1 *)(puVar14 + 5);\n        uVar2 = *(undefined1 *)((int)puVar14 + 0x15);\n        puVar12[1] = puVar14[-1];\n        puVar12[6] = uVar9;\n        puVar14[-1] = 0;\n        *(undefined1 *)puVar14 = 0;\n        *(undefined1 *)(puVar12 + 7) = uVar1;\n        *(undefined1 *)((int)puVar12 + 0x1d) = uVar2;\n        puVar12 = puVar12 + 8;\n        puVar14 = puVar11;\n        if (puVar15 == puVar11) goto LAB_00224668;\n      }\n      uVar9 = *puVar14;\n      uVar13 = puVar14[-1];\n      uVar10 = puVar14[4];\n      *puVar12 = puVar11;\n      puVar12[2] = uVar9;\n      puVar14[-2] = puVar14;\n      puVar11 = puVar14 + 8;\n      puVar12[1] = uVar13;\n      puVar12[6] = uVar10;\n      uVar1 = *(undefined1 *)((int)puVar14 + 0x15);\n      *(undefined1 *)(puVar12 + 7) = *(undefined1 *)(puVar14 + 5);\n      puVar14[-1] = 0;\n      *(undefined1 *)puVar14 = 0;\n      *(undefined1 *)((int)puVar12 + 0x1d) = uVar1;\n      puVar12 = puVar12 + 8;\n      puVar14 = puVar11;\n    } while (puVar15 != puVar11);\nLAB_00224668:\n    puVar12 = (undefined4 *)param_1[1];\n    puVar6 = puVar6 + ((uVar20 >> 5) + 1) * 8;\n  }" { (expression_statement "uVar20 = (int)puVar12 + (-0x20 - (int)param_2);" (assignment_expression "uVar20 = (int)puVar12 + (-0x20 - (int)param_2)" identifier = (binary_expression "(int)puVar12 + (-0x20 - (int)param_2)" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-0x20 - (int)param_2)" ( (binary_expression "-0x20 - (int)param_2" number_literal - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "puVar15 = (undefined4 *)((int)param_2 + uVar20 + 0x28);" (assignment_expression "puVar15 = (undefined4 *)((int)param_2 + uVar20 + 0x28)" identifier = (cast_expression "(undefined4 *)((int)param_2 + uVar20 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + uVar20 + 0x28)" ( (binary_expression "(int)param_2 + uVar20 + 0x28" (binary_expression "(int)param_2 + uVar20" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "puVar12 = puVar6;" (assignment_expression "puVar12 = puVar6" identifier = identifier) ;) (expression_statement "puVar14 = param_2 + 2;" (assignment_expression "puVar14 = param_2 + 2" identifier = (binary_expression "param_2 + 2" identifier + number_literal)) ;) (do_statement "do {\n      while( true ) {\n        puVar11 = (undefined4 *)puVar14[-2];\n        *puVar12 = puVar12 + 2;\n        if (puVar11 != puVar14) break;\n        uVar13 = puVar14[1];\n        uVar10 = puVar14[2];\n        uVar9 = puVar14[3];\n        puVar12[2] = *puVar14;\n        puVar12[3] = uVar13;\n        puVar12[4] = uVar10;\n        puVar12[5] = uVar9;\n        puVar14[-2] = puVar14;\n        puVar11 = puVar14 + 8;\n        uVar9 = puVar14[4];\n        uVar1 = *(undefined1 *)(puVar14 + 5);\n        uVar2 = *(undefined1 *)((int)puVar14 + 0x15);\n        puVar12[1] = puVar14[-1];\n        puVar12[6] = uVar9;\n        puVar14[-1] = 0;\n        *(undefined1 *)puVar14 = 0;\n        *(undefined1 *)(puVar12 + 7) = uVar1;\n        *(undefined1 *)((int)puVar12 + 0x1d) = uVar2;\n        puVar12 = puVar12 + 8;\n        puVar14 = puVar11;\n        if (puVar15 == puVar11) goto LAB_00224668;\n      }\n      uVar9 = *puVar14;\n      uVar13 = puVar14[-1];\n      uVar10 = puVar14[4];\n      *puVar12 = puVar11;\n      puVar12[2] = uVar9;\n      puVar14[-2] = puVar14;\n      puVar11 = puVar14 + 8;\n      puVar12[1] = uVar13;\n      puVar12[6] = uVar10;\n      uVar1 = *(undefined1 *)((int)puVar14 + 0x15);\n      *(undefined1 *)(puVar12 + 7) = *(undefined1 *)(puVar14 + 5);\n      puVar14[-1] = 0;\n      *(undefined1 *)puVar14 = 0;\n      *(undefined1 *)((int)puVar12 + 0x1d) = uVar1;\n      puVar12 = puVar12 + 8;\n      puVar14 = puVar11;\n    } while (puVar15 != puVar11);" do (compound_statement "{\n      while( true ) {\n        puVar11 = (undefined4 *)puVar14[-2];\n        *puVar12 = puVar12 + 2;\n        if (puVar11 != puVar14) break;\n        uVar13 = puVar14[1];\n        uVar10 = puVar14[2];\n        uVar9 = puVar14[3];\n        puVar12[2] = *puVar14;\n        puVar12[3] = uVar13;\n        puVar12[4] = uVar10;\n        puVar12[5] = uVar9;\n        puVar14[-2] = puVar14;\n        puVar11 = puVar14 + 8;\n        uVar9 = puVar14[4];\n        uVar1 = *(undefined1 *)(puVar14 + 5);\n        uVar2 = *(undefined1 *)((int)puVar14 + 0x15);\n        puVar12[1] = puVar14[-1];\n        puVar12[6] = uVar9;\n        puVar14[-1] = 0;\n        *(undefined1 *)puVar14 = 0;\n        *(undefined1 *)(puVar12 + 7) = uVar1;\n        *(undefined1 *)((int)puVar12 + 0x1d) = uVar2;\n        puVar12 = puVar12 + 8;\n        puVar14 = puVar11;\n        if (puVar15 == puVar11) goto LAB_00224668;\n      }\n      uVar9 = *puVar14;\n      uVar13 = puVar14[-1];\n      uVar10 = puVar14[4];\n      *puVar12 = puVar11;\n      puVar12[2] = uVar9;\n      puVar14[-2] = puVar14;\n      puVar11 = puVar14 + 8;\n      puVar12[1] = uVar13;\n      puVar12[6] = uVar10;\n      uVar1 = *(undefined1 *)((int)puVar14 + 0x15);\n      *(undefined1 *)(puVar12 + 7) = *(undefined1 *)(puVar14 + 5);\n      puVar14[-1] = 0;\n      *(undefined1 *)puVar14 = 0;\n      *(undefined1 *)((int)puVar12 + 0x1d) = uVar1;\n      puVar12 = puVar12 + 8;\n      puVar14 = puVar11;\n    }" { (while_statement "while( true ) {\n        puVar11 = (undefined4 *)puVar14[-2];\n        *puVar12 = puVar12 + 2;\n        if (puVar11 != puVar14) break;\n        uVar13 = puVar14[1];\n        uVar10 = puVar14[2];\n        uVar9 = puVar14[3];\n        puVar12[2] = *puVar14;\n        puVar12[3] = uVar13;\n        puVar12[4] = uVar10;\n        puVar12[5] = uVar9;\n        puVar14[-2] = puVar14;\n        puVar11 = puVar14 + 8;\n        uVar9 = puVar14[4];\n        uVar1 = *(undefined1 *)(puVar14 + 5);\n        uVar2 = *(undefined1 *)((int)puVar14 + 0x15);\n        puVar12[1] = puVar14[-1];\n        puVar12[6] = uVar9;\n        puVar14[-1] = 0;\n        *(undefined1 *)puVar14 = 0;\n        *(undefined1 *)(puVar12 + 7) = uVar1;\n        *(undefined1 *)((int)puVar12 + 0x1d) = uVar2;\n        puVar12 = puVar12 + 8;\n        puVar14 = puVar11;\n        if (puVar15 == puVar11) goto LAB_00224668;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        puVar11 = (undefined4 *)puVar14[-2];\n        *puVar12 = puVar12 + 2;\n        if (puVar11 != puVar14) break;\n        uVar13 = puVar14[1];\n        uVar10 = puVar14[2];\n        uVar9 = puVar14[3];\n        puVar12[2] = *puVar14;\n        puVar12[3] = uVar13;\n        puVar12[4] = uVar10;\n        puVar12[5] = uVar9;\n        puVar14[-2] = puVar14;\n        puVar11 = puVar14 + 8;\n        uVar9 = puVar14[4];\n        uVar1 = *(undefined1 *)(puVar14 + 5);\n        uVar2 = *(undefined1 *)((int)puVar14 + 0x15);\n        puVar12[1] = puVar14[-1];\n        puVar12[6] = uVar9;\n        puVar14[-1] = 0;\n        *(undefined1 *)puVar14 = 0;\n        *(undefined1 *)(puVar12 + 7) = uVar1;\n        *(undefined1 *)((int)puVar12 + 0x1d) = uVar2;\n        puVar12 = puVar12 + 8;\n        puVar14 = puVar11;\n        if (puVar15 == puVar11) goto LAB_00224668;\n      }" { (expression_statement "puVar11 = (undefined4 *)puVar14[-2];" (assignment_expression "puVar11 = (undefined4 *)puVar14[-2]" identifier = (cast_expression "(undefined4 *)puVar14[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar14[-2]" identifier [ number_literal ]))) ;) (expression_statement "*puVar12 = puVar12 + 2;" (assignment_expression "*puVar12 = puVar12 + 2" (pointer_expression "*puVar12" * identifier) = (binary_expression "puVar12 + 2" identifier + number_literal)) ;) (if_statement "if (puVar11 != puVar14) break;" if (parenthesized_expression "(puVar11 != puVar14)" ( (binary_expression "puVar11 != puVar14" identifier != identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = puVar14[1];" (assignment_expression "uVar13 = puVar14[1]" identifier = (subscript_expression "puVar14[1]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = puVar14[2];" (assignment_expression "uVar10 = puVar14[2]" identifier = (subscript_expression "puVar14[2]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = puVar14[3];" (assignment_expression "uVar9 = puVar14[3]" identifier = (subscript_expression "puVar14[3]" identifier [ number_literal ])) ;) (expression_statement "puVar12[2] = *puVar14;" (assignment_expression "puVar12[2] = *puVar14" (subscript_expression "puVar12[2]" identifier [ number_literal ]) = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "puVar12[3] = uVar13;" (assignment_expression "puVar12[3] = uVar13" (subscript_expression "puVar12[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[4] = uVar10;" (assignment_expression "puVar12[4] = uVar10" (subscript_expression "puVar12[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[5] = uVar9;" (assignment_expression "puVar12[5] = uVar9" (subscript_expression "puVar12[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[-2] = puVar14;" (assignment_expression "puVar14[-2] = puVar14" (subscript_expression "puVar14[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar11 = puVar14 + 8;" (assignment_expression "puVar11 = puVar14 + 8" identifier = (binary_expression "puVar14 + 8" identifier + number_literal)) ;) (expression_statement "uVar9 = puVar14[4];" (assignment_expression "uVar9 = puVar14[4]" identifier = (subscript_expression "puVar14[4]" identifier [ number_literal ])) ;) (expression_statement "uVar1 = *(undefined1 *)(puVar14 + 5);" (assignment_expression "uVar1 = *(undefined1 *)(puVar14 + 5)" identifier = (pointer_expression "*(undefined1 *)(puVar14 + 5)" * (cast_expression "(undefined1 *)(puVar14 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 5)" ( (binary_expression "puVar14 + 5" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = *(undefined1 *)((int)puVar14 + 0x15);" (assignment_expression "uVar2 = *(undefined1 *)((int)puVar14 + 0x15)" identifier = (pointer_expression "*(undefined1 *)((int)puVar14 + 0x15)" * (cast_expression "(undefined1 *)((int)puVar14 + 0x15)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar14 + 0x15)" ( (binary_expression "(int)puVar14 + 0x15" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar12[1] = puVar14[-1];" (assignment_expression "puVar12[1] = puVar14[-1]" (subscript_expression "puVar12[1]" identifier [ number_literal ]) = (subscript_expression "puVar14[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar12[6] = uVar9;" (assignment_expression "puVar12[6] = uVar9" (subscript_expression "puVar12[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[-1] = 0;" (assignment_expression "puVar14[-1] = 0" (subscript_expression "puVar14[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)puVar14 = 0;" (assignment_expression "*(undefined1 *)puVar14 = 0" (pointer_expression "*(undefined1 *)puVar14" * (cast_expression "(undefined1 *)puVar14" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar12 + 7) = uVar1;" (assignment_expression "*(undefined1 *)(puVar12 + 7) = uVar1" (pointer_expression "*(undefined1 *)(puVar12 + 7)" * (cast_expression "(undefined1 *)(puVar12 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 7)" ( (binary_expression "puVar12 + 7" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar12 + 0x1d) = uVar2;" (assignment_expression "*(undefined1 *)((int)puVar12 + 0x1d) = uVar2" (pointer_expression "*(undefined1 *)((int)puVar12 + 0x1d)" * (cast_expression "(undefined1 *)((int)puVar12 + 0x1d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + 0x1d)" ( (binary_expression "(int)puVar12 + 0x1d" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "puVar12 = puVar12 + 8;" (assignment_expression "puVar12 = puVar12 + 8" identifier = (binary_expression "puVar12 + 8" identifier + number_literal)) ;) (expression_statement "puVar14 = puVar11;" (assignment_expression "puVar14 = puVar11" identifier = identifier) ;) (if_statement "if (puVar15 == puVar11) goto LAB_00224668;" if (parenthesized_expression "(puVar15 == puVar11)" ( (binary_expression "puVar15 == puVar11" identifier == identifier) )) (goto_statement "goto LAB_00224668;" goto statement_identifier ;)) })) (expression_statement "uVar9 = *puVar14;" (assignment_expression "uVar9 = *puVar14" identifier = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "uVar13 = puVar14[-1];" (assignment_expression "uVar13 = puVar14[-1]" identifier = (subscript_expression "puVar14[-1]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = puVar14[4];" (assignment_expression "uVar10 = puVar14[4]" identifier = (subscript_expression "puVar14[4]" identifier [ number_literal ])) ;) (expression_statement "*puVar12 = puVar11;" (assignment_expression "*puVar12 = puVar11" (pointer_expression "*puVar12" * identifier) = identifier) ;) (expression_statement "puVar12[2] = uVar9;" (assignment_expression "puVar12[2] = uVar9" (subscript_expression "puVar12[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[-2] = puVar14;" (assignment_expression "puVar14[-2] = puVar14" (subscript_expression "puVar14[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar11 = puVar14 + 8;" (assignment_expression "puVar11 = puVar14 + 8" identifier = (binary_expression "puVar14 + 8" identifier + number_literal)) ;) (expression_statement "puVar12[1] = uVar13;" (assignment_expression "puVar12[1] = uVar13" (subscript_expression "puVar12[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[6] = uVar10;" (assignment_expression "puVar12[6] = uVar10" (subscript_expression "puVar12[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar1 = *(undefined1 *)((int)puVar14 + 0x15);" (assignment_expression "uVar1 = *(undefined1 *)((int)puVar14 + 0x15)" identifier = (pointer_expression "*(undefined1 *)((int)puVar14 + 0x15)" * (cast_expression "(undefined1 *)((int)puVar14 + 0x15)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar14 + 0x15)" ( (binary_expression "(int)puVar14 + 0x15" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(puVar12 + 7) = *(undefined1 *)(puVar14 + 5);" (assignment_expression "*(undefined1 *)(puVar12 + 7) = *(undefined1 *)(puVar14 + 5)" (pointer_expression "*(undefined1 *)(puVar12 + 7)" * (cast_expression "(undefined1 *)(puVar12 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 7)" ( (binary_expression "puVar12 + 7" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)(puVar14 + 5)" * (cast_expression "(undefined1 *)(puVar14 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 5)" ( (binary_expression "puVar14 + 5" identifier + number_literal) ))))) ;) (expression_statement "puVar14[-1] = 0;" (assignment_expression "puVar14[-1] = 0" (subscript_expression "puVar14[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)puVar14 = 0;" (assignment_expression "*(undefined1 *)puVar14 = 0" (pointer_expression "*(undefined1 *)puVar14" * (cast_expression "(undefined1 *)puVar14" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar12 + 0x1d) = uVar1;" (assignment_expression "*(undefined1 *)((int)puVar12 + 0x1d) = uVar1" (pointer_expression "*(undefined1 *)((int)puVar12 + 0x1d)" * (cast_expression "(undefined1 *)((int)puVar12 + 0x1d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + 0x1d)" ( (binary_expression "(int)puVar12 + 0x1d" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "puVar12 = puVar12 + 8;" (assignment_expression "puVar12 = puVar12 + 8" identifier = (binary_expression "puVar12 + 8" identifier + number_literal)) ;) (expression_statement "puVar14 = puVar11;" (assignment_expression "puVar14 = puVar11" identifier = identifier) ;) }) while (parenthesized_expression "(puVar15 != puVar11)" ( (binary_expression "puVar15 != puVar11" identifier != identifier) )) ;) (labeled_statement "LAB_00224668:\n    puVar12 = (undefined4 *)param_1[1];" statement_identifier : (expression_statement "puVar12 = (undefined4 *)param_1[1];" (assignment_expression "puVar12 = (undefined4 *)param_1[1]" identifier = (cast_expression "(undefined4 *)param_1[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;)) (expression_statement "puVar6 = puVar6 + ((uVar20 >> 5) + 1) * 8;" (assignment_expression "puVar6 = puVar6 + ((uVar20 >> 5) + 1) * 8" identifier = (binary_expression "puVar6 + ((uVar20 >> 5) + 1) * 8" identifier + (binary_expression "((uVar20 >> 5) + 1) * 8" (parenthesized_expression "((uVar20 >> 5) + 1)" ( (binary_expression "(uVar20 >> 5) + 1" (parenthesized_expression "(uVar20 >> 5)" ( (binary_expression "uVar20 >> 5" identifier >> number_literal) )) + number_literal) )) * number_literal))) ;) })) (expression_statement "puVar14 = (undefined4 *)*param_1;" (assignment_expression "puVar14 = (undefined4 *)*param_1" identifier = (cast_expression "(undefined4 *)*param_1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (if_statement "if (puVar14 != puVar12) {\n    do {\n      if ((undefined4 *)*puVar14 != puVar14 + 2) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      puVar14 = puVar14 + 8;\n    } while (puVar14 != puVar12);\n    puVar12 = (undefined4 *)*param_1;\n  }" if (parenthesized_expression "(puVar14 != puVar12)" ( (binary_expression "puVar14 != puVar12" identifier != identifier) )) (compound_statement "{\n    do {\n      if ((undefined4 *)*puVar14 != puVar14 + 2) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      puVar14 = puVar14 + 8;\n    } while (puVar14 != puVar12);\n    puVar12 = (undefined4 *)*param_1;\n  }" { (do_statement "do {\n      if ((undefined4 *)*puVar14 != puVar14 + 2) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      puVar14 = puVar14 + 8;\n    } while (puVar14 != puVar12);" do (compound_statement "{\n      if ((undefined4 *)*puVar14 != puVar14 + 2) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      puVar14 = puVar14 + 8;\n    }" { (if_statement "if ((undefined4 *)*puVar14 != puVar14 + 2) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }" if (parenthesized_expression "((undefined4 *)*puVar14 != puVar14 + 2)" ( (binary_expression "(undefined4 *)*puVar14 != puVar14 + 2" (cast_expression "(undefined4 *)*puVar14" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar14" * identifier)) != (binary_expression "puVar14 + 2" identifier + number_literal)) )) (compound_statement "{\n        (*(code *)PTR_operator_delete_0043228c)();\n      }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "puVar14 = puVar14 + 8;" (assignment_expression "puVar14 = puVar14 + 8" identifier = (binary_expression "puVar14 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar14 != puVar12)" ( (binary_expression "puVar14 != puVar12" identifier != identifier) )) ;) (expression_statement "puVar12 = (undefined4 *)*param_1;" (assignment_expression "puVar12 = (undefined4 *)*param_1" identifier = (cast_expression "(undefined4 *)*param_1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) })) (if_statement "if (puVar12 != (undefined4 *)0x0) {\n    (*(code *)PTR_operator_delete_0043228c)(puVar12);\n  }" if (parenthesized_expression "(puVar12 != (undefined4 *)0x0)" ( (binary_expression "puVar12 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (*(code *)PTR_operator_delete_0043228c)(puVar12);\n  }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)(puVar12);" (call_expression "(*(code *)PTR_operator_delete_0043228c)(puVar12)" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar12)" ( identifier ))) ;) })) (expression_statement "*param_1 = puVar8;" (assignment_expression "*param_1 = puVar8" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[1] = puVar6;" (assignment_expression "param_1[1] = puVar6" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[2] = puVar8 + uVar21 * 8;" (assignment_expression "param_1[2] = puVar8 + uVar21 * 8" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (binary_expression "puVar8 + uVar21 * 8" identifier + (binary_expression "uVar21 * 8" identifier * number_literal))) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "/* DWARF original name: _M_range_insert<__gnu_cxx::__normal_iterator<gold::Version_expression*,\n   std::vector<gold::Version_expression> > >\n   DWARF original prototype: void\n   _M_range_insert<__gnu_cxx::__normal_iterator<gold::Version_expression*,_std::vector<gold::Version_expression>_>_>(vector<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n   * this, iterator __position,\n   __normal_iterator<gold::Version_expression*,_std::vector<gold::Version_expression,_std::allocator<gold::Version_expression>_>_>\n   __first,\n   __normal_iterator<gold::Version_expression*,_std::vector<gold::Version_expression,_std::allocator<gold::Version_expression>_>_>\n   __last, forward_iterator_tag param_5) */\n\nvoid __thiscall\nstd::vector<gold::Version_expression,_std::allocator<gold::Version_expression>_>::\n_M_range_insert<__gnu_cxx::__normal_iterator<gold::Version_expression*,_std::vector<gold::Version_expression>_>_>\n          (vector<gold::Version_expression,_std::allocator<gold::Version_expression>_> *this,\n          pointer __position,int *__first,int *__last)\n\n{\n  bool bVar1;\n  bool bVar2;\n  code *pcVar3;\n  undefined *puVar4;\n  int iVar5;\n  Language LVar6;\n  pointer pVVar7;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar8;\n  uint uVar9;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar10;\n  size_type *psVar11;\n  pointer pVVar12;\n  size_type *psVar13;\n  size_type sVar14;\n  size_type sVar15;\n  pointer pcVar16;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar17;\n  undefined4 uVar18;\n  size_type sVar19;\n  undefined4 uVar20;\n  undefined4 uVar21;\n  pointer pVVar22;\n  pointer pVVar23;\n  undefined4 *puVar24;\n  int *piVar25;\n  int *piVar26;\n  int iVar27;\n  int iVar28;\n  uint uVar29;\n  uint uVar30;\n  \n  puVar4 = PTR__M_construct<char*>_0043248c;\n  if (__first == __last) {\n    return;\n  }\n  pVVar12 = (this->\n            super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>)\n            ._M_impl._M_finish;\n  iVar27 = (int)__last - (int)__first;\n  uVar29 = iVar27 >> 5;\n  if (uVar29 <= (uint)((int)(this->\n                            super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                            )._M_impl._M_end_of_storage - (int)pVVar12 >> 5)) {\n    iVar5 = (int)pVVar12 - (int)__position;\n    uVar30 = iVar5 >> 5;\n    if (uVar29 < uVar30) {\n      paVar10 = &(pVVar12->pattern).field_2;\n      psVar13 = (size_type *)((int)pVVar12 + (8 - iVar27));\n      pVVar7 = pVVar12;\n      do {\n        while( true ) {\n          paVar17 = &(pVVar7->pattern).field_2;\n          (pVVar7->pattern)._M_dataplus._M_p = (pointer)paVar17;\n          if ((size_type *)psVar13[-2] != psVar13) break;\n          sVar19 = psVar13[1];\n          sVar15 = psVar13[2];\n          sVar14 = psVar13[3];\n          paVar17->_M_allocated_capacity = *psVar13;\n          *(size_type *)((int)&(pVVar7->pattern).field_2 + 4) = sVar19;\n          *(size_type *)((int)&(pVVar7->pattern).field_2 + 8) = sVar15;\n          *(size_type *)((int)&(pVVar7->pattern).field_2 + 0xc) = sVar14;\n          bVar1 = *(bool *)(psVar13 + 5);\n          LVar6 = psVar13[4];\n          (pVVar7->pattern)._M_string_length = psVar13[-1];\n          psVar13[-2] = (size_type)psVar13;\n          psVar11 = psVar13 + 8;\n          psVar13[-1] = 0;\n          *(char *)psVar13 = '\0';\n          pVVar7->exact_match = bVar1;\n          pVVar7->language = LVar6;\n          pVVar7->was_matched_by_symbol = *(bool *)((int)psVar13 + 0x15);\n          psVar13 = psVar11;\n          pVVar7 = pVVar7 + 1;\n          if (paVar10 ==\n              (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)psVar11) goto LAB_002247fc;\n        }\n        (pVVar7->pattern)._M_dataplus._M_p = (pointer)psVar13[-2];\n        bVar1 = *(bool *)(psVar13 + 5);\n        (pVVar7->pattern).field_2._M_allocated_capacity = *psVar13;\n        LVar6 = psVar13[4];\n        (pVVar7->pattern)._M_string_length = psVar13[-1];\n        psVar13[-2] = (size_type)psVar13;\n        psVar11 = psVar13 + 8;\n        psVar13[-1] = 0;\n        *(char *)psVar13 = '\0';\n        pVVar7->exact_match = bVar1;\n        pVVar7->language = LVar6;\n        pVVar7->was_matched_by_symbol = *(bool *)((int)psVar13 + 0x15);\n        psVar13 = psVar11;\n        pVVar7 = pVVar7 + 1;\n      } while (paVar10 !=\n               (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)psVar11);\nLAB_002247fc:\n      iVar5 = (int)pVVar12 + (-(int)__position - iVar27);\n      iVar28 = iVar5 >> 5;\n      (this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n      )._M_impl._M_finish =\n           (pointer)((int)(this->\n                          super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                          )._M_impl._M_finish + iVar27);\n      if (0 < iVar5) {\n        psVar13 = (size_type *)((int)pVVar12 + (-0x18 - iVar27));\n        paVar10 = &pVVar12[-1].pattern.field_2;\n        do {\n          while( true ) {\n            pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n            if ((size_type *)psVar13[-2] != psVar13) break;\n            sVar14 = psVar13[-1];\n            if (sVar14 != 0) {\n              if (sVar14 == 1) {\n                *pcVar16 = *(char *)psVar13;\n                pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n                sVar14 = psVar13[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(pcVar16,psVar13);\n                pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n                sVar14 = psVar13[-1];\n              }\n            }\n            *(size_type *)((int)paVar10 + -4) = sVar14;\n            pcVar16[sVar14] = '\0';\n            iVar28 = iVar28 + -1;\n            psVar13[-1] = 0;\n            *(undefined1 *)psVar13[-2] = 0;\n            sVar14 = psVar13[4];\n            *(char *)((int)paVar10 + 0x14) = *(char *)(psVar13 + 5);\n            paVar10[1]._M_allocated_capacity = sVar14;\n            *(char *)((int)paVar10 + 0x15) = *(char *)((int)psVar13 + 0x15);\n            psVar13 = psVar13 + -8;\n            paVar10 = paVar10 + -2;\n            if (iVar28 == 0) goto LAB_002248f8;\n          }\n          (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)psVar13[-2];\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)pcVar16 == paVar10) {\n            *(size_type *)((int)paVar10 + -4) = psVar13[-1];\n            paVar10->_M_allocated_capacity = *psVar13;\nLAB_0022497c:\n            psVar13[-2] = (size_type)psVar13;\n          }\n          else {\n            sVar14 = paVar10->_M_allocated_capacity;\n            *(size_type *)((int)paVar10 + -4) = psVar13[-1];\n            paVar10->_M_allocated_capacity = *psVar13;\n            if (pcVar16 == (pointer)0x0) goto LAB_0022497c;\n            psVar13[-2] = (size_type)pcVar16;\n            *psVar13 = sVar14;\n          }\n          psVar13[-1] = 0;\n          iVar28 = iVar28 + -1;\n          *(undefined1 *)psVar13[-2] = 0;\n          sVar14 = psVar13[4];\n          *(char *)((int)paVar10 + 0x14) = *(char *)(psVar13 + 5);\n          paVar10[1]._M_allocated_capacity = sVar14;\n          *(char *)((int)paVar10 + 0x15) = *(char *)((int)psVar13 + 0x15);\n          psVar13 = psVar13 + -8;\n          paVar10 = paVar10 + -2;\n        } while (iVar28 != 0);\n      }\nLAB_002248f8:\n      if (0 < iVar27) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(__position,__first);\n          uVar29 = uVar29 - 1;\n          LVar6 = __first[6];\n          __position->exact_match = *(bool *)(__first + 7);\n          __position->language = LVar6;\n          __position->was_matched_by_symbol = *(bool *)((int)__first + 0x1d);\n          __first = __first + 8;\n          __position = __position + 1;\n        } while (uVar29 != 0);\n        return;\n      }\n    }\n    else {\n      piVar25 = (int *)((int)__first + iVar5);\n      pVVar7 = pVVar12;\n      if (piVar25 != __last) {\n        do {\n          (pVVar7->pattern)._M_dataplus._M_p = (pointer)&(pVVar7->pattern).field_2;\n                    /* try { // try from 002241f8 to 002241ff has its CatchHandler @ 002249d8 */\n          (*(code *)puVar4)(pVVar7,*piVar25,*piVar25 + piVar25[1],0);\n          piVar26 = piVar25 + 8;\n          LVar6 = piVar25[6];\n          pVVar7->exact_match = *(bool *)(piVar25 + 7);\n          pVVar7->language = LVar6;\n          pVVar7->was_matched_by_symbol = *(bool *)((int)piVar25 + 0x1d);\n          piVar25 = piVar26;\n          pVVar7 = pVVar7 + 1;\n        } while (__last != piVar26);\n        pVVar7 = (this->\n                 super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                 )._M_impl._M_finish;\n      }\n      pVVar7 = pVVar7 + (uVar29 - uVar30);\n      (this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n      )._M_impl._M_finish = pVVar7;\n      if (pVVar12 != __position) {\n        paVar17 = &(pVVar12->pattern).field_2;\n        paVar10 = &(__position->pattern).field_2;\n        do {\n          while( true ) {\n            paVar8 = &(pVVar7->pattern).field_2;\n            (pVVar7->pattern)._M_dataplus._M_p = (pointer)paVar8;\n            psVar13 = (size_type *)(((string *)((int)paVar10 + -8))->_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                 *)psVar13) break;\n            sVar19 = *(size_type *)((int)paVar10 + 4);\n            sVar15 = *(size_type *)((int)paVar10 + 8);\n            sVar14 = *(size_type *)((int)paVar10 + 0xc);\n            paVar8->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n            *(size_type *)((int)&(pVVar7->pattern).field_2 + 4) = sVar19;\n            *(size_type *)((int)&(pVVar7->pattern).field_2 + 8) = sVar15;\n            *(size_type *)((int)&(pVVar7->pattern).field_2 + 0xc) = sVar14;\n            bVar1 = *(bool *)((int)paVar10 + 0x14);\n            LVar6 = paVar10[1]._M_allocated_capacity;\n            (pVVar7->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);\n            (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n            paVar8 = paVar10 + 2;\n            *(size_type *)((int)paVar10 + -4) = 0;\n            paVar10->_M_local_buf[0] = '\0';\n            pVVar7->exact_match = bVar1;\n            pVVar7->language = LVar6;\n            pVVar7->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15);\n            paVar10 = paVar8;\n            pVVar7 = pVVar7 + 1;\n            if (paVar17 == paVar8) goto LAB_00224324;\n          }\n          (pVVar7->pattern)._M_dataplus._M_p = (pointer)psVar13;\n          bVar1 = *(bool *)((int)paVar10 + 0x14);\n          (pVVar7->pattern).field_2._M_allocated_capacity = paVar10->_M_allocated_capacity;\n          LVar6 = paVar10[1]._M_allocated_capacity;\n          (pVVar7->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);\n          (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n          paVar8 = paVar10 + 2;\n          *(size_type *)((int)paVar10 + -4) = 0;\n          paVar10->_M_local_buf[0] = '\0';\n          pVVar7->exact_match = bVar1;\n          pVVar7->language = LVar6;\n          pVVar7->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15);\n          paVar10 = paVar8;\n          pVVar7 = pVVar7 + 1;\n        } while (paVar17 != paVar8);\nLAB_00224324:\n        pVVar7 = (this->\n                 super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                 )._M_impl._M_finish;\n      }\n      (this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n      )._M_impl._M_finish = (pointer)((int)pVVar7 + iVar5);\n      if (0 < iVar5) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(__position,__first);\n          uVar30 = uVar30 - 1;\n          LVar6 = __first[6];\n          __position->exact_match = *(bool *)(__first + 7);\n          __position->language = LVar6;\n          __position->was_matched_by_symbol = *(bool *)((int)__first + 0x1d);\n          __first = __first + 8;\n          __position = __position + 1;\n        } while (uVar30 != 0);\n      }\n    }\n    return;\n  }\n  pVVar7 = (this->\n           super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>).\n           _M_impl._M_start;\n  uVar30 = 0x7ffffff;\n  uVar9 = (int)pVVar12 - (int)pVVar7 >> 5;\n  if (0x7ffffff - uVar9 < uVar29) {\n    (*(code *)PTR___throw_length_error_00432480)(PTR_s__0043226c + -0x6b60);\n    return;\n  }\n  if (uVar29 < uVar9) {\n    uVar29 = uVar9;\n  }\n  uVar29 = uVar29 + uVar9;\n  if ((uVar29 < uVar9) || (0x7ffffff < uVar29)) {\n    iVar27 = -0x20;\n  }\n  else {\n    pVVar12 = (pointer)0x0;\n    uVar30 = uVar29;\n    if (uVar29 == 0) goto LAB_00224414;\n    iVar27 = uVar29 * 0x20;\n  }\n  pVVar12 = (pointer)(*(code *)PTR_operator_new_0043233c)(iVar27);\n  pVVar7 = (this->\n           super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>).\n           _M_impl._M_start;\nLAB_00224414:\n  pVVar23 = pVVar12;\n  pcVar3 = (code *)PTR__M_construct<char*>_0043248c;\n  if (pVVar7 != __position) {\n    paVar17 = &(__position->pattern).field_2;\n    paVar10 = &(pVVar7->pattern).field_2;\n    do {\n      while( true ) {\n        paVar8 = &(pVVar23->pattern).field_2;\n        (pVVar23->pattern)._M_dataplus._M_p = (pointer)paVar8;\n        pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar16 != paVar10) break;\n        uVar21 = *(undefined4 *)((int)paVar10 + 4);\n        uVar20 = *(undefined4 *)((int)paVar10 + 8);\n        uVar18 = *(undefined4 *)((int)paVar10 + 0xc);\n        paVar8->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 4) = uVar21;\n        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 8) = uVar20;\n        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 0xc) = uVar18;\n        bVar1 = *(bool *)((int)paVar10 + 0x14);\n        LVar6 = paVar10[1]._M_allocated_capacity;\n        (pVVar23->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);\n        (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n        paVar8 = paVar10 + 2;\n        *(size_type *)((int)paVar10 + -4) = 0;\n        paVar10->_M_local_buf[0] = '\0';\n        pVVar23->exact_match = bVar1;\n        pVVar23->language = LVar6;\n        pVVar23->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15);\n        paVar10 = paVar8;\n        pVVar23 = pVVar23 + 1;\n        if (paVar8 == paVar17) goto LAB_00224504;\n      }\n      (pVVar23->pattern)._M_dataplus._M_p = pcVar16;\n      bVar1 = *(bool *)((int)paVar10 + 0x14);\n      (pVVar23->pattern).field_2._M_allocated_capacity = paVar10->_M_allocated_capacity;\n      LVar6 = paVar10[1]._M_allocated_capacity;\n      (pVVar23->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);\n      (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n      paVar8 = paVar10 + 2;\n      *(size_type *)((int)paVar10 + -4) = 0;\n      paVar10->_M_local_buf[0] = '\0';\n      pVVar23->exact_match = bVar1;\n      pVVar23->language = LVar6;\n      pVVar23->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15);\n      paVar10 = paVar8;\n      pVVar23 = pVVar23 + 1;\n    } while (paVar8 != paVar17);\nLAB_00224504:\n    pVVar23 = pVVar12 + ((uint)((int)__position + (-0x20 - (int)pVVar7)) >> 5) + 1;\n    pcVar3 = (code *)PTR__M_construct<char*>_0043248c;\n  }\n  do {\n    iVar27 = *__first;\n    iVar5 = __first[1];\n    (pVVar23->pattern)._M_dataplus._M_p = (pointer)&(pVVar23->pattern).field_2;\n                    /* try { // try from 00224544 to 0022454b has its CatchHandler @ 002249b4 */\n    (*pcVar3)(pVVar23,iVar27,iVar27 + iVar5,0);\n    piVar25 = __first + 8;\n    pVVar7 = pVVar23 + 1;\n    bVar1 = *(bool *)(__first + 7);\n    bVar2 = *(bool *)((int)__first + 0x1d);\n    pVVar23->language = __first[6];\n    pVVar23->exact_match = bVar1;\n    pVVar23->was_matched_by_symbol = bVar2;\n    __first = piVar25;\n    pVVar23 = pVVar7;\n  } while (__last != piVar25);\n  pVVar23 = (this->\n            super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>)\n            ._M_impl._M_finish;\n  if (pVVar23 != __position) {\n    uVar29 = (int)pVVar23 + (-0x20 - (int)__position);\n    puVar24 = (undefined4 *)((int)__position + uVar29 + 0x28);\n    pVVar23 = pVVar7;\n    paVar10 = &(__position->pattern).field_2;\n    do {\n      while( true ) {\n        pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n        paVar17 = &(pVVar23->pattern).field_2;\n        (pVVar23->pattern)._M_dataplus._M_p = (pointer)paVar17;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar16 != paVar10) break;\n        uVar21 = *(undefined4 *)((int)paVar10 + 4);\n        uVar20 = *(undefined4 *)((int)paVar10 + 8);\n        uVar18 = *(undefined4 *)((int)paVar10 + 0xc);\n        paVar17->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 4) = uVar21;\n        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 8) = uVar20;\n        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 0xc) = uVar18;\n        (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n        paVar17 = paVar10 + 2;\n        LVar6 = paVar10[1]._M_allocated_capacity;\n        bVar1 = *(bool *)((int)paVar10 + 0x14);\n        bVar2 = *(bool *)((int)paVar10 + 0x15);\n        (pVVar23->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);\n        pVVar23->language = LVar6;\n        *(size_type *)((int)paVar10 + -4) = 0;\n        paVar10->_M_local_buf[0] = '\0';\n        pVVar23->exact_match = bVar1;\n        pVVar23->was_matched_by_symbol = bVar2;\n        pVVar23 = pVVar23 + 1;\n        paVar10 = paVar17;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)puVar24 == paVar17) goto LAB_00224668;\n      }\n      sVar14 = paVar10->_M_allocated_capacity;\n      sVar15 = *(size_type *)((int)paVar10 + -4);\n      LVar6 = paVar10[1]._M_allocated_capacity;\n      (pVVar23->pattern)._M_dataplus._M_p = pcVar16;\n      (pVVar23->pattern).field_2._M_allocated_capacity = sVar14;\n      (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n      paVar17 = paVar10 + 2;\n      (pVVar23->pattern)._M_string_length = sVar15;\n      pVVar23->language = LVar6;\n      bVar1 = *(bool *)((int)paVar10 + 0x15);\n      pVVar23->exact_match = *(bool *)((int)paVar10 + 0x14);\n      *(size_type *)((int)paVar10 + -4) = 0;\n      paVar10->_M_local_buf[0] = '\0';\n      pVVar23->was_matched_by_symbol = bVar1;\n      pVVar23 = pVVar23 + 1;\n      paVar10 = paVar17;\n    } while ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n              *)puVar24 != paVar17);\nLAB_00224668:\n    pVVar23 = (this->\n              super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n              )._M_impl._M_finish;\n    pVVar7 = pVVar7 + (uVar29 >> 5) + 1;\n  }\n  pVVar22 = (this->\n            super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>)\n            ._M_impl._M_start;\n  if (pVVar22 != pVVar23) {\n    do {\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)(pVVar22->pattern)._M_dataplus._M_p != &(pVVar22->pattern).field_2) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      pVVar22 = pVVar22 + 1;\n    } while (pVVar22 != pVVar23);\n    pVVar23 = (this->\n              super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n              )._M_impl._M_start;\n  }\n  if (pVVar23 != (pointer)0x0) {\n    (*(code *)PTR_operator_delete_0043228c)(pVVar23);\n  }\n  (this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>).\n  _M_impl._M_start = pVVar12;\n  (this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>).\n  _M_impl._M_finish = pVVar7;\n  (this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>).\n  _M_impl._M_end_of_storage = pVVar12 + uVar30;\n  return;\n}\n\n" comment (declaration "void __thiscall\nstd::vector<gold::Version_expression,_std::allocator<gold::Version_expression>_>::\n_M_range_insert<__gnu_cxx::__normal_iterator<gold::Version_expression*,_std::vector<gold::Version_expression>_>_>\n          (vector<gold::Version_expression,_std::allocator<gold::Version_expression>_> *this,\n          pointer __position,int *__first,int *__last)\n\n{\n  bool bVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "std::vector<gold::" identifier : : identifier < identifier : :) identifier , (ERROR "_std::allocator<gold::Version_expression>_>::\n_M_range_insert<__gnu_cxx::__normal_iterator<gold::" identifier : : identifier < identifier : : identifier > identifier > : : identifier < identifier : : identifier < identifier : :) identifier (ERROR "*" *) , (ERROR "_std::vector<gold::Version_expression>_>_>\n          (vector<gold::Version_expression,_std::allocator<gold::Version_expression>_> *this,\n          pointer __position,int *__first,int *__last)\n\n{\n  bool" identifier : : identifier < identifier : : identifier > identifier > (function_declarator "_>\n          (vector<gold::Version_expression,_std::allocator<gold::Version_expression>_> *this,\n          pointer __position,int *__first,int *__last)" identifier (ERROR ">" >) (parameter_list "(vector<gold::Version_expression,_std::allocator<gold::Version_expression>_> *this,\n          pointer __position,int *__first,int *__last)" ( (parameter_declaration "vector<gold::Version_expression" type_identifier (ERROR "<gold::" < identifier : :) identifier) , (parameter_declaration "_std::allocator<gold::Version_expression>_> *this" type_identifier (ERROR "::allocator<gold::Version_expression>_>" : : identifier < identifier : : identifier > identifier >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "pointer __position" type_identifier identifier) , (parameter_declaration "int *__first" primitive_type (pointer_declarator "*__first" * identifier)) , (parameter_declaration "int *__last" primitive_type (pointer_declarator "*__last" * identifier)) ))) { primitive_type) identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "code *pcVar3;" type_identifier (pointer_declarator "*pcVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "Language LVar6;" type_identifier identifier ;) (declaration "pointer pVVar7;" type_identifier identifier ;) (ERROR "anon_union_16_2_edb7204a_for_basic_string<char," (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) ,) (labeled_statement "_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar8;" statement_identifier (ERROR "::char_traits<char>,_std:" : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) :) : (expression_statement "allocator<char>_>_9\n  *paVar8;" (binary_expression "allocator<char>_>_9\n  *paVar8" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *paVar8" identifier * identifier)) ;)) (declaration "uint uVar9;" type_identifier identifier ;) (ERROR "anon_union_16_2_edb7204a_for_basic_string<char," (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) ,) (labeled_statement "_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar10;" statement_identifier (ERROR "::char_traits<char>,_std:" : : (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 "size_type *psVar11;" type_identifier (pointer_declarator "*psVar11" * identifier) ;) (declaration "pointer pVVar12;" type_identifier identifier ;) (declaration "size_type *psVar13;" type_identifier (pointer_declarator "*psVar13" * identifier) ;) (declaration "size_type sVar14;" type_identifier identifier ;) (declaration "size_type sVar15;" type_identifier identifier ;) (declaration "pointer pcVar16;" type_identifier identifier ;) (ERROR "anon_union_16_2_edb7204a_for_basic_string<char," (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) ,) (labeled_statement "_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar17;" statement_identifier (ERROR "::char_traits<char>,_std:" : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) :) : (expression_statement "allocator<char>_>_9\n  *paVar17;" (binary_expression "allocator<char>_>_9\n  *paVar17" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *paVar17" identifier * identifier)) ;)) (declaration "undefined4 uVar18;" type_identifier identifier ;) (declaration "size_type sVar19;" type_identifier identifier ;) (declaration "undefined4 uVar20;" type_identifier identifier ;) (declaration "undefined4 uVar21;" type_identifier identifier ;) (declaration "pointer pVVar22;" type_identifier identifier ;) (declaration "pointer pVVar23;" type_identifier identifier ;) (declaration "undefined4 *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "int *piVar25;" primitive_type (pointer_declarator "*piVar25" * identifier) ;) (declaration "int *piVar26;" primitive_type (pointer_declarator "*piVar26" * identifier) ;) (declaration "int iVar27;" primitive_type identifier ;) (declaration "int iVar28;" primitive_type identifier ;) (declaration "uint uVar29;" type_identifier identifier ;) (declaration "uint uVar30;" type_identifier identifier ;) (expression_statement "puVar4 = PTR__M_construct<char*>_0043248c;" (assignment_expression "puVar4 = PTR__M_construct<char*>_0043248c" identifier = (binary_expression "PTR__M_construct<char*>_0043248c" (binary_expression "PTR__M_construct<char" identifier < identifier) (ERROR "*" *) > identifier)) ;) (if_statement "if (__first == __last) {\n    return;\n  }" if (parenthesized_expression "(__first == __last)" ( (binary_expression "__first == __last" identifier == identifier) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pVVar12 = (this->\n            super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>)\n            ._M_impl._M_finish;" (assignment_expression "pVVar12 = (this->\n            super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>)\n            ._M_impl._M_finish" identifier = (field_expression "(this->\n            super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>)\n            ._M_impl._M_finish" (field_expression "(this->\n            super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>)\n            ._M_impl" (parenthesized_expression "(this->\n            super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>)" ( (ERROR "this->\n            super__Vector_base<gold::Version_expression,_std::allocator<gold::" (comma_expression "this->\n            super__Vector_base<gold::Version_expression,_std" (binary_expression "this->\n            super__Vector_base<gold" (field_expression "this->\n            super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Version_expression" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Version_expression>_>" (binary_expression "Version_expression>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "iVar27 = (int)__last - (int)__first;" (assignment_expression "iVar27 = (int)__last - (int)__first" identifier = (binary_expression "(int)__last - (int)__first" (cast_expression "(int)__last" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)__first" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar29 = iVar27 >> 5;" (assignment_expression "uVar29 = iVar27 >> 5" identifier = (binary_expression "iVar27 >> 5" identifier >> number_literal)) ;) (if_statement "if (uVar29 <= (uint)((int)(this->\n                            super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                            )._M_impl._M_end_of_storage - (int)pVVar12 >> 5)) {\n    iVar5 = (int)pVVar12 - (int)__position;\n    uVar30 = iVar5 >> 5;\n    if (uVar29 < uVar30) {\n      paVar10 = &(pVVar12->pattern).field_2;\n      psVar13 = (size_type *)((int)pVVar12 + (8 - iVar27));\n      pVVar7 = pVVar12;\n      do {\n        while( true ) {\n          paVar17 = &(pVVar7->pattern).field_2;\n          (pVVar7->pattern)._M_dataplus._M_p = (pointer)paVar17;\n          if ((size_type *)psVar13[-2] != psVar13) break;\n          sVar19 = psVar13[1];\n          sVar15 = psVar13[2];\n          sVar14 = psVar13[3];\n          paVar17->_M_allocated_capacity = *psVar13;\n          *(size_type *)((int)&(pVVar7->pattern).field_2 + 4) = sVar19;\n          *(size_type *)((int)&(pVVar7->pattern).field_2 + 8) = sVar15;\n          *(size_type *)((int)&(pVVar7->pattern).field_2 + 0xc) = sVar14;\n          bVar1 = *(bool *)(psVar13 + 5);\n          LVar6 = psVar13[4];\n          (pVVar7->pattern)._M_string_length = psVar13[-1];\n          psVar13[-2] = (size_type)psVar13;\n          psVar11 = psVar13 + 8;\n          psVar13[-1] = 0;\n          *(char *)psVar13 = '\0';\n          pVVar7->exact_match = bVar1;\n          pVVar7->language = LVar6;\n          pVVar7->was_matched_by_symbol = *(bool *)((int)psVar13 + 0x15);\n          psVar13 = psVar11;\n          pVVar7 = pVVar7 + 1;\n          if (paVar10 ==\n              (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)psVar11) goto LAB_002247fc;\n        }\n        (pVVar7->pattern)._M_dataplus._M_p = (pointer)psVar13[-2];\n        bVar1 = *(bool *)(psVar13 + 5);\n        (pVVar7->pattern).field_2._M_allocated_capacity = *psVar13;\n        LVar6 = psVar13[4];\n        (pVVar7->pattern)._M_string_length = psVar13[-1];\n        psVar13[-2] = (size_type)psVar13;\n        psVar11 = psVar13 + 8;\n        psVar13[-1] = 0;\n        *(char *)psVar13 = '\0';\n        pVVar7->exact_match = bVar1;\n        pVVar7->language = LVar6;\n        pVVar7->was_matched_by_symbol = *(bool *)((int)psVar13 + 0x15);\n        psVar13 = psVar11;\n        pVVar7 = pVVar7 + 1;\n      } while (paVar10 !=\n               (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)psVar11);\nLAB_002247fc:\n      iVar5 = (int)pVVar12 + (-(int)__position - iVar27);\n      iVar28 = iVar5 >> 5;\n      (this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n      )._M_impl._M_finish =\n           (pointer)((int)(this->\n                          super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                          )._M_impl._M_finish + iVar27);\n      if (0 < iVar5) {\n        psVar13 = (size_type *)((int)pVVar12 + (-0x18 - iVar27));\n        paVar10 = &pVVar12[-1].pattern.field_2;\n        do {\n          while( true ) {\n            pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n            if ((size_type *)psVar13[-2] != psVar13) break;\n            sVar14 = psVar13[-1];\n            if (sVar14 != 0) {\n              if (sVar14 == 1) {\n                *pcVar16 = *(char *)psVar13;\n                pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n                sVar14 = psVar13[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(pcVar16,psVar13);\n                pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n                sVar14 = psVar13[-1];\n              }\n            }\n            *(size_type *)((int)paVar10 + -4) = sVar14;\n            pcVar16[sVar14] = '\0';\n            iVar28 = iVar28 + -1;\n            psVar13[-1] = 0;\n            *(undefined1 *)psVar13[-2] = 0;\n            sVar14 = psVar13[4];\n            *(char *)((int)paVar10 + 0x14) = *(char *)(psVar13 + 5);\n            paVar10[1]._M_allocated_capacity = sVar14;\n            *(char *)((int)paVar10 + 0x15) = *(char *)((int)psVar13 + 0x15);\n            psVar13 = psVar13 + -8;\n            paVar10 = paVar10 + -2;\n            if (iVar28 == 0) goto LAB_002248f8;\n          }\n          (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)psVar13[-2];\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)pcVar16 == paVar10) {\n            *(size_type *)((int)paVar10 + -4) = psVar13[-1];\n            paVar10->_M_allocated_capacity = *psVar13;\nLAB_0022497c:\n            psVar13[-2] = (size_type)psVar13;\n          }\n          else {\n            sVar14 = paVar10->_M_allocated_capacity;\n            *(size_type *)((int)paVar10 + -4) = psVar13[-1];\n            paVar10->_M_allocated_capacity = *psVar13;\n            if (pcVar16 == (pointer)0x0) goto LAB_0022497c;\n            psVar13[-2] = (size_type)pcVar16;\n            *psVar13 = sVar14;\n          }\n          psVar13[-1] = 0;\n          iVar28 = iVar28 + -1;\n          *(undefined1 *)psVar13[-2] = 0;\n          sVar14 = psVar13[4];\n          *(char *)((int)paVar10 + 0x14) = *(char *)(psVar13 + 5);\n          paVar10[1]._M_allocated_capacity = sVar14;\n          *(char *)((int)paVar10 + 0x15) = *(char *)((int)psVar13 + 0x15);\n          psVar13 = psVar13 + -8;\n          paVar10 = paVar10 + -2;\n        } while (iVar28 != 0);\n      }\nLAB_002248f8:\n      if (0 < iVar27) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(__position,__first);\n          uVar29 = uVar29 - 1;\n          LVar6 = __first[6];\n          __position->exact_match = *(bool *)(__first + 7);\n          __position->language = LVar6;\n          __position->was_matched_by_symbol = *(bool *)((int)__first + 0x1d);\n          __first = __first + 8;\n          __position = __position + 1;\n        } while (uVar29 != 0);\n        return;\n      }\n    }\n    else {\n      piVar25 = (int *)((int)__first + iVar5);\n      pVVar7 = pVVar12;\n      if (piVar25 != __last) {\n        do {\n          (pVVar7->pattern)._M_dataplus._M_p = (pointer)&(pVVar7->pattern).field_2;\n                    /* try { // try from 002241f8 to 002241ff has its CatchHandler @ 002249d8 */\n          (*(code *)puVar4)(pVVar7,*piVar25,*piVar25 + piVar25[1],0);\n          piVar26 = piVar25 + 8;\n          LVar6 = piVar25[6];\n          pVVar7->exact_match = *(bool *)(piVar25 + 7);\n          pVVar7->language = LVar6;\n          pVVar7->was_matched_by_symbol = *(bool *)((int)piVar25 + 0x1d);\n          piVar25 = piVar26;\n          pVVar7 = pVVar7 + 1;\n        } while (__last != piVar26);\n        pVVar7 = (this->\n                 super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                 )._M_impl._M_finish;\n      }\n      pVVar7 = pVVar7 + (uVar29 - uVar30);\n      (this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n      )._M_impl._M_finish = pVVar7;\n      if (pVVar12 != __position) {\n        paVar17 = &(pVVar12->pattern).field_2;\n        paVar10 = &(__position->pattern).field_2;\n        do {\n          while( true ) {\n            paVar8 = &(pVVar7->pattern).field_2;\n            (pVVar7->pattern)._M_dataplus._M_p = (pointer)paVar8;\n            psVar13 = (size_type *)(((string *)((int)paVar10 + -8))->_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                 *)psVar13) break;\n            sVar19 = *(size_type *)((int)paVar10 + 4);\n            sVar15 = *(size_type *)((int)paVar10 + 8);\n            sVar14 = *(size_type *)((int)paVar10 + 0xc);\n            paVar8->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n            *(size_type *)((int)&(pVVar7->pattern).field_2 + 4) = sVar19;\n            *(size_type *)((int)&(pVVar7->pattern).field_2 + 8) = sVar15;\n            *(size_type *)((int)&(pVVar7->pattern).field_2 + 0xc) = sVar14;\n            bVar1 = *(bool *)((int)paVar10 + 0x14);\n            LVar6 = paVar10[1]._M_allocated_capacity;\n            (pVVar7->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);\n            (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n            paVar8 = paVar10 + 2;\n            *(size_type *)((int)paVar10 + -4) = 0;\n            paVar10->_M_local_buf[0] = '\0';\n            pVVar7->exact_match = bVar1;\n            pVVar7->language = LVar6;\n            pVVar7->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15);\n            paVar10 = paVar8;\n            pVVar7 = pVVar7 + 1;\n            if (paVar17 == paVar8) goto LAB_00224324;\n          }\n          (pVVar7->pattern)._M_dataplus._M_p = (pointer)psVar13;\n          bVar1 = *(bool *)((int)paVar10 + 0x14);\n          (pVVar7->pattern).field_2._M_allocated_capacity = paVar10->_M_allocated_capacity;\n          LVar6 = paVar10[1]._M_allocated_capacity;\n          (pVVar7->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);\n          (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n          paVar8 = paVar10 + 2;\n          *(size_type *)((int)paVar10 + -4) = 0;\n          paVar10->_M_local_buf[0] = '\0';\n          pVVar7->exact_match = bVar1;\n          pVVar7->language = LVar6;\n          pVVar7->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15);\n          paVar10 = paVar8;\n          pVVar7 = pVVar7 + 1;\n        } while (paVar17 != paVar8);\nLAB_00224324:\n        pVVar7 = (this->\n                 super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                 )._M_impl._M_finish;\n      }\n      (this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n      )._M_impl._M_finish = (pointer)((int)pVVar7 + iVar5);\n      if (0 < iVar5) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(__position,__first);\n          uVar30 = uVar30 - 1;\n          LVar6 = __first[6];\n          __position->exact_match = *(bool *)(__first + 7);\n          __position->language = LVar6;\n          __position->was_matched_by_symbol = *(bool *)((int)__first + 0x1d);\n          __first = __first + 8;\n          __position = __position + 1;\n        } while (uVar30 != 0);\n      }\n    }\n    return;\n  }" if (parenthesized_expression "(uVar29 <= (uint)((int)(this->\n                            super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                            )._M_impl._M_end_of_storage - (int)pVVar12 >> 5))" ( (binary_expression "uVar29 <= (uint)((int)(this->\n                            super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                            )._M_impl._M_end_of_storage - (int)pVVar12 >> 5)" identifier <= (call_expression "(uint)((int)(this->\n                            super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                            )._M_impl._M_end_of_storage - (int)pVVar12 >> 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)(this->\n                            super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                            )._M_impl._M_end_of_storage - (int)pVVar12 >> 5)" ( (binary_expression "(int)(this->\n                            super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                            )._M_impl._M_end_of_storage - (int)pVVar12 >> 5" (binary_expression "(int)(this->\n                            super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                            )._M_impl._M_end_of_storage - (int)pVVar12" (cast_expression "(int)(this->\n                            super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                            )._M_impl._M_end_of_storage" ( (type_descriptor "int" primitive_type) ) (field_expression "(this->\n                            super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                            )._M_impl._M_end_of_storage" (field_expression "(this->\n                            super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                            )._M_impl" (parenthesized_expression "(this->\n                            super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                            )" ( (ERROR "this->\n                            super__Vector_base<gold::Version_expression,_std::allocator<gold::" (comma_expression "this->\n                            super__Vector_base<gold::Version_expression,_std" (binary_expression "this->\n                            super__Vector_base<gold" (field_expression "this->\n                            super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Version_expression" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Version_expression>_>" (binary_expression "Version_expression>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier)) - (cast_expression "(int)pVVar12" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )))) )) (compound_statement "{\n    iVar5 = (int)pVVar12 - (int)__position;\n    uVar30 = iVar5 >> 5;\n    if (uVar29 < uVar30) {\n      paVar10 = &(pVVar12->pattern).field_2;\n      psVar13 = (size_type *)((int)pVVar12 + (8 - iVar27));\n      pVVar7 = pVVar12;\n      do {\n        while( true ) {\n          paVar17 = &(pVVar7->pattern).field_2;\n          (pVVar7->pattern)._M_dataplus._M_p = (pointer)paVar17;\n          if ((size_type *)psVar13[-2] != psVar13) break;\n          sVar19 = psVar13[1];\n          sVar15 = psVar13[2];\n          sVar14 = psVar13[3];\n          paVar17->_M_allocated_capacity = *psVar13;\n          *(size_type *)((int)&(pVVar7->pattern).field_2 + 4) = sVar19;\n          *(size_type *)((int)&(pVVar7->pattern).field_2 + 8) = sVar15;\n          *(size_type *)((int)&(pVVar7->pattern).field_2 + 0xc) = sVar14;\n          bVar1 = *(bool *)(psVar13 + 5);\n          LVar6 = psVar13[4];\n          (pVVar7->pattern)._M_string_length = psVar13[-1];\n          psVar13[-2] = (size_type)psVar13;\n          psVar11 = psVar13 + 8;\n          psVar13[-1] = 0;\n          *(char *)psVar13 = '\0';\n          pVVar7->exact_match = bVar1;\n          pVVar7->language = LVar6;\n          pVVar7->was_matched_by_symbol = *(bool *)((int)psVar13 + 0x15);\n          psVar13 = psVar11;\n          pVVar7 = pVVar7 + 1;\n          if (paVar10 ==\n              (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)psVar11) goto LAB_002247fc;\n        }\n        (pVVar7->pattern)._M_dataplus._M_p = (pointer)psVar13[-2];\n        bVar1 = *(bool *)(psVar13 + 5);\n        (pVVar7->pattern).field_2._M_allocated_capacity = *psVar13;\n        LVar6 = psVar13[4];\n        (pVVar7->pattern)._M_string_length = psVar13[-1];\n        psVar13[-2] = (size_type)psVar13;\n        psVar11 = psVar13 + 8;\n        psVar13[-1] = 0;\n        *(char *)psVar13 = '\0';\n        pVVar7->exact_match = bVar1;\n        pVVar7->language = LVar6;\n        pVVar7->was_matched_by_symbol = *(bool *)((int)psVar13 + 0x15);\n        psVar13 = psVar11;\n        pVVar7 = pVVar7 + 1;\n      } while (paVar10 !=\n               (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)psVar11);\nLAB_002247fc:\n      iVar5 = (int)pVVar12 + (-(int)__position - iVar27);\n      iVar28 = iVar5 >> 5;\n      (this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n      )._M_impl._M_finish =\n           (pointer)((int)(this->\n                          super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                          )._M_impl._M_finish + iVar27);\n      if (0 < iVar5) {\n        psVar13 = (size_type *)((int)pVVar12 + (-0x18 - iVar27));\n        paVar10 = &pVVar12[-1].pattern.field_2;\n        do {\n          while( true ) {\n            pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n            if ((size_type *)psVar13[-2] != psVar13) break;\n            sVar14 = psVar13[-1];\n            if (sVar14 != 0) {\n              if (sVar14 == 1) {\n                *pcVar16 = *(char *)psVar13;\n                pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n                sVar14 = psVar13[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(pcVar16,psVar13);\n                pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n                sVar14 = psVar13[-1];\n              }\n            }\n            *(size_type *)((int)paVar10 + -4) = sVar14;\n            pcVar16[sVar14] = '\0';\n            iVar28 = iVar28 + -1;\n            psVar13[-1] = 0;\n            *(undefined1 *)psVar13[-2] = 0;\n            sVar14 = psVar13[4];\n            *(char *)((int)paVar10 + 0x14) = *(char *)(psVar13 + 5);\n            paVar10[1]._M_allocated_capacity = sVar14;\n            *(char *)((int)paVar10 + 0x15) = *(char *)((int)psVar13 + 0x15);\n            psVar13 = psVar13 + -8;\n            paVar10 = paVar10 + -2;\n            if (iVar28 == 0) goto LAB_002248f8;\n          }\n          (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)psVar13[-2];\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)pcVar16 == paVar10) {\n            *(size_type *)((int)paVar10 + -4) = psVar13[-1];\n            paVar10->_M_allocated_capacity = *psVar13;\nLAB_0022497c:\n            psVar13[-2] = (size_type)psVar13;\n          }\n          else {\n            sVar14 = paVar10->_M_allocated_capacity;\n            *(size_type *)((int)paVar10 + -4) = psVar13[-1];\n            paVar10->_M_allocated_capacity = *psVar13;\n            if (pcVar16 == (pointer)0x0) goto LAB_0022497c;\n            psVar13[-2] = (size_type)pcVar16;\n            *psVar13 = sVar14;\n          }\n          psVar13[-1] = 0;\n          iVar28 = iVar28 + -1;\n          *(undefined1 *)psVar13[-2] = 0;\n          sVar14 = psVar13[4];\n          *(char *)((int)paVar10 + 0x14) = *(char *)(psVar13 + 5);\n          paVar10[1]._M_allocated_capacity = sVar14;\n          *(char *)((int)paVar10 + 0x15) = *(char *)((int)psVar13 + 0x15);\n          psVar13 = psVar13 + -8;\n          paVar10 = paVar10 + -2;\n        } while (iVar28 != 0);\n      }\nLAB_002248f8:\n      if (0 < iVar27) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(__position,__first);\n          uVar29 = uVar29 - 1;\n          LVar6 = __first[6];\n          __position->exact_match = *(bool *)(__first + 7);\n          __position->language = LVar6;\n          __position->was_matched_by_symbol = *(bool *)((int)__first + 0x1d);\n          __first = __first + 8;\n          __position = __position + 1;\n        } while (uVar29 != 0);\n        return;\n      }\n    }\n    else {\n      piVar25 = (int *)((int)__first + iVar5);\n      pVVar7 = pVVar12;\n      if (piVar25 != __last) {\n        do {\n          (pVVar7->pattern)._M_dataplus._M_p = (pointer)&(pVVar7->pattern).field_2;\n                    /* try { // try from 002241f8 to 002241ff has its CatchHandler @ 002249d8 */\n          (*(code *)puVar4)(pVVar7,*piVar25,*piVar25 + piVar25[1],0);\n          piVar26 = piVar25 + 8;\n          LVar6 = piVar25[6];\n          pVVar7->exact_match = *(bool *)(piVar25 + 7);\n          pVVar7->language = LVar6;\n          pVVar7->was_matched_by_symbol = *(bool *)((int)piVar25 + 0x1d);\n          piVar25 = piVar26;\n          pVVar7 = pVVar7 + 1;\n        } while (__last != piVar26);\n        pVVar7 = (this->\n                 super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                 )._M_impl._M_finish;\n      }\n      pVVar7 = pVVar7 + (uVar29 - uVar30);\n      (this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n      )._M_impl._M_finish = pVVar7;\n      if (pVVar12 != __position) {\n        paVar17 = &(pVVar12->pattern).field_2;\n        paVar10 = &(__position->pattern).field_2;\n        do {\n          while( true ) {\n            paVar8 = &(pVVar7->pattern).field_2;\n            (pVVar7->pattern)._M_dataplus._M_p = (pointer)paVar8;\n            psVar13 = (size_type *)(((string *)((int)paVar10 + -8))->_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                 *)psVar13) break;\n            sVar19 = *(size_type *)((int)paVar10 + 4);\n            sVar15 = *(size_type *)((int)paVar10 + 8);\n            sVar14 = *(size_type *)((int)paVar10 + 0xc);\n            paVar8->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n            *(size_type *)((int)&(pVVar7->pattern).field_2 + 4) = sVar19;\n            *(size_type *)((int)&(pVVar7->pattern).field_2 + 8) = sVar15;\n            *(size_type *)((int)&(pVVar7->pattern).field_2 + 0xc) = sVar14;\n            bVar1 = *(bool *)((int)paVar10 + 0x14);\n            LVar6 = paVar10[1]._M_allocated_capacity;\n            (pVVar7->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);\n            (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n            paVar8 = paVar10 + 2;\n            *(size_type *)((int)paVar10 + -4) = 0;\n            paVar10->_M_local_buf[0] = '\0';\n            pVVar7->exact_match = bVar1;\n            pVVar7->language = LVar6;\n            pVVar7->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15);\n            paVar10 = paVar8;\n            pVVar7 = pVVar7 + 1;\n            if (paVar17 == paVar8) goto LAB_00224324;\n          }\n          (pVVar7->pattern)._M_dataplus._M_p = (pointer)psVar13;\n          bVar1 = *(bool *)((int)paVar10 + 0x14);\n          (pVVar7->pattern).field_2._M_allocated_capacity = paVar10->_M_allocated_capacity;\n          LVar6 = paVar10[1]._M_allocated_capacity;\n          (pVVar7->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);\n          (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n          paVar8 = paVar10 + 2;\n          *(size_type *)((int)paVar10 + -4) = 0;\n          paVar10->_M_local_buf[0] = '\0';\n          pVVar7->exact_match = bVar1;\n          pVVar7->language = LVar6;\n          pVVar7->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15);\n          paVar10 = paVar8;\n          pVVar7 = pVVar7 + 1;\n        } while (paVar17 != paVar8);\nLAB_00224324:\n        pVVar7 = (this->\n                 super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                 )._M_impl._M_finish;\n      }\n      (this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n      )._M_impl._M_finish = (pointer)((int)pVVar7 + iVar5);\n      if (0 < iVar5) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(__position,__first);\n          uVar30 = uVar30 - 1;\n          LVar6 = __first[6];\n          __position->exact_match = *(bool *)(__first + 7);\n          __position->language = LVar6;\n          __position->was_matched_by_symbol = *(bool *)((int)__first + 0x1d);\n          __first = __first + 8;\n          __position = __position + 1;\n        } while (uVar30 != 0);\n      }\n    }\n    return;\n  }" { (expression_statement "iVar5 = (int)pVVar12 - (int)__position;" (assignment_expression "iVar5 = (int)pVVar12 - (int)__position" identifier = (binary_expression "(int)pVVar12 - (int)__position" (cast_expression "(int)pVVar12" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)__position" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar30 = iVar5 >> 5;" (assignment_expression "uVar30 = iVar5 >> 5" identifier = (binary_expression "iVar5 >> 5" identifier >> number_literal)) ;) (if_statement "if (uVar29 < uVar30) {\n      paVar10 = &(pVVar12->pattern).field_2;\n      psVar13 = (size_type *)((int)pVVar12 + (8 - iVar27));\n      pVVar7 = pVVar12;\n      do {\n        while( true ) {\n          paVar17 = &(pVVar7->pattern).field_2;\n          (pVVar7->pattern)._M_dataplus._M_p = (pointer)paVar17;\n          if ((size_type *)psVar13[-2] != psVar13) break;\n          sVar19 = psVar13[1];\n          sVar15 = psVar13[2];\n          sVar14 = psVar13[3];\n          paVar17->_M_allocated_capacity = *psVar13;\n          *(size_type *)((int)&(pVVar7->pattern).field_2 + 4) = sVar19;\n          *(size_type *)((int)&(pVVar7->pattern).field_2 + 8) = sVar15;\n          *(size_type *)((int)&(pVVar7->pattern).field_2 + 0xc) = sVar14;\n          bVar1 = *(bool *)(psVar13 + 5);\n          LVar6 = psVar13[4];\n          (pVVar7->pattern)._M_string_length = psVar13[-1];\n          psVar13[-2] = (size_type)psVar13;\n          psVar11 = psVar13 + 8;\n          psVar13[-1] = 0;\n          *(char *)psVar13 = '\0';\n          pVVar7->exact_match = bVar1;\n          pVVar7->language = LVar6;\n          pVVar7->was_matched_by_symbol = *(bool *)((int)psVar13 + 0x15);\n          psVar13 = psVar11;\n          pVVar7 = pVVar7 + 1;\n          if (paVar10 ==\n              (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)psVar11) goto LAB_002247fc;\n        }\n        (pVVar7->pattern)._M_dataplus._M_p = (pointer)psVar13[-2];\n        bVar1 = *(bool *)(psVar13 + 5);\n        (pVVar7->pattern).field_2._M_allocated_capacity = *psVar13;\n        LVar6 = psVar13[4];\n        (pVVar7->pattern)._M_string_length = psVar13[-1];\n        psVar13[-2] = (size_type)psVar13;\n        psVar11 = psVar13 + 8;\n        psVar13[-1] = 0;\n        *(char *)psVar13 = '\0';\n        pVVar7->exact_match = bVar1;\n        pVVar7->language = LVar6;\n        pVVar7->was_matched_by_symbol = *(bool *)((int)psVar13 + 0x15);\n        psVar13 = psVar11;\n        pVVar7 = pVVar7 + 1;\n      } while (paVar10 !=\n               (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)psVar11);\nLAB_002247fc:\n      iVar5 = (int)pVVar12 + (-(int)__position - iVar27);\n      iVar28 = iVar5 >> 5;\n      (this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n      )._M_impl._M_finish =\n           (pointer)((int)(this->\n                          super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                          )._M_impl._M_finish + iVar27);\n      if (0 < iVar5) {\n        psVar13 = (size_type *)((int)pVVar12 + (-0x18 - iVar27));\n        paVar10 = &pVVar12[-1].pattern.field_2;\n        do {\n          while( true ) {\n            pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n            if ((size_type *)psVar13[-2] != psVar13) break;\n            sVar14 = psVar13[-1];\n            if (sVar14 != 0) {\n              if (sVar14 == 1) {\n                *pcVar16 = *(char *)psVar13;\n                pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n                sVar14 = psVar13[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(pcVar16,psVar13);\n                pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n                sVar14 = psVar13[-1];\n              }\n            }\n            *(size_type *)((int)paVar10 + -4) = sVar14;\n            pcVar16[sVar14] = '\0';\n            iVar28 = iVar28 + -1;\n            psVar13[-1] = 0;\n            *(undefined1 *)psVar13[-2] = 0;\n            sVar14 = psVar13[4];\n            *(char *)((int)paVar10 + 0x14) = *(char *)(psVar13 + 5);\n            paVar10[1]._M_allocated_capacity = sVar14;\n            *(char *)((int)paVar10 + 0x15) = *(char *)((int)psVar13 + 0x15);\n            psVar13 = psVar13 + -8;\n            paVar10 = paVar10 + -2;\n            if (iVar28 == 0) goto LAB_002248f8;\n          }\n          (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)psVar13[-2];\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)pcVar16 == paVar10) {\n            *(size_type *)((int)paVar10 + -4) = psVar13[-1];\n            paVar10->_M_allocated_capacity = *psVar13;\nLAB_0022497c:\n            psVar13[-2] = (size_type)psVar13;\n          }\n          else {\n            sVar14 = paVar10->_M_allocated_capacity;\n            *(size_type *)((int)paVar10 + -4) = psVar13[-1];\n            paVar10->_M_allocated_capacity = *psVar13;\n            if (pcVar16 == (pointer)0x0) goto LAB_0022497c;\n            psVar13[-2] = (size_type)pcVar16;\n            *psVar13 = sVar14;\n          }\n          psVar13[-1] = 0;\n          iVar28 = iVar28 + -1;\n          *(undefined1 *)psVar13[-2] = 0;\n          sVar14 = psVar13[4];\n          *(char *)((int)paVar10 + 0x14) = *(char *)(psVar13 + 5);\n          paVar10[1]._M_allocated_capacity = sVar14;\n          *(char *)((int)paVar10 + 0x15) = *(char *)((int)psVar13 + 0x15);\n          psVar13 = psVar13 + -8;\n          paVar10 = paVar10 + -2;\n        } while (iVar28 != 0);\n      }\nLAB_002248f8:\n      if (0 < iVar27) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(__position,__first);\n          uVar29 = uVar29 - 1;\n          LVar6 = __first[6];\n          __position->exact_match = *(bool *)(__first + 7);\n          __position->language = LVar6;\n          __position->was_matched_by_symbol = *(bool *)((int)__first + 0x1d);\n          __first = __first + 8;\n          __position = __position + 1;\n        } while (uVar29 != 0);\n        return;\n      }\n    }\n    else {\n      piVar25 = (int *)((int)__first + iVar5);\n      pVVar7 = pVVar12;\n      if (piVar25 != __last) {\n        do {\n          (pVVar7->pattern)._M_dataplus._M_p = (pointer)&(pVVar7->pattern).field_2;\n                    /* try { // try from 002241f8 to 002241ff has its CatchHandler @ 002249d8 */\n          (*(code *)puVar4)(pVVar7,*piVar25,*piVar25 + piVar25[1],0);\n          piVar26 = piVar25 + 8;\n          LVar6 = piVar25[6];\n          pVVar7->exact_match = *(bool *)(piVar25 + 7);\n          pVVar7->language = LVar6;\n          pVVar7->was_matched_by_symbol = *(bool *)((int)piVar25 + 0x1d);\n          piVar25 = piVar26;\n          pVVar7 = pVVar7 + 1;\n        } while (__last != piVar26);\n        pVVar7 = (this->\n                 super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                 )._M_impl._M_finish;\n      }\n      pVVar7 = pVVar7 + (uVar29 - uVar30);\n      (this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n      )._M_impl._M_finish = pVVar7;\n      if (pVVar12 != __position) {\n        paVar17 = &(pVVar12->pattern).field_2;\n        paVar10 = &(__position->pattern).field_2;\n        do {\n          while( true ) {\n            paVar8 = &(pVVar7->pattern).field_2;\n            (pVVar7->pattern)._M_dataplus._M_p = (pointer)paVar8;\n            psVar13 = (size_type *)(((string *)((int)paVar10 + -8))->_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                 *)psVar13) break;\n            sVar19 = *(size_type *)((int)paVar10 + 4);\n            sVar15 = *(size_type *)((int)paVar10 + 8);\n            sVar14 = *(size_type *)((int)paVar10 + 0xc);\n            paVar8->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n            *(size_type *)((int)&(pVVar7->pattern).field_2 + 4) = sVar19;\n            *(size_type *)((int)&(pVVar7->pattern).field_2 + 8) = sVar15;\n            *(size_type *)((int)&(pVVar7->pattern).field_2 + 0xc) = sVar14;\n            bVar1 = *(bool *)((int)paVar10 + 0x14);\n            LVar6 = paVar10[1]._M_allocated_capacity;\n            (pVVar7->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);\n            (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n            paVar8 = paVar10 + 2;\n            *(size_type *)((int)paVar10 + -4) = 0;\n            paVar10->_M_local_buf[0] = '\0';\n            pVVar7->exact_match = bVar1;\n            pVVar7->language = LVar6;\n            pVVar7->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15);\n            paVar10 = paVar8;\n            pVVar7 = pVVar7 + 1;\n            if (paVar17 == paVar8) goto LAB_00224324;\n          }\n          (pVVar7->pattern)._M_dataplus._M_p = (pointer)psVar13;\n          bVar1 = *(bool *)((int)paVar10 + 0x14);\n          (pVVar7->pattern).field_2._M_allocated_capacity = paVar10->_M_allocated_capacity;\n          LVar6 = paVar10[1]._M_allocated_capacity;\n          (pVVar7->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);\n          (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n          paVar8 = paVar10 + 2;\n          *(size_type *)((int)paVar10 + -4) = 0;\n          paVar10->_M_local_buf[0] = '\0';\n          pVVar7->exact_match = bVar1;\n          pVVar7->language = LVar6;\n          pVVar7->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15);\n          paVar10 = paVar8;\n          pVVar7 = pVVar7 + 1;\n        } while (paVar17 != paVar8);\nLAB_00224324:\n        pVVar7 = (this->\n                 super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                 )._M_impl._M_finish;\n      }\n      (this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n      )._M_impl._M_finish = (pointer)((int)pVVar7 + iVar5);\n      if (0 < iVar5) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(__position,__first);\n          uVar30 = uVar30 - 1;\n          LVar6 = __first[6];\n          __position->exact_match = *(bool *)(__first + 7);\n          __position->language = LVar6;\n          __position->was_matched_by_symbol = *(bool *)((int)__first + 0x1d);\n          __first = __first + 8;\n          __position = __position + 1;\n        } while (uVar30 != 0);\n      }\n    }" if (parenthesized_expression "(uVar29 < uVar30)" ( (binary_expression "uVar29 < uVar30" identifier < identifier) )) (compound_statement "{\n      paVar10 = &(pVVar12->pattern).field_2;\n      psVar13 = (size_type *)((int)pVVar12 + (8 - iVar27));\n      pVVar7 = pVVar12;\n      do {\n        while( true ) {\n          paVar17 = &(pVVar7->pattern).field_2;\n          (pVVar7->pattern)._M_dataplus._M_p = (pointer)paVar17;\n          if ((size_type *)psVar13[-2] != psVar13) break;\n          sVar19 = psVar13[1];\n          sVar15 = psVar13[2];\n          sVar14 = psVar13[3];\n          paVar17->_M_allocated_capacity = *psVar13;\n          *(size_type *)((int)&(pVVar7->pattern).field_2 + 4) = sVar19;\n          *(size_type *)((int)&(pVVar7->pattern).field_2 + 8) = sVar15;\n          *(size_type *)((int)&(pVVar7->pattern).field_2 + 0xc) = sVar14;\n          bVar1 = *(bool *)(psVar13 + 5);\n          LVar6 = psVar13[4];\n          (pVVar7->pattern)._M_string_length = psVar13[-1];\n          psVar13[-2] = (size_type)psVar13;\n          psVar11 = psVar13 + 8;\n          psVar13[-1] = 0;\n          *(char *)psVar13 = '\0';\n          pVVar7->exact_match = bVar1;\n          pVVar7->language = LVar6;\n          pVVar7->was_matched_by_symbol = *(bool *)((int)psVar13 + 0x15);\n          psVar13 = psVar11;\n          pVVar7 = pVVar7 + 1;\n          if (paVar10 ==\n              (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)psVar11) goto LAB_002247fc;\n        }\n        (pVVar7->pattern)._M_dataplus._M_p = (pointer)psVar13[-2];\n        bVar1 = *(bool *)(psVar13 + 5);\n        (pVVar7->pattern).field_2._M_allocated_capacity = *psVar13;\n        LVar6 = psVar13[4];\n        (pVVar7->pattern)._M_string_length = psVar13[-1];\n        psVar13[-2] = (size_type)psVar13;\n        psVar11 = psVar13 + 8;\n        psVar13[-1] = 0;\n        *(char *)psVar13 = '\0';\n        pVVar7->exact_match = bVar1;\n        pVVar7->language = LVar6;\n        pVVar7->was_matched_by_symbol = *(bool *)((int)psVar13 + 0x15);\n        psVar13 = psVar11;\n        pVVar7 = pVVar7 + 1;\n      } while (paVar10 !=\n               (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)psVar11);\nLAB_002247fc:\n      iVar5 = (int)pVVar12 + (-(int)__position - iVar27);\n      iVar28 = iVar5 >> 5;\n      (this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n      )._M_impl._M_finish =\n           (pointer)((int)(this->\n                          super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                          )._M_impl._M_finish + iVar27);\n      if (0 < iVar5) {\n        psVar13 = (size_type *)((int)pVVar12 + (-0x18 - iVar27));\n        paVar10 = &pVVar12[-1].pattern.field_2;\n        do {\n          while( true ) {\n            pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n            if ((size_type *)psVar13[-2] != psVar13) break;\n            sVar14 = psVar13[-1];\n            if (sVar14 != 0) {\n              if (sVar14 == 1) {\n                *pcVar16 = *(char *)psVar13;\n                pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n                sVar14 = psVar13[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(pcVar16,psVar13);\n                pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n                sVar14 = psVar13[-1];\n              }\n            }\n            *(size_type *)((int)paVar10 + -4) = sVar14;\n            pcVar16[sVar14] = '\0';\n            iVar28 = iVar28 + -1;\n            psVar13[-1] = 0;\n            *(undefined1 *)psVar13[-2] = 0;\n            sVar14 = psVar13[4];\n            *(char *)((int)paVar10 + 0x14) = *(char *)(psVar13 + 5);\n            paVar10[1]._M_allocated_capacity = sVar14;\n            *(char *)((int)paVar10 + 0x15) = *(char *)((int)psVar13 + 0x15);\n            psVar13 = psVar13 + -8;\n            paVar10 = paVar10 + -2;\n            if (iVar28 == 0) goto LAB_002248f8;\n          }\n          (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)psVar13[-2];\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)pcVar16 == paVar10) {\n            *(size_type *)((int)paVar10 + -4) = psVar13[-1];\n            paVar10->_M_allocated_capacity = *psVar13;\nLAB_0022497c:\n            psVar13[-2] = (size_type)psVar13;\n          }\n          else {\n            sVar14 = paVar10->_M_allocated_capacity;\n            *(size_type *)((int)paVar10 + -4) = psVar13[-1];\n            paVar10->_M_allocated_capacity = *psVar13;\n            if (pcVar16 == (pointer)0x0) goto LAB_0022497c;\n            psVar13[-2] = (size_type)pcVar16;\n            *psVar13 = sVar14;\n          }\n          psVar13[-1] = 0;\n          iVar28 = iVar28 + -1;\n          *(undefined1 *)psVar13[-2] = 0;\n          sVar14 = psVar13[4];\n          *(char *)((int)paVar10 + 0x14) = *(char *)(psVar13 + 5);\n          paVar10[1]._M_allocated_capacity = sVar14;\n          *(char *)((int)paVar10 + 0x15) = *(char *)((int)psVar13 + 0x15);\n          psVar13 = psVar13 + -8;\n          paVar10 = paVar10 + -2;\n        } while (iVar28 != 0);\n      }\nLAB_002248f8:\n      if (0 < iVar27) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(__position,__first);\n          uVar29 = uVar29 - 1;\n          LVar6 = __first[6];\n          __position->exact_match = *(bool *)(__first + 7);\n          __position->language = LVar6;\n          __position->was_matched_by_symbol = *(bool *)((int)__first + 0x1d);\n          __first = __first + 8;\n          __position = __position + 1;\n        } while (uVar29 != 0);\n        return;\n      }\n    }" { (expression_statement "paVar10 = &(pVVar12->pattern).field_2;" (assignment_expression "paVar10 = &(pVVar12->pattern).field_2" identifier = (pointer_expression "&(pVVar12->pattern).field_2" & (field_expression "(pVVar12->pattern).field_2" (parenthesized_expression "(pVVar12->pattern)" ( (field_expression "pVVar12->pattern" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "psVar13 = (size_type *)((int)pVVar12 + (8 - iVar27));" (assignment_expression "psVar13 = (size_type *)((int)pVVar12 + (8 - iVar27))" identifier = (cast_expression "(size_type *)((int)pVVar12 + (8 - iVar27))" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pVVar12 + (8 - iVar27))" ( (binary_expression "(int)pVVar12 + (8 - iVar27)" (cast_expression "(int)pVVar12" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(8 - iVar27)" ( (binary_expression "8 - iVar27" number_literal - identifier) ))) )))) ;) (expression_statement "pVVar7 = pVVar12;" (assignment_expression "pVVar7 = pVVar12" identifier = identifier) ;) (do_statement "do {\n        while( true ) {\n          paVar17 = &(pVVar7->pattern).field_2;\n          (pVVar7->pattern)._M_dataplus._M_p = (pointer)paVar17;\n          if ((size_type *)psVar13[-2] != psVar13) break;\n          sVar19 = psVar13[1];\n          sVar15 = psVar13[2];\n          sVar14 = psVar13[3];\n          paVar17->_M_allocated_capacity = *psVar13;\n          *(size_type *)((int)&(pVVar7->pattern).field_2 + 4) = sVar19;\n          *(size_type *)((int)&(pVVar7->pattern).field_2 + 8) = sVar15;\n          *(size_type *)((int)&(pVVar7->pattern).field_2 + 0xc) = sVar14;\n          bVar1 = *(bool *)(psVar13 + 5);\n          LVar6 = psVar13[4];\n          (pVVar7->pattern)._M_string_length = psVar13[-1];\n          psVar13[-2] = (size_type)psVar13;\n          psVar11 = psVar13 + 8;\n          psVar13[-1] = 0;\n          *(char *)psVar13 = '\0';\n          pVVar7->exact_match = bVar1;\n          pVVar7->language = LVar6;\n          pVVar7->was_matched_by_symbol = *(bool *)((int)psVar13 + 0x15);\n          psVar13 = psVar11;\n          pVVar7 = pVVar7 + 1;\n          if (paVar10 ==\n              (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)psVar11) goto LAB_002247fc;\n        }\n        (pVVar7->pattern)._M_dataplus._M_p = (pointer)psVar13[-2];\n        bVar1 = *(bool *)(psVar13 + 5);\n        (pVVar7->pattern).field_2._M_allocated_capacity = *psVar13;\n        LVar6 = psVar13[4];\n        (pVVar7->pattern)._M_string_length = psVar13[-1];\n        psVar13[-2] = (size_type)psVar13;\n        psVar11 = psVar13 + 8;\n        psVar13[-1] = 0;\n        *(char *)psVar13 = '\0';\n        pVVar7->exact_match = bVar1;\n        pVVar7->language = LVar6;\n        pVVar7->was_matched_by_symbol = *(bool *)((int)psVar13 + 0x15);\n        psVar13 = psVar11;\n        pVVar7 = pVVar7 + 1;\n      } while (paVar10 !=\n               (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)psVar11);" do (compound_statement "{\n        while( true ) {\n          paVar17 = &(pVVar7->pattern).field_2;\n          (pVVar7->pattern)._M_dataplus._M_p = (pointer)paVar17;\n          if ((size_type *)psVar13[-2] != psVar13) break;\n          sVar19 = psVar13[1];\n          sVar15 = psVar13[2];\n          sVar14 = psVar13[3];\n          paVar17->_M_allocated_capacity = *psVar13;\n          *(size_type *)((int)&(pVVar7->pattern).field_2 + 4) = sVar19;\n          *(size_type *)((int)&(pVVar7->pattern).field_2 + 8) = sVar15;\n          *(size_type *)((int)&(pVVar7->pattern).field_2 + 0xc) = sVar14;\n          bVar1 = *(bool *)(psVar13 + 5);\n          LVar6 = psVar13[4];\n          (pVVar7->pattern)._M_string_length = psVar13[-1];\n          psVar13[-2] = (size_type)psVar13;\n          psVar11 = psVar13 + 8;\n          psVar13[-1] = 0;\n          *(char *)psVar13 = '\0';\n          pVVar7->exact_match = bVar1;\n          pVVar7->language = LVar6;\n          pVVar7->was_matched_by_symbol = *(bool *)((int)psVar13 + 0x15);\n          psVar13 = psVar11;\n          pVVar7 = pVVar7 + 1;\n          if (paVar10 ==\n              (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)psVar11) goto LAB_002247fc;\n        }\n        (pVVar7->pattern)._M_dataplus._M_p = (pointer)psVar13[-2];\n        bVar1 = *(bool *)(psVar13 + 5);\n        (pVVar7->pattern).field_2._M_allocated_capacity = *psVar13;\n        LVar6 = psVar13[4];\n        (pVVar7->pattern)._M_string_length = psVar13[-1];\n        psVar13[-2] = (size_type)psVar13;\n        psVar11 = psVar13 + 8;\n        psVar13[-1] = 0;\n        *(char *)psVar13 = '\0';\n        pVVar7->exact_match = bVar1;\n        pVVar7->language = LVar6;\n        pVVar7->was_matched_by_symbol = *(bool *)((int)psVar13 + 0x15);\n        psVar13 = psVar11;\n        pVVar7 = pVVar7 + 1;\n      }" { (while_statement "while( true ) {\n          paVar17 = &(pVVar7->pattern).field_2;\n          (pVVar7->pattern)._M_dataplus._M_p = (pointer)paVar17;\n          if ((size_type *)psVar13[-2] != psVar13) break;\n          sVar19 = psVar13[1];\n          sVar15 = psVar13[2];\n          sVar14 = psVar13[3];\n          paVar17->_M_allocated_capacity = *psVar13;\n          *(size_type *)((int)&(pVVar7->pattern).field_2 + 4) = sVar19;\n          *(size_type *)((int)&(pVVar7->pattern).field_2 + 8) = sVar15;\n          *(size_type *)((int)&(pVVar7->pattern).field_2 + 0xc) = sVar14;\n          bVar1 = *(bool *)(psVar13 + 5);\n          LVar6 = psVar13[4];\n          (pVVar7->pattern)._M_string_length = psVar13[-1];\n          psVar13[-2] = (size_type)psVar13;\n          psVar11 = psVar13 + 8;\n          psVar13[-1] = 0;\n          *(char *)psVar13 = '\0';\n          pVVar7->exact_match = bVar1;\n          pVVar7->language = LVar6;\n          pVVar7->was_matched_by_symbol = *(bool *)((int)psVar13 + 0x15);\n          psVar13 = psVar11;\n          pVVar7 = pVVar7 + 1;\n          if (paVar10 ==\n              (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)psVar11) goto LAB_002247fc;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          paVar17 = &(pVVar7->pattern).field_2;\n          (pVVar7->pattern)._M_dataplus._M_p = (pointer)paVar17;\n          if ((size_type *)psVar13[-2] != psVar13) break;\n          sVar19 = psVar13[1];\n          sVar15 = psVar13[2];\n          sVar14 = psVar13[3];\n          paVar17->_M_allocated_capacity = *psVar13;\n          *(size_type *)((int)&(pVVar7->pattern).field_2 + 4) = sVar19;\n          *(size_type *)((int)&(pVVar7->pattern).field_2 + 8) = sVar15;\n          *(size_type *)((int)&(pVVar7->pattern).field_2 + 0xc) = sVar14;\n          bVar1 = *(bool *)(psVar13 + 5);\n          LVar6 = psVar13[4];\n          (pVVar7->pattern)._M_string_length = psVar13[-1];\n          psVar13[-2] = (size_type)psVar13;\n          psVar11 = psVar13 + 8;\n          psVar13[-1] = 0;\n          *(char *)psVar13 = '\0';\n          pVVar7->exact_match = bVar1;\n          pVVar7->language = LVar6;\n          pVVar7->was_matched_by_symbol = *(bool *)((int)psVar13 + 0x15);\n          psVar13 = psVar11;\n          pVVar7 = pVVar7 + 1;\n          if (paVar10 ==\n              (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)psVar11) goto LAB_002247fc;\n        }" { (expression_statement "paVar17 = &(pVVar7->pattern).field_2;" (assignment_expression "paVar17 = &(pVVar7->pattern).field_2" identifier = (pointer_expression "&(pVVar7->pattern).field_2" & (field_expression "(pVVar7->pattern).field_2" (parenthesized_expression "(pVVar7->pattern)" ( (field_expression "pVVar7->pattern" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "(pVVar7->pattern)._M_dataplus._M_p = (pointer)paVar17;" (assignment_expression "(pVVar7->pattern)._M_dataplus._M_p = (pointer)paVar17" (field_expression "(pVVar7->pattern)._M_dataplus._M_p" (field_expression "(pVVar7->pattern)._M_dataplus" (parenthesized_expression "(pVVar7->pattern)" ( (field_expression "pVVar7->pattern" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar17" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (if_statement "if ((size_type *)psVar13[-2] != psVar13) break;" if (parenthesized_expression "((size_type *)psVar13[-2] != psVar13)" ( (binary_expression "(size_type *)psVar13[-2] != psVar13" (cast_expression "(size_type *)psVar13[-2]" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "psVar13[-2]" identifier [ number_literal ])) != identifier) )) (break_statement "break;" break ;)) (expression_statement "sVar19 = psVar13[1];" (assignment_expression "sVar19 = psVar13[1]" identifier = (subscript_expression "psVar13[1]" identifier [ number_literal ])) ;) (expression_statement "sVar15 = psVar13[2];" (assignment_expression "sVar15 = psVar13[2]" identifier = (subscript_expression "psVar13[2]" identifier [ number_literal ])) ;) (expression_statement "sVar14 = psVar13[3];" (assignment_expression "sVar14 = psVar13[3]" identifier = (subscript_expression "psVar13[3]" identifier [ number_literal ])) ;) (expression_statement "paVar17->_M_allocated_capacity = *psVar13;" (assignment_expression "paVar17->_M_allocated_capacity = *psVar13" (field_expression "paVar17->_M_allocated_capacity" identifier -> field_identifier) = (pointer_expression "*psVar13" * identifier)) ;) (expression_statement "*(size_type *)((int)&(pVVar7->pattern).field_2 + 4) = sVar19;" (assignment_expression "*(size_type *)((int)&(pVVar7->pattern).field_2 + 4) = sVar19" (pointer_expression "*(size_type *)((int)&(pVVar7->pattern).field_2 + 4)" * (cast_expression "(size_type *)((int)&(pVVar7->pattern).field_2 + 4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pVVar7->pattern).field_2 + 4)" ( (binary_expression "(int)&(pVVar7->pattern).field_2 + 4" (cast_expression "(int)&(pVVar7->pattern).field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pVVar7->pattern).field_2" & (field_expression "(pVVar7->pattern).field_2" (parenthesized_expression "(pVVar7->pattern)" ( (field_expression "pVVar7->pattern" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(size_type *)((int)&(pVVar7->pattern).field_2 + 8) = sVar15;" (assignment_expression "*(size_type *)((int)&(pVVar7->pattern).field_2 + 8) = sVar15" (pointer_expression "*(size_type *)((int)&(pVVar7->pattern).field_2 + 8)" * (cast_expression "(size_type *)((int)&(pVVar7->pattern).field_2 + 8)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pVVar7->pattern).field_2 + 8)" ( (binary_expression "(int)&(pVVar7->pattern).field_2 + 8" (cast_expression "(int)&(pVVar7->pattern).field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pVVar7->pattern).field_2" & (field_expression "(pVVar7->pattern).field_2" (parenthesized_expression "(pVVar7->pattern)" ( (field_expression "pVVar7->pattern" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(size_type *)((int)&(pVVar7->pattern).field_2 + 0xc) = sVar14;" (assignment_expression "*(size_type *)((int)&(pVVar7->pattern).field_2 + 0xc) = sVar14" (pointer_expression "*(size_type *)((int)&(pVVar7->pattern).field_2 + 0xc)" * (cast_expression "(size_type *)((int)&(pVVar7->pattern).field_2 + 0xc)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pVVar7->pattern).field_2 + 0xc)" ( (binary_expression "(int)&(pVVar7->pattern).field_2 + 0xc" (cast_expression "(int)&(pVVar7->pattern).field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pVVar7->pattern).field_2" & (field_expression "(pVVar7->pattern).field_2" (parenthesized_expression "(pVVar7->pattern)" ( (field_expression "pVVar7->pattern" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "bVar1 = *(bool *)(psVar13 + 5);" (assignment_expression "bVar1 = *(bool *)(psVar13 + 5)" identifier = (pointer_expression "*(bool *)(psVar13 + 5)" * (cast_expression "(bool *)(psVar13 + 5)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psVar13 + 5)" ( (binary_expression "psVar13 + 5" identifier + number_literal) ))))) ;) (expression_statement "LVar6 = psVar13[4];" (assignment_expression "LVar6 = psVar13[4]" identifier = (subscript_expression "psVar13[4]" identifier [ number_literal ])) ;) (expression_statement "(pVVar7->pattern)._M_string_length = psVar13[-1];" (assignment_expression "(pVVar7->pattern)._M_string_length = psVar13[-1]" (field_expression "(pVVar7->pattern)._M_string_length" (parenthesized_expression "(pVVar7->pattern)" ( (field_expression "pVVar7->pattern" identifier -> field_identifier) )) . field_identifier) = (subscript_expression "psVar13[-1]" identifier [ number_literal ])) ;) (expression_statement "psVar13[-2] = (size_type)psVar13;" (assignment_expression "psVar13[-2] = (size_type)psVar13" (subscript_expression "psVar13[-2]" identifier [ number_literal ]) = (cast_expression "(size_type)psVar13" ( (type_descriptor "size_type" type_identifier) ) identifier)) ;) (expression_statement "psVar11 = psVar13 + 8;" (assignment_expression "psVar11 = psVar13 + 8" identifier = (binary_expression "psVar13 + 8" identifier + number_literal)) ;) (expression_statement "psVar13[-1] = 0;" (assignment_expression "psVar13[-1] = 0" (subscript_expression "psVar13[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(char *)psVar13 = '\0';" (assignment_expression "*(char *)psVar13 = '\0'" (pointer_expression "*(char *)psVar13" * (cast_expression "(char *)psVar13" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pVVar7->exact_match = bVar1;" (assignment_expression "pVVar7->exact_match = bVar1" (field_expression "pVVar7->exact_match" identifier -> field_identifier) = identifier) ;) (expression_statement "pVVar7->language = LVar6;" (assignment_expression "pVVar7->language = LVar6" (field_expression "pVVar7->language" identifier -> field_identifier) = identifier) ;) (expression_statement "pVVar7->was_matched_by_symbol = *(bool *)((int)psVar13 + 0x15);" (assignment_expression "pVVar7->was_matched_by_symbol = *(bool *)((int)psVar13 + 0x15)" (field_expression "pVVar7->was_matched_by_symbol" identifier -> field_identifier) = (pointer_expression "*(bool *)((int)psVar13 + 0x15)" * (cast_expression "(bool *)((int)psVar13 + 0x15)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar13 + 0x15)" ( (binary_expression "(int)psVar13 + 0x15" (cast_expression "(int)psVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "psVar13 = psVar11;" (assignment_expression "psVar13 = psVar11" identifier = identifier) ;) (expression_statement "pVVar7 = pVVar7 + 1;" (assignment_expression "pVVar7 = pVVar7 + 1" identifier = (binary_expression "pVVar7 + 1" identifier + number_literal)) ;) (if_statement "if (paVar10 ==\n              (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)psVar11) goto LAB_002247fc;" if (parenthesized_expression "(paVar10 ==\n              (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)psVar11)" ( (binary_expression "paVar10 ==\n              (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)psVar11)" identifier == (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)psVar11)" ( (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               *)psVar11" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n               *)psVar11" identifier * (ERROR ")" )) identifier)) ))) )) (goto_statement "goto LAB_002247fc;" goto statement_identifier ;)) })) (expression_statement "(pVVar7->pattern)._M_dataplus._M_p = (pointer)psVar13[-2];" (assignment_expression "(pVVar7->pattern)._M_dataplus._M_p = (pointer)psVar13[-2]" (field_expression "(pVVar7->pattern)._M_dataplus._M_p" (field_expression "(pVVar7->pattern)._M_dataplus" (parenthesized_expression "(pVVar7->pattern)" ( (field_expression "pVVar7->pattern" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(pointer)psVar13[-2]" ( (type_descriptor "pointer" type_identifier) ) (subscript_expression "psVar13[-2]" identifier [ number_literal ]))) ;) (expression_statement "bVar1 = *(bool *)(psVar13 + 5);" (assignment_expression "bVar1 = *(bool *)(psVar13 + 5)" identifier = (pointer_expression "*(bool *)(psVar13 + 5)" * (cast_expression "(bool *)(psVar13 + 5)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psVar13 + 5)" ( (binary_expression "psVar13 + 5" identifier + number_literal) ))))) ;) (expression_statement "(pVVar7->pattern).field_2._M_allocated_capacity = *psVar13;" (assignment_expression "(pVVar7->pattern).field_2._M_allocated_capacity = *psVar13" (field_expression "(pVVar7->pattern).field_2._M_allocated_capacity" (field_expression "(pVVar7->pattern).field_2" (parenthesized_expression "(pVVar7->pattern)" ( (field_expression "pVVar7->pattern" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (pointer_expression "*psVar13" * identifier)) ;) (expression_statement "LVar6 = psVar13[4];" (assignment_expression "LVar6 = psVar13[4]" identifier = (subscript_expression "psVar13[4]" identifier [ number_literal ])) ;) (expression_statement "(pVVar7->pattern)._M_string_length = psVar13[-1];" (assignment_expression "(pVVar7->pattern)._M_string_length = psVar13[-1]" (field_expression "(pVVar7->pattern)._M_string_length" (parenthesized_expression "(pVVar7->pattern)" ( (field_expression "pVVar7->pattern" identifier -> field_identifier) )) . field_identifier) = (subscript_expression "psVar13[-1]" identifier [ number_literal ])) ;) (expression_statement "psVar13[-2] = (size_type)psVar13;" (assignment_expression "psVar13[-2] = (size_type)psVar13" (subscript_expression "psVar13[-2]" identifier [ number_literal ]) = (cast_expression "(size_type)psVar13" ( (type_descriptor "size_type" type_identifier) ) identifier)) ;) (expression_statement "psVar11 = psVar13 + 8;" (assignment_expression "psVar11 = psVar13 + 8" identifier = (binary_expression "psVar13 + 8" identifier + number_literal)) ;) (expression_statement "psVar13[-1] = 0;" (assignment_expression "psVar13[-1] = 0" (subscript_expression "psVar13[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(char *)psVar13 = '\0';" (assignment_expression "*(char *)psVar13 = '\0'" (pointer_expression "*(char *)psVar13" * (cast_expression "(char *)psVar13" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pVVar7->exact_match = bVar1;" (assignment_expression "pVVar7->exact_match = bVar1" (field_expression "pVVar7->exact_match" identifier -> field_identifier) = identifier) ;) (expression_statement "pVVar7->language = LVar6;" (assignment_expression "pVVar7->language = LVar6" (field_expression "pVVar7->language" identifier -> field_identifier) = identifier) ;) (expression_statement "pVVar7->was_matched_by_symbol = *(bool *)((int)psVar13 + 0x15);" (assignment_expression "pVVar7->was_matched_by_symbol = *(bool *)((int)psVar13 + 0x15)" (field_expression "pVVar7->was_matched_by_symbol" identifier -> field_identifier) = (pointer_expression "*(bool *)((int)psVar13 + 0x15)" * (cast_expression "(bool *)((int)psVar13 + 0x15)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar13 + 0x15)" ( (binary_expression "(int)psVar13 + 0x15" (cast_expression "(int)psVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "psVar13 = psVar11;" (assignment_expression "psVar13 = psVar11" identifier = identifier) ;) (expression_statement "pVVar7 = pVVar7 + 1;" (assignment_expression "pVVar7 = pVVar7 + 1" identifier = (binary_expression "pVVar7 + 1" 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                *)psVar11)" ( (binary_expression "paVar10 !=\n               (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)psVar11)" identifier != (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)psVar11)" ( (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                *)psVar11" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                *)psVar11" identifier * (ERROR ")" )) identifier)) ))) )) ;) (labeled_statement "LAB_002247fc:\n      iVar5 = (int)pVVar12 + (-(int)__position - iVar27);" statement_identifier : (expression_statement "iVar5 = (int)pVVar12 + (-(int)__position - iVar27);" (assignment_expression "iVar5 = (int)pVVar12 + (-(int)__position - iVar27)" identifier = (binary_expression "(int)pVVar12 + (-(int)__position - iVar27)" (cast_expression "(int)pVVar12" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-(int)__position - iVar27)" ( (binary_expression "-(int)__position - iVar27" (unary_expression "-(int)__position" - (cast_expression "(int)__position" ( (type_descriptor "int" primitive_type) ) identifier)) - identifier) )))) ;)) (expression_statement "iVar28 = iVar5 >> 5;" (assignment_expression "iVar28 = iVar5 >> 5" identifier = (binary_expression "iVar5 >> 5" identifier >> number_literal)) ;) (expression_statement "(this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n      )._M_impl._M_finish =\n           (pointer)((int)(this->\n                          super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                          )._M_impl._M_finish + iVar27);" (assignment_expression "(this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n      )._M_impl._M_finish =\n           (pointer)((int)(this->\n                          super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                          )._M_impl._M_finish + iVar27)" (field_expression "(this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n      )._M_impl._M_finish" (field_expression "(this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n      )._M_impl" (parenthesized_expression "(this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n      )" ( (ERROR "this->super__Vector_base<gold::Version_expression,_std::allocator<gold::" (comma_expression "this->super__Vector_base<gold::Version_expression,_std" (binary_expression "this->super__Vector_base<gold" (field_expression "this->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Version_expression" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Version_expression>_>" (binary_expression "Version_expression>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier) = (call_expression "(pointer)((int)(this->\n                          super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                          )._M_impl._M_finish + iVar27)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((int)(this->\n                          super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                          )._M_impl._M_finish + iVar27)" ( (binary_expression "(int)(this->\n                          super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                          )._M_impl._M_finish + iVar27" (cast_expression "(int)(this->\n                          super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                          )._M_impl._M_finish" ( (type_descriptor "int" primitive_type) ) (field_expression "(this->\n                          super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                          )._M_impl._M_finish" (field_expression "(this->\n                          super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                          )._M_impl" (parenthesized_expression "(this->\n                          super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                          )" ( (ERROR "this->\n                          super__Vector_base<gold::Version_expression,_std::allocator<gold::" (comma_expression "this->\n                          super__Vector_base<gold::Version_expression,_std" (binary_expression "this->\n                          super__Vector_base<gold" (field_expression "this->\n                          super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Version_expression" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Version_expression>_>" (binary_expression "Version_expression>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier)) + identifier) )))) ;) (if_statement "if (0 < iVar5) {\n        psVar13 = (size_type *)((int)pVVar12 + (-0x18 - iVar27));\n        paVar10 = &pVVar12[-1].pattern.field_2;\n        do {\n          while( true ) {\n            pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n            if ((size_type *)psVar13[-2] != psVar13) break;\n            sVar14 = psVar13[-1];\n            if (sVar14 != 0) {\n              if (sVar14 == 1) {\n                *pcVar16 = *(char *)psVar13;\n                pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n                sVar14 = psVar13[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(pcVar16,psVar13);\n                pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n                sVar14 = psVar13[-1];\n              }\n            }\n            *(size_type *)((int)paVar10 + -4) = sVar14;\n            pcVar16[sVar14] = '\0';\n            iVar28 = iVar28 + -1;\n            psVar13[-1] = 0;\n            *(undefined1 *)psVar13[-2] = 0;\n            sVar14 = psVar13[4];\n            *(char *)((int)paVar10 + 0x14) = *(char *)(psVar13 + 5);\n            paVar10[1]._M_allocated_capacity = sVar14;\n            *(char *)((int)paVar10 + 0x15) = *(char *)((int)psVar13 + 0x15);\n            psVar13 = psVar13 + -8;\n            paVar10 = paVar10 + -2;\n            if (iVar28 == 0) goto LAB_002248f8;\n          }\n          (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)psVar13[-2];\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)pcVar16 == paVar10) {\n            *(size_type *)((int)paVar10 + -4) = psVar13[-1];\n            paVar10->_M_allocated_capacity = *psVar13;\nLAB_0022497c:\n            psVar13[-2] = (size_type)psVar13;\n          }\n          else {\n            sVar14 = paVar10->_M_allocated_capacity;\n            *(size_type *)((int)paVar10 + -4) = psVar13[-1];\n            paVar10->_M_allocated_capacity = *psVar13;\n            if (pcVar16 == (pointer)0x0) goto LAB_0022497c;\n            psVar13[-2] = (size_type)pcVar16;\n            *psVar13 = sVar14;\n          }\n          psVar13[-1] = 0;\n          iVar28 = iVar28 + -1;\n          *(undefined1 *)psVar13[-2] = 0;\n          sVar14 = psVar13[4];\n          *(char *)((int)paVar10 + 0x14) = *(char *)(psVar13 + 5);\n          paVar10[1]._M_allocated_capacity = sVar14;\n          *(char *)((int)paVar10 + 0x15) = *(char *)((int)psVar13 + 0x15);\n          psVar13 = psVar13 + -8;\n          paVar10 = paVar10 + -2;\n        } while (iVar28 != 0);\n      }" if (parenthesized_expression "(0 < iVar5)" ( (binary_expression "0 < iVar5" number_literal < identifier) )) (compound_statement "{\n        psVar13 = (size_type *)((int)pVVar12 + (-0x18 - iVar27));\n        paVar10 = &pVVar12[-1].pattern.field_2;\n        do {\n          while( true ) {\n            pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n            if ((size_type *)psVar13[-2] != psVar13) break;\n            sVar14 = psVar13[-1];\n            if (sVar14 != 0) {\n              if (sVar14 == 1) {\n                *pcVar16 = *(char *)psVar13;\n                pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n                sVar14 = psVar13[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(pcVar16,psVar13);\n                pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n                sVar14 = psVar13[-1];\n              }\n            }\n            *(size_type *)((int)paVar10 + -4) = sVar14;\n            pcVar16[sVar14] = '\0';\n            iVar28 = iVar28 + -1;\n            psVar13[-1] = 0;\n            *(undefined1 *)psVar13[-2] = 0;\n            sVar14 = psVar13[4];\n            *(char *)((int)paVar10 + 0x14) = *(char *)(psVar13 + 5);\n            paVar10[1]._M_allocated_capacity = sVar14;\n            *(char *)((int)paVar10 + 0x15) = *(char *)((int)psVar13 + 0x15);\n            psVar13 = psVar13 + -8;\n            paVar10 = paVar10 + -2;\n            if (iVar28 == 0) goto LAB_002248f8;\n          }\n          (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)psVar13[-2];\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)pcVar16 == paVar10) {\n            *(size_type *)((int)paVar10 + -4) = psVar13[-1];\n            paVar10->_M_allocated_capacity = *psVar13;\nLAB_0022497c:\n            psVar13[-2] = (size_type)psVar13;\n          }\n          else {\n            sVar14 = paVar10->_M_allocated_capacity;\n            *(size_type *)((int)paVar10 + -4) = psVar13[-1];\n            paVar10->_M_allocated_capacity = *psVar13;\n            if (pcVar16 == (pointer)0x0) goto LAB_0022497c;\n            psVar13[-2] = (size_type)pcVar16;\n            *psVar13 = sVar14;\n          }\n          psVar13[-1] = 0;\n          iVar28 = iVar28 + -1;\n          *(undefined1 *)psVar13[-2] = 0;\n          sVar14 = psVar13[4];\n          *(char *)((int)paVar10 + 0x14) = *(char *)(psVar13 + 5);\n          paVar10[1]._M_allocated_capacity = sVar14;\n          *(char *)((int)paVar10 + 0x15) = *(char *)((int)psVar13 + 0x15);\n          psVar13 = psVar13 + -8;\n          paVar10 = paVar10 + -2;\n        } while (iVar28 != 0);\n      }" { (expression_statement "psVar13 = (size_type *)((int)pVVar12 + (-0x18 - iVar27));" (assignment_expression "psVar13 = (size_type *)((int)pVVar12 + (-0x18 - iVar27))" identifier = (cast_expression "(size_type *)((int)pVVar12 + (-0x18 - iVar27))" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pVVar12 + (-0x18 - iVar27))" ( (binary_expression "(int)pVVar12 + (-0x18 - iVar27)" (cast_expression "(int)pVVar12" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-0x18 - iVar27)" ( (binary_expression "-0x18 - iVar27" number_literal - identifier) ))) )))) ;) (expression_statement "paVar10 = &pVVar12[-1].pattern.field_2;" (assignment_expression "paVar10 = &pVVar12[-1].pattern.field_2" identifier = (pointer_expression "&pVVar12[-1].pattern.field_2" & (field_expression "pVVar12[-1].pattern.field_2" (field_expression "pVVar12[-1].pattern" (subscript_expression "pVVar12[-1]" identifier [ number_literal ]) . field_identifier) . field_identifier))) ;) (do_statement "do {\n          while( true ) {\n            pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n            if ((size_type *)psVar13[-2] != psVar13) break;\n            sVar14 = psVar13[-1];\n            if (sVar14 != 0) {\n              if (sVar14 == 1) {\n                *pcVar16 = *(char *)psVar13;\n                pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n                sVar14 = psVar13[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(pcVar16,psVar13);\n                pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n                sVar14 = psVar13[-1];\n              }\n            }\n            *(size_type *)((int)paVar10 + -4) = sVar14;\n            pcVar16[sVar14] = '\0';\n            iVar28 = iVar28 + -1;\n            psVar13[-1] = 0;\n            *(undefined1 *)psVar13[-2] = 0;\n            sVar14 = psVar13[4];\n            *(char *)((int)paVar10 + 0x14) = *(char *)(psVar13 + 5);\n            paVar10[1]._M_allocated_capacity = sVar14;\n            *(char *)((int)paVar10 + 0x15) = *(char *)((int)psVar13 + 0x15);\n            psVar13 = psVar13 + -8;\n            paVar10 = paVar10 + -2;\n            if (iVar28 == 0) goto LAB_002248f8;\n          }\n          (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)psVar13[-2];\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)pcVar16 == paVar10) {\n            *(size_type *)((int)paVar10 + -4) = psVar13[-1];\n            paVar10->_M_allocated_capacity = *psVar13;\nLAB_0022497c:\n            psVar13[-2] = (size_type)psVar13;\n          }\n          else {\n            sVar14 = paVar10->_M_allocated_capacity;\n            *(size_type *)((int)paVar10 + -4) = psVar13[-1];\n            paVar10->_M_allocated_capacity = *psVar13;\n            if (pcVar16 == (pointer)0x0) goto LAB_0022497c;\n            psVar13[-2] = (size_type)pcVar16;\n            *psVar13 = sVar14;\n          }\n          psVar13[-1] = 0;\n          iVar28 = iVar28 + -1;\n          *(undefined1 *)psVar13[-2] = 0;\n          sVar14 = psVar13[4];\n          *(char *)((int)paVar10 + 0x14) = *(char *)(psVar13 + 5);\n          paVar10[1]._M_allocated_capacity = sVar14;\n          *(char *)((int)paVar10 + 0x15) = *(char *)((int)psVar13 + 0x15);\n          psVar13 = psVar13 + -8;\n          paVar10 = paVar10 + -2;\n        } while (iVar28 != 0);" do (compound_statement "{\n          while( true ) {\n            pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n            if ((size_type *)psVar13[-2] != psVar13) break;\n            sVar14 = psVar13[-1];\n            if (sVar14 != 0) {\n              if (sVar14 == 1) {\n                *pcVar16 = *(char *)psVar13;\n                pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n                sVar14 = psVar13[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(pcVar16,psVar13);\n                pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n                sVar14 = psVar13[-1];\n              }\n            }\n            *(size_type *)((int)paVar10 + -4) = sVar14;\n            pcVar16[sVar14] = '\0';\n            iVar28 = iVar28 + -1;\n            psVar13[-1] = 0;\n            *(undefined1 *)psVar13[-2] = 0;\n            sVar14 = psVar13[4];\n            *(char *)((int)paVar10 + 0x14) = *(char *)(psVar13 + 5);\n            paVar10[1]._M_allocated_capacity = sVar14;\n            *(char *)((int)paVar10 + 0x15) = *(char *)((int)psVar13 + 0x15);\n            psVar13 = psVar13 + -8;\n            paVar10 = paVar10 + -2;\n            if (iVar28 == 0) goto LAB_002248f8;\n          }\n          (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)psVar13[-2];\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)pcVar16 == paVar10) {\n            *(size_type *)((int)paVar10 + -4) = psVar13[-1];\n            paVar10->_M_allocated_capacity = *psVar13;\nLAB_0022497c:\n            psVar13[-2] = (size_type)psVar13;\n          }\n          else {\n            sVar14 = paVar10->_M_allocated_capacity;\n            *(size_type *)((int)paVar10 + -4) = psVar13[-1];\n            paVar10->_M_allocated_capacity = *psVar13;\n            if (pcVar16 == (pointer)0x0) goto LAB_0022497c;\n            psVar13[-2] = (size_type)pcVar16;\n            *psVar13 = sVar14;\n          }\n          psVar13[-1] = 0;\n          iVar28 = iVar28 + -1;\n          *(undefined1 *)psVar13[-2] = 0;\n          sVar14 = psVar13[4];\n          *(char *)((int)paVar10 + 0x14) = *(char *)(psVar13 + 5);\n          paVar10[1]._M_allocated_capacity = sVar14;\n          *(char *)((int)paVar10 + 0x15) = *(char *)((int)psVar13 + 0x15);\n          psVar13 = psVar13 + -8;\n          paVar10 = paVar10 + -2;\n        }" { (while_statement "while( true ) {\n            pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n            if ((size_type *)psVar13[-2] != psVar13) break;\n            sVar14 = psVar13[-1];\n            if (sVar14 != 0) {\n              if (sVar14 == 1) {\n                *pcVar16 = *(char *)psVar13;\n                pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n                sVar14 = psVar13[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(pcVar16,psVar13);\n                pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n                sVar14 = psVar13[-1];\n              }\n            }\n            *(size_type *)((int)paVar10 + -4) = sVar14;\n            pcVar16[sVar14] = '\0';\n            iVar28 = iVar28 + -1;\n            psVar13[-1] = 0;\n            *(undefined1 *)psVar13[-2] = 0;\n            sVar14 = psVar13[4];\n            *(char *)((int)paVar10 + 0x14) = *(char *)(psVar13 + 5);\n            paVar10[1]._M_allocated_capacity = sVar14;\n            *(char *)((int)paVar10 + 0x15) = *(char *)((int)psVar13 + 0x15);\n            psVar13 = psVar13 + -8;\n            paVar10 = paVar10 + -2;\n            if (iVar28 == 0) goto LAB_002248f8;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n            if ((size_type *)psVar13[-2] != psVar13) break;\n            sVar14 = psVar13[-1];\n            if (sVar14 != 0) {\n              if (sVar14 == 1) {\n                *pcVar16 = *(char *)psVar13;\n                pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n                sVar14 = psVar13[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(pcVar16,psVar13);\n                pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n                sVar14 = psVar13[-1];\n              }\n            }\n            *(size_type *)((int)paVar10 + -4) = sVar14;\n            pcVar16[sVar14] = '\0';\n            iVar28 = iVar28 + -1;\n            psVar13[-1] = 0;\n            *(undefined1 *)psVar13[-2] = 0;\n            sVar14 = psVar13[4];\n            *(char *)((int)paVar10 + 0x14) = *(char *)(psVar13 + 5);\n            paVar10[1]._M_allocated_capacity = sVar14;\n            *(char *)((int)paVar10 + 0x15) = *(char *)((int)psVar13 + 0x15);\n            psVar13 = psVar13 + -8;\n            paVar10 = paVar10 + -2;\n            if (iVar28 == 0) goto LAB_002248f8;\n          }" { (expression_statement "pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;" (assignment_expression "pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p" identifier = (field_expression "(((string *)((int)paVar10 + -8))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)((int)paVar10 + -8))->_M_dataplus)" ( (field_expression "((string *)((int)paVar10 + -8))->_M_dataplus" (parenthesized_expression "((string *)((int)paVar10 + -8))" ( (cast_expression "(string *)((int)paVar10 + -8)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + -8)" ( (binary_expression "(int)paVar10 + -8" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((size_type *)psVar13[-2] != psVar13) break;" if (parenthesized_expression "((size_type *)psVar13[-2] != psVar13)" ( (binary_expression "(size_type *)psVar13[-2] != psVar13" (cast_expression "(size_type *)psVar13[-2]" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "psVar13[-2]" identifier [ number_literal ])) != identifier) )) (break_statement "break;" break ;)) (expression_statement "sVar14 = psVar13[-1];" (assignment_expression "sVar14 = psVar13[-1]" identifier = (subscript_expression "psVar13[-1]" identifier [ number_literal ])) ;) (if_statement "if (sVar14 != 0) {\n              if (sVar14 == 1) {\n                *pcVar16 = *(char *)psVar13;\n                pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n                sVar14 = psVar13[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(pcVar16,psVar13);\n                pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n                sVar14 = psVar13[-1];\n              }\n            }" if (parenthesized_expression "(sVar14 != 0)" ( (binary_expression "sVar14 != 0" identifier != number_literal) )) (compound_statement "{\n              if (sVar14 == 1) {\n                *pcVar16 = *(char *)psVar13;\n                pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n                sVar14 = psVar13[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(pcVar16,psVar13);\n                pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n                sVar14 = psVar13[-1];\n              }\n            }" { (if_statement "if (sVar14 == 1) {\n                *pcVar16 = *(char *)psVar13;\n                pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n                sVar14 = psVar13[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(pcVar16,psVar13);\n                pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n                sVar14 = psVar13[-1];\n              }" if (parenthesized_expression "(sVar14 == 1)" ( (binary_expression "sVar14 == 1" identifier == number_literal) )) (compound_statement "{\n                *pcVar16 = *(char *)psVar13;\n                pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n                sVar14 = psVar13[-1];\n              }" { (expression_statement "*pcVar16 = *(char *)psVar13;" (assignment_expression "*pcVar16 = *(char *)psVar13" (pointer_expression "*pcVar16" * identifier) = (pointer_expression "*(char *)psVar13" * (cast_expression "(char *)psVar13" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;" (assignment_expression "pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p" identifier = (field_expression "(((string *)((int)paVar10 + -8))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)((int)paVar10 + -8))->_M_dataplus)" ( (field_expression "((string *)((int)paVar10 + -8))->_M_dataplus" (parenthesized_expression "((string *)((int)paVar10 + -8))" ( (cast_expression "(string *)((int)paVar10 + -8)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + -8)" ( (binary_expression "(int)paVar10 + -8" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier) )) . field_identifier)) ;) (expression_statement "sVar14 = psVar13[-1];" (assignment_expression "sVar14 = psVar13[-1]" identifier = (subscript_expression "psVar13[-1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n                (*(code *)PTR_memcpy_00436788)(pcVar16,psVar13);\n                pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n                sVar14 = psVar13[-1];\n              }" else (compound_statement "{\n                (*(code *)PTR_memcpy_00436788)(pcVar16,psVar13);\n                pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n                sVar14 = psVar13[-1];\n              }" { (expression_statement "(*(code *)PTR_memcpy_00436788)(pcVar16,psVar13);" (call_expression "(*(code *)PTR_memcpy_00436788)(pcVar16,psVar13)" (parenthesized_expression "(*(code *)PTR_memcpy_00436788)" ( (pointer_expression "*(code *)PTR_memcpy_00436788" * (cast_expression "(code *)PTR_memcpy_00436788" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar16,psVar13)" ( identifier , identifier ))) ;) (expression_statement "pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;" (assignment_expression "pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p" identifier = (field_expression "(((string *)((int)paVar10 + -8))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)((int)paVar10 + -8))->_M_dataplus)" ( (field_expression "((string *)((int)paVar10 + -8))->_M_dataplus" (parenthesized_expression "((string *)((int)paVar10 + -8))" ( (cast_expression "(string *)((int)paVar10 + -8)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + -8)" ( (binary_expression "(int)paVar10 + -8" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier) )) . field_identifier)) ;) (expression_statement "sVar14 = psVar13[-1];" (assignment_expression "sVar14 = psVar13[-1]" identifier = (subscript_expression "psVar13[-1]" identifier [ number_literal ])) ;) }))) })) (expression_statement "*(size_type *)((int)paVar10 + -4) = sVar14;" (assignment_expression "*(size_type *)((int)paVar10 + -4) = sVar14" (pointer_expression "*(size_type *)((int)paVar10 + -4)" * (cast_expression "(size_type *)((int)paVar10 + -4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + -4)" ( (binary_expression "(int)paVar10 + -4" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar16[sVar14] = '\0';" (assignment_expression "pcVar16[sVar14] = '\0'" (subscript_expression "pcVar16[sVar14]" identifier [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "iVar28 = iVar28 + -1;" (assignment_expression "iVar28 = iVar28 + -1" identifier = (binary_expression "iVar28 + -1" identifier + number_literal)) ;) (expression_statement "psVar13[-1] = 0;" (assignment_expression "psVar13[-1] = 0" (subscript_expression "psVar13[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)psVar13[-2] = 0;" (assignment_expression "*(undefined1 *)psVar13[-2] = 0" (pointer_expression "*(undefined1 *)psVar13[-2]" * (cast_expression "(undefined1 *)psVar13[-2]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "psVar13[-2]" identifier [ number_literal ]))) = number_literal) ;) (expression_statement "sVar14 = psVar13[4];" (assignment_expression "sVar14 = psVar13[4]" identifier = (subscript_expression "psVar13[4]" identifier [ number_literal ])) ;) (expression_statement "*(char *)((int)paVar10 + 0x14) = *(char *)(psVar13 + 5);" (assignment_expression "*(char *)((int)paVar10 + 0x14) = *(char *)(psVar13 + 5)" (pointer_expression "*(char *)((int)paVar10 + 0x14)" * (cast_expression "(char *)((int)paVar10 + 0x14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + 0x14)" ( (binary_expression "(int)paVar10 + 0x14" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(char *)(psVar13 + 5)" * (cast_expression "(char *)(psVar13 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psVar13 + 5)" ( (binary_expression "psVar13 + 5" identifier + number_literal) ))))) ;) (expression_statement "paVar10[1]._M_allocated_capacity = sVar14;" (assignment_expression "paVar10[1]._M_allocated_capacity = sVar14" (field_expression "paVar10[1]._M_allocated_capacity" (subscript_expression "paVar10[1]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "*(char *)((int)paVar10 + 0x15) = *(char *)((int)psVar13 + 0x15);" (assignment_expression "*(char *)((int)paVar10 + 0x15) = *(char *)((int)psVar13 + 0x15)" (pointer_expression "*(char *)((int)paVar10 + 0x15)" * (cast_expression "(char *)((int)paVar10 + 0x15)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + 0x15)" ( (binary_expression "(int)paVar10 + 0x15" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(char *)((int)psVar13 + 0x15)" * (cast_expression "(char *)((int)psVar13 + 0x15)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar13 + 0x15)" ( (binary_expression "(int)psVar13 + 0x15" (cast_expression "(int)psVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "psVar13 = psVar13 + -8;" (assignment_expression "psVar13 = psVar13 + -8" identifier = (binary_expression "psVar13 + -8" identifier + number_literal)) ;) (expression_statement "paVar10 = paVar10 + -2;" (assignment_expression "paVar10 = paVar10 + -2" identifier = (binary_expression "paVar10 + -2" identifier + number_literal)) ;) (if_statement "if (iVar28 == 0) goto LAB_002248f8;" if (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) (goto_statement "goto LAB_002248f8;" goto statement_identifier ;)) })) (expression_statement "(((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)psVar13[-2];" (assignment_expression "(((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)psVar13[-2]" (field_expression "(((string *)((int)paVar10 + -8))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)((int)paVar10 + -8))->_M_dataplus)" ( (field_expression "((string *)((int)paVar10 + -8))->_M_dataplus" (parenthesized_expression "((string *)((int)paVar10 + -8))" ( (cast_expression "(string *)((int)paVar10 + -8)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + -8)" ( (binary_expression "(int)paVar10 + -8" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier) )) . field_identifier) = (cast_expression "(pointer)psVar13[-2]" ( (type_descriptor "pointer" type_identifier) ) (subscript_expression "psVar13[-2]" identifier [ number_literal ]))) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)pcVar16 == paVar10) {\n            *(size_type *)((int)paVar10 + -4) = psVar13[-1];\n            paVar10->_M_allocated_capacity = *psVar13;\nLAB_0022497c:\n            psVar13[-2] = (size_type)psVar13;\n          }\n          else {\n            sVar14 = paVar10->_M_allocated_capacity;\n            *(size_type *)((int)paVar10 + -4) = psVar13[-1];\n            paVar10->_M_allocated_capacity = *psVar13;\n            if (pcVar16 == (pointer)0x0) goto LAB_0022497c;\n            psVar13[-2] = (size_type)pcVar16;\n            *psVar13 = sVar14;\n          }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)pcVar16 == paVar10)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)pcVar16 == 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               *)pcVar16 == paVar10" (binary_expression "allocator<char>_>_9\n               *)pcVar16" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n               *)pcVar16" identifier * (ERROR ")" )) identifier)) == identifier) )) )) (compound_statement "{\n            *(size_type *)((int)paVar10 + -4) = psVar13[-1];\n            paVar10->_M_allocated_capacity = *psVar13;\nLAB_0022497c:\n            psVar13[-2] = (size_type)psVar13;\n          }" { (expression_statement "*(size_type *)((int)paVar10 + -4) = psVar13[-1];" (assignment_expression "*(size_type *)((int)paVar10 + -4) = psVar13[-1]" (pointer_expression "*(size_type *)((int)paVar10 + -4)" * (cast_expression "(size_type *)((int)paVar10 + -4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + -4)" ( (binary_expression "(int)paVar10 + -4" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (subscript_expression "psVar13[-1]" identifier [ number_literal ])) ;) (expression_statement "paVar10->_M_allocated_capacity = *psVar13;" (assignment_expression "paVar10->_M_allocated_capacity = *psVar13" (field_expression "paVar10->_M_allocated_capacity" identifier -> field_identifier) = (pointer_expression "*psVar13" * identifier)) ;) (labeled_statement "LAB_0022497c:\n            psVar13[-2] = (size_type)psVar13;" statement_identifier : (expression_statement "psVar13[-2] = (size_type)psVar13;" (assignment_expression "psVar13[-2] = (size_type)psVar13" (subscript_expression "psVar13[-2]" identifier [ number_literal ]) = (cast_expression "(size_type)psVar13" ( (type_descriptor "size_type" type_identifier) ) identifier)) ;)) }) (else_clause "else {\n            sVar14 = paVar10->_M_allocated_capacity;\n            *(size_type *)((int)paVar10 + -4) = psVar13[-1];\n            paVar10->_M_allocated_capacity = *psVar13;\n            if (pcVar16 == (pointer)0x0) goto LAB_0022497c;\n            psVar13[-2] = (size_type)pcVar16;\n            *psVar13 = sVar14;\n          }" else (compound_statement "{\n            sVar14 = paVar10->_M_allocated_capacity;\n            *(size_type *)((int)paVar10 + -4) = psVar13[-1];\n            paVar10->_M_allocated_capacity = *psVar13;\n            if (pcVar16 == (pointer)0x0) goto LAB_0022497c;\n            psVar13[-2] = (size_type)pcVar16;\n            *psVar13 = sVar14;\n          }" { (expression_statement "sVar14 = paVar10->_M_allocated_capacity;" (assignment_expression "sVar14 = paVar10->_M_allocated_capacity" identifier = (field_expression "paVar10->_M_allocated_capacity" identifier -> field_identifier)) ;) (expression_statement "*(size_type *)((int)paVar10 + -4) = psVar13[-1];" (assignment_expression "*(size_type *)((int)paVar10 + -4) = psVar13[-1]" (pointer_expression "*(size_type *)((int)paVar10 + -4)" * (cast_expression "(size_type *)((int)paVar10 + -4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + -4)" ( (binary_expression "(int)paVar10 + -4" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (subscript_expression "psVar13[-1]" identifier [ number_literal ])) ;) (expression_statement "paVar10->_M_allocated_capacity = *psVar13;" (assignment_expression "paVar10->_M_allocated_capacity = *psVar13" (field_expression "paVar10->_M_allocated_capacity" identifier -> field_identifier) = (pointer_expression "*psVar13" * identifier)) ;) (if_statement "if (pcVar16 == (pointer)0x0) goto LAB_0022497c;" if (parenthesized_expression "(pcVar16 == (pointer)0x0)" ( (binary_expression "pcVar16 == (pointer)0x0" identifier == (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_0022497c;" goto statement_identifier ;)) (expression_statement "psVar13[-2] = (size_type)pcVar16;" (assignment_expression "psVar13[-2] = (size_type)pcVar16" (subscript_expression "psVar13[-2]" identifier [ number_literal ]) = (cast_expression "(size_type)pcVar16" ( (type_descriptor "size_type" type_identifier) ) identifier)) ;) (expression_statement "*psVar13 = sVar14;" (assignment_expression "*psVar13 = sVar14" (pointer_expression "*psVar13" * identifier) = identifier) ;) }))) (expression_statement "psVar13[-1] = 0;" (assignment_expression "psVar13[-1] = 0" (subscript_expression "psVar13[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar28 = iVar28 + -1;" (assignment_expression "iVar28 = iVar28 + -1" identifier = (binary_expression "iVar28 + -1" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)psVar13[-2] = 0;" (assignment_expression "*(undefined1 *)psVar13[-2] = 0" (pointer_expression "*(undefined1 *)psVar13[-2]" * (cast_expression "(undefined1 *)psVar13[-2]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "psVar13[-2]" identifier [ number_literal ]))) = number_literal) ;) (expression_statement "sVar14 = psVar13[4];" (assignment_expression "sVar14 = psVar13[4]" identifier = (subscript_expression "psVar13[4]" identifier [ number_literal ])) ;) (expression_statement "*(char *)((int)paVar10 + 0x14) = *(char *)(psVar13 + 5);" (assignment_expression "*(char *)((int)paVar10 + 0x14) = *(char *)(psVar13 + 5)" (pointer_expression "*(char *)((int)paVar10 + 0x14)" * (cast_expression "(char *)((int)paVar10 + 0x14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + 0x14)" ( (binary_expression "(int)paVar10 + 0x14" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(char *)(psVar13 + 5)" * (cast_expression "(char *)(psVar13 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psVar13 + 5)" ( (binary_expression "psVar13 + 5" identifier + number_literal) ))))) ;) (expression_statement "paVar10[1]._M_allocated_capacity = sVar14;" (assignment_expression "paVar10[1]._M_allocated_capacity = sVar14" (field_expression "paVar10[1]._M_allocated_capacity" (subscript_expression "paVar10[1]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "*(char *)((int)paVar10 + 0x15) = *(char *)((int)psVar13 + 0x15);" (assignment_expression "*(char *)((int)paVar10 + 0x15) = *(char *)((int)psVar13 + 0x15)" (pointer_expression "*(char *)((int)paVar10 + 0x15)" * (cast_expression "(char *)((int)paVar10 + 0x15)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + 0x15)" ( (binary_expression "(int)paVar10 + 0x15" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(char *)((int)psVar13 + 0x15)" * (cast_expression "(char *)((int)psVar13 + 0x15)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar13 + 0x15)" ( (binary_expression "(int)psVar13 + 0x15" (cast_expression "(int)psVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "psVar13 = psVar13 + -8;" (assignment_expression "psVar13 = psVar13 + -8" identifier = (binary_expression "psVar13 + -8" identifier + number_literal)) ;) (expression_statement "paVar10 = paVar10 + -2;" (assignment_expression "paVar10 = paVar10 + -2" identifier = (binary_expression "paVar10 + -2" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar28 != 0)" ( (binary_expression "iVar28 != 0" identifier != number_literal) )) ;) })) (labeled_statement "LAB_002248f8:\n      if (0 < iVar27) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(__position,__first);\n          uVar29 = uVar29 - 1;\n          LVar6 = __first[6];\n          __position->exact_match = *(bool *)(__first + 7);\n          __position->language = LVar6;\n          __position->was_matched_by_symbol = *(bool *)((int)__first + 0x1d);\n          __first = __first + 8;\n          __position = __position + 1;\n        } while (uVar29 != 0);\n        return;\n      }" statement_identifier : (if_statement "if (0 < iVar27) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(__position,__first);\n          uVar29 = uVar29 - 1;\n          LVar6 = __first[6];\n          __position->exact_match = *(bool *)(__first + 7);\n          __position->language = LVar6;\n          __position->was_matched_by_symbol = *(bool *)((int)__first + 0x1d);\n          __first = __first + 8;\n          __position = __position + 1;\n        } while (uVar29 != 0);\n        return;\n      }" if (parenthesized_expression "(0 < iVar27)" ( (binary_expression "0 < iVar27" number_literal < identifier) )) (compound_statement "{\n        do {\n          (*(code *)PTR__M_assign_00432d78)(__position,__first);\n          uVar29 = uVar29 - 1;\n          LVar6 = __first[6];\n          __position->exact_match = *(bool *)(__first + 7);\n          __position->language = LVar6;\n          __position->was_matched_by_symbol = *(bool *)((int)__first + 0x1d);\n          __first = __first + 8;\n          __position = __position + 1;\n        } while (uVar29 != 0);\n        return;\n      }" { (do_statement "do {\n          (*(code *)PTR__M_assign_00432d78)(__position,__first);\n          uVar29 = uVar29 - 1;\n          LVar6 = __first[6];\n          __position->exact_match = *(bool *)(__first + 7);\n          __position->language = LVar6;\n          __position->was_matched_by_symbol = *(bool *)((int)__first + 0x1d);\n          __first = __first + 8;\n          __position = __position + 1;\n        } while (uVar29 != 0);" do (compound_statement "{\n          (*(code *)PTR__M_assign_00432d78)(__position,__first);\n          uVar29 = uVar29 - 1;\n          LVar6 = __first[6];\n          __position->exact_match = *(bool *)(__first + 7);\n          __position->language = LVar6;\n          __position->was_matched_by_symbol = *(bool *)((int)__first + 0x1d);\n          __first = __first + 8;\n          __position = __position + 1;\n        }" { (expression_statement "(*(code *)PTR__M_assign_00432d78)(__position,__first);" (call_expression "(*(code *)PTR__M_assign_00432d78)(__position,__first)" (parenthesized_expression "(*(code *)PTR__M_assign_00432d78)" ( (pointer_expression "*(code *)PTR__M_assign_00432d78" * (cast_expression "(code *)PTR__M_assign_00432d78" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(__position,__first)" ( identifier , identifier ))) ;) (expression_statement "uVar29 = uVar29 - 1;" (assignment_expression "uVar29 = uVar29 - 1" identifier = (binary_expression "uVar29 - 1" identifier - number_literal)) ;) (expression_statement "LVar6 = __first[6];" (assignment_expression "LVar6 = __first[6]" identifier = (subscript_expression "__first[6]" identifier [ number_literal ])) ;) (expression_statement "__position->exact_match = *(bool *)(__first + 7);" (assignment_expression "__position->exact_match = *(bool *)(__first + 7)" (field_expression "__position->exact_match" identifier -> field_identifier) = (pointer_expression "*(bool *)(__first + 7)" * (cast_expression "(bool *)(__first + 7)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__first + 7)" ( (binary_expression "__first + 7" identifier + number_literal) ))))) ;) (expression_statement "__position->language = LVar6;" (assignment_expression "__position->language = LVar6" (field_expression "__position->language" identifier -> field_identifier) = identifier) ;) (expression_statement "__position->was_matched_by_symbol = *(bool *)((int)__first + 0x1d);" (assignment_expression "__position->was_matched_by_symbol = *(bool *)((int)__first + 0x1d)" (field_expression "__position->was_matched_by_symbol" identifier -> field_identifier) = (pointer_expression "*(bool *)((int)__first + 0x1d)" * (cast_expression "(bool *)((int)__first + 0x1d)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__first + 0x1d)" ( (binary_expression "(int)__first + 0x1d" (cast_expression "(int)__first" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "__first = __first + 8;" (assignment_expression "__first = __first + 8" identifier = (binary_expression "__first + 8" identifier + number_literal)) ;) (expression_statement "__position = __position + 1;" (assignment_expression "__position = __position + 1" identifier = (binary_expression "__position + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar29 != 0)" ( (binary_expression "uVar29 != 0" identifier != number_literal) )) ;) (return_statement "return;" return ;) }))) }) (else_clause "else {\n      piVar25 = (int *)((int)__first + iVar5);\n      pVVar7 = pVVar12;\n      if (piVar25 != __last) {\n        do {\n          (pVVar7->pattern)._M_dataplus._M_p = (pointer)&(pVVar7->pattern).field_2;\n                    /* try { // try from 002241f8 to 002241ff has its CatchHandler @ 002249d8 */\n          (*(code *)puVar4)(pVVar7,*piVar25,*piVar25 + piVar25[1],0);\n          piVar26 = piVar25 + 8;\n          LVar6 = piVar25[6];\n          pVVar7->exact_match = *(bool *)(piVar25 + 7);\n          pVVar7->language = LVar6;\n          pVVar7->was_matched_by_symbol = *(bool *)((int)piVar25 + 0x1d);\n          piVar25 = piVar26;\n          pVVar7 = pVVar7 + 1;\n        } while (__last != piVar26);\n        pVVar7 = (this->\n                 super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                 )._M_impl._M_finish;\n      }\n      pVVar7 = pVVar7 + (uVar29 - uVar30);\n      (this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n      )._M_impl._M_finish = pVVar7;\n      if (pVVar12 != __position) {\n        paVar17 = &(pVVar12->pattern).field_2;\n        paVar10 = &(__position->pattern).field_2;\n        do {\n          while( true ) {\n            paVar8 = &(pVVar7->pattern).field_2;\n            (pVVar7->pattern)._M_dataplus._M_p = (pointer)paVar8;\n            psVar13 = (size_type *)(((string *)((int)paVar10 + -8))->_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                 *)psVar13) break;\n            sVar19 = *(size_type *)((int)paVar10 + 4);\n            sVar15 = *(size_type *)((int)paVar10 + 8);\n            sVar14 = *(size_type *)((int)paVar10 + 0xc);\n            paVar8->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n            *(size_type *)((int)&(pVVar7->pattern).field_2 + 4) = sVar19;\n            *(size_type *)((int)&(pVVar7->pattern).field_2 + 8) = sVar15;\n            *(size_type *)((int)&(pVVar7->pattern).field_2 + 0xc) = sVar14;\n            bVar1 = *(bool *)((int)paVar10 + 0x14);\n            LVar6 = paVar10[1]._M_allocated_capacity;\n            (pVVar7->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);\n            (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n            paVar8 = paVar10 + 2;\n            *(size_type *)((int)paVar10 + -4) = 0;\n            paVar10->_M_local_buf[0] = '\0';\n            pVVar7->exact_match = bVar1;\n            pVVar7->language = LVar6;\n            pVVar7->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15);\n            paVar10 = paVar8;\n            pVVar7 = pVVar7 + 1;\n            if (paVar17 == paVar8) goto LAB_00224324;\n          }\n          (pVVar7->pattern)._M_dataplus._M_p = (pointer)psVar13;\n          bVar1 = *(bool *)((int)paVar10 + 0x14);\n          (pVVar7->pattern).field_2._M_allocated_capacity = paVar10->_M_allocated_capacity;\n          LVar6 = paVar10[1]._M_allocated_capacity;\n          (pVVar7->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);\n          (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n          paVar8 = paVar10 + 2;\n          *(size_type *)((int)paVar10 + -4) = 0;\n          paVar10->_M_local_buf[0] = '\0';\n          pVVar7->exact_match = bVar1;\n          pVVar7->language = LVar6;\n          pVVar7->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15);\n          paVar10 = paVar8;\n          pVVar7 = pVVar7 + 1;\n        } while (paVar17 != paVar8);\nLAB_00224324:\n        pVVar7 = (this->\n                 super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                 )._M_impl._M_finish;\n      }\n      (this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n      )._M_impl._M_finish = (pointer)((int)pVVar7 + iVar5);\n      if (0 < iVar5) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(__position,__first);\n          uVar30 = uVar30 - 1;\n          LVar6 = __first[6];\n          __position->exact_match = *(bool *)(__first + 7);\n          __position->language = LVar6;\n          __position->was_matched_by_symbol = *(bool *)((int)__first + 0x1d);\n          __first = __first + 8;\n          __position = __position + 1;\n        } while (uVar30 != 0);\n      }\n    }" else (compound_statement "{\n      piVar25 = (int *)((int)__first + iVar5);\n      pVVar7 = pVVar12;\n      if (piVar25 != __last) {\n        do {\n          (pVVar7->pattern)._M_dataplus._M_p = (pointer)&(pVVar7->pattern).field_2;\n                    /* try { // try from 002241f8 to 002241ff has its CatchHandler @ 002249d8 */\n          (*(code *)puVar4)(pVVar7,*piVar25,*piVar25 + piVar25[1],0);\n          piVar26 = piVar25 + 8;\n          LVar6 = piVar25[6];\n          pVVar7->exact_match = *(bool *)(piVar25 + 7);\n          pVVar7->language = LVar6;\n          pVVar7->was_matched_by_symbol = *(bool *)((int)piVar25 + 0x1d);\n          piVar25 = piVar26;\n          pVVar7 = pVVar7 + 1;\n        } while (__last != piVar26);\n        pVVar7 = (this->\n                 super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                 )._M_impl._M_finish;\n      }\n      pVVar7 = pVVar7 + (uVar29 - uVar30);\n      (this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n      )._M_impl._M_finish = pVVar7;\n      if (pVVar12 != __position) {\n        paVar17 = &(pVVar12->pattern).field_2;\n        paVar10 = &(__position->pattern).field_2;\n        do {\n          while( true ) {\n            paVar8 = &(pVVar7->pattern).field_2;\n            (pVVar7->pattern)._M_dataplus._M_p = (pointer)paVar8;\n            psVar13 = (size_type *)(((string *)((int)paVar10 + -8))->_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                 *)psVar13) break;\n            sVar19 = *(size_type *)((int)paVar10 + 4);\n            sVar15 = *(size_type *)((int)paVar10 + 8);\n            sVar14 = *(size_type *)((int)paVar10 + 0xc);\n            paVar8->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n            *(size_type *)((int)&(pVVar7->pattern).field_2 + 4) = sVar19;\n            *(size_type *)((int)&(pVVar7->pattern).field_2 + 8) = sVar15;\n            *(size_type *)((int)&(pVVar7->pattern).field_2 + 0xc) = sVar14;\n            bVar1 = *(bool *)((int)paVar10 + 0x14);\n            LVar6 = paVar10[1]._M_allocated_capacity;\n            (pVVar7->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);\n            (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n            paVar8 = paVar10 + 2;\n            *(size_type *)((int)paVar10 + -4) = 0;\n            paVar10->_M_local_buf[0] = '\0';\n            pVVar7->exact_match = bVar1;\n            pVVar7->language = LVar6;\n            pVVar7->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15);\n            paVar10 = paVar8;\n            pVVar7 = pVVar7 + 1;\n            if (paVar17 == paVar8) goto LAB_00224324;\n          }\n          (pVVar7->pattern)._M_dataplus._M_p = (pointer)psVar13;\n          bVar1 = *(bool *)((int)paVar10 + 0x14);\n          (pVVar7->pattern).field_2._M_allocated_capacity = paVar10->_M_allocated_capacity;\n          LVar6 = paVar10[1]._M_allocated_capacity;\n          (pVVar7->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);\n          (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n          paVar8 = paVar10 + 2;\n          *(size_type *)((int)paVar10 + -4) = 0;\n          paVar10->_M_local_buf[0] = '\0';\n          pVVar7->exact_match = bVar1;\n          pVVar7->language = LVar6;\n          pVVar7->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15);\n          paVar10 = paVar8;\n          pVVar7 = pVVar7 + 1;\n        } while (paVar17 != paVar8);\nLAB_00224324:\n        pVVar7 = (this->\n                 super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                 )._M_impl._M_finish;\n      }\n      (this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n      )._M_impl._M_finish = (pointer)((int)pVVar7 + iVar5);\n      if (0 < iVar5) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(__position,__first);\n          uVar30 = uVar30 - 1;\n          LVar6 = __first[6];\n          __position->exact_match = *(bool *)(__first + 7);\n          __position->language = LVar6;\n          __position->was_matched_by_symbol = *(bool *)((int)__first + 0x1d);\n          __first = __first + 8;\n          __position = __position + 1;\n        } while (uVar30 != 0);\n      }\n    }" { (expression_statement "piVar25 = (int *)((int)__first + iVar5);" (assignment_expression "piVar25 = (int *)((int)__first + iVar5)" identifier = (cast_expression "(int *)((int)__first + iVar5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__first + iVar5)" ( (binary_expression "(int)__first + iVar5" (cast_expression "(int)__first" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "pVVar7 = pVVar12;" (assignment_expression "pVVar7 = pVVar12" identifier = identifier) ;) (if_statement "if (piVar25 != __last) {\n        do {\n          (pVVar7->pattern)._M_dataplus._M_p = (pointer)&(pVVar7->pattern).field_2;\n                    /* try { // try from 002241f8 to 002241ff has its CatchHandler @ 002249d8 */\n          (*(code *)puVar4)(pVVar7,*piVar25,*piVar25 + piVar25[1],0);\n          piVar26 = piVar25 + 8;\n          LVar6 = piVar25[6];\n          pVVar7->exact_match = *(bool *)(piVar25 + 7);\n          pVVar7->language = LVar6;\n          pVVar7->was_matched_by_symbol = *(bool *)((int)piVar25 + 0x1d);\n          piVar25 = piVar26;\n          pVVar7 = pVVar7 + 1;\n        } while (__last != piVar26);\n        pVVar7 = (this->\n                 super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                 )._M_impl._M_finish;\n      }" if (parenthesized_expression "(piVar25 != __last)" ( (binary_expression "piVar25 != __last" identifier != identifier) )) (compound_statement "{\n        do {\n          (pVVar7->pattern)._M_dataplus._M_p = (pointer)&(pVVar7->pattern).field_2;\n                    /* try { // try from 002241f8 to 002241ff has its CatchHandler @ 002249d8 */\n          (*(code *)puVar4)(pVVar7,*piVar25,*piVar25 + piVar25[1],0);\n          piVar26 = piVar25 + 8;\n          LVar6 = piVar25[6];\n          pVVar7->exact_match = *(bool *)(piVar25 + 7);\n          pVVar7->language = LVar6;\n          pVVar7->was_matched_by_symbol = *(bool *)((int)piVar25 + 0x1d);\n          piVar25 = piVar26;\n          pVVar7 = pVVar7 + 1;\n        } while (__last != piVar26);\n        pVVar7 = (this->\n                 super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                 )._M_impl._M_finish;\n      }" { (do_statement "do {\n          (pVVar7->pattern)._M_dataplus._M_p = (pointer)&(pVVar7->pattern).field_2;\n                    /* try { // try from 002241f8 to 002241ff has its CatchHandler @ 002249d8 */\n          (*(code *)puVar4)(pVVar7,*piVar25,*piVar25 + piVar25[1],0);\n          piVar26 = piVar25 + 8;\n          LVar6 = piVar25[6];\n          pVVar7->exact_match = *(bool *)(piVar25 + 7);\n          pVVar7->language = LVar6;\n          pVVar7->was_matched_by_symbol = *(bool *)((int)piVar25 + 0x1d);\n          piVar25 = piVar26;\n          pVVar7 = pVVar7 + 1;\n        } while (__last != piVar26);" do (compound_statement "{\n          (pVVar7->pattern)._M_dataplus._M_p = (pointer)&(pVVar7->pattern).field_2;\n                    /* try { // try from 002241f8 to 002241ff has its CatchHandler @ 002249d8 */\n          (*(code *)puVar4)(pVVar7,*piVar25,*piVar25 + piVar25[1],0);\n          piVar26 = piVar25 + 8;\n          LVar6 = piVar25[6];\n          pVVar7->exact_match = *(bool *)(piVar25 + 7);\n          pVVar7->language = LVar6;\n          pVVar7->was_matched_by_symbol = *(bool *)((int)piVar25 + 0x1d);\n          piVar25 = piVar26;\n          pVVar7 = pVVar7 + 1;\n        }" { (expression_statement "(pVVar7->pattern)._M_dataplus._M_p = (pointer)&(pVVar7->pattern).field_2;" (assignment_expression "(pVVar7->pattern)._M_dataplus._M_p = (pointer)&(pVVar7->pattern).field_2" (field_expression "(pVVar7->pattern)._M_dataplus._M_p" (field_expression "(pVVar7->pattern)._M_dataplus" (parenthesized_expression "(pVVar7->pattern)" ( (field_expression "pVVar7->pattern" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (binary_expression "(pointer)&(pVVar7->pattern).field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "(pVVar7->pattern).field_2" (parenthesized_expression "(pVVar7->pattern)" ( (field_expression "pVVar7->pattern" identifier -> field_identifier) )) . field_identifier))) ;) comment (expression_statement "(*(code *)puVar4)(pVVar7,*piVar25,*piVar25 + piVar25[1],0);" (call_expression "(*(code *)puVar4)(pVVar7,*piVar25,*piVar25 + piVar25[1],0)" (parenthesized_expression "(*(code *)puVar4)" ( (pointer_expression "*(code *)puVar4" * (cast_expression "(code *)puVar4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pVVar7,*piVar25,*piVar25 + piVar25[1],0)" ( identifier , (pointer_expression "*piVar25" * identifier) , (binary_expression "*piVar25 + piVar25[1]" (pointer_expression "*piVar25" * identifier) + (subscript_expression "piVar25[1]" identifier [ number_literal ])) , number_literal ))) ;) (expression_statement "piVar26 = piVar25 + 8;" (assignment_expression "piVar26 = piVar25 + 8" identifier = (binary_expression "piVar25 + 8" identifier + number_literal)) ;) (expression_statement "LVar6 = piVar25[6];" (assignment_expression "LVar6 = piVar25[6]" identifier = (subscript_expression "piVar25[6]" identifier [ number_literal ])) ;) (expression_statement "pVVar7->exact_match = *(bool *)(piVar25 + 7);" (assignment_expression "pVVar7->exact_match = *(bool *)(piVar25 + 7)" (field_expression "pVVar7->exact_match" identifier -> field_identifier) = (pointer_expression "*(bool *)(piVar25 + 7)" * (cast_expression "(bool *)(piVar25 + 7)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar25 + 7)" ( (binary_expression "piVar25 + 7" identifier + number_literal) ))))) ;) (expression_statement "pVVar7->language = LVar6;" (assignment_expression "pVVar7->language = LVar6" (field_expression "pVVar7->language" identifier -> field_identifier) = identifier) ;) (expression_statement "pVVar7->was_matched_by_symbol = *(bool *)((int)piVar25 + 0x1d);" (assignment_expression "pVVar7->was_matched_by_symbol = *(bool *)((int)piVar25 + 0x1d)" (field_expression "pVVar7->was_matched_by_symbol" identifier -> field_identifier) = (pointer_expression "*(bool *)((int)piVar25 + 0x1d)" * (cast_expression "(bool *)((int)piVar25 + 0x1d)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar25 + 0x1d)" ( (binary_expression "(int)piVar25 + 0x1d" (cast_expression "(int)piVar25" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "piVar25 = piVar26;" (assignment_expression "piVar25 = piVar26" identifier = identifier) ;) (expression_statement "pVVar7 = pVVar7 + 1;" (assignment_expression "pVVar7 = pVVar7 + 1" identifier = (binary_expression "pVVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(__last != piVar26)" ( (binary_expression "__last != piVar26" identifier != identifier) )) ;) (expression_statement "pVVar7 = (this->\n                 super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                 )._M_impl._M_finish;" (assignment_expression "pVVar7 = (this->\n                 super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                 )._M_impl._M_finish" identifier = (field_expression "(this->\n                 super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                 )._M_impl._M_finish" (field_expression "(this->\n                 super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                 )._M_impl" (parenthesized_expression "(this->\n                 super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                 )" ( (ERROR "this->\n                 super__Vector_base<gold::Version_expression,_std::allocator<gold::" (comma_expression "this->\n                 super__Vector_base<gold::Version_expression,_std" (binary_expression "this->\n                 super__Vector_base<gold" (field_expression "this->\n                 super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Version_expression" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Version_expression>_>" (binary_expression "Version_expression>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) })) (expression_statement "pVVar7 = pVVar7 + (uVar29 - uVar30);" (assignment_expression "pVVar7 = pVVar7 + (uVar29 - uVar30)" identifier = (binary_expression "pVVar7 + (uVar29 - uVar30)" identifier + (parenthesized_expression "(uVar29 - uVar30)" ( (binary_expression "uVar29 - uVar30" identifier - identifier) )))) ;) (expression_statement "(this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n      )._M_impl._M_finish = pVVar7;" (assignment_expression "(this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n      )._M_impl._M_finish = pVVar7" (field_expression "(this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n      )._M_impl._M_finish" (field_expression "(this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n      )._M_impl" (parenthesized_expression "(this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n      )" ( (ERROR "this->super__Vector_base<gold::Version_expression,_std::allocator<gold::" (comma_expression "this->super__Vector_base<gold::Version_expression,_std" (binary_expression "this->super__Vector_base<gold" (field_expression "this->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Version_expression" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Version_expression>_>" (binary_expression "Version_expression>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier) = identifier) ;) (if_statement "if (pVVar12 != __position) {\n        paVar17 = &(pVVar12->pattern).field_2;\n        paVar10 = &(__position->pattern).field_2;\n        do {\n          while( true ) {\n            paVar8 = &(pVVar7->pattern).field_2;\n            (pVVar7->pattern)._M_dataplus._M_p = (pointer)paVar8;\n            psVar13 = (size_type *)(((string *)((int)paVar10 + -8))->_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                 *)psVar13) break;\n            sVar19 = *(size_type *)((int)paVar10 + 4);\n            sVar15 = *(size_type *)((int)paVar10 + 8);\n            sVar14 = *(size_type *)((int)paVar10 + 0xc);\n            paVar8->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n            *(size_type *)((int)&(pVVar7->pattern).field_2 + 4) = sVar19;\n            *(size_type *)((int)&(pVVar7->pattern).field_2 + 8) = sVar15;\n            *(size_type *)((int)&(pVVar7->pattern).field_2 + 0xc) = sVar14;\n            bVar1 = *(bool *)((int)paVar10 + 0x14);\n            LVar6 = paVar10[1]._M_allocated_capacity;\n            (pVVar7->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);\n            (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n            paVar8 = paVar10 + 2;\n            *(size_type *)((int)paVar10 + -4) = 0;\n            paVar10->_M_local_buf[0] = '\0';\n            pVVar7->exact_match = bVar1;\n            pVVar7->language = LVar6;\n            pVVar7->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15);\n            paVar10 = paVar8;\n            pVVar7 = pVVar7 + 1;\n            if (paVar17 == paVar8) goto LAB_00224324;\n          }\n          (pVVar7->pattern)._M_dataplus._M_p = (pointer)psVar13;\n          bVar1 = *(bool *)((int)paVar10 + 0x14);\n          (pVVar7->pattern).field_2._M_allocated_capacity = paVar10->_M_allocated_capacity;\n          LVar6 = paVar10[1]._M_allocated_capacity;\n          (pVVar7->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);\n          (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n          paVar8 = paVar10 + 2;\n          *(size_type *)((int)paVar10 + -4) = 0;\n          paVar10->_M_local_buf[0] = '\0';\n          pVVar7->exact_match = bVar1;\n          pVVar7->language = LVar6;\n          pVVar7->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15);\n          paVar10 = paVar8;\n          pVVar7 = pVVar7 + 1;\n        } while (paVar17 != paVar8);\nLAB_00224324:\n        pVVar7 = (this->\n                 super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                 )._M_impl._M_finish;\n      }" if (parenthesized_expression "(pVVar12 != __position)" ( (binary_expression "pVVar12 != __position" identifier != identifier) )) (compound_statement "{\n        paVar17 = &(pVVar12->pattern).field_2;\n        paVar10 = &(__position->pattern).field_2;\n        do {\n          while( true ) {\n            paVar8 = &(pVVar7->pattern).field_2;\n            (pVVar7->pattern)._M_dataplus._M_p = (pointer)paVar8;\n            psVar13 = (size_type *)(((string *)((int)paVar10 + -8))->_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                 *)psVar13) break;\n            sVar19 = *(size_type *)((int)paVar10 + 4);\n            sVar15 = *(size_type *)((int)paVar10 + 8);\n            sVar14 = *(size_type *)((int)paVar10 + 0xc);\n            paVar8->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n            *(size_type *)((int)&(pVVar7->pattern).field_2 + 4) = sVar19;\n            *(size_type *)((int)&(pVVar7->pattern).field_2 + 8) = sVar15;\n            *(size_type *)((int)&(pVVar7->pattern).field_2 + 0xc) = sVar14;\n            bVar1 = *(bool *)((int)paVar10 + 0x14);\n            LVar6 = paVar10[1]._M_allocated_capacity;\n            (pVVar7->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);\n            (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n            paVar8 = paVar10 + 2;\n            *(size_type *)((int)paVar10 + -4) = 0;\n            paVar10->_M_local_buf[0] = '\0';\n            pVVar7->exact_match = bVar1;\n            pVVar7->language = LVar6;\n            pVVar7->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15);\n            paVar10 = paVar8;\n            pVVar7 = pVVar7 + 1;\n            if (paVar17 == paVar8) goto LAB_00224324;\n          }\n          (pVVar7->pattern)._M_dataplus._M_p = (pointer)psVar13;\n          bVar1 = *(bool *)((int)paVar10 + 0x14);\n          (pVVar7->pattern).field_2._M_allocated_capacity = paVar10->_M_allocated_capacity;\n          LVar6 = paVar10[1]._M_allocated_capacity;\n          (pVVar7->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);\n          (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n          paVar8 = paVar10 + 2;\n          *(size_type *)((int)paVar10 + -4) = 0;\n          paVar10->_M_local_buf[0] = '\0';\n          pVVar7->exact_match = bVar1;\n          pVVar7->language = LVar6;\n          pVVar7->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15);\n          paVar10 = paVar8;\n          pVVar7 = pVVar7 + 1;\n        } while (paVar17 != paVar8);\nLAB_00224324:\n        pVVar7 = (this->\n                 super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                 )._M_impl._M_finish;\n      }" { (expression_statement "paVar17 = &(pVVar12->pattern).field_2;" (assignment_expression "paVar17 = &(pVVar12->pattern).field_2" identifier = (pointer_expression "&(pVVar12->pattern).field_2" & (field_expression "(pVVar12->pattern).field_2" (parenthesized_expression "(pVVar12->pattern)" ( (field_expression "pVVar12->pattern" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "paVar10 = &(__position->pattern).field_2;" (assignment_expression "paVar10 = &(__position->pattern).field_2" identifier = (pointer_expression "&(__position->pattern).field_2" & (field_expression "(__position->pattern).field_2" (parenthesized_expression "(__position->pattern)" ( (field_expression "__position->pattern" identifier -> field_identifier) )) . field_identifier))) ;) (do_statement "do {\n          while( true ) {\n            paVar8 = &(pVVar7->pattern).field_2;\n            (pVVar7->pattern)._M_dataplus._M_p = (pointer)paVar8;\n            psVar13 = (size_type *)(((string *)((int)paVar10 + -8))->_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                 *)psVar13) break;\n            sVar19 = *(size_type *)((int)paVar10 + 4);\n            sVar15 = *(size_type *)((int)paVar10 + 8);\n            sVar14 = *(size_type *)((int)paVar10 + 0xc);\n            paVar8->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n            *(size_type *)((int)&(pVVar7->pattern).field_2 + 4) = sVar19;\n            *(size_type *)((int)&(pVVar7->pattern).field_2 + 8) = sVar15;\n            *(size_type *)((int)&(pVVar7->pattern).field_2 + 0xc) = sVar14;\n            bVar1 = *(bool *)((int)paVar10 + 0x14);\n            LVar6 = paVar10[1]._M_allocated_capacity;\n            (pVVar7->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);\n            (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n            paVar8 = paVar10 + 2;\n            *(size_type *)((int)paVar10 + -4) = 0;\n            paVar10->_M_local_buf[0] = '\0';\n            pVVar7->exact_match = bVar1;\n            pVVar7->language = LVar6;\n            pVVar7->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15);\n            paVar10 = paVar8;\n            pVVar7 = pVVar7 + 1;\n            if (paVar17 == paVar8) goto LAB_00224324;\n          }\n          (pVVar7->pattern)._M_dataplus._M_p = (pointer)psVar13;\n          bVar1 = *(bool *)((int)paVar10 + 0x14);\n          (pVVar7->pattern).field_2._M_allocated_capacity = paVar10->_M_allocated_capacity;\n          LVar6 = paVar10[1]._M_allocated_capacity;\n          (pVVar7->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);\n          (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n          paVar8 = paVar10 + 2;\n          *(size_type *)((int)paVar10 + -4) = 0;\n          paVar10->_M_local_buf[0] = '\0';\n          pVVar7->exact_match = bVar1;\n          pVVar7->language = LVar6;\n          pVVar7->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15);\n          paVar10 = paVar8;\n          pVVar7 = pVVar7 + 1;\n        } while (paVar17 != paVar8);" do (compound_statement "{\n          while( true ) {\n            paVar8 = &(pVVar7->pattern).field_2;\n            (pVVar7->pattern)._M_dataplus._M_p = (pointer)paVar8;\n            psVar13 = (size_type *)(((string *)((int)paVar10 + -8))->_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                 *)psVar13) break;\n            sVar19 = *(size_type *)((int)paVar10 + 4);\n            sVar15 = *(size_type *)((int)paVar10 + 8);\n            sVar14 = *(size_type *)((int)paVar10 + 0xc);\n            paVar8->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n            *(size_type *)((int)&(pVVar7->pattern).field_2 + 4) = sVar19;\n            *(size_type *)((int)&(pVVar7->pattern).field_2 + 8) = sVar15;\n            *(size_type *)((int)&(pVVar7->pattern).field_2 + 0xc) = sVar14;\n            bVar1 = *(bool *)((int)paVar10 + 0x14);\n            LVar6 = paVar10[1]._M_allocated_capacity;\n            (pVVar7->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);\n            (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n            paVar8 = paVar10 + 2;\n            *(size_type *)((int)paVar10 + -4) = 0;\n            paVar10->_M_local_buf[0] = '\0';\n            pVVar7->exact_match = bVar1;\n            pVVar7->language = LVar6;\n            pVVar7->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15);\n            paVar10 = paVar8;\n            pVVar7 = pVVar7 + 1;\n            if (paVar17 == paVar8) goto LAB_00224324;\n          }\n          (pVVar7->pattern)._M_dataplus._M_p = (pointer)psVar13;\n          bVar1 = *(bool *)((int)paVar10 + 0x14);\n          (pVVar7->pattern).field_2._M_allocated_capacity = paVar10->_M_allocated_capacity;\n          LVar6 = paVar10[1]._M_allocated_capacity;\n          (pVVar7->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);\n          (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n          paVar8 = paVar10 + 2;\n          *(size_type *)((int)paVar10 + -4) = 0;\n          paVar10->_M_local_buf[0] = '\0';\n          pVVar7->exact_match = bVar1;\n          pVVar7->language = LVar6;\n          pVVar7->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15);\n          paVar10 = paVar8;\n          pVVar7 = pVVar7 + 1;\n        }" { (while_statement "while( true ) {\n            paVar8 = &(pVVar7->pattern).field_2;\n            (pVVar7->pattern)._M_dataplus._M_p = (pointer)paVar8;\n            psVar13 = (size_type *)(((string *)((int)paVar10 + -8))->_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                 *)psVar13) break;\n            sVar19 = *(size_type *)((int)paVar10 + 4);\n            sVar15 = *(size_type *)((int)paVar10 + 8);\n            sVar14 = *(size_type *)((int)paVar10 + 0xc);\n            paVar8->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n            *(size_type *)((int)&(pVVar7->pattern).field_2 + 4) = sVar19;\n            *(size_type *)((int)&(pVVar7->pattern).field_2 + 8) = sVar15;\n            *(size_type *)((int)&(pVVar7->pattern).field_2 + 0xc) = sVar14;\n            bVar1 = *(bool *)((int)paVar10 + 0x14);\n            LVar6 = paVar10[1]._M_allocated_capacity;\n            (pVVar7->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);\n            (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n            paVar8 = paVar10 + 2;\n            *(size_type *)((int)paVar10 + -4) = 0;\n            paVar10->_M_local_buf[0] = '\0';\n            pVVar7->exact_match = bVar1;\n            pVVar7->language = LVar6;\n            pVVar7->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15);\n            paVar10 = paVar8;\n            pVVar7 = pVVar7 + 1;\n            if (paVar17 == paVar8) goto LAB_00224324;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            paVar8 = &(pVVar7->pattern).field_2;\n            (pVVar7->pattern)._M_dataplus._M_p = (pointer)paVar8;\n            psVar13 = (size_type *)(((string *)((int)paVar10 + -8))->_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                 *)psVar13) break;\n            sVar19 = *(size_type *)((int)paVar10 + 4);\n            sVar15 = *(size_type *)((int)paVar10 + 8);\n            sVar14 = *(size_type *)((int)paVar10 + 0xc);\n            paVar8->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n            *(size_type *)((int)&(pVVar7->pattern).field_2 + 4) = sVar19;\n            *(size_type *)((int)&(pVVar7->pattern).field_2 + 8) = sVar15;\n            *(size_type *)((int)&(pVVar7->pattern).field_2 + 0xc) = sVar14;\n            bVar1 = *(bool *)((int)paVar10 + 0x14);\n            LVar6 = paVar10[1]._M_allocated_capacity;\n            (pVVar7->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);\n            (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n            paVar8 = paVar10 + 2;\n            *(size_type *)((int)paVar10 + -4) = 0;\n            paVar10->_M_local_buf[0] = '\0';\n            pVVar7->exact_match = bVar1;\n            pVVar7->language = LVar6;\n            pVVar7->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15);\n            paVar10 = paVar8;\n            pVVar7 = pVVar7 + 1;\n            if (paVar17 == paVar8) goto LAB_00224324;\n          }" { (expression_statement "paVar8 = &(pVVar7->pattern).field_2;" (assignment_expression "paVar8 = &(pVVar7->pattern).field_2" identifier = (pointer_expression "&(pVVar7->pattern).field_2" & (field_expression "(pVVar7->pattern).field_2" (parenthesized_expression "(pVVar7->pattern)" ( (field_expression "pVVar7->pattern" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "(pVVar7->pattern)._M_dataplus._M_p = (pointer)paVar8;" (assignment_expression "(pVVar7->pattern)._M_dataplus._M_p = (pointer)paVar8" (field_expression "(pVVar7->pattern)._M_dataplus._M_p" (field_expression "(pVVar7->pattern)._M_dataplus" (parenthesized_expression "(pVVar7->pattern)" ( (field_expression "pVVar7->pattern" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar8" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "psVar13 = (size_type *)(((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;" (assignment_expression "psVar13 = (size_type *)(((string *)((int)paVar10 + -8))->_M_dataplus)._M_p" identifier = (cast_expression "(size_type *)(((string *)((int)paVar10 + -8))->_M_dataplus)._M_p" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(((string *)((int)paVar10 + -8))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)((int)paVar10 + -8))->_M_dataplus)" ( (field_expression "((string *)((int)paVar10 + -8))->_M_dataplus" (parenthesized_expression "((string *)((int)paVar10 + -8))" ( (cast_expression "(string *)((int)paVar10 + -8)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + -8)" ( (binary_expression "(int)paVar10 + -8" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) 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                 *)psVar13) break;" if (parenthesized_expression "(paVar10 !=\n                (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)psVar13)" ( (binary_expression "paVar10 !=\n                (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)psVar13)" identifier != (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)psVar13)" ( (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                 *)psVar13" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                 *)psVar13" identifier * (ERROR ")" )) identifier)) ))) )) (break_statement "break;" break ;)) (expression_statement "sVar19 = *(size_type *)((int)paVar10 + 4);" (assignment_expression "sVar19 = *(size_type *)((int)paVar10 + 4)" identifier = (pointer_expression "*(size_type *)((int)paVar10 + 4)" * (cast_expression "(size_type *)((int)paVar10 + 4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + 4)" ( (binary_expression "(int)paVar10 + 4" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "sVar15 = *(size_type *)((int)paVar10 + 8);" (assignment_expression "sVar15 = *(size_type *)((int)paVar10 + 8)" identifier = (pointer_expression "*(size_type *)((int)paVar10 + 8)" * (cast_expression "(size_type *)((int)paVar10 + 8)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + 8)" ( (binary_expression "(int)paVar10 + 8" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "sVar14 = *(size_type *)((int)paVar10 + 0xc);" (assignment_expression "sVar14 = *(size_type *)((int)paVar10 + 0xc)" identifier = (pointer_expression "*(size_type *)((int)paVar10 + 0xc)" * (cast_expression "(size_type *)((int)paVar10 + 0xc)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + 0xc)" ( (binary_expression "(int)paVar10 + 0xc" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "paVar8->_M_allocated_capacity = paVar10->_M_allocated_capacity;" (assignment_expression "paVar8->_M_allocated_capacity = paVar10->_M_allocated_capacity" (field_expression "paVar8->_M_allocated_capacity" identifier -> field_identifier) = (field_expression "paVar10->_M_allocated_capacity" identifier -> field_identifier)) ;) (expression_statement "*(size_type *)((int)&(pVVar7->pattern).field_2 + 4) = sVar19;" (assignment_expression "*(size_type *)((int)&(pVVar7->pattern).field_2 + 4) = sVar19" (pointer_expression "*(size_type *)((int)&(pVVar7->pattern).field_2 + 4)" * (cast_expression "(size_type *)((int)&(pVVar7->pattern).field_2 + 4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pVVar7->pattern).field_2 + 4)" ( (binary_expression "(int)&(pVVar7->pattern).field_2 + 4" (cast_expression "(int)&(pVVar7->pattern).field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pVVar7->pattern).field_2" & (field_expression "(pVVar7->pattern).field_2" (parenthesized_expression "(pVVar7->pattern)" ( (field_expression "pVVar7->pattern" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(size_type *)((int)&(pVVar7->pattern).field_2 + 8) = sVar15;" (assignment_expression "*(size_type *)((int)&(pVVar7->pattern).field_2 + 8) = sVar15" (pointer_expression "*(size_type *)((int)&(pVVar7->pattern).field_2 + 8)" * (cast_expression "(size_type *)((int)&(pVVar7->pattern).field_2 + 8)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pVVar7->pattern).field_2 + 8)" ( (binary_expression "(int)&(pVVar7->pattern).field_2 + 8" (cast_expression "(int)&(pVVar7->pattern).field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pVVar7->pattern).field_2" & (field_expression "(pVVar7->pattern).field_2" (parenthesized_expression "(pVVar7->pattern)" ( (field_expression "pVVar7->pattern" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(size_type *)((int)&(pVVar7->pattern).field_2 + 0xc) = sVar14;" (assignment_expression "*(size_type *)((int)&(pVVar7->pattern).field_2 + 0xc) = sVar14" (pointer_expression "*(size_type *)((int)&(pVVar7->pattern).field_2 + 0xc)" * (cast_expression "(size_type *)((int)&(pVVar7->pattern).field_2 + 0xc)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pVVar7->pattern).field_2 + 0xc)" ( (binary_expression "(int)&(pVVar7->pattern).field_2 + 0xc" (cast_expression "(int)&(pVVar7->pattern).field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pVVar7->pattern).field_2" & (field_expression "(pVVar7->pattern).field_2" (parenthesized_expression "(pVVar7->pattern)" ( (field_expression "pVVar7->pattern" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "bVar1 = *(bool *)((int)paVar10 + 0x14);" (assignment_expression "bVar1 = *(bool *)((int)paVar10 + 0x14)" identifier = (pointer_expression "*(bool *)((int)paVar10 + 0x14)" * (cast_expression "(bool *)((int)paVar10 + 0x14)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + 0x14)" ( (binary_expression "(int)paVar10 + 0x14" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "LVar6 = paVar10[1]._M_allocated_capacity;" (assignment_expression "LVar6 = paVar10[1]._M_allocated_capacity" identifier = (field_expression "paVar10[1]._M_allocated_capacity" (subscript_expression "paVar10[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "(pVVar7->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);" (assignment_expression "(pVVar7->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4)" (field_expression "(pVVar7->pattern)._M_string_length" (parenthesized_expression "(pVVar7->pattern)" ( (field_expression "pVVar7->pattern" identifier -> field_identifier) )) . field_identifier) = (pointer_expression "*(size_type *)((int)paVar10 + -4)" * (cast_expression "(size_type *)((int)paVar10 + -4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + -4)" ( (binary_expression "(int)paVar10 + -4" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "(((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;" (assignment_expression "(((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10" (field_expression "(((string *)((int)paVar10 + -8))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)((int)paVar10 + -8))->_M_dataplus)" ( (field_expression "((string *)((int)paVar10 + -8))->_M_dataplus" (parenthesized_expression "((string *)((int)paVar10 + -8))" ( (cast_expression "(string *)((int)paVar10 + -8)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + -8)" ( (binary_expression "(int)paVar10 + -8" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier) )) . field_identifier) = (cast_expression "(pointer)paVar10" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "paVar8 = paVar10 + 2;" (assignment_expression "paVar8 = paVar10 + 2" identifier = (binary_expression "paVar10 + 2" identifier + number_literal)) ;) (expression_statement "*(size_type *)((int)paVar10 + -4) = 0;" (assignment_expression "*(size_type *)((int)paVar10 + -4) = 0" (pointer_expression "*(size_type *)((int)paVar10 + -4)" * (cast_expression "(size_type *)((int)paVar10 + -4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + -4)" ( (binary_expression "(int)paVar10 + -4" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "paVar10->_M_local_buf[0] = '\0';" (assignment_expression "paVar10->_M_local_buf[0] = '\0'" (subscript_expression "paVar10->_M_local_buf[0]" (field_expression "paVar10->_M_local_buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pVVar7->exact_match = bVar1;" (assignment_expression "pVVar7->exact_match = bVar1" (field_expression "pVVar7->exact_match" identifier -> field_identifier) = identifier) ;) (expression_statement "pVVar7->language = LVar6;" (assignment_expression "pVVar7->language = LVar6" (field_expression "pVVar7->language" identifier -> field_identifier) = identifier) ;) (expression_statement "pVVar7->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15);" (assignment_expression "pVVar7->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15)" (field_expression "pVVar7->was_matched_by_symbol" identifier -> field_identifier) = (pointer_expression "*(bool *)((int)paVar10 + 0x15)" * (cast_expression "(bool *)((int)paVar10 + 0x15)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + 0x15)" ( (binary_expression "(int)paVar10 + 0x15" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "paVar10 = paVar8;" (assignment_expression "paVar10 = paVar8" identifier = identifier) ;) (expression_statement "pVVar7 = pVVar7 + 1;" (assignment_expression "pVVar7 = pVVar7 + 1" identifier = (binary_expression "pVVar7 + 1" identifier + number_literal)) ;) (if_statement "if (paVar17 == paVar8) goto LAB_00224324;" if (parenthesized_expression "(paVar17 == paVar8)" ( (binary_expression "paVar17 == paVar8" identifier == identifier) )) (goto_statement "goto LAB_00224324;" goto statement_identifier ;)) })) (expression_statement "(pVVar7->pattern)._M_dataplus._M_p = (pointer)psVar13;" (assignment_expression "(pVVar7->pattern)._M_dataplus._M_p = (pointer)psVar13" (field_expression "(pVVar7->pattern)._M_dataplus._M_p" (field_expression "(pVVar7->pattern)._M_dataplus" (parenthesized_expression "(pVVar7->pattern)" ( (field_expression "pVVar7->pattern" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(pointer)psVar13" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "bVar1 = *(bool *)((int)paVar10 + 0x14);" (assignment_expression "bVar1 = *(bool *)((int)paVar10 + 0x14)" identifier = (pointer_expression "*(bool *)((int)paVar10 + 0x14)" * (cast_expression "(bool *)((int)paVar10 + 0x14)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + 0x14)" ( (binary_expression "(int)paVar10 + 0x14" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "(pVVar7->pattern).field_2._M_allocated_capacity = paVar10->_M_allocated_capacity;" (assignment_expression "(pVVar7->pattern).field_2._M_allocated_capacity = paVar10->_M_allocated_capacity" (field_expression "(pVVar7->pattern).field_2._M_allocated_capacity" (field_expression "(pVVar7->pattern).field_2" (parenthesized_expression "(pVVar7->pattern)" ( (field_expression "pVVar7->pattern" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (field_expression "paVar10->_M_allocated_capacity" identifier -> field_identifier)) ;) (expression_statement "LVar6 = paVar10[1]._M_allocated_capacity;" (assignment_expression "LVar6 = paVar10[1]._M_allocated_capacity" identifier = (field_expression "paVar10[1]._M_allocated_capacity" (subscript_expression "paVar10[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "(pVVar7->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);" (assignment_expression "(pVVar7->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4)" (field_expression "(pVVar7->pattern)._M_string_length" (parenthesized_expression "(pVVar7->pattern)" ( (field_expression "pVVar7->pattern" identifier -> field_identifier) )) . field_identifier) = (pointer_expression "*(size_type *)((int)paVar10 + -4)" * (cast_expression "(size_type *)((int)paVar10 + -4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + -4)" ( (binary_expression "(int)paVar10 + -4" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "(((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;" (assignment_expression "(((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10" (field_expression "(((string *)((int)paVar10 + -8))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)((int)paVar10 + -8))->_M_dataplus)" ( (field_expression "((string *)((int)paVar10 + -8))->_M_dataplus" (parenthesized_expression "((string *)((int)paVar10 + -8))" ( (cast_expression "(string *)((int)paVar10 + -8)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + -8)" ( (binary_expression "(int)paVar10 + -8" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier) )) . field_identifier) = (cast_expression "(pointer)paVar10" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "paVar8 = paVar10 + 2;" (assignment_expression "paVar8 = paVar10 + 2" identifier = (binary_expression "paVar10 + 2" identifier + number_literal)) ;) (expression_statement "*(size_type *)((int)paVar10 + -4) = 0;" (assignment_expression "*(size_type *)((int)paVar10 + -4) = 0" (pointer_expression "*(size_type *)((int)paVar10 + -4)" * (cast_expression "(size_type *)((int)paVar10 + -4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + -4)" ( (binary_expression "(int)paVar10 + -4" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "paVar10->_M_local_buf[0] = '\0';" (assignment_expression "paVar10->_M_local_buf[0] = '\0'" (subscript_expression "paVar10->_M_local_buf[0]" (field_expression "paVar10->_M_local_buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pVVar7->exact_match = bVar1;" (assignment_expression "pVVar7->exact_match = bVar1" (field_expression "pVVar7->exact_match" identifier -> field_identifier) = identifier) ;) (expression_statement "pVVar7->language = LVar6;" (assignment_expression "pVVar7->language = LVar6" (field_expression "pVVar7->language" identifier -> field_identifier) = identifier) ;) (expression_statement "pVVar7->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15);" (assignment_expression "pVVar7->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15)" (field_expression "pVVar7->was_matched_by_symbol" identifier -> field_identifier) = (pointer_expression "*(bool *)((int)paVar10 + 0x15)" * (cast_expression "(bool *)((int)paVar10 + 0x15)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + 0x15)" ( (binary_expression "(int)paVar10 + 0x15" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "paVar10 = paVar8;" (assignment_expression "paVar10 = paVar8" identifier = identifier) ;) (expression_statement "pVVar7 = pVVar7 + 1;" (assignment_expression "pVVar7 = pVVar7 + 1" identifier = (binary_expression "pVVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(paVar17 != paVar8)" ( (binary_expression "paVar17 != paVar8" identifier != identifier) )) ;) (labeled_statement "LAB_00224324:\n        pVVar7 = (this->\n                 super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                 )._M_impl._M_finish;" statement_identifier : (expression_statement "pVVar7 = (this->\n                 super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                 )._M_impl._M_finish;" (assignment_expression "pVVar7 = (this->\n                 super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                 )._M_impl._M_finish" identifier = (field_expression "(this->\n                 super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                 )._M_impl._M_finish" (field_expression "(this->\n                 super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                 )._M_impl" (parenthesized_expression "(this->\n                 super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                 )" ( (ERROR "this->\n                 super__Vector_base<gold::Version_expression,_std::allocator<gold::" (comma_expression "this->\n                 super__Vector_base<gold::Version_expression,_std" (binary_expression "this->\n                 super__Vector_base<gold" (field_expression "this->\n                 super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Version_expression" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Version_expression>_>" (binary_expression "Version_expression>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier)) ;)) })) (expression_statement "(this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n      )._M_impl._M_finish = (pointer)((int)pVVar7 + iVar5);" (assignment_expression "(this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n      )._M_impl._M_finish = (pointer)((int)pVVar7 + iVar5)" (field_expression "(this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n      )._M_impl._M_finish" (field_expression "(this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n      )._M_impl" (parenthesized_expression "(this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n      )" ( (ERROR "this->super__Vector_base<gold::Version_expression,_std::allocator<gold::" (comma_expression "this->super__Vector_base<gold::Version_expression,_std" (binary_expression "this->super__Vector_base<gold" (field_expression "this->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Version_expression" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Version_expression>_>" (binary_expression "Version_expression>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier) = (call_expression "(pointer)((int)pVVar7 + iVar5)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((int)pVVar7 + iVar5)" ( (binary_expression "(int)pVVar7 + iVar5" (cast_expression "(int)pVVar7" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (if_statement "if (0 < iVar5) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(__position,__first);\n          uVar30 = uVar30 - 1;\n          LVar6 = __first[6];\n          __position->exact_match = *(bool *)(__first + 7);\n          __position->language = LVar6;\n          __position->was_matched_by_symbol = *(bool *)((int)__first + 0x1d);\n          __first = __first + 8;\n          __position = __position + 1;\n        } while (uVar30 != 0);\n      }" if (parenthesized_expression "(0 < iVar5)" ( (binary_expression "0 < iVar5" number_literal < identifier) )) (compound_statement "{\n        do {\n          (*(code *)PTR__M_assign_00432d78)(__position,__first);\n          uVar30 = uVar30 - 1;\n          LVar6 = __first[6];\n          __position->exact_match = *(bool *)(__first + 7);\n          __position->language = LVar6;\n          __position->was_matched_by_symbol = *(bool *)((int)__first + 0x1d);\n          __first = __first + 8;\n          __position = __position + 1;\n        } while (uVar30 != 0);\n      }" { (do_statement "do {\n          (*(code *)PTR__M_assign_00432d78)(__position,__first);\n          uVar30 = uVar30 - 1;\n          LVar6 = __first[6];\n          __position->exact_match = *(bool *)(__first + 7);\n          __position->language = LVar6;\n          __position->was_matched_by_symbol = *(bool *)((int)__first + 0x1d);\n          __first = __first + 8;\n          __position = __position + 1;\n        } while (uVar30 != 0);" do (compound_statement "{\n          (*(code *)PTR__M_assign_00432d78)(__position,__first);\n          uVar30 = uVar30 - 1;\n          LVar6 = __first[6];\n          __position->exact_match = *(bool *)(__first + 7);\n          __position->language = LVar6;\n          __position->was_matched_by_symbol = *(bool *)((int)__first + 0x1d);\n          __first = __first + 8;\n          __position = __position + 1;\n        }" { (expression_statement "(*(code *)PTR__M_assign_00432d78)(__position,__first);" (call_expression "(*(code *)PTR__M_assign_00432d78)(__position,__first)" (parenthesized_expression "(*(code *)PTR__M_assign_00432d78)" ( (pointer_expression "*(code *)PTR__M_assign_00432d78" * (cast_expression "(code *)PTR__M_assign_00432d78" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(__position,__first)" ( identifier , identifier ))) ;) (expression_statement "uVar30 = uVar30 - 1;" (assignment_expression "uVar30 = uVar30 - 1" identifier = (binary_expression "uVar30 - 1" identifier - number_literal)) ;) (expression_statement "LVar6 = __first[6];" (assignment_expression "LVar6 = __first[6]" identifier = (subscript_expression "__first[6]" identifier [ number_literal ])) ;) (expression_statement "__position->exact_match = *(bool *)(__first + 7);" (assignment_expression "__position->exact_match = *(bool *)(__first + 7)" (field_expression "__position->exact_match" identifier -> field_identifier) = (pointer_expression "*(bool *)(__first + 7)" * (cast_expression "(bool *)(__first + 7)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__first + 7)" ( (binary_expression "__first + 7" identifier + number_literal) ))))) ;) (expression_statement "__position->language = LVar6;" (assignment_expression "__position->language = LVar6" (field_expression "__position->language" identifier -> field_identifier) = identifier) ;) (expression_statement "__position->was_matched_by_symbol = *(bool *)((int)__first + 0x1d);" (assignment_expression "__position->was_matched_by_symbol = *(bool *)((int)__first + 0x1d)" (field_expression "__position->was_matched_by_symbol" identifier -> field_identifier) = (pointer_expression "*(bool *)((int)__first + 0x1d)" * (cast_expression "(bool *)((int)__first + 0x1d)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__first + 0x1d)" ( (binary_expression "(int)__first + 0x1d" (cast_expression "(int)__first" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "__first = __first + 8;" (assignment_expression "__first = __first + 8" identifier = (binary_expression "__first + 8" identifier + number_literal)) ;) (expression_statement "__position = __position + 1;" (assignment_expression "__position = __position + 1" identifier = (binary_expression "__position + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar30 != 0)" ( (binary_expression "uVar30 != 0" identifier != number_literal) )) ;) })) }))) (return_statement "return;" return ;) })) (expression_statement "pVVar7 = (this->\n           super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>).\n           _M_impl._M_start;" (assignment_expression "pVVar7 = (this->\n           super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>).\n           _M_impl._M_start" identifier = (field_expression "(this->\n           super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>).\n           _M_impl._M_start" (field_expression "(this->\n           super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>).\n           _M_impl" (parenthesized_expression "(this->\n           super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>)" ( (ERROR "this->\n           super__Vector_base<gold::Version_expression,_std::allocator<gold::" (comma_expression "this->\n           super__Vector_base<gold::Version_expression,_std" (binary_expression "this->\n           super__Vector_base<gold" (field_expression "this->\n           super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Version_expression" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Version_expression>_>" (binary_expression "Version_expression>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "uVar30 = 0x7ffffff;" (assignment_expression "uVar30 = 0x7ffffff" identifier = number_literal) ;) (expression_statement "uVar9 = (int)pVVar12 - (int)pVVar7 >> 5;" (assignment_expression "uVar9 = (int)pVVar12 - (int)pVVar7 >> 5" identifier = (binary_expression "(int)pVVar12 - (int)pVVar7 >> 5" (binary_expression "(int)pVVar12 - (int)pVVar7" (cast_expression "(int)pVVar12" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pVVar7" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (if_statement "if (0x7ffffff - uVar9 < uVar29) {\n    (*(code *)PTR___throw_length_error_00432480)(PTR_s__0043226c + -0x6b60);\n    return;\n  }" if (parenthesized_expression "(0x7ffffff - uVar9 < uVar29)" ( (binary_expression "0x7ffffff - uVar9 < uVar29" (binary_expression "0x7ffffff - uVar9" number_literal - identifier) < identifier) )) (compound_statement "{\n    (*(code *)PTR___throw_length_error_00432480)(PTR_s__0043226c + -0x6b60);\n    return;\n  }" { (expression_statement "(*(code *)PTR___throw_length_error_00432480)(PTR_s__0043226c + -0x6b60);" (call_expression "(*(code *)PTR___throw_length_error_00432480)(PTR_s__0043226c + -0x6b60)" (parenthesized_expression "(*(code *)PTR___throw_length_error_00432480)" ( (pointer_expression "*(code *)PTR___throw_length_error_00432480" * (cast_expression "(code *)PTR___throw_length_error_00432480" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s__0043226c + -0x6b60)" ( (binary_expression "PTR_s__0043226c + -0x6b60" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (if_statement "if (uVar29 < uVar9) {\n    uVar29 = uVar9;\n  }" if (parenthesized_expression "(uVar29 < uVar9)" ( (binary_expression "uVar29 < uVar9" identifier < identifier) )) (compound_statement "{\n    uVar29 = uVar9;\n  }" { (expression_statement "uVar29 = uVar9;" (assignment_expression "uVar29 = uVar9" identifier = identifier) ;) })) (expression_statement "uVar29 = uVar29 + uVar9;" (assignment_expression "uVar29 = uVar29 + uVar9" identifier = (binary_expression "uVar29 + uVar9" identifier + identifier)) ;) (if_statement "if ((uVar29 < uVar9) || (0x7ffffff < uVar29)) {\n    iVar27 = -0x20;\n  }\n  else {\n    pVVar12 = (pointer)0x0;\n    uVar30 = uVar29;\n    if (uVar29 == 0) goto LAB_00224414;\n    iVar27 = uVar29 * 0x20;\n  }" if (parenthesized_expression "((uVar29 < uVar9) || (0x7ffffff < uVar29))" ( (binary_expression "(uVar29 < uVar9) || (0x7ffffff < uVar29)" (parenthesized_expression "(uVar29 < uVar9)" ( (binary_expression "uVar29 < uVar9" identifier < identifier) )) || (parenthesized_expression "(0x7ffffff < uVar29)" ( (binary_expression "0x7ffffff < uVar29" number_literal < identifier) ))) )) (compound_statement "{\n    iVar27 = -0x20;\n  }" { (expression_statement "iVar27 = -0x20;" (assignment_expression "iVar27 = -0x20" identifier = number_literal) ;) }) (else_clause "else {\n    pVVar12 = (pointer)0x0;\n    uVar30 = uVar29;\n    if (uVar29 == 0) goto LAB_00224414;\n    iVar27 = uVar29 * 0x20;\n  }" else (compound_statement "{\n    pVVar12 = (pointer)0x0;\n    uVar30 = uVar29;\n    if (uVar29 == 0) goto LAB_00224414;\n    iVar27 = uVar29 * 0x20;\n  }" { (expression_statement "pVVar12 = (pointer)0x0;" (assignment_expression "pVVar12 = (pointer)0x0" identifier = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "uVar30 = uVar29;" (assignment_expression "uVar30 = uVar29" identifier = identifier) ;) (if_statement "if (uVar29 == 0) goto LAB_00224414;" if (parenthesized_expression "(uVar29 == 0)" ( (binary_expression "uVar29 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00224414;" goto statement_identifier ;)) (expression_statement "iVar27 = uVar29 * 0x20;" (assignment_expression "iVar27 = uVar29 * 0x20" identifier = (binary_expression "uVar29 * 0x20" identifier * number_literal)) ;) }))) (expression_statement "pVVar12 = (pointer)(*(code *)PTR_operator_new_0043233c)(iVar27);" (assignment_expression "pVVar12 = (pointer)(*(code *)PTR_operator_new_0043233c)(iVar27)" identifier = (call_expression "(pointer)(*(code *)PTR_operator_new_0043233c)(iVar27)" (call_expression "(pointer)(*(code *)PTR_operator_new_0043233c)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "(*(code *)PTR_operator_new_0043233c)" ( (pointer_expression "*(code *)PTR_operator_new_0043233c" * (cast_expression "(code *)PTR_operator_new_0043233c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) (argument_list "(iVar27)" ( identifier )))) ;) (expression_statement "pVVar7 = (this->\n           super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>).\n           _M_impl._M_start;" (assignment_expression "pVVar7 = (this->\n           super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>).\n           _M_impl._M_start" identifier = (field_expression "(this->\n           super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>).\n           _M_impl._M_start" (field_expression "(this->\n           super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>).\n           _M_impl" (parenthesized_expression "(this->\n           super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>)" ( (ERROR "this->\n           super__Vector_base<gold::Version_expression,_std::allocator<gold::" (comma_expression "this->\n           super__Vector_base<gold::Version_expression,_std" (binary_expression "this->\n           super__Vector_base<gold" (field_expression "this->\n           super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Version_expression" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Version_expression>_>" (binary_expression "Version_expression>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (labeled_statement "LAB_00224414:\n  pVVar23 = pVVar12;" statement_identifier : (expression_statement "pVVar23 = pVVar12;" (assignment_expression "pVVar23 = pVVar12" identifier = identifier) ;)) (expression_statement "pcVar3 = (code *)PTR__M_construct<char*>_0043248c;" (assignment_expression "pcVar3 = (code *)PTR__M_construct<char*>_0043248c" identifier = (binary_expression "(code *)PTR__M_construct<char*>_0043248c" (binary_expression "(code *)PTR__M_construct<char" (cast_expression "(code *)PTR__M_construct" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) < identifier) (ERROR "*" *) > identifier)) ;) (if_statement "if (pVVar7 != __position) {\n    paVar17 = &(__position->pattern).field_2;\n    paVar10 = &(pVVar7->pattern).field_2;\n    do {\n      while( true ) {\n        paVar8 = &(pVVar23->pattern).field_2;\n        (pVVar23->pattern)._M_dataplus._M_p = (pointer)paVar8;\n        pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar16 != paVar10) break;\n        uVar21 = *(undefined4 *)((int)paVar10 + 4);\n        uVar20 = *(undefined4 *)((int)paVar10 + 8);\n        uVar18 = *(undefined4 *)((int)paVar10 + 0xc);\n        paVar8->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 4) = uVar21;\n        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 8) = uVar20;\n        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 0xc) = uVar18;\n        bVar1 = *(bool *)((int)paVar10 + 0x14);\n        LVar6 = paVar10[1]._M_allocated_capacity;\n        (pVVar23->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);\n        (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n        paVar8 = paVar10 + 2;\n        *(size_type *)((int)paVar10 + -4) = 0;\n        paVar10->_M_local_buf[0] = '\0';\n        pVVar23->exact_match = bVar1;\n        pVVar23->language = LVar6;\n        pVVar23->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15);\n        paVar10 = paVar8;\n        pVVar23 = pVVar23 + 1;\n        if (paVar8 == paVar17) goto LAB_00224504;\n      }\n      (pVVar23->pattern)._M_dataplus._M_p = pcVar16;\n      bVar1 = *(bool *)((int)paVar10 + 0x14);\n      (pVVar23->pattern).field_2._M_allocated_capacity = paVar10->_M_allocated_capacity;\n      LVar6 = paVar10[1]._M_allocated_capacity;\n      (pVVar23->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);\n      (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n      paVar8 = paVar10 + 2;\n      *(size_type *)((int)paVar10 + -4) = 0;\n      paVar10->_M_local_buf[0] = '\0';\n      pVVar23->exact_match = bVar1;\n      pVVar23->language = LVar6;\n      pVVar23->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15);\n      paVar10 = paVar8;\n      pVVar23 = pVVar23 + 1;\n    } while (paVar8 != paVar17);\nLAB_00224504:\n    pVVar23 = pVVar12 + ((uint)((int)__position + (-0x20 - (int)pVVar7)) >> 5) + 1;\n    pcVar3 = (code *)PTR__M_construct<char*>_0043248c;\n  }" if (parenthesized_expression "(pVVar7 != __position)" ( (binary_expression "pVVar7 != __position" identifier != identifier) )) (compound_statement "{\n    paVar17 = &(__position->pattern).field_2;\n    paVar10 = &(pVVar7->pattern).field_2;\n    do {\n      while( true ) {\n        paVar8 = &(pVVar23->pattern).field_2;\n        (pVVar23->pattern)._M_dataplus._M_p = (pointer)paVar8;\n        pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar16 != paVar10) break;\n        uVar21 = *(undefined4 *)((int)paVar10 + 4);\n        uVar20 = *(undefined4 *)((int)paVar10 + 8);\n        uVar18 = *(undefined4 *)((int)paVar10 + 0xc);\n        paVar8->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 4) = uVar21;\n        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 8) = uVar20;\n        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 0xc) = uVar18;\n        bVar1 = *(bool *)((int)paVar10 + 0x14);\n        LVar6 = paVar10[1]._M_allocated_capacity;\n        (pVVar23->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);\n        (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n        paVar8 = paVar10 + 2;\n        *(size_type *)((int)paVar10 + -4) = 0;\n        paVar10->_M_local_buf[0] = '\0';\n        pVVar23->exact_match = bVar1;\n        pVVar23->language = LVar6;\n        pVVar23->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15);\n        paVar10 = paVar8;\n        pVVar23 = pVVar23 + 1;\n        if (paVar8 == paVar17) goto LAB_00224504;\n      }\n      (pVVar23->pattern)._M_dataplus._M_p = pcVar16;\n      bVar1 = *(bool *)((int)paVar10 + 0x14);\n      (pVVar23->pattern).field_2._M_allocated_capacity = paVar10->_M_allocated_capacity;\n      LVar6 = paVar10[1]._M_allocated_capacity;\n      (pVVar23->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);\n      (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n      paVar8 = paVar10 + 2;\n      *(size_type *)((int)paVar10 + -4) = 0;\n      paVar10->_M_local_buf[0] = '\0';\n      pVVar23->exact_match = bVar1;\n      pVVar23->language = LVar6;\n      pVVar23->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15);\n      paVar10 = paVar8;\n      pVVar23 = pVVar23 + 1;\n    } while (paVar8 != paVar17);\nLAB_00224504:\n    pVVar23 = pVVar12 + ((uint)((int)__position + (-0x20 - (int)pVVar7)) >> 5) + 1;\n    pcVar3 = (code *)PTR__M_construct<char*>_0043248c;\n  }" { (expression_statement "paVar17 = &(__position->pattern).field_2;" (assignment_expression "paVar17 = &(__position->pattern).field_2" identifier = (pointer_expression "&(__position->pattern).field_2" & (field_expression "(__position->pattern).field_2" (parenthesized_expression "(__position->pattern)" ( (field_expression "__position->pattern" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "paVar10 = &(pVVar7->pattern).field_2;" (assignment_expression "paVar10 = &(pVVar7->pattern).field_2" identifier = (pointer_expression "&(pVVar7->pattern).field_2" & (field_expression "(pVVar7->pattern).field_2" (parenthesized_expression "(pVVar7->pattern)" ( (field_expression "pVVar7->pattern" identifier -> field_identifier) )) . field_identifier))) ;) (do_statement "do {\n      while( true ) {\n        paVar8 = &(pVVar23->pattern).field_2;\n        (pVVar23->pattern)._M_dataplus._M_p = (pointer)paVar8;\n        pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar16 != paVar10) break;\n        uVar21 = *(undefined4 *)((int)paVar10 + 4);\n        uVar20 = *(undefined4 *)((int)paVar10 + 8);\n        uVar18 = *(undefined4 *)((int)paVar10 + 0xc);\n        paVar8->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 4) = uVar21;\n        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 8) = uVar20;\n        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 0xc) = uVar18;\n        bVar1 = *(bool *)((int)paVar10 + 0x14);\n        LVar6 = paVar10[1]._M_allocated_capacity;\n        (pVVar23->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);\n        (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n        paVar8 = paVar10 + 2;\n        *(size_type *)((int)paVar10 + -4) = 0;\n        paVar10->_M_local_buf[0] = '\0';\n        pVVar23->exact_match = bVar1;\n        pVVar23->language = LVar6;\n        pVVar23->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15);\n        paVar10 = paVar8;\n        pVVar23 = pVVar23 + 1;\n        if (paVar8 == paVar17) goto LAB_00224504;\n      }\n      (pVVar23->pattern)._M_dataplus._M_p = pcVar16;\n      bVar1 = *(bool *)((int)paVar10 + 0x14);\n      (pVVar23->pattern).field_2._M_allocated_capacity = paVar10->_M_allocated_capacity;\n      LVar6 = paVar10[1]._M_allocated_capacity;\n      (pVVar23->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);\n      (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n      paVar8 = paVar10 + 2;\n      *(size_type *)((int)paVar10 + -4) = 0;\n      paVar10->_M_local_buf[0] = '\0';\n      pVVar23->exact_match = bVar1;\n      pVVar23->language = LVar6;\n      pVVar23->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15);\n      paVar10 = paVar8;\n      pVVar23 = pVVar23 + 1;\n    } while (paVar8 != paVar17);" do (compound_statement "{\n      while( true ) {\n        paVar8 = &(pVVar23->pattern).field_2;\n        (pVVar23->pattern)._M_dataplus._M_p = (pointer)paVar8;\n        pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar16 != paVar10) break;\n        uVar21 = *(undefined4 *)((int)paVar10 + 4);\n        uVar20 = *(undefined4 *)((int)paVar10 + 8);\n        uVar18 = *(undefined4 *)((int)paVar10 + 0xc);\n        paVar8->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 4) = uVar21;\n        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 8) = uVar20;\n        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 0xc) = uVar18;\n        bVar1 = *(bool *)((int)paVar10 + 0x14);\n        LVar6 = paVar10[1]._M_allocated_capacity;\n        (pVVar23->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);\n        (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n        paVar8 = paVar10 + 2;\n        *(size_type *)((int)paVar10 + -4) = 0;\n        paVar10->_M_local_buf[0] = '\0';\n        pVVar23->exact_match = bVar1;\n        pVVar23->language = LVar6;\n        pVVar23->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15);\n        paVar10 = paVar8;\n        pVVar23 = pVVar23 + 1;\n        if (paVar8 == paVar17) goto LAB_00224504;\n      }\n      (pVVar23->pattern)._M_dataplus._M_p = pcVar16;\n      bVar1 = *(bool *)((int)paVar10 + 0x14);\n      (pVVar23->pattern).field_2._M_allocated_capacity = paVar10->_M_allocated_capacity;\n      LVar6 = paVar10[1]._M_allocated_capacity;\n      (pVVar23->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);\n      (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n      paVar8 = paVar10 + 2;\n      *(size_type *)((int)paVar10 + -4) = 0;\n      paVar10->_M_local_buf[0] = '\0';\n      pVVar23->exact_match = bVar1;\n      pVVar23->language = LVar6;\n      pVVar23->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15);\n      paVar10 = paVar8;\n      pVVar23 = pVVar23 + 1;\n    }" { (while_statement "while( true ) {\n        paVar8 = &(pVVar23->pattern).field_2;\n        (pVVar23->pattern)._M_dataplus._M_p = (pointer)paVar8;\n        pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar16 != paVar10) break;\n        uVar21 = *(undefined4 *)((int)paVar10 + 4);\n        uVar20 = *(undefined4 *)((int)paVar10 + 8);\n        uVar18 = *(undefined4 *)((int)paVar10 + 0xc);\n        paVar8->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 4) = uVar21;\n        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 8) = uVar20;\n        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 0xc) = uVar18;\n        bVar1 = *(bool *)((int)paVar10 + 0x14);\n        LVar6 = paVar10[1]._M_allocated_capacity;\n        (pVVar23->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);\n        (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n        paVar8 = paVar10 + 2;\n        *(size_type *)((int)paVar10 + -4) = 0;\n        paVar10->_M_local_buf[0] = '\0';\n        pVVar23->exact_match = bVar1;\n        pVVar23->language = LVar6;\n        pVVar23->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15);\n        paVar10 = paVar8;\n        pVVar23 = pVVar23 + 1;\n        if (paVar8 == paVar17) goto LAB_00224504;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        paVar8 = &(pVVar23->pattern).field_2;\n        (pVVar23->pattern)._M_dataplus._M_p = (pointer)paVar8;\n        pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar16 != paVar10) break;\n        uVar21 = *(undefined4 *)((int)paVar10 + 4);\n        uVar20 = *(undefined4 *)((int)paVar10 + 8);\n        uVar18 = *(undefined4 *)((int)paVar10 + 0xc);\n        paVar8->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 4) = uVar21;\n        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 8) = uVar20;\n        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 0xc) = uVar18;\n        bVar1 = *(bool *)((int)paVar10 + 0x14);\n        LVar6 = paVar10[1]._M_allocated_capacity;\n        (pVVar23->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);\n        (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n        paVar8 = paVar10 + 2;\n        *(size_type *)((int)paVar10 + -4) = 0;\n        paVar10->_M_local_buf[0] = '\0';\n        pVVar23->exact_match = bVar1;\n        pVVar23->language = LVar6;\n        pVVar23->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15);\n        paVar10 = paVar8;\n        pVVar23 = pVVar23 + 1;\n        if (paVar8 == paVar17) goto LAB_00224504;\n      }" { (expression_statement "paVar8 = &(pVVar23->pattern).field_2;" (assignment_expression "paVar8 = &(pVVar23->pattern).field_2" identifier = (pointer_expression "&(pVVar23->pattern).field_2" & (field_expression "(pVVar23->pattern).field_2" (parenthesized_expression "(pVVar23->pattern)" ( (field_expression "pVVar23->pattern" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "(pVVar23->pattern)._M_dataplus._M_p = (pointer)paVar8;" (assignment_expression "(pVVar23->pattern)._M_dataplus._M_p = (pointer)paVar8" (field_expression "(pVVar23->pattern)._M_dataplus._M_p" (field_expression "(pVVar23->pattern)._M_dataplus" (parenthesized_expression "(pVVar23->pattern)" ( (field_expression "pVVar23->pattern" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar8" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;" (assignment_expression "pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p" identifier = (field_expression "(((string *)((int)paVar10 + -8))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)((int)paVar10 + -8))->_M_dataplus)" ( (field_expression "((string *)((int)paVar10 + -8))->_M_dataplus" (parenthesized_expression "((string *)((int)paVar10 + -8))" ( (cast_expression "(string *)((int)paVar10 + -8)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + -8)" ( (binary_expression "(int)paVar10 + -8" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) 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             *)pcVar16 != paVar10) break;" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar16 != paVar10)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar16 != 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             *)pcVar16 != paVar10" (binary_expression "allocator<char>_>_9\n             *)pcVar16" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n             *)pcVar16" identifier * (ERROR ")" )) identifier)) != identifier) )) )) (break_statement "break;" break ;)) (expression_statement "uVar21 = *(undefined4 *)((int)paVar10 + 4);" (assignment_expression "uVar21 = *(undefined4 *)((int)paVar10 + 4)" identifier = (pointer_expression "*(undefined4 *)((int)paVar10 + 4)" * (cast_expression "(undefined4 *)((int)paVar10 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + 4)" ( (binary_expression "(int)paVar10 + 4" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar20 = *(undefined4 *)((int)paVar10 + 8);" (assignment_expression "uVar20 = *(undefined4 *)((int)paVar10 + 8)" identifier = (pointer_expression "*(undefined4 *)((int)paVar10 + 8)" * (cast_expression "(undefined4 *)((int)paVar10 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + 8)" ( (binary_expression "(int)paVar10 + 8" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar18 = *(undefined4 *)((int)paVar10 + 0xc);" (assignment_expression "uVar18 = *(undefined4 *)((int)paVar10 + 0xc)" identifier = (pointer_expression "*(undefined4 *)((int)paVar10 + 0xc)" * (cast_expression "(undefined4 *)((int)paVar10 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + 0xc)" ( (binary_expression "(int)paVar10 + 0xc" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "paVar8->_M_allocated_capacity = paVar10->_M_allocated_capacity;" (assignment_expression "paVar8->_M_allocated_capacity = paVar10->_M_allocated_capacity" (field_expression "paVar8->_M_allocated_capacity" identifier -> field_identifier) = (field_expression "paVar10->_M_allocated_capacity" identifier -> field_identifier)) ;) (expression_statement "*(undefined4 *)((int)&(pVVar23->pattern).field_2 + 4) = uVar21;" (assignment_expression "*(undefined4 *)((int)&(pVVar23->pattern).field_2 + 4) = uVar21" (pointer_expression "*(undefined4 *)((int)&(pVVar23->pattern).field_2 + 4)" * (cast_expression "(undefined4 *)((int)&(pVVar23->pattern).field_2 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pVVar23->pattern).field_2 + 4)" ( (binary_expression "(int)&(pVVar23->pattern).field_2 + 4" (cast_expression "(int)&(pVVar23->pattern).field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pVVar23->pattern).field_2" & (field_expression "(pVVar23->pattern).field_2" (parenthesized_expression "(pVVar23->pattern)" ( (field_expression "pVVar23->pattern" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)&(pVVar23->pattern).field_2 + 8) = uVar20;" (assignment_expression "*(undefined4 *)((int)&(pVVar23->pattern).field_2 + 8) = uVar20" (pointer_expression "*(undefined4 *)((int)&(pVVar23->pattern).field_2 + 8)" * (cast_expression "(undefined4 *)((int)&(pVVar23->pattern).field_2 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pVVar23->pattern).field_2 + 8)" ( (binary_expression "(int)&(pVVar23->pattern).field_2 + 8" (cast_expression "(int)&(pVVar23->pattern).field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pVVar23->pattern).field_2" & (field_expression "(pVVar23->pattern).field_2" (parenthesized_expression "(pVVar23->pattern)" ( (field_expression "pVVar23->pattern" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)&(pVVar23->pattern).field_2 + 0xc) = uVar18;" (assignment_expression "*(undefined4 *)((int)&(pVVar23->pattern).field_2 + 0xc) = uVar18" (pointer_expression "*(undefined4 *)((int)&(pVVar23->pattern).field_2 + 0xc)" * (cast_expression "(undefined4 *)((int)&(pVVar23->pattern).field_2 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pVVar23->pattern).field_2 + 0xc)" ( (binary_expression "(int)&(pVVar23->pattern).field_2 + 0xc" (cast_expression "(int)&(pVVar23->pattern).field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pVVar23->pattern).field_2" & (field_expression "(pVVar23->pattern).field_2" (parenthesized_expression "(pVVar23->pattern)" ( (field_expression "pVVar23->pattern" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "bVar1 = *(bool *)((int)paVar10 + 0x14);" (assignment_expression "bVar1 = *(bool *)((int)paVar10 + 0x14)" identifier = (pointer_expression "*(bool *)((int)paVar10 + 0x14)" * (cast_expression "(bool *)((int)paVar10 + 0x14)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + 0x14)" ( (binary_expression "(int)paVar10 + 0x14" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "LVar6 = paVar10[1]._M_allocated_capacity;" (assignment_expression "LVar6 = paVar10[1]._M_allocated_capacity" identifier = (field_expression "paVar10[1]._M_allocated_capacity" (subscript_expression "paVar10[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "(pVVar23->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);" (assignment_expression "(pVVar23->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4)" (field_expression "(pVVar23->pattern)._M_string_length" (parenthesized_expression "(pVVar23->pattern)" ( (field_expression "pVVar23->pattern" identifier -> field_identifier) )) . field_identifier) = (pointer_expression "*(size_type *)((int)paVar10 + -4)" * (cast_expression "(size_type *)((int)paVar10 + -4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + -4)" ( (binary_expression "(int)paVar10 + -4" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "(((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;" (assignment_expression "(((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10" (field_expression "(((string *)((int)paVar10 + -8))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)((int)paVar10 + -8))->_M_dataplus)" ( (field_expression "((string *)((int)paVar10 + -8))->_M_dataplus" (parenthesized_expression "((string *)((int)paVar10 + -8))" ( (cast_expression "(string *)((int)paVar10 + -8)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + -8)" ( (binary_expression "(int)paVar10 + -8" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier) )) . field_identifier) = (cast_expression "(pointer)paVar10" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "paVar8 = paVar10 + 2;" (assignment_expression "paVar8 = paVar10 + 2" identifier = (binary_expression "paVar10 + 2" identifier + number_literal)) ;) (expression_statement "*(size_type *)((int)paVar10 + -4) = 0;" (assignment_expression "*(size_type *)((int)paVar10 + -4) = 0" (pointer_expression "*(size_type *)((int)paVar10 + -4)" * (cast_expression "(size_type *)((int)paVar10 + -4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + -4)" ( (binary_expression "(int)paVar10 + -4" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "paVar10->_M_local_buf[0] = '\0';" (assignment_expression "paVar10->_M_local_buf[0] = '\0'" (subscript_expression "paVar10->_M_local_buf[0]" (field_expression "paVar10->_M_local_buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pVVar23->exact_match = bVar1;" (assignment_expression "pVVar23->exact_match = bVar1" (field_expression "pVVar23->exact_match" identifier -> field_identifier) = identifier) ;) (expression_statement "pVVar23->language = LVar6;" (assignment_expression "pVVar23->language = LVar6" (field_expression "pVVar23->language" identifier -> field_identifier) = identifier) ;) (expression_statement "pVVar23->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15);" (assignment_expression "pVVar23->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15)" (field_expression "pVVar23->was_matched_by_symbol" identifier -> field_identifier) = (pointer_expression "*(bool *)((int)paVar10 + 0x15)" * (cast_expression "(bool *)((int)paVar10 + 0x15)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + 0x15)" ( (binary_expression "(int)paVar10 + 0x15" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "paVar10 = paVar8;" (assignment_expression "paVar10 = paVar8" identifier = identifier) ;) (expression_statement "pVVar23 = pVVar23 + 1;" (assignment_expression "pVVar23 = pVVar23 + 1" identifier = (binary_expression "pVVar23 + 1" identifier + number_literal)) ;) (if_statement "if (paVar8 == paVar17) goto LAB_00224504;" if (parenthesized_expression "(paVar8 == paVar17)" ( (binary_expression "paVar8 == paVar17" identifier == identifier) )) (goto_statement "goto LAB_00224504;" goto statement_identifier ;)) })) (expression_statement "(pVVar23->pattern)._M_dataplus._M_p = pcVar16;" (assignment_expression "(pVVar23->pattern)._M_dataplus._M_p = pcVar16" (field_expression "(pVVar23->pattern)._M_dataplus._M_p" (field_expression "(pVVar23->pattern)._M_dataplus" (parenthesized_expression "(pVVar23->pattern)" ( (field_expression "pVVar23->pattern" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "bVar1 = *(bool *)((int)paVar10 + 0x14);" (assignment_expression "bVar1 = *(bool *)((int)paVar10 + 0x14)" identifier = (pointer_expression "*(bool *)((int)paVar10 + 0x14)" * (cast_expression "(bool *)((int)paVar10 + 0x14)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + 0x14)" ( (binary_expression "(int)paVar10 + 0x14" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "(pVVar23->pattern).field_2._M_allocated_capacity = paVar10->_M_allocated_capacity;" (assignment_expression "(pVVar23->pattern).field_2._M_allocated_capacity = paVar10->_M_allocated_capacity" (field_expression "(pVVar23->pattern).field_2._M_allocated_capacity" (field_expression "(pVVar23->pattern).field_2" (parenthesized_expression "(pVVar23->pattern)" ( (field_expression "pVVar23->pattern" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (field_expression "paVar10->_M_allocated_capacity" identifier -> field_identifier)) ;) (expression_statement "LVar6 = paVar10[1]._M_allocated_capacity;" (assignment_expression "LVar6 = paVar10[1]._M_allocated_capacity" identifier = (field_expression "paVar10[1]._M_allocated_capacity" (subscript_expression "paVar10[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "(pVVar23->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);" (assignment_expression "(pVVar23->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4)" (field_expression "(pVVar23->pattern)._M_string_length" (parenthesized_expression "(pVVar23->pattern)" ( (field_expression "pVVar23->pattern" identifier -> field_identifier) )) . field_identifier) = (pointer_expression "*(size_type *)((int)paVar10 + -4)" * (cast_expression "(size_type *)((int)paVar10 + -4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + -4)" ( (binary_expression "(int)paVar10 + -4" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "(((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;" (assignment_expression "(((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10" (field_expression "(((string *)((int)paVar10 + -8))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)((int)paVar10 + -8))->_M_dataplus)" ( (field_expression "((string *)((int)paVar10 + -8))->_M_dataplus" (parenthesized_expression "((string *)((int)paVar10 + -8))" ( (cast_expression "(string *)((int)paVar10 + -8)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + -8)" ( (binary_expression "(int)paVar10 + -8" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier) )) . field_identifier) = (cast_expression "(pointer)paVar10" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "paVar8 = paVar10 + 2;" (assignment_expression "paVar8 = paVar10 + 2" identifier = (binary_expression "paVar10 + 2" identifier + number_literal)) ;) (expression_statement "*(size_type *)((int)paVar10 + -4) = 0;" (assignment_expression "*(size_type *)((int)paVar10 + -4) = 0" (pointer_expression "*(size_type *)((int)paVar10 + -4)" * (cast_expression "(size_type *)((int)paVar10 + -4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + -4)" ( (binary_expression "(int)paVar10 + -4" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "paVar10->_M_local_buf[0] = '\0';" (assignment_expression "paVar10->_M_local_buf[0] = '\0'" (subscript_expression "paVar10->_M_local_buf[0]" (field_expression "paVar10->_M_local_buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pVVar23->exact_match = bVar1;" (assignment_expression "pVVar23->exact_match = bVar1" (field_expression "pVVar23->exact_match" identifier -> field_identifier) = identifier) ;) (expression_statement "pVVar23->language = LVar6;" (assignment_expression "pVVar23->language = LVar6" (field_expression "pVVar23->language" identifier -> field_identifier) = identifier) ;) (expression_statement "pVVar23->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15);" (assignment_expression "pVVar23->was_matched_by_symbol = *(bool *)((int)paVar10 + 0x15)" (field_expression "pVVar23->was_matched_by_symbol" identifier -> field_identifier) = (pointer_expression "*(bool *)((int)paVar10 + 0x15)" * (cast_expression "(bool *)((int)paVar10 + 0x15)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + 0x15)" ( (binary_expression "(int)paVar10 + 0x15" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "paVar10 = paVar8;" (assignment_expression "paVar10 = paVar8" identifier = identifier) ;) (expression_statement "pVVar23 = pVVar23 + 1;" (assignment_expression "pVVar23 = pVVar23 + 1" identifier = (binary_expression "pVVar23 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(paVar8 != paVar17)" ( (binary_expression "paVar8 != paVar17" identifier != identifier) )) ;) (labeled_statement "LAB_00224504:\n    pVVar23 = pVVar12 + ((uint)((int)__position + (-0x20 - (int)pVVar7)) >> 5) + 1;" statement_identifier : (expression_statement "pVVar23 = pVVar12 + ((uint)((int)__position + (-0x20 - (int)pVVar7)) >> 5) + 1;" (assignment_expression "pVVar23 = pVVar12 + ((uint)((int)__position + (-0x20 - (int)pVVar7)) >> 5) + 1" identifier = (binary_expression "pVVar12 + ((uint)((int)__position + (-0x20 - (int)pVVar7)) >> 5) + 1" (binary_expression "pVVar12 + ((uint)((int)__position + (-0x20 - (int)pVVar7)) >> 5)" identifier + (parenthesized_expression "((uint)((int)__position + (-0x20 - (int)pVVar7)) >> 5)" ( (binary_expression "(uint)((int)__position + (-0x20 - (int)pVVar7)) >> 5" (call_expression "(uint)((int)__position + (-0x20 - (int)pVVar7))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)__position + (-0x20 - (int)pVVar7))" ( (binary_expression "(int)__position + (-0x20 - (int)pVVar7)" (cast_expression "(int)__position" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-0x20 - (int)pVVar7)" ( (binary_expression "-0x20 - (int)pVVar7" number_literal - (cast_expression "(int)pVVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))) >> number_literal) ))) + number_literal)) ;)) (expression_statement "pcVar3 = (code *)PTR__M_construct<char*>_0043248c;" (assignment_expression "pcVar3 = (code *)PTR__M_construct<char*>_0043248c" identifier = (binary_expression "(code *)PTR__M_construct<char*>_0043248c" (binary_expression "(code *)PTR__M_construct<char" (cast_expression "(code *)PTR__M_construct" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) < identifier) (ERROR "*" *) > identifier)) ;) })) (do_statement "do {\n    iVar27 = *__first;\n    iVar5 = __first[1];\n    (pVVar23->pattern)._M_dataplus._M_p = (pointer)&(pVVar23->pattern).field_2;\n                    /* try { // try from 00224544 to 0022454b has its CatchHandler @ 002249b4 */\n    (*pcVar3)(pVVar23,iVar27,iVar27 + iVar5,0);\n    piVar25 = __first + 8;\n    pVVar7 = pVVar23 + 1;\n    bVar1 = *(bool *)(__first + 7);\n    bVar2 = *(bool *)((int)__first + 0x1d);\n    pVVar23->language = __first[6];\n    pVVar23->exact_match = bVar1;\n    pVVar23->was_matched_by_symbol = bVar2;\n    __first = piVar25;\n    pVVar23 = pVVar7;\n  } while (__last != piVar25);" do (compound_statement "{\n    iVar27 = *__first;\n    iVar5 = __first[1];\n    (pVVar23->pattern)._M_dataplus._M_p = (pointer)&(pVVar23->pattern).field_2;\n                    /* try { // try from 00224544 to 0022454b has its CatchHandler @ 002249b4 */\n    (*pcVar3)(pVVar23,iVar27,iVar27 + iVar5,0);\n    piVar25 = __first + 8;\n    pVVar7 = pVVar23 + 1;\n    bVar1 = *(bool *)(__first + 7);\n    bVar2 = *(bool *)((int)__first + 0x1d);\n    pVVar23->language = __first[6];\n    pVVar23->exact_match = bVar1;\n    pVVar23->was_matched_by_symbol = bVar2;\n    __first = piVar25;\n    pVVar23 = pVVar7;\n  }" { (expression_statement "iVar27 = *__first;" (assignment_expression "iVar27 = *__first" identifier = (pointer_expression "*__first" * identifier)) ;) (expression_statement "iVar5 = __first[1];" (assignment_expression "iVar5 = __first[1]" identifier = (subscript_expression "__first[1]" identifier [ number_literal ])) ;) (expression_statement "(pVVar23->pattern)._M_dataplus._M_p = (pointer)&(pVVar23->pattern).field_2;" (assignment_expression "(pVVar23->pattern)._M_dataplus._M_p = (pointer)&(pVVar23->pattern).field_2" (field_expression "(pVVar23->pattern)._M_dataplus._M_p" (field_expression "(pVVar23->pattern)._M_dataplus" (parenthesized_expression "(pVVar23->pattern)" ( (field_expression "pVVar23->pattern" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (binary_expression "(pointer)&(pVVar23->pattern).field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "(pVVar23->pattern).field_2" (parenthesized_expression "(pVVar23->pattern)" ( (field_expression "pVVar23->pattern" identifier -> field_identifier) )) . field_identifier))) ;) comment (expression_statement "(*pcVar3)(pVVar23,iVar27,iVar27 + iVar5,0);" (call_expression "(*pcVar3)(pVVar23,iVar27,iVar27 + iVar5,0)" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "(pVVar23,iVar27,iVar27 + iVar5,0)" ( identifier , identifier , (binary_expression "iVar27 + iVar5" identifier + identifier) , number_literal ))) ;) (expression_statement "piVar25 = __first + 8;" (assignment_expression "piVar25 = __first + 8" identifier = (binary_expression "__first + 8" identifier + number_literal)) ;) (expression_statement "pVVar7 = pVVar23 + 1;" (assignment_expression "pVVar7 = pVVar23 + 1" identifier = (binary_expression "pVVar23 + 1" identifier + number_literal)) ;) (expression_statement "bVar1 = *(bool *)(__first + 7);" (assignment_expression "bVar1 = *(bool *)(__first + 7)" identifier = (pointer_expression "*(bool *)(__first + 7)" * (cast_expression "(bool *)(__first + 7)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__first + 7)" ( (binary_expression "__first + 7" identifier + number_literal) ))))) ;) (expression_statement "bVar2 = *(bool *)((int)__first + 0x1d);" (assignment_expression "bVar2 = *(bool *)((int)__first + 0x1d)" identifier = (pointer_expression "*(bool *)((int)__first + 0x1d)" * (cast_expression "(bool *)((int)__first + 0x1d)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__first + 0x1d)" ( (binary_expression "(int)__first + 0x1d" (cast_expression "(int)__first" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pVVar23->language = __first[6];" (assignment_expression "pVVar23->language = __first[6]" (field_expression "pVVar23->language" identifier -> field_identifier) = (subscript_expression "__first[6]" identifier [ number_literal ])) ;) (expression_statement "pVVar23->exact_match = bVar1;" (assignment_expression "pVVar23->exact_match = bVar1" (field_expression "pVVar23->exact_match" identifier -> field_identifier) = identifier) ;) (expression_statement "pVVar23->was_matched_by_symbol = bVar2;" (assignment_expression "pVVar23->was_matched_by_symbol = bVar2" (field_expression "pVVar23->was_matched_by_symbol" identifier -> field_identifier) = identifier) ;) (expression_statement "__first = piVar25;" (assignment_expression "__first = piVar25" identifier = identifier) ;) (expression_statement "pVVar23 = pVVar7;" (assignment_expression "pVVar23 = pVVar7" identifier = identifier) ;) }) while (parenthesized_expression "(__last != piVar25)" ( (binary_expression "__last != piVar25" identifier != identifier) )) ;) (expression_statement "pVVar23 = (this->\n            super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>)\n            ._M_impl._M_finish;" (assignment_expression "pVVar23 = (this->\n            super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>)\n            ._M_impl._M_finish" identifier = (field_expression "(this->\n            super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>)\n            ._M_impl._M_finish" (field_expression "(this->\n            super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>)\n            ._M_impl" (parenthesized_expression "(this->\n            super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>)" ( (ERROR "this->\n            super__Vector_base<gold::Version_expression,_std::allocator<gold::" (comma_expression "this->\n            super__Vector_base<gold::Version_expression,_std" (binary_expression "this->\n            super__Vector_base<gold" (field_expression "this->\n            super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Version_expression" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Version_expression>_>" (binary_expression "Version_expression>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (pVVar23 != __position) {\n    uVar29 = (int)pVVar23 + (-0x20 - (int)__position);\n    puVar24 = (undefined4 *)((int)__position + uVar29 + 0x28);\n    pVVar23 = pVVar7;\n    paVar10 = &(__position->pattern).field_2;\n    do {\n      while( true ) {\n        pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n        paVar17 = &(pVVar23->pattern).field_2;\n        (pVVar23->pattern)._M_dataplus._M_p = (pointer)paVar17;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar16 != paVar10) break;\n        uVar21 = *(undefined4 *)((int)paVar10 + 4);\n        uVar20 = *(undefined4 *)((int)paVar10 + 8);\n        uVar18 = *(undefined4 *)((int)paVar10 + 0xc);\n        paVar17->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 4) = uVar21;\n        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 8) = uVar20;\n        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 0xc) = uVar18;\n        (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n        paVar17 = paVar10 + 2;\n        LVar6 = paVar10[1]._M_allocated_capacity;\n        bVar1 = *(bool *)((int)paVar10 + 0x14);\n        bVar2 = *(bool *)((int)paVar10 + 0x15);\n        (pVVar23->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);\n        pVVar23->language = LVar6;\n        *(size_type *)((int)paVar10 + -4) = 0;\n        paVar10->_M_local_buf[0] = '\0';\n        pVVar23->exact_match = bVar1;\n        pVVar23->was_matched_by_symbol = bVar2;\n        pVVar23 = pVVar23 + 1;\n        paVar10 = paVar17;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)puVar24 == paVar17) goto LAB_00224668;\n      }\n      sVar14 = paVar10->_M_allocated_capacity;\n      sVar15 = *(size_type *)((int)paVar10 + -4);\n      LVar6 = paVar10[1]._M_allocated_capacity;\n      (pVVar23->pattern)._M_dataplus._M_p = pcVar16;\n      (pVVar23->pattern).field_2._M_allocated_capacity = sVar14;\n      (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n      paVar17 = paVar10 + 2;\n      (pVVar23->pattern)._M_string_length = sVar15;\n      pVVar23->language = LVar6;\n      bVar1 = *(bool *)((int)paVar10 + 0x15);\n      pVVar23->exact_match = *(bool *)((int)paVar10 + 0x14);\n      *(size_type *)((int)paVar10 + -4) = 0;\n      paVar10->_M_local_buf[0] = '\0';\n      pVVar23->was_matched_by_symbol = bVar1;\n      pVVar23 = pVVar23 + 1;\n      paVar10 = paVar17;\n    } while ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n              *)puVar24 != paVar17);\nLAB_00224668:\n    pVVar23 = (this->\n              super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n              )._M_impl._M_finish;\n    pVVar7 = pVVar7 + (uVar29 >> 5) + 1;\n  }" if (parenthesized_expression "(pVVar23 != __position)" ( (binary_expression "pVVar23 != __position" identifier != identifier) )) (compound_statement "{\n    uVar29 = (int)pVVar23 + (-0x20 - (int)__position);\n    puVar24 = (undefined4 *)((int)__position + uVar29 + 0x28);\n    pVVar23 = pVVar7;\n    paVar10 = &(__position->pattern).field_2;\n    do {\n      while( true ) {\n        pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n        paVar17 = &(pVVar23->pattern).field_2;\n        (pVVar23->pattern)._M_dataplus._M_p = (pointer)paVar17;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar16 != paVar10) break;\n        uVar21 = *(undefined4 *)((int)paVar10 + 4);\n        uVar20 = *(undefined4 *)((int)paVar10 + 8);\n        uVar18 = *(undefined4 *)((int)paVar10 + 0xc);\n        paVar17->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 4) = uVar21;\n        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 8) = uVar20;\n        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 0xc) = uVar18;\n        (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n        paVar17 = paVar10 + 2;\n        LVar6 = paVar10[1]._M_allocated_capacity;\n        bVar1 = *(bool *)((int)paVar10 + 0x14);\n        bVar2 = *(bool *)((int)paVar10 + 0x15);\n        (pVVar23->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);\n        pVVar23->language = LVar6;\n        *(size_type *)((int)paVar10 + -4) = 0;\n        paVar10->_M_local_buf[0] = '\0';\n        pVVar23->exact_match = bVar1;\n        pVVar23->was_matched_by_symbol = bVar2;\n        pVVar23 = pVVar23 + 1;\n        paVar10 = paVar17;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)puVar24 == paVar17) goto LAB_00224668;\n      }\n      sVar14 = paVar10->_M_allocated_capacity;\n      sVar15 = *(size_type *)((int)paVar10 + -4);\n      LVar6 = paVar10[1]._M_allocated_capacity;\n      (pVVar23->pattern)._M_dataplus._M_p = pcVar16;\n      (pVVar23->pattern).field_2._M_allocated_capacity = sVar14;\n      (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n      paVar17 = paVar10 + 2;\n      (pVVar23->pattern)._M_string_length = sVar15;\n      pVVar23->language = LVar6;\n      bVar1 = *(bool *)((int)paVar10 + 0x15);\n      pVVar23->exact_match = *(bool *)((int)paVar10 + 0x14);\n      *(size_type *)((int)paVar10 + -4) = 0;\n      paVar10->_M_local_buf[0] = '\0';\n      pVVar23->was_matched_by_symbol = bVar1;\n      pVVar23 = pVVar23 + 1;\n      paVar10 = paVar17;\n    } while ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n              *)puVar24 != paVar17);\nLAB_00224668:\n    pVVar23 = (this->\n              super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n              )._M_impl._M_finish;\n    pVVar7 = pVVar7 + (uVar29 >> 5) + 1;\n  }" { (expression_statement "uVar29 = (int)pVVar23 + (-0x20 - (int)__position);" (assignment_expression "uVar29 = (int)pVVar23 + (-0x20 - (int)__position)" identifier = (binary_expression "(int)pVVar23 + (-0x20 - (int)__position)" (cast_expression "(int)pVVar23" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-0x20 - (int)__position)" ( (binary_expression "-0x20 - (int)__position" number_literal - (cast_expression "(int)__position" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "puVar24 = (undefined4 *)((int)__position + uVar29 + 0x28);" (assignment_expression "puVar24 = (undefined4 *)((int)__position + uVar29 + 0x28)" identifier = (cast_expression "(undefined4 *)((int)__position + uVar29 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__position + uVar29 + 0x28)" ( (binary_expression "(int)__position + uVar29 + 0x28" (binary_expression "(int)__position + uVar29" (cast_expression "(int)__position" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "pVVar23 = pVVar7;" (assignment_expression "pVVar23 = pVVar7" identifier = identifier) ;) (expression_statement "paVar10 = &(__position->pattern).field_2;" (assignment_expression "paVar10 = &(__position->pattern).field_2" identifier = (pointer_expression "&(__position->pattern).field_2" & (field_expression "(__position->pattern).field_2" (parenthesized_expression "(__position->pattern)" ( (field_expression "__position->pattern" identifier -> field_identifier) )) . field_identifier))) ;) (do_statement "do {\n      while( true ) {\n        pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n        paVar17 = &(pVVar23->pattern).field_2;\n        (pVVar23->pattern)._M_dataplus._M_p = (pointer)paVar17;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar16 != paVar10) break;\n        uVar21 = *(undefined4 *)((int)paVar10 + 4);\n        uVar20 = *(undefined4 *)((int)paVar10 + 8);\n        uVar18 = *(undefined4 *)((int)paVar10 + 0xc);\n        paVar17->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 4) = uVar21;\n        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 8) = uVar20;\n        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 0xc) = uVar18;\n        (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n        paVar17 = paVar10 + 2;\n        LVar6 = paVar10[1]._M_allocated_capacity;\n        bVar1 = *(bool *)((int)paVar10 + 0x14);\n        bVar2 = *(bool *)((int)paVar10 + 0x15);\n        (pVVar23->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);\n        pVVar23->language = LVar6;\n        *(size_type *)((int)paVar10 + -4) = 0;\n        paVar10->_M_local_buf[0] = '\0';\n        pVVar23->exact_match = bVar1;\n        pVVar23->was_matched_by_symbol = bVar2;\n        pVVar23 = pVVar23 + 1;\n        paVar10 = paVar17;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)puVar24 == paVar17) goto LAB_00224668;\n      }\n      sVar14 = paVar10->_M_allocated_capacity;\n      sVar15 = *(size_type *)((int)paVar10 + -4);\n      LVar6 = paVar10[1]._M_allocated_capacity;\n      (pVVar23->pattern)._M_dataplus._M_p = pcVar16;\n      (pVVar23->pattern).field_2._M_allocated_capacity = sVar14;\n      (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n      paVar17 = paVar10 + 2;\n      (pVVar23->pattern)._M_string_length = sVar15;\n      pVVar23->language = LVar6;\n      bVar1 = *(bool *)((int)paVar10 + 0x15);\n      pVVar23->exact_match = *(bool *)((int)paVar10 + 0x14);\n      *(size_type *)((int)paVar10 + -4) = 0;\n      paVar10->_M_local_buf[0] = '\0';\n      pVVar23->was_matched_by_symbol = bVar1;\n      pVVar23 = pVVar23 + 1;\n      paVar10 = paVar17;\n    } while ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n              *)puVar24 != paVar17);" do (compound_statement "{\n      while( true ) {\n        pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n        paVar17 = &(pVVar23->pattern).field_2;\n        (pVVar23->pattern)._M_dataplus._M_p = (pointer)paVar17;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar16 != paVar10) break;\n        uVar21 = *(undefined4 *)((int)paVar10 + 4);\n        uVar20 = *(undefined4 *)((int)paVar10 + 8);\n        uVar18 = *(undefined4 *)((int)paVar10 + 0xc);\n        paVar17->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 4) = uVar21;\n        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 8) = uVar20;\n        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 0xc) = uVar18;\n        (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n        paVar17 = paVar10 + 2;\n        LVar6 = paVar10[1]._M_allocated_capacity;\n        bVar1 = *(bool *)((int)paVar10 + 0x14);\n        bVar2 = *(bool *)((int)paVar10 + 0x15);\n        (pVVar23->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);\n        pVVar23->language = LVar6;\n        *(size_type *)((int)paVar10 + -4) = 0;\n        paVar10->_M_local_buf[0] = '\0';\n        pVVar23->exact_match = bVar1;\n        pVVar23->was_matched_by_symbol = bVar2;\n        pVVar23 = pVVar23 + 1;\n        paVar10 = paVar17;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)puVar24 == paVar17) goto LAB_00224668;\n      }\n      sVar14 = paVar10->_M_allocated_capacity;\n      sVar15 = *(size_type *)((int)paVar10 + -4);\n      LVar6 = paVar10[1]._M_allocated_capacity;\n      (pVVar23->pattern)._M_dataplus._M_p = pcVar16;\n      (pVVar23->pattern).field_2._M_allocated_capacity = sVar14;\n      (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n      paVar17 = paVar10 + 2;\n      (pVVar23->pattern)._M_string_length = sVar15;\n      pVVar23->language = LVar6;\n      bVar1 = *(bool *)((int)paVar10 + 0x15);\n      pVVar23->exact_match = *(bool *)((int)paVar10 + 0x14);\n      *(size_type *)((int)paVar10 + -4) = 0;\n      paVar10->_M_local_buf[0] = '\0';\n      pVVar23->was_matched_by_symbol = bVar1;\n      pVVar23 = pVVar23 + 1;\n      paVar10 = paVar17;\n    }" { (while_statement "while( true ) {\n        pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n        paVar17 = &(pVVar23->pattern).field_2;\n        (pVVar23->pattern)._M_dataplus._M_p = (pointer)paVar17;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar16 != paVar10) break;\n        uVar21 = *(undefined4 *)((int)paVar10 + 4);\n        uVar20 = *(undefined4 *)((int)paVar10 + 8);\n        uVar18 = *(undefined4 *)((int)paVar10 + 0xc);\n        paVar17->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 4) = uVar21;\n        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 8) = uVar20;\n        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 0xc) = uVar18;\n        (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n        paVar17 = paVar10 + 2;\n        LVar6 = paVar10[1]._M_allocated_capacity;\n        bVar1 = *(bool *)((int)paVar10 + 0x14);\n        bVar2 = *(bool *)((int)paVar10 + 0x15);\n        (pVVar23->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);\n        pVVar23->language = LVar6;\n        *(size_type *)((int)paVar10 + -4) = 0;\n        paVar10->_M_local_buf[0] = '\0';\n        pVVar23->exact_match = bVar1;\n        pVVar23->was_matched_by_symbol = bVar2;\n        pVVar23 = pVVar23 + 1;\n        paVar10 = paVar17;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)puVar24 == paVar17) goto LAB_00224668;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;\n        paVar17 = &(pVVar23->pattern).field_2;\n        (pVVar23->pattern)._M_dataplus._M_p = (pointer)paVar17;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar16 != paVar10) break;\n        uVar21 = *(undefined4 *)((int)paVar10 + 4);\n        uVar20 = *(undefined4 *)((int)paVar10 + 8);\n        uVar18 = *(undefined4 *)((int)paVar10 + 0xc);\n        paVar17->_M_allocated_capacity = paVar10->_M_allocated_capacity;\n        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 4) = uVar21;\n        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 8) = uVar20;\n        *(undefined4 *)((int)&(pVVar23->pattern).field_2 + 0xc) = uVar18;\n        (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;\n        paVar17 = paVar10 + 2;\n        LVar6 = paVar10[1]._M_allocated_capacity;\n        bVar1 = *(bool *)((int)paVar10 + 0x14);\n        bVar2 = *(bool *)((int)paVar10 + 0x15);\n        (pVVar23->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);\n        pVVar23->language = LVar6;\n        *(size_type *)((int)paVar10 + -4) = 0;\n        paVar10->_M_local_buf[0] = '\0';\n        pVVar23->exact_match = bVar1;\n        pVVar23->was_matched_by_symbol = bVar2;\n        pVVar23 = pVVar23 + 1;\n        paVar10 = paVar17;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)puVar24 == paVar17) goto LAB_00224668;\n      }" { (expression_statement "pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p;" (assignment_expression "pcVar16 = (((string *)((int)paVar10 + -8))->_M_dataplus)._M_p" identifier = (field_expression "(((string *)((int)paVar10 + -8))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)((int)paVar10 + -8))->_M_dataplus)" ( (field_expression "((string *)((int)paVar10 + -8))->_M_dataplus" (parenthesized_expression "((string *)((int)paVar10 + -8))" ( (cast_expression "(string *)((int)paVar10 + -8)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + -8)" ( (binary_expression "(int)paVar10 + -8" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier) )) . field_identifier)) ;) (expression_statement "paVar17 = &(pVVar23->pattern).field_2;" (assignment_expression "paVar17 = &(pVVar23->pattern).field_2" identifier = (pointer_expression "&(pVVar23->pattern).field_2" & (field_expression "(pVVar23->pattern).field_2" (parenthesized_expression "(pVVar23->pattern)" ( (field_expression "pVVar23->pattern" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "(pVVar23->pattern)._M_dataplus._M_p = (pointer)paVar17;" (assignment_expression "(pVVar23->pattern)._M_dataplus._M_p = (pointer)paVar17" (field_expression "(pVVar23->pattern)._M_dataplus._M_p" (field_expression "(pVVar23->pattern)._M_dataplus" (parenthesized_expression "(pVVar23->pattern)" ( (field_expression "pVVar23->pattern" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar17" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar16 != paVar10) break;" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar16 != paVar10)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)pcVar16 != 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             *)pcVar16 != paVar10" (binary_expression "allocator<char>_>_9\n             *)pcVar16" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n             *)pcVar16" identifier * (ERROR ")" )) identifier)) != identifier) )) )) (break_statement "break;" break ;)) (expression_statement "uVar21 = *(undefined4 *)((int)paVar10 + 4);" (assignment_expression "uVar21 = *(undefined4 *)((int)paVar10 + 4)" identifier = (pointer_expression "*(undefined4 *)((int)paVar10 + 4)" * (cast_expression "(undefined4 *)((int)paVar10 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + 4)" ( (binary_expression "(int)paVar10 + 4" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar20 = *(undefined4 *)((int)paVar10 + 8);" (assignment_expression "uVar20 = *(undefined4 *)((int)paVar10 + 8)" identifier = (pointer_expression "*(undefined4 *)((int)paVar10 + 8)" * (cast_expression "(undefined4 *)((int)paVar10 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + 8)" ( (binary_expression "(int)paVar10 + 8" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar18 = *(undefined4 *)((int)paVar10 + 0xc);" (assignment_expression "uVar18 = *(undefined4 *)((int)paVar10 + 0xc)" identifier = (pointer_expression "*(undefined4 *)((int)paVar10 + 0xc)" * (cast_expression "(undefined4 *)((int)paVar10 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + 0xc)" ( (binary_expression "(int)paVar10 + 0xc" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "paVar17->_M_allocated_capacity = paVar10->_M_allocated_capacity;" (assignment_expression "paVar17->_M_allocated_capacity = paVar10->_M_allocated_capacity" (field_expression "paVar17->_M_allocated_capacity" identifier -> field_identifier) = (field_expression "paVar10->_M_allocated_capacity" identifier -> field_identifier)) ;) (expression_statement "*(undefined4 *)((int)&(pVVar23->pattern).field_2 + 4) = uVar21;" (assignment_expression "*(undefined4 *)((int)&(pVVar23->pattern).field_2 + 4) = uVar21" (pointer_expression "*(undefined4 *)((int)&(pVVar23->pattern).field_2 + 4)" * (cast_expression "(undefined4 *)((int)&(pVVar23->pattern).field_2 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pVVar23->pattern).field_2 + 4)" ( (binary_expression "(int)&(pVVar23->pattern).field_2 + 4" (cast_expression "(int)&(pVVar23->pattern).field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pVVar23->pattern).field_2" & (field_expression "(pVVar23->pattern).field_2" (parenthesized_expression "(pVVar23->pattern)" ( (field_expression "pVVar23->pattern" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)&(pVVar23->pattern).field_2 + 8) = uVar20;" (assignment_expression "*(undefined4 *)((int)&(pVVar23->pattern).field_2 + 8) = uVar20" (pointer_expression "*(undefined4 *)((int)&(pVVar23->pattern).field_2 + 8)" * (cast_expression "(undefined4 *)((int)&(pVVar23->pattern).field_2 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pVVar23->pattern).field_2 + 8)" ( (binary_expression "(int)&(pVVar23->pattern).field_2 + 8" (cast_expression "(int)&(pVVar23->pattern).field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pVVar23->pattern).field_2" & (field_expression "(pVVar23->pattern).field_2" (parenthesized_expression "(pVVar23->pattern)" ( (field_expression "pVVar23->pattern" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)&(pVVar23->pattern).field_2 + 0xc) = uVar18;" (assignment_expression "*(undefined4 *)((int)&(pVVar23->pattern).field_2 + 0xc) = uVar18" (pointer_expression "*(undefined4 *)((int)&(pVVar23->pattern).field_2 + 0xc)" * (cast_expression "(undefined4 *)((int)&(pVVar23->pattern).field_2 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pVVar23->pattern).field_2 + 0xc)" ( (binary_expression "(int)&(pVVar23->pattern).field_2 + 0xc" (cast_expression "(int)&(pVVar23->pattern).field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pVVar23->pattern).field_2" & (field_expression "(pVVar23->pattern).field_2" (parenthesized_expression "(pVVar23->pattern)" ( (field_expression "pVVar23->pattern" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "(((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;" (assignment_expression "(((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10" (field_expression "(((string *)((int)paVar10 + -8))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)((int)paVar10 + -8))->_M_dataplus)" ( (field_expression "((string *)((int)paVar10 + -8))->_M_dataplus" (parenthesized_expression "((string *)((int)paVar10 + -8))" ( (cast_expression "(string *)((int)paVar10 + -8)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + -8)" ( (binary_expression "(int)paVar10 + -8" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier) )) . field_identifier) = (cast_expression "(pointer)paVar10" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "paVar17 = paVar10 + 2;" (assignment_expression "paVar17 = paVar10 + 2" identifier = (binary_expression "paVar10 + 2" identifier + number_literal)) ;) (expression_statement "LVar6 = paVar10[1]._M_allocated_capacity;" (assignment_expression "LVar6 = paVar10[1]._M_allocated_capacity" identifier = (field_expression "paVar10[1]._M_allocated_capacity" (subscript_expression "paVar10[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "bVar1 = *(bool *)((int)paVar10 + 0x14);" (assignment_expression "bVar1 = *(bool *)((int)paVar10 + 0x14)" identifier = (pointer_expression "*(bool *)((int)paVar10 + 0x14)" * (cast_expression "(bool *)((int)paVar10 + 0x14)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + 0x14)" ( (binary_expression "(int)paVar10 + 0x14" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "bVar2 = *(bool *)((int)paVar10 + 0x15);" (assignment_expression "bVar2 = *(bool *)((int)paVar10 + 0x15)" identifier = (pointer_expression "*(bool *)((int)paVar10 + 0x15)" * (cast_expression "(bool *)((int)paVar10 + 0x15)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + 0x15)" ( (binary_expression "(int)paVar10 + 0x15" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "(pVVar23->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4);" (assignment_expression "(pVVar23->pattern)._M_string_length = *(size_type *)((int)paVar10 + -4)" (field_expression "(pVVar23->pattern)._M_string_length" (parenthesized_expression "(pVVar23->pattern)" ( (field_expression "pVVar23->pattern" identifier -> field_identifier) )) . field_identifier) = (pointer_expression "*(size_type *)((int)paVar10 + -4)" * (cast_expression "(size_type *)((int)paVar10 + -4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + -4)" ( (binary_expression "(int)paVar10 + -4" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pVVar23->language = LVar6;" (assignment_expression "pVVar23->language = LVar6" (field_expression "pVVar23->language" identifier -> field_identifier) = identifier) ;) (expression_statement "*(size_type *)((int)paVar10 + -4) = 0;" (assignment_expression "*(size_type *)((int)paVar10 + -4) = 0" (pointer_expression "*(size_type *)((int)paVar10 + -4)" * (cast_expression "(size_type *)((int)paVar10 + -4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + -4)" ( (binary_expression "(int)paVar10 + -4" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "paVar10->_M_local_buf[0] = '\0';" (assignment_expression "paVar10->_M_local_buf[0] = '\0'" (subscript_expression "paVar10->_M_local_buf[0]" (field_expression "paVar10->_M_local_buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pVVar23->exact_match = bVar1;" (assignment_expression "pVVar23->exact_match = bVar1" (field_expression "pVVar23->exact_match" identifier -> field_identifier) = identifier) ;) (expression_statement "pVVar23->was_matched_by_symbol = bVar2;" (assignment_expression "pVVar23->was_matched_by_symbol = bVar2" (field_expression "pVVar23->was_matched_by_symbol" identifier -> field_identifier) = identifier) ;) (expression_statement "pVVar23 = pVVar23 + 1;" (assignment_expression "pVVar23 = pVVar23 + 1" identifier = (binary_expression "pVVar23 + 1" identifier + number_literal)) ;) (expression_statement "paVar10 = paVar17;" (assignment_expression "paVar10 = paVar17" identifier = identifier) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)puVar24 == paVar17) goto LAB_00224668;" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)puVar24 == paVar17)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)puVar24 == paVar17)" ( (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             *)puVar24 == paVar17" (binary_expression "allocator<char>_>_9\n             *)puVar24" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n             *)puVar24" identifier * (ERROR ")" )) identifier)) == identifier) )) )) (goto_statement "goto LAB_00224668;" goto statement_identifier ;)) })) (expression_statement "sVar14 = paVar10->_M_allocated_capacity;" (assignment_expression "sVar14 = paVar10->_M_allocated_capacity" identifier = (field_expression "paVar10->_M_allocated_capacity" identifier -> field_identifier)) ;) (expression_statement "sVar15 = *(size_type *)((int)paVar10 + -4);" (assignment_expression "sVar15 = *(size_type *)((int)paVar10 + -4)" identifier = (pointer_expression "*(size_type *)((int)paVar10 + -4)" * (cast_expression "(size_type *)((int)paVar10 + -4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + -4)" ( (binary_expression "(int)paVar10 + -4" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "LVar6 = paVar10[1]._M_allocated_capacity;" (assignment_expression "LVar6 = paVar10[1]._M_allocated_capacity" identifier = (field_expression "paVar10[1]._M_allocated_capacity" (subscript_expression "paVar10[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "(pVVar23->pattern)._M_dataplus._M_p = pcVar16;" (assignment_expression "(pVVar23->pattern)._M_dataplus._M_p = pcVar16" (field_expression "(pVVar23->pattern)._M_dataplus._M_p" (field_expression "(pVVar23->pattern)._M_dataplus" (parenthesized_expression "(pVVar23->pattern)" ( (field_expression "pVVar23->pattern" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(pVVar23->pattern).field_2._M_allocated_capacity = sVar14;" (assignment_expression "(pVVar23->pattern).field_2._M_allocated_capacity = sVar14" (field_expression "(pVVar23->pattern).field_2._M_allocated_capacity" (field_expression "(pVVar23->pattern).field_2" (parenthesized_expression "(pVVar23->pattern)" ( (field_expression "pVVar23->pattern" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10;" (assignment_expression "(((string *)((int)paVar10 + -8))->_M_dataplus)._M_p = (pointer)paVar10" (field_expression "(((string *)((int)paVar10 + -8))->_M_dataplus)._M_p" (parenthesized_expression "(((string *)((int)paVar10 + -8))->_M_dataplus)" ( (field_expression "((string *)((int)paVar10 + -8))->_M_dataplus" (parenthesized_expression "((string *)((int)paVar10 + -8))" ( (cast_expression "(string *)((int)paVar10 + -8)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + -8)" ( (binary_expression "(int)paVar10 + -8" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )) -> field_identifier) )) . field_identifier) = (cast_expression "(pointer)paVar10" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "paVar17 = paVar10 + 2;" (assignment_expression "paVar17 = paVar10 + 2" identifier = (binary_expression "paVar10 + 2" identifier + number_literal)) ;) (expression_statement "(pVVar23->pattern)._M_string_length = sVar15;" (assignment_expression "(pVVar23->pattern)._M_string_length = sVar15" (field_expression "(pVVar23->pattern)._M_string_length" (parenthesized_expression "(pVVar23->pattern)" ( (field_expression "pVVar23->pattern" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "pVVar23->language = LVar6;" (assignment_expression "pVVar23->language = LVar6" (field_expression "pVVar23->language" identifier -> field_identifier) = identifier) ;) (expression_statement "bVar1 = *(bool *)((int)paVar10 + 0x15);" (assignment_expression "bVar1 = *(bool *)((int)paVar10 + 0x15)" identifier = (pointer_expression "*(bool *)((int)paVar10 + 0x15)" * (cast_expression "(bool *)((int)paVar10 + 0x15)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + 0x15)" ( (binary_expression "(int)paVar10 + 0x15" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pVVar23->exact_match = *(bool *)((int)paVar10 + 0x14);" (assignment_expression "pVVar23->exact_match = *(bool *)((int)paVar10 + 0x14)" (field_expression "pVVar23->exact_match" identifier -> field_identifier) = (pointer_expression "*(bool *)((int)paVar10 + 0x14)" * (cast_expression "(bool *)((int)paVar10 + 0x14)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + 0x14)" ( (binary_expression "(int)paVar10 + 0x14" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(size_type *)((int)paVar10 + -4) = 0;" (assignment_expression "*(size_type *)((int)paVar10 + -4) = 0" (pointer_expression "*(size_type *)((int)paVar10 + -4)" * (cast_expression "(size_type *)((int)paVar10 + -4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + -4)" ( (binary_expression "(int)paVar10 + -4" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "paVar10->_M_local_buf[0] = '\0';" (assignment_expression "paVar10->_M_local_buf[0] = '\0'" (subscript_expression "paVar10->_M_local_buf[0]" (field_expression "paVar10->_M_local_buf" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pVVar23->was_matched_by_symbol = bVar1;" (assignment_expression "pVVar23->was_matched_by_symbol = bVar1" (field_expression "pVVar23->was_matched_by_symbol" identifier -> field_identifier) = identifier) ;) (expression_statement "pVVar23 = pVVar23 + 1;" (assignment_expression "pVVar23 = pVVar23 + 1" identifier = (binary_expression "pVVar23 + 1" identifier + number_literal)) ;) (expression_statement "paVar10 = paVar17;" (assignment_expression "paVar10 = paVar17" identifier = identifier) ;) }) while (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n              *)puVar24 != paVar17)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n              *)puVar24 != paVar17)" ( (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              *)puVar24 != paVar17" (binary_expression "allocator<char>_>_9\n              *)puVar24" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n              *)puVar24" identifier * (ERROR ")" )) identifier)) != identifier) )) )) ;) (labeled_statement "LAB_00224668:\n    pVVar23 = (this->\n              super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n              )._M_impl._M_finish;" statement_identifier : (expression_statement "pVVar23 = (this->\n              super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n              )._M_impl._M_finish;" (assignment_expression "pVVar23 = (this->\n              super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n              )._M_impl._M_finish" identifier = (field_expression "(this->\n              super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n              )._M_impl._M_finish" (field_expression "(this->\n              super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n              )._M_impl" (parenthesized_expression "(this->\n              super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n              )" ( (ERROR "this->\n              super__Vector_base<gold::Version_expression,_std::allocator<gold::" (comma_expression "this->\n              super__Vector_base<gold::Version_expression,_std" (binary_expression "this->\n              super__Vector_base<gold" (field_expression "this->\n              super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Version_expression" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Version_expression>_>" (binary_expression "Version_expression>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier)) ;)) (expression_statement "pVVar7 = pVVar7 + (uVar29 >> 5) + 1;" (assignment_expression "pVVar7 = pVVar7 + (uVar29 >> 5) + 1" identifier = (binary_expression "pVVar7 + (uVar29 >> 5) + 1" (binary_expression "pVVar7 + (uVar29 >> 5)" identifier + (parenthesized_expression "(uVar29 >> 5)" ( (binary_expression "uVar29 >> 5" identifier >> number_literal) ))) + number_literal)) ;) })) (expression_statement "pVVar22 = (this->\n            super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>)\n            ._M_impl._M_start;" (assignment_expression "pVVar22 = (this->\n            super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>)\n            ._M_impl._M_start" identifier = (field_expression "(this->\n            super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>)\n            ._M_impl._M_start" (field_expression "(this->\n            super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>)\n            ._M_impl" (parenthesized_expression "(this->\n            super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>)" ( (ERROR "this->\n            super__Vector_base<gold::Version_expression,_std::allocator<gold::" (comma_expression "this->\n            super__Vector_base<gold::Version_expression,_std" (binary_expression "this->\n            super__Vector_base<gold" (field_expression "this->\n            super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Version_expression" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Version_expression>_>" (binary_expression "Version_expression>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (pVVar22 != pVVar23) {\n    do {\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)(pVVar22->pattern)._M_dataplus._M_p != &(pVVar22->pattern).field_2) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      pVVar22 = pVVar22 + 1;\n    } while (pVVar22 != pVVar23);\n    pVVar23 = (this->\n              super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n              )._M_impl._M_start;\n  }" if (parenthesized_expression "(pVVar22 != pVVar23)" ( (binary_expression "pVVar22 != pVVar23" identifier != identifier) )) (compound_statement "{\n    do {\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)(pVVar22->pattern)._M_dataplus._M_p != &(pVVar22->pattern).field_2) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      pVVar22 = pVVar22 + 1;\n    } while (pVVar22 != pVVar23);\n    pVVar23 = (this->\n              super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n              )._M_impl._M_start;\n  }" { (do_statement "do {\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)(pVVar22->pattern)._M_dataplus._M_p != &(pVVar22->pattern).field_2) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      pVVar22 = pVVar22 + 1;\n    } while (pVVar22 != pVVar23);" do (compound_statement "{\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)(pVVar22->pattern)._M_dataplus._M_p != &(pVVar22->pattern).field_2) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      pVVar22 = pVVar22 + 1;\n    }" { (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)(pVVar22->pattern)._M_dataplus._M_p != &(pVVar22->pattern).field_2) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)(pVVar22->pattern)._M_dataplus._M_p != &(pVVar22->pattern).field_2)" ( (binary_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)(pVVar22->pattern)._M_dataplus._M_p != &(pVVar22->pattern).field_2" (field_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)(pVVar22->pattern)._M_dataplus._M_p" (field_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)(pVVar22->pattern)._M_dataplus" (call_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)(pVVar22->pattern)" (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 "(pVVar22->pattern)" ( (field_expression "pVVar22->pattern" identifier -> field_identifier) ))) . field_identifier) . field_identifier) != (pointer_expression "&(pVVar22->pattern).field_2" & (field_expression "(pVVar22->pattern).field_2" (parenthesized_expression "(pVVar22->pattern)" ( (field_expression "pVVar22->pattern" identifier -> field_identifier) )) . field_identifier))) )) (compound_statement "{\n        (*(code *)PTR_operator_delete_0043228c)();\n      }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "pVVar22 = pVVar22 + 1;" (assignment_expression "pVVar22 = pVVar22 + 1" identifier = (binary_expression "pVVar22 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pVVar22 != pVVar23)" ( (binary_expression "pVVar22 != pVVar23" identifier != identifier) )) ;) (expression_statement "pVVar23 = (this->\n              super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n              )._M_impl._M_start;" (assignment_expression "pVVar23 = (this->\n              super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n              )._M_impl._M_start" identifier = (field_expression "(this->\n              super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n              )._M_impl._M_start" (field_expression "(this->\n              super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n              )._M_impl" (parenthesized_expression "(this->\n              super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n              )" ( (ERROR "this->\n              super__Vector_base<gold::Version_expression,_std::allocator<gold::" (comma_expression "this->\n              super__Vector_base<gold::Version_expression,_std" (binary_expression "this->\n              super__Vector_base<gold" (field_expression "this->\n              super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Version_expression" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Version_expression>_>" (binary_expression "Version_expression>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) })) (if_statement "if (pVVar23 != (pointer)0x0) {\n    (*(code *)PTR_operator_delete_0043228c)(pVVar23);\n  }" if (parenthesized_expression "(pVVar23 != (pointer)0x0)" ( (binary_expression "pVVar23 != (pointer)0x0" identifier != (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n    (*(code *)PTR_operator_delete_0043228c)(pVVar23);\n  }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)(pVVar23);" (call_expression "(*(code *)PTR_operator_delete_0043228c)(pVVar23)" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pVVar23)" ( identifier ))) ;) })) (expression_statement "(this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>).\n  _M_impl._M_start = pVVar12;" (assignment_expression "(this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>).\n  _M_impl._M_start = pVVar12" (field_expression "(this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>).\n  _M_impl._M_start" (field_expression "(this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>).\n  _M_impl" (parenthesized_expression "(this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>)" ( (ERROR "this->super__Vector_base<gold::Version_expression,_std::allocator<gold::" (comma_expression "this->super__Vector_base<gold::Version_expression,_std" (binary_expression "this->super__Vector_base<gold" (field_expression "this->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Version_expression" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Version_expression>_>" (binary_expression "Version_expression>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>).\n  _M_impl._M_finish = pVVar7;" (assignment_expression "(this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>).\n  _M_impl._M_finish = pVVar7" (field_expression "(this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>).\n  _M_impl._M_finish" (field_expression "(this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>).\n  _M_impl" (parenthesized_expression "(this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>)" ( (ERROR "this->super__Vector_base<gold::Version_expression,_std::allocator<gold::" (comma_expression "this->super__Vector_base<gold::Version_expression,_std" (binary_expression "this->super__Vector_base<gold" (field_expression "this->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Version_expression" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Version_expression>_>" (binary_expression "Version_expression>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>).\n  _M_impl._M_end_of_storage = pVVar12 + uVar30;" (assignment_expression "(this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>).\n  _M_impl._M_end_of_storage = pVVar12 + uVar30" (field_expression "(this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>).\n  _M_impl._M_end_of_storage" (field_expression "(this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>).\n  _M_impl" (parenthesized_expression "(this->super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>)" ( (ERROR "this->super__Vector_base<gold::Version_expression,_std::allocator<gold::" (comma_expression "this->super__Vector_base<gold::Version_expression,_std" (binary_expression "this->super__Vector_base<gold" (field_expression "this->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Version_expression" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Version_expression>_>" (binary_expression "Version_expression>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier) = (binary_expression "pVVar12 + uVar30" identifier + identifier)) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void std::vector<gold::Version_expression,std::allocator<gold::Version_expression>>::\n     _M_range_insert<__normal_iterator<gold::Version_expression*,std::vector<gold::Version_expression,std::allocator<gold::Version_expression>>>>\n               (undefined4 *param_1,undefined4 *param_2,int *param_3,int *param_4)\n\n{\n  undefined1 uVar1;\n  undefined1 uVar2;\n  code *pcVar3;\n  undefined *puVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  uint uVar7;\n  undefined4 *puVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  undefined4 *puVar11;\n  undefined4 *puVar12;\n  undefined4 uVar13;\n  undefined4 *puVar14;\n  undefined4 *puVar15;\n  int *piVar16;\n  int *piVar17;\n  int iVar18;\n  int iVar19;\n  uint uVar20;\n  uint uVar21;\n  \n  puVar4 = PTR__M_construct<char*>_0043248c;\n  if (param_3 == param_4) {\n    return;\n  }\n  puVar8 = (undefined4 *)param_1[1];\n  iVar18 = (int)param_4 - (int)param_3;\n  uVar20 = iVar18 >> 5;\n  if (uVar20 <= (uint)(param_1[2] - (int)puVar8 >> 5)) {\n    iVar5 = (int)puVar8 - (int)param_2;\n    uVar21 = iVar5 >> 5;\n    if (uVar20 < uVar21) {\n      puVar6 = (undefined4 *)((int)puVar8 + (8 - iVar18));\n      puVar12 = puVar8;\n      do {\n        while( true ) {\n          *puVar12 = puVar12 + 2;\n          if ((undefined4 *)puVar6[-2] != puVar6) break;\n          uVar13 = puVar6[1];\n          uVar10 = puVar6[2];\n          uVar9 = puVar6[3];\n          puVar12[2] = *puVar6;\n          puVar12[3] = uVar13;\n          puVar12[4] = uVar10;\n          puVar12[5] = uVar9;\n          uVar1 = *(undefined1 *)(puVar6 + 5);\n          uVar9 = puVar6[4];\n          puVar12[1] = puVar6[-1];\n          puVar6[-2] = puVar6;\n          puVar14 = puVar6 + 8;\n          puVar6[-1] = 0;\n          *(undefined1 *)puVar6 = 0;\n          *(undefined1 *)(puVar12 + 7) = uVar1;\n          puVar12[6] = uVar9;\n          *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar14;\n          puVar12 = puVar12 + 8;\n          if (puVar8 + 2 == puVar14) goto LAB_002247fc;\n        }\n        *puVar12 = (undefined4 *)puVar6[-2];\n        uVar1 = *(undefined1 *)(puVar6 + 5);\n        puVar12[2] = *puVar6;\n        uVar9 = puVar6[4];\n        puVar12[1] = puVar6[-1];\n        puVar6[-2] = puVar6;\n        puVar14 = puVar6 + 8;\n        puVar6[-1] = 0;\n        *(undefined1 *)puVar6 = 0;\n        *(undefined1 *)(puVar12 + 7) = uVar1;\n        puVar12[6] = uVar9;\n        *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n        puVar6 = puVar14;\n        puVar12 = puVar12 + 8;\n      } while (puVar8 + 2 != puVar14);\nLAB_002247fc:\n      iVar5 = (int)puVar8 + (-(int)param_2 - iVar18);\n      iVar19 = iVar5 >> 5;\n      param_1[1] = param_1[1] + iVar18;\n      if (0 < iVar5) {\n        puVar6 = (undefined4 *)((int)puVar8 + (-0x18 - iVar18));\n        puVar8 = puVar8 + -6;\n        do {\n          while( true ) {\n            puVar12 = (undefined4 *)puVar8[-2];\n            if ((undefined4 *)puVar6[-2] != puVar6) break;\n            iVar5 = puVar6[-1];\n            if (iVar5 != 0) {\n              if (iVar5 == 1) {\n                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n            }\n            puVar8[-1] = iVar5;\n            *(undefined1 *)((int)puVar12 + iVar5) = 0;\n            iVar19 = iVar19 + -1;\n            puVar6[-1] = 0;\n            *(undefined1 *)puVar6[-2] = 0;\n            uVar9 = puVar6[4];\n            *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n            puVar8[4] = uVar9;\n            *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n            puVar6 = puVar6 + -8;\n            puVar8 = puVar8 + -8;\n            if (iVar19 == 0) goto LAB_002248f8;\n          }\n          puVar8[-2] = (undefined4 *)puVar6[-2];\n          if (puVar12 == puVar8) {\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\nLAB_0022497c:\n            puVar6[-2] = puVar6;\n          }\n          else {\n            uVar9 = *puVar8;\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\n            if (puVar12 == (undefined4 *)0x0) goto LAB_0022497c;\n            puVar6[-2] = puVar12;\n            *puVar6 = uVar9;\n          }\n          puVar6[-1] = 0;\n          iVar19 = iVar19 + -1;\n          *(undefined1 *)puVar6[-2] = 0;\n          uVar9 = puVar6[4];\n          *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n          puVar8[4] = uVar9;\n          *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar6 + -8;\n          puVar8 = puVar8 + -8;\n        } while (iVar19 != 0);\n      }\nLAB_002248f8:\n      if (0 < iVar18) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar20 = uVar20 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar20 != 0);\n        return;\n      }\n    }\n    else {\n      piVar16 = (int *)((int)param_3 + iVar5);\n      puVar6 = puVar8;\n      if (piVar16 != param_4) {\n        do {\n          *puVar6 = puVar6 + 2;\n                    \n          (*(code *)puVar4)(puVar6,*piVar16,*piVar16 + piVar16[1],0);\n          piVar17 = piVar16 + 8;\n          iVar18 = piVar16[6];\n          *(undefined1 *)(puVar6 + 7) = *(undefined1 *)(piVar16 + 7);\n          puVar6[6] = iVar18;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)piVar16 + 0x1d);\n          piVar16 = piVar17;\n          puVar6 = puVar6 + 8;\n        } while (param_4 != piVar17);\n        puVar6 = (undefined4 *)param_1[1];\n      }\n      puVar6 = puVar6 + (uVar20 - uVar21) * 8;\n      param_1[1] = puVar6;\n      if (puVar8 != param_2) {\n        puVar12 = param_2 + 2;\n        do {\n          while( true ) {\n            *puVar6 = puVar6 + 2;\n            if (puVar12 != (undefined4 *)puVar12[-2]) break;\n            uVar13 = puVar12[1];\n            uVar10 = puVar12[2];\n            uVar9 = puVar12[3];\n            puVar6[2] = *puVar12;\n            puVar6[3] = uVar13;\n            puVar6[4] = uVar10;\n            puVar6[5] = uVar9;\n            uVar1 = *(undefined1 *)(puVar12 + 5);\n            uVar9 = puVar12[4];\n            puVar6[1] = puVar12[-1];\n            puVar12[-2] = puVar12;\n            puVar14 = puVar12 + 8;\n            puVar12[-1] = 0;\n            *(undefined1 *)puVar12 = 0;\n            *(undefined1 *)(puVar6 + 7) = uVar1;\n            puVar6[6] = uVar9;\n            *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n            puVar12 = puVar14;\n            puVar6 = puVar6 + 8;\n            if (puVar8 + 2 == puVar14) goto LAB_00224324;\n          }\n          *puVar6 = (undefined4 *)puVar12[-2];\n          uVar1 = *(undefined1 *)(puVar12 + 5);\n          puVar6[2] = *puVar12;\n          uVar9 = puVar12[4];\n          puVar6[1] = puVar12[-1];\n          puVar12[-2] = puVar12;\n          puVar14 = puVar12 + 8;\n          puVar12[-1] = 0;\n          *(undefined1 *)puVar12 = 0;\n          *(undefined1 *)(puVar6 + 7) = uVar1;\n          puVar6[6] = uVar9;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n          puVar12 = puVar14;\n          puVar6 = puVar6 + 8;\n        } while (puVar8 + 2 != puVar14);\nLAB_00224324:\n        puVar6 = (undefined4 *)param_1[1];\n      }\n      param_1[1] = (int)puVar6 + iVar5;\n      if (0 < iVar5) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar21 = uVar21 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar21 != 0);\n      }\n    }\n    return;\n  }\n  puVar6 = (undefined4 *)*param_1;\n  uVar21 = 0x7ffffff;\n  uVar7 = (int)puVar8 - (int)puVar6 >> 5;\n  if (0x7ffffff - uVar7 < uVar20) {\n    (*(code *)PTR___throw_length_error_00432480)(PTR_DAT_0043226c + -0x6b60);\n    return;\n  }\n  if (uVar20 < uVar7) {\n    uVar20 = uVar7;\n  }\n  uVar20 = uVar20 + uVar7;\n  if ((uVar20 < uVar7) || (0x7ffffff < uVar20)) {\n    iVar18 = -0x20;\n  }\n  else {\n    puVar8 = (undefined4 *)0x0;\n    uVar21 = uVar20;\n    if (uVar20 == 0) goto LAB_00224414;\n    iVar18 = uVar20 * 0x20;\n  }\n  puVar8 = (undefined4 *)(*(code *)PTR_operator_new_0043233c)(iVar18);\n  puVar6 = (undefined4 *)*param_1;\nLAB_00224414:\n  puVar12 = puVar8;\n  pcVar3 = (code *)PTR__M_construct<char*>_0043248c;\n  if (puVar6 != param_2) {\n    puVar12 = puVar6 + 2;\n    puVar14 = puVar8;\n    do {\n      while( true ) {\n        *puVar14 = puVar14 + 2;\n        if ((undefined4 *)puVar12[-2] != puVar12) break;\n        uVar13 = puVar12[1];\n        uVar10 = puVar12[2];\n        uVar9 = puVar12[3];\n        puVar14[2] = *puVar12;\n        puVar14[3] = uVar13;\n        puVar14[4] = uVar10;\n        puVar14[5] = uVar9;\n        uVar1 = *(undefined1 *)(puVar12 + 5);\n        uVar9 = puVar12[4];\n        puVar14[1] = puVar12[-1];\n        puVar12[-2] = puVar12;\n        puVar15 = puVar12 + 8;\n        puVar12[-1] = 0;\n        *(undefined1 *)puVar12 = 0;\n        *(undefined1 *)(puVar14 + 7) = uVar1;\n        puVar14[6] = uVar9;\n        *(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n        puVar12 = puVar15;\n        puVar14 = puVar14 + 8;\n        if (puVar15 == param_2 + 2) goto LAB_00224504;\n      }\n      *puVar14 = (undefined4 *)puVar12[-2];\n      uVar1 = *(undefined1 *)(puVar12 + 5);\n      puVar14[2] = *puVar12;\n      uVar9 = puVar12[4];\n      puVar14[1] = puVar12[-1];\n      puVar12[-2] = puVar12;\n      puVar15 = puVar12 + 8;\n      puVar12[-1] = 0;\n      *(undefined1 *)puVar12 = 0;\n      *(undefined1 *)(puVar14 + 7) = uVar1;\n      puVar14[6] = uVar9;\n      *(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n      puVar12 = puVar15;\n      puVar14 = puVar14 + 8;\n    } while (puVar15 != param_2 + 2);\nLAB_00224504:\n    puVar12 = puVar8 + (((uint)((int)param_2 + (-0x20 - (int)puVar6)) >> 5) + 1) * 8;\n    pcVar3 = (code *)PTR__M_construct<char*>_0043248c;\n  }\n  do {\n    iVar18 = *param_3;\n    iVar5 = param_3[1];\n    *puVar12 = puVar12 + 2;\n                    \n    (*pcVar3)(puVar12,iVar18,iVar18 + iVar5,0);\n    piVar16 = param_3 + 8;\n    puVar6 = puVar12 + 8;\n    uVar1 = *(undefined1 *)(param_3 + 7);\n    uVar2 = *(undefined1 *)((int)param_3 + 0x1d);\n    puVar12[6] = param_3[6];\n    *(undefined1 *)(puVar12 + 7) = uVar1;\n    *(undefined1 *)((int)puVar12 + 0x1d) = uVar2;\n    param_3 = piVar16;\n    puVar12 = puVar6;\n  } while (param_4 != piVar16);\n  puVar12 = (undefined4 *)param_1[1];\n  if (puVar12 != param_2) {\n    uVar20 = (int)puVar12 + (-0x20 - (int)param_2);\n    puVar15 = (undefined4 *)((int)param_2 + uVar20 + 0x28);\n    puVar12 = puVar6;\n    puVar14 = param_2 + 2;\n    do {\n      while( true ) {\n        puVar11 = (undefined4 *)puVar14[-2];\n        *puVar12 = puVar12 + 2;\n        if (puVar11 != puVar14) break;\n        uVar13 = puVar14[1];\n        uVar10 = puVar14[2];\n        uVar9 = puVar14[3];\n        puVar12[2] = *puVar14;\n        puVar12[3] = uVar13;\n        puVar12[4] = uVar10;\n        puVar12[5] = uVar9;\n        puVar14[-2] = puVar14;\n        puVar11 = puVar14 + 8;\n        uVar9 = puVar14[4];\n        uVar1 = *(undefined1 *)(puVar14 + 5);\n        uVar2 = *(undefined1 *)((int)puVar14 + 0x15);\n        puVar12[1] = puVar14[-1];\n        puVar12[6] = uVar9;\n        puVar14[-1] = 0;\n        *(undefined1 *)puVar14 = 0;\n        *(undefined1 *)(puVar12 + 7) = uVar1;\n        *(undefined1 *)((int)puVar12 + 0x1d) = uVar2;\n        puVar12 = puVar12 + 8;\n        puVar14 = puVar11;\n        if (puVar15 == puVar11) goto LAB_00224668;\n      }\n      uVar9 = *puVar14;\n      uVar13 = puVar14[-1];\n      uVar10 = puVar14[4];\n      *puVar12 = puVar11;\n      puVar12[2] = uVar9;\n      puVar14[-2] = puVar14;\n      puVar11 = puVar14 + 8;\n      puVar12[1] = uVar13;\n      puVar12[6] = uVar10;\n      uVar1 = *(undefined1 *)((int)puVar14 + 0x15);\n      *(undefined1 *)(puVar12 + 7) = *(undefined1 *)(puVar14 + 5);\n      puVar14[-1] = 0;\n      *(undefined1 *)puVar14 = 0;\n      *(undefined1 *)((int)puVar12 + 0x1d) = uVar1;\n      puVar12 = puVar12 + 8;\n      puVar14 = puVar11;\n    } while (puVar15 != puVar11);\nLAB_00224668:\n    puVar12 = (undefined4 *)param_1[1];\n    puVar6 = puVar6 + ((uVar20 >> 5) + 1) * 8;\n  }\n  puVar14 = (undefined4 *)*param_1;\n  if (puVar14 != puVar12) {\n    do {\n      if ((undefined4 *)*puVar14 != puVar14 + 2) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      puVar14 = puVar14 + 8;\n    } while (puVar14 != puVar12);\n    puVar12 = (undefined4 *)*param_1;\n  }\n  if (puVar12 != (undefined4 *)0x0) {\n    (*(code *)PTR_operator_delete_0043228c)(puVar12);\n  }\n  *param_1 = puVar8;\n  param_1[1] = puVar6;\n  param_1[2] = puVar8 + uVar21 * 8;\n  return;\n}\n\n" (declaration "void std::vector<gold::Version_expression,std::allocator<gold::Version_expression>>::\n     _M_range_insert<__normal_iterator<gold::Version_expression*,std::vector<gold::Version_expression,std::allocator<gold::Version_expression>>>>\n               (undefined4 *param_1,undefined4 *param_2,int *param_3,int *param_4)\n\n{\n  undefined1 uVar1;" primitive_type (ERROR "std::vector<gold::" identifier : : identifier < identifier : :) identifier , (ERROR "std::allocator<gold::Version_expression>>::\n     _M_range_insert<__normal_iterator<gold::" identifier : : identifier < identifier : : identifier >> : : identifier < identifier < identifier : :) identifier (ERROR "*" *) , (ERROR "std::vector<gold::" identifier : : identifier < identifier : :) identifier , (ERROR "std::allocator<gold::Version_expression>>>>\n               (undefined4 *param_1,undefined4 *param_2,int *param_3,int *param_4)\n\n{\n  undefined1" identifier : : identifier < identifier : : (function_declarator "Version_expression>>>>\n               (undefined4 *param_1,undefined4 *param_2,int *param_3,int *param_4)" identifier (ERROR ">>>>" >> >>) (parameter_list "(undefined4 *param_1,undefined4 *param_2,int *param_3,int *param_4)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) ))) { identifier) identifier ;) (declaration "undefined1 uVar2;" type_identifier identifier ;) (declaration "code *pcVar3;" type_identifier (pointer_declarator "*pcVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "undefined4 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined4 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined4 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "uint uVar21;" type_identifier identifier ;) (expression_statement "puVar4 = PTR__M_construct<char*>_0043248c;" (assignment_expression "puVar4 = PTR__M_construct<char*>_0043248c" identifier = (binary_expression "PTR__M_construct<char*>_0043248c" (binary_expression "PTR__M_construct<char" identifier < identifier) (ERROR "*" *) > identifier)) ;) (if_statement "if (param_3 == param_4) {\n    return;\n  }" if (parenthesized_expression "(param_3 == param_4)" ( (binary_expression "param_3 == param_4" identifier == identifier) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "puVar8 = (undefined4 *)param_1[1];" (assignment_expression "puVar8 = (undefined4 *)param_1[1]" identifier = (cast_expression "(undefined4 *)param_1[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (expression_statement "iVar18 = (int)param_4 - (int)param_3;" (assignment_expression "iVar18 = (int)param_4 - (int)param_3" identifier = (binary_expression "(int)param_4 - (int)param_3" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar20 = iVar18 >> 5;" (assignment_expression "uVar20 = iVar18 >> 5" identifier = (binary_expression "iVar18 >> 5" identifier >> number_literal)) ;) (if_statement "if (uVar20 <= (uint)(param_1[2] - (int)puVar8 >> 5)) {\n    iVar5 = (int)puVar8 - (int)param_2;\n    uVar21 = iVar5 >> 5;\n    if (uVar20 < uVar21) {\n      puVar6 = (undefined4 *)((int)puVar8 + (8 - iVar18));\n      puVar12 = puVar8;\n      do {\n        while( true ) {\n          *puVar12 = puVar12 + 2;\n          if ((undefined4 *)puVar6[-2] != puVar6) break;\n          uVar13 = puVar6[1];\n          uVar10 = puVar6[2];\n          uVar9 = puVar6[3];\n          puVar12[2] = *puVar6;\n          puVar12[3] = uVar13;\n          puVar12[4] = uVar10;\n          puVar12[5] = uVar9;\n          uVar1 = *(undefined1 *)(puVar6 + 5);\n          uVar9 = puVar6[4];\n          puVar12[1] = puVar6[-1];\n          puVar6[-2] = puVar6;\n          puVar14 = puVar6 + 8;\n          puVar6[-1] = 0;\n          *(undefined1 *)puVar6 = 0;\n          *(undefined1 *)(puVar12 + 7) = uVar1;\n          puVar12[6] = uVar9;\n          *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar14;\n          puVar12 = puVar12 + 8;\n          if (puVar8 + 2 == puVar14) goto LAB_002247fc;\n        }\n        *puVar12 = (undefined4 *)puVar6[-2];\n        uVar1 = *(undefined1 *)(puVar6 + 5);\n        puVar12[2] = *puVar6;\n        uVar9 = puVar6[4];\n        puVar12[1] = puVar6[-1];\n        puVar6[-2] = puVar6;\n        puVar14 = puVar6 + 8;\n        puVar6[-1] = 0;\n        *(undefined1 *)puVar6 = 0;\n        *(undefined1 *)(puVar12 + 7) = uVar1;\n        puVar12[6] = uVar9;\n        *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n        puVar6 = puVar14;\n        puVar12 = puVar12 + 8;\n      } while (puVar8 + 2 != puVar14);\nLAB_002247fc:\n      iVar5 = (int)puVar8 + (-(int)param_2 - iVar18);\n      iVar19 = iVar5 >> 5;\n      param_1[1] = param_1[1] + iVar18;\n      if (0 < iVar5) {\n        puVar6 = (undefined4 *)((int)puVar8 + (-0x18 - iVar18));\n        puVar8 = puVar8 + -6;\n        do {\n          while( true ) {\n            puVar12 = (undefined4 *)puVar8[-2];\n            if ((undefined4 *)puVar6[-2] != puVar6) break;\n            iVar5 = puVar6[-1];\n            if (iVar5 != 0) {\n              if (iVar5 == 1) {\n                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n            }\n            puVar8[-1] = iVar5;\n            *(undefined1 *)((int)puVar12 + iVar5) = 0;\n            iVar19 = iVar19 + -1;\n            puVar6[-1] = 0;\n            *(undefined1 *)puVar6[-2] = 0;\n            uVar9 = puVar6[4];\n            *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n            puVar8[4] = uVar9;\n            *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n            puVar6 = puVar6 + -8;\n            puVar8 = puVar8 + -8;\n            if (iVar19 == 0) goto LAB_002248f8;\n          }\n          puVar8[-2] = (undefined4 *)puVar6[-2];\n          if (puVar12 == puVar8) {\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\nLAB_0022497c:\n            puVar6[-2] = puVar6;\n          }\n          else {\n            uVar9 = *puVar8;\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\n            if (puVar12 == (undefined4 *)0x0) goto LAB_0022497c;\n            puVar6[-2] = puVar12;\n            *puVar6 = uVar9;\n          }\n          puVar6[-1] = 0;\n          iVar19 = iVar19 + -1;\n          *(undefined1 *)puVar6[-2] = 0;\n          uVar9 = puVar6[4];\n          *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n          puVar8[4] = uVar9;\n          *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar6 + -8;\n          puVar8 = puVar8 + -8;\n        } while (iVar19 != 0);\n      }\nLAB_002248f8:\n      if (0 < iVar18) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar20 = uVar20 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar20 != 0);\n        return;\n      }\n    }\n    else {\n      piVar16 = (int *)((int)param_3 + iVar5);\n      puVar6 = puVar8;\n      if (piVar16 != param_4) {\n        do {\n          *puVar6 = puVar6 + 2;\n                    \n          (*(code *)puVar4)(puVar6,*piVar16,*piVar16 + piVar16[1],0);\n          piVar17 = piVar16 + 8;\n          iVar18 = piVar16[6];\n          *(undefined1 *)(puVar6 + 7) = *(undefined1 *)(piVar16 + 7);\n          puVar6[6] = iVar18;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)piVar16 + 0x1d);\n          piVar16 = piVar17;\n          puVar6 = puVar6 + 8;\n        } while (param_4 != piVar17);\n        puVar6 = (undefined4 *)param_1[1];\n      }\n      puVar6 = puVar6 + (uVar20 - uVar21) * 8;\n      param_1[1] = puVar6;\n      if (puVar8 != param_2) {\n        puVar12 = param_2 + 2;\n        do {\n          while( true ) {\n            *puVar6 = puVar6 + 2;\n            if (puVar12 != (undefined4 *)puVar12[-2]) break;\n            uVar13 = puVar12[1];\n            uVar10 = puVar12[2];\n            uVar9 = puVar12[3];\n            puVar6[2] = *puVar12;\n            puVar6[3] = uVar13;\n            puVar6[4] = uVar10;\n            puVar6[5] = uVar9;\n            uVar1 = *(undefined1 *)(puVar12 + 5);\n            uVar9 = puVar12[4];\n            puVar6[1] = puVar12[-1];\n            puVar12[-2] = puVar12;\n            puVar14 = puVar12 + 8;\n            puVar12[-1] = 0;\n            *(undefined1 *)puVar12 = 0;\n            *(undefined1 *)(puVar6 + 7) = uVar1;\n            puVar6[6] = uVar9;\n            *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n            puVar12 = puVar14;\n            puVar6 = puVar6 + 8;\n            if (puVar8 + 2 == puVar14) goto LAB_00224324;\n          }\n          *puVar6 = (undefined4 *)puVar12[-2];\n          uVar1 = *(undefined1 *)(puVar12 + 5);\n          puVar6[2] = *puVar12;\n          uVar9 = puVar12[4];\n          puVar6[1] = puVar12[-1];\n          puVar12[-2] = puVar12;\n          puVar14 = puVar12 + 8;\n          puVar12[-1] = 0;\n          *(undefined1 *)puVar12 = 0;\n          *(undefined1 *)(puVar6 + 7) = uVar1;\n          puVar6[6] = uVar9;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n          puVar12 = puVar14;\n          puVar6 = puVar6 + 8;\n        } while (puVar8 + 2 != puVar14);\nLAB_00224324:\n        puVar6 = (undefined4 *)param_1[1];\n      }\n      param_1[1] = (int)puVar6 + iVar5;\n      if (0 < iVar5) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar21 = uVar21 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar21 != 0);\n      }\n    }\n    return;\n  }" if (parenthesized_expression "(uVar20 <= (uint)(param_1[2] - (int)puVar8 >> 5))" ( (binary_expression "uVar20 <= (uint)(param_1[2] - (int)puVar8 >> 5)" identifier <= (call_expression "(uint)(param_1[2] - (int)puVar8 >> 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_1[2] - (int)puVar8 >> 5)" ( (binary_expression "param_1[2] - (int)puVar8 >> 5" (binary_expression "param_1[2] - (int)puVar8" (subscript_expression "param_1[2]" identifier [ number_literal ]) - (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )))) )) (compound_statement "{\n    iVar5 = (int)puVar8 - (int)param_2;\n    uVar21 = iVar5 >> 5;\n    if (uVar20 < uVar21) {\n      puVar6 = (undefined4 *)((int)puVar8 + (8 - iVar18));\n      puVar12 = puVar8;\n      do {\n        while( true ) {\n          *puVar12 = puVar12 + 2;\n          if ((undefined4 *)puVar6[-2] != puVar6) break;\n          uVar13 = puVar6[1];\n          uVar10 = puVar6[2];\n          uVar9 = puVar6[3];\n          puVar12[2] = *puVar6;\n          puVar12[3] = uVar13;\n          puVar12[4] = uVar10;\n          puVar12[5] = uVar9;\n          uVar1 = *(undefined1 *)(puVar6 + 5);\n          uVar9 = puVar6[4];\n          puVar12[1] = puVar6[-1];\n          puVar6[-2] = puVar6;\n          puVar14 = puVar6 + 8;\n          puVar6[-1] = 0;\n          *(undefined1 *)puVar6 = 0;\n          *(undefined1 *)(puVar12 + 7) = uVar1;\n          puVar12[6] = uVar9;\n          *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar14;\n          puVar12 = puVar12 + 8;\n          if (puVar8 + 2 == puVar14) goto LAB_002247fc;\n        }\n        *puVar12 = (undefined4 *)puVar6[-2];\n        uVar1 = *(undefined1 *)(puVar6 + 5);\n        puVar12[2] = *puVar6;\n        uVar9 = puVar6[4];\n        puVar12[1] = puVar6[-1];\n        puVar6[-2] = puVar6;\n        puVar14 = puVar6 + 8;\n        puVar6[-1] = 0;\n        *(undefined1 *)puVar6 = 0;\n        *(undefined1 *)(puVar12 + 7) = uVar1;\n        puVar12[6] = uVar9;\n        *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n        puVar6 = puVar14;\n        puVar12 = puVar12 + 8;\n      } while (puVar8 + 2 != puVar14);\nLAB_002247fc:\n      iVar5 = (int)puVar8 + (-(int)param_2 - iVar18);\n      iVar19 = iVar5 >> 5;\n      param_1[1] = param_1[1] + iVar18;\n      if (0 < iVar5) {\n        puVar6 = (undefined4 *)((int)puVar8 + (-0x18 - iVar18));\n        puVar8 = puVar8 + -6;\n        do {\n          while( true ) {\n            puVar12 = (undefined4 *)puVar8[-2];\n            if ((undefined4 *)puVar6[-2] != puVar6) break;\n            iVar5 = puVar6[-1];\n            if (iVar5 != 0) {\n              if (iVar5 == 1) {\n                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n            }\n            puVar8[-1] = iVar5;\n            *(undefined1 *)((int)puVar12 + iVar5) = 0;\n            iVar19 = iVar19 + -1;\n            puVar6[-1] = 0;\n            *(undefined1 *)puVar6[-2] = 0;\n            uVar9 = puVar6[4];\n            *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n            puVar8[4] = uVar9;\n            *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n            puVar6 = puVar6 + -8;\n            puVar8 = puVar8 + -8;\n            if (iVar19 == 0) goto LAB_002248f8;\n          }\n          puVar8[-2] = (undefined4 *)puVar6[-2];\n          if (puVar12 == puVar8) {\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\nLAB_0022497c:\n            puVar6[-2] = puVar6;\n          }\n          else {\n            uVar9 = *puVar8;\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\n            if (puVar12 == (undefined4 *)0x0) goto LAB_0022497c;\n            puVar6[-2] = puVar12;\n            *puVar6 = uVar9;\n          }\n          puVar6[-1] = 0;\n          iVar19 = iVar19 + -1;\n          *(undefined1 *)puVar6[-2] = 0;\n          uVar9 = puVar6[4];\n          *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n          puVar8[4] = uVar9;\n          *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar6 + -8;\n          puVar8 = puVar8 + -8;\n        } while (iVar19 != 0);\n      }\nLAB_002248f8:\n      if (0 < iVar18) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar20 = uVar20 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar20 != 0);\n        return;\n      }\n    }\n    else {\n      piVar16 = (int *)((int)param_3 + iVar5);\n      puVar6 = puVar8;\n      if (piVar16 != param_4) {\n        do {\n          *puVar6 = puVar6 + 2;\n                    \n          (*(code *)puVar4)(puVar6,*piVar16,*piVar16 + piVar16[1],0);\n          piVar17 = piVar16 + 8;\n          iVar18 = piVar16[6];\n          *(undefined1 *)(puVar6 + 7) = *(undefined1 *)(piVar16 + 7);\n          puVar6[6] = iVar18;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)piVar16 + 0x1d);\n          piVar16 = piVar17;\n          puVar6 = puVar6 + 8;\n        } while (param_4 != piVar17);\n        puVar6 = (undefined4 *)param_1[1];\n      }\n      puVar6 = puVar6 + (uVar20 - uVar21) * 8;\n      param_1[1] = puVar6;\n      if (puVar8 != param_2) {\n        puVar12 = param_2 + 2;\n        do {\n          while( true ) {\n            *puVar6 = puVar6 + 2;\n            if (puVar12 != (undefined4 *)puVar12[-2]) break;\n            uVar13 = puVar12[1];\n            uVar10 = puVar12[2];\n            uVar9 = puVar12[3];\n            puVar6[2] = *puVar12;\n            puVar6[3] = uVar13;\n            puVar6[4] = uVar10;\n            puVar6[5] = uVar9;\n            uVar1 = *(undefined1 *)(puVar12 + 5);\n            uVar9 = puVar12[4];\n            puVar6[1] = puVar12[-1];\n            puVar12[-2] = puVar12;\n            puVar14 = puVar12 + 8;\n            puVar12[-1] = 0;\n            *(undefined1 *)puVar12 = 0;\n            *(undefined1 *)(puVar6 + 7) = uVar1;\n            puVar6[6] = uVar9;\n            *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n            puVar12 = puVar14;\n            puVar6 = puVar6 + 8;\n            if (puVar8 + 2 == puVar14) goto LAB_00224324;\n          }\n          *puVar6 = (undefined4 *)puVar12[-2];\n          uVar1 = *(undefined1 *)(puVar12 + 5);\n          puVar6[2] = *puVar12;\n          uVar9 = puVar12[4];\n          puVar6[1] = puVar12[-1];\n          puVar12[-2] = puVar12;\n          puVar14 = puVar12 + 8;\n          puVar12[-1] = 0;\n          *(undefined1 *)puVar12 = 0;\n          *(undefined1 *)(puVar6 + 7) = uVar1;\n          puVar6[6] = uVar9;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n          puVar12 = puVar14;\n          puVar6 = puVar6 + 8;\n        } while (puVar8 + 2 != puVar14);\nLAB_00224324:\n        puVar6 = (undefined4 *)param_1[1];\n      }\n      param_1[1] = (int)puVar6 + iVar5;\n      if (0 < iVar5) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar21 = uVar21 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar21 != 0);\n      }\n    }\n    return;\n  }" { (expression_statement "iVar5 = (int)puVar8 - (int)param_2;" (assignment_expression "iVar5 = (int)puVar8 - (int)param_2" identifier = (binary_expression "(int)puVar8 - (int)param_2" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar21 = iVar5 >> 5;" (assignment_expression "uVar21 = iVar5 >> 5" identifier = (binary_expression "iVar5 >> 5" identifier >> number_literal)) ;) (if_statement "if (uVar20 < uVar21) {\n      puVar6 = (undefined4 *)((int)puVar8 + (8 - iVar18));\n      puVar12 = puVar8;\n      do {\n        while( true ) {\n          *puVar12 = puVar12 + 2;\n          if ((undefined4 *)puVar6[-2] != puVar6) break;\n          uVar13 = puVar6[1];\n          uVar10 = puVar6[2];\n          uVar9 = puVar6[3];\n          puVar12[2] = *puVar6;\n          puVar12[3] = uVar13;\n          puVar12[4] = uVar10;\n          puVar12[5] = uVar9;\n          uVar1 = *(undefined1 *)(puVar6 + 5);\n          uVar9 = puVar6[4];\n          puVar12[1] = puVar6[-1];\n          puVar6[-2] = puVar6;\n          puVar14 = puVar6 + 8;\n          puVar6[-1] = 0;\n          *(undefined1 *)puVar6 = 0;\n          *(undefined1 *)(puVar12 + 7) = uVar1;\n          puVar12[6] = uVar9;\n          *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar14;\n          puVar12 = puVar12 + 8;\n          if (puVar8 + 2 == puVar14) goto LAB_002247fc;\n        }\n        *puVar12 = (undefined4 *)puVar6[-2];\n        uVar1 = *(undefined1 *)(puVar6 + 5);\n        puVar12[2] = *puVar6;\n        uVar9 = puVar6[4];\n        puVar12[1] = puVar6[-1];\n        puVar6[-2] = puVar6;\n        puVar14 = puVar6 + 8;\n        puVar6[-1] = 0;\n        *(undefined1 *)puVar6 = 0;\n        *(undefined1 *)(puVar12 + 7) = uVar1;\n        puVar12[6] = uVar9;\n        *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n        puVar6 = puVar14;\n        puVar12 = puVar12 + 8;\n      } while (puVar8 + 2 != puVar14);\nLAB_002247fc:\n      iVar5 = (int)puVar8 + (-(int)param_2 - iVar18);\n      iVar19 = iVar5 >> 5;\n      param_1[1] = param_1[1] + iVar18;\n      if (0 < iVar5) {\n        puVar6 = (undefined4 *)((int)puVar8 + (-0x18 - iVar18));\n        puVar8 = puVar8 + -6;\n        do {\n          while( true ) {\n            puVar12 = (undefined4 *)puVar8[-2];\n            if ((undefined4 *)puVar6[-2] != puVar6) break;\n            iVar5 = puVar6[-1];\n            if (iVar5 != 0) {\n              if (iVar5 == 1) {\n                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n            }\n            puVar8[-1] = iVar5;\n            *(undefined1 *)((int)puVar12 + iVar5) = 0;\n            iVar19 = iVar19 + -1;\n            puVar6[-1] = 0;\n            *(undefined1 *)puVar6[-2] = 0;\n            uVar9 = puVar6[4];\n            *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n            puVar8[4] = uVar9;\n            *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n            puVar6 = puVar6 + -8;\n            puVar8 = puVar8 + -8;\n            if (iVar19 == 0) goto LAB_002248f8;\n          }\n          puVar8[-2] = (undefined4 *)puVar6[-2];\n          if (puVar12 == puVar8) {\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\nLAB_0022497c:\n            puVar6[-2] = puVar6;\n          }\n          else {\n            uVar9 = *puVar8;\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\n            if (puVar12 == (undefined4 *)0x0) goto LAB_0022497c;\n            puVar6[-2] = puVar12;\n            *puVar6 = uVar9;\n          }\n          puVar6[-1] = 0;\n          iVar19 = iVar19 + -1;\n          *(undefined1 *)puVar6[-2] = 0;\n          uVar9 = puVar6[4];\n          *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n          puVar8[4] = uVar9;\n          *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar6 + -8;\n          puVar8 = puVar8 + -8;\n        } while (iVar19 != 0);\n      }\nLAB_002248f8:\n      if (0 < iVar18) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar20 = uVar20 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar20 != 0);\n        return;\n      }\n    }\n    else {\n      piVar16 = (int *)((int)param_3 + iVar5);\n      puVar6 = puVar8;\n      if (piVar16 != param_4) {\n        do {\n          *puVar6 = puVar6 + 2;\n                    \n          (*(code *)puVar4)(puVar6,*piVar16,*piVar16 + piVar16[1],0);\n          piVar17 = piVar16 + 8;\n          iVar18 = piVar16[6];\n          *(undefined1 *)(puVar6 + 7) = *(undefined1 *)(piVar16 + 7);\n          puVar6[6] = iVar18;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)piVar16 + 0x1d);\n          piVar16 = piVar17;\n          puVar6 = puVar6 + 8;\n        } while (param_4 != piVar17);\n        puVar6 = (undefined4 *)param_1[1];\n      }\n      puVar6 = puVar6 + (uVar20 - uVar21) * 8;\n      param_1[1] = puVar6;\n      if (puVar8 != param_2) {\n        puVar12 = param_2 + 2;\n        do {\n          while( true ) {\n            *puVar6 = puVar6 + 2;\n            if (puVar12 != (undefined4 *)puVar12[-2]) break;\n            uVar13 = puVar12[1];\n            uVar10 = puVar12[2];\n            uVar9 = puVar12[3];\n            puVar6[2] = *puVar12;\n            puVar6[3] = uVar13;\n            puVar6[4] = uVar10;\n            puVar6[5] = uVar9;\n            uVar1 = *(undefined1 *)(puVar12 + 5);\n            uVar9 = puVar12[4];\n            puVar6[1] = puVar12[-1];\n            puVar12[-2] = puVar12;\n            puVar14 = puVar12 + 8;\n            puVar12[-1] = 0;\n            *(undefined1 *)puVar12 = 0;\n            *(undefined1 *)(puVar6 + 7) = uVar1;\n            puVar6[6] = uVar9;\n            *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n            puVar12 = puVar14;\n            puVar6 = puVar6 + 8;\n            if (puVar8 + 2 == puVar14) goto LAB_00224324;\n          }\n          *puVar6 = (undefined4 *)puVar12[-2];\n          uVar1 = *(undefined1 *)(puVar12 + 5);\n          puVar6[2] = *puVar12;\n          uVar9 = puVar12[4];\n          puVar6[1] = puVar12[-1];\n          puVar12[-2] = puVar12;\n          puVar14 = puVar12 + 8;\n          puVar12[-1] = 0;\n          *(undefined1 *)puVar12 = 0;\n          *(undefined1 *)(puVar6 + 7) = uVar1;\n          puVar6[6] = uVar9;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n          puVar12 = puVar14;\n          puVar6 = puVar6 + 8;\n        } while (puVar8 + 2 != puVar14);\nLAB_00224324:\n        puVar6 = (undefined4 *)param_1[1];\n      }\n      param_1[1] = (int)puVar6 + iVar5;\n      if (0 < iVar5) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar21 = uVar21 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar21 != 0);\n      }\n    }" if (parenthesized_expression "(uVar20 < uVar21)" ( (binary_expression "uVar20 < uVar21" identifier < identifier) )) (compound_statement "{\n      puVar6 = (undefined4 *)((int)puVar8 + (8 - iVar18));\n      puVar12 = puVar8;\n      do {\n        while( true ) {\n          *puVar12 = puVar12 + 2;\n          if ((undefined4 *)puVar6[-2] != puVar6) break;\n          uVar13 = puVar6[1];\n          uVar10 = puVar6[2];\n          uVar9 = puVar6[3];\n          puVar12[2] = *puVar6;\n          puVar12[3] = uVar13;\n          puVar12[4] = uVar10;\n          puVar12[5] = uVar9;\n          uVar1 = *(undefined1 *)(puVar6 + 5);\n          uVar9 = puVar6[4];\n          puVar12[1] = puVar6[-1];\n          puVar6[-2] = puVar6;\n          puVar14 = puVar6 + 8;\n          puVar6[-1] = 0;\n          *(undefined1 *)puVar6 = 0;\n          *(undefined1 *)(puVar12 + 7) = uVar1;\n          puVar12[6] = uVar9;\n          *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar14;\n          puVar12 = puVar12 + 8;\n          if (puVar8 + 2 == puVar14) goto LAB_002247fc;\n        }\n        *puVar12 = (undefined4 *)puVar6[-2];\n        uVar1 = *(undefined1 *)(puVar6 + 5);\n        puVar12[2] = *puVar6;\n        uVar9 = puVar6[4];\n        puVar12[1] = puVar6[-1];\n        puVar6[-2] = puVar6;\n        puVar14 = puVar6 + 8;\n        puVar6[-1] = 0;\n        *(undefined1 *)puVar6 = 0;\n        *(undefined1 *)(puVar12 + 7) = uVar1;\n        puVar12[6] = uVar9;\n        *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n        puVar6 = puVar14;\n        puVar12 = puVar12 + 8;\n      } while (puVar8 + 2 != puVar14);\nLAB_002247fc:\n      iVar5 = (int)puVar8 + (-(int)param_2 - iVar18);\n      iVar19 = iVar5 >> 5;\n      param_1[1] = param_1[1] + iVar18;\n      if (0 < iVar5) {\n        puVar6 = (undefined4 *)((int)puVar8 + (-0x18 - iVar18));\n        puVar8 = puVar8 + -6;\n        do {\n          while( true ) {\n            puVar12 = (undefined4 *)puVar8[-2];\n            if ((undefined4 *)puVar6[-2] != puVar6) break;\n            iVar5 = puVar6[-1];\n            if (iVar5 != 0) {\n              if (iVar5 == 1) {\n                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n            }\n            puVar8[-1] = iVar5;\n            *(undefined1 *)((int)puVar12 + iVar5) = 0;\n            iVar19 = iVar19 + -1;\n            puVar6[-1] = 0;\n            *(undefined1 *)puVar6[-2] = 0;\n            uVar9 = puVar6[4];\n            *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n            puVar8[4] = uVar9;\n            *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n            puVar6 = puVar6 + -8;\n            puVar8 = puVar8 + -8;\n            if (iVar19 == 0) goto LAB_002248f8;\n          }\n          puVar8[-2] = (undefined4 *)puVar6[-2];\n          if (puVar12 == puVar8) {\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\nLAB_0022497c:\n            puVar6[-2] = puVar6;\n          }\n          else {\n            uVar9 = *puVar8;\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\n            if (puVar12 == (undefined4 *)0x0) goto LAB_0022497c;\n            puVar6[-2] = puVar12;\n            *puVar6 = uVar9;\n          }\n          puVar6[-1] = 0;\n          iVar19 = iVar19 + -1;\n          *(undefined1 *)puVar6[-2] = 0;\n          uVar9 = puVar6[4];\n          *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n          puVar8[4] = uVar9;\n          *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar6 + -8;\n          puVar8 = puVar8 + -8;\n        } while (iVar19 != 0);\n      }\nLAB_002248f8:\n      if (0 < iVar18) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar20 = uVar20 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar20 != 0);\n        return;\n      }\n    }" { (expression_statement "puVar6 = (undefined4 *)((int)puVar8 + (8 - iVar18));" (assignment_expression "puVar6 = (undefined4 *)((int)puVar8 + (8 - iVar18))" identifier = (cast_expression "(undefined4 *)((int)puVar8 + (8 - iVar18))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + (8 - iVar18))" ( (binary_expression "(int)puVar8 + (8 - iVar18)" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(8 - iVar18)" ( (binary_expression "8 - iVar18" number_literal - identifier) ))) )))) ;) (expression_statement "puVar12 = puVar8;" (assignment_expression "puVar12 = puVar8" identifier = identifier) ;) (do_statement "do {\n        while( true ) {\n          *puVar12 = puVar12 + 2;\n          if ((undefined4 *)puVar6[-2] != puVar6) break;\n          uVar13 = puVar6[1];\n          uVar10 = puVar6[2];\n          uVar9 = puVar6[3];\n          puVar12[2] = *puVar6;\n          puVar12[3] = uVar13;\n          puVar12[4] = uVar10;\n          puVar12[5] = uVar9;\n          uVar1 = *(undefined1 *)(puVar6 + 5);\n          uVar9 = puVar6[4];\n          puVar12[1] = puVar6[-1];\n          puVar6[-2] = puVar6;\n          puVar14 = puVar6 + 8;\n          puVar6[-1] = 0;\n          *(undefined1 *)puVar6 = 0;\n          *(undefined1 *)(puVar12 + 7) = uVar1;\n          puVar12[6] = uVar9;\n          *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar14;\n          puVar12 = puVar12 + 8;\n          if (puVar8 + 2 == puVar14) goto LAB_002247fc;\n        }\n        *puVar12 = (undefined4 *)puVar6[-2];\n        uVar1 = *(undefined1 *)(puVar6 + 5);\n        puVar12[2] = *puVar6;\n        uVar9 = puVar6[4];\n        puVar12[1] = puVar6[-1];\n        puVar6[-2] = puVar6;\n        puVar14 = puVar6 + 8;\n        puVar6[-1] = 0;\n        *(undefined1 *)puVar6 = 0;\n        *(undefined1 *)(puVar12 + 7) = uVar1;\n        puVar12[6] = uVar9;\n        *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n        puVar6 = puVar14;\n        puVar12 = puVar12 + 8;\n      } while (puVar8 + 2 != puVar14);" do (compound_statement "{\n        while( true ) {\n          *puVar12 = puVar12 + 2;\n          if ((undefined4 *)puVar6[-2] != puVar6) break;\n          uVar13 = puVar6[1];\n          uVar10 = puVar6[2];\n          uVar9 = puVar6[3];\n          puVar12[2] = *puVar6;\n          puVar12[3] = uVar13;\n          puVar12[4] = uVar10;\n          puVar12[5] = uVar9;\n          uVar1 = *(undefined1 *)(puVar6 + 5);\n          uVar9 = puVar6[4];\n          puVar12[1] = puVar6[-1];\n          puVar6[-2] = puVar6;\n          puVar14 = puVar6 + 8;\n          puVar6[-1] = 0;\n          *(undefined1 *)puVar6 = 0;\n          *(undefined1 *)(puVar12 + 7) = uVar1;\n          puVar12[6] = uVar9;\n          *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar14;\n          puVar12 = puVar12 + 8;\n          if (puVar8 + 2 == puVar14) goto LAB_002247fc;\n        }\n        *puVar12 = (undefined4 *)puVar6[-2];\n        uVar1 = *(undefined1 *)(puVar6 + 5);\n        puVar12[2] = *puVar6;\n        uVar9 = puVar6[4];\n        puVar12[1] = puVar6[-1];\n        puVar6[-2] = puVar6;\n        puVar14 = puVar6 + 8;\n        puVar6[-1] = 0;\n        *(undefined1 *)puVar6 = 0;\n        *(undefined1 *)(puVar12 + 7) = uVar1;\n        puVar12[6] = uVar9;\n        *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n        puVar6 = puVar14;\n        puVar12 = puVar12 + 8;\n      }" { (while_statement "while( true ) {\n          *puVar12 = puVar12 + 2;\n          if ((undefined4 *)puVar6[-2] != puVar6) break;\n          uVar13 = puVar6[1];\n          uVar10 = puVar6[2];\n          uVar9 = puVar6[3];\n          puVar12[2] = *puVar6;\n          puVar12[3] = uVar13;\n          puVar12[4] = uVar10;\n          puVar12[5] = uVar9;\n          uVar1 = *(undefined1 *)(puVar6 + 5);\n          uVar9 = puVar6[4];\n          puVar12[1] = puVar6[-1];\n          puVar6[-2] = puVar6;\n          puVar14 = puVar6 + 8;\n          puVar6[-1] = 0;\n          *(undefined1 *)puVar6 = 0;\n          *(undefined1 *)(puVar12 + 7) = uVar1;\n          puVar12[6] = uVar9;\n          *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar14;\n          puVar12 = puVar12 + 8;\n          if (puVar8 + 2 == puVar14) goto LAB_002247fc;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          *puVar12 = puVar12 + 2;\n          if ((undefined4 *)puVar6[-2] != puVar6) break;\n          uVar13 = puVar6[1];\n          uVar10 = puVar6[2];\n          uVar9 = puVar6[3];\n          puVar12[2] = *puVar6;\n          puVar12[3] = uVar13;\n          puVar12[4] = uVar10;\n          puVar12[5] = uVar9;\n          uVar1 = *(undefined1 *)(puVar6 + 5);\n          uVar9 = puVar6[4];\n          puVar12[1] = puVar6[-1];\n          puVar6[-2] = puVar6;\n          puVar14 = puVar6 + 8;\n          puVar6[-1] = 0;\n          *(undefined1 *)puVar6 = 0;\n          *(undefined1 *)(puVar12 + 7) = uVar1;\n          puVar12[6] = uVar9;\n          *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar14;\n          puVar12 = puVar12 + 8;\n          if (puVar8 + 2 == puVar14) goto LAB_002247fc;\n        }" { (expression_statement "*puVar12 = puVar12 + 2;" (assignment_expression "*puVar12 = puVar12 + 2" (pointer_expression "*puVar12" * identifier) = (binary_expression "puVar12 + 2" identifier + number_literal)) ;) (if_statement "if ((undefined4 *)puVar6[-2] != puVar6) break;" if (parenthesized_expression "((undefined4 *)puVar6[-2] != puVar6)" ( (binary_expression "(undefined4 *)puVar6[-2] != puVar6" (cast_expression "(undefined4 *)puVar6[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[-2]" identifier [ number_literal ])) != identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = puVar6[1];" (assignment_expression "uVar13 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = puVar6[2];" (assignment_expression "uVar10 = puVar6[2]" identifier = (subscript_expression "puVar6[2]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = puVar6[3];" (assignment_expression "uVar9 = puVar6[3]" identifier = (subscript_expression "puVar6[3]" identifier [ number_literal ])) ;) (expression_statement "puVar12[2] = *puVar6;" (assignment_expression "puVar12[2] = *puVar6" (subscript_expression "puVar12[2]" identifier [ number_literal ]) = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "puVar12[3] = uVar13;" (assignment_expression "puVar12[3] = uVar13" (subscript_expression "puVar12[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[4] = uVar10;" (assignment_expression "puVar12[4] = uVar10" (subscript_expression "puVar12[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[5] = uVar9;" (assignment_expression "puVar12[5] = uVar9" (subscript_expression "puVar12[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar1 = *(undefined1 *)(puVar6 + 5);" (assignment_expression "uVar1 = *(undefined1 *)(puVar6 + 5)" identifier = (pointer_expression "*(undefined1 *)(puVar6 + 5)" * (cast_expression "(undefined1 *)(puVar6 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 5)" ( (binary_expression "puVar6 + 5" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = puVar6[4];" (assignment_expression "uVar9 = puVar6[4]" identifier = (subscript_expression "puVar6[4]" identifier [ number_literal ])) ;) (expression_statement "puVar12[1] = puVar6[-1];" (assignment_expression "puVar12[1] = puVar6[-1]" (subscript_expression "puVar12[1]" identifier [ number_literal ]) = (subscript_expression "puVar6[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar6[-2] = puVar6;" (assignment_expression "puVar6[-2] = puVar6" (subscript_expression "puVar6[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14 = puVar6 + 8;" (assignment_expression "puVar14 = puVar6 + 8" identifier = (binary_expression "puVar6 + 8" identifier + number_literal)) ;) (expression_statement "puVar6[-1] = 0;" (assignment_expression "puVar6[-1] = 0" (subscript_expression "puVar6[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)puVar6 = 0;" (assignment_expression "*(undefined1 *)puVar6 = 0" (pointer_expression "*(undefined1 *)puVar6" * (cast_expression "(undefined1 *)puVar6" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar12 + 7) = uVar1;" (assignment_expression "*(undefined1 *)(puVar12 + 7) = uVar1" (pointer_expression "*(undefined1 *)(puVar12 + 7)" * (cast_expression "(undefined1 *)(puVar12 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 7)" ( (binary_expression "puVar12 + 7" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar12[6] = uVar9;" (assignment_expression "puVar12[6] = uVar9" (subscript_expression "puVar12[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);" (assignment_expression "*(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15)" (pointer_expression "*(undefined1 *)((int)puVar12 + 0x1d)" * (cast_expression "(undefined1 *)((int)puVar12 + 0x1d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + 0x1d)" ( (binary_expression "(int)puVar12 + 0x1d" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((int)puVar6 + 0x15)" * (cast_expression "(undefined1 *)((int)puVar6 + 0x15)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar6 + 0x15)" ( (binary_expression "(int)puVar6 + 0x15" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar6 = puVar14;" (assignment_expression "puVar6 = puVar14" identifier = identifier) ;) (expression_statement "puVar12 = puVar12 + 8;" (assignment_expression "puVar12 = puVar12 + 8" identifier = (binary_expression "puVar12 + 8" identifier + number_literal)) ;) (if_statement "if (puVar8 + 2 == puVar14) goto LAB_002247fc;" if (parenthesized_expression "(puVar8 + 2 == puVar14)" ( (binary_expression "puVar8 + 2 == puVar14" (binary_expression "puVar8 + 2" identifier + number_literal) == identifier) )) (goto_statement "goto LAB_002247fc;" goto statement_identifier ;)) })) (expression_statement "*puVar12 = (undefined4 *)puVar6[-2];" (assignment_expression "*puVar12 = (undefined4 *)puVar6[-2]" (pointer_expression "*puVar12" * identifier) = (cast_expression "(undefined4 *)puVar6[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[-2]" identifier [ number_literal ]))) ;) (expression_statement "uVar1 = *(undefined1 *)(puVar6 + 5);" (assignment_expression "uVar1 = *(undefined1 *)(puVar6 + 5)" identifier = (pointer_expression "*(undefined1 *)(puVar6 + 5)" * (cast_expression "(undefined1 *)(puVar6 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 5)" ( (binary_expression "puVar6 + 5" identifier + number_literal) ))))) ;) (expression_statement "puVar12[2] = *puVar6;" (assignment_expression "puVar12[2] = *puVar6" (subscript_expression "puVar12[2]" identifier [ number_literal ]) = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "uVar9 = puVar6[4];" (assignment_expression "uVar9 = puVar6[4]" identifier = (subscript_expression "puVar6[4]" identifier [ number_literal ])) ;) (expression_statement "puVar12[1] = puVar6[-1];" (assignment_expression "puVar12[1] = puVar6[-1]" (subscript_expression "puVar12[1]" identifier [ number_literal ]) = (subscript_expression "puVar6[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar6[-2] = puVar6;" (assignment_expression "puVar6[-2] = puVar6" (subscript_expression "puVar6[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14 = puVar6 + 8;" (assignment_expression "puVar14 = puVar6 + 8" identifier = (binary_expression "puVar6 + 8" identifier + number_literal)) ;) (expression_statement "puVar6[-1] = 0;" (assignment_expression "puVar6[-1] = 0" (subscript_expression "puVar6[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)puVar6 = 0;" (assignment_expression "*(undefined1 *)puVar6 = 0" (pointer_expression "*(undefined1 *)puVar6" * (cast_expression "(undefined1 *)puVar6" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar12 + 7) = uVar1;" (assignment_expression "*(undefined1 *)(puVar12 + 7) = uVar1" (pointer_expression "*(undefined1 *)(puVar12 + 7)" * (cast_expression "(undefined1 *)(puVar12 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 7)" ( (binary_expression "puVar12 + 7" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar12[6] = uVar9;" (assignment_expression "puVar12[6] = uVar9" (subscript_expression "puVar12[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);" (assignment_expression "*(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15)" (pointer_expression "*(undefined1 *)((int)puVar12 + 0x1d)" * (cast_expression "(undefined1 *)((int)puVar12 + 0x1d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + 0x1d)" ( (binary_expression "(int)puVar12 + 0x1d" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((int)puVar6 + 0x15)" * (cast_expression "(undefined1 *)((int)puVar6 + 0x15)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar6 + 0x15)" ( (binary_expression "(int)puVar6 + 0x15" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar6 = puVar14;" (assignment_expression "puVar6 = puVar14" identifier = identifier) ;) (expression_statement "puVar12 = puVar12 + 8;" (assignment_expression "puVar12 = puVar12 + 8" identifier = (binary_expression "puVar12 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar8 + 2 != puVar14)" ( (binary_expression "puVar8 + 2 != puVar14" (binary_expression "puVar8 + 2" identifier + number_literal) != identifier) )) ;) (labeled_statement "LAB_002247fc:\n      iVar5 = (int)puVar8 + (-(int)param_2 - iVar18);" statement_identifier : (expression_statement "iVar5 = (int)puVar8 + (-(int)param_2 - iVar18);" (assignment_expression "iVar5 = (int)puVar8 + (-(int)param_2 - iVar18)" identifier = (binary_expression "(int)puVar8 + (-(int)param_2 - iVar18)" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-(int)param_2 - iVar18)" ( (binary_expression "-(int)param_2 - iVar18" (unary_expression "-(int)param_2" - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) - identifier) )))) ;)) (expression_statement "iVar19 = iVar5 >> 5;" (assignment_expression "iVar19 = iVar5 >> 5" identifier = (binary_expression "iVar5 >> 5" identifier >> number_literal)) ;) (expression_statement "param_1[1] = param_1[1] + iVar18;" (assignment_expression "param_1[1] = param_1[1] + iVar18" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (binary_expression "param_1[1] + iVar18" (subscript_expression "param_1[1]" identifier [ number_literal ]) + identifier)) ;) (if_statement "if (0 < iVar5) {\n        puVar6 = (undefined4 *)((int)puVar8 + (-0x18 - iVar18));\n        puVar8 = puVar8 + -6;\n        do {\n          while( true ) {\n            puVar12 = (undefined4 *)puVar8[-2];\n            if ((undefined4 *)puVar6[-2] != puVar6) break;\n            iVar5 = puVar6[-1];\n            if (iVar5 != 0) {\n              if (iVar5 == 1) {\n                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n            }\n            puVar8[-1] = iVar5;\n            *(undefined1 *)((int)puVar12 + iVar5) = 0;\n            iVar19 = iVar19 + -1;\n            puVar6[-1] = 0;\n            *(undefined1 *)puVar6[-2] = 0;\n            uVar9 = puVar6[4];\n            *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n            puVar8[4] = uVar9;\n            *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n            puVar6 = puVar6 + -8;\n            puVar8 = puVar8 + -8;\n            if (iVar19 == 0) goto LAB_002248f8;\n          }\n          puVar8[-2] = (undefined4 *)puVar6[-2];\n          if (puVar12 == puVar8) {\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\nLAB_0022497c:\n            puVar6[-2] = puVar6;\n          }\n          else {\n            uVar9 = *puVar8;\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\n            if (puVar12 == (undefined4 *)0x0) goto LAB_0022497c;\n            puVar6[-2] = puVar12;\n            *puVar6 = uVar9;\n          }\n          puVar6[-1] = 0;\n          iVar19 = iVar19 + -1;\n          *(undefined1 *)puVar6[-2] = 0;\n          uVar9 = puVar6[4];\n          *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n          puVar8[4] = uVar9;\n          *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar6 + -8;\n          puVar8 = puVar8 + -8;\n        } while (iVar19 != 0);\n      }" if (parenthesized_expression "(0 < iVar5)" ( (binary_expression "0 < iVar5" number_literal < identifier) )) (compound_statement "{\n        puVar6 = (undefined4 *)((int)puVar8 + (-0x18 - iVar18));\n        puVar8 = puVar8 + -6;\n        do {\n          while( true ) {\n            puVar12 = (undefined4 *)puVar8[-2];\n            if ((undefined4 *)puVar6[-2] != puVar6) break;\n            iVar5 = puVar6[-1];\n            if (iVar5 != 0) {\n              if (iVar5 == 1) {\n                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n            }\n            puVar8[-1] = iVar5;\n            *(undefined1 *)((int)puVar12 + iVar5) = 0;\n            iVar19 = iVar19 + -1;\n            puVar6[-1] = 0;\n            *(undefined1 *)puVar6[-2] = 0;\n            uVar9 = puVar6[4];\n            *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n            puVar8[4] = uVar9;\n            *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n            puVar6 = puVar6 + -8;\n            puVar8 = puVar8 + -8;\n            if (iVar19 == 0) goto LAB_002248f8;\n          }\n          puVar8[-2] = (undefined4 *)puVar6[-2];\n          if (puVar12 == puVar8) {\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\nLAB_0022497c:\n            puVar6[-2] = puVar6;\n          }\n          else {\n            uVar9 = *puVar8;\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\n            if (puVar12 == (undefined4 *)0x0) goto LAB_0022497c;\n            puVar6[-2] = puVar12;\n            *puVar6 = uVar9;\n          }\n          puVar6[-1] = 0;\n          iVar19 = iVar19 + -1;\n          *(undefined1 *)puVar6[-2] = 0;\n          uVar9 = puVar6[4];\n          *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n          puVar8[4] = uVar9;\n          *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar6 + -8;\n          puVar8 = puVar8 + -8;\n        } while (iVar19 != 0);\n      }" { (expression_statement "puVar6 = (undefined4 *)((int)puVar8 + (-0x18 - iVar18));" (assignment_expression "puVar6 = (undefined4 *)((int)puVar8 + (-0x18 - iVar18))" identifier = (cast_expression "(undefined4 *)((int)puVar8 + (-0x18 - iVar18))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + (-0x18 - iVar18))" ( (binary_expression "(int)puVar8 + (-0x18 - iVar18)" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-0x18 - iVar18)" ( (binary_expression "-0x18 - iVar18" number_literal - identifier) ))) )))) ;) (expression_statement "puVar8 = puVar8 + -6;" (assignment_expression "puVar8 = puVar8 + -6" identifier = (binary_expression "puVar8 + -6" identifier + number_literal)) ;) (do_statement "do {\n          while( true ) {\n            puVar12 = (undefined4 *)puVar8[-2];\n            if ((undefined4 *)puVar6[-2] != puVar6) break;\n            iVar5 = puVar6[-1];\n            if (iVar5 != 0) {\n              if (iVar5 == 1) {\n                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n            }\n            puVar8[-1] = iVar5;\n            *(undefined1 *)((int)puVar12 + iVar5) = 0;\n            iVar19 = iVar19 + -1;\n            puVar6[-1] = 0;\n            *(undefined1 *)puVar6[-2] = 0;\n            uVar9 = puVar6[4];\n            *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n            puVar8[4] = uVar9;\n            *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n            puVar6 = puVar6 + -8;\n            puVar8 = puVar8 + -8;\n            if (iVar19 == 0) goto LAB_002248f8;\n          }\n          puVar8[-2] = (undefined4 *)puVar6[-2];\n          if (puVar12 == puVar8) {\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\nLAB_0022497c:\n            puVar6[-2] = puVar6;\n          }\n          else {\n            uVar9 = *puVar8;\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\n            if (puVar12 == (undefined4 *)0x0) goto LAB_0022497c;\n            puVar6[-2] = puVar12;\n            *puVar6 = uVar9;\n          }\n          puVar6[-1] = 0;\n          iVar19 = iVar19 + -1;\n          *(undefined1 *)puVar6[-2] = 0;\n          uVar9 = puVar6[4];\n          *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n          puVar8[4] = uVar9;\n          *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar6 + -8;\n          puVar8 = puVar8 + -8;\n        } while (iVar19 != 0);" do (compound_statement "{\n          while( true ) {\n            puVar12 = (undefined4 *)puVar8[-2];\n            if ((undefined4 *)puVar6[-2] != puVar6) break;\n            iVar5 = puVar6[-1];\n            if (iVar5 != 0) {\n              if (iVar5 == 1) {\n                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n            }\n            puVar8[-1] = iVar5;\n            *(undefined1 *)((int)puVar12 + iVar5) = 0;\n            iVar19 = iVar19 + -1;\n            puVar6[-1] = 0;\n            *(undefined1 *)puVar6[-2] = 0;\n            uVar9 = puVar6[4];\n            *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n            puVar8[4] = uVar9;\n            *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n            puVar6 = puVar6 + -8;\n            puVar8 = puVar8 + -8;\n            if (iVar19 == 0) goto LAB_002248f8;\n          }\n          puVar8[-2] = (undefined4 *)puVar6[-2];\n          if (puVar12 == puVar8) {\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\nLAB_0022497c:\n            puVar6[-2] = puVar6;\n          }\n          else {\n            uVar9 = *puVar8;\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\n            if (puVar12 == (undefined4 *)0x0) goto LAB_0022497c;\n            puVar6[-2] = puVar12;\n            *puVar6 = uVar9;\n          }\n          puVar6[-1] = 0;\n          iVar19 = iVar19 + -1;\n          *(undefined1 *)puVar6[-2] = 0;\n          uVar9 = puVar6[4];\n          *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n          puVar8[4] = uVar9;\n          *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar6 + -8;\n          puVar8 = puVar8 + -8;\n        }" { (while_statement "while( true ) {\n            puVar12 = (undefined4 *)puVar8[-2];\n            if ((undefined4 *)puVar6[-2] != puVar6) break;\n            iVar5 = puVar6[-1];\n            if (iVar5 != 0) {\n              if (iVar5 == 1) {\n                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n            }\n            puVar8[-1] = iVar5;\n            *(undefined1 *)((int)puVar12 + iVar5) = 0;\n            iVar19 = iVar19 + -1;\n            puVar6[-1] = 0;\n            *(undefined1 *)puVar6[-2] = 0;\n            uVar9 = puVar6[4];\n            *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n            puVar8[4] = uVar9;\n            *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n            puVar6 = puVar6 + -8;\n            puVar8 = puVar8 + -8;\n            if (iVar19 == 0) goto LAB_002248f8;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            puVar12 = (undefined4 *)puVar8[-2];\n            if ((undefined4 *)puVar6[-2] != puVar6) break;\n            iVar5 = puVar6[-1];\n            if (iVar5 != 0) {\n              if (iVar5 == 1) {\n                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n            }\n            puVar8[-1] = iVar5;\n            *(undefined1 *)((int)puVar12 + iVar5) = 0;\n            iVar19 = iVar19 + -1;\n            puVar6[-1] = 0;\n            *(undefined1 *)puVar6[-2] = 0;\n            uVar9 = puVar6[4];\n            *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n            puVar8[4] = uVar9;\n            *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n            puVar6 = puVar6 + -8;\n            puVar8 = puVar8 + -8;\n            if (iVar19 == 0) goto LAB_002248f8;\n          }" { (expression_statement "puVar12 = (undefined4 *)puVar8[-2];" (assignment_expression "puVar12 = (undefined4 *)puVar8[-2]" identifier = (cast_expression "(undefined4 *)puVar8[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar8[-2]" identifier [ number_literal ]))) ;) (if_statement "if ((undefined4 *)puVar6[-2] != puVar6) break;" if (parenthesized_expression "((undefined4 *)puVar6[-2] != puVar6)" ( (binary_expression "(undefined4 *)puVar6[-2] != puVar6" (cast_expression "(undefined4 *)puVar6[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[-2]" identifier [ number_literal ])) != identifier) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = puVar6[-1];" (assignment_expression "iVar5 = puVar6[-1]" identifier = (subscript_expression "puVar6[-1]" identifier [ number_literal ])) ;) (if_statement "if (iVar5 != 0) {\n              if (iVar5 == 1) {\n                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n            }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n              if (iVar5 == 1) {\n                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n            }" { (if_statement "if (iVar5 == 1) {\n                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }" if (parenthesized_expression "(iVar5 == 1)" ( (binary_expression "iVar5 == 1" identifier == number_literal) )) (compound_statement "{\n                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }" { (expression_statement "*(undefined1 *)puVar12 = *(undefined1 *)puVar6;" (assignment_expression "*(undefined1 *)puVar12 = *(undefined1 *)puVar6" (pointer_expression "*(undefined1 *)puVar12" * (cast_expression "(undefined1 *)puVar12" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined1 *)puVar6" * (cast_expression "(undefined1 *)puVar6" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar12 = (undefined4 *)puVar8[-2];" (assignment_expression "puVar12 = (undefined4 *)puVar8[-2]" identifier = (cast_expression "(undefined4 *)puVar8[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar8[-2]" identifier [ number_literal ]))) ;) (expression_statement "iVar5 = puVar6[-1];" (assignment_expression "iVar5 = puVar6[-1]" identifier = (subscript_expression "puVar6[-1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }" else (compound_statement "{\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }" { (expression_statement "(*(code *)PTR_memcpy_00436788)(puVar12,puVar6);" (call_expression "(*(code *)PTR_memcpy_00436788)(puVar12,puVar6)" (parenthesized_expression "(*(code *)PTR_memcpy_00436788)" ( (pointer_expression "*(code *)PTR_memcpy_00436788" * (cast_expression "(code *)PTR_memcpy_00436788" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar12,puVar6)" ( identifier , identifier ))) ;) (expression_statement "puVar12 = (undefined4 *)puVar8[-2];" (assignment_expression "puVar12 = (undefined4 *)puVar8[-2]" identifier = (cast_expression "(undefined4 *)puVar8[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar8[-2]" identifier [ number_literal ]))) ;) (expression_statement "iVar5 = puVar6[-1];" (assignment_expression "iVar5 = puVar6[-1]" identifier = (subscript_expression "puVar6[-1]" identifier [ number_literal ])) ;) }))) })) (expression_statement "puVar8[-1] = iVar5;" (assignment_expression "puVar8[-1] = iVar5" (subscript_expression "puVar8[-1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar12 + iVar5) = 0;" (assignment_expression "*(undefined1 *)((int)puVar12 + iVar5) = 0" (pointer_expression "*(undefined1 *)((int)puVar12 + iVar5)" * (cast_expression "(undefined1 *)((int)puVar12 + iVar5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + iVar5)" ( (binary_expression "(int)puVar12 + iVar5" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "puVar6[-1] = 0;" (assignment_expression "puVar6[-1] = 0" (subscript_expression "puVar6[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)puVar6[-2] = 0;" (assignment_expression "*(undefined1 *)puVar6[-2] = 0" (pointer_expression "*(undefined1 *)puVar6[-2]" * (cast_expression "(undefined1 *)puVar6[-2]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[-2]" identifier [ number_literal ]))) = number_literal) ;) (expression_statement "uVar9 = puVar6[4];" (assignment_expression "uVar9 = puVar6[4]" identifier = (subscript_expression "puVar6[4]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);" (assignment_expression "*(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5)" (pointer_expression "*(undefined1 *)(puVar8 + 5)" * (cast_expression "(undefined1 *)(puVar8 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 5)" ( (binary_expression "puVar8 + 5" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)(puVar6 + 5)" * (cast_expression "(undefined1 *)(puVar6 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 5)" ( (binary_expression "puVar6 + 5" identifier + number_literal) ))))) ;) (expression_statement "puVar8[4] = uVar9;" (assignment_expression "puVar8[4] = uVar9" (subscript_expression "puVar8[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);" (assignment_expression "*(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15)" (pointer_expression "*(undefined1 *)((int)puVar8 + 0x15)" * (cast_expression "(undefined1 *)((int)puVar8 + 0x15)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + 0x15)" ( (binary_expression "(int)puVar8 + 0x15" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((int)puVar6 + 0x15)" * (cast_expression "(undefined1 *)((int)puVar6 + 0x15)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar6 + 0x15)" ( (binary_expression "(int)puVar6 + 0x15" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar6 = puVar6 + -8;" (assignment_expression "puVar6 = puVar6 + -8" identifier = (binary_expression "puVar6 + -8" identifier + number_literal)) ;) (expression_statement "puVar8 = puVar8 + -8;" (assignment_expression "puVar8 = puVar8 + -8" identifier = (binary_expression "puVar8 + -8" identifier + number_literal)) ;) (if_statement "if (iVar19 == 0) goto LAB_002248f8;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (goto_statement "goto LAB_002248f8;" goto statement_identifier ;)) })) (expression_statement "puVar8[-2] = (undefined4 *)puVar6[-2];" (assignment_expression "puVar8[-2] = (undefined4 *)puVar6[-2]" (subscript_expression "puVar8[-2]" identifier [ number_literal ]) = (cast_expression "(undefined4 *)puVar6[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[-2]" identifier [ number_literal ]))) ;) (if_statement "if (puVar12 == puVar8) {\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\nLAB_0022497c:\n            puVar6[-2] = puVar6;\n          }\n          else {\n            uVar9 = *puVar8;\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\n            if (puVar12 == (undefined4 *)0x0) goto LAB_0022497c;\n            puVar6[-2] = puVar12;\n            *puVar6 = uVar9;\n          }" if (parenthesized_expression "(puVar12 == puVar8)" ( (binary_expression "puVar12 == puVar8" identifier == identifier) )) (compound_statement "{\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\nLAB_0022497c:\n            puVar6[-2] = puVar6;\n          }" { (expression_statement "puVar8[-1] = puVar6[-1];" (assignment_expression "puVar8[-1] = puVar6[-1]" (subscript_expression "puVar8[-1]" identifier [ number_literal ]) = (subscript_expression "puVar6[-1]" identifier [ number_literal ])) ;) (expression_statement "*puVar8 = *puVar6;" (assignment_expression "*puVar8 = *puVar6" (pointer_expression "*puVar8" * identifier) = (pointer_expression "*puVar6" * identifier)) ;) (labeled_statement "LAB_0022497c:\n            puVar6[-2] = puVar6;" statement_identifier : (expression_statement "puVar6[-2] = puVar6;" (assignment_expression "puVar6[-2] = puVar6" (subscript_expression "puVar6[-2]" identifier [ number_literal ]) = identifier) ;)) }) (else_clause "else {\n            uVar9 = *puVar8;\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\n            if (puVar12 == (undefined4 *)0x0) goto LAB_0022497c;\n            puVar6[-2] = puVar12;\n            *puVar6 = uVar9;\n          }" else (compound_statement "{\n            uVar9 = *puVar8;\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\n            if (puVar12 == (undefined4 *)0x0) goto LAB_0022497c;\n            puVar6[-2] = puVar12;\n            *puVar6 = uVar9;\n          }" { (expression_statement "uVar9 = *puVar8;" (assignment_expression "uVar9 = *puVar8" identifier = (pointer_expression "*puVar8" * identifier)) ;) (expression_statement "puVar8[-1] = puVar6[-1];" (assignment_expression "puVar8[-1] = puVar6[-1]" (subscript_expression "puVar8[-1]" identifier [ number_literal ]) = (subscript_expression "puVar6[-1]" identifier [ number_literal ])) ;) (expression_statement "*puVar8 = *puVar6;" (assignment_expression "*puVar8 = *puVar6" (pointer_expression "*puVar8" * identifier) = (pointer_expression "*puVar6" * identifier)) ;) (if_statement "if (puVar12 == (undefined4 *)0x0) goto LAB_0022497c;" if (parenthesized_expression "(puVar12 == (undefined4 *)0x0)" ( (binary_expression "puVar12 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0022497c;" goto statement_identifier ;)) (expression_statement "puVar6[-2] = puVar12;" (assignment_expression "puVar6[-2] = puVar12" (subscript_expression "puVar6[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar6 = uVar9;" (assignment_expression "*puVar6 = uVar9" (pointer_expression "*puVar6" * identifier) = identifier) ;) }))) (expression_statement "puVar6[-1] = 0;" (assignment_expression "puVar6[-1] = 0" (subscript_expression "puVar6[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)puVar6[-2] = 0;" (assignment_expression "*(undefined1 *)puVar6[-2] = 0" (pointer_expression "*(undefined1 *)puVar6[-2]" * (cast_expression "(undefined1 *)puVar6[-2]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[-2]" identifier [ number_literal ]))) = number_literal) ;) (expression_statement "uVar9 = puVar6[4];" (assignment_expression "uVar9 = puVar6[4]" identifier = (subscript_expression "puVar6[4]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);" (assignment_expression "*(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5)" (pointer_expression "*(undefined1 *)(puVar8 + 5)" * (cast_expression "(undefined1 *)(puVar8 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 5)" ( (binary_expression "puVar8 + 5" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)(puVar6 + 5)" * (cast_expression "(undefined1 *)(puVar6 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 5)" ( (binary_expression "puVar6 + 5" identifier + number_literal) ))))) ;) (expression_statement "puVar8[4] = uVar9;" (assignment_expression "puVar8[4] = uVar9" (subscript_expression "puVar8[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);" (assignment_expression "*(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15)" (pointer_expression "*(undefined1 *)((int)puVar8 + 0x15)" * (cast_expression "(undefined1 *)((int)puVar8 + 0x15)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + 0x15)" ( (binary_expression "(int)puVar8 + 0x15" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((int)puVar6 + 0x15)" * (cast_expression "(undefined1 *)((int)puVar6 + 0x15)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar6 + 0x15)" ( (binary_expression "(int)puVar6 + 0x15" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar6 = puVar6 + -8;" (assignment_expression "puVar6 = puVar6 + -8" identifier = (binary_expression "puVar6 + -8" identifier + number_literal)) ;) (expression_statement "puVar8 = puVar8 + -8;" (assignment_expression "puVar8 = puVar8 + -8" identifier = (binary_expression "puVar8 + -8" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) ;) })) (labeled_statement "LAB_002248f8:\n      if (0 < iVar18) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar20 = uVar20 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar20 != 0);\n        return;\n      }" statement_identifier : (if_statement "if (0 < iVar18) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar20 = uVar20 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar20 != 0);\n        return;\n      }" if (parenthesized_expression "(0 < iVar18)" ( (binary_expression "0 < iVar18" number_literal < identifier) )) (compound_statement "{\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar20 = uVar20 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar20 != 0);\n        return;\n      }" { (do_statement "do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar20 = uVar20 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar20 != 0);" do (compound_statement "{\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar20 = uVar20 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        }" { (expression_statement "(*(code *)PTR__M_assign_00432d78)(param_2,param_3);" (call_expression "(*(code *)PTR__M_assign_00432d78)(param_2,param_3)" (parenthesized_expression "(*(code *)PTR__M_assign_00432d78)" ( (pointer_expression "*(code *)PTR__M_assign_00432d78" * (cast_expression "(code *)PTR__M_assign_00432d78" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2,param_3)" ( identifier , identifier ))) ;) (expression_statement "uVar20 = uVar20 - 1;" (assignment_expression "uVar20 = uVar20 - 1" identifier = (binary_expression "uVar20 - 1" identifier - number_literal)) ;) (expression_statement "iVar18 = param_3[6];" (assignment_expression "iVar18 = param_3[6]" identifier = (subscript_expression "param_3[6]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);" (assignment_expression "*(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7)" (pointer_expression "*(undefined1 *)(param_2 + 7)" * (cast_expression "(undefined1 *)(param_2 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)(param_3 + 7)" * (cast_expression "(undefined1 *)(param_3 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 7)" ( (binary_expression "param_3 + 7" identifier + number_literal) ))))) ;) (expression_statement "param_2[6] = iVar18;" (assignment_expression "param_2[6] = iVar18" (subscript_expression "param_2[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);" (assignment_expression "*(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d)" (pointer_expression "*(undefined1 *)((int)param_2 + 0x1d)" * (cast_expression "(undefined1 *)((int)param_2 + 0x1d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x1d)" ( (binary_expression "(int)param_2 + 0x1d" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((int)param_3 + 0x1d)" * (cast_expression "(undefined1 *)((int)param_3 + 0x1d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3 + 0x1d)" ( (binary_expression "(int)param_3 + 0x1d" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "param_3 = param_3 + 8;" (assignment_expression "param_3 = param_3 + 8" identifier = (binary_expression "param_3 + 8" identifier + number_literal)) ;) (expression_statement "param_2 = param_2 + 8;" (assignment_expression "param_2 = param_2 + 8" identifier = (binary_expression "param_2 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar20 != 0)" ( (binary_expression "uVar20 != 0" identifier != number_literal) )) ;) (return_statement "return;" return ;) }))) }) (else_clause "else {\n      piVar16 = (int *)((int)param_3 + iVar5);\n      puVar6 = puVar8;\n      if (piVar16 != param_4) {\n        do {\n          *puVar6 = puVar6 + 2;\n                    \n          (*(code *)puVar4)(puVar6,*piVar16,*piVar16 + piVar16[1],0);\n          piVar17 = piVar16 + 8;\n          iVar18 = piVar16[6];\n          *(undefined1 *)(puVar6 + 7) = *(undefined1 *)(piVar16 + 7);\n          puVar6[6] = iVar18;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)piVar16 + 0x1d);\n          piVar16 = piVar17;\n          puVar6 = puVar6 + 8;\n        } while (param_4 != piVar17);\n        puVar6 = (undefined4 *)param_1[1];\n      }\n      puVar6 = puVar6 + (uVar20 - uVar21) * 8;\n      param_1[1] = puVar6;\n      if (puVar8 != param_2) {\n        puVar12 = param_2 + 2;\n        do {\n          while( true ) {\n            *puVar6 = puVar6 + 2;\n            if (puVar12 != (undefined4 *)puVar12[-2]) break;\n            uVar13 = puVar12[1];\n            uVar10 = puVar12[2];\n            uVar9 = puVar12[3];\n            puVar6[2] = *puVar12;\n            puVar6[3] = uVar13;\n            puVar6[4] = uVar10;\n            puVar6[5] = uVar9;\n            uVar1 = *(undefined1 *)(puVar12 + 5);\n            uVar9 = puVar12[4];\n            puVar6[1] = puVar12[-1];\n            puVar12[-2] = puVar12;\n            puVar14 = puVar12 + 8;\n            puVar12[-1] = 0;\n            *(undefined1 *)puVar12 = 0;\n            *(undefined1 *)(puVar6 + 7) = uVar1;\n            puVar6[6] = uVar9;\n            *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n            puVar12 = puVar14;\n            puVar6 = puVar6 + 8;\n            if (puVar8 + 2 == puVar14) goto LAB_00224324;\n          }\n          *puVar6 = (undefined4 *)puVar12[-2];\n          uVar1 = *(undefined1 *)(puVar12 + 5);\n          puVar6[2] = *puVar12;\n          uVar9 = puVar12[4];\n          puVar6[1] = puVar12[-1];\n          puVar12[-2] = puVar12;\n          puVar14 = puVar12 + 8;\n          puVar12[-1] = 0;\n          *(undefined1 *)puVar12 = 0;\n          *(undefined1 *)(puVar6 + 7) = uVar1;\n          puVar6[6] = uVar9;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n          puVar12 = puVar14;\n          puVar6 = puVar6 + 8;\n        } while (puVar8 + 2 != puVar14);\nLAB_00224324:\n        puVar6 = (undefined4 *)param_1[1];\n      }\n      param_1[1] = (int)puVar6 + iVar5;\n      if (0 < iVar5) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar21 = uVar21 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar21 != 0);\n      }\n    }" else (compound_statement "{\n      piVar16 = (int *)((int)param_3 + iVar5);\n      puVar6 = puVar8;\n      if (piVar16 != param_4) {\n        do {\n          *puVar6 = puVar6 + 2;\n                    \n          (*(code *)puVar4)(puVar6,*piVar16,*piVar16 + piVar16[1],0);\n          piVar17 = piVar16 + 8;\n          iVar18 = piVar16[6];\n          *(undefined1 *)(puVar6 + 7) = *(undefined1 *)(piVar16 + 7);\n          puVar6[6] = iVar18;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)piVar16 + 0x1d);\n          piVar16 = piVar17;\n          puVar6 = puVar6 + 8;\n        } while (param_4 != piVar17);\n        puVar6 = (undefined4 *)param_1[1];\n      }\n      puVar6 = puVar6 + (uVar20 - uVar21) * 8;\n      param_1[1] = puVar6;\n      if (puVar8 != param_2) {\n        puVar12 = param_2 + 2;\n        do {\n          while( true ) {\n            *puVar6 = puVar6 + 2;\n            if (puVar12 != (undefined4 *)puVar12[-2]) break;\n            uVar13 = puVar12[1];\n            uVar10 = puVar12[2];\n            uVar9 = puVar12[3];\n            puVar6[2] = *puVar12;\n            puVar6[3] = uVar13;\n            puVar6[4] = uVar10;\n            puVar6[5] = uVar9;\n            uVar1 = *(undefined1 *)(puVar12 + 5);\n            uVar9 = puVar12[4];\n            puVar6[1] = puVar12[-1];\n            puVar12[-2] = puVar12;\n            puVar14 = puVar12 + 8;\n            puVar12[-1] = 0;\n            *(undefined1 *)puVar12 = 0;\n            *(undefined1 *)(puVar6 + 7) = uVar1;\n            puVar6[6] = uVar9;\n            *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n            puVar12 = puVar14;\n            puVar6 = puVar6 + 8;\n            if (puVar8 + 2 == puVar14) goto LAB_00224324;\n          }\n          *puVar6 = (undefined4 *)puVar12[-2];\n          uVar1 = *(undefined1 *)(puVar12 + 5);\n          puVar6[2] = *puVar12;\n          uVar9 = puVar12[4];\n          puVar6[1] = puVar12[-1];\n          puVar12[-2] = puVar12;\n          puVar14 = puVar12 + 8;\n          puVar12[-1] = 0;\n          *(undefined1 *)puVar12 = 0;\n          *(undefined1 *)(puVar6 + 7) = uVar1;\n          puVar6[6] = uVar9;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n          puVar12 = puVar14;\n          puVar6 = puVar6 + 8;\n        } while (puVar8 + 2 != puVar14);\nLAB_00224324:\n        puVar6 = (undefined4 *)param_1[1];\n      }\n      param_1[1] = (int)puVar6 + iVar5;\n      if (0 < iVar5) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar21 = uVar21 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar21 != 0);\n      }\n    }" { (expression_statement "piVar16 = (int *)((int)param_3 + iVar5);" (assignment_expression "piVar16 = (int *)((int)param_3 + iVar5)" identifier = (cast_expression "(int *)((int)param_3 + iVar5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3 + iVar5)" ( (binary_expression "(int)param_3 + iVar5" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "puVar6 = puVar8;" (assignment_expression "puVar6 = puVar8" identifier = identifier) ;) (if_statement "if (piVar16 != param_4) {\n        do {\n          *puVar6 = puVar6 + 2;\n                    \n          (*(code *)puVar4)(puVar6,*piVar16,*piVar16 + piVar16[1],0);\n          piVar17 = piVar16 + 8;\n          iVar18 = piVar16[6];\n          *(undefined1 *)(puVar6 + 7) = *(undefined1 *)(piVar16 + 7);\n          puVar6[6] = iVar18;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)piVar16 + 0x1d);\n          piVar16 = piVar17;\n          puVar6 = puVar6 + 8;\n        } while (param_4 != piVar17);\n        puVar6 = (undefined4 *)param_1[1];\n      }" if (parenthesized_expression "(piVar16 != param_4)" ( (binary_expression "piVar16 != param_4" identifier != identifier) )) (compound_statement "{\n        do {\n          *puVar6 = puVar6 + 2;\n                    \n          (*(code *)puVar4)(puVar6,*piVar16,*piVar16 + piVar16[1],0);\n          piVar17 = piVar16 + 8;\n          iVar18 = piVar16[6];\n          *(undefined1 *)(puVar6 + 7) = *(undefined1 *)(piVar16 + 7);\n          puVar6[6] = iVar18;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)piVar16 + 0x1d);\n          piVar16 = piVar17;\n          puVar6 = puVar6 + 8;\n        } while (param_4 != piVar17);\n        puVar6 = (undefined4 *)param_1[1];\n      }" { (do_statement "do {\n          *puVar6 = puVar6 + 2;\n                    \n          (*(code *)puVar4)(puVar6,*piVar16,*piVar16 + piVar16[1],0);\n          piVar17 = piVar16 + 8;\n          iVar18 = piVar16[6];\n          *(undefined1 *)(puVar6 + 7) = *(undefined1 *)(piVar16 + 7);\n          puVar6[6] = iVar18;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)piVar16 + 0x1d);\n          piVar16 = piVar17;\n          puVar6 = puVar6 + 8;\n        } while (param_4 != piVar17);" do (compound_statement "{\n          *puVar6 = puVar6 + 2;\n                    \n          (*(code *)puVar4)(puVar6,*piVar16,*piVar16 + piVar16[1],0);\n          piVar17 = piVar16 + 8;\n          iVar18 = piVar16[6];\n          *(undefined1 *)(puVar6 + 7) = *(undefined1 *)(piVar16 + 7);\n          puVar6[6] = iVar18;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)piVar16 + 0x1d);\n          piVar16 = piVar17;\n          puVar6 = puVar6 + 8;\n        }" { (expression_statement "*puVar6 = puVar6 + 2;" (assignment_expression "*puVar6 = puVar6 + 2" (pointer_expression "*puVar6" * identifier) = (binary_expression "puVar6 + 2" identifier + number_literal)) ;) (expression_statement "(*(code *)puVar4)(puVar6,*piVar16,*piVar16 + piVar16[1],0);" (call_expression "(*(code *)puVar4)(puVar6,*piVar16,*piVar16 + piVar16[1],0)" (parenthesized_expression "(*(code *)puVar4)" ( (pointer_expression "*(code *)puVar4" * (cast_expression "(code *)puVar4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar6,*piVar16,*piVar16 + piVar16[1],0)" ( identifier , (pointer_expression "*piVar16" * identifier) , (binary_expression "*piVar16 + piVar16[1]" (pointer_expression "*piVar16" * identifier) + (subscript_expression "piVar16[1]" identifier [ number_literal ])) , number_literal ))) ;) (expression_statement "piVar17 = piVar16 + 8;" (assignment_expression "piVar17 = piVar16 + 8" identifier = (binary_expression "piVar16 + 8" identifier + number_literal)) ;) (expression_statement "iVar18 = piVar16[6];" (assignment_expression "iVar18 = piVar16[6]" identifier = (subscript_expression "piVar16[6]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(puVar6 + 7) = *(undefined1 *)(piVar16 + 7);" (assignment_expression "*(undefined1 *)(puVar6 + 7) = *(undefined1 *)(piVar16 + 7)" (pointer_expression "*(undefined1 *)(puVar6 + 7)" * (cast_expression "(undefined1 *)(puVar6 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 7)" ( (binary_expression "puVar6 + 7" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)(piVar16 + 7)" * (cast_expression "(undefined1 *)(piVar16 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar16 + 7)" ( (binary_expression "piVar16 + 7" identifier + number_literal) ))))) ;) (expression_statement "puVar6[6] = iVar18;" (assignment_expression "puVar6[6] = iVar18" (subscript_expression "puVar6[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)piVar16 + 0x1d);" (assignment_expression "*(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)piVar16 + 0x1d)" (pointer_expression "*(undefined1 *)((int)puVar6 + 0x1d)" * (cast_expression "(undefined1 *)((int)puVar6 + 0x1d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar6 + 0x1d)" ( (binary_expression "(int)puVar6 + 0x1d" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((int)piVar16 + 0x1d)" * (cast_expression "(undefined1 *)((int)piVar16 + 0x1d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0x1d)" ( (binary_expression "(int)piVar16 + 0x1d" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "piVar16 = piVar17;" (assignment_expression "piVar16 = piVar17" identifier = identifier) ;) (expression_statement "puVar6 = puVar6 + 8;" (assignment_expression "puVar6 = puVar6 + 8" identifier = (binary_expression "puVar6 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(param_4 != piVar17)" ( (binary_expression "param_4 != piVar17" identifier != identifier) )) ;) (expression_statement "puVar6 = (undefined4 *)param_1[1];" (assignment_expression "puVar6 = (undefined4 *)param_1[1]" identifier = (cast_expression "(undefined4 *)param_1[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) })) (expression_statement "puVar6 = puVar6 + (uVar20 - uVar21) * 8;" (assignment_expression "puVar6 = puVar6 + (uVar20 - uVar21) * 8" identifier = (binary_expression "puVar6 + (uVar20 - uVar21) * 8" identifier + (binary_expression "(uVar20 - uVar21) * 8" (parenthesized_expression "(uVar20 - uVar21)" ( (binary_expression "uVar20 - uVar21" identifier - identifier) )) * number_literal))) ;) (expression_statement "param_1[1] = puVar6;" (assignment_expression "param_1[1] = puVar6" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (puVar8 != param_2) {\n        puVar12 = param_2 + 2;\n        do {\n          while( true ) {\n            *puVar6 = puVar6 + 2;\n            if (puVar12 != (undefined4 *)puVar12[-2]) break;\n            uVar13 = puVar12[1];\n            uVar10 = puVar12[2];\n            uVar9 = puVar12[3];\n            puVar6[2] = *puVar12;\n            puVar6[3] = uVar13;\n            puVar6[4] = uVar10;\n            puVar6[5] = uVar9;\n            uVar1 = *(undefined1 *)(puVar12 + 5);\n            uVar9 = puVar12[4];\n            puVar6[1] = puVar12[-1];\n            puVar12[-2] = puVar12;\n            puVar14 = puVar12 + 8;\n            puVar12[-1] = 0;\n            *(undefined1 *)puVar12 = 0;\n            *(undefined1 *)(puVar6 + 7) = uVar1;\n            puVar6[6] = uVar9;\n            *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n            puVar12 = puVar14;\n            puVar6 = puVar6 + 8;\n            if (puVar8 + 2 == puVar14) goto LAB_00224324;\n          }\n          *puVar6 = (undefined4 *)puVar12[-2];\n          uVar1 = *(undefined1 *)(puVar12 + 5);\n          puVar6[2] = *puVar12;\n          uVar9 = puVar12[4];\n          puVar6[1] = puVar12[-1];\n          puVar12[-2] = puVar12;\n          puVar14 = puVar12 + 8;\n          puVar12[-1] = 0;\n          *(undefined1 *)puVar12 = 0;\n          *(undefined1 *)(puVar6 + 7) = uVar1;\n          puVar6[6] = uVar9;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n          puVar12 = puVar14;\n          puVar6 = puVar6 + 8;\n        } while (puVar8 + 2 != puVar14);\nLAB_00224324:\n        puVar6 = (undefined4 *)param_1[1];\n      }" if (parenthesized_expression "(puVar8 != param_2)" ( (binary_expression "puVar8 != param_2" identifier != identifier) )) (compound_statement "{\n        puVar12 = param_2 + 2;\n        do {\n          while( true ) {\n            *puVar6 = puVar6 + 2;\n            if (puVar12 != (undefined4 *)puVar12[-2]) break;\n            uVar13 = puVar12[1];\n            uVar10 = puVar12[2];\n            uVar9 = puVar12[3];\n            puVar6[2] = *puVar12;\n            puVar6[3] = uVar13;\n            puVar6[4] = uVar10;\n            puVar6[5] = uVar9;\n            uVar1 = *(undefined1 *)(puVar12 + 5);\n            uVar9 = puVar12[4];\n            puVar6[1] = puVar12[-1];\n            puVar12[-2] = puVar12;\n            puVar14 = puVar12 + 8;\n            puVar12[-1] = 0;\n            *(undefined1 *)puVar12 = 0;\n            *(undefined1 *)(puVar6 + 7) = uVar1;\n            puVar6[6] = uVar9;\n            *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n            puVar12 = puVar14;\n            puVar6 = puVar6 + 8;\n            if (puVar8 + 2 == puVar14) goto LAB_00224324;\n          }\n          *puVar6 = (undefined4 *)puVar12[-2];\n          uVar1 = *(undefined1 *)(puVar12 + 5);\n          puVar6[2] = *puVar12;\n          uVar9 = puVar12[4];\n          puVar6[1] = puVar12[-1];\n          puVar12[-2] = puVar12;\n          puVar14 = puVar12 + 8;\n          puVar12[-1] = 0;\n          *(undefined1 *)puVar12 = 0;\n          *(undefined1 *)(puVar6 + 7) = uVar1;\n          puVar6[6] = uVar9;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n          puVar12 = puVar14;\n          puVar6 = puVar6 + 8;\n        } while (puVar8 + 2 != puVar14);\nLAB_00224324:\n        puVar6 = (undefined4 *)param_1[1];\n      }" { (expression_statement "puVar12 = param_2 + 2;" (assignment_expression "puVar12 = param_2 + 2" identifier = (binary_expression "param_2 + 2" identifier + number_literal)) ;) (do_statement "do {\n          while( true ) {\n            *puVar6 = puVar6 + 2;\n            if (puVar12 != (undefined4 *)puVar12[-2]) break;\n            uVar13 = puVar12[1];\n            uVar10 = puVar12[2];\n            uVar9 = puVar12[3];\n            puVar6[2] = *puVar12;\n            puVar6[3] = uVar13;\n            puVar6[4] = uVar10;\n            puVar6[5] = uVar9;\n            uVar1 = *(undefined1 *)(puVar12 + 5);\n            uVar9 = puVar12[4];\n            puVar6[1] = puVar12[-1];\n            puVar12[-2] = puVar12;\n            puVar14 = puVar12 + 8;\n            puVar12[-1] = 0;\n            *(undefined1 *)puVar12 = 0;\n            *(undefined1 *)(puVar6 + 7) = uVar1;\n            puVar6[6] = uVar9;\n            *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n            puVar12 = puVar14;\n            puVar6 = puVar6 + 8;\n            if (puVar8 + 2 == puVar14) goto LAB_00224324;\n          }\n          *puVar6 = (undefined4 *)puVar12[-2];\n          uVar1 = *(undefined1 *)(puVar12 + 5);\n          puVar6[2] = *puVar12;\n          uVar9 = puVar12[4];\n          puVar6[1] = puVar12[-1];\n          puVar12[-2] = puVar12;\n          puVar14 = puVar12 + 8;\n          puVar12[-1] = 0;\n          *(undefined1 *)puVar12 = 0;\n          *(undefined1 *)(puVar6 + 7) = uVar1;\n          puVar6[6] = uVar9;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n          puVar12 = puVar14;\n          puVar6 = puVar6 + 8;\n        } while (puVar8 + 2 != puVar14);" do (compound_statement "{\n          while( true ) {\n            *puVar6 = puVar6 + 2;\n            if (puVar12 != (undefined4 *)puVar12[-2]) break;\n            uVar13 = puVar12[1];\n            uVar10 = puVar12[2];\n            uVar9 = puVar12[3];\n            puVar6[2] = *puVar12;\n            puVar6[3] = uVar13;\n            puVar6[4] = uVar10;\n            puVar6[5] = uVar9;\n            uVar1 = *(undefined1 *)(puVar12 + 5);\n            uVar9 = puVar12[4];\n            puVar6[1] = puVar12[-1];\n            puVar12[-2] = puVar12;\n            puVar14 = puVar12 + 8;\n            puVar12[-1] = 0;\n            *(undefined1 *)puVar12 = 0;\n            *(undefined1 *)(puVar6 + 7) = uVar1;\n            puVar6[6] = uVar9;\n            *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n            puVar12 = puVar14;\n            puVar6 = puVar6 + 8;\n            if (puVar8 + 2 == puVar14) goto LAB_00224324;\n          }\n          *puVar6 = (undefined4 *)puVar12[-2];\n          uVar1 = *(undefined1 *)(puVar12 + 5);\n          puVar6[2] = *puVar12;\n          uVar9 = puVar12[4];\n          puVar6[1] = puVar12[-1];\n          puVar12[-2] = puVar12;\n          puVar14 = puVar12 + 8;\n          puVar12[-1] = 0;\n          *(undefined1 *)puVar12 = 0;\n          *(undefined1 *)(puVar6 + 7) = uVar1;\n          puVar6[6] = uVar9;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n          puVar12 = puVar14;\n          puVar6 = puVar6 + 8;\n        }" { (while_statement "while( true ) {\n            *puVar6 = puVar6 + 2;\n            if (puVar12 != (undefined4 *)puVar12[-2]) break;\n            uVar13 = puVar12[1];\n            uVar10 = puVar12[2];\n            uVar9 = puVar12[3];\n            puVar6[2] = *puVar12;\n            puVar6[3] = uVar13;\n            puVar6[4] = uVar10;\n            puVar6[5] = uVar9;\n            uVar1 = *(undefined1 *)(puVar12 + 5);\n            uVar9 = puVar12[4];\n            puVar6[1] = puVar12[-1];\n            puVar12[-2] = puVar12;\n            puVar14 = puVar12 + 8;\n            puVar12[-1] = 0;\n            *(undefined1 *)puVar12 = 0;\n            *(undefined1 *)(puVar6 + 7) = uVar1;\n            puVar6[6] = uVar9;\n            *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n            puVar12 = puVar14;\n            puVar6 = puVar6 + 8;\n            if (puVar8 + 2 == puVar14) goto LAB_00224324;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            *puVar6 = puVar6 + 2;\n            if (puVar12 != (undefined4 *)puVar12[-2]) break;\n            uVar13 = puVar12[1];\n            uVar10 = puVar12[2];\n            uVar9 = puVar12[3];\n            puVar6[2] = *puVar12;\n            puVar6[3] = uVar13;\n            puVar6[4] = uVar10;\n            puVar6[5] = uVar9;\n            uVar1 = *(undefined1 *)(puVar12 + 5);\n            uVar9 = puVar12[4];\n            puVar6[1] = puVar12[-1];\n            puVar12[-2] = puVar12;\n            puVar14 = puVar12 + 8;\n            puVar12[-1] = 0;\n            *(undefined1 *)puVar12 = 0;\n            *(undefined1 *)(puVar6 + 7) = uVar1;\n            puVar6[6] = uVar9;\n            *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n            puVar12 = puVar14;\n            puVar6 = puVar6 + 8;\n            if (puVar8 + 2 == puVar14) goto LAB_00224324;\n          }" { (expression_statement "*puVar6 = puVar6 + 2;" (assignment_expression "*puVar6 = puVar6 + 2" (pointer_expression "*puVar6" * identifier) = (binary_expression "puVar6 + 2" identifier + number_literal)) ;) (if_statement "if (puVar12 != (undefined4 *)puVar12[-2]) break;" if (parenthesized_expression "(puVar12 != (undefined4 *)puVar12[-2])" ( (binary_expression "puVar12 != (undefined4 *)puVar12[-2]" identifier != (cast_expression "(undefined4 *)puVar12[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar12[-2]" identifier [ number_literal ]))) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = puVar12[1];" (assignment_expression "uVar13 = puVar12[1]" identifier = (subscript_expression "puVar12[1]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = puVar12[2];" (assignment_expression "uVar10 = puVar12[2]" identifier = (subscript_expression "puVar12[2]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = puVar12[3];" (assignment_expression "uVar9 = puVar12[3]" identifier = (subscript_expression "puVar12[3]" identifier [ number_literal ])) ;) (expression_statement "puVar6[2] = *puVar12;" (assignment_expression "puVar6[2] = *puVar12" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "puVar6[3] = uVar13;" (assignment_expression "puVar6[3] = uVar13" (subscript_expression "puVar6[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[4] = uVar10;" (assignment_expression "puVar6[4] = uVar10" (subscript_expression "puVar6[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[5] = uVar9;" (assignment_expression "puVar6[5] = uVar9" (subscript_expression "puVar6[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar1 = *(undefined1 *)(puVar12 + 5);" (assignment_expression "uVar1 = *(undefined1 *)(puVar12 + 5)" identifier = (pointer_expression "*(undefined1 *)(puVar12 + 5)" * (cast_expression "(undefined1 *)(puVar12 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 5)" ( (binary_expression "puVar12 + 5" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = puVar12[4];" (assignment_expression "uVar9 = puVar12[4]" identifier = (subscript_expression "puVar12[4]" identifier [ number_literal ])) ;) (expression_statement "puVar6[1] = puVar12[-1];" (assignment_expression "puVar6[1] = puVar12[-1]" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = (subscript_expression "puVar12[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar12[-2] = puVar12;" (assignment_expression "puVar12[-2] = puVar12" (subscript_expression "puVar12[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14 = puVar12 + 8;" (assignment_expression "puVar14 = puVar12 + 8" identifier = (binary_expression "puVar12 + 8" identifier + number_literal)) ;) (expression_statement "puVar12[-1] = 0;" (assignment_expression "puVar12[-1] = 0" (subscript_expression "puVar12[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)puVar12 = 0;" (assignment_expression "*(undefined1 *)puVar12 = 0" (pointer_expression "*(undefined1 *)puVar12" * (cast_expression "(undefined1 *)puVar12" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar6 + 7) = uVar1;" (assignment_expression "*(undefined1 *)(puVar6 + 7) = uVar1" (pointer_expression "*(undefined1 *)(puVar6 + 7)" * (cast_expression "(undefined1 *)(puVar6 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 7)" ( (binary_expression "puVar6 + 7" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar6[6] = uVar9;" (assignment_expression "puVar6[6] = uVar9" (subscript_expression "puVar6[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);" (assignment_expression "*(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15)" (pointer_expression "*(undefined1 *)((int)puVar6 + 0x1d)" * (cast_expression "(undefined1 *)((int)puVar6 + 0x1d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar6 + 0x1d)" ( (binary_expression "(int)puVar6 + 0x1d" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((int)puVar12 + 0x15)" * (cast_expression "(undefined1 *)((int)puVar12 + 0x15)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + 0x15)" ( (binary_expression "(int)puVar12 + 0x15" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar12 = puVar14;" (assignment_expression "puVar12 = puVar14" identifier = identifier) ;) (expression_statement "puVar6 = puVar6 + 8;" (assignment_expression "puVar6 = puVar6 + 8" identifier = (binary_expression "puVar6 + 8" identifier + number_literal)) ;) (if_statement "if (puVar8 + 2 == puVar14) goto LAB_00224324;" if (parenthesized_expression "(puVar8 + 2 == puVar14)" ( (binary_expression "puVar8 + 2 == puVar14" (binary_expression "puVar8 + 2" identifier + number_literal) == identifier) )) (goto_statement "goto LAB_00224324;" goto statement_identifier ;)) })) (expression_statement "*puVar6 = (undefined4 *)puVar12[-2];" (assignment_expression "*puVar6 = (undefined4 *)puVar12[-2]" (pointer_expression "*puVar6" * identifier) = (cast_expression "(undefined4 *)puVar12[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar12[-2]" identifier [ number_literal ]))) ;) (expression_statement "uVar1 = *(undefined1 *)(puVar12 + 5);" (assignment_expression "uVar1 = *(undefined1 *)(puVar12 + 5)" identifier = (pointer_expression "*(undefined1 *)(puVar12 + 5)" * (cast_expression "(undefined1 *)(puVar12 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 5)" ( (binary_expression "puVar12 + 5" identifier + number_literal) ))))) ;) (expression_statement "puVar6[2] = *puVar12;" (assignment_expression "puVar6[2] = *puVar12" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "uVar9 = puVar12[4];" (assignment_expression "uVar9 = puVar12[4]" identifier = (subscript_expression "puVar12[4]" identifier [ number_literal ])) ;) (expression_statement "puVar6[1] = puVar12[-1];" (assignment_expression "puVar6[1] = puVar12[-1]" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = (subscript_expression "puVar12[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar12[-2] = puVar12;" (assignment_expression "puVar12[-2] = puVar12" (subscript_expression "puVar12[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14 = puVar12 + 8;" (assignment_expression "puVar14 = puVar12 + 8" identifier = (binary_expression "puVar12 + 8" identifier + number_literal)) ;) (expression_statement "puVar12[-1] = 0;" (assignment_expression "puVar12[-1] = 0" (subscript_expression "puVar12[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)puVar12 = 0;" (assignment_expression "*(undefined1 *)puVar12 = 0" (pointer_expression "*(undefined1 *)puVar12" * (cast_expression "(undefined1 *)puVar12" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar6 + 7) = uVar1;" (assignment_expression "*(undefined1 *)(puVar6 + 7) = uVar1" (pointer_expression "*(undefined1 *)(puVar6 + 7)" * (cast_expression "(undefined1 *)(puVar6 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 7)" ( (binary_expression "puVar6 + 7" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar6[6] = uVar9;" (assignment_expression "puVar6[6] = uVar9" (subscript_expression "puVar6[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);" (assignment_expression "*(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15)" (pointer_expression "*(undefined1 *)((int)puVar6 + 0x1d)" * (cast_expression "(undefined1 *)((int)puVar6 + 0x1d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar6 + 0x1d)" ( (binary_expression "(int)puVar6 + 0x1d" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((int)puVar12 + 0x15)" * (cast_expression "(undefined1 *)((int)puVar12 + 0x15)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + 0x15)" ( (binary_expression "(int)puVar12 + 0x15" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar12 = puVar14;" (assignment_expression "puVar12 = puVar14" identifier = identifier) ;) (expression_statement "puVar6 = puVar6 + 8;" (assignment_expression "puVar6 = puVar6 + 8" identifier = (binary_expression "puVar6 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar8 + 2 != puVar14)" ( (binary_expression "puVar8 + 2 != puVar14" (binary_expression "puVar8 + 2" identifier + number_literal) != identifier) )) ;) (labeled_statement "LAB_00224324:\n        puVar6 = (undefined4 *)param_1[1];" statement_identifier : (expression_statement "puVar6 = (undefined4 *)param_1[1];" (assignment_expression "puVar6 = (undefined4 *)param_1[1]" identifier = (cast_expression "(undefined4 *)param_1[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;)) })) (expression_statement "param_1[1] = (int)puVar6 + iVar5;" (assignment_expression "param_1[1] = (int)puVar6 + iVar5" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (binary_expression "(int)puVar6 + iVar5" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (if_statement "if (0 < iVar5) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar21 = uVar21 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar21 != 0);\n      }" if (parenthesized_expression "(0 < iVar5)" ( (binary_expression "0 < iVar5" number_literal < identifier) )) (compound_statement "{\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar21 = uVar21 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar21 != 0);\n      }" { (do_statement "do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar21 = uVar21 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar21 != 0);" do (compound_statement "{\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar21 = uVar21 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        }" { (expression_statement "(*(code *)PTR__M_assign_00432d78)(param_2,param_3);" (call_expression "(*(code *)PTR__M_assign_00432d78)(param_2,param_3)" (parenthesized_expression "(*(code *)PTR__M_assign_00432d78)" ( (pointer_expression "*(code *)PTR__M_assign_00432d78" * (cast_expression "(code *)PTR__M_assign_00432d78" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2,param_3)" ( identifier , identifier ))) ;) (expression_statement "uVar21 = uVar21 - 1;" (assignment_expression "uVar21 = uVar21 - 1" identifier = (binary_expression "uVar21 - 1" identifier - number_literal)) ;) (expression_statement "iVar18 = param_3[6];" (assignment_expression "iVar18 = param_3[6]" identifier = (subscript_expression "param_3[6]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);" (assignment_expression "*(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7)" (pointer_expression "*(undefined1 *)(param_2 + 7)" * (cast_expression "(undefined1 *)(param_2 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)(param_3 + 7)" * (cast_expression "(undefined1 *)(param_3 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 7)" ( (binary_expression "param_3 + 7" identifier + number_literal) ))))) ;) (expression_statement "param_2[6] = iVar18;" (assignment_expression "param_2[6] = iVar18" (subscript_expression "param_2[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);" (assignment_expression "*(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d)" (pointer_expression "*(undefined1 *)((int)param_2 + 0x1d)" * (cast_expression "(undefined1 *)((int)param_2 + 0x1d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x1d)" ( (binary_expression "(int)param_2 + 0x1d" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((int)param_3 + 0x1d)" * (cast_expression "(undefined1 *)((int)param_3 + 0x1d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3 + 0x1d)" ( (binary_expression "(int)param_3 + 0x1d" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "param_3 = param_3 + 8;" (assignment_expression "param_3 = param_3 + 8" identifier = (binary_expression "param_3 + 8" identifier + number_literal)) ;) (expression_statement "param_2 = param_2 + 8;" (assignment_expression "param_2 = param_2 + 8" identifier = (binary_expression "param_2 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar21 != 0)" ( (binary_expression "uVar21 != 0" identifier != number_literal) )) ;) })) }))) (return_statement "return;" return ;) })) (expression_statement "puVar6 = (undefined4 *)*param_1;" (assignment_expression "puVar6 = (undefined4 *)*param_1" identifier = (cast_expression "(undefined4 *)*param_1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "uVar21 = 0x7ffffff;" (assignment_expression "uVar21 = 0x7ffffff" identifier = number_literal) ;) (expression_statement "uVar7 = (int)puVar8 - (int)puVar6 >> 5;" (assignment_expression "uVar7 = (int)puVar8 - (int)puVar6 >> 5" identifier = (binary_expression "(int)puVar8 - (int)puVar6 >> 5" (binary_expression "(int)puVar8 - (int)puVar6" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (if_statement "if (0x7ffffff - uVar7 < uVar20) {\n    (*(code *)PTR___throw_length_error_00432480)(PTR_DAT_0043226c + -0x6b60);\n    return;\n  }" if (parenthesized_expression "(0x7ffffff - uVar7 < uVar20)" ( (binary_expression "0x7ffffff - uVar7 < uVar20" (binary_expression "0x7ffffff - uVar7" number_literal - identifier) < identifier) )) (compound_statement "{\n    (*(code *)PTR___throw_length_error_00432480)(PTR_DAT_0043226c + -0x6b60);\n    return;\n  }" { (expression_statement "(*(code *)PTR___throw_length_error_00432480)(PTR_DAT_0043226c + -0x6b60);" (call_expression "(*(code *)PTR___throw_length_error_00432480)(PTR_DAT_0043226c + -0x6b60)" (parenthesized_expression "(*(code *)PTR___throw_length_error_00432480)" ( (pointer_expression "*(code *)PTR___throw_length_error_00432480" * (cast_expression "(code *)PTR___throw_length_error_00432480" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0043226c + -0x6b60)" ( (binary_expression "PTR_DAT_0043226c + -0x6b60" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (if_statement "if (uVar20 < uVar7) {\n    uVar20 = uVar7;\n  }" if (parenthesized_expression "(uVar20 < uVar7)" ( (binary_expression "uVar20 < uVar7" identifier < identifier) )) (compound_statement "{\n    uVar20 = uVar7;\n  }" { (expression_statement "uVar20 = uVar7;" (assignment_expression "uVar20 = uVar7" identifier = identifier) ;) })) (expression_statement "uVar20 = uVar20 + uVar7;" (assignment_expression "uVar20 = uVar20 + uVar7" identifier = (binary_expression "uVar20 + uVar7" identifier + identifier)) ;) (if_statement "if ((uVar20 < uVar7) || (0x7ffffff < uVar20)) {\n    iVar18 = -0x20;\n  }\n  else {\n    puVar8 = (undefined4 *)0x0;\n    uVar21 = uVar20;\n    if (uVar20 == 0) goto LAB_00224414;\n    iVar18 = uVar20 * 0x20;\n  }" if (parenthesized_expression "((uVar20 < uVar7) || (0x7ffffff < uVar20))" ( (binary_expression "(uVar20 < uVar7) || (0x7ffffff < uVar20)" (parenthesized_expression "(uVar20 < uVar7)" ( (binary_expression "uVar20 < uVar7" identifier < identifier) )) || (parenthesized_expression "(0x7ffffff < uVar20)" ( (binary_expression "0x7ffffff < uVar20" number_literal < identifier) ))) )) (compound_statement "{\n    iVar18 = -0x20;\n  }" { (expression_statement "iVar18 = -0x20;" (assignment_expression "iVar18 = -0x20" identifier = number_literal) ;) }) (else_clause "else {\n    puVar8 = (undefined4 *)0x0;\n    uVar21 = uVar20;\n    if (uVar20 == 0) goto LAB_00224414;\n    iVar18 = uVar20 * 0x20;\n  }" else (compound_statement "{\n    puVar8 = (undefined4 *)0x0;\n    uVar21 = uVar20;\n    if (uVar20 == 0) goto LAB_00224414;\n    iVar18 = uVar20 * 0x20;\n  }" { (expression_statement "puVar8 = (undefined4 *)0x0;" (assignment_expression "puVar8 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar21 = uVar20;" (assignment_expression "uVar21 = uVar20" identifier = identifier) ;) (if_statement "if (uVar20 == 0) goto LAB_00224414;" if (parenthesized_expression "(uVar20 == 0)" ( (binary_expression "uVar20 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00224414;" goto statement_identifier ;)) (expression_statement "iVar18 = uVar20 * 0x20;" (assignment_expression "iVar18 = uVar20 * 0x20" identifier = (binary_expression "uVar20 * 0x20" identifier * number_literal)) ;) }))) (expression_statement "puVar8 = (undefined4 *)(*(code *)PTR_operator_new_0043233c)(iVar18);" (assignment_expression "puVar8 = (undefined4 *)(*(code *)PTR_operator_new_0043233c)(iVar18)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_operator_new_0043233c)(iVar18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_0043233c)(iVar18)" (parenthesized_expression "(*(code *)PTR_operator_new_0043233c)" ( (pointer_expression "*(code *)PTR_operator_new_0043233c" * (cast_expression "(code *)PTR_operator_new_0043233c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar18)" ( identifier ))))) ;) (expression_statement "puVar6 = (undefined4 *)*param_1;" (assignment_expression "puVar6 = (undefined4 *)*param_1" identifier = (cast_expression "(undefined4 *)*param_1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (labeled_statement "LAB_00224414:\n  puVar12 = puVar8;" statement_identifier : (expression_statement "puVar12 = puVar8;" (assignment_expression "puVar12 = puVar8" identifier = identifier) ;)) (expression_statement "pcVar3 = (code *)PTR__M_construct<char*>_0043248c;" (assignment_expression "pcVar3 = (code *)PTR__M_construct<char*>_0043248c" identifier = (binary_expression "(code *)PTR__M_construct<char*>_0043248c" (binary_expression "(code *)PTR__M_construct<char" (cast_expression "(code *)PTR__M_construct" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) < identifier) (ERROR "*" *) > identifier)) ;) (if_statement "if (puVar6 != param_2) {\n    puVar12 = puVar6 + 2;\n    puVar14 = puVar8;\n    do {\n      while( true ) {\n        *puVar14 = puVar14 + 2;\n        if ((undefined4 *)puVar12[-2] != puVar12) break;\n        uVar13 = puVar12[1];\n        uVar10 = puVar12[2];\n        uVar9 = puVar12[3];\n        puVar14[2] = *puVar12;\n        puVar14[3] = uVar13;\n        puVar14[4] = uVar10;\n        puVar14[5] = uVar9;\n        uVar1 = *(undefined1 *)(puVar12 + 5);\n        uVar9 = puVar12[4];\n        puVar14[1] = puVar12[-1];\n        puVar12[-2] = puVar12;\n        puVar15 = puVar12 + 8;\n        puVar12[-1] = 0;\n        *(undefined1 *)puVar12 = 0;\n        *(undefined1 *)(puVar14 + 7) = uVar1;\n        puVar14[6] = uVar9;\n        *(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n        puVar12 = puVar15;\n        puVar14 = puVar14 + 8;\n        if (puVar15 == param_2 + 2) goto LAB_00224504;\n      }\n      *puVar14 = (undefined4 *)puVar12[-2];\n      uVar1 = *(undefined1 *)(puVar12 + 5);\n      puVar14[2] = *puVar12;\n      uVar9 = puVar12[4];\n      puVar14[1] = puVar12[-1];\n      puVar12[-2] = puVar12;\n      puVar15 = puVar12 + 8;\n      puVar12[-1] = 0;\n      *(undefined1 *)puVar12 = 0;\n      *(undefined1 *)(puVar14 + 7) = uVar1;\n      puVar14[6] = uVar9;\n      *(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n      puVar12 = puVar15;\n      puVar14 = puVar14 + 8;\n    } while (puVar15 != param_2 + 2);\nLAB_00224504:\n    puVar12 = puVar8 + (((uint)((int)param_2 + (-0x20 - (int)puVar6)) >> 5) + 1) * 8;\n    pcVar3 = (code *)PTR__M_construct<char*>_0043248c;\n  }" if (parenthesized_expression "(puVar6 != param_2)" ( (binary_expression "puVar6 != param_2" identifier != identifier) )) (compound_statement "{\n    puVar12 = puVar6 + 2;\n    puVar14 = puVar8;\n    do {\n      while( true ) {\n        *puVar14 = puVar14 + 2;\n        if ((undefined4 *)puVar12[-2] != puVar12) break;\n        uVar13 = puVar12[1];\n        uVar10 = puVar12[2];\n        uVar9 = puVar12[3];\n        puVar14[2] = *puVar12;\n        puVar14[3] = uVar13;\n        puVar14[4] = uVar10;\n        puVar14[5] = uVar9;\n        uVar1 = *(undefined1 *)(puVar12 + 5);\n        uVar9 = puVar12[4];\n        puVar14[1] = puVar12[-1];\n        puVar12[-2] = puVar12;\n        puVar15 = puVar12 + 8;\n        puVar12[-1] = 0;\n        *(undefined1 *)puVar12 = 0;\n        *(undefined1 *)(puVar14 + 7) = uVar1;\n        puVar14[6] = uVar9;\n        *(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n        puVar12 = puVar15;\n        puVar14 = puVar14 + 8;\n        if (puVar15 == param_2 + 2) goto LAB_00224504;\n      }\n      *puVar14 = (undefined4 *)puVar12[-2];\n      uVar1 = *(undefined1 *)(puVar12 + 5);\n      puVar14[2] = *puVar12;\n      uVar9 = puVar12[4];\n      puVar14[1] = puVar12[-1];\n      puVar12[-2] = puVar12;\n      puVar15 = puVar12 + 8;\n      puVar12[-1] = 0;\n      *(undefined1 *)puVar12 = 0;\n      *(undefined1 *)(puVar14 + 7) = uVar1;\n      puVar14[6] = uVar9;\n      *(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n      puVar12 = puVar15;\n      puVar14 = puVar14 + 8;\n    } while (puVar15 != param_2 + 2);\nLAB_00224504:\n    puVar12 = puVar8 + (((uint)((int)param_2 + (-0x20 - (int)puVar6)) >> 5) + 1) * 8;\n    pcVar3 = (code *)PTR__M_construct<char*>_0043248c;\n  }" { (expression_statement "puVar12 = puVar6 + 2;" (assignment_expression "puVar12 = puVar6 + 2" identifier = (binary_expression "puVar6 + 2" identifier + number_literal)) ;) (expression_statement "puVar14 = puVar8;" (assignment_expression "puVar14 = puVar8" identifier = identifier) ;) (do_statement "do {\n      while( true ) {\n        *puVar14 = puVar14 + 2;\n        if ((undefined4 *)puVar12[-2] != puVar12) break;\n        uVar13 = puVar12[1];\n        uVar10 = puVar12[2];\n        uVar9 = puVar12[3];\n        puVar14[2] = *puVar12;\n        puVar14[3] = uVar13;\n        puVar14[4] = uVar10;\n        puVar14[5] = uVar9;\n        uVar1 = *(undefined1 *)(puVar12 + 5);\n        uVar9 = puVar12[4];\n        puVar14[1] = puVar12[-1];\n        puVar12[-2] = puVar12;\n        puVar15 = puVar12 + 8;\n        puVar12[-1] = 0;\n        *(undefined1 *)puVar12 = 0;\n        *(undefined1 *)(puVar14 + 7) = uVar1;\n        puVar14[6] = uVar9;\n        *(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n        puVar12 = puVar15;\n        puVar14 = puVar14 + 8;\n        if (puVar15 == param_2 + 2) goto LAB_00224504;\n      }\n      *puVar14 = (undefined4 *)puVar12[-2];\n      uVar1 = *(undefined1 *)(puVar12 + 5);\n      puVar14[2] = *puVar12;\n      uVar9 = puVar12[4];\n      puVar14[1] = puVar12[-1];\n      puVar12[-2] = puVar12;\n      puVar15 = puVar12 + 8;\n      puVar12[-1] = 0;\n      *(undefined1 *)puVar12 = 0;\n      *(undefined1 *)(puVar14 + 7) = uVar1;\n      puVar14[6] = uVar9;\n      *(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n      puVar12 = puVar15;\n      puVar14 = puVar14 + 8;\n    } while (puVar15 != param_2 + 2);" do (compound_statement "{\n      while( true ) {\n        *puVar14 = puVar14 + 2;\n        if ((undefined4 *)puVar12[-2] != puVar12) break;\n        uVar13 = puVar12[1];\n        uVar10 = puVar12[2];\n        uVar9 = puVar12[3];\n        puVar14[2] = *puVar12;\n        puVar14[3] = uVar13;\n        puVar14[4] = uVar10;\n        puVar14[5] = uVar9;\n        uVar1 = *(undefined1 *)(puVar12 + 5);\n        uVar9 = puVar12[4];\n        puVar14[1] = puVar12[-1];\n        puVar12[-2] = puVar12;\n        puVar15 = puVar12 + 8;\n        puVar12[-1] = 0;\n        *(undefined1 *)puVar12 = 0;\n        *(undefined1 *)(puVar14 + 7) = uVar1;\n        puVar14[6] = uVar9;\n        *(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n        puVar12 = puVar15;\n        puVar14 = puVar14 + 8;\n        if (puVar15 == param_2 + 2) goto LAB_00224504;\n      }\n      *puVar14 = (undefined4 *)puVar12[-2];\n      uVar1 = *(undefined1 *)(puVar12 + 5);\n      puVar14[2] = *puVar12;\n      uVar9 = puVar12[4];\n      puVar14[1] = puVar12[-1];\n      puVar12[-2] = puVar12;\n      puVar15 = puVar12 + 8;\n      puVar12[-1] = 0;\n      *(undefined1 *)puVar12 = 0;\n      *(undefined1 *)(puVar14 + 7) = uVar1;\n      puVar14[6] = uVar9;\n      *(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n      puVar12 = puVar15;\n      puVar14 = puVar14 + 8;\n    }" { (while_statement "while( true ) {\n        *puVar14 = puVar14 + 2;\n        if ((undefined4 *)puVar12[-2] != puVar12) break;\n        uVar13 = puVar12[1];\n        uVar10 = puVar12[2];\n        uVar9 = puVar12[3];\n        puVar14[2] = *puVar12;\n        puVar14[3] = uVar13;\n        puVar14[4] = uVar10;\n        puVar14[5] = uVar9;\n        uVar1 = *(undefined1 *)(puVar12 + 5);\n        uVar9 = puVar12[4];\n        puVar14[1] = puVar12[-1];\n        puVar12[-2] = puVar12;\n        puVar15 = puVar12 + 8;\n        puVar12[-1] = 0;\n        *(undefined1 *)puVar12 = 0;\n        *(undefined1 *)(puVar14 + 7) = uVar1;\n        puVar14[6] = uVar9;\n        *(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n        puVar12 = puVar15;\n        puVar14 = puVar14 + 8;\n        if (puVar15 == param_2 + 2) goto LAB_00224504;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        *puVar14 = puVar14 + 2;\n        if ((undefined4 *)puVar12[-2] != puVar12) break;\n        uVar13 = puVar12[1];\n        uVar10 = puVar12[2];\n        uVar9 = puVar12[3];\n        puVar14[2] = *puVar12;\n        puVar14[3] = uVar13;\n        puVar14[4] = uVar10;\n        puVar14[5] = uVar9;\n        uVar1 = *(undefined1 *)(puVar12 + 5);\n        uVar9 = puVar12[4];\n        puVar14[1] = puVar12[-1];\n        puVar12[-2] = puVar12;\n        puVar15 = puVar12 + 8;\n        puVar12[-1] = 0;\n        *(undefined1 *)puVar12 = 0;\n        *(undefined1 *)(puVar14 + 7) = uVar1;\n        puVar14[6] = uVar9;\n        *(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n        puVar12 = puVar15;\n        puVar14 = puVar14 + 8;\n        if (puVar15 == param_2 + 2) goto LAB_00224504;\n      }" { (expression_statement "*puVar14 = puVar14 + 2;" (assignment_expression "*puVar14 = puVar14 + 2" (pointer_expression "*puVar14" * identifier) = (binary_expression "puVar14 + 2" identifier + number_literal)) ;) (if_statement "if ((undefined4 *)puVar12[-2] != puVar12) break;" if (parenthesized_expression "((undefined4 *)puVar12[-2] != puVar12)" ( (binary_expression "(undefined4 *)puVar12[-2] != puVar12" (cast_expression "(undefined4 *)puVar12[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar12[-2]" identifier [ number_literal ])) != identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = puVar12[1];" (assignment_expression "uVar13 = puVar12[1]" identifier = (subscript_expression "puVar12[1]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = puVar12[2];" (assignment_expression "uVar10 = puVar12[2]" identifier = (subscript_expression "puVar12[2]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = puVar12[3];" (assignment_expression "uVar9 = puVar12[3]" identifier = (subscript_expression "puVar12[3]" identifier [ number_literal ])) ;) (expression_statement "puVar14[2] = *puVar12;" (assignment_expression "puVar14[2] = *puVar12" (subscript_expression "puVar14[2]" identifier [ number_literal ]) = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "puVar14[3] = uVar13;" (assignment_expression "puVar14[3] = uVar13" (subscript_expression "puVar14[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[4] = uVar10;" (assignment_expression "puVar14[4] = uVar10" (subscript_expression "puVar14[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[5] = uVar9;" (assignment_expression "puVar14[5] = uVar9" (subscript_expression "puVar14[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar1 = *(undefined1 *)(puVar12 + 5);" (assignment_expression "uVar1 = *(undefined1 *)(puVar12 + 5)" identifier = (pointer_expression "*(undefined1 *)(puVar12 + 5)" * (cast_expression "(undefined1 *)(puVar12 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 5)" ( (binary_expression "puVar12 + 5" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = puVar12[4];" (assignment_expression "uVar9 = puVar12[4]" identifier = (subscript_expression "puVar12[4]" identifier [ number_literal ])) ;) (expression_statement "puVar14[1] = puVar12[-1];" (assignment_expression "puVar14[1] = puVar12[-1]" (subscript_expression "puVar14[1]" identifier [ number_literal ]) = (subscript_expression "puVar12[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar12[-2] = puVar12;" (assignment_expression "puVar12[-2] = puVar12" (subscript_expression "puVar12[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15 = puVar12 + 8;" (assignment_expression "puVar15 = puVar12 + 8" identifier = (binary_expression "puVar12 + 8" identifier + number_literal)) ;) (expression_statement "puVar12[-1] = 0;" (assignment_expression "puVar12[-1] = 0" (subscript_expression "puVar12[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)puVar12 = 0;" (assignment_expression "*(undefined1 *)puVar12 = 0" (pointer_expression "*(undefined1 *)puVar12" * (cast_expression "(undefined1 *)puVar12" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar14 + 7) = uVar1;" (assignment_expression "*(undefined1 *)(puVar14 + 7) = uVar1" (pointer_expression "*(undefined1 *)(puVar14 + 7)" * (cast_expression "(undefined1 *)(puVar14 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 7)" ( (binary_expression "puVar14 + 7" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar14[6] = uVar9;" (assignment_expression "puVar14[6] = uVar9" (subscript_expression "puVar14[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);" (assignment_expression "*(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15)" (pointer_expression "*(undefined1 *)((int)puVar14 + 0x1d)" * (cast_expression "(undefined1 *)((int)puVar14 + 0x1d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar14 + 0x1d)" ( (binary_expression "(int)puVar14 + 0x1d" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((int)puVar12 + 0x15)" * (cast_expression "(undefined1 *)((int)puVar12 + 0x15)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + 0x15)" ( (binary_expression "(int)puVar12 + 0x15" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar12 = puVar15;" (assignment_expression "puVar12 = puVar15" identifier = identifier) ;) (expression_statement "puVar14 = puVar14 + 8;" (assignment_expression "puVar14 = puVar14 + 8" identifier = (binary_expression "puVar14 + 8" identifier + number_literal)) ;) (if_statement "if (puVar15 == param_2 + 2) goto LAB_00224504;" if (parenthesized_expression "(puVar15 == param_2 + 2)" ( (binary_expression "puVar15 == param_2 + 2" identifier == (binary_expression "param_2 + 2" identifier + number_literal)) )) (goto_statement "goto LAB_00224504;" goto statement_identifier ;)) })) (expression_statement "*puVar14 = (undefined4 *)puVar12[-2];" (assignment_expression "*puVar14 = (undefined4 *)puVar12[-2]" (pointer_expression "*puVar14" * identifier) = (cast_expression "(undefined4 *)puVar12[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar12[-2]" identifier [ number_literal ]))) ;) (expression_statement "uVar1 = *(undefined1 *)(puVar12 + 5);" (assignment_expression "uVar1 = *(undefined1 *)(puVar12 + 5)" identifier = (pointer_expression "*(undefined1 *)(puVar12 + 5)" * (cast_expression "(undefined1 *)(puVar12 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 5)" ( (binary_expression "puVar12 + 5" identifier + number_literal) ))))) ;) (expression_statement "puVar14[2] = *puVar12;" (assignment_expression "puVar14[2] = *puVar12" (subscript_expression "puVar14[2]" identifier [ number_literal ]) = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "uVar9 = puVar12[4];" (assignment_expression "uVar9 = puVar12[4]" identifier = (subscript_expression "puVar12[4]" identifier [ number_literal ])) ;) (expression_statement "puVar14[1] = puVar12[-1];" (assignment_expression "puVar14[1] = puVar12[-1]" (subscript_expression "puVar14[1]" identifier [ number_literal ]) = (subscript_expression "puVar12[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar12[-2] = puVar12;" (assignment_expression "puVar12[-2] = puVar12" (subscript_expression "puVar12[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15 = puVar12 + 8;" (assignment_expression "puVar15 = puVar12 + 8" identifier = (binary_expression "puVar12 + 8" identifier + number_literal)) ;) (expression_statement "puVar12[-1] = 0;" (assignment_expression "puVar12[-1] = 0" (subscript_expression "puVar12[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)puVar12 = 0;" (assignment_expression "*(undefined1 *)puVar12 = 0" (pointer_expression "*(undefined1 *)puVar12" * (cast_expression "(undefined1 *)puVar12" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar14 + 7) = uVar1;" (assignment_expression "*(undefined1 *)(puVar14 + 7) = uVar1" (pointer_expression "*(undefined1 *)(puVar14 + 7)" * (cast_expression "(undefined1 *)(puVar14 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 7)" ( (binary_expression "puVar14 + 7" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar14[6] = uVar9;" (assignment_expression "puVar14[6] = uVar9" (subscript_expression "puVar14[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);" (assignment_expression "*(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15)" (pointer_expression "*(undefined1 *)((int)puVar14 + 0x1d)" * (cast_expression "(undefined1 *)((int)puVar14 + 0x1d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar14 + 0x1d)" ( (binary_expression "(int)puVar14 + 0x1d" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((int)puVar12 + 0x15)" * (cast_expression "(undefined1 *)((int)puVar12 + 0x15)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + 0x15)" ( (binary_expression "(int)puVar12 + 0x15" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar12 = puVar15;" (assignment_expression "puVar12 = puVar15" identifier = identifier) ;) (expression_statement "puVar14 = puVar14 + 8;" (assignment_expression "puVar14 = puVar14 + 8" identifier = (binary_expression "puVar14 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar15 != param_2 + 2)" ( (binary_expression "puVar15 != param_2 + 2" identifier != (binary_expression "param_2 + 2" identifier + number_literal)) )) ;) (labeled_statement "LAB_00224504:\n    puVar12 = puVar8 + (((uint)((int)param_2 + (-0x20 - (int)puVar6)) >> 5) + 1) * 8;" statement_identifier : (expression_statement "puVar12 = puVar8 + (((uint)((int)param_2 + (-0x20 - (int)puVar6)) >> 5) + 1) * 8;" (assignment_expression "puVar12 = puVar8 + (((uint)((int)param_2 + (-0x20 - (int)puVar6)) >> 5) + 1) * 8" identifier = (binary_expression "puVar8 + (((uint)((int)param_2 + (-0x20 - (int)puVar6)) >> 5) + 1) * 8" identifier + (binary_expression "(((uint)((int)param_2 + (-0x20 - (int)puVar6)) >> 5) + 1) * 8" (parenthesized_expression "(((uint)((int)param_2 + (-0x20 - (int)puVar6)) >> 5) + 1)" ( (binary_expression "((uint)((int)param_2 + (-0x20 - (int)puVar6)) >> 5) + 1" (parenthesized_expression "((uint)((int)param_2 + (-0x20 - (int)puVar6)) >> 5)" ( (binary_expression "(uint)((int)param_2 + (-0x20 - (int)puVar6)) >> 5" (call_expression "(uint)((int)param_2 + (-0x20 - (int)puVar6))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)param_2 + (-0x20 - (int)puVar6))" ( (binary_expression "(int)param_2 + (-0x20 - (int)puVar6)" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-0x20 - (int)puVar6)" ( (binary_expression "-0x20 - (int)puVar6" number_literal - (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))) >> number_literal) )) + number_literal) )) * number_literal))) ;)) (expression_statement "pcVar3 = (code *)PTR__M_construct<char*>_0043248c;" (assignment_expression "pcVar3 = (code *)PTR__M_construct<char*>_0043248c" identifier = (binary_expression "(code *)PTR__M_construct<char*>_0043248c" (binary_expression "(code *)PTR__M_construct<char" (cast_expression "(code *)PTR__M_construct" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) < identifier) (ERROR "*" *) > identifier)) ;) })) (do_statement "do {\n    iVar18 = *param_3;\n    iVar5 = param_3[1];\n    *puVar12 = puVar12 + 2;\n                    \n    (*pcVar3)(puVar12,iVar18,iVar18 + iVar5,0);\n    piVar16 = param_3 + 8;\n    puVar6 = puVar12 + 8;\n    uVar1 = *(undefined1 *)(param_3 + 7);\n    uVar2 = *(undefined1 *)((int)param_3 + 0x1d);\n    puVar12[6] = param_3[6];\n    *(undefined1 *)(puVar12 + 7) = uVar1;\n    *(undefined1 *)((int)puVar12 + 0x1d) = uVar2;\n    param_3 = piVar16;\n    puVar12 = puVar6;\n  } while (param_4 != piVar16);" do (compound_statement "{\n    iVar18 = *param_3;\n    iVar5 = param_3[1];\n    *puVar12 = puVar12 + 2;\n                    \n    (*pcVar3)(puVar12,iVar18,iVar18 + iVar5,0);\n    piVar16 = param_3 + 8;\n    puVar6 = puVar12 + 8;\n    uVar1 = *(undefined1 *)(param_3 + 7);\n    uVar2 = *(undefined1 *)((int)param_3 + 0x1d);\n    puVar12[6] = param_3[6];\n    *(undefined1 *)(puVar12 + 7) = uVar1;\n    *(undefined1 *)((int)puVar12 + 0x1d) = uVar2;\n    param_3 = piVar16;\n    puVar12 = puVar6;\n  }" { (expression_statement "iVar18 = *param_3;" (assignment_expression "iVar18 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "iVar5 = param_3[1];" (assignment_expression "iVar5 = param_3[1]" identifier = (subscript_expression "param_3[1]" identifier [ number_literal ])) ;) (expression_statement "*puVar12 = puVar12 + 2;" (assignment_expression "*puVar12 = puVar12 + 2" (pointer_expression "*puVar12" * identifier) = (binary_expression "puVar12 + 2" identifier + number_literal)) ;) (expression_statement "(*pcVar3)(puVar12,iVar18,iVar18 + iVar5,0);" (call_expression "(*pcVar3)(puVar12,iVar18,iVar18 + iVar5,0)" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "(puVar12,iVar18,iVar18 + iVar5,0)" ( identifier , identifier , (binary_expression "iVar18 + iVar5" identifier + identifier) , number_literal ))) ;) (expression_statement "piVar16 = param_3 + 8;" (assignment_expression "piVar16 = param_3 + 8" identifier = (binary_expression "param_3 + 8" identifier + number_literal)) ;) (expression_statement "puVar6 = puVar12 + 8;" (assignment_expression "puVar6 = puVar12 + 8" identifier = (binary_expression "puVar12 + 8" identifier + number_literal)) ;) (expression_statement "uVar1 = *(undefined1 *)(param_3 + 7);" (assignment_expression "uVar1 = *(undefined1 *)(param_3 + 7)" identifier = (pointer_expression "*(undefined1 *)(param_3 + 7)" * (cast_expression "(undefined1 *)(param_3 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 7)" ( (binary_expression "param_3 + 7" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = *(undefined1 *)((int)param_3 + 0x1d);" (assignment_expression "uVar2 = *(undefined1 *)((int)param_3 + 0x1d)" identifier = (pointer_expression "*(undefined1 *)((int)param_3 + 0x1d)" * (cast_expression "(undefined1 *)((int)param_3 + 0x1d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3 + 0x1d)" ( (binary_expression "(int)param_3 + 0x1d" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar12[6] = param_3[6];" (assignment_expression "puVar12[6] = param_3[6]" (subscript_expression "puVar12[6]" identifier [ number_literal ]) = (subscript_expression "param_3[6]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(puVar12 + 7) = uVar1;" (assignment_expression "*(undefined1 *)(puVar12 + 7) = uVar1" (pointer_expression "*(undefined1 *)(puVar12 + 7)" * (cast_expression "(undefined1 *)(puVar12 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 7)" ( (binary_expression "puVar12 + 7" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar12 + 0x1d) = uVar2;" (assignment_expression "*(undefined1 *)((int)puVar12 + 0x1d) = uVar2" (pointer_expression "*(undefined1 *)((int)puVar12 + 0x1d)" * (cast_expression "(undefined1 *)((int)puVar12 + 0x1d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + 0x1d)" ( (binary_expression "(int)puVar12 + 0x1d" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "param_3 = piVar16;" (assignment_expression "param_3 = piVar16" identifier = identifier) ;) (expression_statement "puVar12 = puVar6;" (assignment_expression "puVar12 = puVar6" identifier = identifier) ;) }) while (parenthesized_expression "(param_4 != piVar16)" ( (binary_expression "param_4 != piVar16" identifier != identifier) )) ;) (expression_statement "puVar12 = (undefined4 *)param_1[1];" (assignment_expression "puVar12 = (undefined4 *)param_1[1]" identifier = (cast_expression "(undefined4 *)param_1[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (if_statement "if (puVar12 != param_2) {\n    uVar20 = (int)puVar12 + (-0x20 - (int)param_2);\n    puVar15 = (undefined4 *)((int)param_2 + uVar20 + 0x28);\n    puVar12 = puVar6;\n    puVar14 = param_2 + 2;\n    do {\n      while( true ) {\n        puVar11 = (undefined4 *)puVar14[-2];\n        *puVar12 = puVar12 + 2;\n        if (puVar11 != puVar14) break;\n        uVar13 = puVar14[1];\n        uVar10 = puVar14[2];\n        uVar9 = puVar14[3];\n        puVar12[2] = *puVar14;\n        puVar12[3] = uVar13;\n        puVar12[4] = uVar10;\n        puVar12[5] = uVar9;\n        puVar14[-2] = puVar14;\n        puVar11 = puVar14 + 8;\n        uVar9 = puVar14[4];\n        uVar1 = *(undefined1 *)(puVar14 + 5);\n        uVar2 = *(undefined1 *)((int)puVar14 + 0x15);\n        puVar12[1] = puVar14[-1];\n        puVar12[6] = uVar9;\n        puVar14[-1] = 0;\n        *(undefined1 *)puVar14 = 0;\n        *(undefined1 *)(puVar12 + 7) = uVar1;\n        *(undefined1 *)((int)puVar12 + 0x1d) = uVar2;\n        puVar12 = puVar12 + 8;\n        puVar14 = puVar11;\n        if (puVar15 == puVar11) goto LAB_00224668;\n      }\n      uVar9 = *puVar14;\n      uVar13 = puVar14[-1];\n      uVar10 = puVar14[4];\n      *puVar12 = puVar11;\n      puVar12[2] = uVar9;\n      puVar14[-2] = puVar14;\n      puVar11 = puVar14 + 8;\n      puVar12[1] = uVar13;\n      puVar12[6] = uVar10;\n      uVar1 = *(undefined1 *)((int)puVar14 + 0x15);\n      *(undefined1 *)(puVar12 + 7) = *(undefined1 *)(puVar14 + 5);\n      puVar14[-1] = 0;\n      *(undefined1 *)puVar14 = 0;\n      *(undefined1 *)((int)puVar12 + 0x1d) = uVar1;\n      puVar12 = puVar12 + 8;\n      puVar14 = puVar11;\n    } while (puVar15 != puVar11);\nLAB_00224668:\n    puVar12 = (undefined4 *)param_1[1];\n    puVar6 = puVar6 + ((uVar20 >> 5) + 1) * 8;\n  }" if (parenthesized_expression "(puVar12 != param_2)" ( (binary_expression "puVar12 != param_2" identifier != identifier) )) (compound_statement "{\n    uVar20 = (int)puVar12 + (-0x20 - (int)param_2);\n    puVar15 = (undefined4 *)((int)param_2 + uVar20 + 0x28);\n    puVar12 = puVar6;\n    puVar14 = param_2 + 2;\n    do {\n      while( true ) {\n        puVar11 = (undefined4 *)puVar14[-2];\n        *puVar12 = puVar12 + 2;\n        if (puVar11 != puVar14) break;\n        uVar13 = puVar14[1];\n        uVar10 = puVar14[2];\n        uVar9 = puVar14[3];\n        puVar12[2] = *puVar14;\n        puVar12[3] = uVar13;\n        puVar12[4] = uVar10;\n        puVar12[5] = uVar9;\n        puVar14[-2] = puVar14;\n        puVar11 = puVar14 + 8;\n        uVar9 = puVar14[4];\n        uVar1 = *(undefined1 *)(puVar14 + 5);\n        uVar2 = *(undefined1 *)((int)puVar14 + 0x15);\n        puVar12[1] = puVar14[-1];\n        puVar12[6] = uVar9;\n        puVar14[-1] = 0;\n        *(undefined1 *)puVar14 = 0;\n        *(undefined1 *)(puVar12 + 7) = uVar1;\n        *(undefined1 *)((int)puVar12 + 0x1d) = uVar2;\n        puVar12 = puVar12 + 8;\n        puVar14 = puVar11;\n        if (puVar15 == puVar11) goto LAB_00224668;\n      }\n      uVar9 = *puVar14;\n      uVar13 = puVar14[-1];\n      uVar10 = puVar14[4];\n      *puVar12 = puVar11;\n      puVar12[2] = uVar9;\n      puVar14[-2] = puVar14;\n      puVar11 = puVar14 + 8;\n      puVar12[1] = uVar13;\n      puVar12[6] = uVar10;\n      uVar1 = *(undefined1 *)((int)puVar14 + 0x15);\n      *(undefined1 *)(puVar12 + 7) = *(undefined1 *)(puVar14 + 5);\n      puVar14[-1] = 0;\n      *(undefined1 *)puVar14 = 0;\n      *(undefined1 *)((int)puVar12 + 0x1d) = uVar1;\n      puVar12 = puVar12 + 8;\n      puVar14 = puVar11;\n    } while (puVar15 != puVar11);\nLAB_00224668:\n    puVar12 = (undefined4 *)param_1[1];\n    puVar6 = puVar6 + ((uVar20 >> 5) + 1) * 8;\n  }" { (expression_statement "uVar20 = (int)puVar12 + (-0x20 - (int)param_2);" (assignment_expression "uVar20 = (int)puVar12 + (-0x20 - (int)param_2)" identifier = (binary_expression "(int)puVar12 + (-0x20 - (int)param_2)" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-0x20 - (int)param_2)" ( (binary_expression "-0x20 - (int)param_2" number_literal - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "puVar15 = (undefined4 *)((int)param_2 + uVar20 + 0x28);" (assignment_expression "puVar15 = (undefined4 *)((int)param_2 + uVar20 + 0x28)" identifier = (cast_expression "(undefined4 *)((int)param_2 + uVar20 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + uVar20 + 0x28)" ( (binary_expression "(int)param_2 + uVar20 + 0x28" (binary_expression "(int)param_2 + uVar20" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "puVar12 = puVar6;" (assignment_expression "puVar12 = puVar6" identifier = identifier) ;) (expression_statement "puVar14 = param_2 + 2;" (assignment_expression "puVar14 = param_2 + 2" identifier = (binary_expression "param_2 + 2" identifier + number_literal)) ;) (do_statement "do {\n      while( true ) {\n        puVar11 = (undefined4 *)puVar14[-2];\n        *puVar12 = puVar12 + 2;\n        if (puVar11 != puVar14) break;\n        uVar13 = puVar14[1];\n        uVar10 = puVar14[2];\n        uVar9 = puVar14[3];\n        puVar12[2] = *puVar14;\n        puVar12[3] = uVar13;\n        puVar12[4] = uVar10;\n        puVar12[5] = uVar9;\n        puVar14[-2] = puVar14;\n        puVar11 = puVar14 + 8;\n        uVar9 = puVar14[4];\n        uVar1 = *(undefined1 *)(puVar14 + 5);\n        uVar2 = *(undefined1 *)((int)puVar14 + 0x15);\n        puVar12[1] = puVar14[-1];\n        puVar12[6] = uVar9;\n        puVar14[-1] = 0;\n        *(undefined1 *)puVar14 = 0;\n        *(undefined1 *)(puVar12 + 7) = uVar1;\n        *(undefined1 *)((int)puVar12 + 0x1d) = uVar2;\n        puVar12 = puVar12 + 8;\n        puVar14 = puVar11;\n        if (puVar15 == puVar11) goto LAB_00224668;\n      }\n      uVar9 = *puVar14;\n      uVar13 = puVar14[-1];\n      uVar10 = puVar14[4];\n      *puVar12 = puVar11;\n      puVar12[2] = uVar9;\n      puVar14[-2] = puVar14;\n      puVar11 = puVar14 + 8;\n      puVar12[1] = uVar13;\n      puVar12[6] = uVar10;\n      uVar1 = *(undefined1 *)((int)puVar14 + 0x15);\n      *(undefined1 *)(puVar12 + 7) = *(undefined1 *)(puVar14 + 5);\n      puVar14[-1] = 0;\n      *(undefined1 *)puVar14 = 0;\n      *(undefined1 *)((int)puVar12 + 0x1d) = uVar1;\n      puVar12 = puVar12 + 8;\n      puVar14 = puVar11;\n    } while (puVar15 != puVar11);" do (compound_statement "{\n      while( true ) {\n        puVar11 = (undefined4 *)puVar14[-2];\n        *puVar12 = puVar12 + 2;\n        if (puVar11 != puVar14) break;\n        uVar13 = puVar14[1];\n        uVar10 = puVar14[2];\n        uVar9 = puVar14[3];\n        puVar12[2] = *puVar14;\n        puVar12[3] = uVar13;\n        puVar12[4] = uVar10;\n        puVar12[5] = uVar9;\n        puVar14[-2] = puVar14;\n        puVar11 = puVar14 + 8;\n        uVar9 = puVar14[4];\n        uVar1 = *(undefined1 *)(puVar14 + 5);\n        uVar2 = *(undefined1 *)((int)puVar14 + 0x15);\n        puVar12[1] = puVar14[-1];\n        puVar12[6] = uVar9;\n        puVar14[-1] = 0;\n        *(undefined1 *)puVar14 = 0;\n        *(undefined1 *)(puVar12 + 7) = uVar1;\n        *(undefined1 *)((int)puVar12 + 0x1d) = uVar2;\n        puVar12 = puVar12 + 8;\n        puVar14 = puVar11;\n        if (puVar15 == puVar11) goto LAB_00224668;\n      }\n      uVar9 = *puVar14;\n      uVar13 = puVar14[-1];\n      uVar10 = puVar14[4];\n      *puVar12 = puVar11;\n      puVar12[2] = uVar9;\n      puVar14[-2] = puVar14;\n      puVar11 = puVar14 + 8;\n      puVar12[1] = uVar13;\n      puVar12[6] = uVar10;\n      uVar1 = *(undefined1 *)((int)puVar14 + 0x15);\n      *(undefined1 *)(puVar12 + 7) = *(undefined1 *)(puVar14 + 5);\n      puVar14[-1] = 0;\n      *(undefined1 *)puVar14 = 0;\n      *(undefined1 *)((int)puVar12 + 0x1d) = uVar1;\n      puVar12 = puVar12 + 8;\n      puVar14 = puVar11;\n    }" { (while_statement "while( true ) {\n        puVar11 = (undefined4 *)puVar14[-2];\n        *puVar12 = puVar12 + 2;\n        if (puVar11 != puVar14) break;\n        uVar13 = puVar14[1];\n        uVar10 = puVar14[2];\n        uVar9 = puVar14[3];\n        puVar12[2] = *puVar14;\n        puVar12[3] = uVar13;\n        puVar12[4] = uVar10;\n        puVar12[5] = uVar9;\n        puVar14[-2] = puVar14;\n        puVar11 = puVar14 + 8;\n        uVar9 = puVar14[4];\n        uVar1 = *(undefined1 *)(puVar14 + 5);\n        uVar2 = *(undefined1 *)((int)puVar14 + 0x15);\n        puVar12[1] = puVar14[-1];\n        puVar12[6] = uVar9;\n        puVar14[-1] = 0;\n        *(undefined1 *)puVar14 = 0;\n        *(undefined1 *)(puVar12 + 7) = uVar1;\n        *(undefined1 *)((int)puVar12 + 0x1d) = uVar2;\n        puVar12 = puVar12 + 8;\n        puVar14 = puVar11;\n        if (puVar15 == puVar11) goto LAB_00224668;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        puVar11 = (undefined4 *)puVar14[-2];\n        *puVar12 = puVar12 + 2;\n        if (puVar11 != puVar14) break;\n        uVar13 = puVar14[1];\n        uVar10 = puVar14[2];\n        uVar9 = puVar14[3];\n        puVar12[2] = *puVar14;\n        puVar12[3] = uVar13;\n        puVar12[4] = uVar10;\n        puVar12[5] = uVar9;\n        puVar14[-2] = puVar14;\n        puVar11 = puVar14 + 8;\n        uVar9 = puVar14[4];\n        uVar1 = *(undefined1 *)(puVar14 + 5);\n        uVar2 = *(undefined1 *)((int)puVar14 + 0x15);\n        puVar12[1] = puVar14[-1];\n        puVar12[6] = uVar9;\n        puVar14[-1] = 0;\n        *(undefined1 *)puVar14 = 0;\n        *(undefined1 *)(puVar12 + 7) = uVar1;\n        *(undefined1 *)((int)puVar12 + 0x1d) = uVar2;\n        puVar12 = puVar12 + 8;\n        puVar14 = puVar11;\n        if (puVar15 == puVar11) goto LAB_00224668;\n      }" { (expression_statement "puVar11 = (undefined4 *)puVar14[-2];" (assignment_expression "puVar11 = (undefined4 *)puVar14[-2]" identifier = (cast_expression "(undefined4 *)puVar14[-2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar14[-2]" identifier [ number_literal ]))) ;) (expression_statement "*puVar12 = puVar12 + 2;" (assignment_expression "*puVar12 = puVar12 + 2" (pointer_expression "*puVar12" * identifier) = (binary_expression "puVar12 + 2" identifier + number_literal)) ;) (if_statement "if (puVar11 != puVar14) break;" if (parenthesized_expression "(puVar11 != puVar14)" ( (binary_expression "puVar11 != puVar14" identifier != identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = puVar14[1];" (assignment_expression "uVar13 = puVar14[1]" identifier = (subscript_expression "puVar14[1]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = puVar14[2];" (assignment_expression "uVar10 = puVar14[2]" identifier = (subscript_expression "puVar14[2]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = puVar14[3];" (assignment_expression "uVar9 = puVar14[3]" identifier = (subscript_expression "puVar14[3]" identifier [ number_literal ])) ;) (expression_statement "puVar12[2] = *puVar14;" (assignment_expression "puVar12[2] = *puVar14" (subscript_expression "puVar12[2]" identifier [ number_literal ]) = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "puVar12[3] = uVar13;" (assignment_expression "puVar12[3] = uVar13" (subscript_expression "puVar12[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[4] = uVar10;" (assignment_expression "puVar12[4] = uVar10" (subscript_expression "puVar12[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[5] = uVar9;" (assignment_expression "puVar12[5] = uVar9" (subscript_expression "puVar12[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[-2] = puVar14;" (assignment_expression "puVar14[-2] = puVar14" (subscript_expression "puVar14[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar11 = puVar14 + 8;" (assignment_expression "puVar11 = puVar14 + 8" identifier = (binary_expression "puVar14 + 8" identifier + number_literal)) ;) (expression_statement "uVar9 = puVar14[4];" (assignment_expression "uVar9 = puVar14[4]" identifier = (subscript_expression "puVar14[4]" identifier [ number_literal ])) ;) (expression_statement "uVar1 = *(undefined1 *)(puVar14 + 5);" (assignment_expression "uVar1 = *(undefined1 *)(puVar14 + 5)" identifier = (pointer_expression "*(undefined1 *)(puVar14 + 5)" * (cast_expression "(undefined1 *)(puVar14 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 5)" ( (binary_expression "puVar14 + 5" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = *(undefined1 *)((int)puVar14 + 0x15);" (assignment_expression "uVar2 = *(undefined1 *)((int)puVar14 + 0x15)" identifier = (pointer_expression "*(undefined1 *)((int)puVar14 + 0x15)" * (cast_expression "(undefined1 *)((int)puVar14 + 0x15)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar14 + 0x15)" ( (binary_expression "(int)puVar14 + 0x15" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar12[1] = puVar14[-1];" (assignment_expression "puVar12[1] = puVar14[-1]" (subscript_expression "puVar12[1]" identifier [ number_literal ]) = (subscript_expression "puVar14[-1]" identifier [ number_literal ])) ;) (expression_statement "puVar12[6] = uVar9;" (assignment_expression "puVar12[6] = uVar9" (subscript_expression "puVar12[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[-1] = 0;" (assignment_expression "puVar14[-1] = 0" (subscript_expression "puVar14[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)puVar14 = 0;" (assignment_expression "*(undefined1 *)puVar14 = 0" (pointer_expression "*(undefined1 *)puVar14" * (cast_expression "(undefined1 *)puVar14" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar12 + 7) = uVar1;" (assignment_expression "*(undefined1 *)(puVar12 + 7) = uVar1" (pointer_expression "*(undefined1 *)(puVar12 + 7)" * (cast_expression "(undefined1 *)(puVar12 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 7)" ( (binary_expression "puVar12 + 7" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar12 + 0x1d) = uVar2;" (assignment_expression "*(undefined1 *)((int)puVar12 + 0x1d) = uVar2" (pointer_expression "*(undefined1 *)((int)puVar12 + 0x1d)" * (cast_expression "(undefined1 *)((int)puVar12 + 0x1d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + 0x1d)" ( (binary_expression "(int)puVar12 + 0x1d" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "puVar12 = puVar12 + 8;" (assignment_expression "puVar12 = puVar12 + 8" identifier = (binary_expression "puVar12 + 8" identifier + number_literal)) ;) (expression_statement "puVar14 = puVar11;" (assignment_expression "puVar14 = puVar11" identifier = identifier) ;) (if_statement "if (puVar15 == puVar11) goto LAB_00224668;" if (parenthesized_expression "(puVar15 == puVar11)" ( (binary_expression "puVar15 == puVar11" identifier == identifier) )) (goto_statement "goto LAB_00224668;" goto statement_identifier ;)) })) (expression_statement "uVar9 = *puVar14;" (assignment_expression "uVar9 = *puVar14" identifier = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "uVar13 = puVar14[-1];" (assignment_expression "uVar13 = puVar14[-1]" identifier = (subscript_expression "puVar14[-1]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = puVar14[4];" (assignment_expression "uVar10 = puVar14[4]" identifier = (subscript_expression "puVar14[4]" identifier [ number_literal ])) ;) (expression_statement "*puVar12 = puVar11;" (assignment_expression "*puVar12 = puVar11" (pointer_expression "*puVar12" * identifier) = identifier) ;) (expression_statement "puVar12[2] = uVar9;" (assignment_expression "puVar12[2] = uVar9" (subscript_expression "puVar12[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14[-2] = puVar14;" (assignment_expression "puVar14[-2] = puVar14" (subscript_expression "puVar14[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar11 = puVar14 + 8;" (assignment_expression "puVar11 = puVar14 + 8" identifier = (binary_expression "puVar14 + 8" identifier + number_literal)) ;) (expression_statement "puVar12[1] = uVar13;" (assignment_expression "puVar12[1] = uVar13" (subscript_expression "puVar12[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[6] = uVar10;" (assignment_expression "puVar12[6] = uVar10" (subscript_expression "puVar12[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar1 = *(undefined1 *)((int)puVar14 + 0x15);" (assignment_expression "uVar1 = *(undefined1 *)((int)puVar14 + 0x15)" identifier = (pointer_expression "*(undefined1 *)((int)puVar14 + 0x15)" * (cast_expression "(undefined1 *)((int)puVar14 + 0x15)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar14 + 0x15)" ( (binary_expression "(int)puVar14 + 0x15" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(puVar12 + 7) = *(undefined1 *)(puVar14 + 5);" (assignment_expression "*(undefined1 *)(puVar12 + 7) = *(undefined1 *)(puVar14 + 5)" (pointer_expression "*(undefined1 *)(puVar12 + 7)" * (cast_expression "(undefined1 *)(puVar12 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + 7)" ( (binary_expression "puVar12 + 7" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)(puVar14 + 5)" * (cast_expression "(undefined1 *)(puVar14 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 5)" ( (binary_expression "puVar14 + 5" identifier + number_literal) ))))) ;) (expression_statement "puVar14[-1] = 0;" (assignment_expression "puVar14[-1] = 0" (subscript_expression "puVar14[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)puVar14 = 0;" (assignment_expression "*(undefined1 *)puVar14 = 0" (pointer_expression "*(undefined1 *)puVar14" * (cast_expression "(undefined1 *)puVar14" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*(undefined1 *)((int)puVar12 + 0x1d) = uVar1;" (assignment_expression "*(undefined1 *)((int)puVar12 + 0x1d) = uVar1" (pointer_expression "*(undefined1 *)((int)puVar12 + 0x1d)" * (cast_expression "(undefined1 *)((int)puVar12 + 0x1d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + 0x1d)" ( (binary_expression "(int)puVar12 + 0x1d" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "puVar12 = puVar12 + 8;" (assignment_expression "puVar12 = puVar12 + 8" identifier = (binary_expression "puVar12 + 8" identifier + number_literal)) ;) (expression_statement "puVar14 = puVar11;" (assignment_expression "puVar14 = puVar11" identifier = identifier) ;) }) while (parenthesized_expression "(puVar15 != puVar11)" ( (binary_expression "puVar15 != puVar11" identifier != identifier) )) ;) (labeled_statement "LAB_00224668:\n    puVar12 = (undefined4 *)param_1[1];" statement_identifier : (expression_statement "puVar12 = (undefined4 *)param_1[1];" (assignment_expression "puVar12 = (undefined4 *)param_1[1]" identifier = (cast_expression "(undefined4 *)param_1[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;)) (expression_statement "puVar6 = puVar6 + ((uVar20 >> 5) + 1) * 8;" (assignment_expression "puVar6 = puVar6 + ((uVar20 >> 5) + 1) * 8" identifier = (binary_expression "puVar6 + ((uVar20 >> 5) + 1) * 8" identifier + (binary_expression "((uVar20 >> 5) + 1) * 8" (parenthesized_expression "((uVar20 >> 5) + 1)" ( (binary_expression "(uVar20 >> 5) + 1" (parenthesized_expression "(uVar20 >> 5)" ( (binary_expression "uVar20 >> 5" identifier >> number_literal) )) + number_literal) )) * number_literal))) ;) })) (expression_statement "puVar14 = (undefined4 *)*param_1;" (assignment_expression "puVar14 = (undefined4 *)*param_1" identifier = (cast_expression "(undefined4 *)*param_1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (if_statement "if (puVar14 != puVar12) {\n    do {\n      if ((undefined4 *)*puVar14 != puVar14 + 2) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      puVar14 = puVar14 + 8;\n    } while (puVar14 != puVar12);\n    puVar12 = (undefined4 *)*param_1;\n  }" if (parenthesized_expression "(puVar14 != puVar12)" ( (binary_expression "puVar14 != puVar12" identifier != identifier) )) (compound_statement "{\n    do {\n      if ((undefined4 *)*puVar14 != puVar14 + 2) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      puVar14 = puVar14 + 8;\n    } while (puVar14 != puVar12);\n    puVar12 = (undefined4 *)*param_1;\n  }" { (do_statement "do {\n      if ((undefined4 *)*puVar14 != puVar14 + 2) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      puVar14 = puVar14 + 8;\n    } while (puVar14 != puVar12);" do (compound_statement "{\n      if ((undefined4 *)*puVar14 != puVar14 + 2) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      puVar14 = puVar14 + 8;\n    }" { (if_statement "if ((undefined4 *)*puVar14 != puVar14 + 2) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }" if (parenthesized_expression "((undefined4 *)*puVar14 != puVar14 + 2)" ( (binary_expression "(undefined4 *)*puVar14 != puVar14 + 2" (cast_expression "(undefined4 *)*puVar14" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar14" * identifier)) != (binary_expression "puVar14 + 2" identifier + number_literal)) )) (compound_statement "{\n        (*(code *)PTR_operator_delete_0043228c)();\n      }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "puVar14 = puVar14 + 8;" (assignment_expression "puVar14 = puVar14 + 8" identifier = (binary_expression "puVar14 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar14 != puVar12)" ( (binary_expression "puVar14 != puVar12" identifier != identifier) )) ;) (expression_statement "puVar12 = (undefined4 *)*param_1;" (assignment_expression "puVar12 = (undefined4 *)*param_1" identifier = (cast_expression "(undefined4 *)*param_1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) })) (if_statement "if (puVar12 != (undefined4 *)0x0) {\n    (*(code *)PTR_operator_delete_0043228c)(puVar12);\n  }" if (parenthesized_expression "(puVar12 != (undefined4 *)0x0)" ( (binary_expression "puVar12 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (*(code *)PTR_operator_delete_0043228c)(puVar12);\n  }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)(puVar12);" (call_expression "(*(code *)PTR_operator_delete_0043228c)(puVar12)" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar12)" ( identifier ))) ;) })) (expression_statement "*param_1 = puVar8;" (assignment_expression "*param_1 = puVar8" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[1] = puVar6;" (assignment_expression "param_1[1] = puVar6" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[2] = puVar8 + uVar21 * 8;" (assignment_expression "param_1[2] = puVar8 + uVar21 * 8" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (binary_expression "puVar8 + uVar21 * 8" identifier + (binary_expression "uVar21 * 8" identifier * number_literal))) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit (declaration TYPE (ERROR IDENT : : IDENT < IDENT : :) IDENT , (ERROR IDENT : : IDENT < IDENT : : IDENT >> : : IDENT < IDENT < IDENT : :) IDENT (ERROR *) , (ERROR IDENT : : IDENT < IDENT : :) IDENT , (ERROR IDENT : : IDENT < IDENT : : (function_declarator IDENT (ERROR >> >>) (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) { IDENT) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT < IDENT) (ERROR *) > IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) >> LIT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression LIT - IDENT) ))) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != IDENT) )) (break_statement break ;)) (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 (subscript_expression IDENT [ LIT ]) = (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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (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 = (binary_expression IDENT + LIT)) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (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 TYPE) ) IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) == IDENT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (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 = (binary_expression IDENT + LIT)) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (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 TYPE) ) IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) != IDENT) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)) - IDENT) )))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT)) ;) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression LIT - IDENT) ))) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != IDENT) )) (break_statement break ;)) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT ))) ;) (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 (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 TYPE) ) IDENT) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (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 IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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 TYPE) ) IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * 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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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 TYPE) ) IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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 TYPE) ) IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (return_statement return ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (pointer_expression * IDENT) , (binary_expression (pointer_expression * IDENT) + (subscript_expression IDENT [ LIT ])) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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 TYPE) ) IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) * LIT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (break_statement break ;)) (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 (subscript_expression IDENT [ LIT ]) = (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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (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 = (binary_expression IDENT + LIT)) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (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 TYPE) ) IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) == IDENT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (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 = (binary_expression IDENT + LIT)) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (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 TYPE) ) IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) != IDENT) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;)) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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 TYPE) ) IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) }))) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression LIT - IDENT) < IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) ))) ;) (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) || (parenthesized_expression ( (binary_expression LIT < IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) < IDENT) (ERROR *) > IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != IDENT) )) (break_statement break ;)) (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 (subscript_expression IDENT [ LIT ]) = (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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (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 = (binary_expression IDENT + LIT)) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (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 TYPE) ) IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (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 = (binary_expression IDENT + LIT)) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (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 TYPE) ) IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) ))) >> LIT) )) + LIT) )) * LIT))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) < IDENT) (ERROR *) > IDENT)) ;) })) (do_statement do (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 * IDENT) = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , (binary_expression IDENT + IDENT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (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) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (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 = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (break_statement break ;)) (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 (subscript_expression IDENT [ LIT ]) = (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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) + LIT) )) * LIT))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) != (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (return_statement return ;) (ERROR }))
(declaration "void std::vector<gold::Version_expression,std::allocator<gold::Version_expression>>::\n     _M_range_insert<__normal_iterator<gold::Version_expression*,std::vector<gold::Version_expression,std::allocator<gold::Version_expression>>>>\n               (undefined4 *param_1,undefined4 *param_2,int *param_3,int *param_4)\n\n{\n  undefined1 uVar1;" (primitive_type "void") (ERROR "std::vector<gold::" (identifier "std") (: ":") (: ":") (identifier "vector") (< "<") (identifier "gold") (: ":") (: ":")) (identifier "Version_expression") (, ",") (ERROR "std::allocator<gold::Version_expression>>::\n     _M_range_insert<__normal_iterator<gold::" (identifier "std") (: ":") (: ":") (identifier "allocator") (< "<") (identifier "gold") (: ":") (: ":") (identifier "Version_expression") (>> ">>") (: ":") (: ":") (identifier "_M_range_insert") (< "<") (identifier "__normal_iterator") (< "<") (identifier "gold") (: ":") (: ":")) (identifier "Version_expression") (ERROR "*" (* "*")) (, ",") (ERROR "std::vector<gold::" (identifier "std") (: ":") (: ":") (identifier "vector") (< "<") (identifier "gold") (: ":") (: ":")) (identifier "Version_expression") (, ",") (ERROR "std::allocator<gold::Version_expression>>>>\n               (undefined4 *param_1,undefined4 *param_2,int *param_3,int *param_4)\n\n{\n  undefined1" (identifier "std") (: ":") (: ":") (identifier "allocator") (< "<") (identifier "gold") (: ":") (: ":") (function_declarator "Version_expression>>>>\n               (undefined4 *param_1,undefined4 *param_2,int *param_3,int *param_4)" (identifier "Version_expression") (ERROR ">>>>" (>> ">>") (>> ">>")) (parameter_list "(undefined4 *param_1,undefined4 *param_2,int *param_3,int *param_4)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 *param_2" (type_identifier "undefined4") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int *param_3" (primitive_type "int") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "int *param_4" (primitive_type "int") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) () ")"))) ({ "{") (identifier "undefined1")) (identifier "uVar1") (; ";")) (declaration "undefined1 uVar2;" (type_identifier "undefined1") (identifier "uVar2") (; ";")) (declaration "code *pcVar3;" (type_identifier "code") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "undefined *puVar4;" (type_identifier "undefined") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined4 *puVar6;" (type_identifier "undefined4") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "undefined4 *puVar8;" (type_identifier "undefined4") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (declaration "undefined4 uVar10;" (type_identifier "undefined4") (identifier "uVar10") (; ";")) (declaration "undefined4 *puVar11;" (type_identifier "undefined4") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "undefined4 *puVar12;" (type_identifier "undefined4") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "undefined4 uVar13;" (type_identifier "undefined4") (identifier "uVar13") (; ";")) (declaration "undefined4 *puVar14;" (type_identifier "undefined4") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "undefined4 *puVar15;" (type_identifier "undefined4") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "int *piVar16;" (primitive_type "int") (pointer_declarator "*piVar16" (* "*") (identifier "piVar16")) (; ";")) (declaration "int *piVar17;" (primitive_type "int") (pointer_declarator "*piVar17" (* "*") (identifier "piVar17")) (; ";")) (declaration "int iVar18;" (primitive_type "int") (identifier "iVar18") (; ";")) (declaration "int iVar19;" (primitive_type "int") (identifier "iVar19") (; ";")) (declaration "uint uVar20;" (type_identifier "uint") (identifier "uVar20") (; ";")) (declaration "uint uVar21;" (type_identifier "uint") (identifier "uVar21") (; ";")) (expression_statement "puVar4 = PTR__M_construct<char*>_0043248c;" (assignment_expression "puVar4 = PTR__M_construct<char*>_0043248c" (identifier "puVar4") (= "=") (binary_expression "PTR__M_construct<char*>_0043248c" (binary_expression "PTR__M_construct<char" (identifier "PTR__M_construct") (< "<") (identifier "char")) (ERROR "*" (* "*")) (> ">") (identifier "_0043248c"))) (; ";")) (if_statement "if (param_3 == param_4) {\n    return;\n  }" (if "if") (parenthesized_expression "(param_3 == param_4)" (( "(") (binary_expression "param_3 == param_4" (identifier "param_3") (== "==") (identifier "param_4")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "puVar8 = (undefined4 *)param_1[1];" (assignment_expression "puVar8 = (undefined4 *)param_1[1]" (identifier "puVar8") (= "=") (cast_expression "(undefined4 *)param_1[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "iVar18 = (int)param_4 - (int)param_3;" (assignment_expression "iVar18 = (int)param_4 - (int)param_3" (identifier "iVar18") (= "=") (binary_expression "(int)param_4 - (int)param_3" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (- "-") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")))) (; ";")) (expression_statement "uVar20 = iVar18 >> 5;" (assignment_expression "uVar20 = iVar18 >> 5" (identifier "uVar20") (= "=") (binary_expression "iVar18 >> 5" (identifier "iVar18") (>> ">>") (number_literal "5"))) (; ";")) (if_statement "if (uVar20 <= (uint)(param_1[2] - (int)puVar8 >> 5)) {\n    iVar5 = (int)puVar8 - (int)param_2;\n    uVar21 = iVar5 >> 5;\n    if (uVar20 < uVar21) {\n      puVar6 = (undefined4 *)((int)puVar8 + (8 - iVar18));\n      puVar12 = puVar8;\n      do {\n        while( true ) {\n          *puVar12 = puVar12 + 2;\n          if ((undefined4 *)puVar6[-2] != puVar6) break;\n          uVar13 = puVar6[1];\n          uVar10 = puVar6[2];\n          uVar9 = puVar6[3];\n          puVar12[2] = *puVar6;\n          puVar12[3] = uVar13;\n          puVar12[4] = uVar10;\n          puVar12[5] = uVar9;\n          uVar1 = *(undefined1 *)(puVar6 + 5);\n          uVar9 = puVar6[4];\n          puVar12[1] = puVar6[-1];\n          puVar6[-2] = puVar6;\n          puVar14 = puVar6 + 8;\n          puVar6[-1] = 0;\n          *(undefined1 *)puVar6 = 0;\n          *(undefined1 *)(puVar12 + 7) = uVar1;\n          puVar12[6] = uVar9;\n          *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar14;\n          puVar12 = puVar12 + 8;\n          if (puVar8 + 2 == puVar14) goto LAB_002247fc;\n        }\n        *puVar12 = (undefined4 *)puVar6[-2];\n        uVar1 = *(undefined1 *)(puVar6 + 5);\n        puVar12[2] = *puVar6;\n        uVar9 = puVar6[4];\n        puVar12[1] = puVar6[-1];\n        puVar6[-2] = puVar6;\n        puVar14 = puVar6 + 8;\n        puVar6[-1] = 0;\n        *(undefined1 *)puVar6 = 0;\n        *(undefined1 *)(puVar12 + 7) = uVar1;\n        puVar12[6] = uVar9;\n        *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n        puVar6 = puVar14;\n        puVar12 = puVar12 + 8;\n      } while (puVar8 + 2 != puVar14);\nLAB_002247fc:\n      iVar5 = (int)puVar8 + (-(int)param_2 - iVar18);\n      iVar19 = iVar5 >> 5;\n      param_1[1] = param_1[1] + iVar18;\n      if (0 < iVar5) {\n        puVar6 = (undefined4 *)((int)puVar8 + (-0x18 - iVar18));\n        puVar8 = puVar8 + -6;\n        do {\n          while( true ) {\n            puVar12 = (undefined4 *)puVar8[-2];\n            if ((undefined4 *)puVar6[-2] != puVar6) break;\n            iVar5 = puVar6[-1];\n            if (iVar5 != 0) {\n              if (iVar5 == 1) {\n                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n            }\n            puVar8[-1] = iVar5;\n            *(undefined1 *)((int)puVar12 + iVar5) = 0;\n            iVar19 = iVar19 + -1;\n            puVar6[-1] = 0;\n            *(undefined1 *)puVar6[-2] = 0;\n            uVar9 = puVar6[4];\n            *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n            puVar8[4] = uVar9;\n            *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n            puVar6 = puVar6 + -8;\n            puVar8 = puVar8 + -8;\n            if (iVar19 == 0) goto LAB_002248f8;\n          }\n          puVar8[-2] = (undefined4 *)puVar6[-2];\n          if (puVar12 == puVar8) {\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\nLAB_0022497c:\n            puVar6[-2] = puVar6;\n          }\n          else {\n            uVar9 = *puVar8;\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\n            if (puVar12 == (undefined4 *)0x0) goto LAB_0022497c;\n            puVar6[-2] = puVar12;\n            *puVar6 = uVar9;\n          }\n          puVar6[-1] = 0;\n          iVar19 = iVar19 + -1;\n          *(undefined1 *)puVar6[-2] = 0;\n          uVar9 = puVar6[4];\n          *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n          puVar8[4] = uVar9;\n          *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar6 + -8;\n          puVar8 = puVar8 + -8;\n        } while (iVar19 != 0);\n      }\nLAB_002248f8:\n      if (0 < iVar18) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar20 = uVar20 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar20 != 0);\n        return;\n      }\n    }\n    else {\n      piVar16 = (int *)((int)param_3 + iVar5);\n      puVar6 = puVar8;\n      if (piVar16 != param_4) {\n        do {\n          *puVar6 = puVar6 + 2;\n                    \n          (*(code *)puVar4)(puVar6,*piVar16,*piVar16 + piVar16[1],0);\n          piVar17 = piVar16 + 8;\n          iVar18 = piVar16[6];\n          *(undefined1 *)(puVar6 + 7) = *(undefined1 *)(piVar16 + 7);\n          puVar6[6] = iVar18;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)piVar16 + 0x1d);\n          piVar16 = piVar17;\n          puVar6 = puVar6 + 8;\n        } while (param_4 != piVar17);\n        puVar6 = (undefined4 *)param_1[1];\n      }\n      puVar6 = puVar6 + (uVar20 - uVar21) * 8;\n      param_1[1] = puVar6;\n      if (puVar8 != param_2) {\n        puVar12 = param_2 + 2;\n        do {\n          while( true ) {\n            *puVar6 = puVar6 + 2;\n            if (puVar12 != (undefined4 *)puVar12[-2]) break;\n            uVar13 = puVar12[1];\n            uVar10 = puVar12[2];\n            uVar9 = puVar12[3];\n            puVar6[2] = *puVar12;\n            puVar6[3] = uVar13;\n            puVar6[4] = uVar10;\n            puVar6[5] = uVar9;\n            uVar1 = *(undefined1 *)(puVar12 + 5);\n            uVar9 = puVar12[4];\n            puVar6[1] = puVar12[-1];\n            puVar12[-2] = puVar12;\n            puVar14 = puVar12 + 8;\n            puVar12[-1] = 0;\n            *(undefined1 *)puVar12 = 0;\n            *(undefined1 *)(puVar6 + 7) = uVar1;\n            puVar6[6] = uVar9;\n            *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n            puVar12 = puVar14;\n            puVar6 = puVar6 + 8;\n            if (puVar8 + 2 == puVar14) goto LAB_00224324;\n          }\n          *puVar6 = (undefined4 *)puVar12[-2];\n          uVar1 = *(undefined1 *)(puVar12 + 5);\n          puVar6[2] = *puVar12;\n          uVar9 = puVar12[4];\n          puVar6[1] = puVar12[-1];\n          puVar12[-2] = puVar12;\n          puVar14 = puVar12 + 8;\n          puVar12[-1] = 0;\n          *(undefined1 *)puVar12 = 0;\n          *(undefined1 *)(puVar6 + 7) = uVar1;\n          puVar6[6] = uVar9;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n          puVar12 = puVar14;\n          puVar6 = puVar6 + 8;\n        } while (puVar8 + 2 != puVar14);\nLAB_00224324:\n        puVar6 = (undefined4 *)param_1[1];\n      }\n      param_1[1] = (int)puVar6 + iVar5;\n      if (0 < iVar5) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar21 = uVar21 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar21 != 0);\n      }\n    }\n    return;\n  }" (if "if") (parenthesized_expression "(uVar20 <= (uint)(param_1[2] - (int)puVar8 >> 5))" (( "(") (binary_expression "uVar20 <= (uint)(param_1[2] - (int)puVar8 >> 5)" (identifier "uVar20") (<= "<=") (call_expression "(uint)(param_1[2] - (int)puVar8 >> 5)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_1[2] - (int)puVar8 >> 5)" (( "(") (binary_expression "param_1[2] - (int)puVar8 >> 5" (binary_expression "param_1[2] - (int)puVar8" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (- "-") (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8"))) (>> ">>") (number_literal "5")) () ")")))) () ")")) (compound_statement "{\n    iVar5 = (int)puVar8 - (int)param_2;\n    uVar21 = iVar5 >> 5;\n    if (uVar20 < uVar21) {\n      puVar6 = (undefined4 *)((int)puVar8 + (8 - iVar18));\n      puVar12 = puVar8;\n      do {\n        while( true ) {\n          *puVar12 = puVar12 + 2;\n          if ((undefined4 *)puVar6[-2] != puVar6) break;\n          uVar13 = puVar6[1];\n          uVar10 = puVar6[2];\n          uVar9 = puVar6[3];\n          puVar12[2] = *puVar6;\n          puVar12[3] = uVar13;\n          puVar12[4] = uVar10;\n          puVar12[5] = uVar9;\n          uVar1 = *(undefined1 *)(puVar6 + 5);\n          uVar9 = puVar6[4];\n          puVar12[1] = puVar6[-1];\n          puVar6[-2] = puVar6;\n          puVar14 = puVar6 + 8;\n          puVar6[-1] = 0;\n          *(undefined1 *)puVar6 = 0;\n          *(undefined1 *)(puVar12 + 7) = uVar1;\n          puVar12[6] = uVar9;\n          *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar14;\n          puVar12 = puVar12 + 8;\n          if (puVar8 + 2 == puVar14) goto LAB_002247fc;\n        }\n        *puVar12 = (undefined4 *)puVar6[-2];\n        uVar1 = *(undefined1 *)(puVar6 + 5);\n        puVar12[2] = *puVar6;\n        uVar9 = puVar6[4];\n        puVar12[1] = puVar6[-1];\n        puVar6[-2] = puVar6;\n        puVar14 = puVar6 + 8;\n        puVar6[-1] = 0;\n        *(undefined1 *)puVar6 = 0;\n        *(undefined1 *)(puVar12 + 7) = uVar1;\n        puVar12[6] = uVar9;\n        *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n        puVar6 = puVar14;\n        puVar12 = puVar12 + 8;\n      } while (puVar8 + 2 != puVar14);\nLAB_002247fc:\n      iVar5 = (int)puVar8 + (-(int)param_2 - iVar18);\n      iVar19 = iVar5 >> 5;\n      param_1[1] = param_1[1] + iVar18;\n      if (0 < iVar5) {\n        puVar6 = (undefined4 *)((int)puVar8 + (-0x18 - iVar18));\n        puVar8 = puVar8 + -6;\n        do {\n          while( true ) {\n            puVar12 = (undefined4 *)puVar8[-2];\n            if ((undefined4 *)puVar6[-2] != puVar6) break;\n            iVar5 = puVar6[-1];\n            if (iVar5 != 0) {\n              if (iVar5 == 1) {\n                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n            }\n            puVar8[-1] = iVar5;\n            *(undefined1 *)((int)puVar12 + iVar5) = 0;\n            iVar19 = iVar19 + -1;\n            puVar6[-1] = 0;\n            *(undefined1 *)puVar6[-2] = 0;\n            uVar9 = puVar6[4];\n            *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n            puVar8[4] = uVar9;\n            *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n            puVar6 = puVar6 + -8;\n            puVar8 = puVar8 + -8;\n            if (iVar19 == 0) goto LAB_002248f8;\n          }\n          puVar8[-2] = (undefined4 *)puVar6[-2];\n          if (puVar12 == puVar8) {\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\nLAB_0022497c:\n            puVar6[-2] = puVar6;\n          }\n          else {\n            uVar9 = *puVar8;\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\n            if (puVar12 == (undefined4 *)0x0) goto LAB_0022497c;\n            puVar6[-2] = puVar12;\n            *puVar6 = uVar9;\n          }\n          puVar6[-1] = 0;\n          iVar19 = iVar19 + -1;\n          *(undefined1 *)puVar6[-2] = 0;\n          uVar9 = puVar6[4];\n          *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n          puVar8[4] = uVar9;\n          *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar6 + -8;\n          puVar8 = puVar8 + -8;\n        } while (iVar19 != 0);\n      }\nLAB_002248f8:\n      if (0 < iVar18) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar20 = uVar20 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar20 != 0);\n        return;\n      }\n    }\n    else {\n      piVar16 = (int *)((int)param_3 + iVar5);\n      puVar6 = puVar8;\n      if (piVar16 != param_4) {\n        do {\n          *puVar6 = puVar6 + 2;\n                    \n          (*(code *)puVar4)(puVar6,*piVar16,*piVar16 + piVar16[1],0);\n          piVar17 = piVar16 + 8;\n          iVar18 = piVar16[6];\n          *(undefined1 *)(puVar6 + 7) = *(undefined1 *)(piVar16 + 7);\n          puVar6[6] = iVar18;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)piVar16 + 0x1d);\n          piVar16 = piVar17;\n          puVar6 = puVar6 + 8;\n        } while (param_4 != piVar17);\n        puVar6 = (undefined4 *)param_1[1];\n      }\n      puVar6 = puVar6 + (uVar20 - uVar21) * 8;\n      param_1[1] = puVar6;\n      if (puVar8 != param_2) {\n        puVar12 = param_2 + 2;\n        do {\n          while( true ) {\n            *puVar6 = puVar6 + 2;\n            if (puVar12 != (undefined4 *)puVar12[-2]) break;\n            uVar13 = puVar12[1];\n            uVar10 = puVar12[2];\n            uVar9 = puVar12[3];\n            puVar6[2] = *puVar12;\n            puVar6[3] = uVar13;\n            puVar6[4] = uVar10;\n            puVar6[5] = uVar9;\n            uVar1 = *(undefined1 *)(puVar12 + 5);\n            uVar9 = puVar12[4];\n            puVar6[1] = puVar12[-1];\n            puVar12[-2] = puVar12;\n            puVar14 = puVar12 + 8;\n            puVar12[-1] = 0;\n            *(undefined1 *)puVar12 = 0;\n            *(undefined1 *)(puVar6 + 7) = uVar1;\n            puVar6[6] = uVar9;\n            *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n            puVar12 = puVar14;\n            puVar6 = puVar6 + 8;\n            if (puVar8 + 2 == puVar14) goto LAB_00224324;\n          }\n          *puVar6 = (undefined4 *)puVar12[-2];\n          uVar1 = *(undefined1 *)(puVar12 + 5);\n          puVar6[2] = *puVar12;\n          uVar9 = puVar12[4];\n          puVar6[1] = puVar12[-1];\n          puVar12[-2] = puVar12;\n          puVar14 = puVar12 + 8;\n          puVar12[-1] = 0;\n          *(undefined1 *)puVar12 = 0;\n          *(undefined1 *)(puVar6 + 7) = uVar1;\n          puVar6[6] = uVar9;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n          puVar12 = puVar14;\n          puVar6 = puVar6 + 8;\n        } while (puVar8 + 2 != puVar14);\nLAB_00224324:\n        puVar6 = (undefined4 *)param_1[1];\n      }\n      param_1[1] = (int)puVar6 + iVar5;\n      if (0 < iVar5) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar21 = uVar21 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar21 != 0);\n      }\n    }\n    return;\n  }" ({ "{") (expression_statement "iVar5 = (int)puVar8 - (int)param_2;" (assignment_expression "iVar5 = (int)puVar8 - (int)param_2" (identifier "iVar5") (= "=") (binary_expression "(int)puVar8 - (int)param_2" (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")) (- "-") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")))) (; ";")) (expression_statement "uVar21 = iVar5 >> 5;" (assignment_expression "uVar21 = iVar5 >> 5" (identifier "uVar21") (= "=") (binary_expression "iVar5 >> 5" (identifier "iVar5") (>> ">>") (number_literal "5"))) (; ";")) (if_statement "if (uVar20 < uVar21) {\n      puVar6 = (undefined4 *)((int)puVar8 + (8 - iVar18));\n      puVar12 = puVar8;\n      do {\n        while( true ) {\n          *puVar12 = puVar12 + 2;\n          if ((undefined4 *)puVar6[-2] != puVar6) break;\n          uVar13 = puVar6[1];\n          uVar10 = puVar6[2];\n          uVar9 = puVar6[3];\n          puVar12[2] = *puVar6;\n          puVar12[3] = uVar13;\n          puVar12[4] = uVar10;\n          puVar12[5] = uVar9;\n          uVar1 = *(undefined1 *)(puVar6 + 5);\n          uVar9 = puVar6[4];\n          puVar12[1] = puVar6[-1];\n          puVar6[-2] = puVar6;\n          puVar14 = puVar6 + 8;\n          puVar6[-1] = 0;\n          *(undefined1 *)puVar6 = 0;\n          *(undefined1 *)(puVar12 + 7) = uVar1;\n          puVar12[6] = uVar9;\n          *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar14;\n          puVar12 = puVar12 + 8;\n          if (puVar8 + 2 == puVar14) goto LAB_002247fc;\n        }\n        *puVar12 = (undefined4 *)puVar6[-2];\n        uVar1 = *(undefined1 *)(puVar6 + 5);\n        puVar12[2] = *puVar6;\n        uVar9 = puVar6[4];\n        puVar12[1] = puVar6[-1];\n        puVar6[-2] = puVar6;\n        puVar14 = puVar6 + 8;\n        puVar6[-1] = 0;\n        *(undefined1 *)puVar6 = 0;\n        *(undefined1 *)(puVar12 + 7) = uVar1;\n        puVar12[6] = uVar9;\n        *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n        puVar6 = puVar14;\n        puVar12 = puVar12 + 8;\n      } while (puVar8 + 2 != puVar14);\nLAB_002247fc:\n      iVar5 = (int)puVar8 + (-(int)param_2 - iVar18);\n      iVar19 = iVar5 >> 5;\n      param_1[1] = param_1[1] + iVar18;\n      if (0 < iVar5) {\n        puVar6 = (undefined4 *)((int)puVar8 + (-0x18 - iVar18));\n        puVar8 = puVar8 + -6;\n        do {\n          while( true ) {\n            puVar12 = (undefined4 *)puVar8[-2];\n            if ((undefined4 *)puVar6[-2] != puVar6) break;\n            iVar5 = puVar6[-1];\n            if (iVar5 != 0) {\n              if (iVar5 == 1) {\n                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n            }\n            puVar8[-1] = iVar5;\n            *(undefined1 *)((int)puVar12 + iVar5) = 0;\n            iVar19 = iVar19 + -1;\n            puVar6[-1] = 0;\n            *(undefined1 *)puVar6[-2] = 0;\n            uVar9 = puVar6[4];\n            *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n            puVar8[4] = uVar9;\n            *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n            puVar6 = puVar6 + -8;\n            puVar8 = puVar8 + -8;\n            if (iVar19 == 0) goto LAB_002248f8;\n          }\n          puVar8[-2] = (undefined4 *)puVar6[-2];\n          if (puVar12 == puVar8) {\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\nLAB_0022497c:\n            puVar6[-2] = puVar6;\n          }\n          else {\n            uVar9 = *puVar8;\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\n            if (puVar12 == (undefined4 *)0x0) goto LAB_0022497c;\n            puVar6[-2] = puVar12;\n            *puVar6 = uVar9;\n          }\n          puVar6[-1] = 0;\n          iVar19 = iVar19 + -1;\n          *(undefined1 *)puVar6[-2] = 0;\n          uVar9 = puVar6[4];\n          *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n          puVar8[4] = uVar9;\n          *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar6 + -8;\n          puVar8 = puVar8 + -8;\n        } while (iVar19 != 0);\n      }\nLAB_002248f8:\n      if (0 < iVar18) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar20 = uVar20 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar20 != 0);\n        return;\n      }\n    }\n    else {\n      piVar16 = (int *)((int)param_3 + iVar5);\n      puVar6 = puVar8;\n      if (piVar16 != param_4) {\n        do {\n          *puVar6 = puVar6 + 2;\n                    \n          (*(code *)puVar4)(puVar6,*piVar16,*piVar16 + piVar16[1],0);\n          piVar17 = piVar16 + 8;\n          iVar18 = piVar16[6];\n          *(undefined1 *)(puVar6 + 7) = *(undefined1 *)(piVar16 + 7);\n          puVar6[6] = iVar18;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)piVar16 + 0x1d);\n          piVar16 = piVar17;\n          puVar6 = puVar6 + 8;\n        } while (param_4 != piVar17);\n        puVar6 = (undefined4 *)param_1[1];\n      }\n      puVar6 = puVar6 + (uVar20 - uVar21) * 8;\n      param_1[1] = puVar6;\n      if (puVar8 != param_2) {\n        puVar12 = param_2 + 2;\n        do {\n          while( true ) {\n            *puVar6 = puVar6 + 2;\n            if (puVar12 != (undefined4 *)puVar12[-2]) break;\n            uVar13 = puVar12[1];\n            uVar10 = puVar12[2];\n            uVar9 = puVar12[3];\n            puVar6[2] = *puVar12;\n            puVar6[3] = uVar13;\n            puVar6[4] = uVar10;\n            puVar6[5] = uVar9;\n            uVar1 = *(undefined1 *)(puVar12 + 5);\n            uVar9 = puVar12[4];\n            puVar6[1] = puVar12[-1];\n            puVar12[-2] = puVar12;\n            puVar14 = puVar12 + 8;\n            puVar12[-1] = 0;\n            *(undefined1 *)puVar12 = 0;\n            *(undefined1 *)(puVar6 + 7) = uVar1;\n            puVar6[6] = uVar9;\n            *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n            puVar12 = puVar14;\n            puVar6 = puVar6 + 8;\n            if (puVar8 + 2 == puVar14) goto LAB_00224324;\n          }\n          *puVar6 = (undefined4 *)puVar12[-2];\n          uVar1 = *(undefined1 *)(puVar12 + 5);\n          puVar6[2] = *puVar12;\n          uVar9 = puVar12[4];\n          puVar6[1] = puVar12[-1];\n          puVar12[-2] = puVar12;\n          puVar14 = puVar12 + 8;\n          puVar12[-1] = 0;\n          *(undefined1 *)puVar12 = 0;\n          *(undefined1 *)(puVar6 + 7) = uVar1;\n          puVar6[6] = uVar9;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n          puVar12 = puVar14;\n          puVar6 = puVar6 + 8;\n        } while (puVar8 + 2 != puVar14);\nLAB_00224324:\n        puVar6 = (undefined4 *)param_1[1];\n      }\n      param_1[1] = (int)puVar6 + iVar5;\n      if (0 < iVar5) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar21 = uVar21 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar21 != 0);\n      }\n    }" (if "if") (parenthesized_expression "(uVar20 < uVar21)" (( "(") (binary_expression "uVar20 < uVar21" (identifier "uVar20") (< "<") (identifier "uVar21")) () ")")) (compound_statement "{\n      puVar6 = (undefined4 *)((int)puVar8 + (8 - iVar18));\n      puVar12 = puVar8;\n      do {\n        while( true ) {\n          *puVar12 = puVar12 + 2;\n          if ((undefined4 *)puVar6[-2] != puVar6) break;\n          uVar13 = puVar6[1];\n          uVar10 = puVar6[2];\n          uVar9 = puVar6[3];\n          puVar12[2] = *puVar6;\n          puVar12[3] = uVar13;\n          puVar12[4] = uVar10;\n          puVar12[5] = uVar9;\n          uVar1 = *(undefined1 *)(puVar6 + 5);\n          uVar9 = puVar6[4];\n          puVar12[1] = puVar6[-1];\n          puVar6[-2] = puVar6;\n          puVar14 = puVar6 + 8;\n          puVar6[-1] = 0;\n          *(undefined1 *)puVar6 = 0;\n          *(undefined1 *)(puVar12 + 7) = uVar1;\n          puVar12[6] = uVar9;\n          *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar14;\n          puVar12 = puVar12 + 8;\n          if (puVar8 + 2 == puVar14) goto LAB_002247fc;\n        }\n        *puVar12 = (undefined4 *)puVar6[-2];\n        uVar1 = *(undefined1 *)(puVar6 + 5);\n        puVar12[2] = *puVar6;\n        uVar9 = puVar6[4];\n        puVar12[1] = puVar6[-1];\n        puVar6[-2] = puVar6;\n        puVar14 = puVar6 + 8;\n        puVar6[-1] = 0;\n        *(undefined1 *)puVar6 = 0;\n        *(undefined1 *)(puVar12 + 7) = uVar1;\n        puVar12[6] = uVar9;\n        *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n        puVar6 = puVar14;\n        puVar12 = puVar12 + 8;\n      } while (puVar8 + 2 != puVar14);\nLAB_002247fc:\n      iVar5 = (int)puVar8 + (-(int)param_2 - iVar18);\n      iVar19 = iVar5 >> 5;\n      param_1[1] = param_1[1] + iVar18;\n      if (0 < iVar5) {\n        puVar6 = (undefined4 *)((int)puVar8 + (-0x18 - iVar18));\n        puVar8 = puVar8 + -6;\n        do {\n          while( true ) {\n            puVar12 = (undefined4 *)puVar8[-2];\n            if ((undefined4 *)puVar6[-2] != puVar6) break;\n            iVar5 = puVar6[-1];\n            if (iVar5 != 0) {\n              if (iVar5 == 1) {\n                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n            }\n            puVar8[-1] = iVar5;\n            *(undefined1 *)((int)puVar12 + iVar5) = 0;\n            iVar19 = iVar19 + -1;\n            puVar6[-1] = 0;\n            *(undefined1 *)puVar6[-2] = 0;\n            uVar9 = puVar6[4];\n            *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n            puVar8[4] = uVar9;\n            *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n            puVar6 = puVar6 + -8;\n            puVar8 = puVar8 + -8;\n            if (iVar19 == 0) goto LAB_002248f8;\n          }\n          puVar8[-2] = (undefined4 *)puVar6[-2];\n          if (puVar12 == puVar8) {\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\nLAB_0022497c:\n            puVar6[-2] = puVar6;\n          }\n          else {\n            uVar9 = *puVar8;\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\n            if (puVar12 == (undefined4 *)0x0) goto LAB_0022497c;\n            puVar6[-2] = puVar12;\n            *puVar6 = uVar9;\n          }\n          puVar6[-1] = 0;\n          iVar19 = iVar19 + -1;\n          *(undefined1 *)puVar6[-2] = 0;\n          uVar9 = puVar6[4];\n          *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n          puVar8[4] = uVar9;\n          *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar6 + -8;\n          puVar8 = puVar8 + -8;\n        } while (iVar19 != 0);\n      }\nLAB_002248f8:\n      if (0 < iVar18) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar20 = uVar20 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar20 != 0);\n        return;\n      }\n    }" ({ "{") (expression_statement "puVar6 = (undefined4 *)((int)puVar8 + (8 - iVar18));" (assignment_expression "puVar6 = (undefined4 *)((int)puVar8 + (8 - iVar18))" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)((int)puVar8 + (8 - iVar18))" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar8 + (8 - iVar18))" (( "(") (binary_expression "(int)puVar8 + (8 - iVar18)" (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")) (+ "+") (parenthesized_expression "(8 - iVar18)" (( "(") (binary_expression "8 - iVar18" (number_literal "8") (- "-") (identifier "iVar18")) () ")"))) () ")")))) (; ";")) (expression_statement "puVar12 = puVar8;" (assignment_expression "puVar12 = puVar8" (identifier "puVar12") (= "=") (identifier "puVar8")) (; ";")) (do_statement "do {\n        while( true ) {\n          *puVar12 = puVar12 + 2;\n          if ((undefined4 *)puVar6[-2] != puVar6) break;\n          uVar13 = puVar6[1];\n          uVar10 = puVar6[2];\n          uVar9 = puVar6[3];\n          puVar12[2] = *puVar6;\n          puVar12[3] = uVar13;\n          puVar12[4] = uVar10;\n          puVar12[5] = uVar9;\n          uVar1 = *(undefined1 *)(puVar6 + 5);\n          uVar9 = puVar6[4];\n          puVar12[1] = puVar6[-1];\n          puVar6[-2] = puVar6;\n          puVar14 = puVar6 + 8;\n          puVar6[-1] = 0;\n          *(undefined1 *)puVar6 = 0;\n          *(undefined1 *)(puVar12 + 7) = uVar1;\n          puVar12[6] = uVar9;\n          *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar14;\n          puVar12 = puVar12 + 8;\n          if (puVar8 + 2 == puVar14) goto LAB_002247fc;\n        }\n        *puVar12 = (undefined4 *)puVar6[-2];\n        uVar1 = *(undefined1 *)(puVar6 + 5);\n        puVar12[2] = *puVar6;\n        uVar9 = puVar6[4];\n        puVar12[1] = puVar6[-1];\n        puVar6[-2] = puVar6;\n        puVar14 = puVar6 + 8;\n        puVar6[-1] = 0;\n        *(undefined1 *)puVar6 = 0;\n        *(undefined1 *)(puVar12 + 7) = uVar1;\n        puVar12[6] = uVar9;\n        *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n        puVar6 = puVar14;\n        puVar12 = puVar12 + 8;\n      } while (puVar8 + 2 != puVar14);" (do "do") (compound_statement "{\n        while( true ) {\n          *puVar12 = puVar12 + 2;\n          if ((undefined4 *)puVar6[-2] != puVar6) break;\n          uVar13 = puVar6[1];\n          uVar10 = puVar6[2];\n          uVar9 = puVar6[3];\n          puVar12[2] = *puVar6;\n          puVar12[3] = uVar13;\n          puVar12[4] = uVar10;\n          puVar12[5] = uVar9;\n          uVar1 = *(undefined1 *)(puVar6 + 5);\n          uVar9 = puVar6[4];\n          puVar12[1] = puVar6[-1];\n          puVar6[-2] = puVar6;\n          puVar14 = puVar6 + 8;\n          puVar6[-1] = 0;\n          *(undefined1 *)puVar6 = 0;\n          *(undefined1 *)(puVar12 + 7) = uVar1;\n          puVar12[6] = uVar9;\n          *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar14;\n          puVar12 = puVar12 + 8;\n          if (puVar8 + 2 == puVar14) goto LAB_002247fc;\n        }\n        *puVar12 = (undefined4 *)puVar6[-2];\n        uVar1 = *(undefined1 *)(puVar6 + 5);\n        puVar12[2] = *puVar6;\n        uVar9 = puVar6[4];\n        puVar12[1] = puVar6[-1];\n        puVar6[-2] = puVar6;\n        puVar14 = puVar6 + 8;\n        puVar6[-1] = 0;\n        *(undefined1 *)puVar6 = 0;\n        *(undefined1 *)(puVar12 + 7) = uVar1;\n        puVar12[6] = uVar9;\n        *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n        puVar6 = puVar14;\n        puVar12 = puVar12 + 8;\n      }" ({ "{") (while_statement "while( true ) {\n          *puVar12 = puVar12 + 2;\n          if ((undefined4 *)puVar6[-2] != puVar6) break;\n          uVar13 = puVar6[1];\n          uVar10 = puVar6[2];\n          uVar9 = puVar6[3];\n          puVar12[2] = *puVar6;\n          puVar12[3] = uVar13;\n          puVar12[4] = uVar10;\n          puVar12[5] = uVar9;\n          uVar1 = *(undefined1 *)(puVar6 + 5);\n          uVar9 = puVar6[4];\n          puVar12[1] = puVar6[-1];\n          puVar6[-2] = puVar6;\n          puVar14 = puVar6 + 8;\n          puVar6[-1] = 0;\n          *(undefined1 *)puVar6 = 0;\n          *(undefined1 *)(puVar12 + 7) = uVar1;\n          puVar12[6] = uVar9;\n          *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar14;\n          puVar12 = puVar12 + 8;\n          if (puVar8 + 2 == puVar14) goto LAB_002247fc;\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          *puVar12 = puVar12 + 2;\n          if ((undefined4 *)puVar6[-2] != puVar6) break;\n          uVar13 = puVar6[1];\n          uVar10 = puVar6[2];\n          uVar9 = puVar6[3];\n          puVar12[2] = *puVar6;\n          puVar12[3] = uVar13;\n          puVar12[4] = uVar10;\n          puVar12[5] = uVar9;\n          uVar1 = *(undefined1 *)(puVar6 + 5);\n          uVar9 = puVar6[4];\n          puVar12[1] = puVar6[-1];\n          puVar6[-2] = puVar6;\n          puVar14 = puVar6 + 8;\n          puVar6[-1] = 0;\n          *(undefined1 *)puVar6 = 0;\n          *(undefined1 *)(puVar12 + 7) = uVar1;\n          puVar12[6] = uVar9;\n          *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar14;\n          puVar12 = puVar12 + 8;\n          if (puVar8 + 2 == puVar14) goto LAB_002247fc;\n        }" ({ "{") (expression_statement "*puVar12 = puVar12 + 2;" (assignment_expression "*puVar12 = puVar12 + 2" (pointer_expression "*puVar12" (* "*") (identifier "puVar12")) (= "=") (binary_expression "puVar12 + 2" (identifier "puVar12") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if ((undefined4 *)puVar6[-2] != puVar6) break;" (if "if") (parenthesized_expression "((undefined4 *)puVar6[-2] != puVar6)" (( "(") (binary_expression "(undefined4 *)puVar6[-2] != puVar6" (cast_expression "(undefined4 *)puVar6[-2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar6[-2]" (identifier "puVar6") ([ "[") (number_literal "-2") (] "]"))) (!= "!=") (identifier "puVar6")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar13 = puVar6[1];" (assignment_expression "uVar13 = puVar6[1]" (identifier "uVar13") (= "=") (subscript_expression "puVar6[1]" (identifier "puVar6") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar10 = puVar6[2];" (assignment_expression "uVar10 = puVar6[2]" (identifier "uVar10") (= "=") (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar9 = puVar6[3];" (assignment_expression "uVar9 = puVar6[3]" (identifier "uVar9") (= "=") (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar12[2] = *puVar6;" (assignment_expression "puVar12[2] = *puVar6" (subscript_expression "puVar12[2]" (identifier "puVar12") ([ "[") (number_literal "2") (] "]")) (= "=") (pointer_expression "*puVar6" (* "*") (identifier "puVar6"))) (; ";")) (expression_statement "puVar12[3] = uVar13;" (assignment_expression "puVar12[3] = uVar13" (subscript_expression "puVar12[3]" (identifier "puVar12") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "puVar12[4] = uVar10;" (assignment_expression "puVar12[4] = uVar10" (subscript_expression "puVar12[4]" (identifier "puVar12") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "puVar12[5] = uVar9;" (assignment_expression "puVar12[5] = uVar9" (subscript_expression "puVar12[5]" (identifier "puVar12") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "uVar1 = *(undefined1 *)(puVar6 + 5);" (assignment_expression "uVar1 = *(undefined1 *)(puVar6 + 5)" (identifier "uVar1") (= "=") (pointer_expression "*(undefined1 *)(puVar6 + 5)" (* "*") (cast_expression "(undefined1 *)(puVar6 + 5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 5)" (( "(") (binary_expression "puVar6 + 5" (identifier "puVar6") (+ "+") (number_literal "5")) () ")"))))) (; ";")) (expression_statement "uVar9 = puVar6[4];" (assignment_expression "uVar9 = puVar6[4]" (identifier "uVar9") (= "=") (subscript_expression "puVar6[4]" (identifier "puVar6") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "puVar12[1] = puVar6[-1];" (assignment_expression "puVar12[1] = puVar6[-1]" (subscript_expression "puVar12[1]" (identifier "puVar12") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "puVar6[-1]" (identifier "puVar6") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "puVar6[-2] = puVar6;" (assignment_expression "puVar6[-2] = puVar6" (subscript_expression "puVar6[-2]" (identifier "puVar6") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "puVar6")) (; ";")) (expression_statement "puVar14 = puVar6 + 8;" (assignment_expression "puVar14 = puVar6 + 8" (identifier "puVar14") (= "=") (binary_expression "puVar6 + 8" (identifier "puVar6") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "puVar6[-1] = 0;" (assignment_expression "puVar6[-1] = 0" (subscript_expression "puVar6[-1]" (identifier "puVar6") ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)puVar6 = 0;" (assignment_expression "*(undefined1 *)puVar6 = 0" (pointer_expression "*(undefined1 *)puVar6" (* "*") (cast_expression "(undefined1 *)puVar6" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar6"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar12 + 7) = uVar1;" (assignment_expression "*(undefined1 *)(puVar12 + 7) = uVar1" (pointer_expression "*(undefined1 *)(puVar12 + 7)" (* "*") (cast_expression "(undefined1 *)(puVar12 + 7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 7)" (( "(") (binary_expression "puVar12 + 7" (identifier "puVar12") (+ "+") (number_literal "7")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "puVar12[6] = uVar9;" (assignment_expression "puVar12[6] = uVar9" (subscript_expression "puVar12[6]" (identifier "puVar12") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);" (assignment_expression "*(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15)" (pointer_expression "*(undefined1 *)((int)puVar12 + 0x1d)" (* "*") (cast_expression "(undefined1 *)((int)puVar12 + 0x1d)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar12 + 0x1d)" (( "(") (binary_expression "(int)puVar12 + 0x1d" (cast_expression "(int)puVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar12")) (+ "+") (number_literal "0x1d")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)((int)puVar6 + 0x15)" (* "*") (cast_expression "(undefined1 *)((int)puVar6 + 0x15)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar6 + 0x15)" (( "(") (binary_expression "(int)puVar6 + 0x15" (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6")) (+ "+") (number_literal "0x15")) () ")"))))) (; ";")) (expression_statement "puVar6 = puVar14;" (assignment_expression "puVar6 = puVar14" (identifier "puVar6") (= "=") (identifier "puVar14")) (; ";")) (expression_statement "puVar12 = puVar12 + 8;" (assignment_expression "puVar12 = puVar12 + 8" (identifier "puVar12") (= "=") (binary_expression "puVar12 + 8" (identifier "puVar12") (+ "+") (number_literal "8"))) (; ";")) (if_statement "if (puVar8 + 2 == puVar14) goto LAB_002247fc;" (if "if") (parenthesized_expression "(puVar8 + 2 == puVar14)" (( "(") (binary_expression "puVar8 + 2 == puVar14" (binary_expression "puVar8 + 2" (identifier "puVar8") (+ "+") (number_literal "2")) (== "==") (identifier "puVar14")) () ")")) (goto_statement "goto LAB_002247fc;" (goto "goto") (statement_identifier "LAB_002247fc") (; ";"))) (} "}"))) (expression_statement "*puVar12 = (undefined4 *)puVar6[-2];" (assignment_expression "*puVar12 = (undefined4 *)puVar6[-2]" (pointer_expression "*puVar12" (* "*") (identifier "puVar12")) (= "=") (cast_expression "(undefined4 *)puVar6[-2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar6[-2]" (identifier "puVar6") ([ "[") (number_literal "-2") (] "]")))) (; ";")) (expression_statement "uVar1 = *(undefined1 *)(puVar6 + 5);" (assignment_expression "uVar1 = *(undefined1 *)(puVar6 + 5)" (identifier "uVar1") (= "=") (pointer_expression "*(undefined1 *)(puVar6 + 5)" (* "*") (cast_expression "(undefined1 *)(puVar6 + 5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 5)" (( "(") (binary_expression "puVar6 + 5" (identifier "puVar6") (+ "+") (number_literal "5")) () ")"))))) (; ";")) (expression_statement "puVar12[2] = *puVar6;" (assignment_expression "puVar12[2] = *puVar6" (subscript_expression "puVar12[2]" (identifier "puVar12") ([ "[") (number_literal "2") (] "]")) (= "=") (pointer_expression "*puVar6" (* "*") (identifier "puVar6"))) (; ";")) (expression_statement "uVar9 = puVar6[4];" (assignment_expression "uVar9 = puVar6[4]" (identifier "uVar9") (= "=") (subscript_expression "puVar6[4]" (identifier "puVar6") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "puVar12[1] = puVar6[-1];" (assignment_expression "puVar12[1] = puVar6[-1]" (subscript_expression "puVar12[1]" (identifier "puVar12") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "puVar6[-1]" (identifier "puVar6") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "puVar6[-2] = puVar6;" (assignment_expression "puVar6[-2] = puVar6" (subscript_expression "puVar6[-2]" (identifier "puVar6") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "puVar6")) (; ";")) (expression_statement "puVar14 = puVar6 + 8;" (assignment_expression "puVar14 = puVar6 + 8" (identifier "puVar14") (= "=") (binary_expression "puVar6 + 8" (identifier "puVar6") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "puVar6[-1] = 0;" (assignment_expression "puVar6[-1] = 0" (subscript_expression "puVar6[-1]" (identifier "puVar6") ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)puVar6 = 0;" (assignment_expression "*(undefined1 *)puVar6 = 0" (pointer_expression "*(undefined1 *)puVar6" (* "*") (cast_expression "(undefined1 *)puVar6" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar6"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar12 + 7) = uVar1;" (assignment_expression "*(undefined1 *)(puVar12 + 7) = uVar1" (pointer_expression "*(undefined1 *)(puVar12 + 7)" (* "*") (cast_expression "(undefined1 *)(puVar12 + 7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 7)" (( "(") (binary_expression "puVar12 + 7" (identifier "puVar12") (+ "+") (number_literal "7")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "puVar12[6] = uVar9;" (assignment_expression "puVar12[6] = uVar9" (subscript_expression "puVar12[6]" (identifier "puVar12") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);" (assignment_expression "*(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15)" (pointer_expression "*(undefined1 *)((int)puVar12 + 0x1d)" (* "*") (cast_expression "(undefined1 *)((int)puVar12 + 0x1d)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar12 + 0x1d)" (( "(") (binary_expression "(int)puVar12 + 0x1d" (cast_expression "(int)puVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar12")) (+ "+") (number_literal "0x1d")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)((int)puVar6 + 0x15)" (* "*") (cast_expression "(undefined1 *)((int)puVar6 + 0x15)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar6 + 0x15)" (( "(") (binary_expression "(int)puVar6 + 0x15" (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6")) (+ "+") (number_literal "0x15")) () ")"))))) (; ";")) (expression_statement "puVar6 = puVar14;" (assignment_expression "puVar6 = puVar14" (identifier "puVar6") (= "=") (identifier "puVar14")) (; ";")) (expression_statement "puVar12 = puVar12 + 8;" (assignment_expression "puVar12 = puVar12 + 8" (identifier "puVar12") (= "=") (binary_expression "puVar12 + 8" (identifier "puVar12") (+ "+") (number_literal "8"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar8 + 2 != puVar14)" (( "(") (binary_expression "puVar8 + 2 != puVar14" (binary_expression "puVar8 + 2" (identifier "puVar8") (+ "+") (number_literal "2")) (!= "!=") (identifier "puVar14")) () ")")) (; ";")) (labeled_statement "LAB_002247fc:\n      iVar5 = (int)puVar8 + (-(int)param_2 - iVar18);" (statement_identifier "LAB_002247fc") (: ":") (expression_statement "iVar5 = (int)puVar8 + (-(int)param_2 - iVar18);" (assignment_expression "iVar5 = (int)puVar8 + (-(int)param_2 - iVar18)" (identifier "iVar5") (= "=") (binary_expression "(int)puVar8 + (-(int)param_2 - iVar18)" (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")) (+ "+") (parenthesized_expression "(-(int)param_2 - iVar18)" (( "(") (binary_expression "-(int)param_2 - iVar18" (unary_expression "-(int)param_2" (- "-") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))) (- "-") (identifier "iVar18")) () ")")))) (; ";"))) (expression_statement "iVar19 = iVar5 >> 5;" (assignment_expression "iVar19 = iVar5 >> 5" (identifier "iVar19") (= "=") (binary_expression "iVar5 >> 5" (identifier "iVar5") (>> ">>") (number_literal "5"))) (; ";")) (expression_statement "param_1[1] = param_1[1] + iVar18;" (assignment_expression "param_1[1] = param_1[1] + iVar18" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "param_1[1] + iVar18" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (identifier "iVar18"))) (; ";")) (if_statement "if (0 < iVar5) {\n        puVar6 = (undefined4 *)((int)puVar8 + (-0x18 - iVar18));\n        puVar8 = puVar8 + -6;\n        do {\n          while( true ) {\n            puVar12 = (undefined4 *)puVar8[-2];\n            if ((undefined4 *)puVar6[-2] != puVar6) break;\n            iVar5 = puVar6[-1];\n            if (iVar5 != 0) {\n              if (iVar5 == 1) {\n                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n            }\n            puVar8[-1] = iVar5;\n            *(undefined1 *)((int)puVar12 + iVar5) = 0;\n            iVar19 = iVar19 + -1;\n            puVar6[-1] = 0;\n            *(undefined1 *)puVar6[-2] = 0;\n            uVar9 = puVar6[4];\n            *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n            puVar8[4] = uVar9;\n            *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n            puVar6 = puVar6 + -8;\n            puVar8 = puVar8 + -8;\n            if (iVar19 == 0) goto LAB_002248f8;\n          }\n          puVar8[-2] = (undefined4 *)puVar6[-2];\n          if (puVar12 == puVar8) {\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\nLAB_0022497c:\n            puVar6[-2] = puVar6;\n          }\n          else {\n            uVar9 = *puVar8;\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\n            if (puVar12 == (undefined4 *)0x0) goto LAB_0022497c;\n            puVar6[-2] = puVar12;\n            *puVar6 = uVar9;\n          }\n          puVar6[-1] = 0;\n          iVar19 = iVar19 + -1;\n          *(undefined1 *)puVar6[-2] = 0;\n          uVar9 = puVar6[4];\n          *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n          puVar8[4] = uVar9;\n          *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar6 + -8;\n          puVar8 = puVar8 + -8;\n        } while (iVar19 != 0);\n      }" (if "if") (parenthesized_expression "(0 < iVar5)" (( "(") (binary_expression "0 < iVar5" (number_literal "0") (< "<") (identifier "iVar5")) () ")")) (compound_statement "{\n        puVar6 = (undefined4 *)((int)puVar8 + (-0x18 - iVar18));\n        puVar8 = puVar8 + -6;\n        do {\n          while( true ) {\n            puVar12 = (undefined4 *)puVar8[-2];\n            if ((undefined4 *)puVar6[-2] != puVar6) break;\n            iVar5 = puVar6[-1];\n            if (iVar5 != 0) {\n              if (iVar5 == 1) {\n                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n            }\n            puVar8[-1] = iVar5;\n            *(undefined1 *)((int)puVar12 + iVar5) = 0;\n            iVar19 = iVar19 + -1;\n            puVar6[-1] = 0;\n            *(undefined1 *)puVar6[-2] = 0;\n            uVar9 = puVar6[4];\n            *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n            puVar8[4] = uVar9;\n            *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n            puVar6 = puVar6 + -8;\n            puVar8 = puVar8 + -8;\n            if (iVar19 == 0) goto LAB_002248f8;\n          }\n          puVar8[-2] = (undefined4 *)puVar6[-2];\n          if (puVar12 == puVar8) {\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\nLAB_0022497c:\n            puVar6[-2] = puVar6;\n          }\n          else {\n            uVar9 = *puVar8;\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\n            if (puVar12 == (undefined4 *)0x0) goto LAB_0022497c;\n            puVar6[-2] = puVar12;\n            *puVar6 = uVar9;\n          }\n          puVar6[-1] = 0;\n          iVar19 = iVar19 + -1;\n          *(undefined1 *)puVar6[-2] = 0;\n          uVar9 = puVar6[4];\n          *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n          puVar8[4] = uVar9;\n          *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar6 + -8;\n          puVar8 = puVar8 + -8;\n        } while (iVar19 != 0);\n      }" ({ "{") (expression_statement "puVar6 = (undefined4 *)((int)puVar8 + (-0x18 - iVar18));" (assignment_expression "puVar6 = (undefined4 *)((int)puVar8 + (-0x18 - iVar18))" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)((int)puVar8 + (-0x18 - iVar18))" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar8 + (-0x18 - iVar18))" (( "(") (binary_expression "(int)puVar8 + (-0x18 - iVar18)" (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")) (+ "+") (parenthesized_expression "(-0x18 - iVar18)" (( "(") (binary_expression "-0x18 - iVar18" (number_literal "-0x18") (- "-") (identifier "iVar18")) () ")"))) () ")")))) (; ";")) (expression_statement "puVar8 = puVar8 + -6;" (assignment_expression "puVar8 = puVar8 + -6" (identifier "puVar8") (= "=") (binary_expression "puVar8 + -6" (identifier "puVar8") (+ "+") (number_literal "-6"))) (; ";")) (do_statement "do {\n          while( true ) {\n            puVar12 = (undefined4 *)puVar8[-2];\n            if ((undefined4 *)puVar6[-2] != puVar6) break;\n            iVar5 = puVar6[-1];\n            if (iVar5 != 0) {\n              if (iVar5 == 1) {\n                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n            }\n            puVar8[-1] = iVar5;\n            *(undefined1 *)((int)puVar12 + iVar5) = 0;\n            iVar19 = iVar19 + -1;\n            puVar6[-1] = 0;\n            *(undefined1 *)puVar6[-2] = 0;\n            uVar9 = puVar6[4];\n            *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n            puVar8[4] = uVar9;\n            *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n            puVar6 = puVar6 + -8;\n            puVar8 = puVar8 + -8;\n            if (iVar19 == 0) goto LAB_002248f8;\n          }\n          puVar8[-2] = (undefined4 *)puVar6[-2];\n          if (puVar12 == puVar8) {\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\nLAB_0022497c:\n            puVar6[-2] = puVar6;\n          }\n          else {\n            uVar9 = *puVar8;\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\n            if (puVar12 == (undefined4 *)0x0) goto LAB_0022497c;\n            puVar6[-2] = puVar12;\n            *puVar6 = uVar9;\n          }\n          puVar6[-1] = 0;\n          iVar19 = iVar19 + -1;\n          *(undefined1 *)puVar6[-2] = 0;\n          uVar9 = puVar6[4];\n          *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n          puVar8[4] = uVar9;\n          *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar6 + -8;\n          puVar8 = puVar8 + -8;\n        } while (iVar19 != 0);" (do "do") (compound_statement "{\n          while( true ) {\n            puVar12 = (undefined4 *)puVar8[-2];\n            if ((undefined4 *)puVar6[-2] != puVar6) break;\n            iVar5 = puVar6[-1];\n            if (iVar5 != 0) {\n              if (iVar5 == 1) {\n                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n            }\n            puVar8[-1] = iVar5;\n            *(undefined1 *)((int)puVar12 + iVar5) = 0;\n            iVar19 = iVar19 + -1;\n            puVar6[-1] = 0;\n            *(undefined1 *)puVar6[-2] = 0;\n            uVar9 = puVar6[4];\n            *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n            puVar8[4] = uVar9;\n            *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n            puVar6 = puVar6 + -8;\n            puVar8 = puVar8 + -8;\n            if (iVar19 == 0) goto LAB_002248f8;\n          }\n          puVar8[-2] = (undefined4 *)puVar6[-2];\n          if (puVar12 == puVar8) {\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\nLAB_0022497c:\n            puVar6[-2] = puVar6;\n          }\n          else {\n            uVar9 = *puVar8;\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\n            if (puVar12 == (undefined4 *)0x0) goto LAB_0022497c;\n            puVar6[-2] = puVar12;\n            *puVar6 = uVar9;\n          }\n          puVar6[-1] = 0;\n          iVar19 = iVar19 + -1;\n          *(undefined1 *)puVar6[-2] = 0;\n          uVar9 = puVar6[4];\n          *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n          puVar8[4] = uVar9;\n          *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n          puVar6 = puVar6 + -8;\n          puVar8 = puVar8 + -8;\n        }" ({ "{") (while_statement "while( true ) {\n            puVar12 = (undefined4 *)puVar8[-2];\n            if ((undefined4 *)puVar6[-2] != puVar6) break;\n            iVar5 = puVar6[-1];\n            if (iVar5 != 0) {\n              if (iVar5 == 1) {\n                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n            }\n            puVar8[-1] = iVar5;\n            *(undefined1 *)((int)puVar12 + iVar5) = 0;\n            iVar19 = iVar19 + -1;\n            puVar6[-1] = 0;\n            *(undefined1 *)puVar6[-2] = 0;\n            uVar9 = puVar6[4];\n            *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n            puVar8[4] = uVar9;\n            *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n            puVar6 = puVar6 + -8;\n            puVar8 = puVar8 + -8;\n            if (iVar19 == 0) goto LAB_002248f8;\n          }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n            puVar12 = (undefined4 *)puVar8[-2];\n            if ((undefined4 *)puVar6[-2] != puVar6) break;\n            iVar5 = puVar6[-1];\n            if (iVar5 != 0) {\n              if (iVar5 == 1) {\n                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n            }\n            puVar8[-1] = iVar5;\n            *(undefined1 *)((int)puVar12 + iVar5) = 0;\n            iVar19 = iVar19 + -1;\n            puVar6[-1] = 0;\n            *(undefined1 *)puVar6[-2] = 0;\n            uVar9 = puVar6[4];\n            *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);\n            puVar8[4] = uVar9;\n            *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);\n            puVar6 = puVar6 + -8;\n            puVar8 = puVar8 + -8;\n            if (iVar19 == 0) goto LAB_002248f8;\n          }" ({ "{") (expression_statement "puVar12 = (undefined4 *)puVar8[-2];" (assignment_expression "puVar12 = (undefined4 *)puVar8[-2]" (identifier "puVar12") (= "=") (cast_expression "(undefined4 *)puVar8[-2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar8[-2]" (identifier "puVar8") ([ "[") (number_literal "-2") (] "]")))) (; ";")) (if_statement "if ((undefined4 *)puVar6[-2] != puVar6) break;" (if "if") (parenthesized_expression "((undefined4 *)puVar6[-2] != puVar6)" (( "(") (binary_expression "(undefined4 *)puVar6[-2] != puVar6" (cast_expression "(undefined4 *)puVar6[-2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar6[-2]" (identifier "puVar6") ([ "[") (number_literal "-2") (] "]"))) (!= "!=") (identifier "puVar6")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = puVar6[-1];" (assignment_expression "iVar5 = puVar6[-1]" (identifier "iVar5") (= "=") (subscript_expression "puVar6[-1]" (identifier "puVar6") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (if_statement "if (iVar5 != 0) {\n              if (iVar5 == 1) {\n                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n            }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              if (iVar5 == 1) {\n                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n            }" ({ "{") (if_statement "if (iVar5 == 1) {\n                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }\n              else {\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }" (if "if") (parenthesized_expression "(iVar5 == 1)" (( "(") (binary_expression "iVar5 == 1" (identifier "iVar5") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }" ({ "{") (expression_statement "*(undefined1 *)puVar12 = *(undefined1 *)puVar6;" (assignment_expression "*(undefined1 *)puVar12 = *(undefined1 *)puVar6" (pointer_expression "*(undefined1 *)puVar12" (* "*") (cast_expression "(undefined1 *)puVar12" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar12"))) (= "=") (pointer_expression "*(undefined1 *)puVar6" (* "*") (cast_expression "(undefined1 *)puVar6" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar6")))) (; ";")) (expression_statement "puVar12 = (undefined4 *)puVar8[-2];" (assignment_expression "puVar12 = (undefined4 *)puVar8[-2]" (identifier "puVar12") (= "=") (cast_expression "(undefined4 *)puVar8[-2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar8[-2]" (identifier "puVar8") ([ "[") (number_literal "-2") (] "]")))) (; ";")) (expression_statement "iVar5 = puVar6[-1];" (assignment_expression "iVar5 = puVar6[-1]" (identifier "iVar5") (= "=") (subscript_expression "puVar6[-1]" (identifier "puVar6") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }" (else "else") (compound_statement "{\n                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);\n                puVar12 = (undefined4 *)puVar8[-2];\n                iVar5 = puVar6[-1];\n              }" ({ "{") (expression_statement "(*(code *)PTR_memcpy_00436788)(puVar12,puVar6);" (call_expression "(*(code *)PTR_memcpy_00436788)(puVar12,puVar6)" (parenthesized_expression "(*(code *)PTR_memcpy_00436788)" (( "(") (pointer_expression "*(code *)PTR_memcpy_00436788" (* "*") (cast_expression "(code *)PTR_memcpy_00436788" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memcpy_00436788"))) () ")")) (argument_list "(puVar12,puVar6)" (( "(") (identifier "puVar12") (, ",") (identifier "puVar6") () ")"))) (; ";")) (expression_statement "puVar12 = (undefined4 *)puVar8[-2];" (assignment_expression "puVar12 = (undefined4 *)puVar8[-2]" (identifier "puVar12") (= "=") (cast_expression "(undefined4 *)puVar8[-2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar8[-2]" (identifier "puVar8") ([ "[") (number_literal "-2") (] "]")))) (; ";")) (expression_statement "iVar5 = puVar6[-1];" (assignment_expression "iVar5 = puVar6[-1]" (identifier "iVar5") (= "=") (subscript_expression "puVar6[-1]" (identifier "puVar6") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "puVar8[-1] = iVar5;" (assignment_expression "puVar8[-1] = iVar5" (subscript_expression "puVar8[-1]" (identifier "puVar8") ([ "[") (number_literal "-1") (] "]")) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar12 + iVar5) = 0;" (assignment_expression "*(undefined1 *)((int)puVar12 + iVar5) = 0" (pointer_expression "*(undefined1 *)((int)puVar12 + iVar5)" (* "*") (cast_expression "(undefined1 *)((int)puVar12 + iVar5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar12 + iVar5)" (( "(") (binary_expression "(int)puVar12 + iVar5" (cast_expression "(int)puVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar12")) (+ "+") (identifier "iVar5")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" (identifier "iVar19") (= "=") (binary_expression "iVar19 + -1" (identifier "iVar19") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "puVar6[-1] = 0;" (assignment_expression "puVar6[-1] = 0" (subscript_expression "puVar6[-1]" (identifier "puVar6") ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)puVar6[-2] = 0;" (assignment_expression "*(undefined1 *)puVar6[-2] = 0" (pointer_expression "*(undefined1 *)puVar6[-2]" (* "*") (cast_expression "(undefined1 *)puVar6[-2]" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar6[-2]" (identifier "puVar6") ([ "[") (number_literal "-2") (] "]")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar9 = puVar6[4];" (assignment_expression "uVar9 = puVar6[4]" (identifier "uVar9") (= "=") (subscript_expression "puVar6[4]" (identifier "puVar6") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "*(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);" (assignment_expression "*(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5)" (pointer_expression "*(undefined1 *)(puVar8 + 5)" (* "*") (cast_expression "(undefined1 *)(puVar8 + 5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 5)" (( "(") (binary_expression "puVar8 + 5" (identifier "puVar8") (+ "+") (number_literal "5")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)(puVar6 + 5)" (* "*") (cast_expression "(undefined1 *)(puVar6 + 5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 5)" (( "(") (binary_expression "puVar6 + 5" (identifier "puVar6") (+ "+") (number_literal "5")) () ")"))))) (; ";")) (expression_statement "puVar8[4] = uVar9;" (assignment_expression "puVar8[4] = uVar9" (subscript_expression "puVar8[4]" (identifier "puVar8") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);" (assignment_expression "*(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15)" (pointer_expression "*(undefined1 *)((int)puVar8 + 0x15)" (* "*") (cast_expression "(undefined1 *)((int)puVar8 + 0x15)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar8 + 0x15)" (( "(") (binary_expression "(int)puVar8 + 0x15" (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")) (+ "+") (number_literal "0x15")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)((int)puVar6 + 0x15)" (* "*") (cast_expression "(undefined1 *)((int)puVar6 + 0x15)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar6 + 0x15)" (( "(") (binary_expression "(int)puVar6 + 0x15" (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6")) (+ "+") (number_literal "0x15")) () ")"))))) (; ";")) (expression_statement "puVar6 = puVar6 + -8;" (assignment_expression "puVar6 = puVar6 + -8" (identifier "puVar6") (= "=") (binary_expression "puVar6 + -8" (identifier "puVar6") (+ "+") (number_literal "-8"))) (; ";")) (expression_statement "puVar8 = puVar8 + -8;" (assignment_expression "puVar8 = puVar8 + -8" (identifier "puVar8") (= "=") (binary_expression "puVar8 + -8" (identifier "puVar8") (+ "+") (number_literal "-8"))) (; ";")) (if_statement "if (iVar19 == 0) goto LAB_002248f8;" (if "if") (parenthesized_expression "(iVar19 == 0)" (( "(") (binary_expression "iVar19 == 0" (identifier "iVar19") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_002248f8;" (goto "goto") (statement_identifier "LAB_002248f8") (; ";"))) (} "}"))) (expression_statement "puVar8[-2] = (undefined4 *)puVar6[-2];" (assignment_expression "puVar8[-2] = (undefined4 *)puVar6[-2]" (subscript_expression "puVar8[-2]" (identifier "puVar8") ([ "[") (number_literal "-2") (] "]")) (= "=") (cast_expression "(undefined4 *)puVar6[-2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar6[-2]" (identifier "puVar6") ([ "[") (number_literal "-2") (] "]")))) (; ";")) (if_statement "if (puVar12 == puVar8) {\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\nLAB_0022497c:\n            puVar6[-2] = puVar6;\n          }\n          else {\n            uVar9 = *puVar8;\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\n            if (puVar12 == (undefined4 *)0x0) goto LAB_0022497c;\n            puVar6[-2] = puVar12;\n            *puVar6 = uVar9;\n          }" (if "if") (parenthesized_expression "(puVar12 == puVar8)" (( "(") (binary_expression "puVar12 == puVar8" (identifier "puVar12") (== "==") (identifier "puVar8")) () ")")) (compound_statement "{\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\nLAB_0022497c:\n            puVar6[-2] = puVar6;\n          }" ({ "{") (expression_statement "puVar8[-1] = puVar6[-1];" (assignment_expression "puVar8[-1] = puVar6[-1]" (subscript_expression "puVar8[-1]" (identifier "puVar8") ([ "[") (number_literal "-1") (] "]")) (= "=") (subscript_expression "puVar6[-1]" (identifier "puVar6") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "*puVar8 = *puVar6;" (assignment_expression "*puVar8 = *puVar6" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (pointer_expression "*puVar6" (* "*") (identifier "puVar6"))) (; ";")) (labeled_statement "LAB_0022497c:\n            puVar6[-2] = puVar6;" (statement_identifier "LAB_0022497c") (: ":") (expression_statement "puVar6[-2] = puVar6;" (assignment_expression "puVar6[-2] = puVar6" (subscript_expression "puVar6[-2]" (identifier "puVar6") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "puVar6")) (; ";"))) (} "}")) (else_clause "else {\n            uVar9 = *puVar8;\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\n            if (puVar12 == (undefined4 *)0x0) goto LAB_0022497c;\n            puVar6[-2] = puVar12;\n            *puVar6 = uVar9;\n          }" (else "else") (compound_statement "{\n            uVar9 = *puVar8;\n            puVar8[-1] = puVar6[-1];\n            *puVar8 = *puVar6;\n            if (puVar12 == (undefined4 *)0x0) goto LAB_0022497c;\n            puVar6[-2] = puVar12;\n            *puVar6 = uVar9;\n          }" ({ "{") (expression_statement "uVar9 = *puVar8;" (assignment_expression "uVar9 = *puVar8" (identifier "uVar9") (= "=") (pointer_expression "*puVar8" (* "*") (identifier "puVar8"))) (; ";")) (expression_statement "puVar8[-1] = puVar6[-1];" (assignment_expression "puVar8[-1] = puVar6[-1]" (subscript_expression "puVar8[-1]" (identifier "puVar8") ([ "[") (number_literal "-1") (] "]")) (= "=") (subscript_expression "puVar6[-1]" (identifier "puVar6") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "*puVar8 = *puVar6;" (assignment_expression "*puVar8 = *puVar6" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (pointer_expression "*puVar6" (* "*") (identifier "puVar6"))) (; ";")) (if_statement "if (puVar12 == (undefined4 *)0x0) goto LAB_0022497c;" (if "if") (parenthesized_expression "(puVar12 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar12 == (undefined4 *)0x0" (identifier "puVar12") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0022497c;" (goto "goto") (statement_identifier "LAB_0022497c") (; ";"))) (expression_statement "puVar6[-2] = puVar12;" (assignment_expression "puVar6[-2] = puVar12" (subscript_expression "puVar6[-2]" (identifier "puVar6") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "puVar12")) (; ";")) (expression_statement "*puVar6 = uVar9;" (assignment_expression "*puVar6 = uVar9" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (= "=") (identifier "uVar9")) (; ";")) (} "}")))) (expression_statement "puVar6[-1] = 0;" (assignment_expression "puVar6[-1] = 0" (subscript_expression "puVar6[-1]" (identifier "puVar6") ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" (identifier "iVar19") (= "=") (binary_expression "iVar19 + -1" (identifier "iVar19") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "*(undefined1 *)puVar6[-2] = 0;" (assignment_expression "*(undefined1 *)puVar6[-2] = 0" (pointer_expression "*(undefined1 *)puVar6[-2]" (* "*") (cast_expression "(undefined1 *)puVar6[-2]" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar6[-2]" (identifier "puVar6") ([ "[") (number_literal "-2") (] "]")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar9 = puVar6[4];" (assignment_expression "uVar9 = puVar6[4]" (identifier "uVar9") (= "=") (subscript_expression "puVar6[4]" (identifier "puVar6") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "*(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);" (assignment_expression "*(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5)" (pointer_expression "*(undefined1 *)(puVar8 + 5)" (* "*") (cast_expression "(undefined1 *)(puVar8 + 5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 5)" (( "(") (binary_expression "puVar8 + 5" (identifier "puVar8") (+ "+") (number_literal "5")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)(puVar6 + 5)" (* "*") (cast_expression "(undefined1 *)(puVar6 + 5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 5)" (( "(") (binary_expression "puVar6 + 5" (identifier "puVar6") (+ "+") (number_literal "5")) () ")"))))) (; ";")) (expression_statement "puVar8[4] = uVar9;" (assignment_expression "puVar8[4] = uVar9" (subscript_expression "puVar8[4]" (identifier "puVar8") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);" (assignment_expression "*(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15)" (pointer_expression "*(undefined1 *)((int)puVar8 + 0x15)" (* "*") (cast_expression "(undefined1 *)((int)puVar8 + 0x15)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar8 + 0x15)" (( "(") (binary_expression "(int)puVar8 + 0x15" (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")) (+ "+") (number_literal "0x15")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)((int)puVar6 + 0x15)" (* "*") (cast_expression "(undefined1 *)((int)puVar6 + 0x15)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar6 + 0x15)" (( "(") (binary_expression "(int)puVar6 + 0x15" (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6")) (+ "+") (number_literal "0x15")) () ")"))))) (; ";")) (expression_statement "puVar6 = puVar6 + -8;" (assignment_expression "puVar6 = puVar6 + -8" (identifier "puVar6") (= "=") (binary_expression "puVar6 + -8" (identifier "puVar6") (+ "+") (number_literal "-8"))) (; ";")) (expression_statement "puVar8 = puVar8 + -8;" (assignment_expression "puVar8 = puVar8 + -8" (identifier "puVar8") (= "=") (binary_expression "puVar8 + -8" (identifier "puVar8") (+ "+") (number_literal "-8"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar19 != 0)" (( "(") (binary_expression "iVar19 != 0" (identifier "iVar19") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_002248f8:\n      if (0 < iVar18) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar20 = uVar20 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar20 != 0);\n        return;\n      }" (statement_identifier "LAB_002248f8") (: ":") (if_statement "if (0 < iVar18) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar20 = uVar20 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar20 != 0);\n        return;\n      }" (if "if") (parenthesized_expression "(0 < iVar18)" (( "(") (binary_expression "0 < iVar18" (number_literal "0") (< "<") (identifier "iVar18")) () ")")) (compound_statement "{\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar20 = uVar20 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar20 != 0);\n        return;\n      }" ({ "{") (do_statement "do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar20 = uVar20 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar20 != 0);" (do "do") (compound_statement "{\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar20 = uVar20 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        }" ({ "{") (expression_statement "(*(code *)PTR__M_assign_00432d78)(param_2,param_3);" (call_expression "(*(code *)PTR__M_assign_00432d78)(param_2,param_3)" (parenthesized_expression "(*(code *)PTR__M_assign_00432d78)" (( "(") (pointer_expression "*(code *)PTR__M_assign_00432d78" (* "*") (cast_expression "(code *)PTR__M_assign_00432d78" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR__M_assign_00432d78"))) () ")")) (argument_list "(param_2,param_3)" (( "(") (identifier "param_2") (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "uVar20 = uVar20 - 1;" (assignment_expression "uVar20 = uVar20 - 1" (identifier "uVar20") (= "=") (binary_expression "uVar20 - 1" (identifier "uVar20") (- "-") (number_literal "1"))) (; ";")) (expression_statement "iVar18 = param_3[6];" (assignment_expression "iVar18 = param_3[6]" (identifier "iVar18") (= "=") (subscript_expression "param_3[6]" (identifier "param_3") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "*(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);" (assignment_expression "*(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7)" (pointer_expression "*(undefined1 *)(param_2 + 7)" (* "*") (cast_expression "(undefined1 *)(param_2 + 7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 7)" (( "(") (binary_expression "param_2 + 7" (identifier "param_2") (+ "+") (number_literal "7")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)(param_3 + 7)" (* "*") (cast_expression "(undefined1 *)(param_3 + 7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 7)" (( "(") (binary_expression "param_3 + 7" (identifier "param_3") (+ "+") (number_literal "7")) () ")"))))) (; ";")) (expression_statement "param_2[6] = iVar18;" (assignment_expression "param_2[6] = iVar18" (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "iVar18")) (; ";")) (expression_statement "*(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);" (assignment_expression "*(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d)" (pointer_expression "*(undefined1 *)((int)param_2 + 0x1d)" (* "*") (cast_expression "(undefined1 *)((int)param_2 + 0x1d)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + 0x1d)" (( "(") (binary_expression "(int)param_2 + 0x1d" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (number_literal "0x1d")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)((int)param_3 + 0x1d)" (* "*") (cast_expression "(undefined1 *)((int)param_3 + 0x1d)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_3 + 0x1d)" (( "(") (binary_expression "(int)param_3 + 0x1d" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (+ "+") (number_literal "0x1d")) () ")"))))) (; ";")) (expression_statement "param_3 = param_3 + 8;" (assignment_expression "param_3 = param_3 + 8" (identifier "param_3") (= "=") (binary_expression "param_3 + 8" (identifier "param_3") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "param_2 = param_2 + 8;" (assignment_expression "param_2 = param_2 + 8" (identifier "param_2") (= "=") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar20 != 0)" (( "(") (binary_expression "uVar20 != 0" (identifier "uVar20") (!= "!=") (number_literal "0")) () ")")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      piVar16 = (int *)((int)param_3 + iVar5);\n      puVar6 = puVar8;\n      if (piVar16 != param_4) {\n        do {\n          *puVar6 = puVar6 + 2;\n                    \n          (*(code *)puVar4)(puVar6,*piVar16,*piVar16 + piVar16[1],0);\n          piVar17 = piVar16 + 8;\n          iVar18 = piVar16[6];\n          *(undefined1 *)(puVar6 + 7) = *(undefined1 *)(piVar16 + 7);\n          puVar6[6] = iVar18;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)piVar16 + 0x1d);\n          piVar16 = piVar17;\n          puVar6 = puVar6 + 8;\n        } while (param_4 != piVar17);\n        puVar6 = (undefined4 *)param_1[1];\n      }\n      puVar6 = puVar6 + (uVar20 - uVar21) * 8;\n      param_1[1] = puVar6;\n      if (puVar8 != param_2) {\n        puVar12 = param_2 + 2;\n        do {\n          while( true ) {\n            *puVar6 = puVar6 + 2;\n            if (puVar12 != (undefined4 *)puVar12[-2]) break;\n            uVar13 = puVar12[1];\n            uVar10 = puVar12[2];\n            uVar9 = puVar12[3];\n            puVar6[2] = *puVar12;\n            puVar6[3] = uVar13;\n            puVar6[4] = uVar10;\n            puVar6[5] = uVar9;\n            uVar1 = *(undefined1 *)(puVar12 + 5);\n            uVar9 = puVar12[4];\n            puVar6[1] = puVar12[-1];\n            puVar12[-2] = puVar12;\n            puVar14 = puVar12 + 8;\n            puVar12[-1] = 0;\n            *(undefined1 *)puVar12 = 0;\n            *(undefined1 *)(puVar6 + 7) = uVar1;\n            puVar6[6] = uVar9;\n            *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n            puVar12 = puVar14;\n            puVar6 = puVar6 + 8;\n            if (puVar8 + 2 == puVar14) goto LAB_00224324;\n          }\n          *puVar6 = (undefined4 *)puVar12[-2];\n          uVar1 = *(undefined1 *)(puVar12 + 5);\n          puVar6[2] = *puVar12;\n          uVar9 = puVar12[4];\n          puVar6[1] = puVar12[-1];\n          puVar12[-2] = puVar12;\n          puVar14 = puVar12 + 8;\n          puVar12[-1] = 0;\n          *(undefined1 *)puVar12 = 0;\n          *(undefined1 *)(puVar6 + 7) = uVar1;\n          puVar6[6] = uVar9;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n          puVar12 = puVar14;\n          puVar6 = puVar6 + 8;\n        } while (puVar8 + 2 != puVar14);\nLAB_00224324:\n        puVar6 = (undefined4 *)param_1[1];\n      }\n      param_1[1] = (int)puVar6 + iVar5;\n      if (0 < iVar5) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar21 = uVar21 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar21 != 0);\n      }\n    }" (else "else") (compound_statement "{\n      piVar16 = (int *)((int)param_3 + iVar5);\n      puVar6 = puVar8;\n      if (piVar16 != param_4) {\n        do {\n          *puVar6 = puVar6 + 2;\n                    \n          (*(code *)puVar4)(puVar6,*piVar16,*piVar16 + piVar16[1],0);\n          piVar17 = piVar16 + 8;\n          iVar18 = piVar16[6];\n          *(undefined1 *)(puVar6 + 7) = *(undefined1 *)(piVar16 + 7);\n          puVar6[6] = iVar18;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)piVar16 + 0x1d);\n          piVar16 = piVar17;\n          puVar6 = puVar6 + 8;\n        } while (param_4 != piVar17);\n        puVar6 = (undefined4 *)param_1[1];\n      }\n      puVar6 = puVar6 + (uVar20 - uVar21) * 8;\n      param_1[1] = puVar6;\n      if (puVar8 != param_2) {\n        puVar12 = param_2 + 2;\n        do {\n          while( true ) {\n            *puVar6 = puVar6 + 2;\n            if (puVar12 != (undefined4 *)puVar12[-2]) break;\n            uVar13 = puVar12[1];\n            uVar10 = puVar12[2];\n            uVar9 = puVar12[3];\n            puVar6[2] = *puVar12;\n            puVar6[3] = uVar13;\n            puVar6[4] = uVar10;\n            puVar6[5] = uVar9;\n            uVar1 = *(undefined1 *)(puVar12 + 5);\n            uVar9 = puVar12[4];\n            puVar6[1] = puVar12[-1];\n            puVar12[-2] = puVar12;\n            puVar14 = puVar12 + 8;\n            puVar12[-1] = 0;\n            *(undefined1 *)puVar12 = 0;\n            *(undefined1 *)(puVar6 + 7) = uVar1;\n            puVar6[6] = uVar9;\n            *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n            puVar12 = puVar14;\n            puVar6 = puVar6 + 8;\n            if (puVar8 + 2 == puVar14) goto LAB_00224324;\n          }\n          *puVar6 = (undefined4 *)puVar12[-2];\n          uVar1 = *(undefined1 *)(puVar12 + 5);\n          puVar6[2] = *puVar12;\n          uVar9 = puVar12[4];\n          puVar6[1] = puVar12[-1];\n          puVar12[-2] = puVar12;\n          puVar14 = puVar12 + 8;\n          puVar12[-1] = 0;\n          *(undefined1 *)puVar12 = 0;\n          *(undefined1 *)(puVar6 + 7) = uVar1;\n          puVar6[6] = uVar9;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n          puVar12 = puVar14;\n          puVar6 = puVar6 + 8;\n        } while (puVar8 + 2 != puVar14);\nLAB_00224324:\n        puVar6 = (undefined4 *)param_1[1];\n      }\n      param_1[1] = (int)puVar6 + iVar5;\n      if (0 < iVar5) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar21 = uVar21 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar21 != 0);\n      }\n    }" ({ "{") (expression_statement "piVar16 = (int *)((int)param_3 + iVar5);" (assignment_expression "piVar16 = (int *)((int)param_3 + iVar5)" (identifier "piVar16") (= "=") (cast_expression "(int *)((int)param_3 + iVar5)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_3 + iVar5)" (( "(") (binary_expression "(int)param_3 + iVar5" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (+ "+") (identifier "iVar5")) () ")")))) (; ";")) (expression_statement "puVar6 = puVar8;" (assignment_expression "puVar6 = puVar8" (identifier "puVar6") (= "=") (identifier "puVar8")) (; ";")) (if_statement "if (piVar16 != param_4) {\n        do {\n          *puVar6 = puVar6 + 2;\n                    \n          (*(code *)puVar4)(puVar6,*piVar16,*piVar16 + piVar16[1],0);\n          piVar17 = piVar16 + 8;\n          iVar18 = piVar16[6];\n          *(undefined1 *)(puVar6 + 7) = *(undefined1 *)(piVar16 + 7);\n          puVar6[6] = iVar18;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)piVar16 + 0x1d);\n          piVar16 = piVar17;\n          puVar6 = puVar6 + 8;\n        } while (param_4 != piVar17);\n        puVar6 = (undefined4 *)param_1[1];\n      }" (if "if") (parenthesized_expression "(piVar16 != param_4)" (( "(") (binary_expression "piVar16 != param_4" (identifier "piVar16") (!= "!=") (identifier "param_4")) () ")")) (compound_statement "{\n        do {\n          *puVar6 = puVar6 + 2;\n                    \n          (*(code *)puVar4)(puVar6,*piVar16,*piVar16 + piVar16[1],0);\n          piVar17 = piVar16 + 8;\n          iVar18 = piVar16[6];\n          *(undefined1 *)(puVar6 + 7) = *(undefined1 *)(piVar16 + 7);\n          puVar6[6] = iVar18;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)piVar16 + 0x1d);\n          piVar16 = piVar17;\n          puVar6 = puVar6 + 8;\n        } while (param_4 != piVar17);\n        puVar6 = (undefined4 *)param_1[1];\n      }" ({ "{") (do_statement "do {\n          *puVar6 = puVar6 + 2;\n                    \n          (*(code *)puVar4)(puVar6,*piVar16,*piVar16 + piVar16[1],0);\n          piVar17 = piVar16 + 8;\n          iVar18 = piVar16[6];\n          *(undefined1 *)(puVar6 + 7) = *(undefined1 *)(piVar16 + 7);\n          puVar6[6] = iVar18;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)piVar16 + 0x1d);\n          piVar16 = piVar17;\n          puVar6 = puVar6 + 8;\n        } while (param_4 != piVar17);" (do "do") (compound_statement "{\n          *puVar6 = puVar6 + 2;\n                    \n          (*(code *)puVar4)(puVar6,*piVar16,*piVar16 + piVar16[1],0);\n          piVar17 = piVar16 + 8;\n          iVar18 = piVar16[6];\n          *(undefined1 *)(puVar6 + 7) = *(undefined1 *)(piVar16 + 7);\n          puVar6[6] = iVar18;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)piVar16 + 0x1d);\n          piVar16 = piVar17;\n          puVar6 = puVar6 + 8;\n        }" ({ "{") (expression_statement "*puVar6 = puVar6 + 2;" (assignment_expression "*puVar6 = puVar6 + 2" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (= "=") (binary_expression "puVar6 + 2" (identifier "puVar6") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "(*(code *)puVar4)(puVar6,*piVar16,*piVar16 + piVar16[1],0);" (call_expression "(*(code *)puVar4)(puVar6,*piVar16,*piVar16 + piVar16[1],0)" (parenthesized_expression "(*(code *)puVar4)" (( "(") (pointer_expression "*(code *)puVar4" (* "*") (cast_expression "(code *)puVar4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4"))) () ")")) (argument_list "(puVar6,*piVar16,*piVar16 + piVar16[1],0)" (( "(") (identifier "puVar6") (, ",") (pointer_expression "*piVar16" (* "*") (identifier "piVar16")) (, ",") (binary_expression "*piVar16 + piVar16[1]" (pointer_expression "*piVar16" (* "*") (identifier "piVar16")) (+ "+") (subscript_expression "piVar16[1]" (identifier "piVar16") ([ "[") (number_literal "1") (] "]"))) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "piVar17 = piVar16 + 8;" (assignment_expression "piVar17 = piVar16 + 8" (identifier "piVar17") (= "=") (binary_expression "piVar16 + 8" (identifier "piVar16") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "iVar18 = piVar16[6];" (assignment_expression "iVar18 = piVar16[6]" (identifier "iVar18") (= "=") (subscript_expression "piVar16[6]" (identifier "piVar16") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "*(undefined1 *)(puVar6 + 7) = *(undefined1 *)(piVar16 + 7);" (assignment_expression "*(undefined1 *)(puVar6 + 7) = *(undefined1 *)(piVar16 + 7)" (pointer_expression "*(undefined1 *)(puVar6 + 7)" (* "*") (cast_expression "(undefined1 *)(puVar6 + 7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 7)" (( "(") (binary_expression "puVar6 + 7" (identifier "puVar6") (+ "+") (number_literal "7")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)(piVar16 + 7)" (* "*") (cast_expression "(undefined1 *)(piVar16 + 7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar16 + 7)" (( "(") (binary_expression "piVar16 + 7" (identifier "piVar16") (+ "+") (number_literal "7")) () ")"))))) (; ";")) (expression_statement "puVar6[6] = iVar18;" (assignment_expression "puVar6[6] = iVar18" (subscript_expression "puVar6[6]" (identifier "puVar6") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "iVar18")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)piVar16 + 0x1d);" (assignment_expression "*(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)piVar16 + 0x1d)" (pointer_expression "*(undefined1 *)((int)puVar6 + 0x1d)" (* "*") (cast_expression "(undefined1 *)((int)puVar6 + 0x1d)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar6 + 0x1d)" (( "(") (binary_expression "(int)puVar6 + 0x1d" (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6")) (+ "+") (number_literal "0x1d")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)((int)piVar16 + 0x1d)" (* "*") (cast_expression "(undefined1 *)((int)piVar16 + 0x1d)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + 0x1d)" (( "(") (binary_expression "(int)piVar16 + 0x1d" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "0x1d")) () ")"))))) (; ";")) (expression_statement "piVar16 = piVar17;" (assignment_expression "piVar16 = piVar17" (identifier "piVar16") (= "=") (identifier "piVar17")) (; ";")) (expression_statement "puVar6 = puVar6 + 8;" (assignment_expression "puVar6 = puVar6 + 8" (identifier "puVar6") (= "=") (binary_expression "puVar6 + 8" (identifier "puVar6") (+ "+") (number_literal "8"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_4 != piVar17)" (( "(") (binary_expression "param_4 != piVar17" (identifier "param_4") (!= "!=") (identifier "piVar17")) () ")")) (; ";")) (expression_statement "puVar6 = (undefined4 *)param_1[1];" (assignment_expression "puVar6 = (undefined4 *)param_1[1]" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)param_1[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")))) (; ";")) (} "}"))) (expression_statement "puVar6 = puVar6 + (uVar20 - uVar21) * 8;" (assignment_expression "puVar6 = puVar6 + (uVar20 - uVar21) * 8" (identifier "puVar6") (= "=") (binary_expression "puVar6 + (uVar20 - uVar21) * 8" (identifier "puVar6") (+ "+") (binary_expression "(uVar20 - uVar21) * 8" (parenthesized_expression "(uVar20 - uVar21)" (( "(") (binary_expression "uVar20 - uVar21" (identifier "uVar20") (- "-") (identifier "uVar21")) () ")")) (* "*") (number_literal "8")))) (; ";")) (expression_statement "param_1[1] = puVar6;" (assignment_expression "param_1[1] = puVar6" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "puVar6")) (; ";")) (if_statement "if (puVar8 != param_2) {\n        puVar12 = param_2 + 2;\n        do {\n          while( true ) {\n            *puVar6 = puVar6 + 2;\n            if (puVar12 != (undefined4 *)puVar12[-2]) break;\n            uVar13 = puVar12[1];\n            uVar10 = puVar12[2];\n            uVar9 = puVar12[3];\n            puVar6[2] = *puVar12;\n            puVar6[3] = uVar13;\n            puVar6[4] = uVar10;\n            puVar6[5] = uVar9;\n            uVar1 = *(undefined1 *)(puVar12 + 5);\n            uVar9 = puVar12[4];\n            puVar6[1] = puVar12[-1];\n            puVar12[-2] = puVar12;\n            puVar14 = puVar12 + 8;\n            puVar12[-1] = 0;\n            *(undefined1 *)puVar12 = 0;\n            *(undefined1 *)(puVar6 + 7) = uVar1;\n            puVar6[6] = uVar9;\n            *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n            puVar12 = puVar14;\n            puVar6 = puVar6 + 8;\n            if (puVar8 + 2 == puVar14) goto LAB_00224324;\n          }\n          *puVar6 = (undefined4 *)puVar12[-2];\n          uVar1 = *(undefined1 *)(puVar12 + 5);\n          puVar6[2] = *puVar12;\n          uVar9 = puVar12[4];\n          puVar6[1] = puVar12[-1];\n          puVar12[-2] = puVar12;\n          puVar14 = puVar12 + 8;\n          puVar12[-1] = 0;\n          *(undefined1 *)puVar12 = 0;\n          *(undefined1 *)(puVar6 + 7) = uVar1;\n          puVar6[6] = uVar9;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n          puVar12 = puVar14;\n          puVar6 = puVar6 + 8;\n        } while (puVar8 + 2 != puVar14);\nLAB_00224324:\n        puVar6 = (undefined4 *)param_1[1];\n      }" (if "if") (parenthesized_expression "(puVar8 != param_2)" (( "(") (binary_expression "puVar8 != param_2" (identifier "puVar8") (!= "!=") (identifier "param_2")) () ")")) (compound_statement "{\n        puVar12 = param_2 + 2;\n        do {\n          while( true ) {\n            *puVar6 = puVar6 + 2;\n            if (puVar12 != (undefined4 *)puVar12[-2]) break;\n            uVar13 = puVar12[1];\n            uVar10 = puVar12[2];\n            uVar9 = puVar12[3];\n            puVar6[2] = *puVar12;\n            puVar6[3] = uVar13;\n            puVar6[4] = uVar10;\n            puVar6[5] = uVar9;\n            uVar1 = *(undefined1 *)(puVar12 + 5);\n            uVar9 = puVar12[4];\n            puVar6[1] = puVar12[-1];\n            puVar12[-2] = puVar12;\n            puVar14 = puVar12 + 8;\n            puVar12[-1] = 0;\n            *(undefined1 *)puVar12 = 0;\n            *(undefined1 *)(puVar6 + 7) = uVar1;\n            puVar6[6] = uVar9;\n            *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n            puVar12 = puVar14;\n            puVar6 = puVar6 + 8;\n            if (puVar8 + 2 == puVar14) goto LAB_00224324;\n          }\n          *puVar6 = (undefined4 *)puVar12[-2];\n          uVar1 = *(undefined1 *)(puVar12 + 5);\n          puVar6[2] = *puVar12;\n          uVar9 = puVar12[4];\n          puVar6[1] = puVar12[-1];\n          puVar12[-2] = puVar12;\n          puVar14 = puVar12 + 8;\n          puVar12[-1] = 0;\n          *(undefined1 *)puVar12 = 0;\n          *(undefined1 *)(puVar6 + 7) = uVar1;\n          puVar6[6] = uVar9;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n          puVar12 = puVar14;\n          puVar6 = puVar6 + 8;\n        } while (puVar8 + 2 != puVar14);\nLAB_00224324:\n        puVar6 = (undefined4 *)param_1[1];\n      }" ({ "{") (expression_statement "puVar12 = param_2 + 2;" (assignment_expression "puVar12 = param_2 + 2" (identifier "puVar12") (= "=") (binary_expression "param_2 + 2" (identifier "param_2") (+ "+") (number_literal "2"))) (; ";")) (do_statement "do {\n          while( true ) {\n            *puVar6 = puVar6 + 2;\n            if (puVar12 != (undefined4 *)puVar12[-2]) break;\n            uVar13 = puVar12[1];\n            uVar10 = puVar12[2];\n            uVar9 = puVar12[3];\n            puVar6[2] = *puVar12;\n            puVar6[3] = uVar13;\n            puVar6[4] = uVar10;\n            puVar6[5] = uVar9;\n            uVar1 = *(undefined1 *)(puVar12 + 5);\n            uVar9 = puVar12[4];\n            puVar6[1] = puVar12[-1];\n            puVar12[-2] = puVar12;\n            puVar14 = puVar12 + 8;\n            puVar12[-1] = 0;\n            *(undefined1 *)puVar12 = 0;\n            *(undefined1 *)(puVar6 + 7) = uVar1;\n            puVar6[6] = uVar9;\n            *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n            puVar12 = puVar14;\n            puVar6 = puVar6 + 8;\n            if (puVar8 + 2 == puVar14) goto LAB_00224324;\n          }\n          *puVar6 = (undefined4 *)puVar12[-2];\n          uVar1 = *(undefined1 *)(puVar12 + 5);\n          puVar6[2] = *puVar12;\n          uVar9 = puVar12[4];\n          puVar6[1] = puVar12[-1];\n          puVar12[-2] = puVar12;\n          puVar14 = puVar12 + 8;\n          puVar12[-1] = 0;\n          *(undefined1 *)puVar12 = 0;\n          *(undefined1 *)(puVar6 + 7) = uVar1;\n          puVar6[6] = uVar9;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n          puVar12 = puVar14;\n          puVar6 = puVar6 + 8;\n        } while (puVar8 + 2 != puVar14);" (do "do") (compound_statement "{\n          while( true ) {\n            *puVar6 = puVar6 + 2;\n            if (puVar12 != (undefined4 *)puVar12[-2]) break;\n            uVar13 = puVar12[1];\n            uVar10 = puVar12[2];\n            uVar9 = puVar12[3];\n            puVar6[2] = *puVar12;\n            puVar6[3] = uVar13;\n            puVar6[4] = uVar10;\n            puVar6[5] = uVar9;\n            uVar1 = *(undefined1 *)(puVar12 + 5);\n            uVar9 = puVar12[4];\n            puVar6[1] = puVar12[-1];\n            puVar12[-2] = puVar12;\n            puVar14 = puVar12 + 8;\n            puVar12[-1] = 0;\n            *(undefined1 *)puVar12 = 0;\n            *(undefined1 *)(puVar6 + 7) = uVar1;\n            puVar6[6] = uVar9;\n            *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n            puVar12 = puVar14;\n            puVar6 = puVar6 + 8;\n            if (puVar8 + 2 == puVar14) goto LAB_00224324;\n          }\n          *puVar6 = (undefined4 *)puVar12[-2];\n          uVar1 = *(undefined1 *)(puVar12 + 5);\n          puVar6[2] = *puVar12;\n          uVar9 = puVar12[4];\n          puVar6[1] = puVar12[-1];\n          puVar12[-2] = puVar12;\n          puVar14 = puVar12 + 8;\n          puVar12[-1] = 0;\n          *(undefined1 *)puVar12 = 0;\n          *(undefined1 *)(puVar6 + 7) = uVar1;\n          puVar6[6] = uVar9;\n          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n          puVar12 = puVar14;\n          puVar6 = puVar6 + 8;\n        }" ({ "{") (while_statement "while( true ) {\n            *puVar6 = puVar6 + 2;\n            if (puVar12 != (undefined4 *)puVar12[-2]) break;\n            uVar13 = puVar12[1];\n            uVar10 = puVar12[2];\n            uVar9 = puVar12[3];\n            puVar6[2] = *puVar12;\n            puVar6[3] = uVar13;\n            puVar6[4] = uVar10;\n            puVar6[5] = uVar9;\n            uVar1 = *(undefined1 *)(puVar12 + 5);\n            uVar9 = puVar12[4];\n            puVar6[1] = puVar12[-1];\n            puVar12[-2] = puVar12;\n            puVar14 = puVar12 + 8;\n            puVar12[-1] = 0;\n            *(undefined1 *)puVar12 = 0;\n            *(undefined1 *)(puVar6 + 7) = uVar1;\n            puVar6[6] = uVar9;\n            *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n            puVar12 = puVar14;\n            puVar6 = puVar6 + 8;\n            if (puVar8 + 2 == puVar14) goto LAB_00224324;\n          }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n            *puVar6 = puVar6 + 2;\n            if (puVar12 != (undefined4 *)puVar12[-2]) break;\n            uVar13 = puVar12[1];\n            uVar10 = puVar12[2];\n            uVar9 = puVar12[3];\n            puVar6[2] = *puVar12;\n            puVar6[3] = uVar13;\n            puVar6[4] = uVar10;\n            puVar6[5] = uVar9;\n            uVar1 = *(undefined1 *)(puVar12 + 5);\n            uVar9 = puVar12[4];\n            puVar6[1] = puVar12[-1];\n            puVar12[-2] = puVar12;\n            puVar14 = puVar12 + 8;\n            puVar12[-1] = 0;\n            *(undefined1 *)puVar12 = 0;\n            *(undefined1 *)(puVar6 + 7) = uVar1;\n            puVar6[6] = uVar9;\n            *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n            puVar12 = puVar14;\n            puVar6 = puVar6 + 8;\n            if (puVar8 + 2 == puVar14) goto LAB_00224324;\n          }" ({ "{") (expression_statement "*puVar6 = puVar6 + 2;" (assignment_expression "*puVar6 = puVar6 + 2" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (= "=") (binary_expression "puVar6 + 2" (identifier "puVar6") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if (puVar12 != (undefined4 *)puVar12[-2]) break;" (if "if") (parenthesized_expression "(puVar12 != (undefined4 *)puVar12[-2])" (( "(") (binary_expression "puVar12 != (undefined4 *)puVar12[-2]" (identifier "puVar12") (!= "!=") (cast_expression "(undefined4 *)puVar12[-2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar12[-2]" (identifier "puVar12") ([ "[") (number_literal "-2") (] "]")))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar13 = puVar12[1];" (assignment_expression "uVar13 = puVar12[1]" (identifier "uVar13") (= "=") (subscript_expression "puVar12[1]" (identifier "puVar12") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar10 = puVar12[2];" (assignment_expression "uVar10 = puVar12[2]" (identifier "uVar10") (= "=") (subscript_expression "puVar12[2]" (identifier "puVar12") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar9 = puVar12[3];" (assignment_expression "uVar9 = puVar12[3]" (identifier "uVar9") (= "=") (subscript_expression "puVar12[3]" (identifier "puVar12") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar6[2] = *puVar12;" (assignment_expression "puVar6[2] = *puVar12" (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]")) (= "=") (pointer_expression "*puVar12" (* "*") (identifier "puVar12"))) (; ";")) (expression_statement "puVar6[3] = uVar13;" (assignment_expression "puVar6[3] = uVar13" (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "puVar6[4] = uVar10;" (assignment_expression "puVar6[4] = uVar10" (subscript_expression "puVar6[4]" (identifier "puVar6") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "puVar6[5] = uVar9;" (assignment_expression "puVar6[5] = uVar9" (subscript_expression "puVar6[5]" (identifier "puVar6") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "uVar1 = *(undefined1 *)(puVar12 + 5);" (assignment_expression "uVar1 = *(undefined1 *)(puVar12 + 5)" (identifier "uVar1") (= "=") (pointer_expression "*(undefined1 *)(puVar12 + 5)" (* "*") (cast_expression "(undefined1 *)(puVar12 + 5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 5)" (( "(") (binary_expression "puVar12 + 5" (identifier "puVar12") (+ "+") (number_literal "5")) () ")"))))) (; ";")) (expression_statement "uVar9 = puVar12[4];" (assignment_expression "uVar9 = puVar12[4]" (identifier "uVar9") (= "=") (subscript_expression "puVar12[4]" (identifier "puVar12") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "puVar6[1] = puVar12[-1];" (assignment_expression "puVar6[1] = puVar12[-1]" (subscript_expression "puVar6[1]" (identifier "puVar6") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "puVar12[-1]" (identifier "puVar12") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "puVar12[-2] = puVar12;" (assignment_expression "puVar12[-2] = puVar12" (subscript_expression "puVar12[-2]" (identifier "puVar12") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "puVar12")) (; ";")) (expression_statement "puVar14 = puVar12 + 8;" (assignment_expression "puVar14 = puVar12 + 8" (identifier "puVar14") (= "=") (binary_expression "puVar12 + 8" (identifier "puVar12") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "puVar12[-1] = 0;" (assignment_expression "puVar12[-1] = 0" (subscript_expression "puVar12[-1]" (identifier "puVar12") ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)puVar12 = 0;" (assignment_expression "*(undefined1 *)puVar12 = 0" (pointer_expression "*(undefined1 *)puVar12" (* "*") (cast_expression "(undefined1 *)puVar12" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar12"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar6 + 7) = uVar1;" (assignment_expression "*(undefined1 *)(puVar6 + 7) = uVar1" (pointer_expression "*(undefined1 *)(puVar6 + 7)" (* "*") (cast_expression "(undefined1 *)(puVar6 + 7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 7)" (( "(") (binary_expression "puVar6 + 7" (identifier "puVar6") (+ "+") (number_literal "7")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "puVar6[6] = uVar9;" (assignment_expression "puVar6[6] = uVar9" (subscript_expression "puVar6[6]" (identifier "puVar6") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);" (assignment_expression "*(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15)" (pointer_expression "*(undefined1 *)((int)puVar6 + 0x1d)" (* "*") (cast_expression "(undefined1 *)((int)puVar6 + 0x1d)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar6 + 0x1d)" (( "(") (binary_expression "(int)puVar6 + 0x1d" (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6")) (+ "+") (number_literal "0x1d")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)((int)puVar12 + 0x15)" (* "*") (cast_expression "(undefined1 *)((int)puVar12 + 0x15)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar12 + 0x15)" (( "(") (binary_expression "(int)puVar12 + 0x15" (cast_expression "(int)puVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar12")) (+ "+") (number_literal "0x15")) () ")"))))) (; ";")) (expression_statement "puVar12 = puVar14;" (assignment_expression "puVar12 = puVar14" (identifier "puVar12") (= "=") (identifier "puVar14")) (; ";")) (expression_statement "puVar6 = puVar6 + 8;" (assignment_expression "puVar6 = puVar6 + 8" (identifier "puVar6") (= "=") (binary_expression "puVar6 + 8" (identifier "puVar6") (+ "+") (number_literal "8"))) (; ";")) (if_statement "if (puVar8 + 2 == puVar14) goto LAB_00224324;" (if "if") (parenthesized_expression "(puVar8 + 2 == puVar14)" (( "(") (binary_expression "puVar8 + 2 == puVar14" (binary_expression "puVar8 + 2" (identifier "puVar8") (+ "+") (number_literal "2")) (== "==") (identifier "puVar14")) () ")")) (goto_statement "goto LAB_00224324;" (goto "goto") (statement_identifier "LAB_00224324") (; ";"))) (} "}"))) (expression_statement "*puVar6 = (undefined4 *)puVar12[-2];" (assignment_expression "*puVar6 = (undefined4 *)puVar12[-2]" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (= "=") (cast_expression "(undefined4 *)puVar12[-2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar12[-2]" (identifier "puVar12") ([ "[") (number_literal "-2") (] "]")))) (; ";")) (expression_statement "uVar1 = *(undefined1 *)(puVar12 + 5);" (assignment_expression "uVar1 = *(undefined1 *)(puVar12 + 5)" (identifier "uVar1") (= "=") (pointer_expression "*(undefined1 *)(puVar12 + 5)" (* "*") (cast_expression "(undefined1 *)(puVar12 + 5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 5)" (( "(") (binary_expression "puVar12 + 5" (identifier "puVar12") (+ "+") (number_literal "5")) () ")"))))) (; ";")) (expression_statement "puVar6[2] = *puVar12;" (assignment_expression "puVar6[2] = *puVar12" (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]")) (= "=") (pointer_expression "*puVar12" (* "*") (identifier "puVar12"))) (; ";")) (expression_statement "uVar9 = puVar12[4];" (assignment_expression "uVar9 = puVar12[4]" (identifier "uVar9") (= "=") (subscript_expression "puVar12[4]" (identifier "puVar12") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "puVar6[1] = puVar12[-1];" (assignment_expression "puVar6[1] = puVar12[-1]" (subscript_expression "puVar6[1]" (identifier "puVar6") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "puVar12[-1]" (identifier "puVar12") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "puVar12[-2] = puVar12;" (assignment_expression "puVar12[-2] = puVar12" (subscript_expression "puVar12[-2]" (identifier "puVar12") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "puVar12")) (; ";")) (expression_statement "puVar14 = puVar12 + 8;" (assignment_expression "puVar14 = puVar12 + 8" (identifier "puVar14") (= "=") (binary_expression "puVar12 + 8" (identifier "puVar12") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "puVar12[-1] = 0;" (assignment_expression "puVar12[-1] = 0" (subscript_expression "puVar12[-1]" (identifier "puVar12") ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)puVar12 = 0;" (assignment_expression "*(undefined1 *)puVar12 = 0" (pointer_expression "*(undefined1 *)puVar12" (* "*") (cast_expression "(undefined1 *)puVar12" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar12"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar6 + 7) = uVar1;" (assignment_expression "*(undefined1 *)(puVar6 + 7) = uVar1" (pointer_expression "*(undefined1 *)(puVar6 + 7)" (* "*") (cast_expression "(undefined1 *)(puVar6 + 7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 7)" (( "(") (binary_expression "puVar6 + 7" (identifier "puVar6") (+ "+") (number_literal "7")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "puVar6[6] = uVar9;" (assignment_expression "puVar6[6] = uVar9" (subscript_expression "puVar6[6]" (identifier "puVar6") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);" (assignment_expression "*(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15)" (pointer_expression "*(undefined1 *)((int)puVar6 + 0x1d)" (* "*") (cast_expression "(undefined1 *)((int)puVar6 + 0x1d)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar6 + 0x1d)" (( "(") (binary_expression "(int)puVar6 + 0x1d" (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6")) (+ "+") (number_literal "0x1d")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)((int)puVar12 + 0x15)" (* "*") (cast_expression "(undefined1 *)((int)puVar12 + 0x15)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar12 + 0x15)" (( "(") (binary_expression "(int)puVar12 + 0x15" (cast_expression "(int)puVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar12")) (+ "+") (number_literal "0x15")) () ")"))))) (; ";")) (expression_statement "puVar12 = puVar14;" (assignment_expression "puVar12 = puVar14" (identifier "puVar12") (= "=") (identifier "puVar14")) (; ";")) (expression_statement "puVar6 = puVar6 + 8;" (assignment_expression "puVar6 = puVar6 + 8" (identifier "puVar6") (= "=") (binary_expression "puVar6 + 8" (identifier "puVar6") (+ "+") (number_literal "8"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar8 + 2 != puVar14)" (( "(") (binary_expression "puVar8 + 2 != puVar14" (binary_expression "puVar8 + 2" (identifier "puVar8") (+ "+") (number_literal "2")) (!= "!=") (identifier "puVar14")) () ")")) (; ";")) (labeled_statement "LAB_00224324:\n        puVar6 = (undefined4 *)param_1[1];" (statement_identifier "LAB_00224324") (: ":") (expression_statement "puVar6 = (undefined4 *)param_1[1];" (assignment_expression "puVar6 = (undefined4 *)param_1[1]" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)param_1[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")))) (; ";"))) (} "}"))) (expression_statement "param_1[1] = (int)puVar6 + iVar5;" (assignment_expression "param_1[1] = (int)puVar6 + iVar5" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "(int)puVar6 + iVar5" (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6")) (+ "+") (identifier "iVar5"))) (; ";")) (if_statement "if (0 < iVar5) {\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar21 = uVar21 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar21 != 0);\n      }" (if "if") (parenthesized_expression "(0 < iVar5)" (( "(") (binary_expression "0 < iVar5" (number_literal "0") (< "<") (identifier "iVar5")) () ")")) (compound_statement "{\n        do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar21 = uVar21 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar21 != 0);\n      }" ({ "{") (do_statement "do {\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar21 = uVar21 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        } while (uVar21 != 0);" (do "do") (compound_statement "{\n          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);\n          uVar21 = uVar21 - 1;\n          iVar18 = param_3[6];\n          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);\n          param_2[6] = iVar18;\n          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);\n          param_3 = param_3 + 8;\n          param_2 = param_2 + 8;\n        }" ({ "{") (expression_statement "(*(code *)PTR__M_assign_00432d78)(param_2,param_3);" (call_expression "(*(code *)PTR__M_assign_00432d78)(param_2,param_3)" (parenthesized_expression "(*(code *)PTR__M_assign_00432d78)" (( "(") (pointer_expression "*(code *)PTR__M_assign_00432d78" (* "*") (cast_expression "(code *)PTR__M_assign_00432d78" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR__M_assign_00432d78"))) () ")")) (argument_list "(param_2,param_3)" (( "(") (identifier "param_2") (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "uVar21 = uVar21 - 1;" (assignment_expression "uVar21 = uVar21 - 1" (identifier "uVar21") (= "=") (binary_expression "uVar21 - 1" (identifier "uVar21") (- "-") (number_literal "1"))) (; ";")) (expression_statement "iVar18 = param_3[6];" (assignment_expression "iVar18 = param_3[6]" (identifier "iVar18") (= "=") (subscript_expression "param_3[6]" (identifier "param_3") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "*(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);" (assignment_expression "*(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7)" (pointer_expression "*(undefined1 *)(param_2 + 7)" (* "*") (cast_expression "(undefined1 *)(param_2 + 7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 7)" (( "(") (binary_expression "param_2 + 7" (identifier "param_2") (+ "+") (number_literal "7")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)(param_3 + 7)" (* "*") (cast_expression "(undefined1 *)(param_3 + 7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 7)" (( "(") (binary_expression "param_3 + 7" (identifier "param_3") (+ "+") (number_literal "7")) () ")"))))) (; ";")) (expression_statement "param_2[6] = iVar18;" (assignment_expression "param_2[6] = iVar18" (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "iVar18")) (; ";")) (expression_statement "*(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);" (assignment_expression "*(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d)" (pointer_expression "*(undefined1 *)((int)param_2 + 0x1d)" (* "*") (cast_expression "(undefined1 *)((int)param_2 + 0x1d)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + 0x1d)" (( "(") (binary_expression "(int)param_2 + 0x1d" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (number_literal "0x1d")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)((int)param_3 + 0x1d)" (* "*") (cast_expression "(undefined1 *)((int)param_3 + 0x1d)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_3 + 0x1d)" (( "(") (binary_expression "(int)param_3 + 0x1d" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (+ "+") (number_literal "0x1d")) () ")"))))) (; ";")) (expression_statement "param_3 = param_3 + 8;" (assignment_expression "param_3 = param_3 + 8" (identifier "param_3") (= "=") (binary_expression "param_3 + 8" (identifier "param_3") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "param_2 = param_2 + 8;" (assignment_expression "param_2 = param_2 + 8" (identifier "param_2") (= "=") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar21 != 0)" (( "(") (binary_expression "uVar21 != 0" (identifier "uVar21") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (} "}")))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "puVar6 = (undefined4 *)*param_1;" (assignment_expression "puVar6 = (undefined4 *)*param_1" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)*param_1" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (expression_statement "uVar21 = 0x7ffffff;" (assignment_expression "uVar21 = 0x7ffffff" (identifier "uVar21") (= "=") (number_literal "0x7ffffff")) (; ";")) (expression_statement "uVar7 = (int)puVar8 - (int)puVar6 >> 5;" (assignment_expression "uVar7 = (int)puVar8 - (int)puVar6 >> 5" (identifier "uVar7") (= "=") (binary_expression "(int)puVar8 - (int)puVar6 >> 5" (binary_expression "(int)puVar8 - (int)puVar6" (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")) (- "-") (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6"))) (>> ">>") (number_literal "5"))) (; ";")) (if_statement "if (0x7ffffff - uVar7 < uVar20) {\n    (*(code *)PTR___throw_length_error_00432480)(PTR_DAT_0043226c + -0x6b60);\n    return;\n  }" (if "if") (parenthesized_expression "(0x7ffffff - uVar7 < uVar20)" (( "(") (binary_expression "0x7ffffff - uVar7 < uVar20" (binary_expression "0x7ffffff - uVar7" (number_literal "0x7ffffff") (- "-") (identifier "uVar7")) (< "<") (identifier "uVar20")) () ")")) (compound_statement "{\n    (*(code *)PTR___throw_length_error_00432480)(PTR_DAT_0043226c + -0x6b60);\n    return;\n  }" ({ "{") (expression_statement "(*(code *)PTR___throw_length_error_00432480)(PTR_DAT_0043226c + -0x6b60);" (call_expression "(*(code *)PTR___throw_length_error_00432480)(PTR_DAT_0043226c + -0x6b60)" (parenthesized_expression "(*(code *)PTR___throw_length_error_00432480)" (( "(") (pointer_expression "*(code *)PTR___throw_length_error_00432480" (* "*") (cast_expression "(code *)PTR___throw_length_error_00432480" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___throw_length_error_00432480"))) () ")")) (argument_list "(PTR_DAT_0043226c + -0x6b60)" (( "(") (binary_expression "PTR_DAT_0043226c + -0x6b60" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "-0x6b60")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (uVar20 < uVar7) {\n    uVar20 = uVar7;\n  }" (if "if") (parenthesized_expression "(uVar20 < uVar7)" (( "(") (binary_expression "uVar20 < uVar7" (identifier "uVar20") (< "<") (identifier "uVar7")) () ")")) (compound_statement "{\n    uVar20 = uVar7;\n  }" ({ "{") (expression_statement "uVar20 = uVar7;" (assignment_expression "uVar20 = uVar7" (identifier "uVar20") (= "=") (identifier "uVar7")) (; ";")) (} "}"))) (expression_statement "uVar20 = uVar20 + uVar7;" (assignment_expression "uVar20 = uVar20 + uVar7" (identifier "uVar20") (= "=") (binary_expression "uVar20 + uVar7" (identifier "uVar20") (+ "+") (identifier "uVar7"))) (; ";")) (if_statement "if ((uVar20 < uVar7) || (0x7ffffff < uVar20)) {\n    iVar18 = -0x20;\n  }\n  else {\n    puVar8 = (undefined4 *)0x0;\n    uVar21 = uVar20;\n    if (uVar20 == 0) goto LAB_00224414;\n    iVar18 = uVar20 * 0x20;\n  }" (if "if") (parenthesized_expression "((uVar20 < uVar7) || (0x7ffffff < uVar20))" (( "(") (binary_expression "(uVar20 < uVar7) || (0x7ffffff < uVar20)" (parenthesized_expression "(uVar20 < uVar7)" (( "(") (binary_expression "uVar20 < uVar7" (identifier "uVar20") (< "<") (identifier "uVar7")) () ")")) (|| "||") (parenthesized_expression "(0x7ffffff < uVar20)" (( "(") (binary_expression "0x7ffffff < uVar20" (number_literal "0x7ffffff") (< "<") (identifier "uVar20")) () ")"))) () ")")) (compound_statement "{\n    iVar18 = -0x20;\n  }" ({ "{") (expression_statement "iVar18 = -0x20;" (assignment_expression "iVar18 = -0x20" (identifier "iVar18") (= "=") (number_literal "-0x20")) (; ";")) (} "}")) (else_clause "else {\n    puVar8 = (undefined4 *)0x0;\n    uVar21 = uVar20;\n    if (uVar20 == 0) goto LAB_00224414;\n    iVar18 = uVar20 * 0x20;\n  }" (else "else") (compound_statement "{\n    puVar8 = (undefined4 *)0x0;\n    uVar21 = uVar20;\n    if (uVar20 == 0) goto LAB_00224414;\n    iVar18 = uVar20 * 0x20;\n  }" ({ "{") (expression_statement "puVar8 = (undefined4 *)0x0;" (assignment_expression "puVar8 = (undefined4 *)0x0" (identifier "puVar8") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "uVar21 = uVar20;" (assignment_expression "uVar21 = uVar20" (identifier "uVar21") (= "=") (identifier "uVar20")) (; ";")) (if_statement "if (uVar20 == 0) goto LAB_00224414;" (if "if") (parenthesized_expression "(uVar20 == 0)" (( "(") (binary_expression "uVar20 == 0" (identifier "uVar20") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00224414;" (goto "goto") (statement_identifier "LAB_00224414") (; ";"))) (expression_statement "iVar18 = uVar20 * 0x20;" (assignment_expression "iVar18 = uVar20 * 0x20" (identifier "iVar18") (= "=") (binary_expression "uVar20 * 0x20" (identifier "uVar20") (* "*") (number_literal "0x20"))) (; ";")) (} "}")))) (expression_statement "puVar8 = (undefined4 *)(*(code *)PTR_operator_new_0043233c)(iVar18);" (assignment_expression "puVar8 = (undefined4 *)(*(code *)PTR_operator_new_0043233c)(iVar18)" (identifier "puVar8") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR_operator_new_0043233c)(iVar18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_operator_new_0043233c)(iVar18)" (parenthesized_expression "(*(code *)PTR_operator_new_0043233c)" (( "(") (pointer_expression "*(code *)PTR_operator_new_0043233c" (* "*") (cast_expression "(code *)PTR_operator_new_0043233c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_new_0043233c"))) () ")")) (argument_list "(iVar18)" (( "(") (identifier "iVar18") () ")"))))) (; ";")) (expression_statement "puVar6 = (undefined4 *)*param_1;" (assignment_expression "puVar6 = (undefined4 *)*param_1" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)*param_1" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (labeled_statement "LAB_00224414:\n  puVar12 = puVar8;" (statement_identifier "LAB_00224414") (: ":") (expression_statement "puVar12 = puVar8;" (assignment_expression "puVar12 = puVar8" (identifier "puVar12") (= "=") (identifier "puVar8")) (; ";"))) (expression_statement "pcVar3 = (code *)PTR__M_construct<char*>_0043248c;" (assignment_expression "pcVar3 = (code *)PTR__M_construct<char*>_0043248c" (identifier "pcVar3") (= "=") (binary_expression "(code *)PTR__M_construct<char*>_0043248c" (binary_expression "(code *)PTR__M_construct<char" (cast_expression "(code *)PTR__M_construct" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR__M_construct")) (< "<") (identifier "char")) (ERROR "*" (* "*")) (> ">") (identifier "_0043248c"))) (; ";")) (if_statement "if (puVar6 != param_2) {\n    puVar12 = puVar6 + 2;\n    puVar14 = puVar8;\n    do {\n      while( true ) {\n        *puVar14 = puVar14 + 2;\n        if ((undefined4 *)puVar12[-2] != puVar12) break;\n        uVar13 = puVar12[1];\n        uVar10 = puVar12[2];\n        uVar9 = puVar12[3];\n        puVar14[2] = *puVar12;\n        puVar14[3] = uVar13;\n        puVar14[4] = uVar10;\n        puVar14[5] = uVar9;\n        uVar1 = *(undefined1 *)(puVar12 + 5);\n        uVar9 = puVar12[4];\n        puVar14[1] = puVar12[-1];\n        puVar12[-2] = puVar12;\n        puVar15 = puVar12 + 8;\n        puVar12[-1] = 0;\n        *(undefined1 *)puVar12 = 0;\n        *(undefined1 *)(puVar14 + 7) = uVar1;\n        puVar14[6] = uVar9;\n        *(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n        puVar12 = puVar15;\n        puVar14 = puVar14 + 8;\n        if (puVar15 == param_2 + 2) goto LAB_00224504;\n      }\n      *puVar14 = (undefined4 *)puVar12[-2];\n      uVar1 = *(undefined1 *)(puVar12 + 5);\n      puVar14[2] = *puVar12;\n      uVar9 = puVar12[4];\n      puVar14[1] = puVar12[-1];\n      puVar12[-2] = puVar12;\n      puVar15 = puVar12 + 8;\n      puVar12[-1] = 0;\n      *(undefined1 *)puVar12 = 0;\n      *(undefined1 *)(puVar14 + 7) = uVar1;\n      puVar14[6] = uVar9;\n      *(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n      puVar12 = puVar15;\n      puVar14 = puVar14 + 8;\n    } while (puVar15 != param_2 + 2);\nLAB_00224504:\n    puVar12 = puVar8 + (((uint)((int)param_2 + (-0x20 - (int)puVar6)) >> 5) + 1) * 8;\n    pcVar3 = (code *)PTR__M_construct<char*>_0043248c;\n  }" (if "if") (parenthesized_expression "(puVar6 != param_2)" (( "(") (binary_expression "puVar6 != param_2" (identifier "puVar6") (!= "!=") (identifier "param_2")) () ")")) (compound_statement "{\n    puVar12 = puVar6 + 2;\n    puVar14 = puVar8;\n    do {\n      while( true ) {\n        *puVar14 = puVar14 + 2;\n        if ((undefined4 *)puVar12[-2] != puVar12) break;\n        uVar13 = puVar12[1];\n        uVar10 = puVar12[2];\n        uVar9 = puVar12[3];\n        puVar14[2] = *puVar12;\n        puVar14[3] = uVar13;\n        puVar14[4] = uVar10;\n        puVar14[5] = uVar9;\n        uVar1 = *(undefined1 *)(puVar12 + 5);\n        uVar9 = puVar12[4];\n        puVar14[1] = puVar12[-1];\n        puVar12[-2] = puVar12;\n        puVar15 = puVar12 + 8;\n        puVar12[-1] = 0;\n        *(undefined1 *)puVar12 = 0;\n        *(undefined1 *)(puVar14 + 7) = uVar1;\n        puVar14[6] = uVar9;\n        *(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n        puVar12 = puVar15;\n        puVar14 = puVar14 + 8;\n        if (puVar15 == param_2 + 2) goto LAB_00224504;\n      }\n      *puVar14 = (undefined4 *)puVar12[-2];\n      uVar1 = *(undefined1 *)(puVar12 + 5);\n      puVar14[2] = *puVar12;\n      uVar9 = puVar12[4];\n      puVar14[1] = puVar12[-1];\n      puVar12[-2] = puVar12;\n      puVar15 = puVar12 + 8;\n      puVar12[-1] = 0;\n      *(undefined1 *)puVar12 = 0;\n      *(undefined1 *)(puVar14 + 7) = uVar1;\n      puVar14[6] = uVar9;\n      *(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n      puVar12 = puVar15;\n      puVar14 = puVar14 + 8;\n    } while (puVar15 != param_2 + 2);\nLAB_00224504:\n    puVar12 = puVar8 + (((uint)((int)param_2 + (-0x20 - (int)puVar6)) >> 5) + 1) * 8;\n    pcVar3 = (code *)PTR__M_construct<char*>_0043248c;\n  }" ({ "{") (expression_statement "puVar12 = puVar6 + 2;" (assignment_expression "puVar12 = puVar6 + 2" (identifier "puVar12") (= "=") (binary_expression "puVar6 + 2" (identifier "puVar6") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "puVar14 = puVar8;" (assignment_expression "puVar14 = puVar8" (identifier "puVar14") (= "=") (identifier "puVar8")) (; ";")) (do_statement "do {\n      while( true ) {\n        *puVar14 = puVar14 + 2;\n        if ((undefined4 *)puVar12[-2] != puVar12) break;\n        uVar13 = puVar12[1];\n        uVar10 = puVar12[2];\n        uVar9 = puVar12[3];\n        puVar14[2] = *puVar12;\n        puVar14[3] = uVar13;\n        puVar14[4] = uVar10;\n        puVar14[5] = uVar9;\n        uVar1 = *(undefined1 *)(puVar12 + 5);\n        uVar9 = puVar12[4];\n        puVar14[1] = puVar12[-1];\n        puVar12[-2] = puVar12;\n        puVar15 = puVar12 + 8;\n        puVar12[-1] = 0;\n        *(undefined1 *)puVar12 = 0;\n        *(undefined1 *)(puVar14 + 7) = uVar1;\n        puVar14[6] = uVar9;\n        *(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n        puVar12 = puVar15;\n        puVar14 = puVar14 + 8;\n        if (puVar15 == param_2 + 2) goto LAB_00224504;\n      }\n      *puVar14 = (undefined4 *)puVar12[-2];\n      uVar1 = *(undefined1 *)(puVar12 + 5);\n      puVar14[2] = *puVar12;\n      uVar9 = puVar12[4];\n      puVar14[1] = puVar12[-1];\n      puVar12[-2] = puVar12;\n      puVar15 = puVar12 + 8;\n      puVar12[-1] = 0;\n      *(undefined1 *)puVar12 = 0;\n      *(undefined1 *)(puVar14 + 7) = uVar1;\n      puVar14[6] = uVar9;\n      *(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n      puVar12 = puVar15;\n      puVar14 = puVar14 + 8;\n    } while (puVar15 != param_2 + 2);" (do "do") (compound_statement "{\n      while( true ) {\n        *puVar14 = puVar14 + 2;\n        if ((undefined4 *)puVar12[-2] != puVar12) break;\n        uVar13 = puVar12[1];\n        uVar10 = puVar12[2];\n        uVar9 = puVar12[3];\n        puVar14[2] = *puVar12;\n        puVar14[3] = uVar13;\n        puVar14[4] = uVar10;\n        puVar14[5] = uVar9;\n        uVar1 = *(undefined1 *)(puVar12 + 5);\n        uVar9 = puVar12[4];\n        puVar14[1] = puVar12[-1];\n        puVar12[-2] = puVar12;\n        puVar15 = puVar12 + 8;\n        puVar12[-1] = 0;\n        *(undefined1 *)puVar12 = 0;\n        *(undefined1 *)(puVar14 + 7) = uVar1;\n        puVar14[6] = uVar9;\n        *(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n        puVar12 = puVar15;\n        puVar14 = puVar14 + 8;\n        if (puVar15 == param_2 + 2) goto LAB_00224504;\n      }\n      *puVar14 = (undefined4 *)puVar12[-2];\n      uVar1 = *(undefined1 *)(puVar12 + 5);\n      puVar14[2] = *puVar12;\n      uVar9 = puVar12[4];\n      puVar14[1] = puVar12[-1];\n      puVar12[-2] = puVar12;\n      puVar15 = puVar12 + 8;\n      puVar12[-1] = 0;\n      *(undefined1 *)puVar12 = 0;\n      *(undefined1 *)(puVar14 + 7) = uVar1;\n      puVar14[6] = uVar9;\n      *(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n      puVar12 = puVar15;\n      puVar14 = puVar14 + 8;\n    }" ({ "{") (while_statement "while( true ) {\n        *puVar14 = puVar14 + 2;\n        if ((undefined4 *)puVar12[-2] != puVar12) break;\n        uVar13 = puVar12[1];\n        uVar10 = puVar12[2];\n        uVar9 = puVar12[3];\n        puVar14[2] = *puVar12;\n        puVar14[3] = uVar13;\n        puVar14[4] = uVar10;\n        puVar14[5] = uVar9;\n        uVar1 = *(undefined1 *)(puVar12 + 5);\n        uVar9 = puVar12[4];\n        puVar14[1] = puVar12[-1];\n        puVar12[-2] = puVar12;\n        puVar15 = puVar12 + 8;\n        puVar12[-1] = 0;\n        *(undefined1 *)puVar12 = 0;\n        *(undefined1 *)(puVar14 + 7) = uVar1;\n        puVar14[6] = uVar9;\n        *(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n        puVar12 = puVar15;\n        puVar14 = puVar14 + 8;\n        if (puVar15 == param_2 + 2) goto LAB_00224504;\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        *puVar14 = puVar14 + 2;\n        if ((undefined4 *)puVar12[-2] != puVar12) break;\n        uVar13 = puVar12[1];\n        uVar10 = puVar12[2];\n        uVar9 = puVar12[3];\n        puVar14[2] = *puVar12;\n        puVar14[3] = uVar13;\n        puVar14[4] = uVar10;\n        puVar14[5] = uVar9;\n        uVar1 = *(undefined1 *)(puVar12 + 5);\n        uVar9 = puVar12[4];\n        puVar14[1] = puVar12[-1];\n        puVar12[-2] = puVar12;\n        puVar15 = puVar12 + 8;\n        puVar12[-1] = 0;\n        *(undefined1 *)puVar12 = 0;\n        *(undefined1 *)(puVar14 + 7) = uVar1;\n        puVar14[6] = uVar9;\n        *(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);\n        puVar12 = puVar15;\n        puVar14 = puVar14 + 8;\n        if (puVar15 == param_2 + 2) goto LAB_00224504;\n      }" ({ "{") (expression_statement "*puVar14 = puVar14 + 2;" (assignment_expression "*puVar14 = puVar14 + 2" (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (= "=") (binary_expression "puVar14 + 2" (identifier "puVar14") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if ((undefined4 *)puVar12[-2] != puVar12) break;" (if "if") (parenthesized_expression "((undefined4 *)puVar12[-2] != puVar12)" (( "(") (binary_expression "(undefined4 *)puVar12[-2] != puVar12" (cast_expression "(undefined4 *)puVar12[-2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar12[-2]" (identifier "puVar12") ([ "[") (number_literal "-2") (] "]"))) (!= "!=") (identifier "puVar12")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar13 = puVar12[1];" (assignment_expression "uVar13 = puVar12[1]" (identifier "uVar13") (= "=") (subscript_expression "puVar12[1]" (identifier "puVar12") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar10 = puVar12[2];" (assignment_expression "uVar10 = puVar12[2]" (identifier "uVar10") (= "=") (subscript_expression "puVar12[2]" (identifier "puVar12") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar9 = puVar12[3];" (assignment_expression "uVar9 = puVar12[3]" (identifier "uVar9") (= "=") (subscript_expression "puVar12[3]" (identifier "puVar12") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar14[2] = *puVar12;" (assignment_expression "puVar14[2] = *puVar12" (subscript_expression "puVar14[2]" (identifier "puVar14") ([ "[") (number_literal "2") (] "]")) (= "=") (pointer_expression "*puVar12" (* "*") (identifier "puVar12"))) (; ";")) (expression_statement "puVar14[3] = uVar13;" (assignment_expression "puVar14[3] = uVar13" (subscript_expression "puVar14[3]" (identifier "puVar14") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "puVar14[4] = uVar10;" (assignment_expression "puVar14[4] = uVar10" (subscript_expression "puVar14[4]" (identifier "puVar14") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "puVar14[5] = uVar9;" (assignment_expression "puVar14[5] = uVar9" (subscript_expression "puVar14[5]" (identifier "puVar14") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "uVar1 = *(undefined1 *)(puVar12 + 5);" (assignment_expression "uVar1 = *(undefined1 *)(puVar12 + 5)" (identifier "uVar1") (= "=") (pointer_expression "*(undefined1 *)(puVar12 + 5)" (* "*") (cast_expression "(undefined1 *)(puVar12 + 5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 5)" (( "(") (binary_expression "puVar12 + 5" (identifier "puVar12") (+ "+") (number_literal "5")) () ")"))))) (; ";")) (expression_statement "uVar9 = puVar12[4];" (assignment_expression "uVar9 = puVar12[4]" (identifier "uVar9") (= "=") (subscript_expression "puVar12[4]" (identifier "puVar12") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "puVar14[1] = puVar12[-1];" (assignment_expression "puVar14[1] = puVar12[-1]" (subscript_expression "puVar14[1]" (identifier "puVar14") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "puVar12[-1]" (identifier "puVar12") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "puVar12[-2] = puVar12;" (assignment_expression "puVar12[-2] = puVar12" (subscript_expression "puVar12[-2]" (identifier "puVar12") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "puVar12")) (; ";")) (expression_statement "puVar15 = puVar12 + 8;" (assignment_expression "puVar15 = puVar12 + 8" (identifier "puVar15") (= "=") (binary_expression "puVar12 + 8" (identifier "puVar12") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "puVar12[-1] = 0;" (assignment_expression "puVar12[-1] = 0" (subscript_expression "puVar12[-1]" (identifier "puVar12") ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)puVar12 = 0;" (assignment_expression "*(undefined1 *)puVar12 = 0" (pointer_expression "*(undefined1 *)puVar12" (* "*") (cast_expression "(undefined1 *)puVar12" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar12"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar14 + 7) = uVar1;" (assignment_expression "*(undefined1 *)(puVar14 + 7) = uVar1" (pointer_expression "*(undefined1 *)(puVar14 + 7)" (* "*") (cast_expression "(undefined1 *)(puVar14 + 7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 7)" (( "(") (binary_expression "puVar14 + 7" (identifier "puVar14") (+ "+") (number_literal "7")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "puVar14[6] = uVar9;" (assignment_expression "puVar14[6] = uVar9" (subscript_expression "puVar14[6]" (identifier "puVar14") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);" (assignment_expression "*(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15)" (pointer_expression "*(undefined1 *)((int)puVar14 + 0x1d)" (* "*") (cast_expression "(undefined1 *)((int)puVar14 + 0x1d)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar14 + 0x1d)" (( "(") (binary_expression "(int)puVar14 + 0x1d" (cast_expression "(int)puVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar14")) (+ "+") (number_literal "0x1d")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)((int)puVar12 + 0x15)" (* "*") (cast_expression "(undefined1 *)((int)puVar12 + 0x15)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar12 + 0x15)" (( "(") (binary_expression "(int)puVar12 + 0x15" (cast_expression "(int)puVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar12")) (+ "+") (number_literal "0x15")) () ")"))))) (; ";")) (expression_statement "puVar12 = puVar15;" (assignment_expression "puVar12 = puVar15" (identifier "puVar12") (= "=") (identifier "puVar15")) (; ";")) (expression_statement "puVar14 = puVar14 + 8;" (assignment_expression "puVar14 = puVar14 + 8" (identifier "puVar14") (= "=") (binary_expression "puVar14 + 8" (identifier "puVar14") (+ "+") (number_literal "8"))) (; ";")) (if_statement "if (puVar15 == param_2 + 2) goto LAB_00224504;" (if "if") (parenthesized_expression "(puVar15 == param_2 + 2)" (( "(") (binary_expression "puVar15 == param_2 + 2" (identifier "puVar15") (== "==") (binary_expression "param_2 + 2" (identifier "param_2") (+ "+") (number_literal "2"))) () ")")) (goto_statement "goto LAB_00224504;" (goto "goto") (statement_identifier "LAB_00224504") (; ";"))) (} "}"))) (expression_statement "*puVar14 = (undefined4 *)puVar12[-2];" (assignment_expression "*puVar14 = (undefined4 *)puVar12[-2]" (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (= "=") (cast_expression "(undefined4 *)puVar12[-2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar12[-2]" (identifier "puVar12") ([ "[") (number_literal "-2") (] "]")))) (; ";")) (expression_statement "uVar1 = *(undefined1 *)(puVar12 + 5);" (assignment_expression "uVar1 = *(undefined1 *)(puVar12 + 5)" (identifier "uVar1") (= "=") (pointer_expression "*(undefined1 *)(puVar12 + 5)" (* "*") (cast_expression "(undefined1 *)(puVar12 + 5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 5)" (( "(") (binary_expression "puVar12 + 5" (identifier "puVar12") (+ "+") (number_literal "5")) () ")"))))) (; ";")) (expression_statement "puVar14[2] = *puVar12;" (assignment_expression "puVar14[2] = *puVar12" (subscript_expression "puVar14[2]" (identifier "puVar14") ([ "[") (number_literal "2") (] "]")) (= "=") (pointer_expression "*puVar12" (* "*") (identifier "puVar12"))) (; ";")) (expression_statement "uVar9 = puVar12[4];" (assignment_expression "uVar9 = puVar12[4]" (identifier "uVar9") (= "=") (subscript_expression "puVar12[4]" (identifier "puVar12") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "puVar14[1] = puVar12[-1];" (assignment_expression "puVar14[1] = puVar12[-1]" (subscript_expression "puVar14[1]" (identifier "puVar14") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "puVar12[-1]" (identifier "puVar12") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "puVar12[-2] = puVar12;" (assignment_expression "puVar12[-2] = puVar12" (subscript_expression "puVar12[-2]" (identifier "puVar12") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "puVar12")) (; ";")) (expression_statement "puVar15 = puVar12 + 8;" (assignment_expression "puVar15 = puVar12 + 8" (identifier "puVar15") (= "=") (binary_expression "puVar12 + 8" (identifier "puVar12") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "puVar12[-1] = 0;" (assignment_expression "puVar12[-1] = 0" (subscript_expression "puVar12[-1]" (identifier "puVar12") ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)puVar12 = 0;" (assignment_expression "*(undefined1 *)puVar12 = 0" (pointer_expression "*(undefined1 *)puVar12" (* "*") (cast_expression "(undefined1 *)puVar12" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar12"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar14 + 7) = uVar1;" (assignment_expression "*(undefined1 *)(puVar14 + 7) = uVar1" (pointer_expression "*(undefined1 *)(puVar14 + 7)" (* "*") (cast_expression "(undefined1 *)(puVar14 + 7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 7)" (( "(") (binary_expression "puVar14 + 7" (identifier "puVar14") (+ "+") (number_literal "7")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "puVar14[6] = uVar9;" (assignment_expression "puVar14[6] = uVar9" (subscript_expression "puVar14[6]" (identifier "puVar14") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);" (assignment_expression "*(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15)" (pointer_expression "*(undefined1 *)((int)puVar14 + 0x1d)" (* "*") (cast_expression "(undefined1 *)((int)puVar14 + 0x1d)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar14 + 0x1d)" (( "(") (binary_expression "(int)puVar14 + 0x1d" (cast_expression "(int)puVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar14")) (+ "+") (number_literal "0x1d")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)((int)puVar12 + 0x15)" (* "*") (cast_expression "(undefined1 *)((int)puVar12 + 0x15)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar12 + 0x15)" (( "(") (binary_expression "(int)puVar12 + 0x15" (cast_expression "(int)puVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar12")) (+ "+") (number_literal "0x15")) () ")"))))) (; ";")) (expression_statement "puVar12 = puVar15;" (assignment_expression "puVar12 = puVar15" (identifier "puVar12") (= "=") (identifier "puVar15")) (; ";")) (expression_statement "puVar14 = puVar14 + 8;" (assignment_expression "puVar14 = puVar14 + 8" (identifier "puVar14") (= "=") (binary_expression "puVar14 + 8" (identifier "puVar14") (+ "+") (number_literal "8"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar15 != param_2 + 2)" (( "(") (binary_expression "puVar15 != param_2 + 2" (identifier "puVar15") (!= "!=") (binary_expression "param_2 + 2" (identifier "param_2") (+ "+") (number_literal "2"))) () ")")) (; ";")) (labeled_statement "LAB_00224504:\n    puVar12 = puVar8 + (((uint)((int)param_2 + (-0x20 - (int)puVar6)) >> 5) + 1) * 8;" (statement_identifier "LAB_00224504") (: ":") (expression_statement "puVar12 = puVar8 + (((uint)((int)param_2 + (-0x20 - (int)puVar6)) >> 5) + 1) * 8;" (assignment_expression "puVar12 = puVar8 + (((uint)((int)param_2 + (-0x20 - (int)puVar6)) >> 5) + 1) * 8" (identifier "puVar12") (= "=") (binary_expression "puVar8 + (((uint)((int)param_2 + (-0x20 - (int)puVar6)) >> 5) + 1) * 8" (identifier "puVar8") (+ "+") (binary_expression "(((uint)((int)param_2 + (-0x20 - (int)puVar6)) >> 5) + 1) * 8" (parenthesized_expression "(((uint)((int)param_2 + (-0x20 - (int)puVar6)) >> 5) + 1)" (( "(") (binary_expression "((uint)((int)param_2 + (-0x20 - (int)puVar6)) >> 5) + 1" (parenthesized_expression "((uint)((int)param_2 + (-0x20 - (int)puVar6)) >> 5)" (( "(") (binary_expression "(uint)((int)param_2 + (-0x20 - (int)puVar6)) >> 5" (call_expression "(uint)((int)param_2 + (-0x20 - (int)puVar6))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)param_2 + (-0x20 - (int)puVar6))" (( "(") (binary_expression "(int)param_2 + (-0x20 - (int)puVar6)" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (parenthesized_expression "(-0x20 - (int)puVar6)" (( "(") (binary_expression "-0x20 - (int)puVar6" (number_literal "-0x20") (- "-") (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6"))) () ")"))) () ")"))) (>> ">>") (number_literal "5")) () ")")) (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "8")))) (; ";"))) (expression_statement "pcVar3 = (code *)PTR__M_construct<char*>_0043248c;" (assignment_expression "pcVar3 = (code *)PTR__M_construct<char*>_0043248c" (identifier "pcVar3") (= "=") (binary_expression "(code *)PTR__M_construct<char*>_0043248c" (binary_expression "(code *)PTR__M_construct<char" (cast_expression "(code *)PTR__M_construct" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR__M_construct")) (< "<") (identifier "char")) (ERROR "*" (* "*")) (> ">") (identifier "_0043248c"))) (; ";")) (} "}"))) (do_statement "do {\n    iVar18 = *param_3;\n    iVar5 = param_3[1];\n    *puVar12 = puVar12 + 2;\n                    \n    (*pcVar3)(puVar12,iVar18,iVar18 + iVar5,0);\n    piVar16 = param_3 + 8;\n    puVar6 = puVar12 + 8;\n    uVar1 = *(undefined1 *)(param_3 + 7);\n    uVar2 = *(undefined1 *)((int)param_3 + 0x1d);\n    puVar12[6] = param_3[6];\n    *(undefined1 *)(puVar12 + 7) = uVar1;\n    *(undefined1 *)((int)puVar12 + 0x1d) = uVar2;\n    param_3 = piVar16;\n    puVar12 = puVar6;\n  } while (param_4 != piVar16);" (do "do") (compound_statement "{\n    iVar18 = *param_3;\n    iVar5 = param_3[1];\n    *puVar12 = puVar12 + 2;\n                    \n    (*pcVar3)(puVar12,iVar18,iVar18 + iVar5,0);\n    piVar16 = param_3 + 8;\n    puVar6 = puVar12 + 8;\n    uVar1 = *(undefined1 *)(param_3 + 7);\n    uVar2 = *(undefined1 *)((int)param_3 + 0x1d);\n    puVar12[6] = param_3[6];\n    *(undefined1 *)(puVar12 + 7) = uVar1;\n    *(undefined1 *)((int)puVar12 + 0x1d) = uVar2;\n    param_3 = piVar16;\n    puVar12 = puVar6;\n  }" ({ "{") (expression_statement "iVar18 = *param_3;" (assignment_expression "iVar18 = *param_3" (identifier "iVar18") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (expression_statement "iVar5 = param_3[1];" (assignment_expression "iVar5 = param_3[1]" (identifier "iVar5") (= "=") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*puVar12 = puVar12 + 2;" (assignment_expression "*puVar12 = puVar12 + 2" (pointer_expression "*puVar12" (* "*") (identifier "puVar12")) (= "=") (binary_expression "puVar12 + 2" (identifier "puVar12") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "(*pcVar3)(puVar12,iVar18,iVar18 + iVar5,0);" (call_expression "(*pcVar3)(puVar12,iVar18,iVar18 + iVar5,0)" (parenthesized_expression "(*pcVar3)" (( "(") (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3")) () ")")) (argument_list "(puVar12,iVar18,iVar18 + iVar5,0)" (( "(") (identifier "puVar12") (, ",") (identifier "iVar18") (, ",") (binary_expression "iVar18 + iVar5" (identifier "iVar18") (+ "+") (identifier "iVar5")) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "piVar16 = param_3 + 8;" (assignment_expression "piVar16 = param_3 + 8" (identifier "piVar16") (= "=") (binary_expression "param_3 + 8" (identifier "param_3") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "puVar6 = puVar12 + 8;" (assignment_expression "puVar6 = puVar12 + 8" (identifier "puVar6") (= "=") (binary_expression "puVar12 + 8" (identifier "puVar12") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "uVar1 = *(undefined1 *)(param_3 + 7);" (assignment_expression "uVar1 = *(undefined1 *)(param_3 + 7)" (identifier "uVar1") (= "=") (pointer_expression "*(undefined1 *)(param_3 + 7)" (* "*") (cast_expression "(undefined1 *)(param_3 + 7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 7)" (( "(") (binary_expression "param_3 + 7" (identifier "param_3") (+ "+") (number_literal "7")) () ")"))))) (; ";")) (expression_statement "uVar2 = *(undefined1 *)((int)param_3 + 0x1d);" (assignment_expression "uVar2 = *(undefined1 *)((int)param_3 + 0x1d)" (identifier "uVar2") (= "=") (pointer_expression "*(undefined1 *)((int)param_3 + 0x1d)" (* "*") (cast_expression "(undefined1 *)((int)param_3 + 0x1d)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_3 + 0x1d)" (( "(") (binary_expression "(int)param_3 + 0x1d" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (+ "+") (number_literal "0x1d")) () ")"))))) (; ";")) (expression_statement "puVar12[6] = param_3[6];" (assignment_expression "puVar12[6] = param_3[6]" (subscript_expression "puVar12[6]" (identifier "puVar12") ([ "[") (number_literal "6") (] "]")) (= "=") (subscript_expression "param_3[6]" (identifier "param_3") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "*(undefined1 *)(puVar12 + 7) = uVar1;" (assignment_expression "*(undefined1 *)(puVar12 + 7) = uVar1" (pointer_expression "*(undefined1 *)(puVar12 + 7)" (* "*") (cast_expression "(undefined1 *)(puVar12 + 7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 7)" (( "(") (binary_expression "puVar12 + 7" (identifier "puVar12") (+ "+") (number_literal "7")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar12 + 0x1d) = uVar2;" (assignment_expression "*(undefined1 *)((int)puVar12 + 0x1d) = uVar2" (pointer_expression "*(undefined1 *)((int)puVar12 + 0x1d)" (* "*") (cast_expression "(undefined1 *)((int)puVar12 + 0x1d)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar12 + 0x1d)" (( "(") (binary_expression "(int)puVar12 + 0x1d" (cast_expression "(int)puVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar12")) (+ "+") (number_literal "0x1d")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "param_3 = piVar16;" (assignment_expression "param_3 = piVar16" (identifier "param_3") (= "=") (identifier "piVar16")) (; ";")) (expression_statement "puVar12 = puVar6;" (assignment_expression "puVar12 = puVar6" (identifier "puVar12") (= "=") (identifier "puVar6")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_4 != piVar16)" (( "(") (binary_expression "param_4 != piVar16" (identifier "param_4") (!= "!=") (identifier "piVar16")) () ")")) (; ";")) (expression_statement "puVar12 = (undefined4 *)param_1[1];" (assignment_expression "puVar12 = (undefined4 *)param_1[1]" (identifier "puVar12") (= "=") (cast_expression "(undefined4 *)param_1[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")))) (; ";")) (if_statement "if (puVar12 != param_2) {\n    uVar20 = (int)puVar12 + (-0x20 - (int)param_2);\n    puVar15 = (undefined4 *)((int)param_2 + uVar20 + 0x28);\n    puVar12 = puVar6;\n    puVar14 = param_2 + 2;\n    do {\n      while( true ) {\n        puVar11 = (undefined4 *)puVar14[-2];\n        *puVar12 = puVar12 + 2;\n        if (puVar11 != puVar14) break;\n        uVar13 = puVar14[1];\n        uVar10 = puVar14[2];\n        uVar9 = puVar14[3];\n        puVar12[2] = *puVar14;\n        puVar12[3] = uVar13;\n        puVar12[4] = uVar10;\n        puVar12[5] = uVar9;\n        puVar14[-2] = puVar14;\n        puVar11 = puVar14 + 8;\n        uVar9 = puVar14[4];\n        uVar1 = *(undefined1 *)(puVar14 + 5);\n        uVar2 = *(undefined1 *)((int)puVar14 + 0x15);\n        puVar12[1] = puVar14[-1];\n        puVar12[6] = uVar9;\n        puVar14[-1] = 0;\n        *(undefined1 *)puVar14 = 0;\n        *(undefined1 *)(puVar12 + 7) = uVar1;\n        *(undefined1 *)((int)puVar12 + 0x1d) = uVar2;\n        puVar12 = puVar12 + 8;\n        puVar14 = puVar11;\n        if (puVar15 == puVar11) goto LAB_00224668;\n      }\n      uVar9 = *puVar14;\n      uVar13 = puVar14[-1];\n      uVar10 = puVar14[4];\n      *puVar12 = puVar11;\n      puVar12[2] = uVar9;\n      puVar14[-2] = puVar14;\n      puVar11 = puVar14 + 8;\n      puVar12[1] = uVar13;\n      puVar12[6] = uVar10;\n      uVar1 = *(undefined1 *)((int)puVar14 + 0x15);\n      *(undefined1 *)(puVar12 + 7) = *(undefined1 *)(puVar14 + 5);\n      puVar14[-1] = 0;\n      *(undefined1 *)puVar14 = 0;\n      *(undefined1 *)((int)puVar12 + 0x1d) = uVar1;\n      puVar12 = puVar12 + 8;\n      puVar14 = puVar11;\n    } while (puVar15 != puVar11);\nLAB_00224668:\n    puVar12 = (undefined4 *)param_1[1];\n    puVar6 = puVar6 + ((uVar20 >> 5) + 1) * 8;\n  }" (if "if") (parenthesized_expression "(puVar12 != param_2)" (( "(") (binary_expression "puVar12 != param_2" (identifier "puVar12") (!= "!=") (identifier "param_2")) () ")")) (compound_statement "{\n    uVar20 = (int)puVar12 + (-0x20 - (int)param_2);\n    puVar15 = (undefined4 *)((int)param_2 + uVar20 + 0x28);\n    puVar12 = puVar6;\n    puVar14 = param_2 + 2;\n    do {\n      while( true ) {\n        puVar11 = (undefined4 *)puVar14[-2];\n        *puVar12 = puVar12 + 2;\n        if (puVar11 != puVar14) break;\n        uVar13 = puVar14[1];\n        uVar10 = puVar14[2];\n        uVar9 = puVar14[3];\n        puVar12[2] = *puVar14;\n        puVar12[3] = uVar13;\n        puVar12[4] = uVar10;\n        puVar12[5] = uVar9;\n        puVar14[-2] = puVar14;\n        puVar11 = puVar14 + 8;\n        uVar9 = puVar14[4];\n        uVar1 = *(undefined1 *)(puVar14 + 5);\n        uVar2 = *(undefined1 *)((int)puVar14 + 0x15);\n        puVar12[1] = puVar14[-1];\n        puVar12[6] = uVar9;\n        puVar14[-1] = 0;\n        *(undefined1 *)puVar14 = 0;\n        *(undefined1 *)(puVar12 + 7) = uVar1;\n        *(undefined1 *)((int)puVar12 + 0x1d) = uVar2;\n        puVar12 = puVar12 + 8;\n        puVar14 = puVar11;\n        if (puVar15 == puVar11) goto LAB_00224668;\n      }\n      uVar9 = *puVar14;\n      uVar13 = puVar14[-1];\n      uVar10 = puVar14[4];\n      *puVar12 = puVar11;\n      puVar12[2] = uVar9;\n      puVar14[-2] = puVar14;\n      puVar11 = puVar14 + 8;\n      puVar12[1] = uVar13;\n      puVar12[6] = uVar10;\n      uVar1 = *(undefined1 *)((int)puVar14 + 0x15);\n      *(undefined1 *)(puVar12 + 7) = *(undefined1 *)(puVar14 + 5);\n      puVar14[-1] = 0;\n      *(undefined1 *)puVar14 = 0;\n      *(undefined1 *)((int)puVar12 + 0x1d) = uVar1;\n      puVar12 = puVar12 + 8;\n      puVar14 = puVar11;\n    } while (puVar15 != puVar11);\nLAB_00224668:\n    puVar12 = (undefined4 *)param_1[1];\n    puVar6 = puVar6 + ((uVar20 >> 5) + 1) * 8;\n  }" ({ "{") (expression_statement "uVar20 = (int)puVar12 + (-0x20 - (int)param_2);" (assignment_expression "uVar20 = (int)puVar12 + (-0x20 - (int)param_2)" (identifier "uVar20") (= "=") (binary_expression "(int)puVar12 + (-0x20 - (int)param_2)" (cast_expression "(int)puVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar12")) (+ "+") (parenthesized_expression "(-0x20 - (int)param_2)" (( "(") (binary_expression "-0x20 - (int)param_2" (number_literal "-0x20") (- "-") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))) () ")")))) (; ";")) (expression_statement "puVar15 = (undefined4 *)((int)param_2 + uVar20 + 0x28);" (assignment_expression "puVar15 = (undefined4 *)((int)param_2 + uVar20 + 0x28)" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)((int)param_2 + uVar20 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + uVar20 + 0x28)" (( "(") (binary_expression "(int)param_2 + uVar20 + 0x28" (binary_expression "(int)param_2 + uVar20" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (identifier "uVar20")) (+ "+") (number_literal "0x28")) () ")")))) (; ";")) (expression_statement "puVar12 = puVar6;" (assignment_expression "puVar12 = puVar6" (identifier "puVar12") (= "=") (identifier "puVar6")) (; ";")) (expression_statement "puVar14 = param_2 + 2;" (assignment_expression "puVar14 = param_2 + 2" (identifier "puVar14") (= "=") (binary_expression "param_2 + 2" (identifier "param_2") (+ "+") (number_literal "2"))) (; ";")) (do_statement "do {\n      while( true ) {\n        puVar11 = (undefined4 *)puVar14[-2];\n        *puVar12 = puVar12 + 2;\n        if (puVar11 != puVar14) break;\n        uVar13 = puVar14[1];\n        uVar10 = puVar14[2];\n        uVar9 = puVar14[3];\n        puVar12[2] = *puVar14;\n        puVar12[3] = uVar13;\n        puVar12[4] = uVar10;\n        puVar12[5] = uVar9;\n        puVar14[-2] = puVar14;\n        puVar11 = puVar14 + 8;\n        uVar9 = puVar14[4];\n        uVar1 = *(undefined1 *)(puVar14 + 5);\n        uVar2 = *(undefined1 *)((int)puVar14 + 0x15);\n        puVar12[1] = puVar14[-1];\n        puVar12[6] = uVar9;\n        puVar14[-1] = 0;\n        *(undefined1 *)puVar14 = 0;\n        *(undefined1 *)(puVar12 + 7) = uVar1;\n        *(undefined1 *)((int)puVar12 + 0x1d) = uVar2;\n        puVar12 = puVar12 + 8;\n        puVar14 = puVar11;\n        if (puVar15 == puVar11) goto LAB_00224668;\n      }\n      uVar9 = *puVar14;\n      uVar13 = puVar14[-1];\n      uVar10 = puVar14[4];\n      *puVar12 = puVar11;\n      puVar12[2] = uVar9;\n      puVar14[-2] = puVar14;\n      puVar11 = puVar14 + 8;\n      puVar12[1] = uVar13;\n      puVar12[6] = uVar10;\n      uVar1 = *(undefined1 *)((int)puVar14 + 0x15);\n      *(undefined1 *)(puVar12 + 7) = *(undefined1 *)(puVar14 + 5);\n      puVar14[-1] = 0;\n      *(undefined1 *)puVar14 = 0;\n      *(undefined1 *)((int)puVar12 + 0x1d) = uVar1;\n      puVar12 = puVar12 + 8;\n      puVar14 = puVar11;\n    } while (puVar15 != puVar11);" (do "do") (compound_statement "{\n      while( true ) {\n        puVar11 = (undefined4 *)puVar14[-2];\n        *puVar12 = puVar12 + 2;\n        if (puVar11 != puVar14) break;\n        uVar13 = puVar14[1];\n        uVar10 = puVar14[2];\n        uVar9 = puVar14[3];\n        puVar12[2] = *puVar14;\n        puVar12[3] = uVar13;\n        puVar12[4] = uVar10;\n        puVar12[5] = uVar9;\n        puVar14[-2] = puVar14;\n        puVar11 = puVar14 + 8;\n        uVar9 = puVar14[4];\n        uVar1 = *(undefined1 *)(puVar14 + 5);\n        uVar2 = *(undefined1 *)((int)puVar14 + 0x15);\n        puVar12[1] = puVar14[-1];\n        puVar12[6] = uVar9;\n        puVar14[-1] = 0;\n        *(undefined1 *)puVar14 = 0;\n        *(undefined1 *)(puVar12 + 7) = uVar1;\n        *(undefined1 *)((int)puVar12 + 0x1d) = uVar2;\n        puVar12 = puVar12 + 8;\n        puVar14 = puVar11;\n        if (puVar15 == puVar11) goto LAB_00224668;\n      }\n      uVar9 = *puVar14;\n      uVar13 = puVar14[-1];\n      uVar10 = puVar14[4];\n      *puVar12 = puVar11;\n      puVar12[2] = uVar9;\n      puVar14[-2] = puVar14;\n      puVar11 = puVar14 + 8;\n      puVar12[1] = uVar13;\n      puVar12[6] = uVar10;\n      uVar1 = *(undefined1 *)((int)puVar14 + 0x15);\n      *(undefined1 *)(puVar12 + 7) = *(undefined1 *)(puVar14 + 5);\n      puVar14[-1] = 0;\n      *(undefined1 *)puVar14 = 0;\n      *(undefined1 *)((int)puVar12 + 0x1d) = uVar1;\n      puVar12 = puVar12 + 8;\n      puVar14 = puVar11;\n    }" ({ "{") (while_statement "while( true ) {\n        puVar11 = (undefined4 *)puVar14[-2];\n        *puVar12 = puVar12 + 2;\n        if (puVar11 != puVar14) break;\n        uVar13 = puVar14[1];\n        uVar10 = puVar14[2];\n        uVar9 = puVar14[3];\n        puVar12[2] = *puVar14;\n        puVar12[3] = uVar13;\n        puVar12[4] = uVar10;\n        puVar12[5] = uVar9;\n        puVar14[-2] = puVar14;\n        puVar11 = puVar14 + 8;\n        uVar9 = puVar14[4];\n        uVar1 = *(undefined1 *)(puVar14 + 5);\n        uVar2 = *(undefined1 *)((int)puVar14 + 0x15);\n        puVar12[1] = puVar14[-1];\n        puVar12[6] = uVar9;\n        puVar14[-1] = 0;\n        *(undefined1 *)puVar14 = 0;\n        *(undefined1 *)(puVar12 + 7) = uVar1;\n        *(undefined1 *)((int)puVar12 + 0x1d) = uVar2;\n        puVar12 = puVar12 + 8;\n        puVar14 = puVar11;\n        if (puVar15 == puVar11) goto LAB_00224668;\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        puVar11 = (undefined4 *)puVar14[-2];\n        *puVar12 = puVar12 + 2;\n        if (puVar11 != puVar14) break;\n        uVar13 = puVar14[1];\n        uVar10 = puVar14[2];\n        uVar9 = puVar14[3];\n        puVar12[2] = *puVar14;\n        puVar12[3] = uVar13;\n        puVar12[4] = uVar10;\n        puVar12[5] = uVar9;\n        puVar14[-2] = puVar14;\n        puVar11 = puVar14 + 8;\n        uVar9 = puVar14[4];\n        uVar1 = *(undefined1 *)(puVar14 + 5);\n        uVar2 = *(undefined1 *)((int)puVar14 + 0x15);\n        puVar12[1] = puVar14[-1];\n        puVar12[6] = uVar9;\n        puVar14[-1] = 0;\n        *(undefined1 *)puVar14 = 0;\n        *(undefined1 *)(puVar12 + 7) = uVar1;\n        *(undefined1 *)((int)puVar12 + 0x1d) = uVar2;\n        puVar12 = puVar12 + 8;\n        puVar14 = puVar11;\n        if (puVar15 == puVar11) goto LAB_00224668;\n      }" ({ "{") (expression_statement "puVar11 = (undefined4 *)puVar14[-2];" (assignment_expression "puVar11 = (undefined4 *)puVar14[-2]" (identifier "puVar11") (= "=") (cast_expression "(undefined4 *)puVar14[-2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar14[-2]" (identifier "puVar14") ([ "[") (number_literal "-2") (] "]")))) (; ";")) (expression_statement "*puVar12 = puVar12 + 2;" (assignment_expression "*puVar12 = puVar12 + 2" (pointer_expression "*puVar12" (* "*") (identifier "puVar12")) (= "=") (binary_expression "puVar12 + 2" (identifier "puVar12") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if (puVar11 != puVar14) break;" (if "if") (parenthesized_expression "(puVar11 != puVar14)" (( "(") (binary_expression "puVar11 != puVar14" (identifier "puVar11") (!= "!=") (identifier "puVar14")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar13 = puVar14[1];" (assignment_expression "uVar13 = puVar14[1]" (identifier "uVar13") (= "=") (subscript_expression "puVar14[1]" (identifier "puVar14") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar10 = puVar14[2];" (assignment_expression "uVar10 = puVar14[2]" (identifier "uVar10") (= "=") (subscript_expression "puVar14[2]" (identifier "puVar14") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar9 = puVar14[3];" (assignment_expression "uVar9 = puVar14[3]" (identifier "uVar9") (= "=") (subscript_expression "puVar14[3]" (identifier "puVar14") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar12[2] = *puVar14;" (assignment_expression "puVar12[2] = *puVar14" (subscript_expression "puVar12[2]" (identifier "puVar12") ([ "[") (number_literal "2") (] "]")) (= "=") (pointer_expression "*puVar14" (* "*") (identifier "puVar14"))) (; ";")) (expression_statement "puVar12[3] = uVar13;" (assignment_expression "puVar12[3] = uVar13" (subscript_expression "puVar12[3]" (identifier "puVar12") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "puVar12[4] = uVar10;" (assignment_expression "puVar12[4] = uVar10" (subscript_expression "puVar12[4]" (identifier "puVar12") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "puVar12[5] = uVar9;" (assignment_expression "puVar12[5] = uVar9" (subscript_expression "puVar12[5]" (identifier "puVar12") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "puVar14[-2] = puVar14;" (assignment_expression "puVar14[-2] = puVar14" (subscript_expression "puVar14[-2]" (identifier "puVar14") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "puVar14")) (; ";")) (expression_statement "puVar11 = puVar14 + 8;" (assignment_expression "puVar11 = puVar14 + 8" (identifier "puVar11") (= "=") (binary_expression "puVar14 + 8" (identifier "puVar14") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "uVar9 = puVar14[4];" (assignment_expression "uVar9 = puVar14[4]" (identifier "uVar9") (= "=") (subscript_expression "puVar14[4]" (identifier "puVar14") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "uVar1 = *(undefined1 *)(puVar14 + 5);" (assignment_expression "uVar1 = *(undefined1 *)(puVar14 + 5)" (identifier "uVar1") (= "=") (pointer_expression "*(undefined1 *)(puVar14 + 5)" (* "*") (cast_expression "(undefined1 *)(puVar14 + 5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 5)" (( "(") (binary_expression "puVar14 + 5" (identifier "puVar14") (+ "+") (number_literal "5")) () ")"))))) (; ";")) (expression_statement "uVar2 = *(undefined1 *)((int)puVar14 + 0x15);" (assignment_expression "uVar2 = *(undefined1 *)((int)puVar14 + 0x15)" (identifier "uVar2") (= "=") (pointer_expression "*(undefined1 *)((int)puVar14 + 0x15)" (* "*") (cast_expression "(undefined1 *)((int)puVar14 + 0x15)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar14 + 0x15)" (( "(") (binary_expression "(int)puVar14 + 0x15" (cast_expression "(int)puVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar14")) (+ "+") (number_literal "0x15")) () ")"))))) (; ";")) (expression_statement "puVar12[1] = puVar14[-1];" (assignment_expression "puVar12[1] = puVar14[-1]" (subscript_expression "puVar12[1]" (identifier "puVar12") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "puVar14[-1]" (identifier "puVar14") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "puVar12[6] = uVar9;" (assignment_expression "puVar12[6] = uVar9" (subscript_expression "puVar12[6]" (identifier "puVar12") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "puVar14[-1] = 0;" (assignment_expression "puVar14[-1] = 0" (subscript_expression "puVar14[-1]" (identifier "puVar14") ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)puVar14 = 0;" (assignment_expression "*(undefined1 *)puVar14 = 0" (pointer_expression "*(undefined1 *)puVar14" (* "*") (cast_expression "(undefined1 *)puVar14" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar14"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar12 + 7) = uVar1;" (assignment_expression "*(undefined1 *)(puVar12 + 7) = uVar1" (pointer_expression "*(undefined1 *)(puVar12 + 7)" (* "*") (cast_expression "(undefined1 *)(puVar12 + 7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 7)" (( "(") (binary_expression "puVar12 + 7" (identifier "puVar12") (+ "+") (number_literal "7")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar12 + 0x1d) = uVar2;" (assignment_expression "*(undefined1 *)((int)puVar12 + 0x1d) = uVar2" (pointer_expression "*(undefined1 *)((int)puVar12 + 0x1d)" (* "*") (cast_expression "(undefined1 *)((int)puVar12 + 0x1d)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar12 + 0x1d)" (( "(") (binary_expression "(int)puVar12 + 0x1d" (cast_expression "(int)puVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar12")) (+ "+") (number_literal "0x1d")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "puVar12 = puVar12 + 8;" (assignment_expression "puVar12 = puVar12 + 8" (identifier "puVar12") (= "=") (binary_expression "puVar12 + 8" (identifier "puVar12") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "puVar14 = puVar11;" (assignment_expression "puVar14 = puVar11" (identifier "puVar14") (= "=") (identifier "puVar11")) (; ";")) (if_statement "if (puVar15 == puVar11) goto LAB_00224668;" (if "if") (parenthesized_expression "(puVar15 == puVar11)" (( "(") (binary_expression "puVar15 == puVar11" (identifier "puVar15") (== "==") (identifier "puVar11")) () ")")) (goto_statement "goto LAB_00224668;" (goto "goto") (statement_identifier "LAB_00224668") (; ";"))) (} "}"))) (expression_statement "uVar9 = *puVar14;" (assignment_expression "uVar9 = *puVar14" (identifier "uVar9") (= "=") (pointer_expression "*puVar14" (* "*") (identifier "puVar14"))) (; ";")) (expression_statement "uVar13 = puVar14[-1];" (assignment_expression "uVar13 = puVar14[-1]" (identifier "uVar13") (= "=") (subscript_expression "puVar14[-1]" (identifier "puVar14") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "uVar10 = puVar14[4];" (assignment_expression "uVar10 = puVar14[4]" (identifier "uVar10") (= "=") (subscript_expression "puVar14[4]" (identifier "puVar14") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "*puVar12 = puVar11;" (assignment_expression "*puVar12 = puVar11" (pointer_expression "*puVar12" (* "*") (identifier "puVar12")) (= "=") (identifier "puVar11")) (; ";")) (expression_statement "puVar12[2] = uVar9;" (assignment_expression "puVar12[2] = uVar9" (subscript_expression "puVar12[2]" (identifier "puVar12") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "puVar14[-2] = puVar14;" (assignment_expression "puVar14[-2] = puVar14" (subscript_expression "puVar14[-2]" (identifier "puVar14") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "puVar14")) (; ";")) (expression_statement "puVar11 = puVar14 + 8;" (assignment_expression "puVar11 = puVar14 + 8" (identifier "puVar11") (= "=") (binary_expression "puVar14 + 8" (identifier "puVar14") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "puVar12[1] = uVar13;" (assignment_expression "puVar12[1] = uVar13" (subscript_expression "puVar12[1]" (identifier "puVar12") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "puVar12[6] = uVar10;" (assignment_expression "puVar12[6] = uVar10" (subscript_expression "puVar12[6]" (identifier "puVar12") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "uVar1 = *(undefined1 *)((int)puVar14 + 0x15);" (assignment_expression "uVar1 = *(undefined1 *)((int)puVar14 + 0x15)" (identifier "uVar1") (= "=") (pointer_expression "*(undefined1 *)((int)puVar14 + 0x15)" (* "*") (cast_expression "(undefined1 *)((int)puVar14 + 0x15)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar14 + 0x15)" (( "(") (binary_expression "(int)puVar14 + 0x15" (cast_expression "(int)puVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar14")) (+ "+") (number_literal "0x15")) () ")"))))) (; ";")) (expression_statement "*(undefined1 *)(puVar12 + 7) = *(undefined1 *)(puVar14 + 5);" (assignment_expression "*(undefined1 *)(puVar12 + 7) = *(undefined1 *)(puVar14 + 5)" (pointer_expression "*(undefined1 *)(puVar12 + 7)" (* "*") (cast_expression "(undefined1 *)(puVar12 + 7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + 7)" (( "(") (binary_expression "puVar12 + 7" (identifier "puVar12") (+ "+") (number_literal "7")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)(puVar14 + 5)" (* "*") (cast_expression "(undefined1 *)(puVar14 + 5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 5)" (( "(") (binary_expression "puVar14 + 5" (identifier "puVar14") (+ "+") (number_literal "5")) () ")"))))) (; ";")) (expression_statement "puVar14[-1] = 0;" (assignment_expression "puVar14[-1] = 0" (subscript_expression "puVar14[-1]" (identifier "puVar14") ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)puVar14 = 0;" (assignment_expression "*(undefined1 *)puVar14 = 0" (pointer_expression "*(undefined1 *)puVar14" (* "*") (cast_expression "(undefined1 *)puVar14" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar14"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar12 + 0x1d) = uVar1;" (assignment_expression "*(undefined1 *)((int)puVar12 + 0x1d) = uVar1" (pointer_expression "*(undefined1 *)((int)puVar12 + 0x1d)" (* "*") (cast_expression "(undefined1 *)((int)puVar12 + 0x1d)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar12 + 0x1d)" (( "(") (binary_expression "(int)puVar12 + 0x1d" (cast_expression "(int)puVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar12")) (+ "+") (number_literal "0x1d")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "puVar12 = puVar12 + 8;" (assignment_expression "puVar12 = puVar12 + 8" (identifier "puVar12") (= "=") (binary_expression "puVar12 + 8" (identifier "puVar12") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "puVar14 = puVar11;" (assignment_expression "puVar14 = puVar11" (identifier "puVar14") (= "=") (identifier "puVar11")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar15 != puVar11)" (( "(") (binary_expression "puVar15 != puVar11" (identifier "puVar15") (!= "!=") (identifier "puVar11")) () ")")) (; ";")) (labeled_statement "LAB_00224668:\n    puVar12 = (undefined4 *)param_1[1];" (statement_identifier "LAB_00224668") (: ":") (expression_statement "puVar12 = (undefined4 *)param_1[1];" (assignment_expression "puVar12 = (undefined4 *)param_1[1]" (identifier "puVar12") (= "=") (cast_expression "(undefined4 *)param_1[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")))) (; ";"))) (expression_statement "puVar6 = puVar6 + ((uVar20 >> 5) + 1) * 8;" (assignment_expression "puVar6 = puVar6 + ((uVar20 >> 5) + 1) * 8" (identifier "puVar6") (= "=") (binary_expression "puVar6 + ((uVar20 >> 5) + 1) * 8" (identifier "puVar6") (+ "+") (binary_expression "((uVar20 >> 5) + 1) * 8" (parenthesized_expression "((uVar20 >> 5) + 1)" (( "(") (binary_expression "(uVar20 >> 5) + 1" (parenthesized_expression "(uVar20 >> 5)" (( "(") (binary_expression "uVar20 >> 5" (identifier "uVar20") (>> ">>") (number_literal "5")) () ")")) (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "8")))) (; ";")) (} "}"))) (expression_statement "puVar14 = (undefined4 *)*param_1;" (assignment_expression "puVar14 = (undefined4 *)*param_1" (identifier "puVar14") (= "=") (cast_expression "(undefined4 *)*param_1" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (if_statement "if (puVar14 != puVar12) {\n    do {\n      if ((undefined4 *)*puVar14 != puVar14 + 2) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      puVar14 = puVar14 + 8;\n    } while (puVar14 != puVar12);\n    puVar12 = (undefined4 *)*param_1;\n  }" (if "if") (parenthesized_expression "(puVar14 != puVar12)" (( "(") (binary_expression "puVar14 != puVar12" (identifier "puVar14") (!= "!=") (identifier "puVar12")) () ")")) (compound_statement "{\n    do {\n      if ((undefined4 *)*puVar14 != puVar14 + 2) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      puVar14 = puVar14 + 8;\n    } while (puVar14 != puVar12);\n    puVar12 = (undefined4 *)*param_1;\n  }" ({ "{") (do_statement "do {\n      if ((undefined4 *)*puVar14 != puVar14 + 2) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      puVar14 = puVar14 + 8;\n    } while (puVar14 != puVar12);" (do "do") (compound_statement "{\n      if ((undefined4 *)*puVar14 != puVar14 + 2) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      puVar14 = puVar14 + 8;\n    }" ({ "{") (if_statement "if ((undefined4 *)*puVar14 != puVar14 + 2) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }" (if "if") (parenthesized_expression "((undefined4 *)*puVar14 != puVar14 + 2)" (( "(") (binary_expression "(undefined4 *)*puVar14 != puVar14 + 2" (cast_expression "(undefined4 *)*puVar14" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar14" (* "*") (identifier "puVar14"))) (!= "!=") (binary_expression "puVar14 + 2" (identifier "puVar14") (+ "+") (number_literal "2"))) () ")")) (compound_statement "{\n        (*(code *)PTR_operator_delete_0043228c)();\n      }" ({ "{") (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" (( "(") (pointer_expression "*(code *)PTR_operator_delete_0043228c" (* "*") (cast_expression "(code *)PTR_operator_delete_0043228c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_delete_0043228c"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar14 = puVar14 + 8;" (assignment_expression "puVar14 = puVar14 + 8" (identifier "puVar14") (= "=") (binary_expression "puVar14 + 8" (identifier "puVar14") (+ "+") (number_literal "8"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar14 != puVar12)" (( "(") (binary_expression "puVar14 != puVar12" (identifier "puVar14") (!= "!=") (identifier "puVar12")) () ")")) (; ";")) (expression_statement "puVar12 = (undefined4 *)*param_1;" (assignment_expression "puVar12 = (undefined4 *)*param_1" (identifier "puVar12") (= "=") (cast_expression "(undefined4 *)*param_1" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (} "}"))) (if_statement "if (puVar12 != (undefined4 *)0x0) {\n    (*(code *)PTR_operator_delete_0043228c)(puVar12);\n  }" (if "if") (parenthesized_expression "(puVar12 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar12 != (undefined4 *)0x0" (identifier "puVar12") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    (*(code *)PTR_operator_delete_0043228c)(puVar12);\n  }" ({ "{") (expression_statement "(*(code *)PTR_operator_delete_0043228c)(puVar12);" (call_expression "(*(code *)PTR_operator_delete_0043228c)(puVar12)" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" (( "(") (pointer_expression "*(code *)PTR_operator_delete_0043228c" (* "*") (cast_expression "(code *)PTR_operator_delete_0043228c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_delete_0043228c"))) () ")")) (argument_list "(puVar12)" (( "(") (identifier "puVar12") () ")"))) (; ";")) (} "}"))) (expression_statement "*param_1 = puVar8;" (assignment_expression "*param_1 = puVar8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "puVar8")) (; ";")) (expression_statement "param_1[1] = puVar6;" (assignment_expression "param_1[1] = puVar6" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "puVar6")) (; ";")) (expression_statement "param_1[2] = puVar8 + uVar21 * 8;" (assignment_expression "param_1[2] = puVar8 + uVar21 * 8" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "puVar8 + uVar21 * 8" (identifier "puVar8") (+ "+") (binary_expression "uVar21 * 8" (identifier "uVar21") (* "*") (number_literal "8")))) (; ";")) (return_statement "return;" (return "return") (; ";")) (ERROR "}" (} "}"))

/* DWARF original name: _M_range_insert<__gnu_cxx::__normal_iterator<gold::Version_expression*,
   std::vector<gold::Version_expression> > >
   DWARF original prototype: void
   _M_range_insert<__gnu_cxx::__normal_iterator<gold::Version_expression*,_std::vector<gold::Version_expression>_>_>(vector<gold::Version_expression,_std::allocator<gold::Version_expression>_>
   * this, iterator __position,
   __normal_iterator<gold::Version_expression*,_std::vector<gold::Version_expression,_std::allocator<gold::Version_expression>_>_>
   __first,
   __normal_iterator<gold::Version_expression*,_std::vector<gold::Version_expression,_std::allocator<gold::Version_expression>_>_>
   __last, forward_iterator_tag param_5) */

void __thiscall
std::vector<gold::var_12,_std::var_1<gold::var_12>var_3>::
_M_range_insert<__gnu_cxx::__normal_iterator<gold::var_12*,_std::vector<gold::var_12>var_3>var_3>
          (vector<gold::var_12,_std::var_1<gold::var_12>var_3> *this,
          type_4 var_24,int *var_10,int *var_11)

{
  bool bVar1;
  bool bVar2;
  type_1 *pcVar3;
  type_2 *puVar4;
  int var_16;
  type_3 LVar6;
  type_4 var_19;
  anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
  *var_5;
  type_5 var_28;
  anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
  *var_6;
  type_6 *var_20;
  type_4 var_27;
  type_6 *var_18;
  type_6 var_21;
  type_6 sVar15;
  type_4 var_23;
  anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
  *var_7;
  type_7 uVar18;
  type_6 sVar19;
  type_7 uVar20;
  type_7 uVar21;
  type_4 var_32;
  type_4 var_30;
  type_7 *var_31;
  int *var_25;
  int *var_26;
  int var_14;
  int var_22;
  type_5 var_15;
  type_5 var_17;
  
  puVar4 = var_8<var_2*>var_9;
  if (var_10 == var_11) {
    return;
  }
  var_27 = (this->
            super__Vector_base<gold::var_12,_std::var_1<gold::var_12>var_3>var_13)
            ._M_impl._M_finish;
  var_14 = (int)var_11 - (int)var_10;
  var_15 = var_14 >> 5;
  if (var_15 <= (type_5)((int)(this->
                            super__Vector_base<gold::var_12,_std::var_1<gold::var_12>var_3>var_13
                            )._M_impl._M_end_of_storage - (int)var_27 >> 5)) {
    var_16 = (int)var_27 - (int)var_24;
    var_17 = var_16 >> 5;
    if (var_15 < var_17) {
      var_6 = &(var_27->pattern).field_2;
      var_18 = (type_6 *)((int)var_27 + (8 - var_14));
      var_19 = var_27;
      do {
        while( true ) {
          var_7 = &(var_19->pattern).field_2;
          (var_19->pattern)._M_dataplus._M_p = (type_4)var_7;
          if ((type_6 *)var_18[-2] != var_18) break;
          sVar19 = var_18[1];
          sVar15 = var_18[2];
          var_21 = var_18[3];
          var_7->_M_allocated_capacity = *var_18;
          *(type_6 *)((int)&(var_19->pattern).field_2 + 4) = sVar19;
          *(type_6 *)((int)&(var_19->pattern).field_2 + 8) = sVar15;
          *(type_6 *)((int)&(var_19->pattern).field_2 + 0xc) = var_21;
          bVar1 = *(bool *)(var_18 + 5);
          LVar6 = var_18[4];
          (var_19->pattern)._M_string_length = var_18[-1];
          var_18[-2] = (type_6)var_18;
          var_20 = var_18 + 8;
          var_18[-1] = 0;
          *(char *)var_18 = '\0';
          var_19->exact_match = bVar1;
          var_19->language = LVar6;
          var_19->was_matched_by_symbol = *(bool *)((int)var_18 + 0x15);
          var_18 = var_20;
          var_19 = var_19 + 1;
          if (var_6 ==
              (anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
               *)var_20) goto LAB_002247fc;
        }
        (var_19->pattern)._M_dataplus._M_p = (type_4)var_18[-2];
        bVar1 = *(bool *)(var_18 + 5);
        (var_19->pattern).field_2._M_allocated_capacity = *var_18;
        LVar6 = var_18[4];
        (var_19->pattern)._M_string_length = var_18[-1];
        var_18[-2] = (type_6)var_18;
        var_20 = var_18 + 8;
        var_18[-1] = 0;
        *(char *)var_18 = '\0';
        var_19->exact_match = bVar1;
        var_19->language = LVar6;
        var_19->was_matched_by_symbol = *(bool *)((int)var_18 + 0x15);
        var_18 = var_20;
        var_19 = var_19 + 1;
      } while (var_6 !=
               (anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
                *)var_20);
LAB_002247fc:
      var_16 = (int)var_27 + (-(int)var_24 - var_14);
      var_22 = var_16 >> 5;
      (this->super__Vector_base<gold::var_12,_std::var_1<gold::var_12>var_3>var_13
      )._M_impl._M_finish =
           (type_4)((int)(this->
                          super__Vector_base<gold::var_12,_std::var_1<gold::var_12>var_3>var_13
                          )._M_impl._M_finish + var_14);
      if (0 < var_16) {
        var_18 = (type_6 *)((int)var_27 + (-0x18 - var_14));
        var_6 = &var_27[-1].pattern.field_2;
        do {
          while( true ) {
            var_23 = (((type_8 *)((int)var_6 + -8))->_M_dataplus)._M_p;
            if ((type_6 *)var_18[-2] != var_18) break;
            var_21 = var_18[-1];
            if (var_21 != 0) {
              if (var_21 == 1) {
                *var_23 = *(char *)var_18;
                var_23 = (((type_8 *)((int)var_6 + -8))->_M_dataplus)._M_p;
                var_21 = var_18[-1];
              }
              else {
                (*(type_1 *)PTR_memcpy_00436788)(var_23,var_18);
                var_23 = (((type_8 *)((int)var_6 + -8))->_M_dataplus)._M_p;
                var_21 = var_18[-1];
              }
            }
            *(type_6 *)((int)var_6 + -4) = var_21;
            var_23[var_21] = '\0';
            var_22 = var_22 + -1;
            var_18[-1] = 0;
            *(type_9 *)var_18[-2] = 0;
            var_21 = var_18[4];
            *(char *)((int)var_6 + 0x14) = *(char *)(var_18 + 5);
            var_6[1]._M_allocated_capacity = var_21;
            *(char *)((int)var_6 + 0x15) = *(char *)((int)var_18 + 0x15);
            var_18 = var_18 + -8;
            var_6 = var_6 + -2;
            if (var_22 == 0) goto LAB_002248f8;
          }
          (((type_8 *)((int)var_6 + -8))->_M_dataplus)._M_p = (type_4)var_18[-2];
          if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
               *)var_23 == var_6) {
            *(type_6 *)((int)var_6 + -4) = var_18[-1];
            var_6->_M_allocated_capacity = *var_18;
LAB_0022497c:
            var_18[-2] = (type_6)var_18;
          }
          else {
            var_21 = var_6->_M_allocated_capacity;
            *(type_6 *)((int)var_6 + -4) = var_18[-1];
            var_6->_M_allocated_capacity = *var_18;
            if (var_23 == (type_4)0x0) goto LAB_0022497c;
            var_18[-2] = (type_6)var_23;
            *var_18 = var_21;
          }
          var_18[-1] = 0;
          var_22 = var_22 + -1;
          *(type_9 *)var_18[-2] = 0;
          var_21 = var_18[4];
          *(char *)((int)var_6 + 0x14) = *(char *)(var_18 + 5);
          var_6[1]._M_allocated_capacity = var_21;
          *(char *)((int)var_6 + 0x15) = *(char *)((int)var_18 + 0x15);
          var_18 = var_18 + -8;
          var_6 = var_6 + -2;
        } while (var_22 != 0);
      }
LAB_002248f8:
      if (0 < var_14) {
        do {
          (*(type_1 *)PTR__M_assign_00432d78)(var_24,var_10);
          var_15 = var_15 - 1;
          LVar6 = var_10[6];
          var_24->exact_match = *(bool *)(var_10 + 7);
          var_24->language = LVar6;
          var_24->was_matched_by_symbol = *(bool *)((int)var_10 + 0x1d);
          var_10 = var_10 + 8;
          var_24 = var_24 + 1;
        } while (var_15 != 0);
        return;
      }
    }
    else {
      var_25 = (int *)((int)var_10 + var_16);
      var_19 = var_27;
      if (var_25 != var_11) {
        do {
          (var_19->pattern)._M_dataplus._M_p = (type_4)&(var_19->pattern).field_2;
                    /* try { // try from 002241f8 to 002241ff has its CatchHandler @ 002249d8 */
          (*(type_1 *)puVar4)(var_19,*var_25,*var_25 + var_25[1],0);
          var_26 = var_25 + 8;
          LVar6 = var_25[6];
          var_19->exact_match = *(bool *)(var_25 + 7);
          var_19->language = LVar6;
          var_19->was_matched_by_symbol = *(bool *)((int)var_25 + 0x1d);
          var_25 = var_26;
          var_19 = var_19 + 1;
        } while (var_11 != var_26);
        var_19 = (this->
                 super__Vector_base<gold::var_12,_std::var_1<gold::var_12>var_3>var_13
                 )._M_impl._M_finish;
      }
      var_19 = var_19 + (var_15 - var_17);
      (this->super__Vector_base<gold::var_12,_std::var_1<gold::var_12>var_3>var_13
      )._M_impl._M_finish = var_19;
      if (var_27 != var_24) {
        var_7 = &(var_27->pattern).field_2;
        var_6 = &(var_24->pattern).field_2;
        do {
          while( true ) {
            var_5 = &(var_19->pattern).field_2;
            (var_19->pattern)._M_dataplus._M_p = (type_4)var_5;
            var_18 = (type_6 *)(((type_8 *)((int)var_6 + -8))->_M_dataplus)._M_p;
            if (var_6 !=
                (anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
                 *)var_18) break;
            sVar19 = *(type_6 *)((int)var_6 + 4);
            sVar15 = *(type_6 *)((int)var_6 + 8);
            var_21 = *(type_6 *)((int)var_6 + 0xc);
            var_5->_M_allocated_capacity = var_6->_M_allocated_capacity;
            *(type_6 *)((int)&(var_19->pattern).field_2 + 4) = sVar19;
            *(type_6 *)((int)&(var_19->pattern).field_2 + 8) = sVar15;
            *(type_6 *)((int)&(var_19->pattern).field_2 + 0xc) = var_21;
            bVar1 = *(bool *)((int)var_6 + 0x14);
            LVar6 = var_6[1]._M_allocated_capacity;
            (var_19->pattern)._M_string_length = *(type_6 *)((int)var_6 + -4);
            (((type_8 *)((int)var_6 + -8))->_M_dataplus)._M_p = (type_4)var_6;
            var_5 = var_6 + 2;
            *(type_6 *)((int)var_6 + -4) = 0;
            var_6->_M_local_buf[0] = '\0';
            var_19->exact_match = bVar1;
            var_19->language = LVar6;
            var_19->was_matched_by_symbol = *(bool *)((int)var_6 + 0x15);
            var_6 = var_5;
            var_19 = var_19 + 1;
            if (var_7 == var_5) goto LAB_00224324;
          }
          (var_19->pattern)._M_dataplus._M_p = (type_4)var_18;
          bVar1 = *(bool *)((int)var_6 + 0x14);
          (var_19->pattern).field_2._M_allocated_capacity = var_6->_M_allocated_capacity;
          LVar6 = var_6[1]._M_allocated_capacity;
          (var_19->pattern)._M_string_length = *(type_6 *)((int)var_6 + -4);
          (((type_8 *)((int)var_6 + -8))->_M_dataplus)._M_p = (type_4)var_6;
          var_5 = var_6 + 2;
          *(type_6 *)((int)var_6 + -4) = 0;
          var_6->_M_local_buf[0] = '\0';
          var_19->exact_match = bVar1;
          var_19->language = LVar6;
          var_19->was_matched_by_symbol = *(bool *)((int)var_6 + 0x15);
          var_6 = var_5;
          var_19 = var_19 + 1;
        } while (var_7 != var_5);
LAB_00224324:
        var_19 = (this->
                 super__Vector_base<gold::var_12,_std::var_1<gold::var_12>var_3>var_13
                 )._M_impl._M_finish;
      }
      (this->super__Vector_base<gold::var_12,_std::var_1<gold::var_12>var_3>var_13
      )._M_impl._M_finish = (type_4)((int)var_19 + var_16);
      if (0 < var_16) {
        do {
          (*(type_1 *)PTR__M_assign_00432d78)(var_24,var_10);
          var_17 = var_17 - 1;
          LVar6 = var_10[6];
          var_24->exact_match = *(bool *)(var_10 + 7);
          var_24->language = LVar6;
          var_24->was_matched_by_symbol = *(bool *)((int)var_10 + 0x1d);
          var_10 = var_10 + 8;
          var_24 = var_24 + 1;
        } while (var_17 != 0);
      }
    }
    return;
  }
  var_19 = (this->
           super__Vector_base<gold::var_12,_std::var_1<gold::var_12>var_3>var_13).
           _M_impl._M_start;
  var_17 = 0x7ffffff;
  var_28 = (int)var_27 - (int)var_19 >> 5;
  if (0x7ffffff - var_28 < var_15) {
    (*(type_1 *)PTR___throw_length_error_00432480)(var_29 + -0x6b60);
    return;
  }
  if (var_15 < var_28) {
    var_15 = var_28;
  }
  var_15 = var_15 + var_28;
  if ((var_15 < var_28) || (0x7ffffff < var_15)) {
    var_14 = -0x20;
  }
  else {
    var_27 = (type_4)0x0;
    var_17 = var_15;
    if (var_15 == 0) goto LAB_00224414;
    var_14 = var_15 * 0x20;
  }
  var_27 = (type_4)(*(type_1 *)PTR_operator_new_0043233c)(var_14);
  var_19 = (this->
           super__Vector_base<gold::var_12,_std::var_1<gold::var_12>var_3>var_13).
           _M_impl._M_start;
LAB_00224414:
  var_30 = var_27;
  pcVar3 = (type_1 *)var_8<var_2*>var_9;
  if (var_19 != var_24) {
    var_7 = &(var_24->pattern).field_2;
    var_6 = &(var_19->pattern).field_2;
    do {
      while( true ) {
        var_5 = &(var_30->pattern).field_2;
        (var_30->pattern)._M_dataplus._M_p = (type_4)var_5;
        var_23 = (((type_8 *)((int)var_6 + -8))->_M_dataplus)._M_p;
        if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
             *)var_23 != var_6) break;
        uVar21 = *(type_7 *)((int)var_6 + 4);
        uVar20 = *(type_7 *)((int)var_6 + 8);
        uVar18 = *(type_7 *)((int)var_6 + 0xc);
        var_5->_M_allocated_capacity = var_6->_M_allocated_capacity;
        *(type_7 *)((int)&(var_30->pattern).field_2 + 4) = uVar21;
        *(type_7 *)((int)&(var_30->pattern).field_2 + 8) = uVar20;
        *(type_7 *)((int)&(var_30->pattern).field_2 + 0xc) = uVar18;
        bVar1 = *(bool *)((int)var_6 + 0x14);
        LVar6 = var_6[1]._M_allocated_capacity;
        (var_30->pattern)._M_string_length = *(type_6 *)((int)var_6 + -4);
        (((type_8 *)((int)var_6 + -8))->_M_dataplus)._M_p = (type_4)var_6;
        var_5 = var_6 + 2;
        *(type_6 *)((int)var_6 + -4) = 0;
        var_6->_M_local_buf[0] = '\0';
        var_30->exact_match = bVar1;
        var_30->language = LVar6;
        var_30->was_matched_by_symbol = *(bool *)((int)var_6 + 0x15);
        var_6 = var_5;
        var_30 = var_30 + 1;
        if (var_5 == var_7) goto LAB_00224504;
      }
      (var_30->pattern)._M_dataplus._M_p = var_23;
      bVar1 = *(bool *)((int)var_6 + 0x14);
      (var_30->pattern).field_2._M_allocated_capacity = var_6->_M_allocated_capacity;
      LVar6 = var_6[1]._M_allocated_capacity;
      (var_30->pattern)._M_string_length = *(type_6 *)((int)var_6 + -4);
      (((type_8 *)((int)var_6 + -8))->_M_dataplus)._M_p = (type_4)var_6;
      var_5 = var_6 + 2;
      *(type_6 *)((int)var_6 + -4) = 0;
      var_6->_M_local_buf[0] = '\0';
      var_30->exact_match = bVar1;
      var_30->language = LVar6;
      var_30->was_matched_by_symbol = *(bool *)((int)var_6 + 0x15);
      var_6 = var_5;
      var_30 = var_30 + 1;
    } while (var_5 != var_7);
LAB_00224504:
    var_30 = var_27 + ((type_5)((int)var_24 + (-0x20 - (int)var_19)) >> 5) + 1;
    pcVar3 = (type_1 *)var_8<var_2*>var_9;
  }
  do {
    var_14 = *var_10;
    var_16 = var_10[1];
    (var_30->pattern)._M_dataplus._M_p = (type_4)&(var_30->pattern).field_2;
                    /* try { // try from 00224544 to 0022454b has its CatchHandler @ 002249b4 */
    (*pcVar3)(var_30,var_14,var_14 + var_16,0);
    var_25 = var_10 + 8;
    var_19 = var_30 + 1;
    bVar1 = *(bool *)(var_10 + 7);
    bVar2 = *(bool *)((int)var_10 + 0x1d);
    var_30->language = var_10[6];
    var_30->exact_match = bVar1;
    var_30->was_matched_by_symbol = bVar2;
    var_10 = var_25;
    var_30 = var_19;
  } while (var_11 != var_25);
  var_30 = (this->
            super__Vector_base<gold::var_12,_std::var_1<gold::var_12>var_3>var_13)
            ._M_impl._M_finish;
  if (var_30 != var_24) {
    var_15 = (int)var_30 + (-0x20 - (int)var_24);
    var_31 = (type_7 *)((int)var_24 + var_15 + 0x28);
    var_30 = var_19;
    var_6 = &(var_24->pattern).field_2;
    do {
      while( true ) {
        var_23 = (((type_8 *)((int)var_6 + -8))->_M_dataplus)._M_p;
        var_7 = &(var_30->pattern).field_2;
        (var_30->pattern)._M_dataplus._M_p = (type_4)var_7;
        if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
             *)var_23 != var_6) break;
        uVar21 = *(type_7 *)((int)var_6 + 4);
        uVar20 = *(type_7 *)((int)var_6 + 8);
        uVar18 = *(type_7 *)((int)var_6 + 0xc);
        var_7->_M_allocated_capacity = var_6->_M_allocated_capacity;
        *(type_7 *)((int)&(var_30->pattern).field_2 + 4) = uVar21;
        *(type_7 *)((int)&(var_30->pattern).field_2 + 8) = uVar20;
        *(type_7 *)((int)&(var_30->pattern).field_2 + 0xc) = uVar18;
        (((type_8 *)((int)var_6 + -8))->_M_dataplus)._M_p = (type_4)var_6;
        var_7 = var_6 + 2;
        LVar6 = var_6[1]._M_allocated_capacity;
        bVar1 = *(bool *)((int)var_6 + 0x14);
        bVar2 = *(bool *)((int)var_6 + 0x15);
        (var_30->pattern)._M_string_length = *(type_6 *)((int)var_6 + -4);
        var_30->language = LVar6;
        *(type_6 *)((int)var_6 + -4) = 0;
        var_6->_M_local_buf[0] = '\0';
        var_30->exact_match = bVar1;
        var_30->was_matched_by_symbol = bVar2;
        var_30 = var_30 + 1;
        var_6 = var_7;
        if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
             *)var_31 == var_7) goto LAB_00224668;
      }
      var_21 = var_6->_M_allocated_capacity;
      sVar15 = *(type_6 *)((int)var_6 + -4);
      LVar6 = var_6[1]._M_allocated_capacity;
      (var_30->pattern)._M_dataplus._M_p = var_23;
      (var_30->pattern).field_2._M_allocated_capacity = var_21;
      (((type_8 *)((int)var_6 + -8))->_M_dataplus)._M_p = (type_4)var_6;
      var_7 = var_6 + 2;
      (var_30->pattern)._M_string_length = sVar15;
      var_30->language = LVar6;
      bVar1 = *(bool *)((int)var_6 + 0x15);
      var_30->exact_match = *(bool *)((int)var_6 + 0x14);
      *(type_6 *)((int)var_6 + -4) = 0;
      var_6->_M_local_buf[0] = '\0';
      var_30->was_matched_by_symbol = bVar1;
      var_30 = var_30 + 1;
      var_6 = var_7;
    } while ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
              *)var_31 != var_7);
LAB_00224668:
    var_30 = (this->
              super__Vector_base<gold::var_12,_std::var_1<gold::var_12>var_3>var_13
              )._M_impl._M_finish;
    var_19 = var_19 + (var_15 >> 5) + 1;
  }
  var_32 = (this->
            super__Vector_base<gold::var_12,_std::var_1<gold::var_12>var_3>var_13)
            ._M_impl._M_start;
  if (var_32 != var_30) {
    do {
      if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
           *)(var_32->pattern)._M_dataplus._M_p != &(var_32->pattern).field_2) {
        (*(type_1 *)PTR_operator_delete_0043228c)();
      }
      var_32 = var_32 + 1;
    } while (var_32 != var_30);
    var_30 = (this->
              super__Vector_base<gold::var_12,_std::var_1<gold::var_12>var_3>var_13
              )._M_impl._M_start;
  }
  if (var_30 != (type_4)0x0) {
    (*(type_1 *)PTR_operator_delete_0043228c)(var_30);
  }
  (this->super__Vector_base<gold::var_12,_std::var_1<gold::var_12>var_3>var_13).
  _M_impl._M_start = var_27;
  (this->super__Vector_base<gold::var_12,_std::var_1<gold::var_12>var_3>var_13).
  _M_impl._M_finish = var_19;
  (this->super__Vector_base<gold::var_12,_std::var_1<gold::var_12>var_3>var_13).
  _M_impl._M_end_of_storage = var_27 + var_17;
  return;
}


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

/* void std::vector<gold::Version_expression, std::allocator<gold::Version_expression>
   >::_M_range_insert<__normal_iterator<gold::Version_expression*,
   std::vector<gold::Version_expression, std::allocator<gold::Version_expression> > >
   >(__normal_iterator<gold::Version_expression*, std::vector<gold::Version_expression,
   std::allocator<gold::Version_expression> > >, __normal_iterator<gold::Version_expression*,
   std::vector<gold::Version_expression, std::allocator<gold::Version_expression> > >,
   __normal_iterator<gold::Version_expression*, std::vector<gold::Version_expression,
   std::allocator<gold::Version_expression> > >, std::forward_iterator_tag) */

void std::vector<gold::Version_expression,std::allocator<gold::Version_expression>>::
     MASKED
               (undefined4 *param_1,undefined4 *param_2,int *param_3,int *param_4)

{
  undefined1 uVar1;
  undefined1 uVar2;
  code *pcVar3;
  undefined *puVar4;
  int iVar5;
  undefined4 *puVar6;
  uint uVar7;
  undefined4 *puVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  undefined4 *puVar11;
  undefined4 *puVar12;
  undefined4 uVar13;
  undefined4 *puVar14;
  undefined4 *puVar15;
  int *piVar16;
  int *piVar17;
  int iVar18;
  int iVar19;
  uint uVar20;
  uint uVar21;
  
  puVar4 = PTR__M_construct<char*>_0043248c;
  if (param_3 == param_4) {
    return;
  }
  puVar8 = (undefined4 *)param_1[1];
  iVar18 = (int)param_4 - (int)param_3;
  uVar20 = iVar18 >> 5;
  if (uVar20 <= (uint)(param_1[2] - (int)puVar8 >> 5)) {
    iVar5 = (int)puVar8 - (int)param_2;
    uVar21 = iVar5 >> 5;
    if (uVar20 < uVar21) {
      puVar6 = (undefined4 *)((int)puVar8 + (8 - iVar18));
      puVar12 = puVar8;
      do {
        while( true ) {
          *puVar12 = puVar12 + 2;
          if ((undefined4 *)puVar6[-2] != puVar6) break;
          uVar13 = puVar6[1];
          uVar10 = puVar6[2];
          uVar9 = puVar6[3];
          puVar12[2] = *puVar6;
          puVar12[3] = uVar13;
          puVar12[4] = uVar10;
          puVar12[5] = uVar9;
          uVar1 = *(undefined1 *)(puVar6 + 5);
          uVar9 = puVar6[4];
          puVar12[1] = puVar6[-1];
          puVar6[-2] = puVar6;
          puVar14 = puVar6 + 8;
          puVar6[-1] = 0;
          *(undefined1 *)puVar6 = 0;
          *(undefined1 *)(puVar12 + 7) = uVar1;
          puVar12[6] = uVar9;
          *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);
          puVar6 = puVar14;
          puVar12 = puVar12 + 8;
          if (puVar8 + 2 == puVar14) goto LAB_002247fc;
        }
        *puVar12 = (undefined4 *)puVar6[-2];
        uVar1 = *(undefined1 *)(puVar6 + 5);
        puVar12[2] = *puVar6;
        uVar9 = puVar6[4];
        puVar12[1] = puVar6[-1];
        puVar6[-2] = puVar6;
        puVar14 = puVar6 + 8;
        puVar6[-1] = 0;
        *(undefined1 *)puVar6 = 0;
        *(undefined1 *)(puVar12 + 7) = uVar1;
        puVar12[6] = uVar9;
        *(undefined1 *)((int)puVar12 + 0x1d) = *(undefined1 *)((int)puVar6 + 0x15);
        puVar6 = puVar14;
        puVar12 = puVar12 + 8;
      } while (puVar8 + 2 != puVar14);
LAB_002247fc:
      iVar5 = (int)puVar8 + (-(int)param_2 - iVar18);
      iVar19 = iVar5 >> 5;
      param_1[1] = param_1[1] + iVar18;
      if (0 < iVar5) {
        puVar6 = (undefined4 *)((int)puVar8 + (-0x18 - iVar18));
        puVar8 = puVar8 + -6;
        do {
          while( true ) {
            puVar12 = (undefined4 *)puVar8[-2];
            if ((undefined4 *)puVar6[-2] != puVar6) break;
            iVar5 = puVar6[-1];
            if (iVar5 != 0) {
              if (iVar5 == 1) {
                *(undefined1 *)puVar12 = *(undefined1 *)puVar6;
                puVar12 = (undefined4 *)puVar8[-2];
                iVar5 = puVar6[-1];
              }
              else {
                (*(code *)PTR_memcpy_00436788)(puVar12,puVar6);
                puVar12 = (undefined4 *)puVar8[-2];
                iVar5 = puVar6[-1];
              }
            }
            puVar8[-1] = iVar5;
            *(undefined1 *)((int)puVar12 + iVar5) = 0;
            iVar19 = iVar19 + -1;
            puVar6[-1] = 0;
            *(undefined1 *)puVar6[-2] = 0;
            uVar9 = puVar6[4];
            *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);
            puVar8[4] = uVar9;
            *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);
            puVar6 = puVar6 + -8;
            puVar8 = puVar8 + -8;
            if (iVar19 == 0) goto LAB_002248f8;
          }
          puVar8[-2] = (undefined4 *)puVar6[-2];
          if (puVar12 == puVar8) {
            puVar8[-1] = puVar6[-1];
            *puVar8 = *puVar6;
LAB_0022497c:
            puVar6[-2] = puVar6;
          }
          else {
            uVar9 = *puVar8;
            puVar8[-1] = puVar6[-1];
            *puVar8 = *puVar6;
            if (puVar12 == (undefined4 *)0x0) goto LAB_0022497c;
            puVar6[-2] = puVar12;
            *puVar6 = uVar9;
          }
          puVar6[-1] = 0;
          iVar19 = iVar19 + -1;
          *(undefined1 *)puVar6[-2] = 0;
          uVar9 = puVar6[4];
          *(undefined1 *)(puVar8 + 5) = *(undefined1 *)(puVar6 + 5);
          puVar8[4] = uVar9;
          *(undefined1 *)((int)puVar8 + 0x15) = *(undefined1 *)((int)puVar6 + 0x15);
          puVar6 = puVar6 + -8;
          puVar8 = puVar8 + -8;
        } while (iVar19 != 0);
      }
LAB_002248f8:
      if (0 < iVar18) {
        do {
          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);
          uVar20 = uVar20 - 1;
          iVar18 = param_3[6];
          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);
          param_2[6] = iVar18;
          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);
          param_3 = param_3 + 8;
          param_2 = param_2 + 8;
        } while (uVar20 != 0);
        return;
      }
    }
    else {
      piVar16 = (int *)((int)param_3 + iVar5);
      puVar6 = puVar8;
      if (piVar16 != param_4) {
        do {
          *puVar6 = puVar6 + 2;
                    /* try { // try from 002241f8 to 002241ff has its CatchHandler @ 002249d8 */
          (*(code *)puVar4)(puVar6,*piVar16,*piVar16 + piVar16[1],0);
          piVar17 = piVar16 + 8;
          iVar18 = piVar16[6];
          *(undefined1 *)(puVar6 + 7) = *(undefined1 *)(piVar16 + 7);
          puVar6[6] = iVar18;
          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)piVar16 + 0x1d);
          piVar16 = piVar17;
          puVar6 = puVar6 + 8;
        } while (param_4 != piVar17);
        puVar6 = (undefined4 *)param_1[1];
      }
      puVar6 = puVar6 + (uVar20 - uVar21) * 8;
      param_1[1] = puVar6;
      if (puVar8 != param_2) {
        puVar12 = param_2 + 2;
        do {
          while( true ) {
            *puVar6 = puVar6 + 2;
            if (puVar12 != (undefined4 *)puVar12[-2]) break;
            uVar13 = puVar12[1];
            uVar10 = puVar12[2];
            uVar9 = puVar12[3];
            puVar6[2] = *puVar12;
            puVar6[3] = uVar13;
            puVar6[4] = uVar10;
            puVar6[5] = uVar9;
            uVar1 = *(undefined1 *)(puVar12 + 5);
            uVar9 = puVar12[4];
            puVar6[1] = puVar12[-1];
            puVar12[-2] = puVar12;
            puVar14 = puVar12 + 8;
            puVar12[-1] = 0;
            *(undefined1 *)puVar12 = 0;
            *(undefined1 *)(puVar6 + 7) = uVar1;
            puVar6[6] = uVar9;
            *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);
            puVar12 = puVar14;
            puVar6 = puVar6 + 8;
            if (puVar8 + 2 == puVar14) goto LAB_00224324;
          }
          *puVar6 = (undefined4 *)puVar12[-2];
          uVar1 = *(undefined1 *)(puVar12 + 5);
          puVar6[2] = *puVar12;
          uVar9 = puVar12[4];
          puVar6[1] = puVar12[-1];
          puVar12[-2] = puVar12;
          puVar14 = puVar12 + 8;
          puVar12[-1] = 0;
          *(undefined1 *)puVar12 = 0;
          *(undefined1 *)(puVar6 + 7) = uVar1;
          puVar6[6] = uVar9;
          *(undefined1 *)((int)puVar6 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);
          puVar12 = puVar14;
          puVar6 = puVar6 + 8;
        } while (puVar8 + 2 != puVar14);
LAB_00224324:
        puVar6 = (undefined4 *)param_1[1];
      }
      param_1[1] = (int)puVar6 + iVar5;
      if (0 < iVar5) {
        do {
          (*(code *)PTR__M_assign_00432d78)(param_2,param_3);
          uVar21 = uVar21 - 1;
          iVar18 = param_3[6];
          *(undefined1 *)(param_2 + 7) = *(undefined1 *)(param_3 + 7);
          param_2[6] = iVar18;
          *(undefined1 *)((int)param_2 + 0x1d) = *(undefined1 *)((int)param_3 + 0x1d);
          param_3 = param_3 + 8;
          param_2 = param_2 + 8;
        } while (uVar21 != 0);
      }
    }
    return;
  }
  puVar6 = (undefined4 *)*param_1;
  uVar21 = 0x7ffffff;
  uVar7 = (int)puVar8 - (int)puVar6 >> 5;
  if (0x7ffffff - uVar7 < uVar20) {
    (*(code *)PTR___throw_length_error_00432480)(PTR_DAT_0043226c + -0x6b60);
    return;
  }
  if (uVar20 < uVar7) {
    uVar20 = uVar7;
  }
  uVar20 = uVar20 + uVar7;
  if ((uVar20 < uVar7) || (0x7ffffff < uVar20)) {
    iVar18 = -0x20;
  }
  else {
    puVar8 = (undefined4 *)0x0;
    uVar21 = uVar20;
    if (uVar20 == 0) goto LAB_00224414;
    iVar18 = uVar20 * 0x20;
  }
  puVar8 = (undefined4 *)(*(code *)PTR_operator_new_0043233c)(iVar18);
  puVar6 = (undefined4 *)*param_1;
LAB_00224414:
  puVar12 = puVar8;
  pcVar3 = (code *)PTR__M_construct<char*>_0043248c;
  if (puVar6 != param_2) {
    puVar12 = puVar6 + 2;
    puVar14 = puVar8;
    do {
      while( true ) {
        *puVar14 = puVar14 + 2;
        if ((undefined4 *)puVar12[-2] != puVar12) break;
        uVar13 = puVar12[1];
        uVar10 = puVar12[2];
        uVar9 = puVar12[3];
        puVar14[2] = *puVar12;
        puVar14[3] = uVar13;
        puVar14[4] = uVar10;
        puVar14[5] = uVar9;
        uVar1 = *(undefined1 *)(puVar12 + 5);
        uVar9 = puVar12[4];
        puVar14[1] = puVar12[-1];
        puVar12[-2] = puVar12;
        puVar15 = puVar12 + 8;
        puVar12[-1] = 0;
        *(undefined1 *)puVar12 = 0;
        *(undefined1 *)(puVar14 + 7) = uVar1;
        puVar14[6] = uVar9;
        *(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);
        puVar12 = puVar15;
        puVar14 = puVar14 + 8;
        if (puVar15 == param_2 + 2) goto LAB_00224504;
      }
      *puVar14 = (undefined4 *)puVar12[-2];
      uVar1 = *(undefined1 *)(puVar12 + 5);
      puVar14[2] = *puVar12;
      uVar9 = puVar12[4];
      puVar14[1] = puVar12[-1];
      puVar12[-2] = puVar12;
      puVar15 = puVar12 + 8;
      puVar12[-1] = 0;
      *(undefined1 *)puVar12 = 0;
      *(undefined1 *)(puVar14 + 7) = uVar1;
      puVar14[6] = uVar9;
      *(undefined1 *)((int)puVar14 + 0x1d) = *(undefined1 *)((int)puVar12 + 0x15);
      puVar12 = puVar15;
      puVar14 = puVar14 + 8;
    } while (puVar15 != param_2 + 2);
LAB_00224504:
    puVar12 = puVar8 + (((uint)((int)param_2 + (-0x20 - (int)puVar6)) >> 5) + 1) * 8;
    pcVar3 = (code *)PTR__M_construct<char*>_0043248c;
  }
  do {
    iVar18 = *param_3;
    iVar5 = param_3[1];
    *puVar12 = puVar12 + 2;
                    /* try { // try from 00224544 to 0022454b has its CatchHandler @ 002249b4 */
    (*pcVar3)(puVar12,iVar18,iVar18 + iVar5,0);
    piVar16 = param_3 + 8;
    puVar6 = puVar12 + 8;
    uVar1 = *(undefined1 *)(param_3 + 7);
    uVar2 = *(undefined1 *)((int)param_3 + 0x1d);
    puVar12[6] = param_3[6];
    *(undefined1 *)(puVar12 + 7) = uVar1;
    *(undefined1 *)((int)puVar12 + 0x1d) = uVar2;
    param_3 = piVar16;
    puVar12 = puVar6;
  } while (param_4 != piVar16);
  puVar12 = (undefined4 *)param_1[1];
  if (puVar12 != param_2) {
    uVar20 = (int)puVar12 + (-0x20 - (int)param_2);
    puVar15 = (undefined4 *)((int)param_2 + uVar20 + 0x28);
    puVar12 = puVar6;
    puVar14 = param_2 + 2;
    do {
      while( true ) {
        puVar11 = (undefined4 *)puVar14[-2];
        *puVar12 = puVar12 + 2;
        if (puVar11 != puVar14) break;
        uVar13 = puVar14[1];
        uVar10 = puVar14[2];
        uVar9 = puVar14[3];
        puVar12[2] = *puVar14;
        puVar12[3] = uVar13;
        puVar12[4] = uVar10;
        puVar12[5] = uVar9;
        puVar14[-2] = puVar14;
        puVar11 = puVar14 + 8;
        uVar9 = puVar14[4];
        uVar1 = *(undefined1 *)(puVar14 + 5);
        uVar2 = *(undefined1 *)((int)puVar14 + 0x15);
        puVar12[1] = puVar14[-1];
        puVar12[6] = uVar9;
        puVar14[-1] = 0;
        *(undefined1 *)puVar14 = 0;
        *(undefined1 *)(puVar12 + 7) = uVar1;
        *(undefined1 *)((int)puVar12 + 0x1d) = uVar2;
        puVar12 = puVar12 + 8;
        puVar14 = puVar11;
        if (puVar15 == puVar11) goto LAB_00224668;
      }
      uVar9 = *puVar14;
      uVar13 = puVar14[-1];
      uVar10 = puVar14[4];
      *puVar12 = puVar11;
      puVar12[2] = uVar9;
      puVar14[-2] = puVar14;
      puVar11 = puVar14 + 8;
      puVar12[1] = uVar13;
      puVar12[6] = uVar10;
      uVar1 = *(undefined1 *)((int)puVar14 + 0x15);
      *(undefined1 *)(puVar12 + 7) = *(undefined1 *)(puVar14 + 5);
      puVar14[-1] = 0;
      *(undefined1 *)puVar14 = 0;
      *(undefined1 *)((int)puVar12 + 0x1d) = uVar1;
      puVar12 = puVar12 + 8;
      puVar14 = puVar11;
    } while (puVar15 != puVar11);
LAB_00224668:
    puVar12 = (undefined4 *)param_1[1];
    puVar6 = puVar6 + ((uVar20 >> 5) + 1) * 8;
  }
  puVar14 = (undefined4 *)*param_1;
  if (puVar14 != puVar12) {
    do {
      if ((undefined4 *)*puVar14 != puVar14 + 2) {
        (*(code *)PTR_operator_delete_0043228c)();
      }
      puVar14 = puVar14 + 8;
    } while (puVar14 != puVar12);
    puVar12 = (undefined4 *)*param_1;
  }
  if (puVar12 != (undefined4 *)0x0) {
    (*(code *)PTR_operator_delete_0043228c)(puVar12);
  }
  *param_1 = puVar8;
  param_1[1] = puVar6;
  param_1[2] = puVar8 + uVar21 * 8;
  return;
}

